日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用 rqt_console 和 roslaunch

發布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用 rqt_console 和 roslaunch 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Description: ?本教程介紹如何使用 rqt_console rqt_logger_level 進行調試,以及如何使用 roslaunch 同時運行多個節點。早期版本中的 rqt 工具并不完善,因此,如果你使用的是“ROS fuerte”或更早期的版本,請同時參考 這個頁面 學習使用老版本的“rx”工具。

Tutorial Level: ?BEGINNER

Next Tutorial: ? 如何使用rosed ?

目錄

  • 預先安裝rqt和turtlesim程序包
  • 使用rqt_console和rqt_logger_level
  • 日志等級說明
  • 使用roslaunch
  • Launch 文件
  • Launch 文件解析
  • roslaunching
  • 預先安裝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的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。