ROS 2節點-nodes-
- 2019 年 12 月 20 日
- 筆記
ros2的常用命令如下所示:

本節詳細介紹節點node。
安裝與環境配置參考鏈接:
1. 如何理解節點node:
ROS中的每個節點用於實現單個模塊功能(例如,一個節點用於控制電機,一個節點用於控制激光測距儀等)。每個節點都可以通過主題topic,服務service,行動action或參數param向其他節點發送和接收數據。一個完整的機械人系統由許多協同工作的節點組成。在ROS 2中,單個可執行文件(C ++程序或Python程序等)可以包含一個或多個節點。
2. 節點node有哪些命令功能:
使用如下命令:
ros2 node -h
得到如下:

主要有:
- info 輸出節點信息
- list 輸出正在運行的節點列表
3. 運行節點並掌握
3.1 標準命令格式
命令ros2 run可以從功能包中啟動一個可執行程序:
ros2 run <package_name> <executable_name>
以turtlesim為例,開啟一個CMD,輸入如下命令:
ros2 run turtlesim turtlesim_node
將會看到如下窗口:

這裡,功能包名為turtlesim,可執行文件名為turtlesim_node。
3.2 命令工具
ros2 node list
將顯示所有正在運行的節點的名稱。當要與節點進行交互時,或者當系統運行着許多節點並需要對其進行跟蹤時,此功能特別有用。
當turtlesim仍在另一個終端中運行時,打開一個新終端,然後輸入以下命令:
ros2 node list
終端會顯示節點的名稱:

再打開另一個新終端,並使用以下命令啟動遙控Teleop節點:
ros2 run turtlesim turtle_teleop_key

此時,將再次搜索turtlesim
軟件包,這一次是啟動名為turtle_teleop_key
的可執行文件。
返回之前運行的終端,然後再次運行ros2 node list。現在,將看到兩個活動節點的名稱:

3.3 重命名
有時候,並不期望默認的命令,如何修改呢?
將默認節點屬性(例如節點名稱,主題名稱,服務名稱等)重新分配自定義值。
- 更多內容參考:重映射
現在,讓重新分配節點/turtlesim
的名稱。在新的終端中,運行以下命令:
ros2 run turtlesim turtlesim_node --ros-args --remap __node:=ros2_turtle
由於再次調用turtlesim,因此將打開另一個turtlesim窗口。但是,現在,如果返回運行的終端,然後再次運行list,將看到三個節點名稱,如下:

3.4 節點信息
通過以下方式訪問有關節點的更多信息:
ros2 node info <node_name>
要檢查最新的節點ros2_turtle
,請運行以下命令:
ros2 node info /ros2_turtle
返回與該節點交互的訂閱者,發佈者,服務和行動(ROS圖連接)的列表。輸出應如下所示:

現在,嘗試在/teleop_turtle
節點上運行相同的命令,並查看其連接與ros2_turtle
的區別。
ros2 node info /teleop_turtle

4. 小結
節點是基本的ROS 2單元,在機械人系統中實現模塊化的目標。
關鍵詞:
- turtlesim
- node
- teleop
- list
- info
- –ros-args –remap __node:=ros2_turtle