起始点:start, 目标点:goal,由全局规划器指定
N个控制点:插入N个控制点(机器人的姿态[x、y、theta]),以这一系列姿态点代表该条路径。
时间分辨率:每两个姿态点之间定义一个时间(等时间间隔)
目标函数(约束条件):每个目标函数只与橡皮筋中的某几个连续状态有关。而非整条band。
TEB算法就是在全局路径中以固定的时间间隔插入N个状态点,让路径变成一条可以形变的橡皮筋,然后再给它施加一个约束。每个约束可以看作橡皮筋的外力,给橡皮筋施加力以后,橡皮筋会形变,这种形变就是它内部的优化算法。通过这个优化变形,就会找到满足各种约束的最终可行路径。
约束条件/目标函数(常见的四种):
- 跟随路径+避障
拉回来+推出去 - 速度/加速度约束
两个状态点之间,直接用差分近似计算
- 运动学约束
若干弧段组成的平滑轨迹,(最小转弯半径) - 最快路径约束(区别于最短路径)
TEB优化的问题
TEB是一个多目标优化的问题,大多数目标都是局部的,故只与一小部分参数相关。因此它只依赖于几个连续的机器人状态。
优化算法使用的时开源框架g2o : nodes、edges.
g2o优化算法目标 即这些离散的位姿组成的轨迹能够达到时间最短、路径最短、远离障碍物等目标,同时限制速度/加速度,使轨迹满足机器人运动学。
TEB整个工作流程:
全局路径————>加入约束条件—————>g2o优化——————>速度指令
(等时间间隔插入N个状态点,把它变成橡皮筋)
(给橡皮筋施加外力)