话题

一个话题包含了发布节点、订阅节点、话题名称和话题类型四个方面

小海龟示例

启动小海龟模拟器

1
ros2 run turtlesim turtlesim_node

然后在同一路径下打开一个新的终端

查看当前运行的节点列表

1
ros2 node list

查看当前运行节点的信息

1
ros2 node info /turtlesim

其中,订阅者里的 /turtle1/cmd_vel 话题是负责控制小海龟的,发布者里的 /turtle1/pose 是小海龟的实时位置信息

输出小海龟位置信息

1
ros2 topic echo /turtle1/pose

小海龟的位置信息包含五个参数,坐标(x, y),头的朝向的角度 theta,线速度 linear_velocity,角速度 angular_velocity

获取某个话题的消息接口

1
ros2 topic info /turtle1/cmd_vel

查看接口的详细定义

1
ros2 interface show geometry_msgs/msg/Twist

在确认某个节点的消息接口之后,可以直接对话题发布数据

/turtle1/cmd_vel 是话题名,geometry_msgs/msg/Twist 消息接口,后面是 yaml 格式的数据,

1
ros2 topic pub /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 0.5, y: 0.0} , angular: {z: 0.0}}"

如果同一时刻,有多个终端对该消息接口发布数据,那么小海龟的运动就会变得奇怪起来