🔊speakers_driver
Назначение: Пакет speakers_driver
обеспечивает вывод звука на внешние динамики: воспроизведение аудио, установку громкости.
Содержание пакета
speakers_driver/
├── CMakeLists.txt
├── package.xml
├── launch/
│ └── speakers_driver.launch
├── config/
│ └── speakers_driver.yaml
├── scripts/
│ └── main.py
├── srv/
│ └── GetVolume.srv
│ └── PlayAudio.srv
│ └── SetVolume.srv
└── examples/
└── example_file.py
└── file.mp3
Запуск пакета
Пакет
speakers_driver
запускается автоматически при старте устройства.Запуск инициируется через launch-файл
robohead_controller_py.launch
из пакетаrobohead_controller
.
Основные возможности
Пакет speakers_driver
предоставляет следующие функции для работы с внешними динамиками:
Воспроизведение аудио-файлов
Сервис:
robohead_controller/speakers_driver/PlayAudio
Параметр:
АргументОписаниеpath_to_file
Путь к MP3/WAV на устройстве. {% hint style="success" %} Вместо аудио-файла можно указать путь до любого стримингового аудио-потока в Интернете (например, онлайн-радио). Если оставить пустым, то произойдет принудительная остановка текущего воспроизводимого аудио.{% endhint %}
is_blocking
1
— дождаться окончания;0
— неблокирующий вызовis_cycled
1
— зациклить воспроизведение;0
— разовое воспроизведение
rosservice call robohead_controller/speakers_driver/PlayAudio "path_to_file: '/home/pi/robohead_ws/src/robohead/speakers_driver/examples/file.mp3' is_blocking: 1 is_cycled: 0"
Коды возврата:
КодОписание0
Успех
-1
Файл не найден
Установка уровня громкости
Сервис:
robohead_controller/speakers_driver/SetVolume
Параметр:
АргументОписаниеvolume
Громкость в процентах (0–100)
Пример:
rosservice call robohead_controller/speakers_driver/SetVolume "volume: 70"
Коды возврата:
КодОписание0
Успех
-1
Значение вне диапазона 0–100
Получение текущего уровня громкости
Сервис:
robohead_controller/speakers_driver/GetVolume
Описание: не требует аргументов
Пример:
rosservice call robohead_controller/speakers_driver/GetVolume "{}"
Возвращаемое значение: текущее значение громкости (0–100 %)
Подробнее о настройке громкости динамиков: ->
Режим отладки
В режиме отладки пакет speakers_driver
запускается изолированно (отдельно) для тестирования функций, без участия других компонентов системы.
Шаг 1. Остановка всех запущенных пакетов
Остановите фоновый Linux-сервис:
sudo systemctl stop robohead.service
Шаг 2. Запуск пакета вручную
Запустите пакет отдельно через launch-файл:
roslaunch speakers_driver speakers_driver.launch
Шаг 3. Особенности работы в режиме отладки
Пространство имен: сервисы пакета не имеют приставки
/robohead_controller/
. Используется/speakers_driver/...
вместо/robohead_controller/speakers_driver/...
Файл конфигурации: настройки берутся из
speakers_driver/config/speakers_driver.yaml
вместоrobohead_controller/config/speakers_driver.yaml
Шаг 4. Возможности тестирования
Воспроизведение аудиофайлов
Форматы: .mp3
, .wav
, путь до любого стримингового аудио-потока в Интернете (например, онлайн-радио)
.
Сервис: speakers_driver/PlayAudio
Параметры:
path_to_file
— путь к файлу (оставьте пустым для остановки аудио).is_blocking
— блокирующий вызов (0
— нет,1
— да). При блокирующем вызове сервиса в терминале, он будет висеть, пока воспроизведение не завершится.is_cycled
— зацикленное воспроизведение (0
— нет,1
— да).
Пример вызова сервиса:
Воспроизведение файла находящегося по пути ~/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"
Установка уровня громкости
Сервис: speakers_driver/SetVolume
Параметр:volume
— громкость в процентах (0–100)
Пример вызова сервиса:
Пример установки громкости 30%
rosservice call /speakers_driver/SetVolume "volume: 30"
Получение текущего уровня громкости
Сервис: /speakers_driver/GetVolume
Описание: не требует аргументов Пример вызова сервиса:
rosservice call /speakers_driver/GetVolume "{}"
Возвращаемое значение: текущее значение громкости (0–100 %)
Пример работы с пакетом на Python
Команда для запуска примера с использованием пакета speakers_driver
в Python:
# Запустите в отдельном терминале
rosrun speakers_driver example_file.py
Last updated