1. 问题背景与核心挑战
在无人机自主飞行系统中,精确的位置估计是实现稳定悬停和路径跟踪的基础。最近在调试搭载PX4飞控和Fast-LIO激光SLAM系统的无人机时,发现一个棘手问题:当手动移动无人机后放回原位时,飞控的本地位置估计(local_position_ned)会出现明显偏移,导致无人机无法准确回到原始悬停点。
经过系统排查,发现问题根源在于飞控系统未能正确接收外部视觉定位数据。具体表现为:
- Fast-LIO输出的高精度里程计数据仅用于机载计算机的路径规划
- PX4飞控仍依赖自身惯性导航系统(IMU)进行位置估计
- 两个系统间缺乏有效的数据通道,形成"信息孤岛"
2. 系统架构深度解析
2.1 现有通信拓扑分析
当前系统的节点通信关系如下图所示(简化版):
code复制[Fast-LIO] --> /Odometry --> [Ego-Planner]
|
v
[PX4Ctrl] --> 控制指令 --> [MAVROS]
关键缺陷点:
- 数据流断裂:Fast-LIO的里程计数据未被传递至飞控
- 坐标系不统一:激光SLAM坐标系与飞控ENU坐标系间缺乏转换
- 时间不同步:各节点时间戳未严格对齐
2.2 飞控EKF工作原理
PX4的扩展卡尔曼滤波(EKF2)支持多源数据融合,其输入源优先级如下:
- GPS定位(室外场景)
- 视觉里程计(VISION_POSITION_ESTIMATE)
- 光流传感器
- 纯IMU积分
要使飞控采用外部视觉定位,必须满足:
- 持续发送VISION_POSITION_ESTIMATE消息
- 设置EKF2_AID_MASK=24(启用视觉位置融合)
- 保证数据频率≥30Hz
3. 解决方案设计与实现
3.1 系统架构改造
新增转换节点后的数据流:
code复制[Fast-LIO] --> /Odometry --> [Converter Node]
| |
v v
解锁全文
加入我们的会员,获取最新、最热、最精彩的开发者技术内容