Pull to refresh

Что общего между револьвером, шайбами и автономным роботом

Reading time 8 min
Views 6.5K
Мы любим роботов. Мы студенты технических ВУЗов, конструкторы, электронщики, программисты, и мы все любим создавать роботов. Два года назад на базе лаборатории робототехники Сбербанка появилась наша команда setUP и тогда же впервые участвовала в соревнованиях по созданию мобильных автономных роботов Eurobot Open для молодых любителей робототехники. Команда отыграла 2 сезона, дважды стала вице-чемпионом, выходила на международный этап. Мы не спали сутками, программировали, паяли, собирали и разбирали наших роботов, находили серьезные проблемы за час до соревнований, а затем всё-таки их запускали. Ещё получили незабываемый опыт и наработали ряд интересных решений, о чем и расскажем в серии статей (осторожно, гифки).



Eurobot Open – это международные соревнования автономных роботов. Задания, поле «битвы» и игровые элементы меняются каждый год, но смысл остаётся тем же – команда создаёт двух автономных роботов, которые будут соревноваться с роботами соперника на небольшом поле за ограниченные ресурсы в течение 100 секунд. За этим коротким предложением скрывается огромное количество задач, которые команда предстоит решить, потому что роботы должны быть быстрыми, манёвренными, уметь самостоятельно выполнять задания и не сталкиваться с противником. А еще каждый год приходится разрабатывать новых роботов. И всё-таки опыт и наработки прошлых лет даёт некоторое преимущество. От сезона к сезону нужны системы локализации, предсказания движения противников и избежания столкновений, планировщики маршрута, гибкие системы управления поведением, собственная электроника и механика. Да, для решения многих из этих задач есть стандартные алгоритмы и библиотеки, но большую часть так или иначе приходится сильно модифицировать или писать с нуля из-за специфичности функционала и требованиям к ресурсоемкости.


Наша команда на российском финале в Москве.

Классное видео про наше участие в 2019 году:



Игровая тема 2019 года – “Атомная энергия”. Это не значит, что от команд требовалось сделать робота на ядерном двигателе. Просто игровым заданиям и элементам давались тематические названия. Единственным игровым объектом манипулирования были хоккейные шайбы — электроны. Шайбы различаются по весу и по цвету, а одна – ”золотая” – другого размера. Необходимо собрать максимум шайб в разных местах поля, в разных положениях, на разной высоте, рассортировать по зонам на поле в зависимости от их веса и цвета.


Так выглядело игровое поле в 2019 году

Кодовыми именами наших роботов в этом году были Чип и Дейл. Почему? Ответ думаю буден понятен из фотографии:



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



Верхний уровень был представлен одноплатным проверенным Odroid xu4 c ubuntu 16.04 и ROS Kinetic на борту. На нём крутятся все “тяжелые” задачи.

На нижнем уровне трудится STM32F407VGTX-DISC1, воткнутая в шилд собственной разработки, который позволяет удобно подключать десяток моторов, серв и гирлянду сенсоров. Их всегда набирается внушительное количество. В каждом нашем роботе содержатся лидар, 7 DC моторов, 9 сервоприводов и порядка 25 различных сенсоров (цвета, веса, расстояния, тока). И всё это, плюс ещё 6 объёмных механизмов, было размещено в компактных роботах с периметром 850 и высотой 350 мм. На самой STM'ке крутится FreeRTOS, которая обслуживает задачи, требующие исполнения в реальном времени, обработку всех сенсоров и конечные автоматы механизмов.


Вид на омниколеса робота.

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

Так, например, на следующем видео с прошедшего во Франции матча видно, как несмотря на грубейшую блокировку нашего робота из-за грубейшего нарушения правил соперником, робот ювелирно выбрался из ловушки.



Не всё так хорошо: из-за омни точность колесной одометрии очень сильно хромает: колёса не идеально круглые, ролики люфтят и имеют малое пятно контакта. Для решения этой проблемы можно периодически биться в стену и сбрасывать ошибку, или применять внешние системы корректировки. Относительно часто для этого ставят лидары на роботов. Пару лет назад появилась еще одно решение: на поле организаторы добавили место для камеры. В прошлом году мы ездили только по внешней камере с детекцией aruco-маркеров на роботе, но в этом мы одновременно прорабатывали локализацию с помощью лидара на роботе и внешней камеры. По локализации и навигации скоро будет еще одна большая интересная статья. Лидар мы не успели оттестировать, поэтому катались по камере и использовали лидар как подставку под aruco-маркеры. Плюсы системы – мы знаем положение всех роботов на поле. Из минусов — серьёзная чувствительность к внешним засветам и точности калибровки, что, к сожалению, не единожды подводило, но комплексирование одометрии и арукодетектора позволяет нам позиционироваться с точностью в несколько миллиметров на поле 2х3 метра.


Разработанная нами плата дальномеров.

