1.概述
在ROS中,经常出现1个节点向另外的节点请求执行任务的情况。一般情况下,我们可以用到ROS Services。节点可以向另外的节点发送一条请求信息,另外的节点在任务执行完成后返回结果信息。但是短时间的任务这很有用,比如讲四元数姿态转换成欧拉角。但是,对于需要长时间完成的任务,而我们又像知道任务执行的中间状态。比如请求机器人移动到某一点,而我们想知道它实时的中间位置。这个时候就需要利用ROS的另外一个机制,ROS actionlib了。
2.结构
上面是ROS wiki的图。与Services一样,也是分为server和client两部分。可以非常方便的在该接口之上添加自己的代码。
3.数据类型
这是ROS wiki示例的.action文件。用---隔开隔开分为三部分。分别是request部分,feedback部分以及result部分。在.action文件里面制定每部分消息的类型。
4. 待完成:moveit将轨迹变为无人机速度指令的actionlib解析