ROS总结——ROS消息和ROS服务

创建ROS消息和ROS服务

本博客是对http://wiki.ros.org/上ROS教程的学习总结,欢迎大家交流学习。本节详细讲解了如何创建并编译ROS消息和服务,以及rosmsg、rossrv和roscp命令行工具的使用。

1.消息(msg)和服务(srv)介绍

  • 消息(msg): msg文件就是一个描述ROS中所使用消息类型的简单文本。它们会被用来生成不同语言的源代码。
  • 服务(srv): 一个srv文件描述一项服务。它包含两个部分:请求和响应。

msg文件存放在package的msg目录下,srv文件则存放在srv目录下。msg文件实际上就是每行声明一个数据类型和变量名。可以使用的数据类型如下:

  • int8, int16, int32, int64 (plus uint*)
  • float32, float64
  • string
  • time, duration
  • other msg files
  • variable-length array[] and fixed-length array[C]

在ROS中有一个特殊的数据类型:Header,它含有时间戳和坐标系信息。在msg文件的第一行经常可以看到Header header的声明。
下面是一个msg文件的样例,它使用了Header,string,和其他另外两个消息类型:

Header header
string child_frame_id
geometry_msgs/PoseWithCovariance pose
geometry_msgs/TwistWithCovariance twist

srv文件分为请求和响应两部分,由’—’分隔。下面是srv的一个样例:

int64 A
int64 B
---
int64 Sum

2. 使用 msg

2.1下面,将在之前创建的package里定义新的消息

$  cd ~/catkin_ws/src/beginner_tutorials
$  mkdir msg
$  echo "int64 num" > msg/Num.msg

上面是最简单的例子——在.msg文件中只有一行数据。当然,可以仿造上面的形式多增加几行以得到更为复杂的消息:

string first_name
string last_name
uint8 age
uint32 score

接下来,还有关键的一步:要确保msg文件被转换成为C++,Python和其他语言的源代码。查看package.xml, 确保它包含一下两条语句:

  <build_depend></
  • 10
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值