原理
阿克曼模型
[ x ˙ y ˙ ϕ ˙ ] = [ v cos ϕ v sin ϕ v L tan δ ] \left[\begin{matrix}\dot{x}\\\dot {y}\\\dot{\phi}\end{matrix}\right]= \left[\begin{matrix}v\cos\phi\\v\sin\phi\\\frac{v}{L}\tan{\delta}\end{matrix}\right] x˙y˙ϕ˙ = vcosϕvsinϕLvtanδ
前轮转角 δ \delta δ和转弯半径 R R R的关系
1 R = tan δ L = κ \frac{1}{R}=\frac{\tan{\delta}}{L}=\kappa R1=Ltanδ=κ
Pure-pursuit 思想是对于路径上的预瞄点,假设后轮中心点可以按照一定的转弯半径 R R R行驶到该预瞄点,那么根据后轮中心点到预瞄点的距离 l d l_d ld,就可以求得 δ \delta δ。
首先基于后轴线,后轴中点和预瞄点做等腰三角形。显然该三角形的地角 π / 2 − α \pi/2-\alpha π/2−α。由于车辆纵轴线垂直于后轴线,因此可知等腰三角形底边与车辆纵轴线夹角为 α \alpha α。
接着,作等腰三角形的角分线,该线将等腰三角形分为了两个全等的直角三角形, 2 α 2\alpha 2α顶角被平分。因此有
sin α = l d 2 R = κ l d 2 = l d tan δ 2 L \sin\alpha=\frac{\frac{l_d}{2}}{R}=\kappa\frac{l_d}{2}=\frac{l_d\tan\delta}{2L} sinα=R2ld=κ2ld=2Lldtanδ
最终可得
δ = arctan 2 L sin α l d \delta=\arctan\frac{2L\sin\alpha}{l_d} δ=arctanld2Lsinα
方案一
根据几何关系,有如下关系
(
R
−
g
y
)
2
+
g
x
2
=
R
2
g
x
2
+
g
y
2
=
l
d
2
\begin{aligned}(R-g_y)^2+g_x^2&=R^2\\g_x^2+g_y^2&=l_d^2\end{aligned}
(R−gy)2+gx2gx2+gy2=R2=ld2
做恒等变换有
κ
=
1
R
=
2
g
y
l
d
2
\kappa=\frac{1}{R}=\frac{2g_y}{l_d^2}
κ=R1=ld22gy
到这里可以直接根据
κ
\kappa
κ计算前轮转角
δ
=
arctan
(
L
κ
)
=
arctan
2
g
y
L
l
d
2
\delta=\arctan (L\kappa)=\arctan\frac{2g_yL}{l_d^2}
δ=arctan(Lκ)=arctanld22gyL
注释:这里的预瞄点的横向坐标和横向误差是一样的故也有材料写
e
y
e_y
ey
预瞄点选择
以后轴中心为原点做圆,取车前圆与轨迹的交点(可能为插值点),该点即为预瞄点。
由前面的讨论可知,Pure Pursuit本质上是一个与预瞄距离有关的比例控制器(
K
p
=
2
L
/
l
2
,
e
y
=
e
y
K_p=2L/l^2, e_y=e_y
Kp=2L/l2,ey=ey ),当预瞄距离(lookahead distance)
l
d
l_d
ld越小时,比例控制器系数
K
p
K_p
Kp越大。由基本的控制原理不难理解,系统的响应越快,跟踪性能更灵敏;而当预瞄距离(lookahead distance)越大时,比例控制器系数
K
p
K_p
Kp越小,系统的响应较慢,容易造成较大的跟随误差。