本篇作为第一篇ROS基础中的内容补充,讲解ROS中稍微进阶的内容,动作(Action)编程的相关操作
什么是动作(action)?
一种问答通信机制
带有连续反馈
可以在任务过程中止运行
基于ROS的消息机制实现5
和发布/订阅一样,action的通信同样是分为客户端server和客户端client。
由客户端向服务端的话题接口有:
goal: 发布任务目标
cancel: 请求取消任务由服务端发向客户端的接口有:
status:通知客户端当前的状态
feedback:周期反馈任务运行的监控数据
result:向客户端发送任务的执行结果,只发布一次
下面通过一个具体的实例进行理解:
设计一个洗盘子的action,客户端发送洗盘子的命令给服务端,服务端在洗的过程中,能过够随时向客户端汇报当前进度,并且客户端能过够申请中止任务。
首先是自定义动作消息,存放在/learning_communication/action下
# ~/catkin_ws/src/learning_communication/action/DoDishes.action
# Define the goal
uint32 dishwasher_id # Specify which dishwasher we want to use