Skip to main content
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 topic

前提条件

你已根据 设置运行示例应用的环境 设置设备。

开箱即用运行 qrb_ros_audio_service

1

设置环境

在设备上启动三个命令行终端并运行以下命令。
SSH Session
2

运行 audio 服务

在第一个 SSH 终端中,使用 ros2 launch 命令运行 audio 服务包。
SSH Session
3

检查 pipewire 的默认设备

  1. 验证默认扬声器和听筒麦克风的状态。
    SSH Session
  2. 如果未设置默认扬声器或听筒麦克风,请使用 wpctl set-default <device-num> 设置默认设备。
    SSH Session
4

运行测试用例

在第三个 SSH 终端中,根据下表使用 ROS 命令或 Python 脚本运行测试用例。
注意对于所有分步测试用例,stream_handle 表示当命令为 create 时由 audio 服务创建的流。audio 服务创建流后,命令在第三个 SSH 终端中打印 stream_handle 的值。
  • 对于 ROS 命令,你会看到以下输出:
    stream_handle=<***>
  • 对于 Python 脚本,你会看到以下输出:command create success 1 stream_handle <***>. 使用以下命令下载 Python 脚本:
用例名称说明ROS 命令/Python 脚本
一键播放用一键命令启动播放。扬声器输出音频。支持 WAV 文件格式。将音乐文件放在设备路径上,例如 /tmp/music.wav。
分步播放用分步命令启动播放。扬声器输出音频。支持 WAV 文件格式。
流式播放创建并启动流式播放。它从 loopback topic 订阅音频 PCM 数据。音频数据应使用 qrb_ros_audio_service_msgs::msg::AudioData 填充。
启动分步流式播放:
启动一键流式播放:
分步录制使用默认输入设备用分步命令进行录制,并将音频数据写入 /tmp/rec.wav 文件。
发布录制数据
  • 将录制数据发布到 topic(默认 topic 名称:qrb_audiodata。你可以使用 topic_name 指定另一个名称)。
  • 音频数据将使用 qrb_ros_audio_service_msgs::msg::AudioData 填充。
将录制数据发布到 topic(默认 topic 名称是 “qrb_audiodata”,但可以使用 topic_name 指定):
或者,将录制数据发布到 /qrb_audiodata。同时将其保存到文件: