一、简介
“TEB”全称Time Elastic Band(时间弹性带)Local Planner,该方法针对全局路径规划器生成的初始轨迹进行后续修正(modification),从而优化机器人的运动轨迹,属于局部路径规划。
关于eletic band(橡皮筋)的定义:连接起始、目标点,并让这个路径可以变形,变形的条件就是将所有约束当做橡皮筋的外力。
二、说明
局部路径规划之Teb
起始点、目标带你状态由全局规划,中间插入N个控制节点来改变橡皮筋的状态控制点,在点与点之间定义运动时间Time。
这个路径可以变形,变形的条件就是将所有约束当做橡皮筋的外力
注意每个目标函数只与几个连续状态有关,而非整条band。
当我们设置目标时,小车的目的地是靠近障碍物的,但是如果我们小于我们的障碍物距离最小距离,我们就需要往外拉,这就是我们的类橡皮筋过程
约束目标函数:
优化问题:
Teb优化问题实质上是一个优化问题,大多数目标是基于局部的,只与一小部分参数相关,因为他们只依赖于几个连续的机器人
TEB生成的局部轨迹由一系列带有时间信息的离散位姿组成,g2o算法优化的目标就是这些离散的位姿,同时设计一条时间最短,距离最短,远离障碍物等目标,同时限制速度与加速度使轨迹满足机器人运动学。
整体的规划为:
全局路径————加入约束————g2o优化————速度指令
参数:
# Trajectory
teb_autosize: True #优化期间允许改变轨迹时域长度
dt_ref: 0.3 #局部路径规划解析度(0.01~1.0) 默认为0.3 (两个相邻位姿之间的时间_时间分辨率)
(可以设置0.45,其他保持默认)
dt_hysteresis: 0.1 #允许浮动范围
global_plan_overwrite_orientation: True #覆盖全局路 径中局部路点朝向
max_global_plan_lookahead_dist: 3.0 #全局优化子集最大长度