1.概述
ROS信息命令用於識別話題、服務、節點和參數等信息。尤其是rostopic、rosservice、rosnode和rosparam經常被使用,並且rosbag是ROS的主要特征之一,它具有記錄數據和回放功能,務必要掌握。
命令 | 重要度 | 命令釋義 | 詳細說明 |
rostopic | ★★★ | ros+topic | 確認ROS話題信息 |
rosservice | ★★★ | ros+service | 確認ROS服務信息 |
rosnode | ★★★ | ros+node | 確認ROS節點信息 |
rosparam | ★★★ | ros+param(parameter) | 確認和修改ROS參數信息 |
rosbag | ★★★ | ros+bag | 記錄和回放ROS消息 |
rosmsg | ★★☆ | ros+msg | 顯示ROS消息類型 |
rossrv | ★★☆ | ros+srv | 顯示ROS服務類型 |
rosversion | ★☆☆ | ros+version | 顯示ROS功能包的版本信息 |
roswtf | ☆☆☆ | ros+wtf | 檢查ROS系統 |
2.運行節點
我們將使用下面的命令,利用ROS提供的turtlesim來了解相關的節點、話題和服務。在使用ROS信息命令進行測試之前,需要做好以下准備工作。
運行roscore
為確保順利進行,關閉所有以前運行的終端。然后打開一個新的終端並運行以下命令。
roscore
為了運行turtlesim功能包中的turtlesim_node節點,打開一個新的終端並運行以下命令。這將從turtlesim功能包運行turtlesim_node。用戶會在一個藍色的屏幕上看到烏龜。
rosrun turtlesim turtlesim_node
運行turtlesim功能包中的turtle_teleop_key節點
打開一個新的終端並運行以下命令。這將在turtlesim功能包中運行turtle_teleop_key。一旦執行,可以在該終端窗口上,用鍵盤上的方向鍵控制烏龜。請自己嘗試。當您按下方向鍵時,屏幕上的烏龜會移動,這是一個簡單的仿真,但這是將驅動機器人所需的移動速度(m/s)和旋轉速度(rad/s)用消息傳送的。
rosrun turtlesim turtle_teleop_key
3. rosnode:ROS節點
首先,我們需要了解節點(node),所以先復習術語。
命令 | 詳細說明 |
rosnode list | 查看活動的節點列表 |
rosnode ping [節點名稱] | 與指定的節點進行連接測試 |
rosnode info [節點名稱] | 查看指定節點的信息 |
rosnode machine [PC名稱或IP] | 查看該PC中運行的節點列表 |
rosnode kill [節點名稱] | 停止指定節點的運行 |
rosnode cleanup | 刪除失連節點的注冊信息 |
rosnode list:列出正在運行中的所有節點
這是列出連接到roscore的所有節點的命令。如果已經運行了roscore和之前准備好的節點(turtlesim_node,turtle_teleop_key),則可以看到終端中列出了用於在roscore進行日志記錄的rosout,以及teleop_turtle和turtlesim節點。
rosnode list
節點運行及實際節點的名稱:在前面的例子中運行的節點是turtlesim_node和turtle_teleop_key。rosnode list列表中有teleop_turtle和turtlesim的原因是運行的節點名稱與實際節點名稱不同。例如,turtle_teleop_key節點在源文件中設置為“ros :: init (argc,argv,"teleop_turtle");”。筆者建議使可執行節點的名稱等於實際的節點名稱。
rosnode ping [節點名稱]:與指定的節點進行連接測試
以下是測試turtlesim節點是否確實連接到當前使用的計算機。如果已連接,它將從節點收到XMLRPC響應,如下所示。
如果在該節點運行出現問題或通信中斷,則顯示以下錯誤消息。
ERROR: connection refused to [http://192.168.43.11:36399/]
rosnode info [節點名稱]:檢查指定節點的信息
使用rosnode info命令可以查看指定節點的信息。基本上,用戶可以檢查發布者、訂閱者和服務等。此外,還可以檢查關於節點運行URI和話題輸入/輸出的信息。
rosnode info /turtlesim
rosnode機器[PC名稱或IP]:查看此PC上運行的所有節點
您可以看到指定設備(PC或終端)上運行的所有節點。
rosnode machine 192.168.43.11
rosnode kill [節點名稱]:終止指定節點的運行
這是一個終止正在運行的節點的命令。您可以在運行節點的終端窗口中使用[Ctrl+c]直接終止節點,但也可以指定要結束的的節點,如下所示。
rosnode kill /turtlesim
再次查看節點,發現已經終止掉了
如果使用該命令終止了節點,則會在運行該節點的終端窗口上顯示如下警告消息,並關閉該節點。
rosnode cleanup:刪除無法驗證連接信息的虛擬節點的注冊信息
刪除連接信息未被確認的虛擬節點的注冊信息。當節點由於意外事件而異常終止時,該命令將從節點目錄中刪除連接中斷的節點。這個命令很少使用,但是它非常有用,因為用戶不需要重新運行roscore。
rosnode cleanup