speakers_driver

Пакет обеспечивает вывод звука на внешние динамики: воспроизведение аудио, установка громкости.

Воспроизведение звука аппаратно происходит через ReSpeaker USB Mic Array.


Запуск пакета через CLI:

roslaunch speakers_driver speakers_driver.launch 

При запуске пакета начинают работать ROS-сервисы:

  • /speakers_driver/PlayAudio - запустить проигрывание аудио-файла

  • /speakers_driver/SetVolume - установить громкость воспроизведения

  • /speakers_driver/GetVolume - получить текущую установленную громкость


Сервис ~PlayAudio

Запускает проигрывание аудио-файла. Пример вызова через CLI для воспроизведения файла, находящегося по пути /home/pi/robohead_ws/src/robohead/speakers_driver/examples/file.mp3:

rosservice call /speakers_driver/PlayAudio "path_to_file: '/home/pi/robohead_ws/src/robohead/speakers_driver/examples/file.mp3'
is_blocking: 1
is_cycled: 0" 

Обозначения:

  • path_to_file - путь до аудио-файла, который необходимо воспроизвести. Вместо аудио-файла можно указать путь до любого стримингового аудио-потока в Интернете (например, онлайн-радио). Если оставить пустым, то произойдет принудительная остановка текущего воспроизводимого аудио.

  • is_blocking - блокирующий ли вызов сервис? 0 - нет, 1 - да

  • is_cycled - зациклить ли воспроизведение? 0 - нет, 1 - да

Возвращаемые значения:

  • 0 - успех

  • -1 - аудио-файл/аудио-поток не найден

Тип сообщения ROS-сервиса: speakers_driver/PlayAudio


Сервис ~SetVolume

Устанавливает громкость воспроизведения аудио. Пример вызова через CLI, с установкой громкости 30%:

rosservice call /speakers_driver/SetVolume "volume: 30"

Обозначения:

  • volume - громкость (от 0 до 100)

Возвращаемые значения:

  • 0 - успех

  • -1 - некорректная громкость (должна быть от 0 до 100)

Тип сообщения ROS-сервиса: speakers_driver/SetVolume


Сервис ~GetVolume

Возвращает текущую установленную громкость воспроизведения аудио. Пример вызова через CLI:

rosservice call /speakers_driver/GetVolume "{}" 

Никакие аргументов при вызове передавать не нужно.

Возвращаемое значение: текущая установленная громкость 0...100

Тип сообщения ROS-сервиса: speakers_driver/GetVolume


Пример работы с пакетом на Python:

rosrun speakers_driver example_file.py

Файлы примеров расположены в директории examples этого пакета.


Конфигурационный файл speakers_driver/config/speakers_driver.yaml:

  • service_PlayAudio_name - название сервиса для воспроизведения аудио

  • service_SetVolume_name - название сервиса для установки громкости воспроизведения

  • service_GetVolume_name - название сервиса для получения текущей громкости воспроизведения

  • default_volume - стандартная громкость воспроизведения при запуске пакета

  • mpd_host - адрес mpd-сервера, где открыт сокет

  • mpd_port - порт mpd-сервера, на котором открыт сокет

  • update_hz - скорость обновления при блокирующем вызове

Last updated