ROS添加新的msg和srv

一、说明

本篇文章参考ROS wiki教程

二、msg and srv

在这里插入图片描述
参考http://wiki.ros.org/ROS/Tutorials/CreatingMsgAndSrv

在ROS里会经常遇到一种消息类型:Header,包括时间戳和coordinate frame information

[std_msgs/Header]:
uint32 seq
time stamp
string frame_id

三、在包里添加新的msg

  • 在包里创建一个msg文件夹,在此文件夹下创建自己的.msg文件

  • pakage.xml文件中加入以下依赖

    <build_depend>message_generation</build_depend>
    <exec_depend>message_runtime</exec_depend>
    
  • CMakeLIsts.txt的find_package中加入message_generation
    在这里插入图片描述

  • CMakeLIsts.txt的catkin_package中加入CATKIN_DEPENDS message_runtime
    在这里插入图片描述

  • 修改CMakeLIsts.txt的add_message_files,加入自己的.msg文件:
    在这里插入图片描述

  • CMakeLIsts.txt的generate_messages注释去掉:
    在这里插入图片描述
    现在msg已经添加到你的包里,可以使用rosmsg show指令来查看
    在这里插入图片描述

四、在包里添加新的srv

  • 在包里创建一个srv文件夹,在srv文件夹下创建自己的.srv文件

  • 确保package.xml文件里有以下语句:

  <build_depend>message_generation</build_depend>
  <exec_depend>message_runtime</exec_depend>
  • 确保CMakeLists.txt的find_package里有message_generation

(Despite its name, message_generation works for both msg and srv.)

  • 去掉CMakeLists.txt的add_service_files的注释,并加入自己的.srv文件:
    在这里插入图片描述
    现在srv文件已经加入包里,可以使用rossrv show查看:
    在这里插入图片描述

不记得包的名字也可以直接使用 *rosmsg show 和 rossrv show *

  • 确保把CMakeLIsts.txt的generate_messages注释去掉:
    在这里插入图片描述

最后需要回到catkin_workspace的根目录,执行catkin_make

五、.msg和.srv文件编译后的存放位置

在这里插入图片描述
参考http://wiki.ros.org/ROS/Tutorials/CreatingMsgAndSrv

猜你喜欢

转载自blog.csdn.net/lqysgdb/article/details/114596256