ROS订阅自定义消息

ROS下经常使用自定义消息,网上很多关于自定义消息的创建发布和订阅接收的文章,但是基本都是同一包内的消息传递,于是决定写一篇关于不同包之间的消息订阅的文章,也方便自己回来查找资料,本文参考了这篇博客的内容并根据个人情况做出了修改:http://blog.csdn.net/u013453604/article/details/72903398

       关于同一节点内的消息订阅本文就不做分析了,网上也有不少。关于订阅不同包的消息,假设你已经创建好一个包,而且已经能订阅发布了,则你创建的新包在编译前需要修改两个文件:

  1.修改package.xml 

        与原文不同,增加的依赖项的关键字有点不同,我这里使用的<exec_depend>原文使用的是<run_depend>。应该是我们使用的版本不同,其中custom_pack_name需要修改成发布消息的包名称。

<build_depend>roscpp</build_depend>
<exec_depend>roscpp</exec_depend>

<build_depend>custom_pack_name</build_depend>
<exec_depend>custom_pack_name</exec_depend>

或者还可以使用<depend>关键字,会更简单点

<depend>custom_pack_name</depend>

2.修改CMakeLists.txt

在find_package中添加声明,其中publish_pack_name为发布消息的包的名称;

以及在文件中注明依赖避免编译出错,其中new_pack_name为需要订阅消息的包名。

find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  publish_pack_name
)
add_dependencies(new_pack_name publish_pack_name_generate_messages_cpp)

写的比较简单,觉得写不够好的小伙伴请见谅!

参考链接:http://blog.csdn.net/u013453604/article/details/72903398

猜你喜欢

转载自blog.csdn.net/plokm789456/article/details/79290592