.msg文件就是一个描述ROS中所使用消息类型的简单文本。它们会被用来生成不同语言的源代码。
下面是一个msg文件的样例,它使用了Header,string,和其他另外两个消息类型。
Header header string child_frame_id geometry_msgs/PoseWithCovariance pose geometry_msgs/TwistWithCovariance twist查看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 show [message type]样例:
$ rosmsg show beginner_tutorials/Num你将会看到:
int64 num
