ROS Message(一)

    xiaoxiao2023-10-09  151

    .msg文本格式

    .msg文件就是一个描述ROS中所使用消息类型的简单文本。它们会被用来生成不同语言的源代码。

    下面是一个msg文件的样例,它使用了Header,string,和其他另外两个消息类型。

    Header header string child_frame_id geometry_msgs/PoseWithCovariance pose geometry_msgs/TwistWithCovariance twist

    如何使用 msg

    $ cd ~/catkin_ws/src/beginner_tutorials $ mkdir msg $ echo "int64 num" > msg/Num.msg

    查看package.xml, 确保它包含一下两条语句:

     

    <build_depend>message_generation</build_depend> <exec_depend>message_runtime</exec_depend>

     如果没有,添加进去。 注意,在构建的时候,我们只需要"message_generation"。然而,在运行的时候,我们只需要"message_runtime"。

    在 包下的CMakeLists.txt文件中,利用find_packag函数,增加对message_generation的依赖,这样就可以生成消息了。 你可以直接在COMPONENTS的列表里增加message_generation,就像这样:

    find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs message_generation)

    有时候会发现,即使你没有调用find_package,你也可以编译通过。这是因为catkin把你所有的package都整合在一起,因此,如果其他的package调用了find_package,你的package的依赖就会是同样的配置。但是,在你单独编译时,忘记调用find_package会很容易出错。

    同样,你需要确保设置了运行依赖:

    catkin_package( CATKIN_DEPENDS message_runtime )

    找到如下代码块:

    # add_message_files( # FILES # Message1.msg # Message2.msg # )

    去掉注释符号#,用你的.msg文件替代Message*.msg,就像下边这样:

    add_message_files( FILES Num.msg )

    手动添加.msg文件后,我们要确保CMake知道在什么时候重新配置我们的project。 确保添加了如下代码:

    generate_messages()

    使用 rosmsg

    使用方法:

    $ rosmsg show [message type]

    样例:

    $ rosmsg show beginner_tutorials/Num

    你将会看到:

    int64 num

     

    最新回复(0)