摘要:
在AI操控機(jī)器人系列第二期的人體跟隨教程中,身為地平線資深程序員的奶爸朱靠,使用地平線發(fā)布的機(jī)器人開發(fā)平臺(tái)TogetherROS軟件棧,搭建了人體跟隨機(jī)器人。
同為開發(fā)者的梁雪,期待AI的世界,想讓自己的生活也AI一把,并且一向是個(gè)能動(dòng)口絕不動(dòng)手的懶人,于是熱衷于體驗(yàn)各類AI機(jī)器人,尤其是動(dòng)動(dòng)口就能操控的機(jī)器人,想著有朝一日過上“能只動(dòng)口絕不動(dòng)手”的生活,于是乎,就有了下面的這些體驗(yàn)。
產(chǎn)品A:說說話確實(shí)是能跟著走一走,but,我真的不想說完話之后還需要自己向右轉(zhuǎn)才能引導(dǎo)它右轉(zhuǎn)呀……
產(chǎn)品B:為什么還是得動(dòng)動(dòng)手,遙控來操控……噢,可達(dá)不到懶人預(yù)期呢。
難道就沒有動(dòng)動(dòng)口就能讓機(jī)器人運(yùn)動(dòng),達(dá)到控制機(jī)器人的目的嗎?答案必然是,有!下面地平線AI操控機(jī)器人系列——語(yǔ)音控制閃亮登場(chǎng)。
一、功能介紹
大家先看一下最終實(shí)現(xiàn)的功能。
從開始語(yǔ)音到機(jī)器人依據(jù)指令快速且準(zhǔn)確的運(yùn)動(dòng),得益于地平線旭日??X3派上5Tops算力的BPU,可以實(shí)現(xiàn)低延遲算法推理能力,以及語(yǔ)音算法模塊實(shí)現(xiàn)的遠(yuǎn)場(chǎng)(3~5米)降噪、回聲消除,高準(zhǔn)確率的asr識(shí)別功能。開始碼代碼前,先來簡(jiǎn)單分析一下人體跟隨機(jī)器人需要具備哪些基本模塊。
語(yǔ)音輸入——麥克風(fēng)
旭日X3派采用的是麥克風(fēng)陣列硬件拾音,通過麥克風(fēng)采集到音頻之后交給后面的智能語(yǔ)音分析模塊處理。
智能語(yǔ)音感知
智能語(yǔ)音算法對(duì)原始音頻進(jìn)行處理,對(duì)音頻進(jìn)行降噪并且識(shí)別出語(yǔ)音,同時(shí)還能輸出語(yǔ)音聲源定位的DOA角度。
交互
識(shí)別出語(yǔ)音之后,定義并且實(shí)現(xiàn)不同語(yǔ)音對(duì)應(yīng)的不同功能應(yīng)用,比如“向前走”語(yǔ)音控制機(jī)器人向前運(yùn)動(dòng)。
控制
根據(jù)“交互”模塊輸出的控制指令,實(shí)現(xiàn)對(duì)機(jī)器人的機(jī)械控制。
機(jī)器人本體
當(dāng)然還需要一個(gè)具備運(yùn)動(dòng)能力的機(jī)器人本體,接收控制指令并控制電機(jī)運(yùn)動(dòng),最終實(shí)現(xiàn)通過語(yǔ)音控制機(jī)器人運(yùn)動(dòng)的效果。
地平線發(fā)布的機(jī)器人開發(fā)平臺(tái)TogetherROS軟件棧內(nèi)置了豐富易用的機(jī)器人開發(fā)組件,包含搭建一個(gè)智能機(jī)器人應(yīng)用(如機(jī)器人語(yǔ)音控制)所涉及到的所有功能模塊,完全開源免費(fèi),并允許開發(fā)者二次開發(fā)。
二、準(zhǔn)備工作
準(zhǔn)備搭建機(jī)器人人體跟隨應(yīng)用案例的硬件設(shè)備和軟件包。
硬件
①旭日X3派
②麥克風(fēng)陣列及轉(zhuǎn)接板
③機(jī)器人
本次使用本末的輪足機(jī)器人來介紹,沒有的開發(fā)者們也不用擔(dān)心,文章后面會(huì)介紹自己搭建機(jī)器人的方式。
安裝系統(tǒng)
參考旭日X3派的用戶手冊(cè)的安裝系統(tǒng)章節(jié),安裝完成(或者已經(jīng)安裝過)需要更新系統(tǒng)。
系統(tǒng)配置
配置旭日X3派的無線網(wǎng)絡(luò),參考旭日X3派的用戶手冊(cè)的無線網(wǎng)絡(luò)章節(jié)。
安裝TogetherROS
使用apt命令通過DEB包安裝TogetherROS。登錄旭日X3派ssh root@192.168.1.147,執(zhí)行命令:
root@ubuntu:~# sudo apt install hhp
root@ubuntu:/userdata# ls /opt/
tros
可以看到TogetherROS已安裝在/opt目錄下,說明安裝成功。至此,準(zhǔn)備工作結(jié)束,下面開始使用這些硬件設(shè)備和軟件包搭建機(jī)器人人體跟隨App。
三、使用介紹
接下來開始操作各個(gè)功能模塊,再一步步組裝起來,分別驗(yàn)證其功能。
安裝音頻麥克風(fēng)
首先需要將旭日X3派與音頻轉(zhuǎn)接板連接起來,安裝好的旭日X3派以及音頻板圖如下:
直接使用TogetherROS中的ROS package測(cè)試麥克風(fēng)陣列的功能,通過腳本加載麥克風(fēng)陣列驅(qū)動(dòng),并且啟動(dòng)智能語(yǔ)音識(shí)別模塊。登錄旭日X3派ssh root@192.168.1.147后,在終端(以下默認(rèn)終端都是通過ssh登錄)中輸入以下命令啟動(dòng):
# 配置TogetherROS環(huán)境
source /opt/tros/setup.bash
# 從TogetherROS的安裝路徑中拷貝出運(yùn)行示例需要的配置文件。
cp -r /opt/tros/lib/hobot_audio/config/ .
# 加載音頻驅(qū)動(dòng),設(shè)備啟動(dòng)之后只需要加載一次
bash config/audio.sh
#啟動(dòng)launch文件
ros2 launch hobot_audio hobot_audio.launch.py
智能語(yǔ)音識(shí)別模塊默認(rèn)發(fā)布的智能語(yǔ)音消息話題名為:/audio_smart, 在另一個(gè)終端執(zhí)行使用ros2 topic list命令可以查詢到此topic信息:
$ ros2 topic list
/audio_smart
語(yǔ)音識(shí)別和命令詞控制小車運(yùn)動(dòng)功能
旭日X3派上打開一個(gè)終端,啟動(dòng)語(yǔ)音識(shí)別和控制的腳本
# 配置TogetherROS環(huán)境
source /opt/tros/setup.bash
# 從TogetherROS的安裝路徑中拷貝出運(yùn)行示例需要的配置文件。
cp -r /opt/tros/lib/hobot_audio/config/ .
# 加載音頻驅(qū)動(dòng),設(shè)備啟動(dòng)之后只需要加載一次
bash config/audio.sh
#啟動(dòng)launch文件
ros2 launch audio_control hobot_audio_control.launch.py
在當(dāng)前終端執(zhí)行ros2 topic echo /cmd_vel命令查詢旭日X3派上的話題信息,當(dāng)語(yǔ)音控制“向前走”,終端輸出如下:
linear:
x: 0.30000001192092896
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0
說明智能語(yǔ)音識(shí)別算法和交互功能的軟件包已安裝成功,并能夠通過/cmd_vel話題對(duì)外發(fā)布機(jī)器人運(yùn)動(dòng)控制消息。
將旭日X3派安裝在機(jī)器人上
首先,需要將音頻板安裝在旭日X3派上,其次,將安裝了線性四麥麥克風(fēng)陣列的旭日X3派直接固定在機(jī)器人上,并將機(jī)器人的USB控制接口插到旭日X3派上。安裝效果如下圖:
安裝好后,可以通過控制機(jī)器人運(yùn)動(dòng)查看是否成功安裝。在旭日X3派上啟動(dòng)本末雙足機(jī)器人運(yùn)行控制Node,打開一個(gè)終端,執(zhí)行如下命令:
# 配置TogetherROS環(huán)境
source /opt/tros/setup.bash
#啟動(dòng)本末機(jī)器人運(yùn)動(dòng)控制package
ros2 run diablo_sdk ros_bridge_example
旭日X3派上重新打開一個(gè)終端,通過發(fā)布/cmd_vel話題消息控制機(jī)器人以0.3r/s的速度轉(zhuǎn)動(dòng):
# 配置TogetherROS環(huán)境
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}}'
機(jī)器人收到控制指令后轉(zhuǎn)動(dòng)的效果如下:
四、完整的機(jī)器人語(yǔ)音控制效果
旭日X3派上打開一個(gè)終端,啟動(dòng)智能語(yǔ)音識(shí)別和語(yǔ)音控制腳本
# 配置TogetherROS環(huán)境
source /opt/tros/setup.bash
# 從TogetherROS的安裝路徑中拷貝出運(yùn)行示例需要的配置文件。
cp -r /opt/tros/lib/hobot_audio/config/ .
# 加載音頻驅(qū)動(dòng),設(shè)備啟動(dòng)只需要加載一次
bash config/audio.sh
#啟動(dòng)語(yǔ)音控制launch文件
ros2 launch audio_control hobot_audio_control.launch.py
旭日X3派上打開一個(gè)終端,啟動(dòng)機(jī)器人運(yùn)動(dòng)控制Node
# 配置TogetherROS環(huán)境
source /opt/tros/setup.bash
#啟動(dòng)本末機(jī)器人運(yùn)動(dòng)控制Node
ros2 run diablo_sdk ros_bridge_example
通過語(yǔ)音控制機(jī)器人運(yùn)動(dòng)
五、原理分析
對(duì)于一個(gè)復(fù)雜的機(jī)器人系統(tǒng),一般在機(jī)器人上配置上位機(jī)和下位機(jī)兩種處理器。語(yǔ)音控制機(jī)器人由兩部分組成,分為上位機(jī)和下位機(jī)。各部分詳細(xì)組成如下圖:
!
六、語(yǔ)音控制進(jìn)階
智能語(yǔ)音識(shí)別Node中,設(shè)備喚醒詞和命令詞默認(rèn)配置/opt/tros/lib/hobot_audio/config/hrsc/cmd_word.json文件下(當(dāng)然,若用戶將此config文件夾拷貝到了其他路徑,那以實(shí)際使用的配置路徑為準(zhǔn)):
{
"cmd_word": [
"地平線你好",
"向前走",
"向后退",
"向左轉(zhuǎn)",
"向右轉(zhuǎn)",
"停止運(yùn)動(dòng)"
]
}
配置文件的第一項(xiàng)為喚醒詞,后面的是命令詞,用戶可以根據(jù)需要進(jìn)行配置,實(shí)現(xiàn)語(yǔ)音操作的自定義。
本文轉(zhuǎn)自地平線開發(fā)者社區(qū),完整文章內(nèi)容詳見:https://developer.horizon.ai/forumDetail/109609560406362625
-
語(yǔ)音識(shí)別
+關(guān)注
關(guān)注
38文章
1742瀏覽量
112692 -
人工智能
+關(guān)注
關(guān)注
1791文章
47352瀏覽量
238779 -
語(yǔ)音控制
+關(guān)注
關(guān)注
5文章
483瀏覽量
28259
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論