自动驾驶(七十一)---------Pure Pursuit轨迹追踪

       前面介绍过很多轨迹规划,也有很多控制相关的知识,例如pid调节、kalman 滤波、MPC等等。今天再学习一种轨迹追踪的方法,轨迹追踪是在有轨迹规划的基础上,如何实现车辆按照规划的轨迹行驶的问题,属于控制的范畴。

 1. 自行车模型和阿克曼转向几何

       这部分内容我很早就介绍过:车辆运动学模型 , 这里想简单复习一下,所谓运动学模型就是已知车辆的速度转角等信息,计算车辆在当前速度下位置和姿态的变化。

                                         å¨è¿éæå¥å¾çæè¿°

       

        精确描述单车模型中几何关系的核心公式如下:

       其中,δ 为前轮转角,L 为轴距(wheel base),R 为给定转向角运动时,无人车形成的轨迹圆的半径,具体参数和推导看我之前的博客。MPC就是基于这样的假设,估计车辆的未来一段时间的运行轨迹,那么有没有其他模型或者方法来估算车辆的行驶轨迹呢?

2. Pure Pursuit轨迹追踪

        Pure Pursuit轨迹追踪是一种基于几何追踪的纯追踪方法,我们也是从自行车模型出发,以车后轴为切点, 车辆纵向车身为切线, 通过控制前轮转角 , 假设车辆是可以沿着一条经过目标路点的圆弧行驶,如下图所示:

                                        è¿éåå¾çæè¿°

         特别的我们不再是通过转角和三角关系计算车辆的行驶轨迹,而是假设车辆会按照这样的一段圆弧来行驶,这和我们在MPC中估算的轨迹不同。知道了车辆的估计轨迹模型了,下一步就是如何把这个方法运用到车辆控制中来。我们的MPC是把估算的轨迹和我们的目标轨迹向比,优化出对应的控制参数,这里又是怎么理解呢?

3. 理解和公式计算

        我们有一条规划好的轨迹,也假设了车辆在一定的时间内按照第二步的圆弧行驶,这样我们可以分阶段来实现轨迹,我们先选取一段较小长度的轨迹,把轨迹的终点作为这一小段的目标,目标就是让车经过这个点,所以就很自然的要求圆弧经过这个点,再通过几何计算就可以计算出对应的半径和前轮的转角了。

       Pure pursuit方法的依据是使如上图所示的单车模型以合适的前轮转向 δ 运动,并恰好使无人车后轴中心经过当前的路点。 这样一来,我们就可以根据当前的路点以及单车几何模型计算当前的期望前轮转向角 δ。那么更具正弦定理我们可以推导出如下转换式:

                                

       综上推导出: 其中 κ 是计算出来的圆弧的曲率,那么前轮的转角 δ 的表达式为:

       我们可以得出纯追踪算法控制量的的最终表达式:

       这里我们把时间考虑进来,在知道t时刻车身和目标路点的夹角 α(t)α(t) 和距离目标路点的前视距离 ldld 的情况下,由于车辆轴距 LL 固定,我们可以利用上式估计出应该作出的前轮转角 δδ ,为了更好的理解纯追踪控制器的原理,我们定义一个新的量:elel —— 车辆当前姿态和目标路点在横向上的误差,由此可得夹角正弦:

              圆弧的弧度就可重写为:   这里写图片描述

       考虑到本质是横向上的CTE,由上式可知纯追踪控制器其实是一个横向转角的P控制器,其P系数为,这个P控制器受到参数 (即前视距离)的影响很大,如何调整前视距离变成纯追踪算法的关键,通常来说, 被认为是车速的函数,在不同的车速下需要选择不同的前视距离。一种最常见的调整前视距离的方法就是将前视距离表示成车辆纵向速度的线形函数,即,那么前轮的转角公式就变成了:

            

       那么纯追踪控制器的调整就变成了调整系数k,通常来说,会使用最大,最小前视距离来约束前视距离,越大的前视距离意味着轨迹的追踪越平滑,小的前视距离会使得追踪更加精确(当然也会带来控制的震荡),

 

 

追踪算法和Stanley算法是两种常用的路径跟踪算法。 纯追踪算法是一种基本的路径跟踪算法,它通过计算车辆与路径之间的横向误差和航向误差来控制车辆的转向。横向误差是车辆当前位置与路径的横向距离,航向误差是车辆当前航向角与路径的期望航向角之间的差异。根据这些误差,纯追踪算法可以计算出车辆的转向控制量,从而使车辆沿着路径行驶。 Stanley算法是一种改进的路径跟踪算法,它在纯追踪算法的基础上引入了前轮反馈控制。Stanley算法通过计算车辆与路径之间的横向误差和航向误差来控制车辆的转向,但与纯追踪算法不同的是,Stanley算法还考虑了车辆前轮中心到最近路径点的距离。根据这些误差和距离,Stanley算法可以计算出车辆的转向控制量,从而更精确地控制车辆沿着路径行驶。 总结起来,纯追踪算法和Stanley算法都是用于路径跟踪的算法,它们通过计算车辆与路径之间的横向误差和航向误差来控制车辆的转向。而Stanley算法在纯追踪算法的基础上引入了前轮反馈控制,考虑了车辆前轮中心到最近路径点的距离,从而更精确地控制车辆行驶。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [stanley 轨迹跟踪算法](https://blog.csdn.net/m0_48707860/article/details/128484886)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [轨迹跟踪算法——Stanley法](https://blog.csdn.net/m0_50888394/article/details/115654808)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值