ROS学习--(十一)创建ROS的信息和服务

本文介绍了如何在ROS中创建消息(.msg)和服务(.srv)。msg文件用于定义消息类型,包括各种数据类型如整型、浮点型、字符串等,并通常包含Header信息。srv文件则包含请求和响应两部分。创建msg文件涉及编辑文本文件和更新package配置,如修改package.xml和CMakeLists.txt。服务创建可通过roscp命令复制已有文件,并在CMakeLists.txt中添加相应条目。最后,通过catkin_make进行编译。
摘要由CSDN通过智能技术生成

创建信息(.msg)
1.msg文件就是用来描述ROS中所使用消息类型的简单文本,会被用来生成不同语言的源代码
2.srv文件描述一项服务,包括两部分:请求和响应
3.msg文件放在package的msg目录下,srv放在srv目录下
4.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
5.srv文件就像msg文件,但包含两部分,请求和响应。这两部分用—分开

int64 A
int64 B
---
int64 Sum

意思是发出请求A和B,然后响应(回应)两个的和sum
6.下面我们创建一个msg文件

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

第一二条都见过了。第三个指令中意思是把echo后面引号的内容“int64 num”写到msg文件夹中的Num.msg文件中。
然后打开package.xml,将下面两行复制进去

<build_depend>message_generation</build_depend>
<run_depend>message_runtime</run_depend>

打开CMakeLists.txt,找到find_package,看看有没有把message_generation添加进去,没有则添加进去。

 CATKIN_DEPENDS message_runtime

将这句话添加到catkin_package中,添加依赖

add_message_files(
  FILES
  Num.msg
)

找到add_message_files,去掉注释,改成上面。意思是把Num.msg添加进信息文件

创建服务(.srv)

$ roscd beginner_tutorials
$ mkdir srv

对于这个新的文件,我们可以直接从其他文件copy过来。使用roscp命令
格式$ roscp [package_name] [file_to_copy_path] [copy_path]
将[package_name]从[file_to_copy_path]copy到[copy_path]

$ roscp rospy_tutorials AddTwoInts.srv srv/AddTwoInts.srv

打开CMakeList.txt,找到add_service_files,将注释去掉,改为

add_service_files(
  FILES
  AddTwoInts.srv
)

然后catkin_make一下就好了。

$ cd ~/catkin_ws
$ catkin_make
$ cd -
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值