← 阿尔戈 ARGO
技术详解 02 · OBSTACLE & PATH

自主避障
路径规划

无人设备进入未知、动态、且常常没有 GPS 的现场,必须边飞边建图、边走边重规划。 这背后是两件硬事:用视觉与惯性数据实时估计自身位姿并重建环境(SLAM),以及在不断变化的地图上持续算出一条安全又最优的路径(规划 + 控制)。下面把数学讲清楚。

01 · 问题

为什么"边走边重算"很难

预设航线在真实现场会失效:GPS 在室内/峡谷/电磁干扰下不可靠,环境是先验未知的,障碍还会动态出现。 于是设备必须同时回答两个互相纠缠的问题——"我在哪、周围长什么样"(定位与建图),和"下一步往哪走最安全、最省"(规划与控制)。 两者都要在机载算力、毫秒级延迟内闭环完成。

02 · 前沿技术

我们站在哪些工作之上

视觉-惯性 SLAM(VIO)

VINS-Mono / ORB-SLAM3:用单目/双目 + IMU 紧耦合估计位姿与稀疏地图,是机载实时定位的主力。

arXiv:1708.03852 ↗
因子图与增量优化

GTSAM / iSAM2:把 SLAM 表达成因子图,增量式贝叶斯树只重算受影响的部分,做到实时。

