Робот TurtleBro 2

Образовательный робот TurtleBro разработан для изучения основ современной робототехники на примере мета-операционной системы Robot Operating System (ROS), работающей в среде Linux.
Данная документация описывает устройство робота, основы работы с ним.
Робот TurtleBro2 является обновлением робота TurtleBro и ориентирован на работу с ROS2
TurtleBro — это удобная и современная платформа для обучения и разработки в ROS2. Он помогает быстро освоить ключевые концепции робототехники и применяется в образовательных и исследовательских проектах.
Основные задачи робота TurtleBro:
- Обучение ROS 2
- TurtleBro 2 создан для работы с ROS2 (современной версией Robot Operating System), что позволяет студентам и разработчикам изучать актуальные технологии в робототехнике.
- На нём можно осваивать:
- Базовые принципы построения роботов на основе ROS2
- Программирование на
python/c++ - Работа с микроконтроллерами
- Управление двигателями и датчиками
- Навигацию (SLAM, картографирование, планирование пути)
- Компьютерное зрение (OpenCV, YOLO и др.)
- Машинное обучение для роботов
- Быстрый старт в робототехнике
- Робот поставляется в готовом виде, что позволяет сразу приступить к программированию, не тратя время на сборку и наладку.
- Подходит для среднего профессионального образования, университетов, курсов и самостоятельного изучения.
- Исследования и прототипирование
- TurtleBro можно использовать для тестирования алгоритмов автономного движения, взаимодействия с IoT-устройствами, разработки новых методов ИИ.
- Его модульность позволяет добавлять новые датчики и компоненты (лидары, камеры, манипуляторы).
Ключевые особенности робота TurtleBro
- Интегрированная плата Платформа создана в формате единой платы, содержащей все необходимые компоненты.
- Датчики: Лидар (RPLidar A1), широкоугольная камера (GlobalShutter), датчик IMU (bno055), датчики скорости вращения колес.
- Мобильность: дифференциальный привод, встроенный аккумулятор
- Вычислительная мощность: Raspberry Pi 5.
- Дополнительный микроконтроллер Совместимый с ArduinoDUE для "пользовательских" задач
- Совместимость с другими платформами Аппаратная платформа робота совместима с аналогичными ROS роботами, например такими как TurtleBot 3/4
- Встроенная аудио-карта и усилитель Позволяет воспроизводить аудио файлы и использовать синтезатор речи.
Для кого предназначен робот TurtleBro?
- Студенты и преподаватели — для курсов по робототехнике и ИИ.
- Разработчики — для тестирования алгоритмов перед внедрением в промышленные системы.
- Энтузиасты — для экспериментов с автономными роботами.
Робот разработан и поддерживается проектом "Братья Вольт" http://www.voltbro.ru
Купить робота http://www.turtlebro.ru
Быстрый старт
Раздел содержит самую необходимую информацию по работе с роботом и рассчитан на опытных пользователей, знакомых с ROS и linux.
Робот поставляется в собранном и полностью настроенном состоянии.
Подготовка к первому включению
Перед первым включением, вам необходимо установить аккумулятор.
- Подключите аккумулятор к 5 жильному кабелю (кабель необходим для зарядки аккумулятора)

- Установите аккумулятор в заднюю нишу (подключите его к разъему XT-90)

- Включите робота тумблером на плате (расположен с права от Raspberry)
Сетевые настройки
По умолчанию при старте Raspberry Pi попытается подключиться к Wi-Fi точке доступа с параметрами:
SSID: TurtleBro
Pass: turtlew001
или
SSID: TurtleBro5G
Pass: turtlew001
Также робот можно подключить сетевым кабелем к роутеру с настроенным DHCP сервером.
Доступ к роботу по SSH
Данные доступа к роботу
user: pi
password: brobro
Вы можете подключиться к роботу если у вас работает служба mDNS
pi@turtlebroNN.local
Где NN — номер на сетевом разъеме RaspberryPI.
Удаленное подключение к ROS
Робот настроен для работы c FastDDS в режиме Discovery-Server.
Настройки FastDDS находятся в файле /home/pi/.ros/fastdds_superclient.xml
Аналогично вы можете настроить удаленное подключение с любого компьютера сети.
wget https://raw.githubusercontent.com/voltbro/turtlebro2/refs/heads/jazzy/extra/fastdds_superclient.xml
export FASTRTPS_DEFAULT_PROFILES_FILE=./fastdds_superclient.xml
Более подробно, про подключение к сети ROS в разделе инструкции Настройка сети ROS
Безопасность
Перед использованием робота необходимо внимательно изучить данный раздел. В случае использования робота в учебном классе преподаватель должен ознакомить учеников с основными частями раздела.
Работа с Li-Po аккумулятором
В комплекте с роботом идет литий-полимерный аккумулятор. Данный тип аккумулятора может выдавать очень большие токи, что в случае короткого замыкания или механического повреждения может привести к его возгоранию.
Необходимо максимально аккуратно производить любые операции с аккумулятором, избегая его ударов, падений и других механических воздействий. Не допускается использование поврежденных (в том числе вздутых) аккумуляторов.
Аккумулятор оснащен разъемом T-Plug, который не позволит перепутать полярность при подключении к роботу.
На плате функционирует блок контроля напряжения аккумулятора, отключающий большинство систем робота при разряде батареи. В состоянии с разряженным аккумулятором робот прекращает работу и начинает издавать звуковой сигнал с интервалом 30 с. Для продолжения работы необходимо выключить тумблер питания и произвести зарядку батареи.
INFO Хранение робота должно происходить без установленного в робот аккумулятора.
Раз в 6 месяцев необходимо производить контроль состояния аккумуляторных батарей и в случае необходимости произвести балансировку блоков 18650.
Работа c блоком питания
WARNING Подключайте робот только комплектным блоком питания.
Напряжение блока питания должно быть: 18-24 В. Блок питания от TurtleBro 1 не подходит для работы с роботом TurtleBro 2.
Робот TurtleBro 2 имеет собственную систему зарядки аккумулятора. При подключении робота к блоку питания, происходит зарядка установленного в робот аккумулятора.
Запрещается оставлять подключенный робот к блоку питания без присмотра, даже если робот выключен.
Подключение выносных датчиков
Запрещается подключать к роботу датчики, которые каким либо образом будут зафиксированы на теле человека:
- Медицинские датчики (ЭКГ и т.п.)
- Датчики интегрированные в одежду (перчатки с датчиками положения пальцев и т.п.)
Первое включение робота
Вид собранного робота
Робот поставляется в собранном виде.

Перед первым включением, вам необходимо установить аккумулятор.
Подключите аккумулятор к 5 жильному кабелю (кабель необходим для зарядки аккумулятора)

Установите аккумулятор в заднюю нишу (подключите его к разъему XT-90)

Для включения робота необходимо подать питание на разъем "DC IN" или подключить заряженный аккумулятор, а затем перевести переключатель питания в положение ON.
Аккумуляторный блок
Блок аккумуляторов состоит из 4 аккумуляторов типа 18650. Установку аккумуляторов необходимо производить согласно полюсов, изображенных на плате блока.
При выборе аккумуляторов необходимо проверить, что напряжение каждого аккумулятора не должно отличаться более чем на 0.2 вольта относительно друг друга. Если аккумулятор превышает заданное отклонение, необходимо провести перебалансировку всего блока.
При этом минимальное и максимальное напряжение должно быть в интервале от 2.6В до 4.2В.
Настройки сети и SSH
Настройка сети
Мы рекомендуем использовать единую сеть для всех устройств входящих в учебный класс. Желательно наличие интернета в этой сети.
Все роботы по умолчанию настроены для работы в WiFi и Ethernet в режиме клиента с получением настроек по DHCP.
Подключение к Wi-Fi
По умолчанию при старте Raspberry Pi попытается подключиться к Wi-Fi точке доступа с параметрами:
SSID: TurtleBro
Pass: turtlew001
или
SSID: TurtleBro5G
Pass: turtlew001
Поэтому мы рекомендуем использовать именно такие настройки Wi-Fi роутера для работы с роботом TurtleBro
Подключения к Ethernet
При подключении робота сетевым кабелем к вашей сети робот подключится, используя данные вашего DHCP сервера.
Настройка подключения робота к другой WiFi сети
Файл настройки подключения к сети /etc/netplan/20-network-wifi.yaml
Пример конфигурации
network:
version: 2
wifis:
renderer: networkd
wlan0:
dhcp4: true
optional: true
access-points:
Aespen_2:
password: 541a6d0759e7bebc027240dbfdb09b6a40a5781d4411dfcbef877695abd8ac7d
Подключение по SSH
По умолчанию на Raspberry Pi запущен SSH сервис на стандартном порту
SUCCESS Имя пользователя ssh:
piПароль для ssh:brobro
Каждый робот имеет уникальное имя вида turtlebroNN.local, где NN — это номер. При правильной настройке сети и вашего роутера вы сможете сразу подключиться к Raspberry по его имени.
ssh pi@turtlebro20.local
Если подключение не происходит, вам необходимо определить IP-адрес робота. Это можно сделать, подключившись к роутеру и найдя имя робота в списке подключенных устройств. Далее подключиться к роботу можно по IP, где 192.168.0.11 — это адрес робота.
ssh pi@192.168.0.11
Для доступа по SSH из Windows можно использовать программу PuTTY или воспользоваться встроенным терминалом.
Смена пароля пользователя
Для смены пароля вам необходимо знать ваш текущий пароль или быть пользователем с возможностью запускать программы через sudo.
Для смены пароля текущего пользователя просто запустите программу passwd. Далее необходимо указать ваш текущий пароль и установить новый. В разных дистрибутивах могут быть свои ограничения на длину и "сложность" пароля. Поэтому поставить очень простой пароль вы не сможете.
Для смены пароля другому пользователю выполните команду sudo passwd user_name, где user_name — это имя пользователя, которому вы хотите сменить пароль. Так как вы запустили программу с привилегиями sudo, то для смены пароля не нужно знать его текущий пароль. Также перестают работать ограничения на сложность пароля.
Веб-интерфейс
Для начала работы и проверки робота вы можете зайти на веб-сервер http://<IP-адрес робота>:8080 (указав IP-адрес вашего робота).
На этой странице будут доступны основные данные и изображение, получаемое от камеры:
Роботом можно управлять кнопками WSAD.
Выключение робота
Безопасное выключение (сохранение файлов на microSD карту)
Если вы редактировали файлы на роботе и хотите действительно убедиться, что при выключении робота они не потеряются, то прежде чем выключить робота, необходимо выполнить команду:
sudo sync
Данная команда запишет все "закешированные" файлы на microSD карту. Только после этого возможно выключить робота тумблером выключения питания или перезагрузить его.
Образ Raspberry Pi
Базовые параметры
Компьютеры Raspberry, идущие в комплекте с роботами, поставляются с предустановленными ОС Ubuntu Server и ROS Jazzy и всеми необходимыми системными пакетами.
На базовом образе Ubuntu Server отключены настройки cloud-init, для того чтобы работа с компьютером была более похожа на работу Ubuntu desktop.
Образ RaspberryPi
Обновление образа ОС возможно через скачивание и полную перезапись microSD карты. Необходимый размер карты не менее 16 Gb.
Образ можно использовать для следующей модели Raspberry:
- Raspberry 5
Последний актуальный образ можно скачать в Яндекс.Диске Latest
Все доступные образы можно найти Яндекс.Диске Archive
Рекомендуем выбирать самую последнюю версию!
Загрузка образа ОС на SD-карту без настроек
Проще всего загрузить образ на SD карту с помощью программы balenaEtcher https://www.balena.io/etcher/
Программа обладает поддержкой всех основных операционных систем.
По умолчанию, имя робота установлено turtlebro01.
Рекомендуется сразу изменить его на имя согласно номеру платы turtlebroNN. Для этого необходимо отредактировать файлы /etc/hosts и /etc/hostname, расположенные на роботе, и переименовать turtlebro01->turtlebroNN.
Настройки сети ROS
Удалённое подключение к ROS
Архитектура ROS позволяет подключать множество сетевых устройств в одну ROS-сеть. В этом режиме любое устройство имеет доступ к данным других устройств. Например, вы можете объединить настольный компьютер и робот в одну сеть и работать с ними удалённо.
В таком режиме удобно на компьютере запускать программы визуализации, такие как rviz, или ресурсоёмкие процессы.
Что такое DDS
В ROS 2 обмен данными между узлами (нодами) построен на технологии DDS (Data Distribution Service) — промышленном стандарте передачи данных в распределённых системах. DDS отвечает за то, чтобы топики, сервисы и экшены работали «из коробки» без необходимости вручную настраивать транспорт. Когда один узел публикует сообщение, DDS автоматически находит всех подписчиков в сети и доставляет им данные, обеспечивая надёжную и предсказуемую связь.
ROS 2 поддерживает несколько реализаций DDS от разных производителей: FastDDS, CycloneDDS и другие. Каждая из них имеет свои особенности по производительности и настройке. На роботе TurtleBro 2 используется FastDDS — реализация с открытым исходным кодом от компании eProsima, которая является DDS по умолчанию в ROS 2 Jazzy и совместима с microROS.
Режимы работы FastDDS
FastDDS поддерживает два основных режима обнаружения участников сети: Simple Discovery и Discovery Server. Они определяют, каким образом узлы ROS 2 находят друг друга при запуске. Выбор режима напрямую влияет на стабильность работы, объём служебного трафика и удобство настройки, особенно когда робот работает по WiFi или в одной сети с другими роботами.
Simple Discovery — режим по умолчанию в ROS 2. В этом режиме каждый узел периодически рассылает широковещательные (multicast) пакеты в локальную сеть, сообщая о своём существовании. Все остальные узлы принимают эти объявления и автоматически устанавливают связь. Режим не требует никакой дополнительной настройки — достаточно, чтобы все устройства находились в одной подсети и имели одинаковое значение ROS_DOMAIN_ID. Это удобно для быстрого старта и отладки на одном компьютере.
Однако у Simple Discovery есть существенные ограничения. Multicast-трафик плохо работает через WiFi-маршрутизаторы — пакеты могут теряться или блокироваться. В учебном классе, где одновременно работают несколько роботов, широковещательные объявления от всех устройств создают лишнюю нагрузку на сеть и приводят к тому, что узлы одного робота могут «видеть» узлы другого, если значение ROS_DOMAIN_ID совпадает.
Discovery Server решает эти проблемы. В этом режиме один из участников сети назначается сервером обнаружения — остальные узлы подключаются к нему напрямую по заданному IP-адресу и порту. Multicast-рассылка не используется, весь обмен служебной информацией идёт через сервер. Это делает работу по WiFi стабильной и предсказуемой, а узлы разных роботов полностью изолированными друг от друга, поскольку каждый робот использует свой собственный Discovery Server.
На роботе TurtleBro 2 по умолчанию используется режим Discovery Server. Бортовой компьютер робота выступает сервером обнаружения, а все ROS-узлы (включая microROS на контроллере) подключаются к нему как клиенты. Для подключения удалённого компьютера к роботу достаточно указать IP-адрес робота в конфигурационном файле FastDDS и задать переменную окружения.
Настройка робота для работы с Discovery Server
Основные настройки находятся в файле /home/pi/.ros_params.
К настройке работы по сети относятся несколько переменных окружения.
# Установка ROS_DOMAIN_ID для режима Simple Discovery
export ROS_DOMAIN_ID=1
# Определение типа DDS
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp
# Подключение файла конфигурации для режима Discovery Server
export FASTRTPS_DEFAULT_PROFILES_FILE=/home/pi/.ros/fastdds_superclient.xml
Если установлено значение FASTRTPS_DEFAULT_PROFILES_FILE, то робот работает в режиме Discovery Server. Если эту строчку закомментировать, робот будет работать в режиме Simple Discovery.
Настройка рабочего места для подключения к сети ROS
Чтобы ваш компьютер мог видеть топики, сервисы и узлы робота, его необходимо подключить к Discovery Server, который работает на бортовом компьютере робота. Существует два способа это сделать: через XML-файл конфигурации FastDDS или через переменные окружения ROS 2.
Способ 1: XML-файл конфигурации (рекомендуемый)
Скачайте готовый файл конфигурации с настройками Super Client:
wget https://raw.githubusercontent.com/voltbro/turtlebro2/refs/heads/jazzy/extra/fastdds_superclient.xml
Откройте скачанный файл fastdds_superclient.xml в текстовом редакторе. Ключевые параметры, которые нужно понимать:
- Тег
<discovery_protocol>SUPER_CLIENT</discovery_protocol>— определяет роль вашего компьютера в сети. ЗначениеSUPER_CLIENTозначает, что ваш компьютер будет подключаться к Discovery Server как привилегированный клиент, который видит все топики и сервисы. ОбычныйCLIENTвидит только те узлы, с которыми он обменивается данными напрямую. - Тег
<leaseDuration>— задаёт время аренды (в секундах и наносекундах), в течение которого сервер считает клиента активным. По умолчанию установлено 60 секунд. Если клиент не отправляет сигналы в течение этого времени, сервер считает его отключённым. - Блок
<RemoteServer>— содержит адрес и порт Discovery Server, к которому нужно подключиться.
Найдите в файле строку с адресом сервера и замените 127.0.0.1 на IP-адрес вашего робота в сети:
<address>192.168.1.10</address>
<port>11811</port>
Порт 11811 является стандартным портом FastDDS Discovery Server и обычно не требует изменения.
Примените конфигурацию, задав переменную окружения в терминале:
export FASTRTPS_DEFAULT_PROFILES_FILE=./fastdds_superclient.xml
INFO Чтобы не вводить эту команду каждый раз при открытии нового терминала, добавьте её в файл
~/.bashrc, указав полный путь до XML-файла:echo 'export FASTRTPS_DEFAULT_PROFILES_FILE=/полный/путь/до/fastdds_superclient.xml' >> ~/.bashrc
Способ 2: Переменные окружения (быстрый)
Если вам не нужна тонкая настройка параметров DDS, можно подключиться к Discovery Server без XML-файла, используя только переменные окружения ROS 2:
export ROS_DISCOVERY_SERVER="192.168.1.10:11811"
export ROS_SUPER_CLIENT=TRUE
Переменная ROS_DISCOVERY_SERVER указывает адрес и порт Discovery Server (бортового компьютера робота). Переменная ROS_SUPER_CLIENT со значением TRUE переводит узел в режим Super Client, что позволяет видеть все топики и сервисы в сети, аналогично настройке через XML.
Этот способ удобен для быстрой проверки связи или временной работы с роботом, когда не требуется изменять параметры аренды, таймауты и другие расширенные настройки FastDDS.
Проверка подключения
Независимо от выбранного способа, выполните тестовую команду:
ros2 topic list
Если подключение настроено правильно, вы увидите список топиков робота. Если список пуст, попробуйте перезапустить ROS-демон, который может хранить устаревший кеш обнаружения:
ros2 daemon stop
Также для режима отладки вы можете откдючить использование кеширования списка топиков, и увеличть время на полечение данных до 5 секунд.
ros2 topic list --no-daemon --spin-time 5
После этого повторите команду ros2 topic list.
Работа без Discovery Server
При необходимости вы можете переключить робота в режим Simple Discovery — например, для отладки на одном компьютере без сети или для работы в среде, где multicast работает стабильно.
Отключение на роботе
Откройте файл настроек окружения на роботе:
nano /home/pi/.ros_params
Закомментируйте или удалите строку, подключающую XML-конфигурацию:
# export FASTRTPS_DEFAULT_PROFILES_FILE=/home/pi/.ros/fastdds_superclient.xml
Остальные переменные (ROS_DOMAIN_ID, RMW_IMPLEMENTATION) оставьте без изменений. После сохранения файла перезапустите робота, чтобы изменения вступили в силу:
sudo reboot
Отключение на рабочем компьютере
Если вы ранее настраивали подключение к Discovery Server на своём компьютере, эти настройки также необходимо убрать.
Если вы использовали XML-файл — удалите переменную окружения из текущей сессии и из ~/.bashrc:
unset FASTRTPS_DEFAULT_PROFILES_FILE
Если вы использовали переменные окружения — сбросьте их:
unset ROS_DISCOVERY_SERVER
unset ROS_SUPER_CLIENT
Настройка ROS_DOMAIN_ID
WARNING В режиме Simple Discovery все устройства в одной сети с одинаковым
ROS_DOMAIN_IDбудут видеть друг друга. Это означает, что если в классе работает несколько роботов и на всех установлен одинаковыйROS_DOMAIN_ID, их узлы будут пересекаться.
По умолчанию значение ROS_DOMAIN_ID на роботе устанавливается согласно номеру на наклейке, расположенной на Ethernet-разъёме Raspberry Pi. Чтобы роботы не мешали друг другу в режиме Simple Discovery, каждому роботу нужно назначить уникальный идентификатор домена. При необходимости вы можете изменить значение в файле /home/pi/.ros_params:
export ROS_DOMAIN_ID=5
На рабочем компьютере установите такое же значение:
export ROS_DOMAIN_ID=5
INFO Допустимые значения
ROS_DOMAIN_ID— от 0 до 101. Значение 0 используется по умолчанию в ROS 2, поэтому рекомендуется выбирать значения от 1 и выше, чтобы избежать конфликтов с другими ROS-устройствами в сети.
Если вы работаете в режиме Simple Discovery, то важно, чтобы ROS_DOMAIN_ID также был верно установлен на системной плате с microROS. Для этого существует ROS-сервис /domain_id:
ros2 service call /domain_id turtlebro/srv/DomainIDService "set_domain_id:
data: 5"
В ответ вы получите подтверждение с установленным значением:
response:
turtlebro.srv.DomainIDService_Response(have_domain_id=std_msgs.msg.UInt16(data=5))
После установки ROS_DOMAIN_ID на системной плате её необходимо перезагрузить.
Настройки и управление роботом
Настройки параметров ROS
Все переменные, связанные с роботом и ROS, находятся в файле /home/pi/.ros_params
export ROS_DOMAIN_ID=1
export ROBOT_IP=$(hostname -I | cut -f1 -d' ')
export ROBOT_MODEL=turtlebro2
export ROBOT_WHEEL_PARAM=12280
export FASTRTPS_DEFAULT_PROFILES_FILE=/home/pi/.ros/fastdds_superclient.xml
Systemd сервисы робота
Сервисы автоматически стартуют при старте робота.
Сервис fastdds
Сервис управления FastDDS Discovery сервером, для работы ROS
sudo systemctl stop fastdds
sudo systemctl start fastdds
Изменить параметры /home/pi/.ros/fastdds-start
Сервис microROS
Сервис для подключения агента microROS для управления платой робота
sudo systemctl stop microros
sudo systemctl start microros
Изменить параметры запуска /home/pi/.ros/microros-start и .launch файл /home/pi/turtlebro_ws/src/turtlebro/launch/micro_ros_stm.xml
Сервис turtlebro
Основной сервис робота, запускает .launch файл /home/pi/turtlebro_ws/src/turtlebro/launch/turtlebro.launch
sudo systemctl stop turtlebro
sudo systemctl start turtlebro
Сервисы и топики ROS
Доступные топики робота TurtleBro2
/backlight/all (std_msgs/msg/ColorRGBA)
Управление всеми светодиодами нижней подсветки, один цвет устанавливается всем светодиодам. Данные поступают из microROS.
/backlight/array (turtlebro/msg/ColorRGBAArray)
Управление светодиодами нижней подсветки, возможно установить отдельно цвет каждому светодиоду. Данные поступают из microROS.
/bat (sensor_msgs/msg/BatteryState)
Данные батарейки робота. Данные поступают из microROS.
voltage: 16.808950424194336
Напряжение на батарее.
current: -0.061119794845581055
Ток на батарее. Если значение положительное, батарея заряжается, если отрицательное -- разряжается.
/cmd_vel (geometry_msgs/msg/Twist)
Управление скоростью (моторами) для передвижения робота. Данные из microROS.
/front_camera/image_raw (sensor_msgs/msg/Image)
Данные (изображение) передней камеры без компрессии
/front_camera/image_raw/compressed (sensor_msgs/msg/CompressedImage)
Данные (изображение) передней камеры с компрессией JPEG
/imu (sensor_msgs/msg/Imu)
Данные датчика IMU, расположенного на плате. Доступны данные orientation, angular_velocity, linear_acceleration. Данные поступают из microROS.
/odom (nav_msgs/msg/Odometry)
Данные одометрии (положение робота на основе скорости вращения колес). Данные публикуются нодой odom_publisher на основе данных /pose и /imu.
/pose (geometry_msgs/msg/Pose)
Упрощенные данные о положении робота. Данные из microROS.
/scan (sensor_msgs/msg/LaserScan)
Данные лидара.
Полный список топиков робота
/backlight/all
/backlight/array
/bat
/client_count
/cmd_vel
/connected_clients
/front_camera/camera_info
/front_camera/image_raw
/front_camera/image_raw/compressed
/front_camera/image_raw/compressedDepth
/front_camera/image_raw/zstd
/heartbeat
/imu
/joint_states
/leds_lifecycle/transition_event
/odom
/parameter_events
/pose
/pose2d
/robot_description
/rosout
/scan
/tf
/tf_static
Доступные сервисы робота TurtleBro2
/board_info (turtlebro/srv/BoardInfo)
Сервис получения информации о системной плате turtlebro.
/domain_id (turtlebro/srv/DomainIDService)
Сервис установки переменной ROS_DOMAIN_ID для microROS.
/power/off (std_srvs/srv/Empty)
Выключение питания платы.
/power/reset (std_srvs/srv/Empty)
Перезагрузка робота (плата и RaspberryPi).
/reset (std_srvs/srv/Empty)
Сброс (обнуление) одометрии робота.
/start_motor (std_srvs/srv/Empty)
Сервис запуска мотора лидара.
/stop_motor (std_srvs/srv/Empty)
Сервис остановки мотора лидара.
Установленные пакеты
Установка базового ROS происходит с использованием стандартных пакетов ОС Linux Ubuntu. https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debs.html
Для удобства использования пакеты, установленные из исходного кода, распределены по разным рабочим окружениям (Work Space) ROS.
microros_ws
Рабочее окружение для установки и настройки microrROS
ros_extra_ws
Папка для рабочего окружения стандартных пакетов, но требующих сборку из исходников.
В этом окружении установлены пакеты rplidar_ros, необходимый для работы с RpLidar, и пакеты async_web_server_cpp, web_video_server, необходимые для трансляции видео через web-сервер робота.
turtlebro_ws
Основное окружение пользователя для пакетов робота. В этом окружении установлены пакеты:
turtlebro https://github.com/voltbro/turtlebro2
Стандартный пакет робота, содержит основные программы, настройки и модели роботов.
turtlebro_navigation https://github.com/voltbro/turtlebro2_navigation
Пакет для автономной навигации робота на основе стека NAV2 https://nav2.org.
turtlebro_web https://github.com/voltbro/turtlebro2_web
Пакет для работы web-сервера на роботе.
Обзор платы TurtleBro
Внешний вид платы
Передняя сторона платы

