APM学习(5):常用的Mavlink消息 ArduPilot和地面站之间通过Mavlink消息协议进行通讯关于Mavlink消息的格式可以参考https://blog.csdn.net/qq_35379989/article/details/104823589https://blog.csdn.net/luckpl/article/details/52608868https://mavlink.io/en/messages/common.html在ArduPilot项目中可以搜索所有消息和命令定义搜索关键字message id可以出现所有的消息定义搜索关键字nameMAV_CMD_可以出现所有的命令定义常用的Mavlink消息包括一、心跳与状态HEARTBEAT(#0)心跳包信息定频率通常1Hz发送以通知地面站飞行器的活动SYS_STATUS(#1)系统状态包向地面站发送关键的系统信息包包括电池电量、通讯链路状态、传感器健康状态、负载状态等通常为1-5Hz二、位置、姿态与运动GLOBAL_POSITION_INT(#33)向地面站发送飞行器融合后的位置信息包括经度、维度、海拔和相对高度相对于出发点等频率通常为5-50HzATTITUDE(#30)向地面站发送飞行器姿态信息主要为飞行器的滚转角、俯仰角、偏航角和三轴的加速度信息通常频率为10-50Hz三、命令与控制COMMAND_LONG(#76)COMMAND_INT(#75)常用的指令信息由地面站发送到飞行器包含多种飞行指令包括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)用于模拟摇杆控制由地面站向飞行器发送SET_POSITION_TARGET_LOCAL_NED#84地面站向飞行器发送用以设置飞行器的目标位置当在地面站进行调整高度操作时也是发送这个命令四、飞行任务规划MISSION_COUNT(#44)任务个数用以指派任务指定后面所接续的任务个数通常用于航点上传每一个航点对应一个任务MISSION_ITEM_INT(#73)任务项指定具体需要执行的任务项一个航点对应一个任务项跟在MISSION_COUNT消息之后发送五、参数设定PARAM_REQUEST_READ(#20)读取一个参数数值PARAM_REQUEST_LIST(#21)请求获取参数列表PARAM_VALUE(#22)回应PARAM_REQUEST消息回复参数数值PARAM_SET(#23)设定一个参数数值六、地形地图TERRAIN_REQUEST(#133)地形数据请求消息由无人机发送给地面站请求所在位置地形数据TERRAIN_DATA(#134)地形数据地面站发至无人机