TEB算法

起始点:start, 目标点:goal,由全局规划器指定

N个控制点:插入N个控制点(机器人的姿态[x、y、theta]),以这一系列姿态点代表该条路径。

时间分辨率:每两个姿态点之间定义一个时间(等时间间隔)

目标函数(约束条件):每个目标函数只与橡皮筋中的某几个连续状态有关。而非整条band。

TEB算法就是在全局路径中以固定的时间间隔插入N个状态点,让路径变成一条可以形变的橡皮筋,然后再给它施加一个约束。每个约束可以看作橡皮筋的外力,给橡皮筋施加力以后,橡皮筋会形变,这种形变就是它内部的优化算法。通过这个优化变形,就会找到满足各种约束的最终可行路径。

约束条件/目标函数(常见的四种):

  1. 跟随路径+避障
    拉回来+推出去
  2. 速度/加速度约束
    两个状态点之间,直接用差分近似计算
          V_{min} \leqslant f_{v}(B) \leqslant V_{max}
          a_{min} \leqslant f_{a}(B) \leqslant a_{max}
  3. 运动学约束
    若干弧段组成的平滑轨迹,(最小转弯半径)
  4. 最快路径约束(区别于最短路径)

TEB优化的问题

TEB是一个多目标优化的问题,大多数目标都是局部的,故只与一小部分参数相关。因此它只依赖于几个连续的机器人状态。

优化算法使用的时开源框架g2o : nodes、edges.

g2o优化算法目标 即这些离散的位姿组成的轨迹能够达到时间最短、路径最短、远离障碍物等目标,同时限制速度/加速度,使轨迹满足机器人运动学。

TEB整个工作流程:

全局路径————>加入约束条件—————>g2o优化——————>速度指令
(等时间间隔插入N个状态点,把它变成橡皮筋)
                               (给橡皮筋施加外力)

听说现在自动驾驶很火,所以我也做了一个 | 雷锋网

TEB算法流程_陈_呵呵的博客-CSDN博客

Category: TEB算法 | 沉默杀手

TEB轨迹优化算法-代码解析与参数建议_zz123456zzss的博客-CSDN博客_teb算法

浅谈Time Elastic Band - 知乎

网上收集关于Teb Local Planner的调试使用 - 古月居

你可能感兴趣的:(算法,自动驾驶,机器学习)