ROS程序包编写

ROS程序包编写

GitHub链接
官方教程

此处我们以一个实例阐述ROS程序包的编写

目标

  • 创建一个消息发布器,向话题“Brake”发布“control_node_msgs/BrakeCmd”类型的自定义消息,自定义消息格式为:

    Header header
    float32 brake_cmd
    
  • 创建一个消息订阅器,订阅话题“Brake”的消息,并输出到屏幕。

  • 消息发布器和消息订阅器均使用C++实现,并使用roslaunch启动

演示环境:

  • Ubuntu 16.04.6 LTS (Xenial) amd64
  • ROS Kinetic
  • catkin

操作步骤

1.创建程序包
  • 在当前用户的HOME目录下创建catkin工作目录

    $ mkdir ~/catkin_ws
    
  • 进入catkin工作目录,创建并进入src源码文件夹

    $ cd ~/catkin_ws
    $ mkdir src
    $ cd src
    
  • 现在使用catkin_create_pkg命令来创建一个名为’control_node_msgs’的新程序包(根据我们的目标进行命名),这个程序包依赖于std_msgs、roscpp和rospy:

    $ catkin_create_pkg control_node_msgs std_msgs rospy roscpp
    

    这将会在 ~/catkin_ws/src 目录下创建一个名为control_node_msgs的文件夹,这个文件夹里面包含一个package.xml文件和一个CMakeLists.txt文件,这两个文件都已经自动包含了部分你在执行catkin_create_pkg命令时提供的信息。

2.创建自定义消息
  • 创建并进入msg文件夹

    $ mkdir ~/catkin_ws/src/control_node_msgs/msg
    $ cd ~/catkin_ws/src/control_node_msgs/msg
    
  • 创建.msg的自定义消息文件

    $ touch BrakeCmd.msg
    
  • BrakeCmd.msg文件中根据目标写入如下信息

    Header header
    float32 brake_cmd
    
    • Header类型详细参考
      std_msgs/Header Message
      此处简略说明,即Header包含3个成员

      • uint32 seq
      • time stamp
      • string frame_id

    其中stamp包含stamp.secstamp.nsec,这二者均为integer,前者为秒,后者为毫秒

    • float32类型即为
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值