ROS 发布和订阅自定义消息数组

今天学习使用ros发布和订阅自定义的消息以及消息数组,记录,备忘!
说明:
以ubuntu14.04,indigo版本为例
ros工作空间位置:~/workspace/catkin_ws
定义的消息数组为:
std_msgs/Header header
geometry_msgs/Pose[] path
其中Header是由uint32 seq,time stamp,string frame_id组成,它的消息定义在/opt/ros/indigo/share/std_msgs/msg 目录下有详细说明,而Pose是包含了Point和Quaternion类型组成,Point是3维的坐标点,Quaternion是四元数,他们的具体说明在/opt/ros/indigo/share/geometry_msgs/msg目录下。Pose[] 则表示后面定义的path是一个Pose类型的数组。接下来上代码:

cd ~/workspace/catkin_ws/src
#创建功能包
catkin_create_pkg mytest std_msgs rospy roscpp
cd mytest/
mkdir msg && cd msg

新建mypath.msg 的文件,将上面我想创建的两行消息粘贴进来,保存退出。打开mytest目录下的package.xml文件,在下面添加两行:

  <build_depend>message_generation</build_depend>
  <exec_depend>message_runtime</exec_depend>

保存退出,然后打开mytest目录下的CMakeLists.txt文件:

  1. 在find_package中添加geometry_msgs message_generation,
  2. 取消add_message_files和FILES以及下面反括号的注释,在下面添加一行mypath.msg
  3. 取消generate_messages所在部分的注释,将geometry_msgs添加进去
  4. 取消catkin_package所在部分的注释,在std_msgs后面添加message_runtime

然后重新catkin_make编译一下,没有报错。进入mytest/src目录下,新建发布消息节点mytalk.cpp,将下面发布消息代码粘贴进去:

#include <ros/ros.h>
#include <geometry_msgs/Pose.h>
#include "mytest/mypath.h"
  • 6
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值