概述
Mission Planner 中的航点管理功能允许操作员通过定义车辆将遵循的特定点和命令来创建自动驾驶车辆的飞行路径。该系统支持各种航点类型、参数配置和任务操作。
航点数据结构
Mission Planner 中的航点采用结构化格式表示,包含位置、高度和命令参数。该系统支持 GPS 坐标和命令操作。
每个航点都包含几个关键组成部分:
- Lat/Lng/Alt:地理位置和海拔
- 命令:要执行的操作类型(例如,基本航点、起飞、降落)
- 参数:四个附加参数,其含义因命令类型而异
- 框架:指定如何解释高度(相对于家,绝对或地形跟随)
用户界面组件
航点管理主要通过任务规划器中的飞行规划器视图进行处理,其中包括几个关键界面元素:
成分 | 描述 |
---|---|
地图显示 | 用于可视化和添加航点的交互式地图 |
命令网格 | 所有航点和参数的表格视图 |
命令选项 | 用于配置特定航点属性的字段 |
动作按钮 | 用于读取/写入车辆航点的控制 |
海拔设置 | 新航点的默认高度配置 |
添加航点
可以通过多种方法将航点添加到任务中:
添加航点的主要方法是直接点击 FlightPlanner 视图中的地图。系统将使用默认高度设置在点击的位置添加新的航点。
代码实现
向地图添加航点的关键方法是:
AddWPToMap(double lat, double lng, int alt)
此方法:
- 在命令网格中创建新行
- 设置命令类型(例如,WAYPOINT、SPLINE_WAYPOINT)
- 应用默认高度和参数
- 更新地图可视化
航点命令类型
Mission Planner 支持多种可分配给航点的命令类型。其中最常见的包括:
命令 | 描述 | 参数 |
---|---|---|
航点 | 基本航点 | P1:延迟(秒) |
起飞 | 起飞指令 | Z:目标高度 |
土地 | 在指定地点着陆 | X/Y:着陆坐标,Z:高度 |
返还至 | 返回发射 | 没有任何 |
游荡时间 | 闲逛 | P1:时间(秒) |
徘徊转身 | 徘徊转弯 | P1:圈数,P3:半径 |
样条线航点 | 曲线路径航点 | P1:延迟(秒) |
跳转 | 跳转到航点 | P1:目标WP数量,P2:重复次数 |
改变速度 | 改变速度 | P1:速度类型,P2:速度值 |
mavcmd.xml 文件中定义了完整的命令列表及其参数。
编辑航点
航点可以通过命令网格界面进行编辑。包括:
- 修改坐标
- 海拔变化
- 调整命令参数
- 使用向上/向下按钮重新排序航点
- 使用“删除”选项删除航点
命令网格中所做的更改会立即反映在地图可视化中。
上传和下载航点
最重要的功能之一是同步任务规划器和车辆之间的航点。
将航点写入车辆
将航点上传到车辆的过程由该BUT_write_Click
方法处理,该方法:
- 验证航点列表
- 将航点转换为 MAVLink 格式
- 使用 MAVLink 协议将它们发送到车辆
- 提供上传成功/失败的反馈
从车辆读取航点
从车辆下载航点由该方法处理BUT_read_Click
,该方法:
- 向车辆请求当前任务
- 通过 MAVLink 接收航点数据
- 使用收到的航点填充命令网格
- 更新地图可视化
文件操作
任务规划器允许将航点任务保存和加载为各种文件格式:
格式 | 扩大 | 描述 |
---|---|---|
任务规划器 | .航点 | 原生格式 |
APMWP文件 | 。TXT | ArduPilot 任务格式 |
QGroundControl | 。使命 | QGC 格式 |
谷歌地球 | .kml | 用于可视化的 KML 格式 |
可以从这些格式加载航点并将其转换为任务规划器的内部表示。
可视化功能
任务规划器为航点提供了多种可视化功能:
- 航点标记:每个航点都显示在地图上,并带有一个标记
- 路线:连接航点的线显示计划路径
- 命令特定图标:不同命令类型使用不同图标
- 高度指示器:高度变化的视觉提示
- 原点位置:原点位置的特殊标记
航点可视化由 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通信系统
- 地形数据用于海拔信息
- 自动任务生成的网格/调查规划
- 飞行数据可视化,实现实时监控
解决航点问题
航点管理的常见问题包括:
- 上传失败:通常是由于通信问题或无效的航点参数
- 不正确的高度行为:通常由于使用错误的高度模式而导致
- 车辆未遵循路径:可能是由于导航参数问题
- 丢失航点:如果通信中断,则下载时可能会发生这种情况
标准故障排除方法是:
- 确认与车辆的通信稳定
- 检查航点参数是否有效
- 确保选择了正确的框架(高度模式)
- 尝试在书写之前阅读航点以确认通信
概括
Mission Planner 的航点管理系统为创建、编辑和管理自主任务提供了全面的解决方案。它支持多种命令类型、可视化功能和同步方法,以确保自动驾驶汽车的可靠运行。
该系统与其他任务规划器组件集成,提供完整的任务规划和执行环境,从初步规划到任务进度的实时监控。