EGO-Planner: An ESDF-Free Gradient-Based Local Planner for Quadrotors
本文是将高飞老师等人的这篇论文翻译了一遍,顺便跟着读一下,只是记录一下自己读的论文,无其他见解,原文链接如下:
https://ieeexplore.ieee.org/document/9309347
Ⅰ 前言
在无人机的路径规划方法中,基于梯度的方法能够平滑轨迹并利用梯度信息改善其间隙。传统的基于梯度的规划器依赖于预先构建的ESDF图来评估梯度的大小和方向,并使用数值优化来生成局部最优解。尽管优化程序具有快速的收敛性,但它们在事先构造所需的ESDF时却遭受了很大的困难。根据表1的统计,ESDF的计算占据了进行局部规划总处理时间的70 %左右。因此可以说构建ESDF已成为基于梯度的规划器的瓶颈,阻碍了该方法应用于资源受限的平台。
表1:来自参考文献【2】,由表可知ESDF的计算占据了进行局部规划总处理时间的70 %左右
通常,构建ESDF有两种方式。如第二节所述,方法可分为增量式全局更新方法和批量式局部计算方法。然而,两者都没有关注轨迹本身。因此,过多的计算花费在计算对规划没有贡献的ESDF值上。也就是说,目前基于ESDF的方法并不能单独、直接地服务于轨迹优化。如图1所示,对于无人机期望在局部避免碰撞的一般自主导航场景,轨迹只覆盖ESDF更新范围的有限空间。在实践中,一些手工制定的规则虽然可以确定一个较小的ESDF范围,但缺乏理论上的合理性,仍然会导致不必要的计算。
图1
ego-planner设计了一个无ESDF的基于梯度的局部规划框架EGO(EGO取自ESDF-free Gradient-based lOcal),并结合了仔细的工程考虑,使其具有轻量级和鲁棒性。该算法由基于梯度的样条优化器和后处理过程组成。首先,该方法优化了带有平滑性、碰撞性和动力学可行性项的轨迹。与传统方法查询预计算的ESDF不同,ego通过比较障碍物内的轨迹和一条引导的无碰撞路径来建模碰撞成本。然后将力投影到碰撞轨迹上,并生成估计的梯度,将轨迹从障碍物中包裹起来。在优化过程中,轨迹会在附近障碍物之间反弹几次,最终终止在安全区域内。用这种方法只在必要时计算梯度,避免在与局部轨迹无关的区域计算ESDF。如果得到的轨迹违反动力学限制,这通常是由于时间分配不合理造成的,则激活求精过程。在精化过程中,当超出限制时,轨迹时间被重新分配。随着时间分配的扩大,产生了一种新的B样条,在平衡可行性和拟合精度的同时,拟合了之前的动态不可行的B样条。为了提高鲁棒性,对拟合精度进行各向异性建模,对轴向和径向施加不同的惩罚。
ego是第一个在没有ESDF的情况下实现基于梯度的局部规划的方法。与现有最先进的工作相比,所提方法生成的安全轨迹具有相当的平滑性和激进性,但通过省略ESDF维护,计算时间降低了一个数量级以上。ego的贡献是:
(1)提出了一种新颖且鲁棒的基于梯度的四旋翼飞行器局部规划方法,该方法直接利用障碍物评估和投影梯度信息,而不是预先构建的ESDF。
(2)提出了一种轻量级但有效的轨迹修正算法,该算法通过建立带有各向异性误差惩罚的轨迹拟合问题来生成更平滑的轨迹。
Ⅱ 避撞力估计
在本文中,决策变量是B样条曲线的控制顶点Q。每个Q独立地拥有自己的环境信息。首先,给定一个满足终端约束的朴素B样条曲线Φ,且不考虑碰撞。然后开始优化过程,对于迭代中检测到的每个碰撞段,生成无碰撞路径 Г。之后,碰撞段的每个控制点Qi将在障碍物表面被分配一个锚点p_ij,并具有相应的斥力方向矢量v_ij,如图2(a)所示。i ∈ N+ 表示控制点的索引,j ∈ N 表示{p, v}对的索引,每一个{p