Задняя сторона платы

Назначение кнопок на плате
restart Нажатие кнопки перезапускает microros на плате со чтением и инициализацией всех переменных. Перезапуск идет около 30 секунд.
stop При нажатии сбрасывается значение /cmd_vel (робот останавливается), обнуляются значения одометрии и датчика IMU. Удобно пользоваться этой кнопкой для установки нулевого положения робота на полигоне.
hw_reset Кнопка сброса МК STM32. Осуществляет полный перезапуск робота, включая Raspberry.
reset Кнопка сброса Arduino. Осуществляет полный перезапуск Arduino.
EMRG Выходы для подключения чеки экстренной остановки моторов. Для работы в нормальном режиме контакты должны быть замкнуты.
Разъемы на плате
Arduino
USB-C DUE Подключение кабеля для программирования Arduino DUE. Также на плате расположены разъемы для подключения Arduino-совместимых "шилдов".
Servo D7-D2 Штекеры для подключения сервоприводов. С дополнительным питанием 5V.
5V power Штекеры для подключения к питанию 5V дополнительных потребителей.
I2C+GPIO Дополнительные разъемы для подключения датчиков по протоколу I2C
Робот
DCIN 18-24V Разъем для подключения внешнего питания робота. Напряжение 18-24В. Внимание! Блоки питания от платы TurtleBro1 не подходят для платы TurtleBro2.
4SLiPo Разъем для подключения основного разъема питания от аккумулятора.
Balance Подключение кабеля балансировки зарядки аккумулятора
USB-C Hub Подключение USB-хаба робота к компьютеру. В USB-хаб робота подключены:
- Audio карта
- Lidar
- Arduino Due Serial1
- STM32 Serial
USB-C PWR Подключение питания RaspberryPi. Максимальный допустимый ток 2 Ампера (подходит для подключения RaspberryPi 5).
Lidar Разъем для подключения лидара RP-Lidar A1 или RP-Lidar S1. Переходник UART-USB на основе cp1251 расположен на плате и подключен в USB-hub.
Speakers Подключение динамиков для встроенной аудиокарты робота. Колонки 5Вт.
Конфигурация DIP-switch
DIP1: default_domain_mode = 0
Настройка работы с DOMAIN_ID ROS.
Если переключатель в положении 1, то micro-ros STM32 устанавливает значение 0. Если положение 0, то значение, которое хранится в EPROM. Значение EPROM можно перезаписать, вызвав сервис /domain_id.
DIP2: Motor inversion
Для разных моторов есть возможность задать направление "правильного" вращения.
DIP3: Odom inversion
Для разных моторов есть возможность задать "правильное" направление вращения шпинделя энкодера.
DIP8: UART update
Включение режима для загрузки прошивки STM32 через UART порт
Обновление микропрограммы платы
Актуальные прошивки можно скачать из Яндекс.Диска.
Последняя доступная версия: latest
Архив старых версий: archive
Для обновления микропрограммы системной платы TurtleBro можно использовать USB-UART переходник или программатор ST-LINK V2
Обновление микропрограммы с помощью USB-UART переходника
Перейти к инструкции обновления
Обновление микропрограммы с помощью программатора ST-LINK V2
Перейти к инструкции обновления
Обновление прошивки платы
WARNING Перед началом обновления внимательно прочтите эту страницу до конца и убедитесь, что понимаете все описанные операции.
Обновление микропрограммы с помощью USB-UART переходника

Для обновления микропрограммы системной платы TurtleBoard необходимо использовать программу STM32 Flash loader demonstrator.
Придерживайтесь следующей инструкции:
- Выключите питание робота и извлеките из него батарею.
- Подсоедините USB-UART переходник к разъему ST-UPDT голубого цвета на системной плате. Обратите внимание на то, что ножка TX переходника должна быть соединена с ножкой RX разъема ST-UPDT, а ножка RX - к TX.
DANGER Ножка 3V3 разъема ST-UPDT может быть подключена только к источнику напряжения 3.3В! Подключение ее к 5В может привести к повреждению платы!
- Переведите DIP-переключатель №4 в положение "ON"
- Подключите USB-UART к компьютеру, он должен определиться системой как COM порт.
- Нажмите кнопку HW_RESET на плате, это должно привести к тому, что все светодиоды погаснут (если ранее были включены) и плата перейдет в режим ожидания прошивки.
- Запустите программу STM32 Flash loader demonstrator, выберите COM порт своего UART преобразователя. Нажмите кнопку Next.

Вы должны увидеть сообщение:
Target is readable. Please click "Next" to proceed
WARNING Если этого не произошло, проверьте правильность выполнения предыдущих шагов и попробуйте еще раз
- В следующем окне вы должны увидеть приблизительно следующее:

Обратите внимание на поле Target: его содержимое должно точно совпадать с картинкой выше.
- В следующем окне необходимо выставить настройки точно так же, как на картинке внизу:

INFO В графе Download from file необходимо указать на файл прошивки, скачанный с нашего сайта. Обратите внимание на то, что по умолчанию всплывающее окно не отображает необходимые нам файлы с расширением .hex, поэтому в правом нижнем углу окошка необходимо выбрать тип файла hex Files (*.hex).
- После нажатия кнопки Next должен начаться процесс обновления микропрограммы. Он может занять несколько минут, пожалуйста, дождитесь его окончания. После окончания загрузки вы должны увидеть сообщение:
Download operation finished successfully
- Закройте программу
- Отключите USB-UART переходник от компьютера
- Отключите USB-UART переходник от платы TurtleBoard
- Переведите DIP-переключатель №4 в положение Off
SUCCESS При следующем запуске робот будет использовать обновленную микропрограмму.
WARNING Перед началом обновления внимательно прочтите эту страницу до конца и убедитесь, что понимаете все описанные операции.
Обновление микропрограммы с помощью программатора ST-LINK V2

Для обновления микропрограммы системной платы TurtleBoard необходимо использовать программу STM32 ST-LINK Utility.
Придерживайтесь следующей инструкции:
- Выключите питание робота и извлеките из него батарею.
- Подсоедините программатор ST-LINK V2 к разъему ST-LINK чёрного цвета на системной плате. Обратите внимание на то, что ножка SWDIO программатора должна быть соединена с ножкой DIO разъема ST-LINK, а ножка SWCLK программатора - к CLK разъема ST-LINK.
DANGER Ножка 3V3 разъема ST-LINK может быть подключена только к источнику напряжения 3.3В! Подключение ее к 5В может привести к повреждению платы!
- Подключите ST-LINK V2 к компьютеру, он должен определиться системой как Устройство USB: STM32 STLink.
- Запустите программу STM32 ST-LINK Utility. Нажмите кнопку Connect to the target.

- После соединения вы должны увидеть приблизительно следующее:

WARNING Если вы этого не увидели — проверьте правильность выполнения предыдущих шагов и попробуйте еще раз.
- Далее необходимо перейти в меню Target и выбрать пункт Program & Verify...:

- Выберите необходимый файл прошивки с расширением .hex, скачанный с нашего сайта:

- Произведите необходимые настройки согласно изображению ниже и нажмите кнопку Start:

- После нажатия кнопки Start должен начаться процесс обновления микропрограммы. Он может занять несколько минут, пожалуйста, дождитесь его окончания. После окончания загрузки вы должны увидеть следующее сообщение:

- Нажмите кнопку Disconnect from the target:

- Закройте программу
- Отключите программатор ST-LINK V2 от компьютера
- Отсоедините программатор ST-LINK V2 от платы TurtleBoard
SUCCESS При следующем запуске робот будет использовать обновленную микропрограмму.
Audio карта
Робот имеет встроенную Audio карту, усилитель и стерео колонки.
Вы можете для тестирования проиграть аудио файл
aplay ~/extra/audio/demo.wav
Настройки Audio системы
Файл настройки
/var/lib/alsa/asound.state
Изменение звуковой карты по умолчанию:
/etc/pulse/default.pa
строка set-default-sink 0
Text2Speech
Сервисы озвучки текста с использованием библиотеки rhvoice.
Примеры использования:
~/extra/tts/tts_test_cli.sh
~/extra/tts/tts_test_spd.sh
python3 ~/extra/tts/tts_test.py
Установленные языки и голоса:
Alan: en
Aleksandr: ru
Aleksandr-hq: ru
Anna: ru
Arina: ru
Artemiy: ru
Bdl: en
Clb: en
Elena: ru
Evgeniy-Eng: en
Evgeniy-Rus: ru
Irina: ru
Lyubov: en
Mikhail: ru
Pavel: ru
Slt: en
Tatiana: ru
Victoria: ru
Vitaliy: ru
Vitaliy-ng: ru
Yuriy: ru
Полезные команды
Настройки громкости:
alsamixer
Получить список доступных Audio устройств:
aplay -l
Проиграть аудиофайл через устройство 2:
aplay -Dhw:2,0 extra/audio/demo.wav
Камера робота
Робот TurtleBro2 оснащен цветной широкоугольной камерой, имеющей глобальный затвор (Global shutter). Угол захвата изображения камерой около 170 градусов. Параметры камеры оптимизированы для работы с задачами CV при движении робота по полигону (дороге, распознавании дорожных знаков).
Камера подключается через USB порт RaspberryPI

Камера и ROS
На роботе установлены пакеты, необходимые для работы камеры:
- ros-jazzy-v4l2-camera
- ros-jazzy-image-transport-plugins
- ros-jazzy-usb-cam
.launch файл для запуска ноды usb_cam находится в файле ~/turtlebro_ws/src/turtlebro/launch/usb_camera.xml.
По умолчанию камера работает с частотой 5fps и разрешением 640x480.
Камера откалибрована, данные калибровки в файле: turtlebro_ws/src/turtlebro/camera/global_shutter_640.yaml
Для просмотра изображения из камеры вы можете воспользоваться web-интерфейсом http://ip_вашего_робота:8080.

ROS топики камеры
/front_camera/camera_info: sensor_msgs/msg/CameraInfo
/front_camera/image_raw: sensor_msgs/msg/Image
/front_camera/image_raw/compressed: sensor_msgs/msg/CompressedImage
/front_camera/image_raw/compressedDepth: sensor_msgs/msg/CompressedImage
/front_camera/image_raw/zstd: sensor_msgs/msg/CompressedImage
Полезные команды
Получить список видео устройств робота
v4l2-ctl --list-devices
Получить информацию о камере video0
v4l2-ctl -D -d /dev/video0
v4l2-ctl -d /dev/video0 --list-formats-ext
Lidar
На роботе в стандартной комплектации устанавливается лидар Slamtec RPLidar A1

Основные параметры лидара
| Параметр | Значение |
|---|---|
| Максимальное расстояние | 12 метров |
| Угол сканирования | 360 градусов |
| Частота сканирования (один оборот) | 5.5Hz |
| Количество точек на оборот | 8000 |
Lidar и ROS
Для работы лидара на роботе в рабочем окружении ros_extra_ws из исходников установлен пакет rplidar_ros.
Конфигурация запуска ноды лидара rplidar_composition, в файле ~/turtlebro_ws/src/turtlebro/launch/rplidar_a1.xml
Данные лидара находятся в топике
/scan: sensor_msgs/msg/LaserScan
Несмотря на то, что лидар вращается по часовой стрелке, данные в топике выводятся против часовой стрелки.
Также доступны сервисы остановки и старта мотора
/start_motor: std_srvs/srv/Empty
/stop_motor: std_srvs/srv/Empty
Визуализация данный в Rviz

Моторы робота
На роботе установлено два мотора с энкодерами для контроля скорости вращения моторов. Моторы подключены в шестипиновые разъемы, расположенные снизу платы. Моторы рассчитаны на работу с напряжением питания 12V, максимальная скорость вращения мотора 70RPM.
Настройка моторов
Параметры моторов, можно поменять с помощью DIP переключателя платы
DIP2: Motor inversion
Направление движения колеса, если необходимо изменить.
DIP3: Odom inversion
Направление вращения магнита энкодера.
Настройка передаточного числа
Настройка передаточного числа редуктора мотора возможна через указание параметра wheelparam ноды tm_serial_node.
ros2 param set stm_serial_node wheelparam 12280
ros2 param get stm_serial_node wheelparam
Также, значение по умолчанию задается в файле .ros_params
export ROBOT_WHEEL_PARAM=12280
Управление моторами
Для управления скоростью вращения моторов, создан стандартный для такого вида робота топик /cmd_vel, который управляет скоростью движения платформы робота.
Управление роботом возможно линейной скоростью по оси X и угловой по оси Z.
Например, команда движения робота со скоростью 0.1 м/с прямо, вперед
ros2 topic pub /cmd_vel geometry_msgs/msg/Twist "linear:
x: 0.1
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0"
Получение данных о положении робота
Данные, полученные от моторов (о скорости) и датчика IMU (ориентация робота), преобразуются в информацию о положении робота в пространстве.
Изначально данные от платы робота доступны в упрощенном топике /pose, это сделано для оптимизации serial порта.
ros2 topic echo /pose
position:
x: -0.00037499982863664627
y: -3.6113851820118725e-07
z: 0.0
orientation:
x: 0.0
y: 0.0
z: -0.0005555555690079927
w: 0.9999998211860657
Далее данные преобразуются в стандартный топик /odom (nav_msgs/msg/Odometry)
ros2 topic echo /odom
header:
stamp:
sec: 1750766546
nanosec: 549143615
frame_id: odom
child_frame_id: base_footprint
pose:
pose:
position:
x: -0.00037499982863664627
y: -3.6113851820118725e-07
z: 0.0
orientation:
x: 0.0
y: 0.0
z: -0.0005555555690079927
w: 0.9999998211860657
covariance:
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
twist:
twist:
linear:
x: 0.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0
covariance:
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
---
Для упрощенной работы с данными о положении робота создан топик /pose2d, в котором данные приведены в наиболее простой вид, где theta — угол эйлера по оси Z в радианах.
ros2 topic echo /pose2d
x: -0.00037499982863664627
y: -3.6113851820118725e-07
theta: -0.0011111111380159855
IMU (Inertial Measurement Uni) датчик
Блок инерциальных измерений (IMU) — важный компонент робота, отвечающий за определение ориентации.
IMU состоят из трех основных типов датчиков: акселерометра, гироскопа и магнитометра. Акселерометр измеряет линейное ускорение, позволяя роботу определять скорость и направление его движения. Гироскоп измеряет угловую скорость. Магнитометр определяет силу и направление магнитного поля Земли, помогая роботу определить направление по компасу.
На роботе TurtleBro в центре вращения робота установлена плата IMU BNO085.
Данные датчика IMU можно получить в топике /imu (sensor_msgs/msg/Imu).
ros2 topic echo /imu
header:
stamp:
sec: 1750767930
nanosec: 243143974
frame_id: imu_link
orientation:
x: 0.01593017578125
y: -0.00518798828125
z: 0.00054931640625
w: 0.9998779296875
orientation_covariance:
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
angular_velocity:
x: 0.0
y: 0.0
z: -0.0033333334140479565
angular_velocity_covariance:
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
linear_acceleration:
x: 0.12999999523162842
y: -0.019999999552965164
z: -0.28999999165534973
linear_acceleration_covariance:
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
- 0.0
---
RGB лента
Под платой расположено 24 RGB светодиода модели WS2812
WS2812 — это три RGB-светодиода и микросхема-драйвер для управления этими светодиодами, собранные в одном SMD корпусе. Корпус каждого светодиода имеет 4 вывода: два вывода данных и два вывода питания. Выводы данных предыдущих светодиодов соединены со входами следующих, создавая цепочку светодиодов, управляемых через один пин микроконтроллера.
В новых роботах в Arduino DUE загружена демонстрационная прошивка работы с лентой. backlight_demo
Если переключатель D29 включен, то RGB-лента начинает работать в демо-режиме. Для отключения демо-режима необходимо выключить переключатель D29 и нажать на кнопку D15 для выключения всех светодиодов. Одновременная работа демо-режима и управления через ROS ленты невозможна.
Работа со светодиодной лентой через ROS
Управление светодиодной лентой возможно через топики
/backlight/all [std_msgs/msg/ColorRGBA]
Установить один цвет для всех светодиодов:
# Установить красный цвет всей ленты
ros2 topic pub /backlight/all std_msgs/msg/ColorRGBA 'r: 1.0
g: 0.0
b: 0.0
a: 1.0'
/backlight/array [turtlebro/msg/ColorRGBAArray]
Установить по отдельности цвет каждого светодиода, пример: ~/turtlebro_ws/src/turtlebro/scripts/leds.py
Работа со светодиодной лентой через Arduino
Лента подключена к пину D30 встроенного контроллера Arduino. Число светодиодов — 24. Для управления светодиодами мы рекомендуем использовать библиотеку FastLed.
Пример работы ленты backlight_demo
Управление lifecycle RGB-ленты
Если запущена нода (leds_lifecycle.launch.py) для демонстрации работы светодиодной ленты через ROS и python. Отключить работу демонстрации RGB-ленты можно, используя механизм lifecycle:
# Отключить демонстрацию
ros2 lifecycle set leds_lifecycle deactivate
# Включить демонстрацию
ros2 lifecycle set leds_lifecycle activate
или выключить загрузку ноды leds_lifecycle из запуска в файле turtlebro_ws/src/turtlebro/launch/turtlebro.xml
<!-- Убрать строчку -->
<include file="$(find-pkg-share turtlebro)/launch/leds_lifecycle.launch.py"/>
Arduino
Для подключения дополнительных датчиков и других устройств на плате расположен микроконтроллер AT91SAM3X8E c аналогичной развязкой Arduino® Due
Спецификация платы https://docs.arduino.cc/hardware/due/
Блок платы Arduino на плате TurtleBro

Arduino IDE
Скачайте и установите ArduinoIDE (программу для работы с платой Arduino) на сайте arduino.cc
https://www.arduino.cc/en/software/
Зайдите в раздел Board Manager в поиске наберите due и установите расширение.

Выберете в настройках IDE плату Arduino DUE (Programming Port)

Проверьте что выбран правильный Serial Port

Загрузите на плату пример из меню File->Examples->01.Basic->Blink
На плате должен начать мигать светодиод L в блоке Arduino.
Особенности Arduino DUE
Для работы с Arduino не обязательно включать робота, достаточно только подключить его к USB.
WARNING Плата Arduino DUE рассчитана на питание от 3.3v. Поэтому при подключении датчиков к плате, необходимо согласовать напряжение. Большинство датчиков Arduino работают как от напряжения 5v так и от 3.3v
Для подключения "силовых" серво, на плате расположены пины, объединенные в группу servos, с отдельной от основной платы линией питания 5v. Также рядом расположена группа пинов для подключения к линии 5v других потребителей, которым необходимо более мощное питание.
Micro-ROS
Micro-ROS (Micro Robot Operating System) — это адаптация фреймворка ROS 2 (Robot Operating System) для микроконтроллеров.
Особенности и назначение micro-ROS:
Micro-ROS полезен, когда нужно встроить микроконтроллеры в ROS 2-систему, сохранив преимущества стандартных ROS-инструментов. Он упрощает разработку сложных робототехнических систем, где часть логики выполняется на embedded-устройствах.
Micro-ROS работает на микроконтроллерах (STM32, ESP32, Teensy, Raspberry Pi Pico и др.) и поддерживает стандартных концепций ROS 2 (ноды, топики, сервисы, actions).
Например, мы можем создать программу подписчика на микроконтроллере, которая будет управлять серво приводом. При этом, созданный топик будет виден в общей сети ROS.
Для подключения micro-ROS к ROS 2-сети необходимо на компьютере запустить специальную программу-агент (micro-ROS Agent).
Официальный сайт проекта micro-ROS
Установка micro_ros_arduino
micro_ros_arduino это специально подготовленная библиотека, для разработки под microROS в среде Arduino. Она содержит уже подготовленные .a файлы для различных платформ.
Для установки библиотеки необходимо:
- В разделе releases скачать необходимую версию для вашего дистрибутива ROS (для jazzy можно скачать версию 2.0.7-iron).
- В ArduinoIDE добавить библиотеку через раздел
Sketch -> Include library -> Add .ZIP Library...
Особенности работы с micro-ROS на плате TurtleBro
Плата Arduino через порт Serial1 подключена в общий USB-hub, который подключен к компьютеру RaspberryPi.
Данное подключение на Raspberry видно в устройстве:
/dev/serial/by-id/usb-Silicon_Labs_CP2102N_USB_to_UART_Bridge_Controller_0010-if00-port0
Для настройки работы через Serial1, необходимо подключить собственный файл, реализующий новый transport
Пример файла default_transport.cpp
Пример простого micro-ros publisher для Arduino
Если вы загрузите скетч до запуска micro-ros агента, то вам нужно перезапустить Arduino, нажав на кнопку reset. Так как скетч подключается к агенту только в момент запуска.
Пример программы, реализующий переподключение к ROS агенту. В этом примере microros сразу подключается к агенту, как только он будет запущен.
Запуск micro-ROS агента
Micro-ROS агент нужен для того, чтобы данные из микроконтроллера попали в общую ROS сеть.
Работу Micro-ROS агента можно пояснить схемой

Вы можете запустить micro-ROS агент из консоли, командой
ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/serial/by-id/usb-Silicon_Labs_CP2102N_USB_to_UART_Bridge_Controller_0010-if00-port0 -b 115200
Или использовать .launch файл
Полезные ссылки
https://micro.ros.org Официальный сайт micro-ROS https://github.com/micro-ROS/micro_ros_arduino Библиотека micro-ROS для Arduino https://github.com/voltbro/turtlebro2-examples/tree/master/arduino Примеры micro-ROS для платы TurtleBro
Полезные ссылки
Образовательный портал с уроками ROS
Пакет автономной навигации
https://github.com/voltbro/turtlebro2_navigation
Книга введение в ROS
Книга посвящена ROS1, но общие подходы ROS1 и ROS2 идентичны.
http://docs.voltbro.ru/starting-ros/
Инструкция робота TurtleBro1
Телеграм-канал технической и информационной поддержки продуктов проекта «Братья Вольт»
https://t.me/+a2Fn7chqQec1MWVi
TurtleDIY
Комплектация для самостоятельной сборки ТБ2. Рекомендуем только людям ранее самостоятельно собиравших роботов.
Набор содержит
Плата
- Готовая прошитая плата, 1 шт
Корпус
- Нарезанный пластик для сборки корпуса, 1 комплект
- Новые стойки + винты, 1 комплект
- Опорный шарик, 1 шт.
- Стойки + винты для Разбери (2.5) 4 шт
- Стойки + винты для Лидара (2.5) 4 шт
Моторы
- Моторы с платой энкодера сборе, 2 шт
- Винты для сборки, 1 комплект
- Кабель подключения к плате 2 шт
Плата для сборки АКБ
- Плата для установки акб, под пайку, 1 комплект
- Плата подлючения для акб, под пайку, 1 комплект
- Кабель балансировки акб, 1 шт
- Кабель подключения платы, 1 шт
Дополнительно
- Кабель лидара, 1 шт
Приобретается дополнительно
Перечень носит рекомендательный характер, многие элементы могут быть заменены на аналоги.
Колеса

Блок питания 19в

Напряжение 19V, ток не менее 2A Штекер 5.5 2.5mm Купить на AliExpress
Камера

Любая удобная USB, крепление камеры (3d печатное) создано для камеры размером 38x38mm. ELP Store
Лидар

Необходимо изготовить кабель подключения
Кабеля USB
- Кабель питания разбери USB-C - USB-C 10см 1 шт
- Информационный кабель USB-C - USB-A 15 см 1 шт
Колонки
Размер 40x40, но варианты могут быть по наличию

- https://aliexpress.ru/item/1005006313500622.html?shpMethod=CAINIAO_STANDARD&sku_id=12000036723831722&spm=a2g2w.productlist.search_results.10.302e1d77WTUH4l
- https://aliexpress.ru/item/1005010065395761.html?shpMethod=CAINIAO_STANDARD&sku_id=12000051011557045&spm=a2g2w.productlist.search_results.8.2232579d0G06wI
Raspberry
- Raspberry pi 5 4Gb минимум
- SD-Card 16 Gb минимум
Для самостоятельного изготовления
3д печать
- Крепление лидара (не обязательно)
- Крепление камеры (не обязательно)