使用 rqt_console 和 roslaunch
Tutorial Level: ?BEGINNER
Next Tutorial: ? 如何使用rosed ?
目錄
預先安裝rqt和turtlesim程序包
本教程會用到rqt?和?turtlesim這兩個程序包,如果你沒有安裝,請先安裝:
$ sudo apt-get install ros-<distro>-rqt ros-<distro>-rqt-common-plugins ros-<distro>-turtlesim
請使用ROS發行版名稱(比如 electric、fuerte、groovy、hydro或最新的indigo)替換掉<distro>。
注意:?你可能已經在之前的某篇教程中編譯過rqt和turtlesim,如果你不確定的話重新編譯一次也沒事。
使用rqt_console和rqt_logger_level
rqt_console屬于ROS日志框架(logging framework)的一部分,用來顯示節點的輸出信息。rqt_logger_level允許我們修改節點運行時輸出信息的日志等級(logger levels)(包括 DEBUG、WARN、INFO和ERROR)。
現在讓我們來看一下turtlesim在rqt_console中的輸出信息,同時在rqt_logger_level中修改日志等級。在啟動turtlesim之前先在另外兩個新終端中運行rqt_console和rqt_logger_level:
$ rosrun rqt_console rqt_console
$ rosrun rqt_logger_level rqt_logger_level
你會看到彈出兩個窗口:
現在讓我們在一個新終端中啟動turtlesim:
$ rosrun turtlesim turtlesim_node
因為默認日志等級是INFO,所以你會看到turtlesim啟動后輸出的所有信息,如下圖所示:
現在讓我們刷新一下rqt_logger_level窗口并選擇Warn將日志等級修改為WARN,如下圖所示:
現在我們讓turtle動起來并觀察rqt_console中的輸出(非hydro版):
rostopic pub /turtle1/command_velocity turtlesim/Velocity -r 1 -- 2.0 0.0
hydro版:
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 0.0]'
日志等級說明
日志等級按以下優先順序排列:
Fatal Error Warn Info Debug
Fatal是最高優先級,Debug是最低優先級。通過設置日志等級你可以獲取該等級及其以上優先等級的所有日志消息。比如,將日志等級設為Warn時,你會得到Warn、Error和Fatal這三個等級的所有日志消息。
現在讓我們按Ctrl-C退出turtlesim節點,接下來我們將使用roslaunch來啟動多個turtlesim節點和一個模仿節點以讓一個turtlesim節點來模仿另一個turtlesim節點。
使用roslaunch
roslaunch可以用來啟動定義在launch文件中的多個節點。
用法:
$ roslaunch [package] [filename.launch]
先切換到beginner_tutorials程序包目錄下:
$ roscd beginner_tutorials
如果roscd執行失敗了,記得設置你當前終端下的ROS_PACKAGE_PATH環境變量,設置方法如下:
$ export ROS_PACKAGE_PATH=~/<distro>_workspace/sandbox:$ROS_PACKAGE_PATH $ roscd beginner_tutorials
如果你仍然無法找到beginner_tutorials程序包,說明該程序包還沒有創建,那么請返回到ROS/Tutorials/CreatingPackage教程,并按照創建程序包的操作方法創建一個beginner_tutorials程序包。
然后創建一個launch文件夾:
$ mkdir launch $ cd launch
Launch 文件
現在我們來創建一個名為turtlemimic.launch的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>
Launch 文件解析
現在我們開始逐句解析launch xml文件。
切換行號顯示 1 <launch>
在這里我們以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>
在這里我們創建了兩個節點分組并以'命名空間(namespace)'標簽來區分,其中一個名為turtulesim1,另一個名為turtlesim2,兩個組里面都使用相同的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>
在這里我們啟動模仿節點,并將所有話題的輸入和輸出分別重命名為turtlesim1和turtlesim2,這樣就會使turtlesim2模仿turtlesim1。
切換行號顯示 16 </launch>
這個是launch文件的結束標簽。
roslaunching
現在讓我們通過roslaunch命令來啟動launch文件:
$ roslaunch beginner_tutorials turtlemimic.launch
現在將會有兩個turtlesims被啟動,然后我們在一個新終端中使用rostopic命令發送速度設定消息:
非hydro版:
$ rostopic pub /turtlesim1/turtle1/command_velocity turtlesim/Velocity -r 1 -- 2.0 -1.8
hydro版:
$ rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'
你會看到兩個turtlesims會同時開始移動,雖然發布命令只是給turtlesim1發送了速度設定消息。
我們也可以通過rqt_graph來更好的理解在launch文件中所做的事情。運行rqt并在主窗口中選擇rqt_graph:
$ rqt
或者直接運行:
$ rqt_graph
到此,我們算是已經學會了rqt_console和roslaunch命令的使用,接下來我們開始學習使用rosed——ROS中的編輯器。現在你可以按Ctrl-C退出所有turtlesims節點了,因為在下一篇教程中你不會再用到它們。
總結
以上是生活随笔為你收集整理的使用 rqt_console 和 roslaunch的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡可以贷款买房吗 信用卡贷款买房划算
- 下一篇: 【转】4.2SharePoint服务器端