ROS2-Beginner:3-理解节点

发布时间 2023-06-01 15:38:53作者: gary_123

目标:学习ROS2中节点的功能,以及与他们交互的工具

背景

1、ROS2graph

ROS图是ROS2元素同时一起处理数据的网络。它包含了所有可执行文件以及它们之间的连接,如果您要将它们全部映射出来并可视化的话。

2、在ROS2中的节点

在ROS中的每一个节点都应该负责单一的模块化目的,例如控制车轮电机或发布激光测距仪的传感器数据。每一个节点可以通过话题,服务,行为以及参数来发送和接收来自于其他节点的数据。

一个完整的机器人系统由许多协同工作的节点组成。在ROS2中,单个可执行文件(C++程序、Python程序)可以包含一个或多个节点。

任务

1、ros2 run

本命令用于启动一个包中的一个可执行文件

ros2 run <package_name> <executable_name>

输入下面的命令,运行turtlesim

ros2 run turtlesim turtlesim_node

包的名字是turtlesim,可执行文件的名字叫turtlesim_node,但仍然不知道节点的名字,使用ros2 node list来查看

2、ros2 node list

它会显示所有运行的节点的名字;当需要与某个节点交互,或者跟踪他们的时候,会比较有用。

2.1 重映射

Remapping允许重新安排默认节点的属性,比如节点名字,话题名字,服务名字等等来自定义值。下面对turtlesim节点的名字进行重映射。

ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle

3、ros2 node info

知道了节点名,可以通过如下命令来获取更多的信息:

ros2 node info <node_name>

总结

节点是一个基本的ROS 2元件,在机器人系统中具有单一的模块化用途。

本教程,使用在turtlesim包通过运行不同的可执行文件turtlesim_node和turtle_teleop_key来创建节点。

学习了ros2 node list来发现活跃的节点,ros2 node info来检查节点的信息。这些工具用于真实复杂的机器人系统的数据流是很重要的。

下一步

现在理解了ROS2 中节点的概念,下一节讲解话题是连接的节点之间通信的类型之一。