【ROS总结】教程Actionlib——使用Execute Callback编写一个简单的行为服务器

前言


  所有的Actionlib教程已经在中文ROS页面服务器上翻译,有兴趣的可以查看总目录: http://wiki.ros.org/cn/actionlib_tutorials/Tutorials


描述


   这个教程涵盖了使用simple_action_server库来创建一个Fibonacci行为服务器。这个行为服务器教程会生成一个Fibonacci序列、目标的顺序序列、自身计算的反馈序列和最后序列的结果。


创建行为消息


开始编写行为之前,非常重要的事是定义目标,结果和反馈消息。行为消息会自动从.action'文件生成,对于更多行为文件信息查看actionlib文档。这个文件定义目标、结果和行为的反馈话题的类型和文本格式。使用你最喜欢的文本编辑器创建actionlib_tutorials/action/Fibonacci.action文件,并且用以下内容在该文件中添加:


#goal definition
int32 order
---
#result definition
int32[] sequence
---
#feedback
int32[] sequence

为了在make进程中自动生成消息文件,需要在CMakeLists.txt中添加一些小的内容。


  • 添加actionlib_msgs包作为参数到find_package这个宏中,就像这样(如果你使用catkin_create_package生成的CMakeLists.txt,这一行可能已经添加):

find_package(catkin REQUIRED COMPONENTS actionlib_msgs)

  • 注意CMake需要find_package actionlib_msgs (message_generation不需要明确的列出,因为以及被actionlib_msgs隐式的参考了).
  • 使用add_action_files 宏来声明你想要生成的行为:
  • add_action_files(
      DIRECTORY action
      FILES Fibonacci.action
    )
  • 调用generate_messages宏,不要忘记依赖actionlib_msgs和其他消息包,例如std_msgs
  • generate_messages(
      DEPENDENCIES actionlib_msgs std_msgs  # 或其他包含消息的包
    )

    • catkin_package也指定了CATKIN_DEPENDactionlib_msgsmessage_runtime自动传递依赖。


现在遵循以下,会自动生成你的action文件的msg文件,并且可以查看结果。


$ cd ../.. # 返回到你的catkin工作空间的最顶层
$ catkin_make
$ ls devel/sha
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值