学习笔记3--自定义类型msg

自定义话题数据类型

  1. 在本package文件夹下建立msg文件夹(与includesrc同级),msg文件夹中编辑以.msg结尾的文件。文本中每行代表一个数据,先写数据类型,再写数据名称。

    msg文件实际上就是每行声明一个数据类型和变量名。可以使用的数据类型如下:

        int8, int16, int32, int64 (plus uint*)

        float32, float64

        string

        time, duration

        other msg files

        variable-length array[] and fixed-length array[C]

    在保存msg文件后,就可以在terminal中使用rosmsg show [package_name]/[msg_name]来查到新建的类型。

   

  2.修改package.xmlCMakeLists.txt文件

    要生成自定义msg类型,需要添加message_generation依赖,可以在用命令建立package的时候就添加依赖会自动在上面两个文件出现。也可以后续自己添加。

    package.xml中添加:

    <build_depend>message_generation</build_depend>

    <exec_depend>message_runtime</exec_depend>

    CMakeLists.txt中添加:

    find_package()函数中添加message_generation

    添加add_message_files(

        FILES

        msg_name.msg

      )

    添加generate_messages(

        DEPENDENCIES

        std_msgs

      )

    catkin_package()中添加message_runtime

  3.cpp文件中使用自定义msg的方法

    #include “[package_name].[msg_name].h”

    注意此时是包含.h文件,不是包含.msg文件

    这个.h文件在编译后存在在catkin_ws/devel/include/[package_name]/[msg_name].h路径下

    在使用此类型的时候也需要加命名空间前缀 [package_name]::[msg_name]

  

  4.就可以编译运行了。

猜你喜欢

转载自www.cnblogs.com/xuhaoforwards/p/9415220.html
今日推荐