1、自定义msg
以waypoint为例:
在功能包目录下创建msg文件夹,创建.msg文件,ros默认在这个命名下寻找消息。
std_msgs/Header header
geometry_msgs/Point point
float64 max_forward_speed
float64 heading_offset
bool use_fixed_heading
float64 radius_of_acceptance
在package.xml下添加
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
在CMakeists.text中添加
find_package(catkin REQUIRED
${CATKIN_PACKAGE_DEPENDENCIES}
#在这里追加你自定义消息中的依赖的消息和message_generation
geometry_msgs
std_msgs
uuv_control_msgs
message_generation
)
#生成头文件,要在catkin_package前边
generate_messages(
DEPENDENCIES
std_msgs
geometry_msgs
uuv_control_msgs
)
catkin_package(
#在这里追加这个
message_runtime
)
#添加以下内容
add_message_files(
DIRECTORY msg
FILES
Waypoint.msg
)
2、自定义srv
同理,自定义srv只需要在上边的基础下添加
add_service_files(
DIRECTORY srv
FILES
Waypoints.srv
)
定义完成msg和srv后,catkin_make 编译通过后 可使用
rosmsg show
rossrv show 查看消息
总结:重点注意你所定义的消息类型所依赖的包,把他填写在find_package()和generate_messages()