ROBT-34

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

Команда Hell[o] World!

Робот ROBT-34

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

Надо отметить, что роботы могут быть манипулируемыми, т.е. управляться человеком, и автономные, т.е. способные двигаться самостоятельно. Для движения автономных роботов характерны следующие проблемы:

• низкая поворотоспособность (большой угол поворота);

• недостаточное ориентирование на маршруте (проблема логики движения);

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

Ключевыми причинами являются:

• слабость алгоритмов управления;

• выбор платформы движения;

• погрешность электроники;

В качестве решения проблемы был сконструирован робот на базе игрушечного танка.

388653.png

Его дифференциальный механизм движения в значительной мере превосходит платформы с колесными базами, что сразу же решает проблему с большим углом поворота. Но в тот же момент сильно снижается скорость движения. Для осуществления движения был установлены 2 мотора для вращения гусениц.

12.png

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

4.jpg

Нельзя не отметить, что в ходе конструирования было «сожжено» два драйвера, т.к. они просто не выдерживали нагрузки, накладываемой на них. Это говорит о необходимости изготовления специального драйвера моторов, способного выдержать большие нагрузки. Далее были изготовлены 3 инфракрасных датчика

2.png

которые подключены к аппаратно-вычислительной управляющей платформе Arduino на основе микроконтроллера ATMega168, с её помощью осуществляется управление роботом.

33.jpg

Выбрана она ввиду простоты прошивки и кодирования. Также к ней подключен драйвер моторов, т.к. для поворота танка необходимо замедлить одну гусеницу, а на крутом повороте и вовсе остановить. Питание у робота раздельное: 4 батарейки стандарта АА питают моторы, а девятивольтная крона питает электронику. Алгоритм движения можно представить в виде графа состоянии

44.jpg


Состояния: x1 – левый датчик на черном

x2 – центральный датчик на черном

x3 – правый датчик на черном

x1 – левый датчик на белом

x2 – центральный датчик на белом

x3 – правый датчик на белом

y0 – переключатель выключен

y1 = x¬1x2x3 – прямо

y2 = x¬1x2x3 v x¬1x2x3 – влево

y3 = x¬1x2x3 v x¬1x2x3 – вправо

y4 = x¬1x2x3 v x¬1x2x3 v x¬1x2x3 – выполнение последнего состояние

Словесное же описание алгоритма следующее: после включения робот движется до тех пор, пока датчики на белой линии. Если правый датчик или средний и правый находятся на черной линии, следует выполнить поворот до тех пор, пока средний датчик вновь не окажется на черной линии. Аналогично для состояния левого датчика или левого и среднего одновременно. В случаи, когда все датчики на черном, все на белом или крайние на черном, а средний на белом, роботу дается команда выполнять последнее состояние пока средний датчик на белой линии.

Простота алгоритма позволяет с легкостью использовать его для управления роботом. Данный алгоритм позволяет нивелировать неточности, вызванные шасси, возвращая робота на линию. Например, если робот ехал прямо по линии, и левую гусеницу заклинило. Из-за различного вращения гусениц робот начнет поворачивать влево, что приведет к потере линии. Центральный датчик потеряет линию. При этом последним ее увидит правый боковой датчик. Произойдет поворот робота в другую сторону, что вернет его на линию. Алгоритм также позволяет двигаться по незамкнутой линии (за счет запоминания и выполнения последнего состояния). Данный алгоритм описан на специальном языке Arduino, предназначенном для разработки программ и прошивки их в платы Arduino. Язык Arduino - Си-подобный усовершенствованный (возможность реализации классового описания программ). Производителями плат выпущена специальная среда разработки для написания программ, их компиляция и последующей загрузки в робота. В результате моделирования получился робот под названием « RobT-34»:

388677.png


На этапе подготовки робота все тесты проводились в университете на импровизированной трассе. После ряда испытаний мы решили протестировать робота в более реальных условиях и приняли участие в международном чемпионате «ROBORACE». Где робот показал себя очень достойно, в соревнованиях такого типа мы участвовали впервые и какой либо опыт у нас просто отсутствовал, но это не помешало нам занять 5 место. Из соревнований мы вынесли много интересных впечатлений, кучу идей, а так же ценнейший опыт. Конечно же, возник ряд трудностей, которые мы не смогли предусмотреть. Мы не учли что на трассе могут присутствовать несколько роботов, что приводило к столкновениям приносившим некоторое неудобство, из-за того что мы распределили инфракрасные датчики клином, в резкие, угловатые повороты (менее 45 градусов) робот не входил или тратил слишком много времени на их преодоление. Так же хотелось бы отметить, что платформа танка себя оправдала, за соревнования мы умудрились вывести из строя 3-ёх роботов противника, причем все произошло довольно случайно, два робота просто сами зацепились за нас и сломали себе датчики, одного робота мы просто переехали, после чего он вышел из строя.


Это была наша первая проба в робототехнике и в соревнованиях такого типа. Дальнейшая судьба робота оказалась довольно плачевной, мы не смогли поучаствовать в поездке во Львов, на IT- фестиваль «Decoded». Из-за банального не наличия денежных средств на поездку, а так же из за того что робот был просто не готов к соревнованиям. Успех на «ROBORACE» в Черновцах видимо заставил нас не переживать о работоспособности нашего робота, за что мы и поплатились. После этого была возможность поучаствовать в следующем этапе соревнований «ROBORACE» в Ивано-Франковске. Но и её мы не реализовали, отчасти из-за не возможности найти валюту, из команды реально мог поехать только 1-человек, но так же ни кто не захотел готовить робота к соревнованиям в итоге мои попытки подготовить его к поездке оказались неудачны. Следующий этап соревнований проводился у нас в Бресте. Организация соревнований полностью лежала на нашем коллективе «BrSTU ROBOTICS», все это было довольно не просто, но мы сделали это на очень высоком уровне.

Get img (1).jpg

Выступление на этих соревнованиях оказалось невозможным в самый последний момент, к сожалению, датчики отказались работать. Велика вероятность, что плата Arduino отжила свое. К этим соревнованиям робот претерпел довольно много внутренних и внешних изменений, была увеличена скорость, я отказался от датчиков черной линии, и решил использовать ИК-датчики, на данный момент иметься только 1, с левого бока, для движения по борту, так же было установлено два драйвера моторов, отдельно на каждый мотор.

В планах внесение изменений в конструкцию робота, усовершенствование всех составляющих и подготовка к следующему этапу соревнований ROBORACE.

Путь не легок, но это не значит, что его не пройти.

Огромная благодарность коллективу BrSTU ROBOTICS.