|
预约渠道:
课程正文: 摘要:
在AI控制机器人系列人体跟随教程第二期中,地平线高级程序员朱考爸爸利用地平线发布的机器人开发平台软件栈搭建了一个人体跟随机器人。
同为开发者的梁雪对AI的世界充满憧憬,希望生活中也能有AI。她一直是一个只会说话却不会做事的懒人,所以她热衷于体验各种AI机器人,尤其是那些会说话的机器人。一个可以控制的机器人,我以为有一天我会过上只会说话而不会用手的生活,所以我有以下经历。
产品A:确实你说话的时候我可以跟着你,但是我真的不想说完之后还得右转去引导它右转……
产品B:为什么还要用手去遥控呢……唉,达不到懒人想象的那样。
难道不用嘴就可以让机器人移动并控制机器人吗?答案一定是,是的!下面,地平线AI控制机器人系列——语音控制首次亮相。
1. 功能介绍
我们先看一下最终的函数。
语音控制
从开始讲话到机器人根据指令快速准确的运动,得益于n Sun®️的5Tops算力BPU的降噪、回声消除以及高精度ASR识别功能。在开始编码之前,我们先简单分析一下人体跟随机器人需要哪些基本模块。
语音输入 - 麦克风
Xuri X3 Pie 使用麦克风阵列硬件来拾取声音。通过麦克风采集音频,然后交给后面的智能语音分析模块进行处理。
智能语音感知
智能语音算法对原始音频进行处理、音频去噪、语音识别。还可以输出语音声源定位的DOA角。
相互作用
识别出语音后,定义并实现不同语音对应的不同功能应用,例如“向前走”语音控制机器人前进。
控制
根据“交互”模块输出的控制指令,实现机器人的机械控制。
机器人本体
当然,还需要具有运动能力的机器人本体,来接收控制指令并控制电机运动,最终达到通过语音控制机器人运动的效果。
n发布的机器人开发平台软件栈内置了丰富且易于使用的机器人开发组件,包括构建智能机器人应用程序所涉及的所有功能模块(例如机器人语音控制)。它完全开源、免费,并且允许开发者进行二次开发。
2、准备工作
按照应用案例准备构建机器人本体的硬件设备和软件包。
硬件
① 旭日X3阵营
②麦克风阵列及转接板
③机器人
这次我就用这款轮足机器人来介绍一下。没有的开发者不必担心。我将在文章后面介绍如何构建自己的机器人。
安装系统
请参阅Xuri X3 Pie用户手册的安装系统章节。安装完成(或已经安装)后,需要更新系统。
系统配置
要配置 Xuri X3 Pi 的无线网络,请参阅 Xuri X3 Pi 用户手册的无线网络章节。
安装
使用 apt 命令通过 DEB 包安装。使用ssh root@192.168.1.147登录Xuri X3,执行命令:
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code>root@ubuntu:~# sudo apt install hhp
root@ubuntu:/userdata# ls /opt/
tros</code></pre></p>
可以看到已经安装在/opt目录下,说明安装成功。至此,准备工作就结束了。下面我们开始使用这些硬件设备和软件包来构建机器人本体。
3. 使用介绍
接下来开始操作各个功能模块,然后一步一步组装起来,验证其功能。
安装音频麦克风
首先,您需要将 Xuri X3 Pi 连接到音频适配器板。安装好的Xuri X3 Pi和音频板如下:
直接使用ROS测试麦克风阵列的功能,通过脚本加载麦克风阵列驱动,启动智能语音识别模块。使用ssh root@192.168.1.147登录Xuri X3后,在终端(以下默认终端都是通过ssh登录)输入以下命令启动:
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code># 配置TogetherROS环境
source /opt/tros/setup.bash
# 从TogetherROS的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/lib/hobot_audio/config/ .
# 加载音频驱动,设备启动之后只需要加载一次
bash config/audio.sh
#启动launch文件
ros2 launch hobot_audio hobot_audio.launch.py</code></pre></p>
智能语音识别模块默认发布的智能语音消息主题名为:/。您可以通过在另一个终端上执行 ros2 topic list 命令来查询该主题信息:
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code>$ ros2 topic list
/audio_smart
</code></pre></p>
语音识别和指令词控制小车运动功能
在 Sun X3上打开终端并启动语音识别和控制脚本
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code># 配置TogetherROS环境
source /opt/tros/setup.bash
# 从TogetherROS的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/lib/hobot_audio/config/ .
# 加载音频驱动,设备启动之后只需要加载一次
bash config/audio.sh
#启动launch文件
ros2 launch audio_control hobot_audio_control.launch.py</code></pre></p>
在当前终端执行ros2 topic echo /命令,查询Xuri X3上的topic信息。当声控“前进”时,终端输出如下:
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code>linear:
x: 0.30000001192092896
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0</code></pre></p>
表明智能语音识别算法和交互功能软件包已成功安装,并且可以通过/topic对外发布机器人运动控制消息。
在机器人上安装 Sun X3 Pie
首先,需要在 Xuri X3 Pi 上安装音频板。其次,将配备线性四麦克风麦克风阵列的Xuri X3 Pi直接固定在机器人上,将机器人的USB控制接口插入Xuri X3 Pi。安装效果如下:
安装完成后,您可以通过控制机器人运动来检查安装是否成功。在 Sun X3 Pie上启动Benmo Biped机器人运行控制节点,打开终端,然后执行以下命令:
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code># 配置TogetherROS环境
source /opt/tros/setup.bash
#启动本末机器人运动控制package
ros2 run diablo_sdk ros_bridge_example
</code></pre></p>
在 Sun X3上重新打开一个终端,通过发布/主题消息控制机器人以0.3r/s的速度旋转:
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code>
# 配置TogetherROS环境
source /opt/tros/setup.bash
ros2 topic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0.3}}'</code></pre></p>
机器人收到控制命令后转动的效果如下:
机器人接受旋转指令
4.完整的机器人声控效果
在 Sun X3上打开终端并启动智能语音识别和语音控制脚本
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code># 配置TogetherROS环境
source /opt/tros/setup.bash
# 从TogetherROS的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/lib/hobot_audio/config/ .
# 加载音频驱动,设备启动只需要加载一次
bash config/audio.sh
#启动语音控制launch文件
ros2 launch audio_control hobot_audio_control.launch.py</code></pre></p>
在 Sun X3上打开终端并启动机器人运动控制节点
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code># 配置TogetherROS环境
source /opt/tros/setup.bash
#启动本末机器人运动控制Node
ros2 run diablo_sdk ros_bridge_example</code></pre></p>
通过语音控制机器人动作
语音控制
五、原理分析
对于复杂的机器人系统,机器人一般配备两个处理器:主机和从机。声控机器人由两部分组成,分为上位机和下位机。各部分详细组成如下:
6.语音控制进阶
在智能语音识别Node中,设备唤醒词和命令词默认配置在/opt/tros/lib///hrsc/.json文件中(当然,如果用户将此文件夹复制到其他路径,以实际使用的配置路径为准):
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre><code>{
"cmd_word": [
"地平线你好",
"向前走",
"向后退",
"向左转",
"向右转",
"停止运动"
]
}
</code></pre></p>
配置文件中的第一项是唤醒字,后面是命令字。用户可以根据需要进行配置,自定义语音操作。
本文转载自n开发者社区。完整文章请参见: |
|