ArduPilot和地面站之间通过Mavlink消息协议进行通讯,关于Mavlink消息的格式可以参考:
https://blog.csdn.net/qq_35379989/article/details/104823589
https://blog.csdn.net/luckpl/article/details/52608868
常用的Mavlink消息包括:
一、心跳与状态
HEARTBEAT(#0)
心跳包信息,定频率(通常1Hz)发送,以通知地面站飞行器的活动
SYS_STATUS(#1)
系统状态包,向地面站发送关键的系统信息包,包括电池电量、通讯链路状态、传感器健康状态、负载状态等,通常为1-5Hz
二、位置、姿态与运动
GLOBAL_POSITION_INT(#33)
向地面站发送飞行器融合后的位置信息,包括经度、维度、海拔和相对高度(相对于出发点)等,频率通常为5-50Hz
ATTITUDE(#30)
向地面站发送飞行器姿态信息,主要为飞行器的滚转角、俯仰角、偏航角和三轴的加速度信息,通常频率为10-50Hz
三、命令与控制
COMMAND_LONG(#76)
常用的指令信息,由地面站发送到飞行器,包含多种飞行指令,包括
MAV_CMD_NAV_TAKEOFF(22) - 起飞
MAV_CMD_NAV_LAND(21) - 降落
MAV_CMD_NAV_RETURN_TO_LAUNCH(20) - 返航到出发点
MAV_CMD_DO_SET_MODE(176) - 切换模式
MAV_CMD_DO_REPOSITION(192) - 飞行到某个位置MAV_CMD_COMPONENT_ARM_DISARM(400) - 解锁/锁定电机
这些消息带确认机制,飞行器会回复COMMAND_ACK信息表示确认
MANUAL_CONTROL(#69)
用于模拟摇杆控制,由地面站向飞行器发送
四、参数设定
PARAM_REQUEST_READ(#20)
读取一个参数数值
PARAM_REQUEST_LIST(#21)
请求获取参数列表
PARAM_VALUE(#22)
回应PARAM_REQUEST消息,回复参数数值
PARAM_SET(#23)
设定一个参数数值