iT邦幫忙

2023 iThome 鐵人賽

DAY 19
0
自我挑戰組

一個營建系學生的韌體之路-自走車篇系列 第 19

【AMR_Day19】ROS2的常見工具們—RQt

  • 分享至 

  • xImage
  •  

RQt

花了幾天的時間在介紹ROS2與如何使用它,目前都僅透過terminal來學習節點之間的topic如何傳遞訊息,但我們想做的事情絕對不會只有輸出『Hello, world!』這麼簡單,更多的使用情境是要模擬機器人的運作、觀看Sensor送出的資料,那單靠terminal的顯示是不夠的~~我們需要更多直觀的畫面來協助我們理解機器人現在的狀態!!確實也已經有很多工具可以使用,如前幾天提到的rviz2、gazebo等等...
那今天從之前沒提過,但也很實用的RQt開始~

RQt是基於Qt且專門為ROS而生的圖形化界面(Graphical User Interface,GUI),簡單來說就是省去掉在terminal下指令的功夫,讓一般使用者可以透過簡單的按鍵或其他模組來更輕易的使用程式,一般Qt的界面長這樣。
Qt

來源:wiki Qt
p.s. 曾經花了一年用Qt做了一個貪吃蛇小遊戲,一開始還沒學物件導向,做起來有點吃力。

Ros中Qt是這樣用的~一樣要開啟設定完環境變數的terminal

rqt #單純打開rqt視窗

# 如果還沒安裝
sudo apt install ros-foxy-rqt*

https://ithelp.ithome.com.tw/upload/images/20231004/20140433S3wAbOUMM0.png
在上面的列表看到有個Plugins的標籤,裡面列了所有官方寫好的預設工具
https://ithelp.ithome.com.tw/upload/images/20231004/20140433Tt8V6p9BdF.png
可以依照需求添加工具,會在同一個視窗裡出現
https://ithelp.ithome.com.tw/upload/images/20231004/20140433u6duMHfMlL.png

實際操作

接下來只介紹我用過的~~
開始前先開啟一些範例,方便理解~

ros2 run turtlesim turtlesim_node #terminal1 小烏龜節點

ros2 run turtlesim turtle_teleop_key #terminal2 鍵盤控制節點

rqt #terminal3 叫出rqt視窗

Node Graph

Plugins->Introspection->Node Graph 叫出節點關係界面,可以看到兩個節點之間有哪些topic!
橢圓形的為節點、箭頭為一個topic、被箭頭指著的節點是訂閱者、反之為發布者。
https://ithelp.ithome.com.tw/upload/images/20231004/20140433JCsdNbMHzk.png

Service Caller

Plugins->Services->Service Caller 叫出服務界面,呼叫/clear可以把小烏龜節點的移動軌跡清除~
https://ithelp.ithome.com.tw/upload/images/20231004/20140433of91RorxOy.png
https://ithelp.ithome.com.tw/upload/images/20231004/20140433EVHSuNHD3h.png

還有另外一個服務是/spwan,中文翻譯很可愛XD名詞是卵、動詞是孳生,也就是新增一隻小烏龜的意思~
我新增了兩隻'EJsturtle'、'EJsturtle2',因為第一隻位置在(0,0,0)看不太到,所以再生一隻在(1,1,1)
https://ithelp.ithome.com.tw/upload/images/20231004/201404332CyS5J7P5k.png
https://ithelp.ithome.com.tw/upload/images/20231004/20140433YMjueXeh7O.png

p.s. Gazebo中新增機器人模型也是透過gazebo的spwan!

Message Publisher

Plugins->Topics->Message Publisher 則是可以使用界面來設定發布的內容。
例如我指定對turtle1發布/cmd_vel消息,並用ros2 topic echo /turtle1/cmd_vel 檢查,也確實有訊息一直被發布~
https://ithelp.ithome.com.tw/upload/images/20231004/20140433tckH9tTxVq.png
https://ithelp.ithome.com.tw/upload/images/20231004/20140433okKtNkKyHu.png

rqt_graph

也就是上面的Node Graph,但可以省去掉要先打開rqt在點選項目欄的時間,直接在terminal輸入

rqt_graph

https://ithelp.ithome.com.tw/upload/images/20231004/201404332xg0NzZ3nn.png

預言

明天應該會一次介紹rviz2和gazebo,不過gazebo涵蓋的東西很多,所以也會花比較多天的篇幅慢慢介紹~


上一篇
【AMR_Day18】ROS2 基本功- 用c++寫個綜合練習(下)
下一篇
【AMR_Day20】ROS2的常見工具們—RViz、Gazebo
系列文
一個營建系學生的韌體之路-自走車篇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言