写在前面:
???? 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。????
???? 人生如戏,我们并非能选择舞台和剧本,但我们可以选择如何演绎 ????
感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行~~~
文章目录
- 引言
- 一、纯跟踪算法简介
- 二、自行车模型概述
- 三、纯跟踪算法理论基础
- 3.1 算法基本思想
- 3.2 几何关系推导
- 四、纯跟踪算法实现步骤
- 五、纯跟踪算法优化
- 5.1 前视距离对性能的影响及优化策略
- 5.2 根据速度缩放前视距离
- 5.3 比例系数的影响及调整
- 5.4 限制值范围
- 5.5 高度鲁棒性
- 六、纯跟综算法的难点与局限性
- 6.1 最佳前视距离的选择
- 6.2 路径追踪与稳定性的平衡
- 6.3 高速下前视距离的调整与稳态误差
- 七、编程实现
- 7.1 pure_pursuit.param.yaml
- 7.2 pure_pursuit_lateral_controller.cpp
- 7.3 pure_pursuit.cpp
- 7.4 planning_utils.cpp
- 八、总结
- 参考资料
引言
在自动驾驶领域,Pure Pursuit纯跟踪算法作为一种高效的车道保持技术,备受关注。本文将带您深入解析Autoware开源项目中Pure Pursuit算法的实现细节,揭秘自动驾驶车辆如何精确追踪参考轨迹。通过讲解算法原理、实现步骤及优化策略,探索这一关键技术的精髓。
一、纯跟踪算法简介
目前主流方法有两类:
- 基于几何的方法
- 基于模型的方法
本篇博客介绍基于几何方法的 Pure Pursuit 纯跟踪算法。
Pure Pursuit 纯追踪算法是一种广泛使用的基于几何的追踪方法,建立在自行车模型和阿曼转向几何基础上,在低速状态下有比较好的效果。
二、自行车模型概述
在讲纯追踪算法之前,先回顾一下自行车模型。
自行车模型是将四轮简化成两轮的模型,假设车只在平面上行驶,最大好处是简化了前轮转向角和后轮轨迹曲率之间的关系,根据阿克曼转向几何关系,可以建立车辆前轮转向角和后轮轨迹曲率之间的关系。
,后轮滑过的半径为 ,有如下关系:
其中, 是前轮转向角, 是轴距,
三、纯跟踪算法理论基础
3.1 算法基本思想
纯跟踪算法最基本的思想就是参考人类驾驶员的行为,以车的后轮轴心为基点,通过控制前轮转向,使得车沿着一条经过预瞄点的圆弧行驶。即 Pure Pursuit 算法以后轮轴心为切点,纵向车身为切线,通过控制前轮转角,使得车辆沿着一条通过目标点的圆弧行驶。
长度的路径点,
3.2 几何关系推导
,转向中心是 ,后轮的中心是,可以构建出三角形 :
由于知道目标点和车身后轮方向,即目标点方向和当前航向角的夹角为 。而实际是切线,所以可得到 ,因为 是等腰三角形。所以两个底角相等,都等于 ,由于是三角形,所以顶点角度就是
,刚才讲过 ,所以根据三角形正弦定理,可得: