Инструкция по сборке роботизированной платформы для изучения ROS с грузоподъемностью более 30 кг
ROS — это мета-операционная система (с открытым исходным кодом) для роботов. Это превратилось в стандарт отрасли. Имея готовый интерфейс обмена сообщениями между различными узлами Вашей системы и огромное количество готовых решений для различных компонентов очень легко построить своего робота.
Для ROS есть среда-симулятор Gazebo, т.е. можно программировать робота даже не имея его физически. Первое знакомство с ROS у большинства вызывает восторг, Вы публикуете и читаете топики, пробуете управлять turtlesim. А дальше может возникнуть проблема с переходом к полноценно действующим роботам, которые взаимодействуют с окружающей средой. Некоторая часть идет дальше и создает необходимого робота в симуляторе. Многие так и застревают в gazebo, им я посвящаю данный пост.
После публикаций на habr.com о роботах и робототехнике со мной связываются заказчики с потребностью в разработке роботизированных решений. Интересной задачей является организация навигации логистических роботов с получением глобальных целей из существующей системы управления складом (WMS). Заказчик сам разрабатывает механику тележки, но чтобы параллельно работать над софтом требуется платформа, которая сможет имитировать перемещение грузов. Так же отработки алгоритмов нашего робота в условиях суровой и дождливой зимы нам потребовалась indoor-платформа. Составили требования минимального оборудования:
- Платформа с 2 колесами
- Грузоподъемность не менее30кг.
- Лидар RPlidar A1
- Одноплатный компьютер Raspberry Pi
- Платформа Arduino Mega
- Сонары
Первая мысль была использовать готовую платформу. Мы оценили рынок подобных решений для ROS. TurtleBot3 Burger и робот на Neato нам не подходил, т.к. хотели имитировать доставку коробок.
Фото | Название | Цена |
---|---|---|
Rover Robotics 2 WD Rover Pro | $7,750.00 | |
ROSbot 2.0 | $1,700 | |
Mobile Robot MP-500 | $9,700 | |
MiR100 | $24,000 | |
Ubiquityrobotics Magni | $1,900 | |
Robotnik RB-1 BASE | $12,700 | |
Milvus MRP2 | $9,000 | |
Innok Heros 223 | $15,700 | |
Fetchrobotics Robot Base | $13,400 | |
soyrobotics ROCH | $7,000 | |
TIAGo Base | $11,200 | |
Enovarobotics MINI LAB | $2,900 | |
Clearpath Jackal UGV | $17,000 |
После сбора этих данных было принято волевое решение делать свою платформу. Мы собрали максимально бюджетную платформу, размещаю инструкции по сборке, возможно, кому-то пригодится.
Размер корпуса 320*620*195мм
Корпус изготовим ЧПУ фрезеровкой композитного материала. Кому нужен файл для раскроя пишите мне на почту, в конце поста.
При резке предусмотрели прорези для мест гибки. Сборка на уголки.
BLDC 10' колеса, драйвер колес, батарею и зарядку возьмем из гироскутера. Можете для этого купить новый, в любом случае выйдет дешевле чем соответствующие детали по отдельности.
Колеса крепим к корпусу при помощи напечатанных деталей https://www.thingiverse.com/thing:2990353
Плату гироскутера необходимо перепрошить. Я воспользовался этой прошивкой github.com/NiklasFauth/hoverboard-firmware-hack, есть вариации. В интернете есть online компилятор.
В качестве основы для навигации будем использовать одометрию с колес и Rplidar A1.
В качестве компьютера Raspberry Pi как бюджетное популярное решение, думаем над версией с jetsoin nano.
Так как лидар требует до 1А, Raspberry Pi до 2А, Arduino решено было поставить разветвитель USB с отдельным питанием через понижающий преобразователь от основной батареи.
ROS Master находится на отдельном компьютере, так как планируем добавить камеру realsense.
Большинство нод запущено на мастер- компьютере:
- нода получения координат текущей цели из базы
- joy
- move_base
- amcl
- gmapping
Часть нод на ровере:
- rosserial_arduino
- rplidar_ros
Данный робот имеет все шансы стать отдельным коммерческим проектом.
Работы еще много:
- необходимо создать URDF модель
- разработать сценарии использования платформы
- продумать совместимость с другим оборудованием
- настроить работу нескольких роботов одновременно
Если Вы желаете приобрести данный комплект за себестоимость комплектующих или желаете стать частью проекта и развивать данный продукт вместе с нами напишите мне https://forms.yandex.ru/u/5e3d0be770f10402303acf87/
Pavel9860
Есть несколько вопросов:
1. Как в прошивке платы гироскутера реализована одометрия? (насколько помню в оригинальной прошивке ее не было)
2. В управлении двигателями реализовано блочная коммутаци или векторная?
3. Платформа выдерживает 30 кг с напечатанными креплениями двигателя?
Думаю стоит создать проект на GIT в котором выложить код на ROS, схему подключения и раскрой материала.
По моему мнению корпус лучше сделать из листа АМГ или Д16 2мм, вырезанного на лазере и согнутого на ЧПУ. Для сборки использовать бонки (заклепки с внутренней резьбой) впотай.
webzuweb Автор
Одометрию пришлось дописывать в прошивке. Эти данные есть с холлов, вывели их через serial на arduino.
Коммутация векторная, по видимому.
С напечатанными креплениями выдерживает больше. ABS с 90% заполнением.
На GIT разместим.
Корпус из АМГ будет дороже.
Gryphon88
Не сравниваете с данными с драйвера, чтобы детектировать пробуксовку?
webzuweb Автор
Данные мы и получаем с драйвера. Пробуксовку не детектировали. Можно с IMU сравнивать.
Guronn
С датчика холла, сколько сигналов(частота) получаете на метр пути? по моему сильно меньше 40, и это явно не достаточно.
2 года назад экспериментировал с мотором и энкодером из набора ардуино, скорость была рывками, разобрав робот пылесос румбу, там поступало >~1000 сигналов на метр. По этому на для полноразмерного робота(т.е. тоже на мотор-колесах) «изобретал» планетарный редуктор, но не доделал(
webzuweb Автор
На метр около 60 импульсов.
AmigoRRR
90 тиков на оборот, для нормальной одометрии и пидов не достаточно