废话不多说直接上步骤——
1.msg文件夹需要建在功能包下,随便哪个功能包都可以,单独新建一个专门用来存放的也行
2.msg文件夹里面新建一个xxx.msg的文本文件
3.打开该功能包的package.xml文件
加入:
<builf_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>>
4.除此以外,根据咱xxx.msg文件里的内容,还需加入对应数据类型的依赖
例:
# xxx.msg文件内容如下
String name
Int16 length
那么还需要在package.xml文件下添加
<!-- 因为String和Int16都是std_msgs包里的,所以要添加std_msgs包 -->
<build_depend>std_msgs</build_depend>
<build_export_depend>std_msgs</build_export_depend>
还没完噢~~~
5.来到该功能包的CMakeLists.txt文件下——
在find_package(...)里面添加
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs # <-- 理由同上
message_generation # <-- 还有这个
)
add_message_files(
FILES
xxx.msg
# xxx2.msg(如果有更多的的话)
)
generate_messages(
DEPENDENCIES
std_msgs # <-- 理由同上 Or other packages containing msgs
)
catkin_package(
# INCLUDE_DIRS include
# LIBRARIES cmd_pkg
# CATKIN_DEPENDS roscpp rospy
# DEPENDS system_lib
CATKIN_DEPENDS roscpp rospy std_msgs message_runtime # <-- 还有这些
)
6.然后节点文件导入就像这样:
import rospy
from xxx_pkg.msg import xxx
emmm....
基本就这些,有说法的哥们们评论区补充~