ros通过message_generation、message_runtime将.msg文件和.srv文件自动转换成python或者C++的源码。用户只需定义简单的.msg和.srv文件即可。
msg和srv
.msg文件:用于定义ros话题消息,保存在msg文件夹下。
ROS中一个特殊的类型:Header,header中包含了ROS中常用的时间戳和坐标系信息。你会经常看到 msg 文件的第一行有Header header。
std_msgs/Header header
## 无人机编号
uint8 uav_id
## 无人机控制状态
uint8 control_state
## 状态枚举
uint8 INIT=0
uint8 RC_POS_CONTROL=1
uint8 COMMAND_CONTROL=2
uint8 LAND_CONTROL=3
## 无人机控制器标志量
uint8 pos_controller
## 状态枚举
uint8 PX4_ORIGIN=0
uint8 PID=1
uint8 UDE=2
uint8 NE=3
# 无人机安全保护触发标志量
bool failsafe
.srv文件:用于定义ros服务消息,保存在srv文件夹下。包括请求和响应两部分。
请求和响应"---"隔开。
举例:mavros/ mavros_msgs / srv / CommandBool.srv
上面是请求,下面是响应。
# Common type for switch commands
bool value
---
bool success
uint8 result