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 话题

前提条件

您已根据为运行示例应用设置环境完成了设置设备

运行开箱即用的 qrb_ros_audio_service

  1. 在设备上启动三个命令行终端,并运行以下命令设置环境。
  2. 在第一个 SSH 终端中,使用 ros2 launch 命令运行音频服务软件包。
  3. 在第二个 SSH 终端中,运行 qrb_ros_audio_common
  4. 检查 pipewire 的默认设备。
    1. 验证默认扬声器和听筒麦克风的状态。
    2. 如果未设置默认扬声器或听筒麦克风,请使用 wpctl set-default <device-num> 设置默认设备。
  5. 在第三个 SSH 终端中,根据下表使用 ROS 命令或 Python 脚本运行测试用例。
    1. 注意 对于所有分步测试用例,stream_handle 表示当命令为 create 时音频服务创建的流。音频服务创建流后,命令会在第三个 SSH 终端中打印 stream_handle 的值。
      • 对于 ROS 命令,您会看到以下输出:
        stream_handle=<***>
      • 对于 Python 脚本,您会看到以下输出:command create success 1 stream_handle <***>. 使用以下命令下载 Python 脚本
用例名称说明ROS 命令/Python 脚本
一键播放使用一键命令开始播放。扬声器输出音频。支持 WAV 文件格式。将音乐文件放置在设备路径下,例如 /tmp/music.wav
分步播放使用分步命令开始播放。扬声器输出音频。支持 WAV 文件格式。
流式播放创建并启动流式播放。它从 loopback 话题订阅音频 PCM 数据。音频数据应使用 qrb_ros_audio_common_msgs::msg::AudioData 填充。
启动分步流式播放:
启动一键流式播放:
分步录音使用分步命令通过默认输入设备录音,并将音频数据写入 /tmp/rec.wav 文件。
发布录音数据
  • 将录音数据发布到某个话题(默认话题名称:qrb_audiodata。您可以使用 topic_name 指定其他名称)。
  • 音频数据将使用 qrb_ros_audio_common_msgs::msg::AudioData 填充。
将录音数据发布到某个话题(默认话题名称为”qrb_audiodata”,但可以使用 topic_name 指定):
或者,将录音数据发布到 /qrb_audiodata,同时保存到文件: