ROS中自定义msg消息包笔记

(1)创建新软件包添加message_runtime和message_generation依赖

catkin_create_pkg XXX roscpp rospy std_msgs message_runtime message_generation

(2)在软件包下创建msg文件件编写msg文件

(3)在CMakeLists.txt中编写相关代码

a.确保find_package中存在message_runtime和message_generation

find_package(catkin REQUIRED COMPONENTS
  message_generation
  message_runtime
  roscpp
  rospy
  std_msgs
)

b.add_message_files中添加相应的msg文件

add_message_files(
  FILES
  carry.msg
)

c.取消generate_messages注释

generate_messages(
  DEPENDENCIES
  std_msgs
)

d.取消注释catkin_package下的CATKIN_DEPENDS,确保message_runtime在其中,为了让其他依赖消息包的软件包使用该消息包

catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES qq_msgs
CATKIN_DEPENDS message_generation message_runtime roscpp rospy std_msgs
#  DEPENDS system_lib
)

(4)package.xml中确保<exec_depend>和<build_depend>中都有message_generationmessage_runtime。

 <buildtool_depend>catkin</buildtool_depend>
  <build_depend>message_generation</build_depend>
    <build_depend>message_runtime</build_depend>
  <build_depend>roscpp</build_depend>
  <build_depend>rospy</build_depend>
  <build_depend>std_msgs</build_depend>
  <build_export_depend>roscpp</build_export_depend>
  <build_export_depend>rospy</build_export_depend>
  <build_export_depend>std_msgs</build_export_depend>
    <exec_depend>message_generation</exec_depend>
  <exec_depend>message_runtime</exec_depend>
  <exec_depend>roscpp</exec_depend>
  <exec_depend>rospy</exec_depend>

注:

  • <buildtool_depend>: 指定了构建工具依赖。这里catkin是ROS的构建系统,用于编译和构建ROS软件包。

  • <build_depend>: 指定了编译时依赖。这些依赖在编译软件包时必须可用。

    • message_generation: 用于生成消息的依赖,消息是ROS中用于节点间通信的数据结构。
    • message_runtime: 用于消息运行时的依赖,即消息的序列化和反序列化。
    • roscpp: ROS C++客户端库,提供C++接口与ROS通信。
    • rospy: ROS Python客户端库,提供Python接口与ROS通信。
    • std_msgs: 标准消息包,包含一些基本的消息类型,如StringInt32等。
  • <build_export_depend>: 指定了构建时的导出依赖。这些依赖不仅在编译时需要,而且在其他软件包依赖当前软件包时也需要。

  • <exec_depend>: 指定了执行时依赖。这些依赖在软件包运行时必须可用,但不是必须的编译依赖。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值