小海龜(Turtlesim)是ROS2中一個(gè)非常重要的入門級(jí)例程,通過海龜仿真,我們可以了解到很多ROS2的底層原理,涉及節(jié)點(diǎn)、話題、服務(wù)等核心概念。
安裝海龜仿真器
sudo apt update
sudo apt install ros-foxy-turtlesim
Windows:
默認(rèn)已經(jīng)安裝好
如果你不確定是否安裝成功,可以使用該命令檢查:
ros2 pkg executables turtlesim
看到如下內(nèi)容說明安裝成功:
啟動(dòng)海龜仿真器
終端中輸入如下命令啟動(dòng)海龜仿真器:
ros2 run turtlesim turtlesim_node
很快可以看到一個(gè)打開的仿真器界面,里邊會(huì)隨機(jī)使用一個(gè)ROS2的logo作為顯示海龜?shù)奈恢茫?/p>
終端中可以看到海龜?shù)拿趾驮诜抡嫫髯鴺?biāo)系下的位置:
接下來讓海龜動(dòng)起來,打開一個(gè)新的終端,輸入如下命令:ros2 run turtlesim turtle_teleop_key 然后根據(jù)終端中的提示點(diǎn)擊鍵盤按鍵,即可控制小海龜運(yùn)動(dòng)啦,注意一定要讓鍵盤控制節(jié)點(diǎn)在激活狀態(tài):
我們可以使用如下命令看看小海龜后臺(tái)到底運(yùn)行了哪些功能:
ros2 node list
ros2 topic list
ros2 service list
ros2 action list
安裝rqt工具
Linux:
sudo apt update
sudo apt install ~nros-foxy-rqt*
Windows:
默認(rèn)已經(jīng)安裝 安裝完成后使用如下命令運(yùn)行:rqt 第一次打開的界面是空的,選擇Plugins > Services > Service Caller 這個(gè)插件是用來發(fā)布服務(wù)請(qǐng)求的,點(diǎn)擊刷新按鍵之后,可以看到系統(tǒng)當(dāng)前的所有服務(wù)。
選擇/spawn服務(wù),雙擊下邊的數(shù)據(jù)項(xiàng),填寫新產(chǎn)生海龜?shù)拿趾臀恢茫缓簏c(diǎn)擊“Call”,即可發(fā)送服務(wù)請(qǐng)求。注意名字一定不能和已有的海龜名字一樣,不然會(huì)有報(bào)錯(cuò)。
很快就可以在海龜仿真器當(dāng)中看到另外一只海龜啦!
產(chǎn)生的不僅是一只新的海龜,還會(huì)有“turtle2”對(duì)應(yīng)的話題、服務(wù),可以說和turtle1是功能完全一樣的兩只海龜。
還可以嘗試另外一個(gè)服務(wù)/set_pen,通過設(shè)置畫筆,調(diào)整海龜軌跡的顏色。如下圖所示,設(shè)置畫筆的rgb值和寬度,點(diǎn)擊“Call”之后,再運(yùn)動(dòng)海龜就可以看到全新的軌跡效果啦。
大家一定會(huì)有一個(gè)問題,第二只海龜如何運(yùn)動(dòng)呢?仿真器默認(rèn)的鍵盤控制節(jié)點(diǎn)只能發(fā)布turtle1的話題,但是通過ROS的重映射(remapping)機(jī)制,可以實(shí)現(xiàn)對(duì)話題的重新命名。
在一個(gè)新的終端中輸入如下指令:
ros2 run turtlesim turtle_teleop_key --ros-args --remap turtle1/cmd_vel:=turtle2/cmd_vel
這里就把turtle1/cmd_vel這個(gè)話題名更改為了turtle2/cmd_vel,現(xiàn)在該節(jié)點(diǎn)就可以控制turtle2啦,不信在該終端中點(diǎn)擊鍵盤試一下。
參考鏈接:
https://index.ros.org/doc/ros2/Tutorials/Turtlesim/Introducing-Turtlesim/
-
仿真器
+關(guān)注
關(guān)注
14文章
1019瀏覽量
83917 -
ROS
+關(guān)注
關(guān)注
1文章
280瀏覽量
17077
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論