teb 参数 代码 粗讲
调参解决的问题
1 单舵轮叉车振荡抖动问题
2 仅靠teb让车能后退走直线
3 比较智能的车体运动
重要参数说明
网上也有不少讲解teb算法中参数的应用,我根据自己的经验在这里说明一下,希望可以帮助有需要的人。所有参数在teb_config.h中都有英文说明,建议用teb时先看一遍,有时间的话还是自己看看在代码中是怎样发挥作用的。
dt_ref
dt_hysteresis
这两个参数要配合使用比较好,dt_ref 就是teb进行局部优化时相邻点之间的时间,这个参数越大,点就越稀疏,反之稠密。dt_hysteresis是在优化过程中dt_ref可变化的上下范围。这两个参数配合可以很好的调整局部路径点的数量。
allow_init_with_backwards_motion 车体开始运动时允许后退吗,这个看需求使用。
global_plan_viapoint_sep 全局路径的步长,大了路径点的间隔大,小了点的间隔小。
global_plan_prune_distance 走过的路径多远之前的就不要了。
min_turning_radius这个参数很重要,对于卡尔曼车体来说,改变最小半径对路线和运行流畅度有很大的影响。不一定要按照这的实际来,可适当调大,不能比实际小。
wheelbase 舵轮到导向轮中心的距离 根据车体实际情况
max_vel_x 最大的x方向速度
max_vel_x_backwards 最大的后退速度
max_vel_theta 最大的角速度
acc_lim_x x方向加速度
acc_lim_theta 角速度加速度
cmd_angle_instead_rotvel 阿克曼车体时才有用的参数,是否用舵轮朝向角代替角速度
weight_kinematics_forward_drive 使得机器人向前走的权重,参数越大,车越不容易后退,但不能完全禁止。
weight_shortest_path 最短路径的权重
车体抖动问题的原因及解决
在刚开始用teb控制叉车的时候发现,车会在某些转弯的时候颤动
原因:是因为路线轨迹的点太密集,以及设置的转弯半径太小
解决方法:通过参数调整稀疏轨迹点,并且把转弯半径合理调大