actionlib的身世之谜】的更多相关文章

不知道为什么会把这么严肃认真的一篇技术整理贴起这么一个故事会风格类似的名字,就这样吧:^)shenmegui 园子里有人整理了actionlib的初学者教程,我来整理下actionlib的细节描述吧.初版偏向于逐字翻译+少量个人理解.等我再长大一些感悟更多的时候再修改更新我的更多理解.我boss说开始学ROS相关就是会很乱的.我是一个喜欢划分割线的奇女子~\(≧▽≦)/~ 一.服务端描述 1)goal是在ActionClient端启动的(client会发送sendgoal嘛),一旦ActionS…
actionlib是ROS中一个很重要的功能包集合,尽管在ROS中已经提供了srevice机制来满足请求—响应式的使用场景,但是假如某个请求执行时间很长,在此期间用户想查看执行的进度或者取消这个请求的话,service机制就不能满足了,但是actionlib可满足用户这种需求.例如,控制机器人运动到地图中某一目标位置,这个过程可能复杂而漫长,执行过程中还可能强制中断或反馈信息,这时actionlib就能大展伸手了. actionlib使用client-server工作模式,ActionClien…
1.Actionlib原理 英文版:DetailedDescription 翻译版:actionlib的身世之谜 2.Actionlib官方教程 Actionlib是ros的重要部件,对于复杂动作的执行问题,例如机械臂捉取物品和move_base实现等,使用actionlib是非常有效的.参考官方的Actionlib教程:actionlib/Tutorials ,我将例子代码做了整理,请参考以下的下载例子. 2.下载例子 代码:actionlib_tutorials.zip…
下面这个例子将展示用actionlib来计算随机变量的均值和标准差.首先在action文件中定义goal.result和feedback的数据类型,其中goal为样本容量,result为均值和标准差,feedback为样本编号.当前样本数据.均值和标准差. #goal definition int32 samples --- #result definition float32 mean float32 std_dev --- #feedback int32 sample float32 dat…
在ROS actionlib学习(一)中的例子展示了actionlib最基本的用法,下面我们看一个稍微实际一点的例子,用actionlib计算斐波那契数列,并发布反馈(feedback)和结果(result).斐波那契数列指的是这样一个数列: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........ 这个数列从第3项开始,每一项都等于…
Actionlib是ROS非常重要的库,像执行各种运动的动作,例如控制手臂去抓取一个杯子,这个过程可能复杂而漫长,执行过程中还可能强制中断或反馈信息,这时Actionlib就能大展伸手了. 1.原理 1.1功能 在任何一个比较大的基于ROS的系统,都会有这样的情况,向某个节点发送请求执行某一个任务,并返回相应的执行结果,这种通常用ROS的服务(services)完成.然而,有一些情况服务执行的时间很长,在执行中想要获得任务处理的进度,或可能取消执行任务,Actionlib就能实现这样的功能,它是…
一\Actionlib概念 在ROS系统中,有时需发送请求给某个节点完成相应的任务,同时获得一个一个响应,这种情况下可以通过ROS服务来 完成;然而,在某些情况下,服务需要很长时间才能执行完,如让机器人到达一个指定的地点,用户想要取消或者定期得到请求执行的进度的反馈,这个时候我们选择actionlib来完成. 二\Actionlib的实现 三\服务器的状态转移(server State transitions) 当客户端接受到目标之后,首先进入挂起的状态,如果服务器拒绝了(setRejected…
为了安全,先写一个简单控制三个手指的程序: 根据驱动包内kinova_fingers_action.cpp服务器写客户端程序 #include <ros/ros.h> #include "kinova_driver/kinova_tool_pose_action.h" #include "kinova_driver/kinova_joint_angles_action.h" #include "kinova_driver/kinova_fing…
ROS中的服务service是一问一答的形式,你来查询了,我就返给你要的信息. action也有服务的概念,但是它不一样的地方是:不是一问一答,而多了一个反馈,它会不断反馈项目进度. 如navigation下的move_base package,你设定了目标点,反馈信息可能是机器人在规划路径上的即时位姿, 直到机器人到达目标点,返回SUCCEEDED消息. 上面所述的 ActionClient 和 ActionServer 通过 ROS Action Protocol (ROS Action 协…
上节课讲到了客户端,这节课讲解一下服务器 1.创建服务器源文件touch fibonacciserver.cpp 2.编写源文件 3.修改CMakeLists.txt 4.编译之catkin_make 5.运行roscore, 再运行客户端rosrun learning_actionlib fibonacciclient 下面来启动服务器 rosrun learning_actionlib fibonacciserver 没相应,加上下面的语句 按照上面的方式重来,可以看到下面的结果 注意到在服…