iSAM2 (IJRR'12) ↗
稠密重建:3DGS / NeRF

3D 高斯泼溅让在线稠密建图与可微渲染走向实时,为避障提供更完整的几何。

3D Gaussian Splatting ↗
采样规划 + 模型预测控制

RRT* 给出渐近最优路径,MPC 在滚动时域里把路径变成满足动力学与避障约束的控制量。

RRT* (arXiv:1105.1186) ↗
03 · 数学建模

SLAM = 因子图上的最大后验估计

设待估状态为所有时刻的位姿与地图路标 $X=\{x_{0:T},\,\ell_{1:M}\}$,观测集合为 $Z=\{z_k\}$(视觉重投影、IMU 预积分等)。SLAM 的本质是求最大后验(MAP):

$$X^\star=\arg\max_{X}\;p(X\mid Z)\;\propto\;p(X)\prod_{k}p(z_k\mid X)$$
每个 $p(z_k\mid X)$ 是因子图里的一条「因子」,把相关的位姿/路标连起来。

假设每个观测服从高斯噪声 $z_k=h_k(X)+\eta_k,\ \eta_k\sim\mathcal N(0,\Sigma_k)$,对后验取负对数,MAP 就化成一个非线性加权最小二乘问题:

$$X^\star=\arg\min_{X}\;\sum_{k}\big\lVert h_k(X)-z_k\big\rVert^2_{\Sigma_k^{-1}},\qquad \lVert e\rVert^2_{\Sigma^{-1}}\triangleq e^\top\Sigma^{-1}e$$
$h_k$ 是观测模型,$\lVert\cdot\rVert_{\Sigma^{-1}}$ 是马氏距离(按噪声协方差加权)。
04 · 推导

从 MAP 到可实时求解的正规方程

DERIVATION · MAP → 加权最小二乘 → 高斯-牛顿
单条高斯似然 $p(z_k\mid X)=\dfrac{1}{\sqrt{(2\pi)^d\lvert\Sigma_k\rvert}}\exp\!\big(-\tfrac12\,\lVert h_k(X)-z_k\rVert^2_{\Sigma_k^{-1}}\big)$。
取负对数后联合(先验设为均匀),常数项可丢,得 $-\log p(X\mid Z)=\tfrac12\sum_k\lVert h_k(X)-z_k\rVert^2_{\Sigma_k^{-1}}+\text{const}$。最大后验 ⇔ 最小化加权残差平方和。
$h_k$ 非线性,在当前估计 $X$ 处一阶展开:$h_k(X\boxplus\delta)\approx h_k(X)+J_k\,\delta$,记残差 $r_k=h_k(X)-z_k$,雅可比 $J_k=\left.\frac{\partial h_k}{\partial\delta}\right|_X$。
代回得局部二次型 $\min_\delta\sum_k\lVert r_k+J_k\delta\rVert^2_{\Sigma_k^{-1}}$,对 $\delta$ 求导置零,得到正规方程
$$\underbrace{\Big(\sum_k J_k^\top\Sigma_k^{-1}J_k\Big)}_{H\ (\text{信息矩阵})}\,\delta\;=\;-\underbrace{\sum_k J_k^\top\Sigma_k^{-1}r_k}_{b}\;\;\Longrightarrow\;\; X\leftarrow X\boxplus\delta$$
迭代到收敛即高斯-牛顿;加阻尼项 $H+\lambda\,\mathrm{diag}(H)$ 即 Levenberg–Marquardt。$H$ 在 SLAM 里高度稀疏,iSAM2 只增量更新受影响的子树,从而实时。
IMU 预积分运动预测 · 高频 视觉观测特征 / 重投影 因子图优化arg min Σ‖r‖² 位姿 + 地图x₀:ₜ , ℓ₁:ₘ 反馈:用最新位姿与地图修正下一步预测(闭环)
图 1 · 视觉-惯性 SLAM 的估计闭环
05 · 规划 + 控制

在动态地图上算路:RRT* + MPC

有了实时地图,先用采样式规划求一条全局参考路径。RRT* 在自由空间 $\mathcal X_{\text{free}}$ 里随机扩展并不断「重连」,使代价 $c(\cdot)$ 随采样数趋于最优:

$$\sigma^\star=\arg\min_{\sigma\in\Sigma_{\text{free}}}\;\int_0^1\!\big\lVert\sigma'(s)\big\rVert\,ds,\qquad \text{重连判据}:\ c(x_{\text{near}})+\lVert x_{\text{new}}-x_{\text{near}}\rVert\lt c(x_{\text{new}})$$
$\Sigma_{\text{free}}$:不穿越障碍的路径集合;RRT* 渐近最优。

再把参考路径交给模型预测控制(MPC):在每个控制周期,于有限时域 $N$ 内滚动求解一个带动力学与避障约束的最优控制问题,只执行第一步,下一周期用最新状态重解——这正是"环境变了就当场绕开"的数学来源

$$\min_{u_{0:N-1}}\;\sum_{t=0}^{N-1}\Big(\lVert x_t-x_t^{\text{ref}}\rVert_Q^2+\lVert u_t\rVert_R^2\Big)+\lVert x_N-x_N^{\text{ref}}\rVert_P^2$$ $$\text{s.t.}\quad x_{t+1}=f(x_t,u_t),\quad d\big(x_t,\mathcal O_t\big)\ge d_{\text{safe}},\quad u_t\in\mathcal U$$
$\mathcal O_t$:当前感知到的障碍集合(含动态障碍);$d(\cdot)\ge d_{\text{safe}}$ 即安全裕度约束。滚动时域 + 实时重解 = 动态避障。
起点 目标 原计划路径 新障碍 MPC 当场重规划的安全路径
图 2 · 滚动时域里的动态避障重规划
06 · 阿尔戈怎么做

把这套理论压进机载、压进可靠性

阿尔戈的导航栈把上面这套跑在设备自己身上:紧耦合 VIO + 因子图增量优化做实时定位建图,RRT* 出全局参考、MPC 做局部滚动避障。 和通用方案不同,我们按「可靠性优先」取舍——给避障约束留足安全裕度 $d_{\text{safe}}$、对位姿估计的协方差做在线监控、定位置信度跌破阈值就触发降级(减速悬停 / 安全返航),而不是赌它一定对。

诚实说明:阿尔戈仍处研发阶段。本页讲的是我们采用与在攻坚的技术路线与数学方法,非已量产指标;所列论文为该领域的公开工作,非本公司成果。

想深入聊聊导航方案?

无论是无人设备,还是把这套"边走边重算"的思路用到你的场景,欢迎联系。

联系我们