3.8.5 动作通信案例分析
1.案例需求
需求:处理请求发送的目标点,控制乌龟向该目标点运动,并连续反馈乌龟与目标点之间的剩余距离。
2.案例分析
在上述案例与服务通信案例类似,需要关注的问题有两个:
- 如何在指定位置生成一只新乌龟?
- 控制原生乌龟向目标乌龟运动并连续反馈剩余距离应该使用何种通信模式又如何实现?
思路:
- 问题1可以通过调用turtlesim_node内置的名称为/spawn的服务功能来实现新乌龟的创建;
- 问题2可以通过动作通信来实现,动作客户端发送新生成的乌龟的位姿到动作服务端,服务端根据该坐标以及原生乌龟的坐标计计算出二者距离,计算速度并控制原生乌龟运动。当然如果使用动作通信,还需要自定义动作接口。
- 最后,整个案例涉及到多个节点,我们可以通过launch文件集成这些节点。
3.流程简介
主要步骤如下:
- 编写动作接口文件;
- 编写动作服务端实现;
- 编写动作客户端实现;
- 编写launch文件;
- 编辑配置文件;
- 编译;
- 执行。