MissionPlanner架构梳理之(六)-航点管理

概述

Mission Planner 中的航点管理功能允许操作员通过定义车辆将遵循的特定点和命令来创建自动驾驶车辆的飞行路径。该系统支持各种航点类型、参数配置和任务操作。

航点数据结构

Mission Planner 中的航点采用结构化格式表示,包含位置、高度和命令参数。该系统支持 GPS 坐标和命令操作。

每个航点都包含几个关键组成部分:

  • Lat/Lng/Alt:地理位置和海拔
  • 命令:要执行的操作类型(例如,基本航点、起飞、降落)
  • 参数:四个附加参数,其含义因命令类型而异
  • 框架:指定如何解释高度(相对于家,绝对或地形跟随)

用户界面组件

航点管理主要通过任务规划器中的飞行规划器视图进行处理,其中包括几个关键界面元素:

成分描述
地图显示用于可视化和添加航点的交互式地图
命令网格所有航点和参数的表格视图
命令选项用于配置特定航点属性的字段
动作按钮用于读取/写入车辆航点的控制
海拔设置新航点的默认高度配置

添加航点

可以通过多种方法将航点添加到任务中:

添加航点的主要方法是直接点击 FlightPlanner 视图中的地图。系统将使用默认高度设置在点击的位置添加新的航点。

代码实现

向地图添加航点的关键方法是:

AddWPToMap(double lat, double lng, int alt)

此方法:

  1. 在命令网格中创建新行
  2. 设置命令类型(例如,WAYPOINT、SPLINE_WAYPOINT)
  3. 应用默认高度和参数
  4. 更新地图可视化

航点命令类型

Mission Planner 支持多种可分配给航点的命令类型。其中最常见的包括:

命令描述参数
航点基本航点P1:延迟(秒)
起飞起飞指令Z:目标高度
土地在指定地点着陆X/Y:着陆坐标,Z:高度
返还至返回发射没有任何
游荡时间闲逛P1:时间(秒)
徘徊转身徘徊转弯P1:圈数,P3:半径
样条线航点曲线路径航点P1:延迟(秒)
跳转跳转到航点P1:目标WP数量,P2:重复次数
改变速度改变速度P1:速度类型,P2:速度值

mavcmd.xml 文件中定义了完整的命令列表及其参数。

编辑航点

航点可以通过命令网格界面进行编辑。包括:

  • 修改坐标
  • 海拔变化
  • 调整命令参数
  • 使用向上/向下按钮重新排序航点
  • 使用“删除”选项删除航点

命令网格中所做的更改会立即反映在地图可视化中。

上传和下载航点

最重要的功能之一是同步任务规划器和车辆之间的航点。

将航点写入车辆

将航点上传到车辆的过程由该BUT_write_Click方法处理,该方法:

  1. 验证航点列表
  2. 将航点转换为 MAVLink 格式
  3. 使用 MAVLink 协议将它们发送到车辆
  4. 提供上传成功/失败的反馈

从车辆读取航点

从车辆下载航点由该方法处理BUT_read_Click,该方法:

  1. 向车辆请求当前任务
  2. 通过 MAVLink 接收航点数据
  3. 使用收到的航点填充命令网格
  4. 更新地图可视化

文件操作

任务规划器允许将航点任务保存和加载为各种文件格式:

格式扩大描述
任务规划器.航点原生格式
APMWP文件。TXTArduPilot 任务格式
QGroundControl。使命QGC 格式
谷歌地球.kml用于可视化的 KML 格式

可以从这些格式加载航点并将其转换为任务规划器的内部表示。

可视化功能

任务规划器为航点提供了多种可视化功能:

  1. 航点标记:每个航点都显示在地图上,并带有一个标记
  2. 路线:连接航点的线显示计划路径
  3. 命令特定图标:不同命令类型使用不同图标
  4. 高度指示器:高度变化的视觉提示
  5. 原点位置:原点位置的特殊标记

航点可视化由 GMap.NET 库和 Mission Planner 中的自定义覆盖处理程序处理。

海拔模式

Mission Planner 支持三种航点高度模式:

高度模式使用框架类型参数设置,并影响车辆如何解释高度命令。

特殊命令类型

除了基本航点之外,Mission Planner 还支持专门的命令:

条件命令

这些根据特定条件执行:

  • DO_JUMP:跳转到另一个航点
  • DO_SET_SERVO:设置伺服输出
  • DO_REPEAT_SERVO:重复伺服运动

相机命令

这些控制机载摄像头:

  • DO_DIGICAM_CONTROL:触发相机
  • DO_SET_CAM_TRIGG_DIST:设置基于距离的触发
  • IMAGE_START_CAPTURE:开始图像捕获

徘徊命令

这些定义了持有模式:

  • LOITER_TIME:徘徊特定时间
  • LOITER_TURNS:徘徊一定圈数
  • LOITER_UNLIMITED:徘徊直到下一个命令

与任务规划器组件集成

航点管理与其他任务规划系统集成:

航点系统与以下对象交互:

  • 用于车辆遥测的MAVLink通信系统
  • 地形数据用于海拔信息
  • 自动任务生成的网格/调查规划
  • 飞行数据可视化,实现实时监控

解决航点问题

航点管理的常见问题包括:

  1. 上传失败:通常是由于通信问题或无效的航点参数
  2. 不正确的高度行为:通常由于使用错误的高度模式而导致
  3. 车辆未遵循路径:可能是由于导航参数问题
  4. 丢失航点:如果通信中断,则下载时可能会发生这种情况

标准故障排除方法是:

  1. 确认与车辆的通信稳定
  2. 检查航点参数是否有效
  3. 确保选择了正确的框架(高度模式)
  4. 尝试在书写之前阅读航点以确认通信

概括

Mission Planner 的航点管理系统为创建、编辑和管理自主任务提供了全面的解决方案。它支持多种命令类型、可视化功能和同步方法,以确保自动驾驶汽车的可靠运行。

该系统与其他任务规划器组件集成,提供完整的任务规划和执行环境,从初步规划到任务进度的实时监控。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值