ROS2
的基礎大致上都介紹完了,接下來介紹一些好用的工具吧!
RQT是ROS的GUI工(ROS QT?),可以用來顯示ROS的資訊,也可以用來控制ROS的運作。其中整合了很多前面就紹過的指令,包含Topic, Service, Parameter等等,也可以用來顯示TF的資訊。
在系統專案還小時用Command Line比較方便,但是規模一旦變大,就會需要一些GUI的工具來幫助除錯,這時候RQT就派上用場了。
sudo apt install ros-foxy-rqt-*
這會安裝所有rqt的相關套件,也可以案Tab
查看有哪些套件可以安裝。
顯示目前的topic-node關係圖。可以用來檢查topic是否有正確的連接,或是用來檢查topic的名稱是否正確。
ros2 run rqt_graph rqt_graph
應該會看到類似下面的圖
顯示目前的Topic資訊,包含Topic的名稱、Type、頻寬、頻率、數值等等。
ros2 run rqt_topic rqt_topic
應該會看到類似下面的圖
可以看到左側的收折圖示,打開後就是msg定義的格式。而checkbox則是是否訂閱該topic,打勾的話就會開始顯示數值。
不過要注意,如果Topic是自定義的msg,必須要source workspace之後才能顯示細節,不然只會有Topic的名稱。
另外一點是,如果看到大型陣列的Topic像是image
, pointcloud2
等等,不建議點開旁邊的收折圖示,會因為資料量太大而卡頓甚至當機。
可以用來呼叫Service,並顯示回傳的結果。
ros2 run rqt_service_caller rqt_service_caller
應該會看到類似下面的圖
可以在下拉選單中選擇要呼叫的Service。
這邊拿之前介紹過的add_two_ints
來做範例,可以看到左側是Service的名稱,右側則是Service的輸入,可以直接在右側輸入數值,按下Call
後就會顯示回傳的結果。
可以用來顯示圖片,可以用來顯示sensor_msgs/Image
的Topic。
ros2 run rqt_image_view rqt_image_view
應該會看到類似下面的圖
可以在下拉選單中選擇要顯示的Image Topic。
這個指令類似於rqt plugin的容器,可以用來啟用上述和更多的plugin。
ros2 run rqt_gui rqt_gui
# 或是簡化指令
rqt
rqt
是個巨集,會直接啟動rqt_gui
。
應該會看到類似下面的圖
可以看到上面有一排的選單,可以用來啟用不同的plugin。
像是我們可以到Plugins
->Visualization
->Image View
,就可以啟用rqt_image_view
。而且可以啟動多個plugin,像是我們可以同時啟用rqt_image_view
和rqt_topic
,就可以同時顯示圖片和topic的資訊,另外plugin也可以拖曳來調整位置。
這邊demo啟動兩個rqt_image_view
用來檢視多個影像。
說明 | ROS | ROS2 | 差異 |
---|---|---|---|
啟動 | rqt_* |
ros2 run rqt_* rqt_* |
多數ROS2 RQT需要ros2 run 才能啟動 |
rqt_bag | 有 | foxy 以前沒有 |
ROS2 需要自行安裝rosbag2 的foxy-future 或更新的版本 |