【ROS 】编译和调用自己编写的message 复合嵌套的msg

编译

在package内建立msg文件夹,在其中加入.msg 编写,配置camakelist和xml文件。

  • 其中cmakelist要做如下添加
 find_package(catkin REQUIRED COMPONENTS
   std_msgs
   message_generation
   roscpp
 )
 ...
 catkin_package(
   ...
   CATKIN_DEPENDS roscpp std_msgs message_runtime
   ...
 )
 add_message_files(
   FILES
   MyMessage.msg// 这一次加入的msg
 )

 generate_messages(
   DEPENDENCIES
   std_msgs
 )

多讲下复合嵌套msg的添加办法:
比如我要用一个自定义类型的数组在msg中:TrajectoryPoint[] data_array
则我使用如下结构,依次嵌套:
在这里插入图片描述同时

add_message_files(
   FILES
   TracetoFollow.msg
  PathPoint.msg
  TrajectoryPoint.msg  
 )
  • 同时2xml文件也要为msg编译作出修改,加入
<build_depend>message_generation</build_depend>
  <exec_depend>message_runtime</exec_depend>

然后就可以编译了。

如何使用message呢,见下

ros python 版

catkin_workspace/devel/lib/python3/dist-packages/

  • msg成功编译后可以在工作空间devel/lib/python3/dist-packages/ 下找到相关的py文件,可以直接使用from import 引入对应类型。

ros cpp 版本

catkin_workspace/devel/include/noa_msgs

  • msg成功编译后,可以在工作空间/devel/include/下找到对应的头文件,直接引用来使用

注意

  • 在ros的cmakelist include_directories中要配置对应工作空间的地址
  • 如果想在vscode中成功链接头文件而不报错,应在c_cpp_properties 文件的includePath 添加以上地址
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值