Как стать автором
Обновить

Как у нас почти получилось сделать автономного робота для «Битвы Роботов»

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров3.8K
Всего голосов 33: ↑33 и ↓0+41
Комментарии18

Комментарии 18

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

Да, спасибо!

Год 2025, автономный робот-гопник зажимает робота-курьера в темных подворотнях иннополиса и отвешивает ему щелбанчиков.

зажимает робота-курьера 

Учитывая, какие у автора остальные статьи вы.. несколько оптимистичны :)

Мне должно сразу полегчать, что их с надводного судна будут десантировать?)

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

Можете побольше про камеры рассказать? Я так понял, что использовали беспроводные. Крепили внутри или снаружи арены?

а что именно про камеры интересует? Мы использовали 6 камер CleverCam B3 Wide. Мы повесили все камеры внутри арены вертикально вниз. Все изображения сшили. У нас было несколько часов на это, поэтому не успели все откалибровать и получили много слепых зон)
Сами камеры крепили на двойной скотч (только эту опцию разрешили организаторы). Провода аккуратно укладывали и выводили за арену, где каждая заходила в общий хаб.

Интересно два вопроса:
1. Как робот двигается в нужном направлении? Получается, полноценно вращается одно колесо, а остальные двигаются в противофазах, чтобы компенсировать боковой сдвиг? Не создаёт ли это дополнительное сопротивление?
2. Были ли в истории Битвы роботов "засадные" роботы? Которые не крушили противника, а сидели неподалёку от ловушек (шнеков) и в нужный момент сталкивали их туда.

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

На 2 вопрос у меня ответа нет) Но думаю, что в русской "Битве роботов" не было. По ощущениям ловушки не очень мощные. Может были какие то локальные стратегии с ловушками, но точно никто не разрабатывал робота ради этой стратегии

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

например: канал связи тут вероятно обычный wifi ? что с задержками и стабильностью, раз "мозги" вынесены наружу это важно. Как сильно были нагружены ноуты (другими словами какой процессорной можности нужно чтобы осилить такое деяние)? какой програмный стэк использовался (кроме MATLAB/Simulink) ?

Мало технических деталей это спорное утверждение) По сути в статье описаны все методы и алгоритмы которые мы использовали, для меня как для робототехника - это главные технические детали, остальное - частные технические решения реализации.
Мы использовали следующий метод передачи данных. На 1 ноутбуке крутился phyton код технического зрения. Данные с технического зрения (положение и ориентация нашего робота, положение робота противника) передавались на 2 ноутбук с Matlab/Simulink по udp по кабелю Ethernet, где был наш алгоритм планирования движения и слежения за траекторией. Два Ноутбука мы использовали, потому что на 1 был Linux (на винде мы не смогли добиться такой же скорости запуска технического зрения. Организаторы разрешили нам перезапустить скрипт, если он сломается. На винде это занимало 5 минут. На линуксе пару секунд. Опцией с перезапуском мы не воспользовались, техническое зрение отработало нормально). С ноутбука на котором был симулинк мы передавали данные на stm по последовательному порту, которая была интегрирована в пульт управления. Stm подменяла данные управления на пульте (как если бы мы нажимали на стики пульта). Далее данные передавались по стандартным протоколам радиоканала (которые реализуются на пульте). Пульт управления у нас был стандартный, как у большинства команд (название сейчас не напишу, к сожалению).
По поводу задержек. Во время тестовых запусков задержки не бросались в глаза, численно оценить не могу, но думаю, с учетом передачи данных между ноутбуками и пультом по последовательному порту и далее по радиоканалу они были чуть выше, чем у участников управляющих просто с пульта.
Ноутбуки были нагружен не значительно. В тестовых запусках мы запускали все с одного ноутбука (ждали запуск технического зрения много минут) и все работало. Вот его характеристики.

Процессор

Intel Core i7 12700H (14x3.20 ГГц)

Память

оперативная 16 ГБ (DDR5), SSD 1 ТБ

Видеокарта

NVIDIA GeForce RTX 3060 Ti

При этом хочу заметить, что описанный стек (не считая передачи данных по пульту) мы используем в наших научных работах. Таким же образом мы запускали на факультете роботизированные корабли, мобильные роботы (обычные колесные, омни, меканум, гусеничные) и здесь мы использовали и более слабое железо и все работает). Если хотите ознакомиться вот ссылка: https://scholar.google.com/citations?hl=ru&user=IYvh9e8AAAAJ&view_op=list_works&sortby=pubdate

Для чего вам разрешили утяжелить робота на 50 кг, если вся автономность была вынесена из корпуса?

Так написано в правилах 2024 года. Думаю это некоторая фора для автономных роботов, т.к. сейчас на битве роботов их нет. Автономный мобильный робот в условиях битвы роботов это очень комплексная и нетривиальная задача, поэтому, думаю +50 кг, вполне оправдано. Если бы можно было как в американской лиге переходить на пульт (для коррекции поведения) можно было бы и не давать фору)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий