qrb_ros_audio_service 示例应用是一个提供核心音频功能的 ROS 软件包,作为 ROS 生态系统中音频能力(当前支持播放和录音)的主要接口。
注意更多信息请参阅 qrb_ros_audio_service GitHub 仓库。
qrb_ros_audio_service 的管线
下图显示了该管线。
图: qrb_ros_audio_service 管线
qrb_ros_audio_service 管线中使用的 ROS 节点/服务
qrb_ros_audio_service 管线中使用的 ROS 话题
前提条件
您已根据为运行示例应用设置环境完成了设置设备。运行开箱即用的 qrb_ros_audio_service
- 在设备上启动三个命令行终端,并运行以下命令设置环境。
- 在第一个 SSH 终端中,使用
ros2 launch命令运行音频服务软件包。 - 在第二个 SSH 终端中,运行
qrb_ros_audio_common。 - 检查 pipewire 的默认设备。
- 验证默认扬声器和听筒麦克风的状态。
- 如果未设置默认扬声器或听筒麦克风,请使用
wpctl set-default <device-num>设置默认设备。
- 验证默认扬声器和听筒麦克风的状态。
- 在第三个 SSH 终端中,根据下表使用 ROS 命令或 Python 脚本运行测试用例。
- 注意 对于所有分步测试用例,
stream_handle表示当命令为create时音频服务创建的流。音频服务创建流后,命令会在第三个 SSH 终端中打印stream_handle的值。- 对于 ROS 命令,您会看到以下输出:
stream_handle=<***> - 对于 Python 脚本,您会看到以下输出:
command create success 1 stream_handle <***>.使用以下命令下载 Python 脚本
- 对于 ROS 命令,您会看到以下输出:
- 注意 对于所有分步测试用例,
| 用例名称 | 说明 | ROS 命令/Python 脚本 |
|---|---|---|
| 一键播放 | 使用一键命令开始播放。扬声器输出音频。支持 WAV 文件格式。将音乐文件放置在设备路径下,例如 /tmp/music.wav。 |
|
| 分步播放 | 使用分步命令开始播放。扬声器输出音频。支持 WAV 文件格式。 |
|
| 流式播放 | 创建并启动流式播放。它从 loopback 话题订阅音频 PCM 数据。音频数据应使用 qrb_ros_audio_common_msgs::msg::AudioData 填充。 |
启动分步流式播放: |
| 分步录音 | 使用分步命令通过默认输入设备录音,并将音频数据写入 /tmp/rec.wav 文件。 |
|
| 发布录音数据 |
|
将录音数据发布到某个话题(默认话题名称为” qrb_audiodata”,但可以使用 topic_name 指定):/qrb_audiodata,同时保存到文件: |

