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