ROS学习--第4篇:ROS基础---创建ROS消息和ROS服务

1. 创建一个自定义消息 msg

(1)在 catkin_ws/src/learning_communication 文件中,创建一个文件夹,命名为 msg,在这个msg文件夹里面,创建一个 .msg 文件,命名为msg.msg

(2)打开msg.msg,复制如下内容,当然,你可以仿造上面的形式多增加几行以得到更为复杂的消息

int64 num
string first_name
string last_name
uint8 age
uint32 score

(3)编辑 package.xml 

目的是确保msg文件被转换成为C++,Python和其他语言的源代码:

打开 catkin_ws/src/learning_communication 下的 package.xml

删除:

  <!--    <build_depend>message_generation</build_depend> -->

  <!--   <exec_depend>message_runtime</exec_depend> -->

这两行的  <!-- 、--> ,如下图所示:

(4)编辑CMakeLists.txt

设置find_packag函数:

增加对 message_generation 的依赖,这样就可以生成消息了

打开 catkin_ws/src/learning_communication 下的CMakeLists.txt

在find_package()函数中加入  message_generation

如下图:

设置运行依赖:

找到如下行,并加入 message_runtime ,如下图:

加入新消息名称:

(5)编译

cd ~/catkin_ws/
catkin_make

(6)使用 rosmsg

rosmsg show msg

显示如下:

消息类型包含两部分:

  • learning_communication/msg-- 消息所在的位置

  • int64 num
    string first_name
    string last_name
    uint8 age
    uint32 score                               -- 消息名.

 

2. 创建一个服务 srv

(1)在 catkin_ws/src/learning_communication 文件中,创建一个文件夹,命名为 srv,在这个srv文件夹里面,创建一个 .srv 文件,命名为 AddTwoInts.srv

(2)打开 AddTwoInts.srv,复制如下内容

srv文件分为请求和响应两部分,由'---'分隔,其中 a 和 b 是请求, 而sum 是响应。

int64 a
int64 b
---
int64 sum

(3)编辑 package.xml 

       同创建msg

(4)编辑CMakeLists.txt

设置find_packag函数:    同创建msg   

设置运行依赖:同创建msg

加入新消息名称:

msg和srv都需要的步骤

去掉注释并附加上所有你消息文件所依赖的那些含有.msg文件的package

(这个例子是依赖std_msgs,不要添加roscpp,rospy),结果如下:

(5)编译

cd ~/catkin_ws/
catkin_make

(6)使用 rossrv

 rossrv show learning_communication/AddTwoInts

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值