Skip to content
This repository has been archived by the owner on Jul 20, 2024. It is now read-only.

Latest commit

 

History

History
executable file
·
317 lines (215 loc) · 12.1 KB

README_cn.md

File metadata and controls

executable file
·
317 lines (215 loc) · 12.1 KB

English | 简体中文

功能介绍

语音控制小车运动功能通过语音控制机器人向前、向后、向左、向右运动,需要搭配地平线机器人操作系统的智能语音模块一起使用。当用户说出控制机器人运动的指令后,智能语音模块识别到指定,然后下发运动指令给机器人运动。

流程如下图:

audio_control

该应用可以使用PC端Gazebo仿真环境下的虚拟小车运行,也可以直接用于控制实物小车。

机器人实物

物料清单

以下机器人均已适配RDK X3

机器人名称 生产厂家 参考链接
OriginBot智能机器人 古月居 点击跳转
X3派机器人 轮趣科技 点击跳转
履带智能车 微雪电子 点击跳转
RDK X3 Robot 亚博智能 点击跳转
麦克风板 微雪电子 点击跳转

使用方法

准备工作

  1. 机器人具备运动底盘、相机、环形麦克风板及RDK套件,硬件已经连接并测试完毕;
  2. 已有ROS底层驱动,机器人可接收“/cmd_vel”指令运动,并根据指令正确运动。

机器人组装

以下操作过程以OriginBot为例,满足条件的其他机器人使用方法类似。参考机器人官网的使用指引,完成机器人的硬件组装、镜像烧写及示例运行,确认机器人的基础功能可以顺利运行。

安装功能包

1.参考OriginBot说明,完成Originbot基础功能安装

2.安装功能包

启动机器人后,通过终端SSH或者VNC连接机器人,复制如下命令在RDK的系统上运行,完成相关Node的安装。

tros foxy 版本

sudo apt update
sudo apt install -y tros-audio-control

tros humble 版本

sudo apt update
sudo apt install -y tros-humble-audio-control

运行语音控制小车运动功能

1. 启动机器人底盘

启动机器人,如OriginBot的启动命令如下:

tros foxy 版本

source /opt/tros/setup.bash
ros2 launch originbot_base robot.launch.py 

tros humble 版本

source /opt/tros/humble/setup.bash
ros2 launch originbot_base robot.launch.py 

2. 启动语音控制

启动一个新的终端,通过如下指令启动功能:

tros foxy 版本

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

# 从地平线RDK的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/${TROS_DISTRO}/lib/hobot_audio/config/ .

# 屏蔽调式打印信息
export GLOG_minloglevel=3

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

tros humble 版本

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

# 从地平线RDK的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/${TROS_DISTRO}/lib/hobot_audio/config/ .

# 屏蔽调式打印信息
export GLOG_minloglevel=3

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

启动成功后,当用户说出 "向前走" "向后退" "向左转" "向右转" "停止运动" 等指令后,机器人按照指令开始运动。

3. 结果分析

地平线RDK运行终端输出如下信息:

      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内容显示,此语音控制模块配置的设备唤醒词是“地平线你好”,控制小车运动的命令词有:“向前走”、“向后退”、“向左转”,“向右转”。

Gazebo仿真

Gazebo仿真适用于持有RDK X3但没有机器人实物的开发者体验功能。

物料清单

机器人名称 生产厂家 参考链接
RDK X3 多厂家 点击跳转
麦克风板 微雪电子 点击跳转

使用方法

准备工作

  1. 开发者有RDK套件实物,及配套的麦克风板;
  2. PC电脑端已经完成ROS Gazebo及Turtlebot机器人相关功能包安装;
  3. 和地平线RDK在同一网段(有线或者连接同一无线网,IP地址前三段需保持一致)的PC,PC端需要安装的环境包括:

tros foxy 版本

  • Ubuntu 20.04系统

  • ROS2 Foxy桌面版

  • Gazebo和Turtlebot3相关的功能包,安装方法:

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

