5.6. 语音控制小车运动

功能介绍

语音控制小车运动功能通过语音控制机器人向前、向后、向左、向右运动,需要搭配地平线机器人开发平台的智能语音模块一起使用。流程如下图:

../_images/audio_control.jpg

APP以PC端Gazebo仿真环境下的虚拟小车举例,发布的控制指令也可以直接用于控制实物小车。

代码仓库:https://c-gitlab.horizon.ai/HHP/box/hobot_interactions/audio_control.git

支持平台

平台 运行方式 示例功能
旭日X3派 Ubuntu 20.04 启动智能语音模块解析语音信息并进行语音控制,通过Gazebo展示控制效果

准备工作

旭日X3派

  1. 旭日X3派已烧录好地平线提供的Ubuntu 20.04镜像。

  2. 旭日X3派已成功安装TogetheROS.Bot。

  3. 旭日X3派已成功安装智能语音算法包,安装命令:apt update; apt install tros-hobot-audio

  4. 旭日X3派已成功接好适配的线性四麦的音频板(可参考地平线机器人开发平台智能语音模块)。

  5. 和旭日X3派在同一网段(有线或者连接同一无线网,IP地址前三段需保持一致)的PC,PC端需要安装的环境包括:

sudo apt-get install ros-foxy-gazebo-*
sudo apt install ros-foxy-turtlebot3
sudo apt install ros-foxy-turtlebot3-simulations

使用介绍

# 配置tros.b环境
source /opt/tros/setup.bash

# 从tros.b的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/lib/hobot_audio/config/ .

# 加载音频驱动,设备启动之后只需要加载一次
bash config/audio.sh

#启动launch文件
ros2 launch audio_control hobot_audio_control.launch.py

结果分析

在旭日X3派运行终端输出如下信息:


        This is audio control package.

============================================
        audio control usage

Wake up device is "地平线你好".
Audio control commnad word definitions are:
        "向前走": move front.
        "向后退": move back.
        "向右转": rotate robot to right.
        "向左转": rotate robot to left. 
============================================

以上log截取了一段音频控制pkg启动后的输出。log内容显示,此语音控制模块配置的设备唤醒词是“地平线你好”,控制小车运动的命令词有:“向前走”、“向后退”、“向左转”,“向右转”。

PC端在终端使用ros2 topic list命令可以查询到旭日X3派的topic信息:

$ ros2 topic list
/audio_smart
/cmd_vel

其中/audio_smart是X3发布的包含智能语音结果的算法msg,/cmd_vel是旭日X3派发布的运动控制指令。

PC端在终端使用ros2 topic echo /cmd_vel命令可以查看到旭日X3派发布的运动控制指令:

linear:
  x: 0.30000001192092896
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0
---
linear:
  x: 0.0
  y: -0.30000001192092896
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: -0.5
---
linear:
  x: 0.0
  y: 0.30000001192092896
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.5
---

PC端仿真环境中小车跟随语音控制命令词的指示进行运动,仿真小车运动效果如下:

../_images/move.gif