Пакет respeaker_driver
Назначение: Пакет respeaker_driver обеспечивает взаимодействие с микрофонным массивом ReSpeaker USB Mic Array, включая:
- фильтрацию шумов и эхоподавление
- подавление звуков, проигрываемых устройством (аппаратный эхо-миксер)
- определение направления источника звука (direction of arrival (doa))
- управление встроенными светодиодами (pixel ring)
Содержание пакета
respeaker_driver/
├── CMakeLists.txt
├── package.xml
├── setup.py
├── launch/
│ └── respeaker_driver.launch
├── config/
│ └── respeaker_driver.yaml
├── scripts/
│ └── main.py
│ └── respeaker_driver_dependencies/
│ └── pixel_ring.py
│ └── utils.py
└── examples/
└── example_recording.py
Запуск пакета
- Пакет
respeaker_driverзапускается автоматически при старте устройства. - Запуск инициируется через launch-файл
robohead_controller_py.launchиз пакетаrobohead_controller.
Основные возможности
Доступные ROS-топики
-
/robohead_controller/respeaker_driver/audio/channel_0Тип:audio_common_msgs/AudioDataАппаратно-обработанный звук с микрофонного модуля. -
/robohead_controller/respeaker_driver/audio/channel_1Тип:audio_common_msgs/AudioDataЗвук с микрофона №1 микрофонного модуля. -
/robohead_controller/respeaker_driver/audio/channel_2Тип:audio_common_msgs/AudioDataЗвук с микрофона №2 микрофонного модуля. -
/robohead_controller/respeaker_driver/audio/channel_3Тип:audio_common_msgs/AudioDataЗвук с микрофона №3 микрофонного модуля. -
/robohead_controller/respeaker_driver/audio/channel_4Тип:audio_common_msgs/AudioDataЗвук с микрофона №4 микрофонного модуля. -
/robohead_controller/respeaker_driver/audio/channel_5Тип:audio_common_msgs/AudioDataЗвук, подающийся на воспроизведение через динамики. -
/robohead_controller/respeaker_driver/audio/mainТип:audio_common_msgs/AudioDataГлавный аудиоканал для программной обработки (например, распознавания команд). Дублирует один из каналов 0–5 (по умолчанию канал 0). -
/robohead_controller/respeaker_driver/doa_angleТип:std_msgs/Int16Угол поступления звука в градусах (от -180 до 180). (DOA — Direction of Arrival). Красный светодиод (по-умолчанию) на светодиодном кольце указывает направление. -
/robohead_controller/respeaker_driver/SetColorManualLEDТип:std_msgs/ColorRGBA[12]Топик для установки цвета каждого светодиода в отдельности.
- Доступные ROS-сервисы
-
/robohead_controller/respeaker_driver/SetBrightnessLEDТип:audio_common_msgs/AudioDataСервис для установки яркости всей подсветки. -
/robohead_controller/respeaker_driver/SetColorAllLEDТип:audio_common_msgs/AudioDataСервис для установки одинакового цвета на всю подсветку. -
/robohead_controller/respeaker_driver/SetColorPaletteLEDТип:audio_common_msgs/AudioDataСервис для задачи цвета следяющего светодиода и цвета остальных светодиодов (устанавливает палитру для предустановленных режимов работы). -
/robohead_controller/respeaker_driver/SetModeLEDТип:audio_common_msgs/AudioDataСервис для переключения режимов работы светодиодного кольца.

-
Управление светодиодным кольцом (Pixel Ring)
Подробнее об управлении подсветкой микрофонного модуля: ->
Режим отладки
В режиме отладки пакет respeaker_driver запускается изолированно (отдельно) для тестирования функций, без участия других компонентов системы.
Шаг 1. Остановка всех запущенных пакетов
Остановите фоновый Linux-сервис:
sudo systemctl stop robohead.service
Шаг 2. Запуск пакета вручную
Запустите пакет отдельно через launch-файл:
roslaunch respeaker_driver respeaker_driver.launch
Шаг 3. Особенности работы в режиме отладки
-
Пространство имен: топики и сервисы пакета не имеет приставки
/robohead_controller/. Используется/respeaker_driver/...вместо/robohead_controller/respeaker_driver/... -
Файл конфигурации: настройки берутся из
respeaker_driver/config/respeaker_driver.yamlвместоrobohead_controller/config/respeaker_driver.yaml
Шаг 4. Возможности тестирования
Определения направления звука (DOA)
- Топик:
/respeaker_driver/doa_angle(тип сообщения:std_msgs/Int16)
Пример:
# Запустите в отдельном терминале
rostopic echo /respeaker_driver/doa_angle
Во время вывода содержимого топика попробуйте щёлкать пальцами с разных сторон.
Пример работы с топиками аудио на Python
Пример для записи звуков из топиков в .wav файл (убедитесь, что пакет запущен в режиме отладки):
# Запустите в отдельном терминале
rosrun respeaker_driver example_recording.py
После записи в терминале будут выведены пути до сохраненных файлов.