# 微克MAVLINK通信协议
微克 MAVLINK 通信协议以标准 MAVLINK V2.0 协议为基础, 在其 common 包消息的基础上进行自定消息扩充而成.
## 支持的 common.xml 标准消息
飞控实现了部分 common 标准消息的支持.
对 common 消息的定义和实现应以遵循开源已有通用定义为准则, 以便在和其它支持 mavlink 通用协议的设备对接时不产生歧义.
对于 common 已有定义的消息无法满足的需求, 应在 vkfmu 自定义消息的部分进行定义和实现.
兼容 mavlink common 是为了能向开源标准靠拢迈出第一步,另一个是因为 mavlink 库自动生成消息收发包处理代码可以帮助我们进行快速开发,专注于消息内容的定义而不是组包解包繁复代码的编写.
### 一些使用到的枚举类型说明
- [MAV_SYS_STATUS_SENSOR](https://mavlink.io/en/messages/common.html#MAV_SYS_STATUS_SENSOR)
系统传感器状态bitmap枚举类型
| enum_name | bit_mask | 说明 |
| -------------------------------------------- | ---------- | ---------------- |
| MAV_SYS_STATUS_SENSOR_3D_GYRO | 1 | imu1陀螺 |
| MAV_SYS_STATUS_SENSOR_3D_ACCEL | 2 | imu1加速度 |
| MAV_SYS_STATUS_SENSOR_3D_MAG | 4 | mag1磁力计 |
| MAV_SYS_STATUS_SENSOR_ABSOLUTE_PRESSURE | 8 | 气压计 |
| MAV_SYS_STATUS_SENSOR_DIFFERENTIAL_PRESSURE | 16 | 空速计 |
| MAV_SYS_STATUS_SENSOR_GPS | 32 | 普通gps1 |
| MAV_SYS_STATUS_SENSOR_OPTICAL_FLOW | 64 | 光流, 预留 |
| MAV_SYS_STATUS_SENSOR_VISION_POSITION | 128 | 视觉定位, 预留 |
| MAV_SYS_STATUS_SENSOR_LASER_POSITION | 256 | 激光定位, 预留 |
| MAV_SYS_STATUS_SENSOR_EXTERNAL_GROUND_TRUTH | 512 | 预留 |
| MAV_SYS_STATUS_SENSOR_ANGULAR_RATE_CONTROL | 1024 | 角速率控制 |
| MAV_SYS_STATUS_SENSOR_ATTITUDE_STABILIZATION | 2048 | 姿态控制 |
| MAV_SYS_STATUS_SENSOR_YAW_POSITION | 4096 | 航向控制 |
| MAV_SYS_STATUS_SENSOR_Z_ALTITUDE_CONTROL | 8192 | 高度控制 |
| MAV_SYS_STATUS_SENSOR_XY_POSITION_CONTROL | 16384 | 位置控制 |
| MAV_SYS_STATUS_SENSOR_MOTOR_OUTPUTS | 32768 | 预留 |
| MAV_SYS_STATUS_SENSOR_RC_RECEIVER | 65536 | 遥控器数据状态 |
| MAV_SYS_STATUS_SENSOR_3D_GYRO2 | 131072 | imu2陀螺 |
| MAV_SYS_STATUS_SENSOR_3D_ACCEL2 | 262144 | imu2加速度 |
| MAV_SYS_STATUS_SENSOR_3D_MAG2 | 524288 | mag2磁 |
| MAV_SYS_STATUS_GEOFENCE | 1048576 | 地理围栏 |
| MAV_SYS_STATUS_AHRS | 2097152 | 预留 |
| MAV_SYS_STATUS_TERRAIN | 4194304 | 地形高度 |
| MAV_SYS_STATUS_REVERSE_MOTOR | 8388608 | 预留 |
| MAV_SYS_STATUS_LOGGING | 16777216 | 预留 |
| MAV_SYS_STATUS_SENSOR_BATTERY | 33554432 | 预留 |
| MAV_SYS_STATUS_SENSOR_PROXIMITY | 67108864 | 预留 |
| MAV_SYS_STATUS_SENSOR_SATCOM | 134217728 | 预留 |
| MAV_SYS_STATUS_PREARM_CHECK | 268435456 | 起飞前检查 |
| MAV_SYS_STATUS_OBSTACLE_AVOIDANCE | 536870912 | 避障 |
| MAV_SYS_STATUS_SENSOR_PROPULSION | 1073741824 | 预留 |
| MAV_SYS_STATUS_EXTENSION_USED | 2147483648 | 是否启用扩展标志 |
| MAV_SYS_STATUS_SENSOR_ENUM_END | 2147483649 | |
### 飞控通用遥测数据消息
- [MAVLINK_MSG_ID_HEARTBEAT](https://mavlink.io/en/messages/common.html#HEARTBEAT)
飞控和地面站定周期 1hz 向外发送, 用于判别是否失联. 包含基础的设备信息.
| 字段 | 说明 |
| --------------- | -------------------------------------------------------------------- |
| custom_mode | 自定义飞行模式, 参考 VKFLY.xml 中 enum VKFLY_CUSTOM_MODE |
| type | 旋翼为 MAV_TYPE_QUADROTOR, 垂起为 MAV_TYPE_VTOL_TAILSITTER_QUADROTOR |
| base_mode | 我们主要用 custom_mode, 该字段置位 MAV_MODE_FLAG_CUSTOM_MODE_ENABLED |
| system_status | 参考common.xml标准定义 |
| mavlink_version | 当前仅支持v2.0, 值为200 |
- [MAVLINK_MSG_ID_SYS_STATUS](https://mavlink.io/en/messages/common.html#SYS_STATUS)
飞控定周期向外发送, 默认 2hz. 包含传感器\电池\故障码等一些重要状态信息.
| 字段 | 说明 |
| ---------------------------------------- | --------------------------------------------- |
| onboard_control_sensors_present | 飞控具有的传感器, bit位按common.xml中标准定义 |
| onboard_control_sensors_enabled | 飞控启用的传感器, bit位按common.xml中标准定义 |
| onboard_control_sensors_health | 传感器健康状态, bit位按common.xml中标准定义 |
| load | 系统cpu负载, 0~1000, 按commom.xml标准定义 |
| voltage_battery | 电压mV, 传输为飞控供电电压 |
| current_battery | 电流cA |
| drop_rate_comm | 预留 |
| errors_comm | 预留 |
| errors_count1 | bit位参考自定义vkfly.xml中 VKFLY_SYS_ERROR1 |
| errors_count2 | bit位参考自定义vkfly.xml中 VKFLY_SYS_ERROR2 |
| errors_count3 | 预留 |
| errors_count4 | 预留 |
| battery_remaining | 剩余电量百分比% |
| onboard_control_sensors_present_extended | 参考 VKFLY_SYS_STATUS_SENSOR_EXTEND |
| onboard_control_sensors_enable_extended | 参考 VKFLY_SYS_STATUS_SENSOR_EXTEND |
| onboard_control_sensors_health_extended | 参考 VKFLY_SYS_STATUS_SENSOR_EXTEND |
- [MAVLINK_MSG_ID_HOME_POSITION](https://mavlink.io/en/messages/common.html#HOME_POSITION)
home点. 飞控起飞时自动设置 home 点并发送本消息. 也可用 MAV_CMD_REQUEST_MESSAGE 进行读取.
| 字段 | 说明 |
| ---------- | --------------------------------- |
| latitude | wgs84纬度 degE7 |
| longitude | wgs84经度 degE7 |
| altitude | 海拔高度 mm |
| x | 北向相对坐标(相对解算原点 origin) |
| y | 东向相对坐标 |
| z | 地向相对坐标 |
| q | 地面姿态四元数(暂未使用) |
| approach_x | 进近矢量 (暂未使用) |
| approach_y | 进近矢量 (暂未使用) |
| approach_z | 进近矢量 (暂未使用) |
| time_usec | 时间戳us |
- [MAVLINK_MSG_ID_GPS_RAW_INT](https://mavlink.io/en/messages/common.html#GPS_RAW_INT) | [MAVLINK_MSG_ID_GPS2_RAW]((https://mavlink.io/en/messages/common.html#GPS2))
飞控定周期向外发送, 默认 1hz. 包含未经融合的原始普通 gps wgs84 坐标定位等信息.
GPS_RAW_INT 为 RTK 板卡的原始定位数据, GPS2_RAW 为普通 GPS 的原定定位数据.
GPS_RAW
| 字段 | 说明 |
| ------------------ | --------------------------- |
| time_usec | 时间戳 us |
| fix_type | 参考 GPS_FIX_TYPE |
| lat | wgs84 纬度 degE7 |
| lon | wgs84 纬度 degE7 |
| alt | 海拔高度 mm |
| eph | HDOP |
| epv | VDOP |
| vel | 地速 cm/s |
| cog | 航迹角 0.01deg, 0~359.99deg |
| satellites_visible | 星数 |
GPS2_RAW
| 字段 | 说明 |
| ------------------ | ----------------------------------------------------------------------- |
| time_usec | 时间戳 us |
| fix_type | 参考 GPS_FIX_TYPE |
| lat | wgs84 纬度 degE7 |
| lon | wgs84 纬度 degE7 |
| alt | 海拔高度 mm |
| eph | HDOP |
| epv | VDOP |
| vel | 地速 cm/s |
| cog | 航迹角 0.01deg, 0~359.99deg |
| satellites_visible | 星数 |
| dgps_numch | 定向星数 |
| yaw | 定向航向, 0.01deg. 0无测向能力, 1-36000有效测向值, UINT16_MAX无效测向值 |
| alt_ellipsoid | 椭球高 mm |
| h_acc | 水平精度 mm |
| v_acc | 垂直精度 mm |
| vel_acc | 速度精度 mm |
| hdg_acc | 航向精度 degE5 |
- [MAVLINK_MSG_ID_GLOBAL_POSITION_INT](https://mavlink.io/en/messages/common.html#GLOBAL_POSITION_INT)
融合后的 GLOBAL 定位信息
飞控定周期向外发送, 默认 5hz. 包含融合后的 wgs84 坐标定位信息.
| 字段 | 说明 |
| ------------ | ----------------------------------- |
| time_boot_ms | 时间戳ms |
| lat | 纬度 degE7 |
| lon | 精度 degE7 |
| alt | 海拔高度 mm |
| relativ_alt | 相对高度 mm |
| vx | 北向速度 cm/s, 北为正 |
| vy | 东向速度 cm/s, 东为正 |
| vz | 地向速度 cm/s, 下为正 |
| hdg | 航向角 0.01deg 0.01deg, 0~359.99deg |
- [MAVLINK_MSG_ID_ATTITUDE](https://mavlink.io/en/messages/common.html#ATTITUDE)
飞控定周期向外发送, 默认 5hz. 包含飞行器的姿态\角速度等信息.
欧拉角定义以 FRD-NED 系右手符号. (航向顺时针正, 俯仰抬头正, 横滚右滚正).
- [MAVLINK_MSG_ID_LOCAL_POSITION_NED](https://mavlink.io/en/messages/common.html#LOCAL_POSITION_NED)
LOCAL 定位信息
飞控定周期向外发送, 默认 5hz. 包含以解算原点为原点的北东地坐标下的相对位置和速度信息.
- [MAVLINK_MSG_ID_SERVO_OUTPUT_RAW](https://mavlink.io/en/messages/common.html#SERVO_OUTPUT_RAW)
电机输出信息
飞控顶周期向外发送, 默认 5hz. 包含各通道电机控制PWM信号的值.
- [MAVLINK_MSG_ID_VFR_HUD](https://mavlink.io/en/messages/common.html#VFR_HUDhttps://mavlink.io/en/messages/common.html#VFR_HUD)
仪表HUD信息
飞控定周期向外发送, 默认 5hz. 包含飞行器的高度\速度\油门等信息.
- [MAVLINK_MSG_ID_MISSION_CURRENT](https://mavlink.io/en/messages/common.html#MISSION_CURRENT)
当前任务点消息
飞控定期下传, 默认 1hz. 包含当前任务航点序号等信息. 注意 seq 字段从 0 开始.
- [MAVLINK_MSG_ID_RC_CHANNELS](https://mavlink.io/en/messages/common.html#RC_CHANNELS)
遥控器通道信息
飞控定周期向外发送, 默认 5hz. 包含飞行器接受到的遥控器输入通道(校准后)的数据.
- [MAVLINK_MSG_ID_STATUSTEXT](https://mavlink.io/en/messages/common.html#STATUSTEXT)
系统状态消息
用于打印显示飞控向地面站传输的字符串. 包括 DEBUG\INFO\WARING\ERROR 等用途.
对于 WARING 和更高等级的信息, 地面站应在操作界面给与用户醒目提示.
对于 INFO\DEBUG 等级的信息, 建议地面站在次级界面给与打印记录. (此两等级的消息主要用于调试)
| 字段 | 说明 |
| --------- | ---------------------------------- |
| severity | 信息等级 |
| text | 消息字符串 |
| id | 拼接超过50字符的长消息用, 暂未使用 |
| chunk_seq | 拼接超过50字符的长消息用, 暂未使用 |
- [MAVLINK_MSG_ID_CAMERA_IMAGE_CAPTURED](https://mavlink.io/en/messages/common.html#CAMERA_IMAGE_CAPTURED)
拍照pos消息
每次拍照都进行下发, 可用 MAV_CMD_REQUEST_MESSAGE 进行读取.
使用 MAV_CMD_REQUEST_MESSAGE 读取时, param2 非负数值表示要读取的第一个照片 index, -1 表示读取所有照片. param3 0表示仅
读取 param2 指定的照片pos, -1 表示读取 param2 及之后所有的照片pos.
| 字段 | 说明 |
| -------------- | ----------------------------------- |
| time_boot_ms | 本地时间戳ms, 从系统启动开始 |
| time_utc | utc 时间戳us, 从1970年1月1日0时开始 |
| camera_id | 相机comp_id, 当具有多个相机时使用 |
| lat | wgs84 纬度, degE7 |
| lat | wgs84 经度, degE7 |
| alt | 海拔高度m |
| relativ_alt | 相对高度m |
| q | 相机姿态四元数 |
| image_index | 照片索引,0开始 |
| capture_result | 拍照结果 0失败 1成功 |
| file_url | 照片数据地址(网址, 飞控没有填0) |
### 参数设置
参考 [mavlink services parameter](https://mavlink.io/en/services/parameter.html). 使用16字节的 paramid 作为每各参数的唯一表示码.
- [MAVLINK_MSG_ID_PARAM_REQUEST_READ](https://mavlink.io/en/messages/common.html#PARAM_REQUEST_READ)
单个参数读取. 地面站向飞控发送, 读取某个指定参数. 飞控收到后回复 MAVLINK_MSG_ID_PARAM_VALUE 消息.
- [MAVLINK_MSG_ID_PARAM_REQUEST_LIST](https://mavlink.io/en/messages/common.html#PARAM_REQUEST_LIST)
所有参数读取. 地面站向飞控发送, 读取所有飞控参数. 飞控收到后将所有参数依次按 MAVLINK_MSG_ID_PARAM_VALUE 消息回复.
- [MAVLINK_MSG_ID_PARAM_VALUE](https://mavlink.io/en/messages/common.html#PARAM_VALUE)
参数值消息. 飞控向地面站回复读取对应的参数值信息.
- [MAVLINK_MSG_ID_PARAM_SET](https://mavlink.io/en/messages/common.html#PARAM_SET)
参数设置消息. 地面站向飞控发送参数设置消息.
### 航线任务\电子围栏\备降集结点的装订和回读
航线任务装订和回读交互流程详细参考 [mavlink services mission](https://mavlink.io/en/services/mission.html).
目前对 common 标准协议的航线支持有限的几种 MAV_CMD 和 MAV_FRAME.
支持的 MAV_FRAME 如下
| FRAME | 说明 |
| --------------------------------- | --------------------------------- |
| MAV_FRAME_GLOBAL_RELATIVE_ALT_INT | xy经纬度, z相对起飞点高度 |
| MAV_FRAME_GLOBAL_INT | xy经纬度, z相对平均海平面amsl高度 |
#### 航线任务 MAV_MISSION_TYPE_MISSION
支持的标准 MAV_CMD包括以下两种, 对当前版本来说这两种不是重点, 只是为了兼容标准协议而做的实现. 重点的航点命令类型在自定义部分.
- [MAV_CMD_NAV_WAYPOINT](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_WAYPOINT)
普通巡航航点
param1-Hold 不为0或者NAN时,将执行自动转弯. 否则按对应时间悬停转弯.
- [MAV_CMD_NAV_LAND](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_LAND)
降落点
#### 电子围栏 MAV_MISSION_TYPE_FENCE
飞控一共有200个电子围栏点.
电子围栏功能上包括返回点(return_point)安全区(inclusion)和禁飞区(exlusion)三种.
安全区和禁飞区可有多边形(polygon)和圆形(circle)两种.
支持的 MAV_CMD
- [MAV_CMD_NAV_FENCE_RETURN_POINT](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_FENCE_RETURN_POINT)
电子围栏返回点. 可以无或者有一个返回点.
- [MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_FENCE_CIRCLE_EXCLUSION) | [MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_FENCE_CIRCLE_INCLUSION)
圆形电子围栏. 注意不同的圆形电子围栏 group 项应不同.
- [MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_FENCE_POLYGON_VERTEX_EXCLUSION) | [MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_FENCE_POLYGON_VERTEX_INCLUSION)
多边形电子围栏. 注意不同的多边形电子围栏 group 项应不同. 同一个多边形的 item 数据 seq 应保持连续.
#### 备降集结点 MAV_MISSION_TYPE_RALLY
- [MAV_CMD_NAV_RALLY_POINT](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_RALLY_POINT)
飞控支持20个备用降落点的设置和读取. 可通过指令直接去 RALLY 点降落, 可通过参数设定系统
### 地面站指令消息
mavlink common 标准消息集中主要由 MAVLINK_MSG_ID_COMMAND_INT 和 MAVLINK_MSG_ID_COMMAND_LONG 两条.
- [MAVLINK_MSG_ID_COMMAND_INT](https://mavlink.io/en/messages/common.html#COMMAND_INT)
飞控接受以下几条 MAV_CMD 类型的指令
- [MAV_CMD_DO_REPOSITION](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_REPOSITION)
指点指令
其中 fram 支持 MAV_FRAME_GLOBAL_RELATIVE_ALT MAV_FRAME_GLOBAL_RELATIVE_ALT_INT MAV_FRAME_GLOBAL MAV_FRAME_GLOBAL_INT
- [MAVLINK_MSG_ID_COMMAND_LONG](https://mavlink.io/en/messages/common.html#COMMAND_LONG)
飞控接受以下几条 MAV_CMD 类型的指令
- [MAV_CMD_PREFLIGHT_CALIBRATION](https://mavlink.io/en/messages/common.html#MAV_CMD_PREFLIGHT_CALIBRATION)
校准命令
| 参数 | 说明 |
| ------ | --------------------------------------- |
| param1 | 1-陀螺校准(暂未支持) |
| param2 | 1-磁力计校准 |
| param3 | 1-地面气压校准(暂未支持) |
| param4 | 1-遥控器校准开始
2-遥控器校准结束 |
| param5 | 1-加速度计校准(暂未支持)
2-水平校准 |
| param6 | 1-暂未支持
2-空速计校准 |
| param7 | 1-ESC电调校准 |
- [MAV_CMD_ACTUATOR_TEST ](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_MOTOR_TEST)
电机\舵机检测
| 参数 | 说明 |
| ------ | ------------------------------------------------------------------------------------------------------------- |
| param1 | 电机0~1对应最小到最大油门, 舵机-1~1对应最大负向~正向行程. 特殊约定 NAN 表示电机输出设置怠速 |
| param2 | 检测时间 0~3s |
| param3 | |
| param4 | |
| param5 | 检测通道, 参考[ACTUATOR_OUTPUT_FUNCTION](https://mavlink.io/en/messages/common.html#ACTUATOR_OUTPUT_FUNCTION) |
- [MAV_CMD_COMPONENT_ARM_DISARM](https://mavlink.io/en/messages/common.html#MAV_CMD_COMPONENT_ARM_DISARM)
解锁\上锁命令
| 参数 | 说明 |
| ------ | -------------------------- |
| param1 | 0-上锁 1-解锁 |
| param2 | 21196-强制执行(仅支持上锁) |
- [MAV_CMD_NAV_TAKEOFF](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_TAKEOFF) 起飞命令
| 参数 | 说明 |
| ------ | --------------------------------------------- |
| param1 | |
| param4 | |
| param5 | |
| param6 | |
| param7 | 起飞高度, 约定 NAN 表示用默认参数中的起飞高度 |
- [MAV_CMD_MISSION_START](https://mavlink.io/en/messages/common.html#MAV_CMD_MISSION_START) 开始航线任务
| 参数 | 说明 |
| ------ | -------------------------------------------------- |
| param1 | 起始序号 (可选择从几号 mission 开始执行), 从0开始 |
| param2 | 结束序号 (可选择到记号 mission 停止执行, 暂不支持) |
- [MAV_CMD_DO_PAUSE_CONTINUE](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_PAUSE_CONTINUE) 暂停\继续命令
| 参数 | 说明 |
| ------ | ------------- |
| param1 | 0-暂停 1-继续 |
- [MAV_CMD_NAV_RETURN_TO_LAUNCH](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_RETURN_TO_LAUNCH)
返航, 返回起飞点.
- [MAV_CMD_NAV_LAND](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_LAND)
降落
- [MAV_CMD_DO_JUMP](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_JUMP)
切换目标点
| 参数 | 说明 |
| ------ | ---------- |
| param1 | 目标点序号 |
- [MAV_CMD_REQUEST_MESSAGE](https://mavlink.io/en/messages/common.html#MAV_CMD_REQUEST_MESSAGE)
请求消息命令
| 参数 | 说明 |
| -------- | ------------------ |
| param1 | 请求的 msgid |
| param2-7 | 见被请求消息自定义 |
- [MAV_CMD_SET_MESSAGE_INTERVAL](https://mavlink.io/en/messages/common.html#MAV_CMD_SET_MESSAGE_INTERVAL)
设置消息发送间隔周期
可设置飞控的常发数据消息周期
| 参数 | 说明 |
| ------ | -------------- |
| param1 | 要设置的 msgid |
| param2 | 消息周期 us |
| param7 | 未使用 |
- [MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_GIMBAL_MANAGER_PITCHYAW)
设置载荷云台俯仰航向角度指令
param5 中, GIMBAL_MANAGER_FLAGS_RETRACT(镜头回缩) GIMBAL_MANAGER_FLAGS_NEUTRAL(回中) . 该两 bit 指令动作优先级最高执行.
param1\param2不都为NAN, 表示吊舱按给定角度运动
设置俯仰低头20度, 航向右60度, param1=-20, param2=60
设置俯仰低头20度, 航向不变, param1=-20, param2=NAN,
param1\param2都为NAN, param3 或 param4 不为 NAN, 则表示吊舱俯仰或航向以给定速率运动
| 参数 | 说明 |
| ------ | ------------------------------------------------------------------------------------------- |
| param1 | 俯仰角, 抬头为正, -180~180deg, NAN 表示不改变当前俯仰 |
| param2 | 航向角, 右转为正, -180~180deg, NAN 表示不改变当前航向 |
| param3 | 俯仰角速度, 单位deg/s |
| param4 | 航向角速度, 单位deg/s |
| param5 | 参考[GIMBAL_MANAGER_FLAGS](https://mavlink.io/en/messages/common.html#GIMBAL_MANAGER_FLAGS) |
| param6 | |
| param7 | gimbal 设备的 comp_id, (暂未使用) |
- [MAV_CMD_DO_SET_CAM_TRIGG_DIST](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_SET_CAM_TRIGG_DIST)
拍照-定距指令
若进行定距拍照, 则会停止当前正在进行的定时拍照.
单拍一张 param1=NAN, param2=NAN, param3=1
停止连拍 param1=0, param2=NAN, param3=0
停止连拍且当前单拍一张 param1=0, param2=NAN, param3=1
触发定10m拍照 param1 = 10, param2=NAN, param3=0
| 参数 | 说明 |
| ------ | ----------------------------------------------------------- |
| param1 | 定距触发距离m, 0表示不定距离触发, NAN表示不改变当前触发状态 |
| param2 | 快门时间ms, NAN 表示用默认快门时间设置 |
| param3 | 是否立刻进行一次拍照, 0不进行, 1进行 |
- [MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_SET_CAM_TRIGG_INTERVAL)
拍照-定时指令
若进行定时拍照, 则会关闭当前正进行的定距拍照.
| 参数 | 说明 |
| ------ | -------------------------------------- |
| param1 | 定时触发周期ms, 0表示不进行定时触发 |
| param2 | 快门时间ms, NAN 表示用默认快门时间设置 |
| param3 | 是否立刻进行一次拍照, 0不进行, 1进行 |
- [MAV_CMD_DO_DIGICAM_CONTROL](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_DIGICAM_CONTROL)
相机控制
param1~param5中,
| 参数 | 说明 |
| ------ | ----------------------------------------------------------------- |
| param1 | 未用, 给0或NAN |
| param2 | 变倍率, 给定绝对倍率, 0或负数或NAN忽略(用MAV_CMD_SET_CAMERA_ZOOM) |
| param3 | 变倍率, 给定相对倍率, 0或负数或NAN忽略(用MAV_CMD_SET_CAMERA_ZOOM) |
| param4 | 对焦, 1-执行一次对焦, 0或负数或NAN忽略 |
| param5 | 拍照, 1-执行一次拍照, 0或负数或NAN忽略 |
| param6 | 未用, 给0或NAN |
| param7 | 未用, 给0或NAN |
- [MAV_CMD_SET_CAMERA_ZOOM](https://mavlink.io/en/messages/common.html#MAV_CMD_SET_CAMERA_ZOOM)
变焦指令
| 参数 | 说明 |
| ------ | -------------------------------------------------------------------------------------- |
| param1 | 1-连续变焦 2-设置变焦值 |
| param2 | 连续变焦: -1到1, 0为停止, 负数为缩小, 正数为放大
设置变焦倍数: 0~100, 100为最大倍数 |
- [MAV_CMD_CAMERA_TRACK_POINT](https://mavlink.io/en/messages/common.html#MAV_CMD_CAMERA_TRACK_POINT)
指点跟踪
| 参数 | 说明 |
| ------ | --------------------------------------- |
| param1 | px, 水平图像位置, 0~1, 0为最左, 1为最右 |
| param2 | py, 垂直图像位置, 0~1, 0为最上, 1为最下 |
| param3 | 未使用 |
- [MAV_CMD_CAMERA_STOP_TRACKING](https://mavlink.io/en/messages/common.html#MAV_CMD_CAMERA_STOP_TRACKING)
停止跟踪
- [MAV_CMD_VIDEO_START_CAPTURE](https://mavlink.io/en/messages/common.html#MAV_CMD_VIDEO_START_CAPTURE)
开始录像
- [MAV_CMD_VIDEO_STOP_CAPTURE ](https://mavlink.io/en/messages/common.html#MAV_CMD_VIDEO_STOP_CAPTURE)
停止录像
- [MAV_CMD_DO_ENGINE_CONTROL](MAV_CMD_DO_ENGINE_CONTROL)
发动机控制
|param1|0-停止发动机 1-启动发动机, NAN忽略|
|param2|0-热车开始 1-冷却开始, NAN忽略|
|param3|升空后启动发动机高度, 单位m, NAN忽略|
### 飞控 LOG 读取
Q: 用 mavlink FTP 还是用 LOG 系列. FTP 功能更强但实现难度更大.
- MAVLINK_MSG_ID_LOG_REQUEST_LIST
- MAVLINK_MSG_ID_LOG_ENTRY
- MAVLINK_MSG_ID_LOG_REQUEST_DATA
- MAVLINK_MSG_ID_LOG_DATA
- MAVLINK_MSG_ID_LOG_ERASE
- MAVLINK_MSG_ID_LOG_REQUEST_END
## 微克 vkfmu 自定义 vkfly.xml (补充中)
### 自定义枚举类型
- VKFLY_AP_TYPE
飞行器动力布局类型
```c
typedef enum VKFLY_AP_TYPE
{
VKFLY_AP_TYPE_I4=41, /* Quadrotor I4 | */
VKFLY_AP_TYPE_X4=42, /* Quadrotor X4 | */
VKFLY_AP_TYPE_I6=61, /* Hexarotor I6 | */
VKFLY_AP_TYPE_X6=62, /* Hexarotor X6 | */
VKFLY_AP_TYPE_YI6D=63, /* Three axis hexarotor YI6D | */
VKFLY_AP_TYPE_Y6D=64, /* Three axis hexarotor Y6D | */
VKFLY_AP_TYPE_H6=65, /* Hexarotor H6 | */
VKFLY_AP_TYPE_I8=81, /* Octorotor I8 | */
VKFLY_AP_TYPE_X8=82, /* Octorotor X8 | */
VKFLY_AP_TYPE_4X8M=83, /* Four axis octorotor, upper level X4, lower level reversed X4. | */
VKFLY_AP_TYPE_4X8D=84, /* Four axis octorotor, upper level clockwise, lower level anticlockwise | */
VKFLY_AP_TYPE_4X8MR=85, /* Four axis octorotor, all rotors are opposite of 4X8M. | */
VKFLY_AP_TYPE_4X8DR=86, /* Four axis octorotor, all rotors are opposite of 4X8M. | */
VKFLY_AP_TYPE_6I12=121, /* Six axis twelve rotor, upper level I6, lower level opposite with I6. | */
VKFLY_AP_TYPE_6X12=122, /* Six axis twelve rotor, upper level X6, lower level opposite with X6. | */
VKFLY_AP_TYPE_8I16=161, /* 16 axis 8 rotor, upper level I8, lower level opposite with I8 | */
VKFLY_AP_TYPE_8X16=162, /* 16 axis 8 rotor, upper level X8, lower level opposite with X8 | */
VKFLY_AP_TYPE_ENUM_END=163, /* | */
} VKFLY_AP_TYPE;
```
- VKFLY_FS_ACTION
失控保护动作类型
```c
typedef enum VKFLY_FS_ACTION
{
FAIL_SAFE_ACT_NONE=0, /* 无动作 | */
FAIL_SAFE_ACT_LOITER=1, /* 悬停 | */
FAIL_SAFE_ACT_RTL=2, /* 返航(回起飞点) | */
FAIL_SAFE_ACT_RTR=3, /* 去往备降点(最近的 rally 点) | */
FAIL_SAFE_ACT_LAND=4, /* 原地降落 | */
FAIL_SAFE_ACT_LOCK=5, /* 停桨上锁 | */
VKFLY_FS_ACTION_ENUM_END=6, /* | */
} VKFLY_FS_ACTION;
```
- VKFLY_SYS_STATUS_SENSOR_EXTEND
```c
typedef enum VKFLY_SYS_STATUS_SENSOR_EXTEND
{
VKFLY_SYS_STATUS_SENSOR_GPS2=4, /* GPS2 | */
VKFLY_SYS_STATUS_SENSOR_RTK_GPS=8, /* RTK GPS | */
VKFLY_SYS_STATUS_SDCARD=16, /* Onboard SD card | */
VKFLY_SYS_STATUS_SENSOR_EXTEND_ENUM_END=17, /* | */
} VKFLY_SYS_STATUS_SENSOR_EXTEND;
```
- VKFLY_SYS_ERROR1
用于 SYS_STATUS 消息中对应的字节. 详细参考 VKFLY.xml
```c
typedef enum VKFLY_SYS_ERROR1
{
VKFLY_SYS_ERROR1_GCS_LINK_LOST=1, /* Gcs 失联 | */
VKFLY_SYS_ERROR1_VOLTAGE_LOW=2, /* 电池电压低 | */
VKFLY_SYS_ERROR1_MOTOR_BALANCE=4, /* 电机平衡差 | */
VKFLY_SYS_ERROR1_MOTOR_FAIL=8, /* 动力故障 | */
VKFLY_SYS_ERROR1_OVERHEAT=16, /* 飞控温度高 | */
VKFLY_SYS_ERROR1_INS_INVALID=32, /* 飞控无INS解算定位 | */
VKFLY_SYS_ERROR1_OUT_FENCE=64, /* 超出电子围栏范围 | */
VKFLY_SYS_ERROR1_ENUM_END=65, /* | */
} VKFLY_SYS_ERROR1;
```
- VKFLY_SYS_ERROR2
用于 SYS_STATUS 消息中对应的字节. 详细参考 VKFLY.xml
```c
typedef enum VKFLY_SYS_ERROR2
{
VKFLY_SYS_ERROR2_PREARM_CHECK_IMU=1, /* 起飞前检查, imu数据超范围| */
VKFLY_SYS_ERROR2_PREARM_CHECK_TILT=2, /* 起飞前检查, 倾斜姿态过大| */
VKFLY_SYS_ERROR2_PREARM_CHECK_VELOCITY=4, /* 起飞前检查, 速度超范围| */
VKFLY_SYS_ERROR2_PREARM_RC_BAD=8, /* 起飞前检查, 遥控器数据未就绪| */
VKFLY_SYS_ERROR2_ENUM_END=9, /* | */
} VKFLY_SYS_ERROR2;
```
- VKFLY_SYS_ERROR3
用于 SYS_STATUS 消息中对应的字节. 详细参考 VKFLY.xml
```c
typedef enum VKFLY_SYS_ERROR3
{
VKFLY_SYS_ERROR3_MAG0_DISTURB=1, /* mag1 磁干扰 | */
VKFLY_SYS_ERROR3_MAG1_DISTURB=2, /* mag2 磁干扰 | */
VKFLY_SYS_ERROR3_IMU0_ERROR=4, /* imu1 数据异常 | */
VKFLY_SYS_ERROR3_IMU1_ERROR=8, /* imu2 数据异常 | */
VKFLY_SYS_ERROR3_BARO0_ERROR=16, /* 气压计数据异常 | */
VKFLY_SYS_ERROR3_GPS0_ERROR=32, /* 普通gps1数据异常 | */
VKFLY_SYS_ERROR3_GPS1_ERROR=64, /* 普通gps2数据异常 | */
VKFLY_SYS_ERROR3_RTK_ERROR=128, /* RTK板卡数据异常 | */
VKFLY_SYS_ERROR3_ENUM_END=129, /* | */
} VKFLY_SYS_ERROR3;
```
- VKFLY_SYS_ERROR4
用于 SYS_STATUS 消息中对应的字节. 详细参考 VKFLY.xml (待定义)
- VKFLY_CUSTOM_MODE
用于 HEARTBEAT 消息中对应的字节. 详细参考 VKFLY.xml
```c
typedef enum VKFLY_CUSTOM_MODE
{
VKFLY_CUSTOM_MODE_ATTITUDE=3, /* Attitude mode 姿态模式 | */
VKFLY_CUSTOM_MODE_POSHOLD=4, /* Poshold mode 定点模式| */
VKFLY_CUSTOM_MODE_TAKEOFF=10, /* Auto takeoff. 自动起飞| */
VKFLY_CUSTOM_MODE_LOITER=11, /* Auto loiter. 自动悬停| */
VKFLY_CUSTOM_MODE_RTL=12, /* Auto return. 自动返航| */
VKFLY_CUSTOM_MODE_CRUISE=15, /* Auto cruise. 自动巡航| */
VKFLY_CUSTOM_MODE_GUIDE=18, /* Guide to point. 指点飞行| */
VKFLY_CUSTOM_MODE_LAND=19, /* Land. 降落| */
VKFLY_CUSTOM_MODE_FSLAND=20, /* Force land. 迫降| */
VKFLY_CUSTOM_MODE_FOLLOW=21, /* Follow. 跟随| */
VKFLY_CUSTOM_MODE_WP_ORBIT=23, /* WP_Orbit 航点环绕| */
VKFLY_CUSTOM_MODE_DYN_TAKEOFF=24, /* Dyn_Takeoff 动平台起飞| */
VKFLY_CUSTOM_MODE_DYN_LAND=25, /* Dyn_Land 动平台降落| */
VKFLY_CUSTOM_MODE_OBAVOID=26, /* Obavoid 自主避障| */
VKFLY_CUSTOM_MODE_OFFBOARD=27, /* Offboard command control. OFFBORAD 控制| */
VKFLY_CUSTOM_MODE_ENUM_END=28, /* | */
} VKFLY_CUSTOM_MODE;
```
- VKFLY_VKINS_NAV_STATUS
vkins 导航状态字 bitmap
```c
typedef enum VKFLY_VKINS_NAV_STATUS
{
VKFLY_VKINS_NAV_INSGPS=1, /* ins解算bit位, 0-无ins解算 1-有ins解算| */
VKFLY_VKINS_NAV_ALT_GPS=2, /* gps高度解算bit位, 0-gps不参与高度解算, 1-gps参与高度解算 | */
VKFLY_VKINS_NAV_HEADING_RTK=4, /* 航向解算标志, 0-磁航向 1-双天线测向 | */
VKFLY_VKINS_NAV_RTK=16, /* RTK标志位, 0-无RTK高精度定位, 1-有RTK高精度定位 | */
VKFLY_VKINS_NAV_STATUS_ENUM_END=17, /* | */
} VKFLY_VKINS_NAV_STATUS;
```
- VKFLY_YAW_CTRL_MODE
航向控制模式
```c
typedef enum VKFLY_YAW_CTRL_MODE
{
VKFLY_YAW_KEEP_CURRENT=0, /* 保持航向不改变 | */
VKFLY_YAW_TO_NEXT_WP=1, /* 航向指向下个航点或盘旋中心点 | */
VKFLY_YAW_TO_TRACE_COURSE=2, /* 航向指向水平运动前方 | */
VKFLY_YAW_TO_SETVAL=3, /* 航向指向给定的航向角度 | */
VKFLY_YAW_TO_HOME=4, /* 航向指向 HOME 点 | */
VKFLY_YAW_TO_INTEREST=5, /* 航向指向兴趣点 | */
VKFLY_YAW_TO_OTHER_MAV_SYS=6, /* 航向指向其它 mav system, 比如另一个无人机或车 | */
VKFLY_YAW_CTRL_MODE_ENUM_END=7, /* | */
} VKFLY_YAW_CTRL_MODE;
```
- VKFLY_PHOTO_CTRL_MODE
自动拍照模式
```c
typedef enum VKFLY_PHOTO_CTRL_MODE
{
VKFLY_AUTO_PHO_KEEP_CURRENT=0, /* 保持之前的自动拍照状态 | */
VKFLY_AUTO_PHO_STOP=1, /* 停止自动拍照 | */
VKFLY_AUTO_PHO_AUTO_BY_TIME=2, /* 定时自动拍照 | */
VKFLY_AUTO_PHO_BY_DIST_XY=3, /* 水平定距离自动拍照 | */
VKFLY_AUTO_PHO_BY_DIST_Z=4, /* 垂直定距离自动拍照 | */
VKFLY_AUTO_PHO_BY_DIST_XYZ=5, /* 三维定距离自动拍照 | */
VKFLY_PHOTO_CTRL_MODE_ENUM_END=6, /* | */
} VKFLY_PHOTO_CTRL_MODE;
```
- VKFLY_DIGICAM_WP_ACT
相机航点触发动作
```c
typedef enum VKFLY_DIGICAM_WP_ACT
{
VKFLY_DIGICAM_WP_ACT_NONE=0, /* 无动作 | */
VKFLY_DIGICAM_WP_ACT_PHO=1, /* 触发一次拍照 | */
VKFLY_DIGICAM_WP_ACT_VEDIO_ON=2, /* 触发录像开 | */
VKFLY_DIGICAM_WP_ACT_VEDIO_OFF=3, /* 触发录像关 | */
VKFLY_DIGICAM_WP_ACT_ENUM_END=4, /* | */
} VKFLY_DIGICAM_WP_ACT;
```
- VKFLY_GIMBAL_WP_ACT
云台航点触发动作
```c
typedef enum VKFLY_GIMBAL_WP_ACT
{
VKFLY_GIMBAL_WP_ACT_NONE=0, /* 无动作 | */
VKFLY_GIMBAL_WP_ACT_SET_ANG=1, /* 设置云台角度 | */
VKFLY_GIMBAL_WP_ACT_SET_PITCH_YAW_FOLLOW=2, /* 设置云台俯仰角度+航向跟随机头 | */
VKFLY_GIMBAL_WP_ACT_ENUM_END=3, /* | */
} VKFLY_GIMBAL_WP_ACT;
```
- VKFLY_THROW_CHAN_TYPE
抛投通道 bitmap
```c
typedef enum VKFLY_THROW_CHAN_TYPE
{
VKFLY_THROW_CHAN_1=1, /* throwing channel1 | */
VKFLY_THROW_CHAN_2=2, /* throwing channel2 | */
VKFLY_THROW_CHAN_3=4, /* throwing channel3 | */
VKFLY_THROW_CHAN_4=8, /* throwing channel4 | */
VKFLY_THROW_CHAN_5=16, /* throwing channel5 | */
VKFLY_THROW_CHAN_6=32, /* throwing channel6 | */
VKFLY_THROW_CHAN_7=64, /* throwing channel7 | */
VKFLY_THROW_CHAN_8=128, /* throwing channel8 | */
VKFLY_THROW_CHAN_9=256, /* throwing channel9 | */
VKFLY_THROW_CHAN_10=512, /* throwing channel10 | */
VKFLY_THROW_CHAN_11=1024, /* throwing channel11 | */
VKFLY_THROW_CHAN_12=2048, /* throwing channel12 | */
VKFLY_THROW_CHAN_13=4096, /* throwing channel12 | */
VKFLY_THROW_CHAN_14=8192, /* throwing channel12 | */
VKFLY_THROW_CHAN_15=16384, /* throwing channel12 | */
VKFLY_THROW_CHAN_16=32768, /* throwing channel12 | */
VKFLY_THROW_CHAN_ALL=65535, /* throwing channel12 | */
VKFLY_THROW_CHAN_TYPE_ENUM_END=65536, /* | */
} VKFLY_THROW_CHAN_TYPE;
```
### 自定义 command
对标准 common 库的 MAV_CMD 类型做几个补充, 用于定义自定义航点.
- VKFLY_CMD_NAV_WP
拍照航点.
| 参数 | 说明 |
| ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| param1 | 该参数按 byte[4] 进行使用.
byte[0]~byte[1] s16, 悬停时间, 单位 s. 0 表示不进行悬停自动转弯.
byte[2]~byte[3] s16, 巡航速度, 单位 dm/s. 0 或负数表示使用默认巡航速度参数. |
| param2 | 该参数按 byte[4] 进行使用.
byte[0] u8, 达到该航点时是否单独触发一次相机动作. 参考 VKFLY_DIGICAM_WP_ACT
byte[1] u8, 为启动相机自动拍照控制模式. 参考 VKFLY_PHOTO_CTRL_MODE.
byte[2]~byte[3] u16, 为拍照模式间隔参数. 当拍照模式为定时时单位为s, 当拍照模式为定距拍照时单位为m. 范围 1~UINT16_MAX. |
| param3 | 该参数按 byte[4] 进行使用.
byte[0] u8, 吊舱云台控制动作. 参考 VKFLY_GIMBAL_WP_ACT
byte[1] s8, 给定俯仰角, 单位 deg, 下视负.
byte[2]~byte[3] s16, 给定吊舱相对航向角, 单位 deg, 右转为正. |
| param4 | 该参数按 byte[4] 进行使用.
byte[0] u8, 为航向模式参考 VKFLY_YAW_CTRL_MODE.
byte[1] u8, 预留.
byte[2]~byte[3] s16, 范围-180~180. 当航向模式为 VKFLY_YAW_TO_SETVAL 时表示给定的航向值, 单位deg. 当航向模式为指向
HOME 或 NEXT_WP 或 INTEREST 等给定点点时, 表示叠加的航向偏移. |
| param5 | 纬度 1e-7deg |
| param6 | 经度 1e-7deg |
| param7 | 高度 m |
- VKFLY_CMD_NAV_WP_THROW
抛投航点
| 参数 | 说明 |
| ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| param1 | 该参数按 byte[4] 进行使用.
byte[0]~byte[1] s16, 悬停时间, 单位 s. 0 表示不进行悬停自动转弯. 悬停到时间后将执行抛投信号触发.
byte[2]~byte[3] s16, 巡航速度, 单位 dm/s. 0 或负数表示使用默认巡航速度参数. |
| param2 | 该参数按 byte[4] 进行使用.
byte[0]~byte[1] s16, 抛投对地高度, 单位 dm. 0或者负数表示在航点当前高度抛投. 若有有效的对地高度信息如雷达测距仪等, 则自动在航点进行下降到设定的对地高度再执行抛投.
byte[2]~byte[3] u16, 抛投通道. 每 bit 代表一个抛投执行通道, bitmap 参考 VKFLY_THROW_CHAN_TYPE. |
| param3 | 预留 |
| param4 | 该参数作为 byte[4] 类型使用.
byte[0] u8, 为航向模式参考 VKFLY_YAW_CTRL_MODE.
byte[1]预留.
byte[2]~byte[3] s16, 范围-180~180. 当航向模式为 VKFLY_YAW_TO_SETVAL 时表示给定的航向值, 单位deg. 当航向模式为指向
HOME 或 NEXT_WP 或 INTEREST 等给定点点时, 表示叠加的航向偏移. |
| param5 | 纬度 1e-7deg |
| param6 | 经度 1e-7deg |
| param7 | 高度 m |
- VKFLY_CMD_NAV_WP_ORBIT_DO_PHOTO
环绕航点
| 参数 | 说明 |
| ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| param1 | 该参数按 byte[4] 进行使用.
byte[0]~byte[1] s16, 环绕半径, 单位 dm. 正数表示顺时针方向环绕, 负数表示逆时针方向环绕.
byte[2]~byte[3] s16, 巡航速度. 单位 dm/s. 0或负数表示使用默认的巡航速度设置参数. |
| param2 | 拍照控制. 该参数按 byte[4] 进行使用.
byte[0] u8, 达到该航点时是否单独触发一次相机动作. 参考 VKFLY_DIGICAM_WP_ACT.
byte[1] u8, 为启动相机自动拍照控制模式. 参考 VKFLY_PHOTO_CTRL_MODE.
byte[2]~byte[3] u16, 为拍照模式参数. 当拍照模式为定时时单位为s, 当拍照模式为定距拍照时单位为m. 范围 1~UINT16_MAX. |
| param3 | 该参数按 byte[4] 进行使用.
byte[0]~byte[1] u16, 为环绕圈数, 单位 0.1 圈.
byte[2]~byte[3] u16, 为环绕速度, 单位 dm/s. |
| param4 | 该参数作为 byte[4] 类型使用.
byte[0] u8, 为航向模式参考 VKFLY_YAW_CTRL_MODE.
byte[1]预留.
byte[2]~byte[3] s16, 范围-180~180. 当航向模式为 VKFLY_YAW_TO_SETVAL 时表示给定的航向值, 单位deg. 当航向模式为指向
HOME 或 NEXT_WP 或 INTEREST 等给定点点时, 表示叠加的航向偏移. |
| param5 | 纬度 1e-7deg |
| param6 | 经度 1e-7deg |
| param7 | 高度 m |
### 自定义消息
- MAVLINK_VKINS_STATUS
VKins 系统的状态数据自定义消息, 主要用于一些自定状态的传输和排故.
| 字段 | 说明 |
| --------------- | ----------------------------------------------------------------------------------------- |
| time_boot_ms | 系统本地时间戳ms |
| nav_status | 传感器状态标志, 参考 VKFLY.xml 中 VKFLY_VKINS_NAV_STATUS |
| err1 | 错误状态字1, 参考 VKFLY.xml 中 VKFLY_VKINS_ERR1_CODE |
| s_flag2 | |
| s_flag3 | |
| s_flag4 | |
| s_flag5 | |
| s_flag6 | |
| mag_calib_stage | 磁校准状态
0-未在校准
1-水平XY校准
2-竖直XZ校准
3-校准通过
4-校准失败 |
| raw_longitude | vkins解算使用的原始经度, 1e-7deg |
| raw_latitude | vkins解算使用的原始纬度, 1e-7deg |
| baro_alt | vkins解算使用的原始气压高m |
| raw_gps_alt | vkins解算使用的原始海拔高度m |
- MAVLINK_VKFMU_STATUS
待定中
## 飞控参数说明
### 飞控参数表
飞控参数名作为确认飞控参数用途的唯一识别码, 不可随意修改. 在新增参数时应注意不要与已有参数重名, 保持向前兼容性.
| 参数名 | 参数 | 类型 | 说明 |
| --------------- | ------------------------ | ------ | ---------------------------------------------------------------------------------------------- |
| MAV_SYS_ID | 系统ID | UINT8 | 范围1~255, 作为MAVLINK通信使用的 SYSTEM ID |
| MAV_COMP_ID | 组件ID | UINT8 | 范围1~255, 作为MAVLINK通信使用的COMPONENT ID |
| MLOG_MODE | 数据记录模式 | UINT32 | 范围0~3
0-不记录
1-解锁到上锁
2-上电到落锁 3-上电到下电 |
| LOOP_MISSION | 航线循环开关 | UINT8 | 范围0~1
0-不循环
1-循环(暂未启用) |
| BOOT_MODE | 系统启动模式 | UINT8 | 范围0~1, 0-正常启动, 1-U盘模式(用于导入导出数据文件) |
| HW_SN_NUM | 硬件SN号 | UINT32 | 范围0~UINT32_MAX |
| AIRFRAME | 飞机布局类型 | UINT16 | 范围0~UINT16_MAX, 区分不同的飞机布局类型, 参考 enum AP_TYPE |
| GCS_DISCONT_DT | 地面站失联时间 | UINT16 | 范围0~UINT16_MAX, 单位s. 持续未收到地面站心跳的时间, 0-表示不检测地面站失联 |
| RCFAIL_LOT_T | RC失控悬停时间 | UINT16 | 范围0~UINT16_MAX, 单位s. 遥控器失控后悬停等待时间 |
| VOLT1_LOW_VAL | 一级电压低阈值 | FLOAT | 范围0~1000, 单位V |
| VOLT2_LOW_VAL | 二级电压低阈值 | FLOAT | 范围0~1000, 单位V |
| VCAP1_LOW_VAL | 一级电量低阈值 | UINT8 | 范围0~100, 单位1% |
| VCAP2_LOW_VAL | 二级电量低阈值 | UINT8 | 范围0~100, 单位1% |
| VOLT_PROT_CH | 电压保护通道 | UINT16 | 范围0~10, 触发电压保护的通道, 默认0飞控供电 |
| OBAVOID_DIST | 障碍悬停距离 | FLOAT | 范围2~8, 单位m |
| OBAVOID_ACT | 避障动作 | UINT8 | 范围0~2,0-不开启 1-悬停 2-爬高 |
| GCS_DISC_CRUISE | 航线中是否启用地面站失联 | UINT8 | 范围0~1,0-不启用 1-启用 |
| FS_CONF_A | 失控保护设置 | UINT32 | 参考enum FS_ACTION.
bit0~3:1级低电压保护
bit4~7:2级低电压保护
bit8~11:动力故障保护 |
| CIR_RAD_DFLT | 默认环绕/盘旋半径 | FLOAT | 范围1~10000m |
| TOF_ALT_M | 默认起飞高度 | FLOAT | 范围1~5000, 单位m |
| RTL_ALT_M | 默认返航高度 | FLOAT | 范围0~5000, 单位m |
| MC_XY_CRUISE | 默认旋翼巡航速度 | FLOAT | 范围2~25, 单位m/s |
| COM_P1_AF | 载荷P1串口复用 | UINT16 | 范围0~UINT16_MAX |
| ALT_LIM_UP1 | 1级高度限制 | UINT16 | 范围10~10000, 单位m |
| ALT_LIM_UP2 | 2级高度限制 | UINT16 | 范围0~10000, 单位m |
| MAX_HOR_DIST | 最远水平距离 | UINT32 | 范围0~UINT32_MAX, 单位m |
| PREC_LAND_ERR | 精准降落误差范围 | FLOAT | 范围0.05~1.0, 单位m |
| VEFOL_FR | 车辆跟随相对右向位置 | FLOAT | 范围-1000~1000,单位m |
| VEFOL_FF | 车辆跟随相对前向位置 | FLOAT | 范围-1000~1000,单位m |
| VEFOL_FU | 车辆跟随相对上向位置 | FLOAT | 范围-1000~1000,单位m |
| VEFOL_FYD | 车辆跟随相对航向夹角 | FLOAT | 范围-180~180,单位deg |
| VEFOL_BASE_YD | 基站航向安装偏角 | FLOAT | 范围-180~180, 单位deg |
| VEFOL_BASE_YD | 基站航向安装偏角 | FLOAT | 范围-180~180, 单位deg |
| PHO_SIG_TYPE | 拍照信号类型 | UINT8 | 范围0~2
0-低电平
1-高电平
2-PWM |
| PHO_PWM_OFF | 拍照PWM信号待命值 | UINT16 | 范围0~10000, 单位us |
| PHO_PWM_ON | 拍照PWM信号触发值 | UINT16 | 范围0~10000, 单位us |
| PHO_SIG_TIME | 拍照触发信号持续时间 | UINT16 | 范围0~20000, 单位ms |
| FOLLOW_DIST | 默认跟随距离 | FLOAT | 范围2~1000,单位m |
| MAN_VELH_MAX | 手动模式最大水平速度 | FLOAT | 范围2~20,单位m/s |
| MAN_VELU_MAX | 手动模式最大爬升速度 | FLOAT | 范围1~10,单位m/s |
| MAN_VELD_MAX | 手动模式最大下降速度 | FLOAT | 范围1~10,单位m/s |
| AUTO_VELU_MAX | 自动模式最大爬升速度 | FLOAT | 范围0.5~8, 单位m/s |
| AUTO_VELD_MAX | 自动模式最大下降速度 | FLOAT | 范围0.2~5,单位m/s |
| AUTO_VELV_LND | 自动模式降落接地速度 | FLAOT | 范围0.2~0.6, 单位m/s |
| TILT_ANG_MAX | 最大倾斜角度 | FLOAT | 范围10~45,单位deg |
| YAW_SPD_MAX | 最大航向角速度 | FLAOT | 范围10~120,单位deg/s |
| MC_RP_ANG_KP | 旋翼横滚俯仰角度比例系数 | UINT16 | 范围200~800 |
| MC_YAW_ANG_KP | 旋翼航向角度比例系数 | UINT16 | 范围200~800 |
| MC_RSPD_KP | 旋翼横滚角速度比例系数 | UINT16 | 范围30~200 |
| MC_RSPD_KI | 旋翼横滚角速度积分系数 | UINT16 | 范围0~20 |
| MC_RSPD_KD | 旋翼横滚角速度微分系数 | UINT16 | 范围0~20 |
| MC_PSPD_KP | 旋翼俯仰角速度比例系数 | UINT16 | 范围30~200 |
| MC_PSPD_KI | 旋翼俯仰角速度积分系数 | UINT16 | 范围0~20 |
| MC_PSPD_KD | 旋翼俯仰角速度微分系数 | UINT16 | 范围0~20 |
| MC_YSPD_KP | 旋翼航向角速度比例系数 | UINT16 | 范围50~400 |
| MC_YSPD_KI | 旋翼航向角速度积分系数 | UINT16 | 范围0~20 |
| MC_YSPD_KD | 旋翼航向角速度微分系数 | UINT16 | 范围0~20 |
| MC_PXY_KP | 旋翼水平位置比例系数 | UINT16 | 范围20~150 |
| MC_VXY_KP | 旋翼水平速度比例系数 | UINT16 | 范围80~200 |
| MC_VXY_KI | 旋翼水平速度积分系数 | UINT16 | 范围0~20 |
| MC_VXY_KD | 旋翼水平速度微分系数 | UINT16 | 范围0~20 |
| MC_PZ_KP | 旋翼高度位置比例系数 | UINT16 | 范围20~150 |
| MC_VZ_KP | 旋翼垂直速度比例系数 | UINT16 | 范围300~500 |
| MC_AZ_KP | 旋翼垂直加速度比例系数 | UINT16 | 范围5~20 |
| MC_AZ_KI | 旋翼垂直加速度积分系数 | UINT16 | 范围5~20 |
| MC_JERKXY_MAX | 旋翼水平最大加加速度 | FLOAT | 范围8~20,单位m/s |
| MC_HOV_THR | 旋翼悬停油门 | FLOAT | 范围0.3~0.7(暂未使用) |
| MC_MIN_THR | 旋翼怠速油门 | FLOAT | 范围0.05~0.25 |
| RC0C1_MIN | 遥控器通道1最小 | UINT16 | 范围500~2500 |
| RC0C1_MID | 遥控器通道1中位 | UINT16 | 范围500~2500 |
| RC0C1_MAX | 遥控器通道1最大 | UINT16 | 范围500~2500 |
| RC0C2_MIN | 遥控器通道2最小 | UINT16 | 范围500~2500 |
| RC0C2_MID | 遥控器通道2中位 | UINT16 | 范围500~2500 |
| RC0C2_MAX | 遥控器通道2最大 | UINT16 | 范围500~2500 |
| RC0C3_MIN | 遥控器通道3最小 | UINT16 | 范围500~2500 |
| RC0C3_MID | 遥控器通道3中位 | UINT16 | 范围500~2500 |
| RC0C3_MAX | 遥控器通道3最大 | UINT16 | 范围500~2500 |
| RC0C4_MIN | 遥控器通道4最小 | UINT16 | 范围500~2500 |
| RC0C4_MID | 遥控器通道4中位 | UINT16 | 范围500~2500 |
| RC0C4_MAX | 遥控器通道4最大 | UINT16 | 范围500~2500 |
| RC0C5_MIN | 遥控器通道5最小 | UINT16 | 范围500~2500 |
| RC0C5_MID | 遥控器通道5中位 | UINT16 | 范围500~2500 |
| RC0C5_MAX | 遥控器通道5最大 | UINT16 | 范围500~2500 |
| RC0C6_MIN | 遥控器通道6最小 | UINT16 | 范围500~2500 |
| RC0C6_MID | 遥控器通道6中位 | UINT16 | 范围500~2500 |
| RC0C6_MAX | 遥控器通道6最大 | UINT16 | 范围500~2500 |
| RC0C7_MIN | 遥控器通道7最小 | UINT16 | 范围500~2500 |
| RC0C7_MID | 遥控器通道7中位 | UINT16 | 范围500~2500 |
| RC0C7_MAX | 遥控器通道7最大 | UINT16 | 范围500~2500 |
| RC0C8_MIN | 遥控器通道8最小 | UINT16 | 范围500~2500 |
| RC0C8_MID | 遥控器通道8中位 | UINT16 | 范围500~2500 |
| RC0C8_MAX | 遥控器通道8最大 | UINT16 | 范围500~2500 |
| RC0C9_MIN | 遥控器通道9最小 | UINT16 | 范围500~2500 |
| RC0C9_MID | 遥控器通道9中位 | UINT16 | 范围500~2500 |
| RC0C9_MAX | 遥控器通道9最大 | UINT16 | 范围500~2500 |
| RC0C10_MIN | 遥控器通道10最小 | UINT16 | 范围500~2500 |
| RC0C10_MID | 遥控器通道10中位 | UINT16 | 范围500~2500 |
| RC0C10_MAX | 遥控器通道10最大 | UINT16 | 范围500~2500 |
| RC0C11_MIN | 遥控器通道11最小 | UINT16 | 范围500~2500 |
| RC0C11_MID | 遥控器通道11中位 | UINT16 | 范围500~2500 |
| RC0C11_MAX | 遥控器通道11最大 | UINT16 | 范围500~2500 |
| RC0C12_MIN | 遥控器通道12最小 | UINT16 | 范围500~2500 |
| RC0C12_MID | 遥控器通道12中位 | UINT16 | 范围500~2500 |
| RC0C12_MAX | 遥控器通道12最大 | UINT16 | 范围500~2500 |
| RC0C13_MIN | 遥控器通道13最小 | UINT16 | 范围500~2500 |
| RC0C13_MID | 遥控器通道13中位 | UINT16 | 范围500~2500 |
| RC0C13_MAX | 遥控器通道13最大 | UINT16 | 范围500~2500 |
| RC0C14_MIN | 遥控器通道14最小 | UINT16 | 范围500~2500 |
| RC0C14_MID | 遥控器通道14中位 | UINT16 | 范围500~2500 |
| RC0C14_MAX | 遥控器通道14最大 | UINT16 | 范围500~2500 |
| RC0C15_MIN | 遥控器通道15最小 | UINT16 | 范围500~2500 |
| RC0C15_MID | 遥控器通道15中位 | UINT16 | 范围500~2500 |
| RC0C16_MAX | 遥控器通道15最大 | UINT16 | 范围500~2500 |
| RC0C16_MIN | 遥控器通道16最小 | UINT16 | 范围500~2500 |
| RC0C16_MID | 遥控器通道16中位 | UINT16 | 范围500~2500 |
| RC0C16_MAX | 遥控器通道16最大 | UINT16 | 范围500~2500 |
| GYRO0_XOFF | GYRO0 X轴零位偏移 | FLOAT | 范围-10~10, 单位 rad/s |
| GYRO0_YOFF | GYRO0 Y轴零位偏移 | FLOAT | 范围-10~10, 单位 rad/s |
| GYRO0_ZOFF | GYRO0 Z轴零位偏移 | FLOAT | 范围-10~10, 单位 rad/s |
| ACC0_XOFF | ACC0 X轴零位偏移 | FLOAT | 范围-10~10, 单位m/s^2 |
| ACC0_YOFF | ACC0 Y轴零位偏移 | FLOAT | 范围-10~10, 单位m/s^2 |
| ACC0_ZOFF | ACC0 Z轴零位偏移 | FLOAT | 范围-10~10, 单位m/s^2 |
| ACC0_XXSCALE | ACC0 校准XX系数 | FLOAT | 范围-10~10 |
| ACC0_YYSCALE | ACC0 校准YY系数 | FLOAT | 范围-10~10 |
| ACC0_ZZSCALE | ACC0 校准ZZ系数 | FLOAT | 范围-10~10 |
| MAG0_XOFF | MAG0 X轴零位偏移 | FLOAT | 范围-10~10,单位Gauss |
| MAG0_YOFF | MAG0 Y轴零位偏移 | FLOAT | 范围-10~10,单位Gauss |
| MAG0_ZOFF | MAG0 Z轴零位偏移 | FLOAT | 范围-10~10,单位Gauss |
| MAG0_XXSCALE | MAG0 校准XX系数 | FLOAT | 范围-10~10 |
| MAG0_YYSCALE | MAG0 校准YY系数 | FLOAT | 范围-10~10 |
| MAG0_ZZSCALE | MAG0 校准ZZ系数 | FLOAT | 范围-10~10 |
| GYRO1_XOFF | GYRO1 X轴零位偏移 | FLOAT | 范围-10~10, 单位 rad/s |
| GYRO1_YOFF | GYRO1 Y轴零位偏移 | FLOAT | 范围-10~10, 单位 rad/s |
| GYRO1_ZOFF | GYRO1 Z轴零位偏移 | FLOAT | 范围-10~10, 单位 rad/s |
| ACC1_XOFF | ACC1 X轴零位偏移 | FLOAT | 范围-10~10, 单位m/s^2 |
| ACC1_YOFF | ACC1 Y轴零位偏移 | FLOAT | 范围-10~10, 单位m/s^2 |
| ACC1_ZOFF | ACC1 Z轴零位偏移 | FLOAT | 范围-10~10, 单位m/s^2 |
| ACC1_XXSCALE | ACC1 校准XX系数 | FLOAT | 范围-10~10 |
| ACC1_YYSCALE | ACC1 校准YY系数 | FLOAT | 范围-10~10 |
| ACC1_ZZSCALE | ACC1 校准ZZ系数 | FLOAT | 范围-10~10 |
| MAG1_XOFF | MAG1 X轴零位偏移 | FLOAT | 范围-10~10,单位Gauss |
| MAG1_YOFF | MAG1 Y轴零位偏移 | FLOAT | 范围-10~10,单位Gauss |
| MAG1_ZOFF | MAG1 Z轴零位偏移 | FLOAT | 范围-10~10,单位Gauss |
| MAG1_XXSCALE | MAG1 校准XX系数 | FLOAT | 范围-10~10 |
| MAG1_YYSCALE | MAG1 校准YY系数 | FLOAT | 范围-10~10 |
| MAG1_ZZSCALE | MAG1 校准ZZ系数 | FLOAT | 范围-10~10 |
| IMU_ATT_ROFF0 | IMU水平ROLL偏移 | FLOAT | 范围-180~180, 单位 deg
飞控通过水平校准自动捕获 |
| IMU_ATT_POFF0 | IMU水平PITCH偏移 | FLOAT | 范围-180~180, 单位 deg
飞控通过水平校准自动捕获 |
| IMU_ATT_YOFF0 | IMU水平YAW偏移 | FLOAT | 范围-180~180, 单位 deg
可用于设置飞控IMU安装朝向
安装方向前0, 右90, 左-90, 后180 |
| ASPD_OFFSET0 | 空速计零偏 | FLOAT | 范围 -5000~5000, 单位Pa |
| IMU_GFLT_TYPE | 角速度滤波类型 | UINT8 | 范围0~4, 0-VH 1-H 2-M 3-L 4-VL |
| IMU_AFLT_TYPE | 加速度滤波类型 | UINT8 | 范围0~4, 0-VH 1-H 2-M 3-L 4-VL |
| IMU_PXOFF | 飞控IMU X安装距离偏差 | INT32 | 范围-1000~1000, 单位cm
IMU安装离飞机中心X轴向偏差距离 |
| IMU_PYOFF | 飞控IMU Y安装距离偏差 | INT32 | 范围-1000~1000, 单位cm
IMU安装离飞机中心Y轴向偏差距离 |
| IMU_PZOFF | 飞控IMU Z安装距离偏差 | INT32 | 范围-1000~1000, 单位cm
IMU安装离飞机中心Z轴向偏差距离 |
| GPS_ANT_XOFF | 普通GPS天线X安装距离偏差 | INT32 | 范围-1000~1000, 单位cm
天线安装离飞机中心X轴向偏差距离 |
| GPS_ANT_YOFF | 普通GPS天线Y安装距离偏差 | INT32 | 范围-1000~1000, 单位cm
天线安装离飞机中心Y轴向偏差距离 |
| GPS_ANT_ZOFF | 普通GPS天线Z安装距离偏差 | INT32 | 范围-1000~1000, 单位cm
天线安装离飞机中心Z轴向偏差距离 |
| RTK_ANT_XOFF | RTK定位天线X安装距离偏差 | INT32 | 范围-1000~1000, 单位cm
天线安装离飞机中心X轴向偏差距离 |
| RTK_ANT_YOFF | RTK定位天线Y安装距离偏差 | INT32 | 范围-1000~1000, 单位cm
天线安装离飞机中心Y轴向偏差距离 |
| RTK_ANT_ZOFF | RTK定位天线Z安装距离偏差 | INT32 | 范围-1000~1000, 单位cm
天线安装离飞机中心Z轴向偏差距离 |
| RTK_H_COMP | RTK测向先天安装角度偏差 | FLOAT | 范围-180~180, 单位deg
常用前后安装 0deg, 左右安装 90deg |
| BAT_V_DIV0 | 电压通道0校准比例系数 | FLOAT | 范围0~1000, 通道0为飞控供电电压 |
| BAT_V_DIV1 | 电压通道1校准比例系数 | FLOAT | 范围0~1000, 通道0为飞控供电电压 |
| BAT_V_DIV2 | 电压通道2校准比例系数 | FLOAT | 范围0~1000, 通道0为飞控供电电压 |
| BAT_V_DIV3 | 电压通道3校准比例系数 | FLOAT | 范围0~1000, 通道0为飞控供电电压 |
| BAT_V_OFF0 | 电压通道0校准偏移 | FLOAT | 范围-100~100, 单位V |
| BAT_V_OFF1 | 电压通道1校准偏移 | FLOAT | 范围-100~100, 单位V |
| BAT_V_OFF2 | 电压通道2校准偏移 | FLOAT | 范围-100~100, 单位V |
| BAT_V_OFF3 | 电压通道3校准偏移 | FLOAT | 范围-100~100, 单位V |