Программное обеспечение

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

Базовая программная среда
Операционная система: Ubuntu 20.04 LTS (оптимизированная для Raspberry Pi 4)
Middleware: ROS Noetic Ninjemys
Языки программирования:
Python (основной)
C++ (для ресурсоемких задач)
Структура ROS-пакетов
Центральную роль играет пакет 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
:

Last updated