Правилами запрещены столкновения с другими роботами (за это могут и дисквалифицировать), поэтому роботу важно вовремя замечать препятствия на пути. Как правило, для контроля ближней зоны ставят обычные пороговые ИК дальномеры или Sharp GP2Y0A21YK, которые крайне чувствительны к поверхности, например, срабатывают на полированный алюминий с полуметра и при этом могут не увидеть карбон в упор. Так же часто используют УЗ дальномеры, которые сильно чувствительны к углу отражающей поверхности и боятся взаимных помех. В последние пару лет быстро набирают популярность ToF дальномеры, например, VL53l0x или VL53l1x. Единожды попробовав эти датчики, тяжело от них отказаться — у них слабая зависимость от материала препятствия, высокая точность, при этом компактные и недорогие. Однако, в прошлом году мы попытались использовать VL53l0x, и всплыл ряд нюансов. Что может пойти так, когда ты сажаешь полтора десятка дальномеров на i2c, среди сгустка моторов и серв? Вдобавок, у датчиков нельзя задать постоянный адрес, ну и вишенка в их фантомном зависании. Поэтому в этом году мы сделали плату перехода на RS485, которая сильно упростила использование дальномеров. На фотографиях робота синие огоньки — это они и есть.

Тут мы всячески препятствуем роботу ехать прямо между двумя точками, и он упорно оказывается умнее нас:



Использование внешней локализации, полноценного планера, а также офигенного collision avoidance ближней зоны позволяет вытворять вот такие вещи на скорости 1 м/с. В ближайших статьях мы постараемся рассказать максимум про наиболее интересные наши решения, но сегодня хотим рассказать про особенности механики в этом году.

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

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


Расположение механизмов в роботе.

Нашей команде удалось сконструировать два одинаковых робота, каждый из которых решал весь спектр возможных в рамках соревнований задач. В роботе разместился конвейер револьверного типа на 6 шайб, и в каждый момент времени робот готов выгрузить любую из них. На поле шайбы расположены в двух вариантах: лежащие на полу и стоящие на специальной полке. Для каждого варианта спроектирован отдельный механизм сбора. Шайбы с полки собирались с помощью специального лепесткового ролика, который скидывал шайбы на рампу, по рампе шайба съезжала в нижнюю ячейку револьвера, после чего её цвет детектировался, револьвер прокручивался, а робот подъезжал к следующей шайбе.

Несущий каркас робота изготовлен из листового алюминия и 204 печатных деталей, за механизмы отвечало 6 штук Dynamixel AX-12A, один Dynamixel MX-64 и две «девятиграмовки», 3 штуки maxonmotor 16mm и один maxonmotor 22mm. Ходовая часть состоит из трех maxonmotor 22мм и 60мм омниколес. Всё это приправлено 106 подшипниками.

Почему dynamixel'и, а не стандартные сервы? У них много защит, цифровое управление, много настроек, последовательное подключение. Так же наш опыт показывает, что дешевые сервы за сезон меняются в не один раз.



Так как большинство шайб на полу расположены не в конкретных координатах, а случайно в пределах конкретной зоны, использовать манипуляторы было затруднительно, поэтому мы разработали специальный механизм «поглощения» шайб.



Шайбы выгружаются в две зоны: на весы, куда шайбы падают в неопределенном положении, и в зону ускорителя, где шайбы размещаются в вертикальном положении. Вот тут робот идеально разгружает все ресурсы в ускоритель на домашнем поле (что было в 90% случаев):



Однако, на решающих заездах это, к сожалению, отрабатывало через раз.

При выгрузке в ускоритель можно скидывать шайбы как сразу на наклонную поверхность, так и сначала выгружать на горизонтальную поверхность, а потом сталкивать на наклонную. Второй вариант даёт возможность скинуть на две шайбы больше и набрать больше очков. Поэтому этот вариант и был выбран, что, как выяснилось впоследствии, было критической ошибкой. Подъехать к стенке, выкинуть шайбу, сбросить её роликом и повторить это ещё N раз оказалось крайне трудно. Шайбы могут встать криво, не разогнаться, врезаться в стенку и, что особенно критично, заблокировать проход последующих шайб.



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

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

Ссылки на видео и более подробный обзор: официальная страница правил Eurobot. Подробный обзор от менторов команды.

Евробот не единственное чем стажеры могут заниматься в Лаборатории робототехники Сбербанка тут есть и другие стажировки, например, по интеллектуальным манипуляциям объектами, мобильным роботам, антропоморфной робототехнике на платформе iCub. А еще можно делать совместные исследования, писать диплом, магистерскую (если это пересекается с тематикой лабы). Высылай резюме и заявку в свободной форме на robotics@sberbank.ru
Наш Телеграм: t.me/SetUpSber
Tags:
Hubs:
+19
Comments 8
Comments Comments 8

Articles