打完智能车,调了很久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" />
重要参数
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也要调大
2.好的膨胀在rviz中一般颜色靠墙的较深,离墙远的较浅,呈渐变色(不完全正确,和rviz中颜色设置有关系)
三,局部路径规划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.调参时可以控制变量,先把一个参数拉到很大或很小,观察它对效果的影响,再去改;
- 除了上面的参数,还有其它参数也很重要,也可以尝试下;
- 要多百度看一下别人的方法或参数,有时会有很大的帮助;
- 不能盲试,原理是很重要的,要去看这个算法的原理,以及不同参数的意义
今天的文章ROS导航调参经验总结(Teb算法)分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/29356.html