在ros中如果想用自己定义的message,ok,那你就需要按照ROS官方教程去做了。在qt下创建msg还是比较容易的,在qt创建msg文件,这里有坑,一定要先创建一个msg的文件夹,在该文件夹下面创建.msg文件,并且你会发现之前在创建package时候的依赖项都写在一个标签中,我们需要将它改写依赖项包含在多个标签中,每个标签里面仅仅含有一个依赖项,在msg文件中,并不像网上和官网说的用
Header header
直接定义类型,定义变量名,有点用c++里面定义变量一样,如果想要创建数组,这时就跟c++不一样了,需要这么创建
int8[4] name
ok,msg文件创建完后,需要修package.xml文件,在里面
这里和官网说的也有些不同,官网说直接修改<build_depend>就可以,实际上,修改过程发现,如果不修改<build_export_depend>是无法编译成功的,https://blog.csdn.net/vmxhc1314/article/details/81041779修改完成后,需要继续修改cmakelists文件,让我编译器能够找到我们新创建的msg文件,这里可以参考ros官网说明去做。
首先:find_package 里面增加message_generation,
然后:add_message_files(FILES msg文件名)
其次:generation_message(DEPENDENCIES 依赖项)
最后:catkin_package(CATKIN_DEPENDS 依赖项)
大功告成,此时可以在
rosmsg list
查看到我们的ros消息中,看到我们自定义的,在程序中,通过访问包名/msg名就可以建立相应的对象。