STM32
登录
直播中
算一挂
8年用户
887经验值
私信
关注
[问答]
什么是纯追踪算法?
开启该帖子的消息推送
什么是纯追踪算法?
回帖
(1)
王禅
2021-11-22 09:30:10
纯追踪算法
自行车模型
在了解纯追踪算法之前,需要先了解车辆模型,一个简化的自行车模型。
运动学自行车模型和动力学自行车模型
轨迹追踪
目前主流的轨迹跟踪方法有两类,基于几何的追踪方法和基于模型预测的方法,纯追踪就是基于几何追踪的方法。 下图是一个运动学自行车模型:
它是对阿卡曼转向几何的简化,将车辆四轮模型简化为两轮模型,并且假定车辆只在平面上行驶,那么前轮转角δ、轴距和转向半径将遵循以下关系:
其中δ是前轮的转向角,L为轴距,R为当前转角下的转向半径。
从自行车模型出发,纯追踪算法以车后轴为切点、车辆纵向车身为切线,通过控制前轮转向角,使车辆可以沿着一条经过目标路经点的圆弧行驶,如下图所示:
图中 (gx, gy)是我们下一个要追踪的路点,它位于我们已经规划好的全局路径上,现在需要控制车辆是的车辆的后轴经过该路点,表示车辆当前位置(即后轴位置)到目标路点的距离, 表示目前车身姿态和目标路点的夹角,那么更具正弦定理我们可以推导出如下转换式:
上式也可以表示为:
其中 k 是计算出来的圆弧的曲率,那么前轮的转角
δ
的表达式为:
结合以上两式,我们可以得出纯追踪算法控制量的的最终表达式:
这里我们把时间考虑进来,在知道t时刻车身和目标路点的夹角 α(t) 和距离目标路点的前视距离 ld 的情况下,由于车辆轴距
L
固定,我们可以利用上式估计出应该作出的前轮转角 δ,为了更好的理解纯追踪控制器的原理,我们定义一个新的量:
el
—— 车辆当前姿态和目标路点在横向上的误差,由此可得夹角正弦:
圆弧的弧度就可重写为:
考虑到本质是横向上的CTE,由上式可知纯追踪控制器其实是一个横向转角的P控制器,其P系数为2/ld2,这个P控制器受到参数ld(即前视距离)的影响很大,如何调整前视距离变成纯追踪算法的关键,通常来说,
ld
被认为是车速的函数,在不同的车速下需要选择不同的前视距离。
一种最常见的调整前视距离的方法就是将前视距离表示成车辆纵向速度的线形函数,即ld=kVx,那么前轮的转角公式就变成了:
那么纯追踪控制器的调整就变成了调整系数k,通常来说,会使用最大,最小前视距离来约束前视距离,越大的前视距离意味着轨迹的追踪越平滑,小的前视距离会使得追踪更加精确(当然也会带来控制的震荡),下面我们使用
Python
实现一个简单的纯追踪控制器。
本文使用Matlab和Simulink构建了一个简单的纯追踪模型并进行了仿真,整体流程框图如下:
主要分为四部分,第一部分是一个自定义的最邻近路径点搜索函数,中间是控制部分,主要计算车辆横向误差 e l e_l el和控制量转向角δ,第三部分是车辆模型,使用的Simulink自带的三自由度车辆模型,最后是一个画图的函数,控制部分内部流程框图如下:
最后追踪的效果如下:
github地址:
Pure-Pursuit-Control
参考:
http://blog.csdn.net/adamshan/article/details/78696874
https://blog.csdn.net/AdamShan/article/details/80555174?spm=1001.2014.3001.5501
《无人驾驶原理与实践》 申泽邦
纯追踪算法
自行车模型
在了解纯追踪算法之前,需要先了解车辆模型,一个简化的自行车模型。
运动学自行车模型和动力学自行车模型
轨迹追踪
目前主流的轨迹跟踪方法有两类,基于几何的追踪方法和基于模型预测的方法,纯追踪就是基于几何追踪的方法。 下图是一个运动学自行车模型:
它是对阿卡曼转向几何的简化,将车辆四轮模型简化为两轮模型,并且假定车辆只在平面上行驶,那么前轮转角δ、轴距和转向半径将遵循以下关系:
其中δ是前轮的转向角,L为轴距,R为当前转角下的转向半径。
从自行车模型出发,纯追踪算法以车后轴为切点、车辆纵向车身为切线,通过控制前轮转向角,使车辆可以沿着一条经过目标路经点的圆弧行驶,如下图所示:
图中 (gx, gy)是我们下一个要追踪的路点,它位于我们已经规划好的全局路径上,现在需要控制车辆是的车辆的后轴经过该路点,表示车辆当前位置(即后轴位置)到目标路点的距离, 表示目前车身姿态和目标路点的夹角,那么更具正弦定理我们可以推导出如下转换式:
上式也可以表示为:
其中 k 是计算出来的圆弧的曲率,那么前轮的转角
δ
的表达式为:
结合以上两式,我们可以得出纯追踪算法控制量的的最终表达式:
这里我们把时间考虑进来,在知道t时刻车身和目标路点的夹角 α(t) 和距离目标路点的前视距离 ld 的情况下,由于车辆轴距
L
固定,我们可以利用上式估计出应该作出的前轮转角 δ,为了更好的理解纯追踪控制器的原理,我们定义一个新的量:
el
—— 车辆当前姿态和目标路点在横向上的误差,由此可得夹角正弦:
圆弧的弧度就可重写为:
考虑到本质是横向上的CTE,由上式可知纯追踪控制器其实是一个横向转角的P控制器,其P系数为2/ld2,这个P控制器受到参数ld(即前视距离)的影响很大,如何调整前视距离变成纯追踪算法的关键,通常来说,
ld
被认为是车速的函数,在不同的车速下需要选择不同的前视距离。
一种最常见的调整前视距离的方法就是将前视距离表示成车辆纵向速度的线形函数,即ld=kVx,那么前轮的转角公式就变成了:
那么纯追踪控制器的调整就变成了调整系数k,通常来说,会使用最大,最小前视距离来约束前视距离,越大的前视距离意味着轨迹的追踪越平滑,小的前视距离会使得追踪更加精确(当然也会带来控制的震荡),下面我们使用
Python
实现一个简单的纯追踪控制器。
本文使用Matlab和Simulink构建了一个简单的纯追踪模型并进行了仿真,整体流程框图如下:
主要分为四部分,第一部分是一个自定义的最邻近路径点搜索函数,中间是控制部分,主要计算车辆横向误差 e l e_l el和控制量转向角δ,第三部分是车辆模型,使用的Simulink自带的三自由度车辆模型,最后是一个画图的函数,控制部分内部流程框图如下:
最后追踪的效果如下:
github地址:
Pure-Pursuit-Control
参考:
http://blog.csdn.net/adamshan/article/details/78696874
https://blog.csdn.net/AdamShan/article/details/80555174?spm=1001.2014.3001.5501
《无人驾驶原理与实践》 申泽邦
举报
更多回帖
rotate(-90deg);
回复
相关问答
什么是眼动
追踪
?眼动
追踪
如何运作?
2021-06-17
1462
怎样实现光线
追踪
?
2021-05-31
1134
什么是光线
追踪
?
2021-05-28
1788
光线
追踪
技术介绍
2021-01-22
1049
光线
追踪
等级系统的介绍
2021-01-29
2287
如何看待光线
追踪
2021-03-07
2181
什么是最大功率点
追踪
?具有哪些分类?
2021-10-26
3943
硬件光线
追踪
的优势有哪些
2021-01-28
1612
硬件光线
追踪
的优势有哪些?
2021-05-31
1694
Imagination的光线
追踪
等级系统介绍
2020-12-21
1122
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分