话题
一个话题包含了发布节点、订阅节点、话题名称和话题类型四个方面
小海龟示例
启动小海龟模拟器
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}}"如果同一时刻,有多个终端对该消息接口发布数据,那么小海龟的运动就会变得奇怪起来