Разработка автономного робота для навигации по городу
Как мы взяли первое место на Кубке РТК "Высшая лига" с TurtleBot3 на ROS2
В рамках регионального этапа хакатона “Кубок РТК: Высшая лига”, который проходил 24-25 мая в Москве, наша команда misis_robo_family разработала автономного робота с функцией распознавания дорожных знаков и возможностью следовать по маршруту, используя эти знаки. Этот проект объединил в себе современные технологии компьютерного зрения и автономной навигации.
Работа в команде
Наша команда состояла из трёх человек, задачи были распределены следующим образом:
- Программирование движения робота, работа со SLAM: Плешевич Милена.
- Программирование, сборка, работа со SLAM: Исмагилов Герард.
- Программирование, разработка модели робота, обучение YOLOv8n: Бондарь Георгий.
Аппаратно-программная платформа
Мы использовали классическую связку:
Робот: TurtleBot3 Burger
Фреймворк: ROS2
Язык программирования: Python
Всё тестирование и разработка велись на реальном роботе — никаких симуляторов. Мы сознательно сделали ставку на проверенные решения и стабильность.
Навигация и построение карты
Навигация была реализована с использованием стандартного стека turtlebot3_navigation2
.
Для построения карты использовался лидар и пакет turtlebot3_cartographer
, который отлично справился с задачей быстрой локализации в условиях хакатона.
Процесс выглядел так:
1. Проезжаем участок вручную и строим карту.
2. Задаём точки маршрута.
3. Запускаем навигацию через navigation2
, робот двигается автономно.
Распознавание знаков
Помимо лидара, мы использовали камеру — она была задействована для распознавания дорожных знаков.
Для этого применили YOLOv8n — облегчённую и быструю нейросеть, подходящую для real-time задач даже на слабом железе.
Она обучалась заранее, а на хакатоне успешно работала, позволяя роботу ориентироваться по визуальным меткам.
Результат
Робот уверенно прошёл трассу целиком, корректно ориентировался как по карте, так и по дорожным знакам, держась в своей полосе, что принесло нашей команде дополнительные 100 баллов. Мы набрали 375 баллов из 500 возможных, что позволило нам занять первое место среди всех участников.
Выводы
Хакатон показал, насколько важно сочетать готовые надёжные решения с минимальными кастомизациями под конкретные задачи. Мы грамотно собрали и настроили рабочую систему из существующих компонентов, добившись максимальной стабильности за ограниченное время.