打完智能车,调了很久teb,总结了一些经验,下面一些我觉得比较实用的调参方法和重要参数,可能会有些遗漏或问题,欢迎大家指出
先放感觉比较好的参考资料:
teb_local_planner wiki官方API文档
网上收集关于Teb Local Planner的调试使用_猪猪的博客-CSDN博客
浅谈Time Elastic Band – 知乎
TEB轨迹优化算法-代码解析与参数建议_zz123456zzss的博客-CSDN博客_teb算法
一,动态调参工具
可以动态调参,不用每次改yaml文件那么麻烦,但要记住改了什么,它没有保存键
rosrun rqt_reconfigure rqt_reconfigure
二,全局路径
要有一个好的导航效果,首先要调出一个比较好的全局路径
小技巧:将速度话题重命名为其它,即让小车不动,先调好全局路径,在launch文件中加入如下语句(后面记得删掉)
<remap from="/cmd_vel" to="/cmd_vel_111"></remap>
重要参数
costmap_common_params.yaml 文件
costmap_common_params.yaml
robot_radius: 0.15 #机器人半径
cost_scaling_factor: 15.0 #障碍物膨胀比例系数,全局路径呈锯齿状时调大
inflation_radius: 0.2 #膨胀半径,全局路径离障碍太近时调大,但不能覆盖整个道路
建议:
1.cost_scaling_factor调大,可以使得全局路径较平滑,这时 inflation_radius也要调大
三,局部路径规划 teb
重要参数:
teb_local_planner_params.yaml 文件
teb_local_planner_params.yaml
#与障碍物相关
min_obstacle_dist: 0.3 #与障碍的最小期望距离
inflation_dist: 0.5 # 障碍物周围缓冲区
dynamic_obstacle_inflation_dist: 0.6 #与动态障碍物缓冲区
 
max_global_plan_lookahead_dist: 1.0 #向前规划最长距离 #太大路径不平滑,太小避障和转弯时效果不好,太小还会导致小车不敢走
 
weight_optimaltime: 3 # 根据转换/执行时间对轨迹进行收缩的优化权重 #很重要的一个参数,值越大小车越大胆,转弯切内道,越容易拉到最大速度,也撞死得越快
还有速度加速度角速度等参数也很重要就不列了
建议:
1.刚开始调,可以速度调慢点,max_global_plan_lookahead_dist(向前规划距离)调小,可以使得局部路径较贴近全局路径并完成跑图,再慢慢调大找最佳值
2.当小车在某些位置卡住不敢走(还没撞)时,考虑膨胀半径是否应该调小,和weight_optimaltime是否应该调大
总结:
1.调参时可以控制变量,先把一个参数拉到很大或很小,观察它对效果的影响,再去改;
- 除了上面的参数,还有其它参数也很重要,也可以尝试下;
- 要多百度看一下别人的方法或参数,有时会有很大的帮助;
- 不能盲试,原理是很重要的,要去看这个算法的原理,以及不同参数的意义
Original: https://blog.csdn.net/pricem/article/details/122891310
Author: Gh_luck
Title: ROS导航调参经验总结(Teb算法)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/649619/
转载文章受原作者版权保护。转载请注明原作者出处!