EGO-Planner: An ESDF-free Gradient-based Local Planner for Quadrotors
https://github.com/ZJU-FAST-Lab/ego-planner
- 欧氏符号距离场(Euclidean Signed Distance Field,ESDF)常用于估计梯度大小和方向
- 轨迹规划只在ESDF很小的子空间进行,更新整个ESDF不必要
- 本文提出ESDF-free的基于梯度的规划框架
- 罚函数的碰撞项基于对比有碰撞的轨迹和无碰撞的引导路径,只有轨迹碰撞新的障碍物时规划器才提取必要的障碍物信息
- 若轨迹是动力学不可行的,则延长轨迹的时间

构建ESDF的方式有两种:
- 增量式全局更新(incremental global updating)
- 批量式局部计算(batch local calculation)
二者都没有考虑轨迹本身,不能单独直地接服务于轨迹优化
本文提出了ESDF-free基于梯度的局部规划框架(ESDF-free Gradient-based lOcal planning framework,EGO),包含
- 基于梯度的样条优化器
- 对比轨迹和无碰撞的引导路径
- 在有碰撞的轨迹上施加力并生成估计的梯度以使轨迹远离障碍物
- 轨迹会在附近的障碍物之间反弹几次,并稳定在安全区域内
- 只计算必要的梯度,避免计算和局部轨迹无关的梯度
- 随后的改进过程
- 若轨迹不符合动力学约束,则进入改进过程
- 给轨迹分配更长的时间,产生新的B样条
- 新轨迹拟合之前的轨迹,在轴向和径向(axial and radial directions)上使用不同的惩罚,以增强鲁棒性
主要贡献:
- 提出新的基于梯度的四旋翼无人机局的部规划方法,其直接从障碍物评估和投影梯度信息
- 提出轻量级的轨迹改进方法,使用各向异性(anisotropic)误差惩罚生成更平滑的轨迹
- 把上述方法集成到四旋翼无人机系统中并开源了软件
主要分为两部分:
- 基于梯度的运动规划
- 把局部轨迹生成建模为无约束的非线性优化问题
- 常依赖ESDF
- 欧式符号距离场ESDF
- 常用于从带噪声的传感器参数中构造物体
- 常包含冗余信息
优化变量为控制点Q,每个控制点独立拥有自己的环境信息
- 不考虑碰撞,给出满足初末状态约束的B样条曲线Φ
- 一次迭代中检测到的每一个碰撞,生成一条无碰撞轨迹Γ
- 碰撞段的每个控制点Qi在障碍物表面分配一个锚点pij和相应的排斥力方向vij
- 省略了下表的每个{p,v}对只对应一个特定的控制点,其生成过程如算法1和图3所示
- 从Qi到第j个障碍物的距离定义为
dij=(Qi−pij)⋅vij

- 为了避免轨迹离开障碍物前重复生成{p,v}对,本文认为只有对所有 j满足 dij>0时Qi原本所在的障碍物是才是新发现的
- 基于ESDF的规划器容易陷入如下图的局部最优而无法避碰,故需要无碰撞的初始轨迹

轨迹建模为均匀B样条曲线Φ,其次数为pb,Nc个控制点为{Q1,Q2,…,QNc},节点向量为{t1,t2,…,tM},且满足M=Nc+pb(B样条固有的性质)。
由于是均匀B样条,故节点区间Δt=tm+1−tm相等,则速度、加速度和加加速度可表示为
Vi=ΔtQi+1−Qi,Ai=ΔtVi+1−Vi,Ji=ΔtAi+1−Ai优化问题表示为
QminJ=λsJs+λcJc+λdJd其中等是右侧三项依次表示平滑性惩罚、碰撞惩罚和可行性惩罚
只取轨迹的几何信息,在没有时间积分的情况下惩罚加速度和加加速度的平方
Js=i=1∑Nc−1∥Ai∥22+i=1∑Nc−2∥Ji∥22定义安全距离sf并惩罚dij<sf的控制点,本文设计了二次连续可微的罚函数jc并在dij减小时减小其斜率
jc(i,j)cij=⎩⎨⎧0cij33sfcij2−3sf2cij+sf3(cij≤0)(0<cij≤sf)(cij>sf)=sf−dij,其中jc(i,j)源于Qi上的{p,v}j对
- 每个Qi的成本独立评估,故发现更多障碍物的控制点有更高的轨迹形变权重
- 第i个控制点的成本增加值为jc(Qi)=∑j=1Npjc(i,j),其中Np为Qi的{p,v}j对数量
总成本为
Jc=i=1∑Ncjc(Qi)总成本关于Qi的导数为
∂Qi∂Jc=i=1∑Ncj=1∑Npvij⎩⎨⎧0−3cij2−6sfcij+3sf2(cij≤0)(0<cij≤sf)(cij>sf)限制轨迹的高阶导数Φr(k)(t)<Φr,max(k),其中r∈{x,y,z}表示每个维度
罚函数的表达式为
Jd=i=1∑NcwvF(Vi)+i=1∑Nc−1waF(Ai)+i=1∑Nc−2wjF(Ji)其中各项函数
F(C)=r=x,y,z∑f(cr)f(cr)=⎩⎨⎧a1cr2+b1cr+c1(−λcm−cr)30(cr−λcm)3a2cr2+b2cr+c2(cr≤−cj)(−cj<cr<−λcm)(−λcm≤cr≤λcm)(λcm<cr<cj)(cr≥cj)其中cr∈C∈{Vi,Ai,Ji}
上述定义的问题有如下特点:
- 目标函数根据新发现的障碍物自适应变化
- 目标函数近似二次函数
采用梯度信息近似逆Hessian矩阵的拟牛顿法求解
L-BFGS算法平衡了重启损失(loss of restart)和逆Hessian矩阵的估计精度,该算法求解无约束优化问题
x∈Rnminf(x)每步更新为
xk+1=xk−αkHk∇fkHk+1=VkTHkVk+ρkskskT其中ρk=(ykTsk)−1,Vk=I−ρkykskT,sk=xk+1−xk,yk=∇fk+1−∇fk
此处不精确计算Hk,更新过程满足双循环更新方法,具有线性的时间和空间复杂度。Barzilai-Borwein步的权重作为初始逆Hessian矩阵Hk0
Barzilai-Borwein (BB) method也是梯度下降方法的一种,他主要是通过近似牛顿方法来实现更快的收敛速度,同时避免计算二阶导数带来的计算复杂度。
Hk0=yk−1Tyk−1sk−1Tyk−1I or sk−1Tyk−1sk−1Tsk−1I本节主要解决轨迹不可行的问题
首先计算超出极限值的比例
re=max{∣Vi,r/vm∣,∣Aj,r/am∣,3∣Jk,r/jm∣,1}之后重新计算新均匀B样条轨迹Φf的节点区间
Δt′=reΔt新轨迹Φf要保持和原轨迹Φs相同的形状和控制点数量,由光滑性、可行性和曲线拟合组成的罚函数为
QminJ′=λsJs+λdJd+λfJf由于拟合后的曲线已经无碰撞,故设计:
- 低惩罚权重的轴向位移以放松平滑性调节限制
- 高惩罚权重的径向位移以避免碰撞
为了实现这一点,本文采用下图所示的椭球度量

则轴向位移da和径向位移dr为
da=(Φf−Φs)⋅Φ˙sΦ˙s,dr=(Φf−Φs)×Φ˙sΦ˙s则拟合惩罚为
Jf=∫01[a2da(αT′)2+b2dr(αT′)2]dα后面没细看了,整个框架流程如下图算法2
