std_msgs标准包
common_msgs常规包
生成自定义消息的步骤
1、创建新软件包,要加上依赖项message_generation、message_runtime
2.软件包添加msg目录,新建自定义消息文件,以.msg结尾
3.在CMakeLists.txt中,将新建的.msg文件加入add_message_files()。
4、在CMakeLists.txt中,去掉generate_messages()注释符号,将依赖得其他消息包名称添加进去。(比如用到std_msgs中的string和int类型,所以写一个std_msgs即可)(generate_messages表明新的消息类型需要依赖的其他消息包列表)
5、在CMakeLists.txt中,将message_runtime 加入 catkin_package()的CATKIN DEPENDS。(catkin_package是为了让依赖咱们这个新消息包的其他软件包能够在运行时使用新定义的消息类型)
6、在package.xml中,最下面的依赖表,将message_generation、message_runtime加入和.
7.编译软件包,生成新的自定义消息类型。
编译后,使用rosmsg show 消息包名称/消息类型
创建的是qq_msgs包下msg下Carry.msg
Carry.msg中包括string grade int64 star
二、C++实现
新消息类型在C++节点的应用
1、在节点代码中,先include新消息类型的头文件。(例如上述include的就是<qq_msgs/Carry.h>)
2、在发布或订阅话题的时候,将话题中的消息类型设置为新的消息类型。
3、按照新的消息结构,对消息包进行赋值发送或读取解析
4、在CMakeList.txt文件的find_package()中,添加新消息包名称作为依赖项。
5、在节点的编译规则中,添加一条add_dependencies(),将新消息软件包名称 generate_messages_cpp作为依赖项。在package.xml中,将新消息包添加到和中去。
7.运行 catkin_make 重新编译
ros自定义消息msg
于 2024-10-15 18:50:05 首次发布