自定义话题数据类型
- 在本package文件夹下建立msg文件夹(与include、src同级),msg文件夹中编辑以.msg结尾的文件。文本中每行代表一个数据,先写数据类型,再写数据名称。
msg文件实际上就是每行声明一个数据类型和变量名。可以使用的数据类型如下:
int8, int16, int32, int64 (plus uint*)
float32, float64
string
time, duration
other msg files
variable-length array[] and fixed-length array[C]
在保存msg文件后,就可以在terminal中使用rosmsg show [package_name]/[msg_name]来查到新建的类型。
2.修改package.xml和CMakeLists.txt文件
要生成自定义msg类型,需要添加message_generation依赖,可以在用命令建立package的时候就添加依赖会自动在上面两个文件出现。也可以后续自己添加。
package.xml中添加:
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
CMakeLists.txt中添加:
find_package()函数中添加message_generation。
添加add_message_files(
FILES
msg_name.msg
)
添加generate_messages(
DEPENDENCIES
std_msgs
)
catkin_package()中添加message_runtime
3.cpp文件中使用自定义msg的方法
#include “[package_name].[msg_name].h”
注意此时是包含.h文件,不是包含.msg文件
这个.h文件在编译后存在在catkin_ws/devel/include/[package_name]/[msg_name].h路径下
在使用此类型的时候也需要加命名空间前缀 [package_name]::[msg_name]
4.就可以编译运行了。