# 微克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 |