声明:【自动驾驶控制算法】系列是博主对B站up主:忠厚老实的老王所分享教学内容的学习笔记,并且该系列每篇博客都会将博主听课后总结的纸质版笔记附于文末,供大家参考。
B站up主:忠厚老实的老王是一位研究汽车领域,无人驾驶方向及其相关方向的大佬,也算是博主在无人驾驶方向的启蒙老师。所以研究相关领域的朋友推荐去听一听他的视频讲解。
前言
自动驾驶控制算法:PID算法,LQR算法,MPC算法
PID、LQR算法:百度Apollo使用这两种算法
MPC算法:学术界一般使用MPC算法,其控制效果优于PID和LQR算法,但是计算量太大,只存在于仿真。
控制的前提是路径规划,教程中默认已有路径规划。
1. 三个坐标系
本教程一律采用右手系。
右手系:当右手的拇指指向 x x x轴时,食指指向 y y y轴,中指指向 z z z轴。
左手系:当左手的拇指指向 x x x轴时,食指指向 y y y轴,中指指向 z z z轴。
一般数学,物理学等都是右手系。
而一般计算机学科,图形,视觉方向是左手系。
自动驾驶又是一个跨学科较大的行业,所以在参考学习自动驾驶的相关文献资料时,一般要先了解作者的学科背景。
三个坐标系:
2. 运动学方程
(1)、简化汽车模型:
(2)、建立微分方程:
几何关系——运动学模型(不考虑轮胎变形)
牛顿力学——动力学模型(考虑轮胎变形)
所以运动学模型只适应于轮胎变形小的情况。如速度比较低,转弯半径比较大,规划的轨迹比较平缓。对于行驶状况比较激烈的情况,误差较大。
O O O点是速度瞬心。
质心的速度 v c v_{c} vc :可用速度瞬心法来求(理论力学知识点)
(3)、运动学模型:
X ˙ = v ∗ cos ( β + α ) \dot{X} =v*\cos (\beta +\alpha ) X˙=v∗cos(β+α) Y ˙ = v ∗ sin ( β + α ) \dot{Y} =v*\sin (\beta +\alpha ) Y˙=v∗sin(β+α) φ ˙ = v R \dot{\varphi } =\frac{v}{R} φ˙=Rv
只体现了质心速度 v v v对 X ˙ \dot{X} X˙、 Y ˙ \dot{Y} Y˙、 φ ˙ \dot{\varphi } φ˙的影响,没体现前轮转角 δ f \delta _{f} δf对 X ˙ \dot{X} X˙、 Y ˙ \dot{Y} Y˙、 φ ˙ \dot{\varphi } φ˙的影响。
因此进一步推导:
设质心到前轮的距离为 a a a,到后轮的距离为 b b b
使用正弦定理: