Программное обеспечение
Робоголова Bbrain работает на полноценной ROS-архитектуре, обеспечивающей согласованное взаимодействие всех компонентов. Программная платформа построена по модульному принципу, где каждый аппаратный компонент управляется отдельным ROS-пакетом.

Базовая программная среда
- Операционная система: Ubuntu 20.04 LTS (оптимизированная для Raspberry Pi 4)
- Middleware: ROS Noetic Ninjemys
- Языки программирования:
- Python (основной)
- C++ (для ресурсоемких задач)
Структура ROS-пакетов
Важно Все представленные ниже ROS-пакеты по умолчанию запускаются центральным пакетом robohead_controller. Если вам необходимо протестировать какую-либо аппаратную часть отдельно, перейдите в раздел Режим отладки каждого пакета.
Центральную роль играет пакет robohead_controller, который координирует работу всех подсистем через систему ROS-топиков и сервисов. Основные функциональные пакеты:
-
Управление аппаратными компонентами (драйвера)
display_driver— вывод графики на круглый дисплей и работа с тачскриномears_driver— контроль сервоприводов «ушей»neck_driver— управление шейными сервоприводамиsensor_driver— мониторинг состояния батареиspeakers_driver— работа с аудиовыходомusb_cam— работа с видеопотокомrespeaker_driver— обработка звуковых данных с микрофонного массива
-
Обработка данных
voice_recognizer_pocketsphinx— распознавание голосовых команд из аудио-потока пакетаrespeaker_driver
-
Интеграционные модули
robohead_controller— базовый пакет, осуществляющий слаженную работу драйверовturtlebro_controller— взаимодействие с роботом TurtleBromors_controller— взаимодействие с робособакой МОРС
-
Системные утилиты
ru4sphinx— утилита для конвертации списка фраз в словарь для распознавания русской речи в ROS-пакетеvoice_recognizer_pocketsphinx
Визуализация топологии
Ниже приведена схема взаимодействия ROS-пакетов, отображаемая с помощью инструмента rqt_graph:
