1 生成消息
生成一个消息是很简单的。只要将一个.msg文件放入到package的msg目录下就可以了。首先按照前面的教程传送门设计一个消息,记得把顶部的选项改成rosbuild这点跟之前不太一样。
2 包含或者导入消息
2.1 C++
message被放入一个与包名匹配的命名空间里:
#include <std_msgs/String.h>
std_msgs::String msg;
2.2 Python
from std_msgs.msg import String
msg = String()
3 依赖
如果你要在另一个包里使用自定义消息,记得要做如下事情:
在package.xml里面添加:
<build_depend>name_of_package_containing_custom_msg</build_depend>
<run_depend>name_of_package_containing_custom_msg</run_depend>
<build_depend>message_generation</build_depend>
<run_depend>message_runtime</run_depend>
在 CMakeList.txt里面添加:
findPackage(message_generation)
catkin_package(CATKIN_DEPENDS message_runtime)
add_message_files(FILES your_msg_file.msg)
如果你要编译一个使用了自定义消息的C++代码,你还需要声明一些你的node和message的依赖,可以看之前的message自定义的教程,或者这个敷衍的教程传送门