Coursera自动驾驶课程学习整理1——横向控制之Pure Pursuit

自动驾驶横向控制之Pure Pursuit

最近从网上找到一套Coursera自动驾驶课程的资料,讲解十分系统详细,我个人比较关注Control和Planning部分的学习,暂时打算随着学习进度进行整理。

纵向控制是控制车辆的速度,本课程里面是介绍了PID,这个太常用了,就不说了。横向控制是控制车辆的转向角,我自己对课程里介绍的方法不太熟悉,所以主要关注横向控制部分。

运动学模型

首先是车辆的运动学模型,这里给出了最常用的自行车模型,关于运动学模型的建立,网上有很多博客和资料,我个人觉得《无人驾驶车辆模型预测控制》这本书介绍的十分详细。以下两个图分别是以后轮和以前轮为参考的运动学模型,在这里使用的以后轮为参考的。
Coursera自动驾驶课程学习整理1——横向控制之Pure Pursuit_第1张图片
Coursera自动驾驶课程学习整理1——横向控制之Pure Pursuit_第2张图片

横向控制Pure Pursuit

Pure Pursuit在参考路径上找到一个前瞻点来计算所需要的转向角 δ \delta δ(前提是车辆不会发生侧滑,否则性能将大受影响)。首先,如下图所示:
Coursera自动驾驶课程学习整理1——横向控制之Pure Pursuit_第3张图片
然后,根据当前位置和前瞻点位置,得到一段如图所示的圆弧,R即为所需要的转弯半径,同时也得到curvature:
Coursera自动驾驶课程学习整理1——横向控制之Pure Pursuit_第4张图片
根据几何知识,可以得到上图中的几个式子,其实上面的3式是很容易直接得到的,无需使用正弦定理。得到R之后,转向角就顺理成章的计算出来了:
Coursera自动驾驶课程学习整理1——横向控制之Pure Pursuit_第5张图片
“前瞻距离”(暂且这么叫吧) l d l_d ld可以设定为与速度正相关:
Coursera自动驾驶课程学习整理1——横向控制之Pure Pursuit_第6张图片
以上就是Pure Pursuit方法了。如有问题,欢迎指教。

你可能感兴趣的:(Coursera自动驾驶课程学习整理1——横向控制之Pure Pursuit)