ROS 學習筆記(2)ROS 命令列工具

2021-10-21 13:56:10 字數 2815 閱讀 2488

古月居-命令列工具

啟動終端指令,也是ros使用中第一步需要執行的指令

啟動終端,使用roscore啟動 ros master:

roscore
會出現如下介面:

這個終端是不可以關閉的。

執行指令,執行ros功能包中的某個節點

接著開啟另外乙個終端,使用 ** rosrun ** 指令執行節點,節點屬於功能包,因此執行該指令時,需要以rosrun + 功能包名+節點名的形式來進行,在小海龜例項中,執行小海龜的節點如下:

rosrun turtlesim turtlesim_node
在該指令中,turtlesim就是功能包名,turtlesim_node就是節點名。執行該節點之後,桌面上就會出現如下介面:

rosrun turtlesim turtle_teleop_key
此時使用鍵盤中的方向鍵就可以控制小烏龜的移動,如下:

圖工具,檢視**器中的計算圖

我們可以使用qt工具來顯示系統的計算圖(節點之間通訊關係的圖),開啟新終端,使用rqt_graph工具來獲取圖:

rqt_graph
結果如下,圖中顯示了兩個節點,分別是teleop_turtle(鍵盤)turtlesim(烏龜),從圖中可知,兩個節點之間存在話題通訊

節點工具指令

還可以通過節點指令rosnode,在終端中直接輸入 rosnode,會自動列出rosnode指令的所有選項。

rosnode list
rosnode info /turtlesim
終端中就會顯示節點的詳細資訊, 如下:

話題工具指令

使用rostopic可以使用系統中的topic工具,在終端中直接輸入rostopic執行,可以檢視rostopic的相關選項,如下:

使用rostopic list可以檢視海龜**器中所有的話題:

rostopic list
結果如下:

還可以直接使用rostopic指令直接控制海龜控制器中的小海龜,給出例子如下:

直接控制海龜移動。對上述指令簡單修改,還可以讓小海龜持續運動,

其中-r表示rate。

訊息工具指令

使用rosmsg show指令檢視訊息的資料結構:

服務工具指令

與rostopic、rosnode指令相似,直接輸入rosservice也可以顯示相關選項,後接list可以檢視所有的服務,rosservice同樣可以用來直接控制**器中的烏龜,需要特別說明的是,使用終端命令列,終端作為客戶端的身份向海龜**器,即服務端,請求服務。

使用rosservice檢視所有服務:

/spawn是用於建立一直新海龜的服務,使用rosservice call呼叫,如下有:

此時在介面中會多出一直小海龜。

儲存與讀取話題資料,用於運動資料的復現。

rosbag record -a -o record_name
其中record_name就是儲存的包的名稱,包被存放在當前目錄下。

開啟新的海龜模擬器,使用:

rosbag play record_name
就可以復現記錄中的運動。

ROS學習記錄2 ROS框架的概述

要想真的用好ros這款框架,需要我們需要比較好了解整個框架的架構。本文只做概念性的記錄,後面會詳細編寫其內容。對於這一節內容,我選擇了幾個比較好的部落格鏈結分享 ros學習筆記二 ros系統架構及概念 ros被分為三部分與層級 檔案系統級 計算圖級 開源社群級。引用一張圖,其中檔案系統級可以由綜合功...

ros學習記錄2 ros檔案系統

在工作空間組織和管理功能包的資料夾,用catkin工具來編譯 2.1.1 建立工作空間 mkdir p tutorial ws src 建立catkin工作空間 名字自定義,但是要有src資料夾 cd catkin ws 回到工作空間,catkin make必須在工作空間下執行 catkin mak...

ROS學習筆記(六) ROS服務與引數 命令列總結

roscore 為ros提供名稱服務 rosout 引數伺服器 usage roscorerosnode 用於獲取節點資訊的ros工具 usage rosnode再根據提示輸入命令列 rosrun 從給定軟體包中執行節點 usage rosrun package name node name rqt...