Знакомьтесь, ArduBot: открытый робот на ROS 2 размером с ладонь и с ToF-камерой Arducam

При разработке автономного мобильного робота инженерам приходится искать компромисс: как уместить полноценное пространственное восприятие и построение карт в крошечный и недорогой корпус. Знакомьтесь, ArduBot — открытый мобильный робот с дифференциальным приводом размером всего 100 × 100 × 50 мм, который при этом умеет строить 2D-карту методом SLAM и восстанавливать трёхмерную модель окружения.
Автор проекта — jled12. Робот размером с ладонь показывает, что серьёзные решения из робототехники — навигацию на ROS 2, 3D-картографию в OctoMap и измерение глубины ToF-камерой — можно перенести на миниатюрную платформу, доступную любителям-конструкторам.

Как устроен ArduBot
Несмотря на компактные размеры, в ArduBot собраны надёжные аппаратная и программная части для ориентации в пространстве в реальном времени.
Аппаратная часть
- ToF-камера Arducam (время пролёта): основной датчик глубины, снимает подробные данные о глубине по всему углу обзора. Подробнее о ToF-камере Arducam — на странице модели.
- Raspberry Pi 4 Model B: принимает и обрабатывает данные ToF-камеры, отвечает за обмен между узлами ROS 2.
- Arduino Pro Mini (в составе Arduino Dagu Magician): низкоуровневое управление моторами, обратная связь от энкодеров колёс и сбор данных инерциального модуля (IMU).
- Инерциальный модуль BNO055 и энкодеры колёс: дают точные данные об ориентации и одометрии.
- TFT-дисплей ST7735: показывает состояние робота прямо на шасси.

Программная часть и архитектура ROS 2
ArduBot построен на распределённой схеме вычислений с ROS 2 Humble:
- На борту (Raspberry Pi и Arduino): сбор данных с датчиков, управление моторами и передача телеметрии по Wi-Fi через мост доменов ROS 2 с синхронизацией времени по Chrony.
- Вне робота (удалённый ПК): тяжёлые вычисления — SLAM Toolbox для 2D-карты занятости, Nav2 для планирования маршрута и OctoMap для объёмной 3D-карты — без задержек выполняются на хост-компьютере, результат отображается в RViz.



ToF-камера для 2D-навигации и 3D-восприятия
Одна из главных особенностей ArduBot — продуманное использование ToF-камеры Arducam сразу для двух видов карт:
- 2D-карта занятости: данные о глубине преобразуются в формат, похожий на скан лазерного дальномера, и SLAM Toolbox шаг за шагом строит по ним чистый 2D-план помещения. План сразу передаётся в Nav2 для автономной навигации.
- 3D-модель окружения: в отличие от обычного 2D-лидара, компактный ToF-сенсор Arducam снимает целую матрицу значений глубины. Она преобразуется в облако точек и добавляется в OctoMap — получается цветная многоуровневая объёмная модель препятствий, стен и мебели.
Присоединяйтесь и соберите своего робота
ArduBot — полностью открытый проект. Студенты-робототехники, исследователи и энтузиасты, которые хотят поэкспериментировать с ROS 2 и датчиками глубины, могут сразу взять исходный код, электрические схемы и файлы шасси для 3D-печати.
- Репозиторий на GitHub: ArduBot-ToF-SLAM
Дополнительные материалы
Arducam T1 (iToF первого поколения)
Arducam T2 (iToF второго поколения)
Arducam T3 (dToF)

