ROS自定义msg类型并在同一个包和不同包的头文件中调用

需要写自定义的msg类型的时候,比如我需要在包uwb_driver中创建一个topic类型为std_ang,步骤如下

  1. 首先在package目录下创建一个文件夹名为msg,再在msg文件夹中创建dist_ang.msg把我想要在里面定义的具体的变量名写进去
    float32 dist
    float32 ang

  2. 再在包的Cmakelist.txt中写上如下代码`

    find_package(catkin REQUIRED COMPONENTS
    dynamic_reconfigure
    message_generation //主要是这个
    roscpp
    rospy
    tf
    std_msgs
    )
    add_message_files(
    FILES
    dist_ang.msg //这个新写的msg文件
    )

    generate_messages(DEPENDENCIES
    std_msgs
    )

    catkin_package(
    CATKIN_DEPENDS
    message_runtime)

    include_directories(
    ${catkin_INCLUDE_DIRS}
    )

    add_executable( P R O J E C T N A M E n o d e s r c / u w b d r i v e r . c p p ) t a r g e t l i n k l i b r a r i e s ( {PROJECT_NAME}_node src/uwb_driver.cpp) target_link_libraries( PROJECTNAMEnodesrc/uwbdriver.cpp)targetlinklibraries({PROJECT_NAME}_node
    ${catkin_LIBRARIES}
    )
    include_directories(
    include
    ${catkin_INCLUDE_DIRS}

)

  1. 在package.xml中修改相关语句
    <build_depend>message_generation</build_depend>
    <exec_depend>message_runtime</exec_depend> //这两句话很关键,有的是run_depend 有的是execute_depend
  2. 编译catkin_make
  3. 再用rosmsg show uwb_drive/dist_ang 就可以看到,并且可以#include<uwb_drive/dist_ang.h>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值