tros humble 版本

  • Ubuntu 22.04系统

  • ROS2 Humble桌面版

  • Gazebo和Turtlebot3相关的功能包,安装方法:

    sudo apt-get install ros-humble-gazebo-*
    sudo apt install ros-humble-turtlebot3
    sudo apt install ros-humble-turtlebot3-simulations
    ``
    

安装功能包

启动RDK X3后,通过终端SSH或者VNC连接机器人,复制如下命令在RDK的系统上运行,完成相关Node的安装。

tros foxy 版本

sudo apt update
sudo apt install -y tros-audio-control

tros humble 版本

sudo apt update
sudo apt install -y tros-humble-audio-control

运行功能

1.启动仿真环境及机器人

在PC端Ubuntu的终端中使用如下命令启动Gazebo,并加载机器人模型:

tros foxy 版本

source /opt/ros/foxy/setup.bash
export TURTLEBOT3_MODEL=burger
ros2 launch turtlebot3_gazebo empty_world.launch.py

tros humble 版本

source /opt/ros/humble/setup.bash
export TURTLEBOT3_MODEL=burger
ros2 launch turtlebot3_gazebo empty_world.launch.py

启动成功后,仿真环境中小车效果如下:

gazebo

2.启动语音控制

启动一个新的终端,通过如下指令启动功能:

tros foxy 版本

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

# 从地平线RDK的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/${TROS_DISTRO}/lib/hobot_audio/config/ .

# 屏蔽调式打印信息
export GLOG_minloglevel=3

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

tros humble 版本

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

# 从地平线RDK的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/${TROS_DISTRO}/lib/hobot_audio/config/ .

# 屏蔽调式打印信息
export GLOG_minloglevel=3

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

启动成功后,当用户说出 "向前走" "向后退" "向左转" "向右转" "停止运动" 等指令后,小车按照指令开始运动。

PC端仿真环境中语音控制小车运动,效果如下: move

接口说明

话题

名称 消息类型 说明
/cmd_vel geometry_msgs/msg/Twist 发布控制机器人移动的速度指令

参数

参数名 类型 解释 是否必须 支持的配置 默认值
ai_msg_sub_topic_name std::string 订阅的音频智能帧消息话题 根据实际情况配置 /audio_smart
twist_pub_topic_name std::string 发布Twist类型的运动控制消息的topic名 根据实际部署环境配置。一般机器人订阅的topic为/cmd_vel,ROS2 turtlesim示例订阅的topic为turtle1/cmd_vel。 /cmd_vel
move_step float 平移运动的步长,单位米 无限制 0.5
rotate_step float 旋转运动的步长,单位弧度 无限制 0.5
motion_duration_seconds int 平移/旋转动作持续时间,单位秒,小于等于0表示不做限制,达到持续时间后下发停止运动指令,避免机器人一直运动 无限制 0

参考资料

语音控制参考:开发者说 | AI 操控机器人系列第三期 —— 语音控制

常见问题

  1. Ubuntu下运行启动命令报错-bash: ros2: command not found

    当前终端未设置ROS2环境,执行命令配置环境:

    tros foxy 版本

    source /opt/tros/setup.bash

    tros humble 版本

    source /opt/tros/humble/setup.bash

    在当前终端执行ros2命令确认当前终端环境是否生效:

    # ros2
    usage: ros2 [-h] Call `ros2 <command> -h` for more detailed usage. ...
    
    ros2 is an extensible command-line tool for ROS 2.
    
    optional arguments:
    -h, --help            show this help message and exit

    如果输出以上信息,说明ros2环境配置成功。

    注意:对于每个新打开的终端,都需要重新设置ROS2环境。

  2. 无法打开音频设备

    • 确认音频设备连接是否正常
    • 确认是否正确配置音频设备
    • 确认加载音频驱动前是否已有音频设备连接