本文是学习自动驾驶控制算法第七讲 离散规划轨迹的误差计算的学习笔记。
上一节中,我们知道 e r r e_{rr} err中元素的表达式如下:
{ e d = d e φ = φ − θ r e ˙ d = v sin ( θ − θ r ) e ˙ φ = φ ˙ − θ ˙ r = φ − k r s ˙ \begin{equation} \begin{cases} e_d=d\\ e_{\varphi}=\varphi-\theta_r \\ \dot{e}_d=v\sin(\theta-\theta_r)\\ \dot{e}_{\varphi}=\dot{\varphi}-\dot{\theta}_r =\varphi-k_r\dot{s}\\ \end{cases} \end{equation} ⎩ ⎨ ⎧ed=deφ=φ−θre˙d=vsin(θ−θr)e˙φ=φ˙−θ˙r=φ−krs˙
接下来计算 e r r e_{rr} err元素表达式中的未知量,可以参考自然坐标系和笛卡尔坐标系之间的转换关系。
第一步计算投影点,
首先遍历离散的轨迹点,与自车当前位置距离最近的点认为是匹配点,记为 x m = ( x m , y m ) \boldsymbol{x_m}=(x_m,y_m) xm=(xm,ym),理论上可以将匹配点作为投影点进行后续计算,这需要轨迹点特别密集,这里我们通过匹配点进一步寻找投影点:
如图所示
τ m = ( cos θ m , sin θ m ) \begin{equation} \boldsymbol{\tau_m}=(\cos{\theta_m},\sin{\theta_m}) \end{equation} τm=(cosθm,sinθm)
n m = ( − sin θ m , cos θ m ) \begin{equation} \boldsymbol{n_m}=(-\sin{\theta_m},\cos{\theta_m}) \end{equation} nm=(−sinθm,cosθm)
近似有
e d = ( x − x m ) ⋅ n m \begin{equation} e_d=(\boldsymbol{x}-\boldsymbol{x_m})\cdot{\boldsymbol{n_m}} \end{equation} ed=(x−xm)⋅nm
Δ s = ( x − x m ) ⋅ τ m \begin{equation} \Delta{s}=(\boldsymbol{x}-\boldsymbol{x_m})\cdot{\boldsymbol{\tau_m}} \end{equation} Δs=(x−xm)⋅τm
这里 x \boldsymbol{x} x表示自车位置, Δ s \Delta{s} Δs为正表示投影点在匹配点前面,为负表示在后面。
另外,假设投影点处的曲率 k r k_r kr与匹配点处的曲率 k m k_m km近似相等
k r = k m \begin{equation} k_r=k_m \end{equation} kr=km
θ r = θ m + k m Δ s \begin{equation} \theta_r=\theta_m+k_m\Delta{s} \end{equation} θr=θm+kmΔs
根据自然坐标系和笛卡尔坐标系之间的转换关系可知
s ˙ = v cos ( θ − θ r ) 1 − k r e d \begin{equation} \dot{s}=\frac{v\cos{(\theta-\theta_r)}}{1-k_re_d} \end{equation} s˙=1−kredvcos(θ−θr)
综上,带入到式1中就得到了 e r r e_{rr} err中所有元素的值,结合上一节的计算,也就得到了控制量
u = − K e r r + δ f \begin{equation} u=-Ke_{rr}+\delta_f \end{equation} u=−Kerr+δf
的值。