7.1 先安裝
sudo apt-get install ros-indigo-rqt ros-indigo-rqt-common-plugins ros-indigo-turtlesim
7.2 一些命令
- rqt_console: 顯示node的輸出訊息
- rqt_logger_level: 改變rqt_console輸出的logger levels, 包含DEBUG, INFO, WARN, ERROR等, 優先度為:
Fatal Error Warn Info Debug
- roslaunch: 用來啟動定義在launch文件中的多個node
7.3 使用rqt_console和rqt_logger_level
首先, 將之前的視窗關一關, 留著roscore就好
接下來在啟動turtlesim前, 先分別用兩個terminal啟動rqt_console和rqt_logger_level
此時會看到兩個window, 接下來再啟動turtlesim(另一個terminal)
rosrun turtlesim turtlesim_node
由於rqt_logger_level的default為INFO, 因此在rqt_console中可以看到啟動後輸出的information
接下來我們將rqt_logger_level的window中將level修改為WARN
接下來我們讓烏龜去撞牆壁以觸發這個訊息
rostopic pub /tutle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2,0,0]' '[0,0,0]'
等到烏龜撞牆後應會看到一連串的警告訊息
我們在上面提過優先等級, 設置level代表在其以上的訊息我們都會顯示, 也就是當我們把level設為WARN時, 我們會得到Warn, Error, Fatal這三個level的訊息
7.4 利用roslaunch啟動多個node
roscd beginner_tutorials
mkdir launch
cd launch
vim turtlemimic.launch
將以下內容寫到turtlemimic.launch中
1 <launch>
2
3 <group ns="turtlesim1">
4 <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
5 </group>
6
7 <group ns="turtlesim2">
8 <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
9 </group>
10
11 <node pkg="turtlesim" name="mimic" type="mimic">
12 <remap from="input" to="turtlesim1/turtle1"/>
13 <remap from="output" to="turtlesim2/turtle1"/>
14 </node>
15
16 </launch>
接下來解釋一下這篇文件
1 <launch>
表示了此為一個launch文件
3 <group ns="turtlesim1">
4 <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
5 </group>
6
7 <group ns="turtlesim2">
8 <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
9 </group>
此處產生兩個node group, 並用不同的ns(namespace)區隔, 分別為turtlesim1和turtlesim2, 兩個group都使用node turtlesim並命名為sim, 如此可以產生兩個turtlesim模擬器而不產生命名衝突
11 <node pkg="turtlesim" name="mimic" type="mimic">
12 <remap from="input" to="turtlesim1/turtle1"/>
13 <remap from="output" to="turtlesim2/turtle1"/>
14 </node>
這邊我們啟動一個節點, 他的任務是將topic的輸入和輸出分別命名為turtlesim1和turtlesim2, 如此可以讓turtlesim2模仿turtlesim1
16 </launch>
此為結束標籤
現在透過roslaunch來啟動launch文件並輸入
rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'
此時會看到兩個turtle都在移動
也可以透過
rqt_graph
來理解發生什麼事