ROS2中的节点
节点应该负责一个单一的模块化功能,每个节点可通过主题(topics)、服务(services)、动作(actions)或参数(parameters)与其他节点进行数据的发送和接受
一个完整的的机器人系统由许多协同工作的节点组成。在ROS2中,但个可执行文件(C++程序、Python程序等)可以包含一个或多个节点
节点常用命令
-
ros2 run <package_name> <executable_name>
-
ros2 node list
然而,当我们不知道节点名称的时候,可以使用
ros2 node list
列出所有正在运行个的节点的名称。当你想与节点进行交互或者系统运行多个节点时需要跟踪它们时,是十分有效的 -
ros2 node info <node_name>
既然知道了节点的名称,可以通过以下指令去访问有关它们的更多信息:
初步实践
运行小乌龟:
ros2 run turtlesim turtletusim_node
# 输入
ros2 node list
# 输出
/turtlesim
# 输入
ros2 node info /turtlesim
# 输出
/turtlesim
Subscribers:
/parameter_events: rcl_interfaces/msg/ParameterEvent
/turtle1/cmd_vel: geometry_msgs/msg/Twist
Publishers:
/parameter_events: rcl_interfaces/msg/ParameterEvent
/rosout: rcl_interfaces/msg/Log
/turtle1/color_sensor: turtlesim/msg/Color
/turtle1/pose: turtlesim/msg/Pose
Service Servers:
/clear: std_srvs/srv/Empty
/kill: turtlesim/srv/Kill
/reset: std_srvs/srv/Empty