如果服务花费很长时间去执行,用户可能在程序执行或者如何获得周期反馈时有取消该请求的能力。
Goal, Feedback, & Result
为了用action来完成任务,我们引用ActionClient发送给ActionServer目标点概念。在移动基体情况下,目标是PoseStamped的消息,包含有关机器人在世界坐标系中目标点位置信息。 用于控制倾斜激光扫描仪,目标将包含扫描参数(最小角度,最大角度,速度等)。反馈提供服务器告诉给ActionClient关于到达目标进程的方法。对于移动机器人,表示是机器人当前沿着路径的姿态。用于控制倾斜激光扫描仪,这可能是左,直到扫描完成的时间。
结果是根据完成目标情况从ActionServer来发布给ActionClient。这比反馈不同,因为它被发送一次。这是非常有用的,当该操作的目的是为了提供某种信息。对于移动机器人其结果也不是很重要的,但它可能包含机器人的最终姿势。用于控制倾斜激光扫描仪,其结果可能包含来自所请求的扫描中产生的点云。
例如:
test.action
int32 goal
---
int32 result
---
int32 feedback