ROS创建节点发布命令使得小海龟做圆周运动
- 1.任务需求
- 2.任务分析
-
- 2.1发布方topic和msg
- 2.2接收方topic和msg
- 2.3目标明确!
- 3.创建ROS节点
-
- 3.1创建发布方节点pub_pose
- 3.2创建订阅方节点sub_pose
1.任务需求
创建一个节点,在其中实现一个订阅者和一个发布者,完成以下功能:
- 发布者:发布海龟速度指令,让海龟做圆周运动;
- 订阅者:订阅海龟的位置信息,并在终端中周期打印输出;
2.任务分析
要发布海龟速度指令,我们得先知道海龟速度指令对应的话题名称和数据格式是什么,首先生成一只小海龟,并用键盘控制其运动。打开roscore:

启动小海龟rosrun turtlesim turtlesim_node:

2.1发布方topic和msg
查看当前有那些话题rostopic list:

其中 cmd_vel 是速度指令话题,获取这个话题的消息类型rostopic type /turtle1/cmd_vel如下:

可以看到,发布速度信息的消息名称是 geometry_msgs/Twist,我们继续用指令rosmsg info geometry_msg/Twist查看这个消息的具体格式,分别由 xyz 方向上的线速度和 xyz 方向的角速度组成。

2.2接收方topic和msg
pose 是小海龟当前姿态话题,用rostopic type /turtle1/pose获取这个话题的消息类型为turtlesim/Pose如下:

同样查看该topic的消息类型rosmsg info turtlesim/Pose:

2.3目标明确!
因此我们的目的便明确了:
- 建立一个发布方节点,发布的话题名称是
/turtle1/cmd_vel,/turtle1/cmd_vel的消息格式是geometry_msgs/Twist,具体的数值可以设置为 x 方向线速度为1,z 方向角速度为1; - 建立一个订阅方的节点,订阅的话题为
/turtle1/pose,/turtle1/pose的数据格式为turtlesim/Pose















![[SHCTF 2023新生赛] web题解](https://img-blog.csdnimg.cn/1388309dbbaa425eb305311ea2762dc0.png)



![[架构之路-246/创业之路-77]:目标系统 - 纵向分层 - 企业信息化的呈现形态:常见企业信息化软件系统 - 客户关系管理系统CRM](https://img-blog.csdnimg.cn/61af882f7b4d4b909da892621925d0d0.png)