10.2 使用 msg
10.2.1 创建一个 msg
下面,我们将在之前创建的package里定义新的消息。
上面是最简单的例子——在.msg文件中只有一行数据。当然,你可以仿造上面的形式多增加几行以得到更为复杂的消息:
接下来,还有关键的一步:我们要确保msg文件被转换成为C++,Python和其他语言的源代码:
查看package.xml, 确保它包含一下两条语句:
如果没有,添加进去。 注意,在构建的时候,我们只需要"message_generation"。然而,在运行的时候,我们只需要"message_runtime"。
在你最喜爱的编辑器中打开CMakeLists.txt文件(可以参考前边的教程rosed).
在 CMakeLists.txt文件中,利用find_packag函数,增加对message_generation的依赖,这样就可以生成消息了。 你可以直接在COMPONENTS的列表里增加message_generation,就像这样:
有时候你会发现,即使你没有调用find_package,你也可以编译通过。这是因为catkin把你所有的package都整合在一起,因此,如果其他的package调用了find_package,你的package的依赖就会是同样的配置。但是,在你单独编译时,忘记调用find_package会很容易出错。
同样,你需要确保你设置了运行依赖:
找到如下代码块:
去掉注释符号#,用你的.msg文件替代Message*.msg,就像下边这样:
手动添加.msg文件后,我们要确保CMake知道在什么时候重新配置我们的project。 确保添加了如下代码:
编译新建的消息
现在,你可以生成自己的消息源代码了。如果你想立即实现,那么就跳过以下部分,到Common step for msg and srv.
10.2.2 使用 rosmsg
以上就是你创建消息的所有步骤。下面通过rosmsg show命令,检查ROS是否能够识消息。
使用方法:
样例:
你将会看到:
在上边的样例中,消息类型包含两部分:
beginner_tutorials -- 消息所在的package
Num -- 消息名Num.
如果你忘记了消息所在的package,你也可以省略掉package名。输入:
你将会看到:
Last updated