Devil

Материал из BrSTU Robotics Wiki
Перейти к: навигация, поиск
Альтернативный текст

Devil - робот команды RDL для участия в робототехнических соревнований Roborace.

Состав команды

Команда No_Name. Денис Хомиченко (слева) и Алексей Пучик (справа)


(Капитан, Программист, Системотехник, Механик)

(Системотехник, Механик )

Devil

О роботе

Альтернативный текст
Внешний вид робота (2011)

Автономный робот для участия в соревнованиях таких, как RoboRace. Робот создавался на основе микроконтроллера и датчиков, позволяющих ему ориентироваться в пространстве. Две модели датчиков были установлены на платформу: Инфракрасные и механические. Инфракрасные использовались для отслеживания черной линии, механические, в роли которых выступали кнопки, использовались для определения столкновения робота.

Механика модели робота

Робот представляет собой четырёхколёсную платформу игрушечной машинки на радиоуправлении, к которой прикреплены инфракрасных 6 датчиков, определяющих черную линию, и два механических, определяющих столкновение робота с препятствием.

Датчики находятся на передней части робота, с помощью которых он принимает сигнал о положении линии. Также на машинку установлен микроконтроллер для обработки данных, передаваемых с датчиков, драйвер двигателей, позволяющий управлять скоростью и направлением движения робота, сервопривод, отвечающий за поворот передних колес. На робота было установлено восемь аккумуляторов типа АА (1,3 вольта) для питания двигателей, датчиков и микроконтроллера. Также был установлен защитный корпус, позволяющий спрятать всю электронику и предотвратить её повреждение.

Эта модель была выбрана по некоторым факторам:

  • высокая подвеска (что позволяло роботу преодолевать различные препятствия)
  • легкая конструкция
  • небольшие размеры
  • прочный корпус

Датчики

Альтернативный текст
Расположение инфракрасных датчиков

Инфракрасные датчики прикреплены к ПВХ в два ряда. Этот материал был выбран, так как он лёгкий и достаточно прочный для крепления и защиты датчиков от столкновений. Датчики расположены в два ряда: в первом стоит один средний, а во втором расположено пять датчиков так, чтобы третий был на одном уровне с передним центральным датчиком. Такое расположение датчиков позволило нам решить задачу отслеживания линии.

Так же на робота было установлено два механических датчика (кнопки), которые служили сигналом о том, что робот ударился в стену или в робота соперника. На кнопки был прикреплен кусок железной пластины который позволил увеличить рычаг срабатывания датчика.

Первое тестирование

После установки всей электроники на платформу и прошивки микроконтроллера были проведены первые испытания алгоритма на реальном роботе. Изначально был установлен алгоритм простейших движений, таких как ехать в перёд, назад и поворачивать в одну из сторон. На начальном этапе испытания датчики не были задействованы, проверялась работа двигателей мотора и серво-привода. Так была проверена электроника и простейшие алгоритмы поведения робота. На следующем этапе были установлены датчики и загружен алгоритм позволяющий роботу реагировать на их показания. После установки всей электроники возник ряд недостатков, которые будут описаны далее. Испытания датчиков проводились на специальной трассе кольцевого типа с нанесёнными на неё черными полосами.

Результат первого тестирования

Из-за большого веса изначально робот не мог тронуться с места, так как двигатель и редуктор были предназначены для более легкой платформы. Было принято решение: найти более мощный двигатель и собрать новый редуктор, который давал бы больше мощности. Это сразу же привело к тому, что робот потерял значительную часть скорости.

Увеличение габаритов привело к увеличению радиуса поворота робота. Эта задача была решена с помощью логики движения в программном коде.

Смещение центра тяжести привело к тому что робот начал терять сцепление с поверхностью трассы. Робот стоял на месте и пробуксовывал ведущими колёсами. Для устранения этого недостатка было найдено решение. Заключалось оно в том, что на колёса, которые стоят на платформе, были одеты резиновые кольца, что привело к увеличению сцепления с трассой, но результат не был оправдан. Тогда было решено увеличить вес на заднюю (ведущую) ось, но с увеличением веса снизилась скорость робота. В итоге робот получился мощным.

Второе тестирование и его результаты

Тестирование робота на трассе было успешным. Выбранная модель расположения датчиков оправдала себя. Робот уверенно ехал по черной линии не теряя её. Входил в острые повороты, подымался на горку без особых проблем. Единственной проблемой робота являлась его низкая скорость. Однако именно мощность, а не скорость давала преимущество на подъеме и спуске 3D-трассы на соревнованиях во Львове, где робот занял второе место.

Логика движения робота

Движение робота осуществляется посредством поворота его передних колёс, угол поворота которых определяется положением черной линии относительно датчиков. Робот движется прямо на полной скорости, если линию обнаруживают оба центральных датчика. При пропадании линии с одного из датчиков - робот снижает скорость на 40% для подготовки к повороту (после нескольких экспериментов привело к выводу, что при меньшей скорости радиус поворота у робота меньше) и ожидает сигнал от “левого центрального” или “правого центрального” датчика, получив который, робот поворачивает влево или вправо соответственно. Если поворот очень резкий и робот не может отследить линию центральными датчиками, то линию фиксируют “левый” или “правый” датчики. Следует заметить то, что при появлении линии на одном «левом» или «правом» датчике робот ожидает сигнала на «левом центральном» или «правом центральном» соответственно. В случае потери линии и этими датчиками, то робот продолжает поворот в ту же сторону до появления сигнала на одном из центральных датчиков, после чего выравнивает движение робота по линии.

