ROS2官網教程學習筆記理解ROS2節點篇

2021-10-02 23:39:22 字數 3063 閱讀 3462

提前準備

學習任務

3 ros2 node info

總結以下內容主要對官網教程進行翻譯

在ros2中單獨提出了graph概念,在接下來的教程中,將學習構成ros2網路的一系列關於ros2核心概念。

ros網路乙個由ros2中的元素在同一時刻進行資料處理組成的網路。換個視覺化的方式來說它包含所有可執行檔案以及他們之間的連線情況。

ros中的每個節點應該是乙個完成特定功能的模組(例如,乙個節點用於控制電機,乙個節點用於控制雷射雷達等等)。每個節點都可以通過話題(topics)、服務(services)、動作庫(actions)、引數伺服器(parameters)完成資料的傳送和接收。乙個完整的機械人系統由許多協同工作的節點組成。在ros2中,單個可執行檔案(c ++程式,python程式等)可以包含乙個或多個節點。這和ros1的乙個可執行檔案乙個節點好像不太一樣。

需要安裝上乙個教程的turtlesim

ros2中通過ros2 run命令從乙個包中執行乙個可執行檔案

ros2 run 

例如,我們通過下面命令就是執行turtlesim包中的turtlesim_node可執行檔案

ros2 run turtlesim turtlesim_node
我們雖然執行了節點,但是並不知道執行節點的名字,我們通過下面的命令可以檢視當前執行的所有節點

ros2 node list
這個命令和ros1中的類似,如果當前系統有很多節點在執行我們想進行相關操作檢視時還是比較有用。

執行上面命令之後輸出如下,表示當前只有乙個名叫的/turtlesim節點

/turtlesim
我們再開啟乙個新的終端執行乙個新的節點

ros2 run turtlesim turtle_teleop_key
我們再次用ros2 node list檢視節點,輸出如下

/turtlesim

/teleop_turtle

可以看到現在有兩個節點在執行

這個和ros1的操作類似可以對節點、話題、服務等等的名字進行自定義

操作很簡單,我們通過下面命令再開啟乙個烏龜的介面

ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle
ros2 node list檢視節點,發現多了乙個新的節點

/my_turtle

/turtlesim

/teleop_turtle

這個操作和ros1類似,知道了節點的名稱過後可以檢視節點資訊。

ros2 node info 
我們檢視剛剛執行的節點資訊

ros2 node info /my_turtle
命令返回了一大堆的訊息,包含了節點訂閱( subscribers)、發布(publishers)、服務(services)、動作(actions)以及ros網路(the ros graph connections) 中和節點有關的資訊

/my_turtle

subscribers:

/parameter_events: rcl_inte***ces/msg/parameterevent

/turtle1/cmd_vel: geometry_msgs/msg/twist

publishers:

/parameter_events: rcl_inte***ces/msg/parameterevent

/rosout: rcl_inte***ces/msg/log

/turtle1/color_sensor: turtlesim/msg/color

/turtle1/pose: turtlesim/msg/pose

services:

/clear: std_srvs/srv/empty

/kill: turtlesim/srv/kill

/reset: std_srvs/srv/empty

/spawn: turtlesim/srv/spawn

/turtle1/set_pen: turtlesim/srv/setpen

/turtle1/teleport_absolute: turtlesim/srv/teleportabsolute

/turtle1/teleport_relative: turtlesim/srv/teleportrelative

/my_turtle/describe_parameters: rcl_inte***ces/srv/describeparameters

/my_turtle/get_parameter_types: rcl_inte***ces/srv/getparametertypes

/my_turtle/get_parameters: rcl_inte***ces/srv/getparameters

/my_turtle/list_parameters: rcl_inte***ces/srv/listparameters

/my_turtle/set_parameters: rcl_inte***ces/srv/setparameters

/my_turtle/set_parameters_atomically: rcl_inte***ces/srv/setparametersatomically

action servers:

/turtle1/rotate_absolute: turtlesim/action/rotateabsolute

action clients:

這個比ros1中要完善不是,特別是對ros進行除錯的時候還是很有幫助的

節點(node)作為ros中乙個比較基礎元素,提供模組化功能。

ROS2學習筆記1 安裝

系統 ubuntu 18.04 64位 ros2 eloquent 1.修改為清華軟體源 ubuntu的軟體源配置檔案是 etc apt sources.list,需完全替換為新的軟體源映象。命令 sudo vi etc apt sources.list內容 預設注釋了原始碼映象以提高 apt up...

ROS2學習筆記之了解ros2doctor篇

總結學習目標 學會使用ros2doctor工具分析出現的問題 當ros2沒有安裝我們預期的設定執行的時候,我們可以用ros2doctor工具檢查ros2的設定。ros2doctor對ros2全面的檢查,包括平台 版本 連線情況 環境 執行的系統等等。然後給出可能的錯誤和原因。ros2doctor是乙...

ROS2學習筆記之rosbag篇

總結後續 學習目標 記錄發布在話題上的訊息,方便我們後期檢視 ros2 bag是乙個命令列工具用於記錄話題上發布的訊息。他可以儲存任意數量話題上的訊息內容。我們可以通過資料回放實現實驗場景的重現。同時這也是和他人分享資料的好方法。我們首先安裝ros2 bag sudo apt install ros...