TEB调参记录

发布于 2021-07-17  900 次阅读


AI 摘要

这是一篇比较简短的调参经验分享。可以从中了解到作者成功解决了电源问题,也成功地将自己和学长的时间分工合理化,将调参任务交给了自己。 在具体的调参过程中,作者着重介绍了几个参数的调整,包括max_vel_theta、max_vel_x、max_vel_x_backwards以及weight_kinematics_forward_drive、weight_obstacle、weight_kinematics_turning_radius。这些参数在TEB算法中都比较重要,通过调整它们可以得到更好的优化效果。 比较有价值的是,作者对于每个参数调整的原因以及效果都进行了简要说明,让读者可以更好地理解每一步操作。最后,作者还提到了自己的一些心得,如将倒车惩罚设为0可以使倒车速度变快,少用最小转弯半径可以避免差速过慢等。 综合而言,这篇文章可以为需要进行TEB算法调参的读者提供一些宝贵的经验和思路,也能让读者意识到参数调整过程中的重要性。

先说之前想要写周报的校内赛,由于那几天调的太狠了,导致没有什么时间,后面用了自己焊的电源模块解决了电源问题,然后最后拿到了大一的唯一一个一等奖。


下面来说teb调参,这个是我们将要应用于某个比赛的算法,而学长还要忙另外一个比赛,所以调参的任务就交给了我。这里就简单说一下我认为调了有效果的各个参数吧。

max_vel_theta: 1.0
max_vel_x: 0.7
max_vel_x_backwards: 0.25

第一个最大角速度,个人调的时候没有发现有很大区别,第二个最大x方向速度,效果很明显,作为竞速比赛,这个参数有很大的使用价值。第三个最大后退速度,实际上后退的情况比较少,而且加速度也不够在短时间里面达到很大的速度,同时倒车撞障碍物的情况也是时有发生,所以这个速度我设置的比较小。

min_turning_radius: 0.9
wheelbase: 0.31

第一个最小转弯半径,把这个值稍微调大一点,可以防止车采用过分的差速转向策略,而导致速度非常缓慢。第二个前后轮距,个人感觉调这个没有什么明显差别,按照实际的填应该就好。

xy_goal_tolerance: 0.15
yaw_goal_tolerance: 0.34

和目标距离的偏差值,这个可以较为精确,不会带来什么奇特的现象,而第二个和目标方向的偏差值,我这里设置了大约20°左右的允许误差,防止小车在到达目的地后多次进行倒车前进的方向修正(问就是保护电机)

min_obstacle_dist: 0.4
inflation_dist: 0.6
dynamic_obstacle_inflation_dist: 0.6
costmap_obstacles_behind_robot_dist: 1.2

第一个最小许可障碍物距离,这个距离的影响在于是否会在距离张安武很近的时候才考虑转向,如果转向过晚,很可能就导致卡死的情况,而后面两个障碍物碰撞距离,我个人认为好像影响不是特别大。最后一个车尾考虑障碍物距离,这个我设了较大的数值才能保证小车不会倒车撞墙,相应的,更加容易出现卡死无法自救的情况。

weight_dynamic_obstacle: 10.0
weight_dynamic_obstacle_inflation: 0.2
weight_inflation: 0.2
weight_kinematics_forward_drive: 0.0
weight_kinematics_turning_radius: 2.5
weight_obstacle: 250.0
weight_shortest_path: 0.0

weight_kinematics_forward_drive倒车惩罚设为0,倒车速度比差速快多了,weight_obstacle障碍物对车的影响,调大点可以提前转向,避免卡死,weight_kinematics_turning_radius,少用最小转弯半径,避免差速过慢

「雪霁融雾月,冰消凝夜雨」
最后更新于 2023-06-01