Метод отслеживания линии

Так же был разработан метод отслеживания линии. Этот метод позволяет ехать роботу подобной конструкции вдоль одной линии, не теряя её. Метод основывается на том, что определенные датчики, получив сигнал о черной линии, влияют на поведение робота только при некоторых условиях. «Центральные боковые» датчики активируются в любых ситуациях, т.к. это означает, что линия отклонилась в ту или иную сторону от центра; или же робот пытается центрировать линию относительно себя. Крайние боковые датчики учитываются только после того как линия появится на соответствующем “боковом центральном” датчике - это позволяет нам при появлении другой линии ее не учитывать. Центральные датчики активируются после любого варианта событий. Благодаря этому робот может выбрать более плавную линию для следующего круга.

При срабатывании кнопок на препятствие робот поворачивает передние колеса в одну или иную сторону и отъезжает назад, немного едет прямо (это позволяет роботу иметь некоторую вероятность прохождения трассы в случае поломки датчиков). Скорость обработки запросов очень велика, поэтому нажатие сразу двух кнопок «словить» практически нереально, для этого после нажатия на одну кнопку было вставлено небольшое ожидание (0.1 сек) и снова делался запрос на нажатие кнопок. Если сработало сразу обе кнопки, то робот просто отъезжает назад и дальше пытается ориентироваться по линии. Вероятность того, что кнопки зациклят робота на одном промежутке трассы очень мала и за все время работы робота таких ситуаций не было.

Тестирование разработанного алгоритма

Альтернативный текст
Выступление в Чернавцах (2011)

После прошивки микроконтроллера были проведены первые испытания алгоритма на реальном роботе. Тестирование робота на трассе было успешным. Разработанная логика оправдала себя. Робот уверенно ехал по черной линии и не терял её, столкновений практически не было.

Выступления

Черновцы (Украина) - 23 марта 2011 - RoboRace

23 Марта 2011 в Черновцах состоялись первые соревнования для робота. В самый ответственные момент отказался работать ультразвуковой датчик на препятствие, в использовании которого после отказались. Робот не смог принять участие.

Львов (Украина) - 8 мая 2012 - IT фестиваль de:coded

Альтернативный текст
Выступление во Львове (2011)

В период с 6 по 8 мая 2011 во Львове робот участвовал в выставке IT фестиваля de:coded, где также принял участие в отборочном туре соревнований EuroBot, в роли которого выступал следующий тур RoboRace. Трасса на соревнованиях несколько отличалась от трассы в Чернавцах тем, что была разработана в формате 3D. Робот ехал по ней уверенно держась линии, без проблем подымался на горки и так же беспроблемно спускался с них, хотя остальные участники сталкивались с проблемами на подъеме (не хватало мощности и капитанам пришлось подталкивать робота вручную) и спуске (где роботы не могли тормозить и набирали достаточно высокую скорость, чтобы появилась вероятность вылететь с трассы). Ребята из команды RDL ни разу не притронулись к роботу во время гонок. в результате выход в финал и заслуженное 2е место и диплом.

Ивано-Франковск (Украина) - 28 мая 2011 - RoboRace

28 мая 2011 в Ивано-Франковске проходил четвертый тур соревнований RoboRace, в которых робот принял участие. В гонках участвовали множество команд с различными техническими и логическими подходами. В середине заезда у робота случилась поломка редуктора и робот не смог продолжать гонку.

Брест (Беларусь) - 29 июля 2011 - RoboRace

29 июля 2011 в Бресте проходили соревнования Roborace кубок Бреста 2011 (RoboRace Кубок Бреста 2011 в vk.com), где робот также принимал участие. На этих соревнованиях трасса отличалась повышенной сложность за счет семи сложных поворотов. Робот не смог пройти квалификацию из-за очередной проблемы с редуктором.

Статус проекта

Альтернативный текст
Трасса во Львове (2011)

Несмотря на выявленные недостатки, проект можно считать успешным, поскольку на нем были обкатаны разные алгоритмы для подобной платформы. Проект Devil окончен, однако робот используется для обучения юных радиотехников .

Технические параметры

Наименование Действие
Сервопривод {1} Определяет положение передних колес
Arduino {1}
Драйвер двигателя {1} Управление скоростью и направлением движения робота
Инфракрасные датчики на линию {6} Определение расстояние положения линии
Механические кнопки {2} Для определения столкновения робота
Батарейка АА {4} Питание электроники
Элемент питания АА {4} Для питания Двигателей робота

Поддержка и помощь

  • Робот создан при поддержке СНИЛ "Робототехника" (BrSTU_Robotics)
  • Логотип команды разработан Светланой Харко {Луцк}

См. также