没有 GPS,也没预建地图:双目+IMU 如何让无人机自主导航?

无人机进了陌生建筑,卫星信号用不上,手里也没有地图,接下来怎么办?

对定位导航从业者来说,这不只是"换一个定位算法"的问题。位置要估计,障碍物要发现,路线要规划;相机突然看不清,控制端还得知道该继续、停下,还是返航。

最近,一个名叫 PX4 ROS 2 Drone Navigation 的开源项目在 ROS 社区引起讨论。它把这些环节接成了一套可以复现的导航仿真:让无人机在多层建筑场景里,依靠双目视觉和惯性信息边看、边定位、边找路。社区讨论

先说清楚:这是 Gazebo 中的仿真,不是已经落地的实机产品。 但如果你正在做 VIO、无人机导航或多传感器融合,它比单独看一条轨迹,更值得拆开研究。

作者公开演示画面:左边是无人机所处的环境,右边是感知和规划结果。不是实机拍摄。

01 它的看点,是把"能定位"接成"能导航"

项目在 2026 年 9 月 20 日发布的 v0.4.0 中,展示了无 GNSS、无磁力计、无预建地图、无三维激光雷达的导航配置。

这里的"无雷达"别理解成只有两颗摄像头:双目和 IMU 承担主要感知、定位任务,同时有辅助 ToF 测距传感器。 传感器配置仍在更新。

它也不是"全程没有地图"。准确地说,是出发前没有环境地图,飞行过程中逐步建立障碍物地图,再据此规划路线。

按作者发布记录,v0.4.0 的五次双目无 GNSS 仿真均完成任务、没有碰撞;到点确认时,真实位置距目标约 0.47~1.42 米。这是特定测试中的到点距离,不是整个系统的定位精度指标。 版本记录

对工程师来说,有趣的不是"相机替代 GPS"这句话,而是它把感知、估计、规划和飞控之间的问题公开了。

02 一对相机,做两件不同的事

把导航链路拆开看,其实很直观。

第一条链路回答:我在哪里?

双目图像结合 IMU,运行视觉惯性里程计,也就是 VIO。项目采用双目 MSCKF 思路,估计运动,再把外部里程计送给 PX4 的 EKF2,由飞控维护实际使用的状态估计。

仿真器的真实位姿留给评估,而不是直接喂给定位和控制。否则,视频看起来再稳,也说明不了估计器有没有用。定位设计说明

第二条链路回答:前面有什么?

双目匹配恢复深度,结合辅助测距,更新三维障碍物地图。然后,D* Lite 寻找路径,GPU 上的 MPPI 做局部运动规划与控制,最后交给 PX4 执行。系统架构

根据官方设计整理的原理示意,并非软件界面。

所以,VIO 跑得好只是起点。地图更新晚了、规划给得太激进、飞控没有接住状态,都会变成导航问题。

03 最值得借鉴的,是"看得见才敢飞"

激光雷达与前向双目最大的区别之一,是视野。

双目主要看前方。无人机向侧面移动、进入转角或者上下穿过竖井时,飞行方向不一定在相机视野里。项目因此把朝向和可观测范围纳入运动策略,并用辅助测距补充覆盖。视觉感知设计

这给实际项目一个很直接的提醒:

定位还正常,不代表前方障碍物也被可靠看到了。

同样,深度图没返回点,也不等于那儿没有墙。白墙、暗处和低纹理表面,都可能让视觉缺少有效观测。

速度也不该只由"电机能飞多快"决定。项目把探测范围、观测延迟和制动能力一起考虑:看得近、数据旧,就该减少冒进的空间。轨迹与控制设计

这比再记住一个算法缩写,更容易用到自己的系统里。

04 想动手,先在电脑上跑一趟

官方支持的路径是 Linux+Docker+NVIDIA 容器运行环境。ROS 2、Gazebo 和相关工具由项目容器提供,不用先在宿主机手动拼一整套依赖。

准备好环境后,在终端执行:

bash 复制代码
git clone https://github.com/formiat/px4-ros2-drone-nav.git
cd px4-ros2-drone-nav
./scripts/bootstrap.sh

