Pull to refresh

Гонки ROBORACE

Так как тут ещё не было статьи о ROBORACE, я решил восполнить этот пробел. Я немного расскажу вам о самих соревнованиях и о моём роботе.

image

Roborace — это проект робототехнических соревнований. Эти соревнования во многом черпают идеи из соревнований Формулы 1, но с тем отличием, что соревнуются не управляемые пилотами болиды, а полностью автономные роботы. Роботы полагаются на показания своих датчиков что бы ориентироваться по трассе. Турнир включает соревнования, в которых могут принимать участие как простые узконаправленные конструкции, созданные начинающими, так и комплексные робототехнические устройства со сложной программной частью. Регламенты соревнований формируются таким образом, чтобы охватить как можно более широкий спектр характеристик и возможностей робототехнических конструкций.


Кому интересно, прошу под кат:

image

Игровое поле представляет собой прямоугольник площадью от 50м2, реализованной на белом
покрытии с продольными черными линями, а ее края ограничены бортами. Задача робота проехать трассу как можно быстрее. Все роботы стартуют одновременно, поэтому толкучка на старте всегда приводит к авариям. Столкновения с роботами соперниками разрешены.

Видео соревнований:



Соревнования проходят в Украине (Тернополь, Львов, Киев, Черновцы, Иванофранковск), Беларуси (Брест), России (Ковров, Красноярск).

В соответствии с регламентом соревнований был сделан робот. Я решил назвать его «Pancar», это название созвучно с названием класса моделей «pancar 12». Шасси было куплено мною в Минске на барахолке, как потом выяснилось модель на этом шасси была чемпионом Беларуси по кольцевым гонкам радио-моделей в классе 1/12 электро.

image

В движение робота приводит коллекторный электромотор, рулевое управление осуществляется сервой. Мозг робота Arduino Nano, установленный на самодельную плату расширения, для удобного подключения сенсоров. Я использовал датчики расстояния Sharp GP2Y0A02 с диапазоном измерения 20-150 см. Для того чтобы избежать попадания препятствий в мертвую зону датчика, я установил их вглубь робота в среднем на 20 см.

Над программным обеспечением я работал со своей девушкой. Было решено сильно не усложнять логику, а сделать всё максимально просто. У робота есть два параметра которыми мы можем управлять это угол поворота передних колёс и скорость. Мы решили что скорость будет зависеть от поворота передних колёс, чем больше угол поворота тем меньше скорость.
Угол поворота рассчитывается исходя из показаний датчиков по следующей формуле:

Угол = (-(Л1 + Л2)+(П1+П2))*К

Л1, Л2 — сенсоры которые смотрят влево
П1, П2 — сенсоры которые смотрят вправо
К — коректирующий коэфициент

Так как робот едет в туннеле то в идеальном случае разность между двумя правыми и двумя левыми датчиками должна быть равна нулю. При повороте разность увеличивается и робот поворачивает. Для увеличения скорости поворотов при обнаружении репятствий по направлению движения был введён корректирующий коэффициент К. Центральный датчик регулирует чувствительность, чем ближе к препятствию, тем больше становится коэффициент К, и тем сильнее робот «хочет» повернуть. Настройка предельных значений коэффициента К делалась экспериментально. Для этого к роботу подключили приёмник от радио-модели и с помощью регуляторов авиопульта настроили их. Также в программу включили небольшой модуль определения столкновений. Если значение сенсоров становятся меньше заранее определённых констант, то робот отъезжает назад, а затем продолжает движение. Сразу же во время тестов мы столкнулись с проблемой: при выходе из поворота робота немного заносило. Проблема была в том что программа не предусматривала инерционность сервопривода. Робот на выходе из поворота видел перед собой чистую трассу подавал на серву угол в 0 градусов и включал мотор на полную мощность, но так как серве нужно некоторое время для установки 0, а мотор уже начинал вращаться с пробуксовкой, то робота начинало заносить. Я решил установить в серву обратную связь. Для этого я подключил средний вывод потенциометра в серве через резисторный делитель к аналоговому порту ардуины. Теперь робот точно знал угол поворота передних колёс и мотор не включается преждевременно.

Для более презентабельного вида, я установил белый корпус от радио-модели и алюминиевый бампер.

image

На фотографии два гоночных робота белый и чёрный. Белый это уже завершённый проект «Pancar», чёрный это новый проект который я тоже опишу, если вам будет интересно.

Ну и напоследок видео с соревнований где «Pancar» занял второе место.

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.
Change theme settings