ROS实验报告三
实验三:利用action实现小海龟的运动
任务:利用action机制实现小海龟的360°转圈运动
一、实验原理(介绍算法或实验思路)
1、实验思路介绍
本实验的主要目的是利用ros2中的action机制实现小海龟的360°转圈运动,具体实现思路:
(1)动作客户端:
- 客户端节点首先初始化ROS2环境,并创建一个动作客户端对象。
- 客户端发送一个包含使能标志的动作目标消息,告诉服务器开始执行360°转圈运动。
- 客户端等待服务器的响应,并在接收到响应后继续等待最终结果。
- 客户端订阅小海龟的位置信息,并在回调函数中输出当前海龟的位置。
(2)动作服务器:
- 服务器节点初始化ROS2环境,并创建一个动作服务器对象。
- 服务器接收到客户端的动作目标后,开始控制小海龟进行360°转圈运动。
- 服务器设置小海龟的线速度和角速度,并在一个循环中持续发布速度消息,直到完成360°的圆周运动。
- 运动完成后,服务器停止发布速度消息,并向客户端返回成功结果。
二、实验步骤(附上必要图片)
1、终端启动小海龟
1 |
|
2、创建功能包
3、创建编写源文件
4、配置编译文件
5、编译
6、运行客户端以及服务器节点
三、实验结果+分析(附上必要图片)
1、实验过程及结果展示
2、实验过程分析
(1)启动turtlesim节点:
- 成功启动turtlesim节点后,屏幕上显示了一个小海龟。
(2)启动动作服务器节点:
- 成功启动动作服务器节点后,终端输出“Moving circle...”信息,表示服务器已准备好接收动作目标。
(3)启动动作客户端节点:
- 成功启动动作客户端节点后,客户端发送动作目标,并等待服务器响应。客户端订阅小海龟的位置信息,并在回调函数中输出当前海龟的位置。
(4)小海龟运动:
- 小海龟开始按照设定的线速度和角速度进行360°转圈运动。运动过程中,客户端不断输出小海龟的位置信息,确认运动状态。
(5)运动完成:
- 小海龟完成360°转圈运动后,服务器停止发布速度消息,并向客户端返回成功结果。客户端输出最终结果和小海龟的最终位置。
3、实验结果分析
(1)运动轨迹:
小海龟按照预期完成了360°的圆周运动,轨迹呈圆形,没有明显的偏移或误差,这表明设置的线速度和角速度是合理的,能够有效控制小海龟的运动。
(2)反馈机制:
客户端订阅小海龟的位置信息,并在回调函数中实时输出当前位置。这种实时反馈机制有助于监控小海龟的运动状态,确保运动过程的稳定性和准确性。
四、关键功能代码
1、action_client.py
1 |
|
2、action_server.py
1 |
|
ROS实验报告三
http://jrhu0048.github.io/2024/11/09/ros/ros-shi-yan-bao-gao-san/