脚本会准备开发环境、PX4 SITL、工作空间和场景资源,然后启动仿真。首次需要下载数 GB 数据并进行编译,别把"一条启动命令"理解成"几秒就能完成"。具体要求见安装说明。

先看清楚两边的画面:Gazebo 显示飞行环境,RViz 显示观测、障碍物记忆与规划路径。注意转弯时的朝向,和地图逐渐增长的过程。

需要结束仿真时,使用:

bash 复制代码
./scripts/stop_sim.sh

本文核对了官方文档与启动入口,未在本机完成整套仿真实测。

05 别只看视频,做这三组对比更有价值

本文整理的实验建议,均针对仿真。

对比一:视觉惯性与 GNSS。

分别运行默认任务和 sim_urban_point_to_point_gnss_gui.sh。画面可能差不多,重点看日志里的定位来源、异常和真实到点距离。它能帮你区分"飞到估计坐标"与"真的飞到目标"。

对比二:双目与激光雷达。

使用 sim_urban_point_to_point_lidar_gui.sh 对照默认视觉配置。观察地图覆盖、转弯策略、任务耗时和资源占用,不要只比谁的点云漂亮。

对比三:正常照明与光源故障。

当前主分支提供 sim_urban_light_failure_gui.sh 等故障场景。关注视觉观测变差后,系统怎样停止、判断光源不可靠并返航。一次只跑一个场景,避免争抢算力影响判断。官方场景清单

如果准备深入研究,每次保留代码版本、配置、任务结果和 log/runs/ 中的记录。复现同一个问题,比只留一段成功视频有用。项目的验收说明也明确区分了任务成功、真实到点和其他诊断数据。测试与评估说明

06 它适合学习和验证,不是直接上机的成品

目前它是仿真导向的研发项目,尚未验证实机运行;文档中的工作站资源数据,也不能直接当作机载计算机的性能承诺。资源测量说明

它适合拿来学习 VIO 与飞控怎样衔接、验证导航链路、设计故障对比实验。真要移植,还得重新处理传感器同步、标定、通信延迟、算力与失效保护。

真正值得带走的,不是"没有 GPS 也能飞"的结论,而是怎样把一个定位算法,接进能观察、能复现、能评估的导航系统。

配套资料,已整理到夸克网盘

想动手试,又担心 GitHub 下载慢?我把这篇对应的资料整理成了一个约 48 MB 的资源包:v0.4.0 发布版源码、本文实验对应的主分支快照、可本地克隆的 Git 备份、官方文档、城市场景资源,以及中文复现指南,原始许可与校验清单也一并保留。

点击转存资料,

建议先读目录里的《PX4导航资料包_先读我》,再选择对应版本运行

项目与演示入口

相关推荐
蓝悦无人机2 小时前
无人机系列之发展史:从战争工具到“智能空中机器人”的百年跃迁
机器人·无人机·无人机发展
小O的算法实验室4 小时前
IEEE TVT,Co-UPP:在移动群体感知中协同优化的无人机路径规划框架
无人机
workflower5 小时前
矿用机器人人工智能安全与治理体系
人工智能·安全·机器学习·机器人·云计算·无人机
沈阳昊天环宇无人机小编辑6 小时前
无人机测绘实训招生|真机实战!大疆M400实地作业全程教学
无人机
亥时科技8 小时前
电子围栏,不该只是“画个圈”
开源·无人机·ai巡检
sxgzzn15 小时前
光伏电站运维智能监测与能源管理系统的综合应用
无人机·开关柜局放在线监测·gis局放在线监测·矿用高压电缆绝缘故障检测装置·光伏运维管理系统
workflower16 小时前
汽车自动驾驶9 要素
人工智能·机器学习·重构·云计算·汽车·无人机
GlobalInfo1 天前
2026年全球无人机清洗系统市场深度分析:规模、竞争格局与AI自主作业演进趋势
大数据·人工智能·ai·无人机
zzlyx991 天前
无人机侦测反制系统
无人机