自动驾驶-控制算法(一)

ROS实现无人驾驶控制算法(一)——pure pursuit 轨迹跟踪主要分为两类:基于几何追踪的方法和基于模型预测的方法。而pure pursuit算法就是最基本的基于几何的控制算法,因其鲁棒性高,对路径的要求低而广泛使用,也为后续的standly、LQR、MPC算法打好基础。因为纯追踪算法是基于几何模型的,因此,需要推导出车辆的运动学模型,本文采用的是阿克曼模型(差速模型也会提及)。对于阿克曼转向模型来说,只需要驱动电机控制线速度,以及前轮舵机转角控制转向,因此,需要计算前轮转向角的求导公式。3.从该路径点出发,沿着路径寻找大于前视距离的第一个点作为目标点。 阅读详情
AI摘要

本文记录自动驾驶控制算法学习中的基础非模型优化算法,包括纯跟踪、Stanley和后轮反馈控制算法。介绍了各算法的车辆运动学模型,并详细推导算法公式,如前轮转角表达式等,还对部分算法进行了横向误差变化率分析和稳定性判据推导。


前言

本篇文章主要记录自动驾驶控制算法学习中的一些基础的非模型优化的算法,包括纯跟踪算法(PurePursuit)、Stanley算法、后轮反馈控制算法。


一、纯跟踪算法

1. 车辆运动学模型

纯跟踪算法采用基于车辆后轴中心的运动学模型,此处假定后轮不转向。
在这里插入图片描述

模型中的符号和定义如下:

A A A:前轮中心点; B B B:后轮中心点;(左右轮都合并为单个轮子)
δ f \delta _{f} δf​:前轮转向角;
L L L:车辆轴距;
V V V:车辆的速度;
O O O:车辆的瞬时旋转中心;
R R R:车辆的轨迹半径;
Ψ \Psi Ψ:车辆的航向角;

基于车辆后轴中心的运动学模型为:
X ˙ = V cos ⁡ Ψ Y ˙ = V sin ⁡ Ψ Ψ ˙ = V tan ⁡ δ f L \begin{aligned} \dot{X} =V\cos \Psi \\ \dot{Y} =V\sin \Psi \\ \dot{\Psi}= \frac{V\tan \delta _{f} }{L} \\ \end{aligned} X˙=VcosΨY˙=VsinΨΨ˙=LVtanδf​​​
前轮转向角和后轴跟随曲线之间的几何关系可表示为:
tan ⁡ δ f = L R \begin{aligned} \tan{\delta _{f}} = \frac{L}{R} \end{aligned} tanδf​=RL​​

2. 纯跟踪算法推导

纯追踪算法的原理为通过调整前轮转向角 δ f \delta_f δf​,使得车辆后轴中心刚好可以经过规划路径中给定的路径点。可以理解为,以车辆后轮沿当前点与给定路径点构成的圆弧行驶。
在这里插入图片描述

图中的部分符号和定义如下:
P P P:车辆追踪的规划路径中的目标点;
r r r:车辆后轴中心与目标点组成的圆弧的半径;
α \alpha α:后轴中心到目标点的向量与车身坐标系的夹角;
e y e_y ey​:目标点在车身坐标系下的横向偏差;

前轮转向角和后轴跟随曲线之间的几何关系可知,计算前轮转角需计算出车辆后轴中心点的路径半径 R R R,当 R = r R=r R=r时,车辆的后轴中心经过目标点。
在三角形 △ o P B \bigtriangleup oPB △oPB中,由正弦定理可得:
sin ⁡ 2 α l d = sin ⁡ ( π 2 − α ) r \begin{aligned} \frac{\sin 2 \alpha}{l_d} = \frac{\sin (\frac{\pi}{2}-\alpha)}{r} \end{aligned} ld​sin2α​=rsin(2π​−α)​​
由 sin ⁡ ( π 2 − α ) = cos ⁡ α \sin (\frac{\pi}{2}-\alpha)=\cos \alpha sin(2π​−α)=cosα, sin ⁡ 2 α = 2 sin ⁡ α cos ⁡ α \sin 2 \alpha=2 \sin{\alpha} \cos{\alpha} sin2α=2sinαcosα,将上式整理可得:
r = l d 2 sin ⁡ α \begin{aligned} r = \frac{l_d}{2 \sin \alpha} \end{aligned} r=2sinαld​​​

由 tan ⁡ δ f = L R \tan{\delta _{f}} = \frac{L}{R} tanδf​=RL​,令 R = r R=r R=r,可得前轮转角的表达式为:
δ f = arctan ⁡ 2 sin ⁡ ( α ) L l d \begin{aligned} \delta _{f} =\arctan \frac{2 \sin {(\alpha)} L }{l_d} \end{aligned} δf​=arctanld​2sin(α)L​​
其中, α \alpha α为后轴中心到目标点的向量与车身坐标系的夹角,方向根据车身参考系的设定进行判断,本文章设定为左正右负。

拓展:
由上图可知 sin ⁡ α = e y l d \sin \alpha = \frac{e_y}{l_d} sinα=ld​ey​​,带入上式可得:

r = l d 2 2 e y \begin{aligned} r = \frac{l_d^2}{2 e_y} \end{aligned} r=2ey​ld2​​​

由 tan ⁡ δ f = L R \tan{\delta _{f}} = \frac{L}{R} tanδf​=RL​,令 R = r R=r R=r,可得:
δ f = arctan ⁡ 2 e y L l d 2 \begin{aligned} \delta _{f} =\arctan \frac{2 e_y L }{l_d^2} \end{aligned} δf​=arctanld2​2ey​L​​
其中目标点在车身坐标系下的横向偏差 e y e_y ey​可通过向量运算求得,已知目标点 P ( x p , y p ) P(x_p,y_p) P(xp​,yp​)到车辆后中心点 B ( x b , y b ) B(x_b, y_b) B(xb​,yb​)的向量为 P B ⃗ = ( x p − x b , y p − y b ) \vec{PB}=(x_p-x_b, y_p- y_b) PB =(xp​−xb​,yp​−yb​),沿车辆速度方向的单位向量 k ⃗ = ( cos ⁡ Ψ , sin ⁡ Ψ ) \vec{k} = (\cos \Psi , \sin \Psi) k =(cosΨ,sinΨ):
e y = ∣ P B ⃗ × k ⃗ ∣ \begin{aligned} e_y =\left | \vec{PB} \times \vec{k} \right | \end{aligned} ey​= ​PB ×k ​​

二、Stanley算法

1.车辆运动学模型

Stanley同样采用与纯跟踪算法相同的运动学模型-基于车辆后轴中心的运动学模型,Stanley算法中使用前轴中心的信息可通过几何转换获得。

2.Stanley算法推导

在这里插入图片描述
图中的部分符号和定义如下:
A 、 B A、B A、B:车辆前轴、后轴中心点;
P P P:规划路径中距前轴中心最近的点;
L L L:车辆轴距;
v v v:车辆前轮速度;
Ψ \Psi Ψ:车辆航向角;
Ψ t \Psi_t Ψt​: P P P点处的航向角;
δ f \delta_f δf​:车辆的前轮转角;
δ e \delta_e δe​:车辆前轮转角与 P P P点处航向角之间的偏差;
Ψ e \Psi_e Ψe​: P P P点处航向角与车辆航向角之间的偏差;
e y e_y ey​:前轴中线点到 P P P点切线方向的偏差;
d d d:车辆速度方向与 P P P点切线方向的交点与前轴中心点沿 P P P点切线方向的纵向偏差;

Stanley算法是一种基于前轮航迹误差( e y e_y ey​)的非线性反馈控制算法,由上图中的几何关系可得:
Ψ e = Ψ t − Ψ \begin{aligned} \Psi_e = \Psi_t - \Psi \end{aligned} Ψe​=Ψt​−Ψ​
前轮速度方向与目标点航向偏差的表达式为:
δ e = arcsin ⁡ k ⋅ e y v = arctan ⁡ e y d \begin{aligned} \delta_e =\arcsin \frac{k \cdot e_y}{v} = \arctan \frac{ e_y}{d} \end{aligned} δe​=arcsinvk⋅ey​​=arctandey​​​
其中 k k k为算法中设定的系数。
上式表明,当车辆沿速度方向行驶至与目标点 P P P切线方向相交位置时,车辆前轮航迹偏差为0。对上述三角形来说,速度值不变的情况下,系数k越大,车辆前轮航迹偏差减少的速度越快。
此外可得 d d d与系数 k k k反相关,与速度 v v v的大小正相关。在小角度的情况下,可近似得: d ≈ v k d\approx \frac{v}{k} d≈kv​
在这里插入图片描述

综上可得,车辆前轮转角控制量 δ f \delta_f δf​计算公式为:
δ f = Ψ t − Ψ + arcsin ⁡ k ⋅ e y v \begin{aligned} \delta_f = \Psi_t - \Psi + \arcsin \frac{k \cdot e_y}{v} \end{aligned} δf​=Ψt​−Ψ+arcsinvk⋅ey​​​

拓展:横向误差变化率分析
车辆横向误差变化率为:
e ˙ y = − v sin ⁡ δ e \begin{aligned} \dot e_y = - v\sin \delta_e \end{aligned} e˙y​=−vsinδe​​
此处假设 e y e_y ey​, δ e \delta_e δe​为标量,在正确的控制下,横向误差会越来越小,因此横向偏差变化率为负。
根据几何关系可得:
sin ⁡ δ e = e y d ( t ) 2 + e y 2 \begin{aligned} \sin \delta_e = \frac{e_y}{\sqrt{d(t)^2+e_y^2} } \end{aligned} sinδe​=d(t)2+ey2​ ​ey​​​
根据 d ≈ v k d\approx \frac{v}{k} d≈kv​,上式可写为:
sin ⁡ δ e = k ⋅ e y v 2 + ( k e y ) 2 \begin{aligned} \sin \delta_e = \frac{k \cdot e_y}{\sqrt{v^2+(ke_y)^2} } \end{aligned} sinδe​=v2+(key​)2 ​k⋅ey​​​
进而可得:
e ˙ y = − k ⋅ e y 1 + ( k e y v ) 2 \begin{aligned} \dot e_y = - \frac{k \cdot e_y}{\sqrt{1+(\frac{ke_y}{v})^2} } \end{aligned} e˙y​=−1+(vkey​​)2 ​k⋅ey​​​
当横向误差很小时,上式可改写为:
e ˙ y = − k ⋅ e y \begin{aligned} \dot e_y = - k \cdot e_y \end{aligned} e˙y​=−k⋅ey​​
对上式进行积分可得:
e y ( t ) = e y ( 0 ) ⋅ e − k t \begin{aligned} e_y(t) = e_y(0) \cdot e^{-kt} \end{aligned} ey​(t)=ey​(0)⋅e−kt​
当 t ⟶ ∞ t\longrightarrow \infty t⟶∞时,横向误差以指数形式收敛于0,参数 k k k决定了收敛速度。

三、后轮位置反馈控制算法

1.车辆运动学模型

后轮位置反馈控制同样采用与纯跟踪算法相同的运动学模型-基于车辆后轴中心的运动学模型。

2.后轮位置反馈控制算法推导

在这里插入图片描述

图中的部分符号和定义如下:
A 、 B A、B A、B:车辆前轴、后轴中心点;
P P P:规划路径中距后轴中心最近的点;
L L L:车辆轴距;
v v v:车辆后轴中心处的速度;
s ˙ \dot s s˙:目标点处的速度;
Ψ \Psi Ψ:车辆航向角;
Ψ t \Psi_t Ψt​: P P P点处的航向角;
δ f \delta_f δf​:车辆的前轮转角;
ψ e \psi_e ψe​: P P P点处航向角与车辆航向角之间的偏差;
e y e_y ey​:前轴中线点到 P P P点切线方向的偏差;
d d d:后轴中心点到目标点的距离;

车辆的横向位置误差 e y e_y ey​可通过向量法计算,已知目标点 P ( x p , y p ) P(x_p,y_p) P(xp​,yp​)到车辆后中心点 B ( x b , y b ) B(x_b, y_b) B(xb​,yb​)的向量为 P B ⃗ = ( x p − x b , y p − y b ) \vec{PB}=(x_p-x_b, y_p- y_b) PB =(xp​−xb​,yp​−yb​),沿路径点切线方向的单位向量 k ⃗ = ( cos ⁡ ψ t , sin ⁡ ψ t ) \vec{k} = (\cos \psi_t , \sin \psi_t) k =(cosψt​,sinψt​):
e y = ∣ P B ⃗ × k ⃗ ∣ \begin{aligned} e_y =\left | \vec{PB} \times \vec{k} \right | \end{aligned} ey​= ​PB ×k ​​
当车辆后轴中心点位于路径对应车辆前进方向左侧时, e y e_y ey​为正,反之为负。在上图所示情况下, e y e_y ey​为负。

航向角误差 ψ e \psi_e ψe​为车辆航向角 ψ \psi ψ与目标点处航向角 ψ t \psi_t ψt​的差值:
ψ e = ψ t − ψ \begin{aligned} \psi_e = \psi_t - \psi \end{aligned} ψe​=ψt​−ψ​
假设以路径曲线在目标点处的旋转中心为 o o o,车辆后轴中心角速度 ω r \omega_r ωr​和目标点处的角速度 ω s \omega_s ωs​近似相等,根据车辆旋转角速度计算公式 V R \frac{V}{R} RV​可得:
s ˙ R = v ⋅ cos ⁡ ψ e R − e y \begin{aligned} \frac{\dot s}{R} = \frac{v \cdot \cos \psi_e}{R-e_y} \end{aligned} Rs˙​=R−ey​v⋅cosψe​​​
在上图所示情况下,目标点处的曲率 k ( s ) k(s) k(s)为正,旋转半径 R = 1 k ( s ) R=\frac{1}{k(s)} R=k(s)1​为正, e y e_y ey​为负。
则 s ˙ \dot s s˙的表达式可写为:
s ˙ = v ⋅ cos ⁡ ψ e 1 − k ( s ) ⋅ e y \begin{aligned} \dot s = \frac{v \cdot \cos \psi_e}{1-k(s) \cdot e_y} \end{aligned} s˙=1−k(s)⋅ey​v⋅cosψe​​​
车辆横向移动的速度 e ˙ \dot e e˙可写为:
e ˙ y = v ⋅ sin ⁡ ψ e \begin{aligned} \dot e_y = v \cdot \sin \psi_e \end{aligned} e˙y​=v⋅sinψe​​

车辆航向角误差的变化率 ψ ˙ e \dot \psi_e ψ˙​e​可写为:
ψ ˙ e = ψ ˙ − ψ ˙ t \begin{aligned} \dot \psi_e = \dot \psi - \dot \psi_t \end{aligned} ψ˙​e​=ψ˙​−ψ˙​t​​
由 ψ ˙ t = s ˙ R = s ˙ ⋅ k ( s ) \dot \psi_t=\frac{\dot s}{R}=\dot s \cdot k(s) ψ˙​t​=Rs˙​=s˙⋅k(s),带入上式可得:
ψ ˙ e = ψ ˙ − v ⋅ k ( s ) ⋅ cos ⁡ ψ e 1 − k ( s ) ⋅ e y \begin{aligned} \dot \psi_e = \dot \psi - \frac{v \cdot k(s) \cdot \cos \psi_e}{1-k(s) \cdot e_y} \end{aligned} ψ˙​e​=ψ˙​−1−k(s)⋅ey​v⋅k(s)⋅cosψe​​​
综上,目标点处的速度、横向误差变化率、航向误差变化率的微分方程形式整理如下:
s ˙ = v ⋅ cos ⁡ ψ e 1 − k ( s ) ⋅ e y e ˙ y = v ⋅ sin ⁡ ψ e ψ ˙ e = ψ ˙ − v ⋅ k ( s ) ⋅ cos ⁡ ψ e 1 − k ( s ) ⋅ e y \begin{aligned} \dot s = \frac{v \cdot \cos \psi_e}{1-k(s) \cdot e_y} \\ \dot e_y = v \cdot \sin \psi_e \\ \dot \psi_e = \dot \psi - \frac{v \cdot k(s) \cdot \cos \psi_e}{1-k(s) \cdot e_y} \end{aligned} s˙=1−k(s)⋅ey​v⋅cosψe​​e˙y​=v⋅sinψe​ψ˙​e​=ψ˙​−1−k(s)⋅ey​v⋅k(s)⋅cosψe​​​

李亚普洛夫稳定判据

基于上述微分方程,定义李亚普洛夫函数形式如下:
V ( e y , ψ e ) = 1 2 e y 2 + 1 2 ⋅ k 2 ψ e 2 \begin{aligned} V(e_y,\psi _e) = \frac{1}{2}e_y^2+\frac{1}{2 \cdot k_2}\psi_e^2 \end{aligned} V(ey​,ψe​)=21​ey2​+2⋅k2​1​ψe2​​
其中 k 2 > 0 k_2>0 k2​>0,为了使 ( e y , ψ e ) (e_y,\psi _e) (ey​,ψe​)在平衡点 ( 0 , 0 ) (0,0) (0,0)处稳定,根据李亚普洛夫稳定判据,必须满足以下两个条件:

  1. lim ⁡ ∣ e y , ψ e ∣ → ∞ V = ∞ \lim_{\left |e_y,\psi _e\right | \to \infty} V=\infty lim∣ey​,ψe​∣→∞​V=∞
  2. V ˙ < 0   ( e y ≠ 0 , ψ e ≠ 0 ) \dot V<0 \ (e_y \ne 0, \psi _e \ne 0) V˙<0 (ey​=0,ψe​=0)
    对于条件1,定义的李亚普洛夫函数显式成立,所以李亚普洛夫稳定判据第一条满足。
    对于 V ˙ < 0 \dot V<0 V˙<0,结合上述推导的微分方程,推导形式如下:

V ˙ = e y ⋅ e ˙ y + 1 k 2 ⋅ ψ e ⋅ ψ ˙ e = e y ⋅ v ⋅ sin ⁡ ( ψ e ) + 1 k 2 ⋅ ψ e ⋅ ( ψ ˙ − v ⋅ k ( s ) ⋅ cos ⁡ ψ e 1 − k ( s ) ⋅ e y ) \begin{aligned} \dot V = e_y \cdot \dot e_y + \frac{1}{ k_2} \cdot \psi _e \cdot \dot \psi _e \\ =e_y \cdot v \cdot \sin(\psi _e) + \frac{1}{ k_2} \cdot \psi _e \cdot (\dot \psi - \frac{v \cdot k(s) \cdot \cos \psi_e}{1-k(s) \cdot e_y} ) \end{aligned} V˙=ey​⋅e˙y​+k2​1​⋅ψe​⋅ψ˙​e​=ey​⋅v⋅sin(ψe​)+k2​1​⋅ψe​⋅(ψ˙​−1−k(s)⋅ey​v⋅k(s)⋅cosψe​​)​
令 V ˙ = 0 \dot V=0 V˙=0,得临界控制率 ψ ˙ ∗ \dot \psi^* ψ˙​∗表达式如下:
ψ ˙ ∗ = v ⋅ k ( s ) ⋅ cos ⁡ ( ψ e ) 1 − k ( s ) ⋅ e y − k 2 ⋅ v ⋅ e y sin ⁡ ( ψ e ) ψ e \begin{aligned} \dot \psi^* = \frac{v \cdot k(s) \cdot \cos(\psi_e)}{1 - k(s) \cdot e_y} -\frac{k_2 \cdot v \cdot e_y \sin(\psi _e)}{\psi _e} \end{aligned} ψ˙​∗=1−k(s)⋅ey​v⋅k(s)⋅cos(ψe​)​−ψe​k2​⋅v⋅ey​sin(ψe​)​​

为满足李亚普洛夫稳定判据第2条,设置一个调节函数 g ( e y , ψ e , t ) = k ψ ∣ v ∣ > 0 g(e_y,\psi_e,t)=k_{\psi} |v|>0 g(ey​,ψe​,t)=kψ​∣v∣>0,可以得出基于航向角变化率的控制命令:
ψ ˙ = ψ ˙ ∗ − k ψ ⋅ ∣ v ∣ ⋅ ψ e \begin{aligned} \dot \psi = \dot \psi^* - k_{\psi} \cdot |v| \cdot \psi_e \end{aligned} ψ˙​=ψ˙​∗−kψ​⋅∣v∣⋅ψe​​
将上式带入 V ˙ \dot V V˙的表达式可得:
V ˙ = k ψ k 2 ⋅ ∣ v ∣ ⋅ ψ e 2 ≤ 0 \begin{aligned} \dot V =\frac{k_{\psi}}{k_2} \cdot |v| \cdot \psi_e^2 \le 0 \end{aligned} V˙=k2​kψ​​⋅∣v∣⋅ψe2​≤0​
所以设计的控制率满足稳定性条件。

根据车辆几何关系:
tan ⁡ δ f = L R \begin{aligned} \tan{\delta _{f}} = \frac{L}{R} \end{aligned} tanδf​=RL​​
车辆航向变化率、车速、转弯半径的关系为 ψ ˙ = V R \dot \psi = \frac{V}{R} ψ˙​=RV​,结合上式可得车辆前轮转角为:
δ f = arctan ⁡ ψ ˙ ⋅ L v \begin{aligned} \delta _{f} =\arctan \frac{\dot \psi \cdot L}{v} \end{aligned} δf​=arctanvψ˙​⋅L​​
其中:
ψ ˙ = v ⋅ k ( s ) ⋅ cos ⁡ ( ψ e ) 1 − k ( s ) ⋅ e y − k 2 ⋅ v ⋅ e y sin ⁡ ( ψ e ) ψ e − k ψ ⋅ ∣ v ∣ ⋅ ψ e \begin{aligned} \dot \psi = \frac{v \cdot k(s) \cdot \cos(\psi_e)}{1 - k(s) \cdot e_y} -\frac{k_2 \cdot v \cdot e_y \sin(\psi _e)}{\psi _e} - k_{\psi} \cdot |v| \cdot \psi_e \end{aligned} ψ˙​=1−k(s)⋅ey​v⋅k(s)⋅cos(ψe​)​−ψe​k2​⋅v⋅ey​sin(ψe​)​−kψ​⋅∣v∣⋅ψe​​


参考文献

1、自动驾驶决策规划控制
2、控制算法

自动驾驶综述 | 定位、感知、规划常见算法汇总 自动驾驶技术的实现依赖于先进的定位、感知和规划算法的紧密配合。未来,随着深度学习、量子计算和5G技术的发展,自动驾驶技术将迎来更多的创新和突破。定位、感知与规划是自动驾驶的核心组成部分,面对复杂多变的实际道路环境,这些算法为自动驾驶车辆提供了准确的环境理解与决策能力。扩展卡尔曼滤波器(EKF)是一种用于非线性系统状态估计的算法,常用于自动驾驶中的定位和状态估计。自动驾驶技术是当代科技领域的前沿之一,它综合了多个学科的知识,如计算机视觉、深度学习、传感器融合、控制理论等。是实现自动驾驶的核心部分。 阅读详情

相关推荐

【自动驾驶控制算法】 第一讲 绪论

声明【自动驾驶控制算法】系列是博主对所分享教学内容的学习笔记,并且该系列每篇博客都会将博主听课后总结的纸质版笔记附于文末,供大家参考。是一位研究汽车领域,无人驾驶方向及其相关方向的大佬,也算是博主在无人驾驶方向的启蒙老师。所以研究相关领域的朋友推荐去听一听他的视频讲解。...

iamtbon_1的博客 1795

自动驾驶技术详解

本节我们先从广泛应用于自动驾驶的几个任务出发介绍2D视觉感知算法,包括基于图像或视频的2D目标检测和跟踪,以及2D场景的语义分割。近些年,深度学习渗透到视觉感知的各个领域,取得不错的成绩,因此,我们梳理了一些经典的深度学习算法。

发狂的小花的博客 4022

自动驾驶控制算法——MPC控制算法

自动驾驶MPC控制算法摘要 模型预测控制(MPC)是一种基于系统预测模型的先进控制算法,通过滚动优化方式求解最优控制输入。其核心流程包括:1)使用数学模型预测未来系统状态;2)定义优化目标函数衡量预测误差;3)求解满足约束的最优控制序列;4)仅执行第一步控制并重复该过程。 相比传统PID控制,MPC具有预测未来、多步优化、显式处理约束等优势,特别适合自动驾驶中对安全性要求高的场景,如轨迹跟踪、车道保持、联合纵横向控制、自动泊车和动态避障等。MPC通过状态空间模型预测系统行为,在每个控制周期计算未来N步的控制

swaggytiger的博客 7919

10种自动驾驶规控算法解析与实现,你都知道吗?

规划控制是自动驾驶的核心模块之一,它是整个自动驾驶算法流程中最下游的模块,直接决定着自动驾驶的安全性及舒适度。自动驾驶的规划控制又细分为诸多模块,从导航地图中的路径规划开始,行驶过程中会根据感知与定位的信息不断做出变道或者跟车等不同的决策。根据上游决策的结果,运动规划模块实时输出舒适安全的轨迹信息以及速度、加速度和方向盘转角信息,交由控制模块执行。目前企业界的主流规控算法包括PID, LQR, ...

CV_Autobot的博客 5063

自动驾驶控制算法——LQR控制算法

摘要:LQR(线性二次型调节器)是一种基于状态反馈的最优控制算法,通过最小化二次型性能指标(误差和能耗)实现最优控制。其核心是求解黎卡提方程得到反馈增益矩阵K,使系统在误差最小化和控制能量最小化之间取得平衡。LQR具有多变量耦合处理能力、实时性强和理论最优性等特点,广泛应用于自动驾驶轨迹跟踪、车道保持等场景。通过调整Q(状态加权)和R(控制加权)矩阵可优化系统性能,如跟踪精度与舒适性的权衡。案例分析表明,LQR即使在非线性系统中也能有效工作。

swaggytiger的博客 1995

自动驾驶控制算法——PID算法

自动驾驶中的PID控制算法摘要 PID控制算法是自动驾驶系统中实现车辆运动控制的经典方法。该算法通过比例(P)、积分(I)、微分(D)三环节协同工作:比例项快速响应当前误差,积分项消除稳态误差,微分项预测变化趋势抑制振荡。在自动驾驶应用中,PID常用于速度控制(纵向)和路径跟踪(横向)场景,其优势在于算法简单、响应迅速。典型案例分析表明,合理调节P、I、D参数可有效平衡系统响应速度和稳定性,其中比例系数决定基本控制强度,积分系数消除长期偏差,微分系数抑制超调。PID算法特别适合低速或规则场景下的车辆控制任务

swaggytiger的博客 2481

几种简单的自动驾驶控制算法【一看就会】【MPC,NMPC,LQR,PID】

这里光讲控制算法,下一篇文章再讲在自动驾驶中的运用好久不见,之前讲了车辆运动学和动力学模型,让我们对需要控制的车辆有了数学模型,今天我们讲一下几种在自动驾驶领域常见的控制算法,为下一步我们控制汽车进行准备。本次主要讲的控制算法有四种,分别是PID,LQR,MPC和NMPC其中NMPC是我研究生课题做过一部分,但好像实际中没什么人用。其他三种都很常见,是在自动驾驶领域还有别的机器人领域常见的基础控制算法。里面没有代码,想复制的先不用进来,等我之后有空了写了给贴进来。

weixin_48386130的博客 8239

自动驾驶——自动控制方法总结

工程中所使用的PID算法原理和上述一致,但是会更具有工程性,考虑的因素更多,在学校里所学的P/I/D就三个参数,看起来很容易,很简单。实际上并不是如此,我们的pid参数会考虑不同的车速段查表啊、不同的转角差查表啊、不同的道路曲率查表啊、不同的偏离速度查表啊、不同的横向距离查表,总之是看实车的运行效果,是复杂点,但是很有效。笔者进入该行业不到一年,所接触的控制方法主要是PID算法,LQR算法笔者已经和同事一起开发出最初的版本,后续还要优化,在优化中,不断提高自己的工程能力和研发工程师应该具有的经验。.....

qq_40464599的博客 2696

【自动驾驶】控制算法(一)绪论与前期准备

各位小伙伴们大家好,本篇博客开一个新的系列,自动驾驶控制算法。内容整理自 B站知名up主 忠厚老实的老王 的视频,作为博主的学习笔记,分享给大家共同学习。   自动驾驶是比较新、也比较火的技术,这个系列介绍自动驾驶关于控制方面的算法。   在开启这一系列的介绍之前,要先提醒大家一句:请以审慎批判和怀疑的眼光审视目前市面上所有关于自动驾驶技术方面的书籍、教程、文献以及论文。其原因在于,新兴技术往往伴随着模糊性和争议性。自动驾驶技术,作为一项相对较新的领域,自然也不例外。

Hello!大家好,我是清流君,愿我的分享能助您一臂之力。荣幸与您共探移动机器人世界!✨ 2392

无人驾驶车辆MPC控制算法程序完整实现

无人驾驶汽车的硬件系统集成是将多个复杂的硬件组件整合成一个高效协同工作的整体。这包括但不限于感知系统(如雷达、摄像头、激光雷达等),控制系统(如ECU、线控转向、线控制动等),计算平台(如GPU、FPGA、专用AI处理器等),以及通信模块(如V2X通信系统)。每一个组件都必须精确地执行其功能,并且与其他组件无缝集成,以确保整个系统的响应速度、精确度和可靠性符合安全标准。

weixin_32535825的博客 2037

无人驾驶PID控制算法实战详解

PID控制算法是一种广泛应用于工业控制系统的反馈回路技术。它通过比例(Proportional)、积分(Integral)、微分(Derivative)三个环节的作用,实现对系统的精确控制。每一个环节负责处理控制过程中不同的动态特性,组合使用可以有效地减少误差并提升系统响应速度和稳定性。自动驾驶系统是一个集成了多种技术的复杂系统,其核心目标是实现车辆在没有人为干预的情况下安全地运行。为了达成这一目标,自动驾驶系统主要可以分为三个层次:感知层、规划层和控制层。以下将对这些层次进行详细解读。

weixin_42502089的博客 1781

自动驾驶控制算法(一)——绪论、前期准备

本人已经投身自动驾驶行业,在某国内头部OEM,做过一年的视觉,目前正在研究规划控制,查过不少的资料、论文,但总觉得自己还未真正入门,有幸了解到B站Up主:忠厚老实的老王,讲解的自动驾驶控制算法,所以本系列的知识基本都基于他的视频进行学习总结,也当做自己的一个学习笔记。

MASTER_DS的博客 301

1.47寸ST7789V3彩屏硬件设计与驱动调试指南

TFT LCD是一种基于薄膜晶体管阵列控制像素明暗的主动式显示技术,其核心依赖于专用驱动IC(如ST7789V3)完成时序生成、GRAM管理与伽马校正。该类小尺寸彩色显示屏广泛应用于嵌入式HMI、IoT终端与可穿戴设备,具备高PPI、低功耗和SPI接口易集成等工程优势。理解RGB565数据格式、SPI Mode 0通信时序及关键寄存器(如0x36方向控制、0x3A像素格式、0x2A/0x2B地址窗口)是实现稳定显示的基础;而正确处理电源设计(严禁5V直供)、复位时序与背光PWM调光,则直接决定系统可靠性与能

weixin_30995917的博客 165

自动驾驶控制算法(一) - 三个坐标系和车辆运动学模型

自动驾驶控制算法中三个坐标系和车辆运动学模型

Make something people want. 7503

开源滑翔伞升降速度表:基于STM32与传感器融合的DIY飞行仪表

传感器融合是现代嵌入式系统与物联网设备中的核心技术,它通过整合多个传感器的数据,利用滤波与估计算法,获得比单一传感器更精确、更可靠的环境感知能力。其技术价值在于提升系统的鲁棒性、精度和上下文理解能力,广泛应用于无人机导航、可穿戴设备、工业监测及智能驾驶等领域。本文聚焦于一个具体的工程实践案例——开源多功能滑翔伞升降速度表(Open-Vario),该项目巧妙地运用了**卡尔曼滤波器**进行气压与GNSS数据的融合,以精确计算升降率,并基于**FreeRTOS**实时操作系统构建了一个稳定、可扩展的嵌入式平台,

weixin_33657398的博客 176

新手必看:手把手教你如何通过Github提交CVE漏洞(附完整截图流程)

本文为安全研究新手提供了一份详尽的CVE漏洞提交实战指南。文章重点介绍了如何通过Github平台,从漏洞发现、验证、撰写专业报告到最终提交CVE申请的全流程,并附有完整的截图和沟通模板,帮助初学者迈出负责任漏洞披露的第一步。

ttt77的博客 1252

【自动驾驶】- MPC模型预测与控制算法(一)

本文系统介绍了模型预测控制(MPC)的原理、特点及在自动驾驶中的应用。MPC是一种基于模型、滚动优化和反馈校正的先进控制算法,具有处理多约束、多目标优化和前瞻预测等核心优势。文章详细阐述了MPC的三要素(模型预测、滚动优化、反馈校正)和控制原理框图,对比分析了MPC与PID、LQR的控制特性差异,并推导了线性时变MPC的预测方程和优化求解过程。在自动驾驶领域,MPC适用于车道保持、自适应巡航、自动泊车等复杂场景,其滚动优化机制通过实时反馈校正提升了系统鲁棒性。尽管存在计算量大的缺点,MPC仍是自动驾驶控制的

m0_73931287的博客 964

C# OpenCV机器视觉:红外体温检测

阿强长舒一口气,脸上露出了自信的笑容:“好了,万事俱备,只欠东风,接下来就看我的了!在这热图像里,不同的颜色代表着不同的温度区域,就好比一幅用温度绘制的抽象画,红色通常表示高温,蓝色则代表低温,通过解读这幅画,就能大致了解物体表面的温度分布情况。” 阿强兴奋得一拍大腿,“这不就像是找到了隐藏在黑暗中的线索,只要顺着这些红外线的踪迹,就能揪出体温异常的潜在风险,守护大家的健康啦。带着这份坚定的信念,阿强又投入到新的科技研发中,他相信,只要大家齐心协力,用科技点亮希望之光,就一定能迎来更加美好的明天。

xcwzj123的专栏 3149

b站老王 自动驾驶控制算法 第八讲(一)

weixin_45884626的博客 312

医学影像处理实战:用SimpleITK将CT数据重采样到统一尺寸(附完整代码)

本文针对医学影像分析中多源CT数据尺寸不一致导致深度学习模型训练失败的问题,提供了基于SimpleITK的实战解决方案。通过深入解析图像尺寸与间距的关系,详细阐述了如何通过调整体素间距进行重采样,而非简单补零,从而在保持图像物理尺寸不变的前提下,将数据统一到固定尺寸,确保输入网络的3D数据空间对齐且解剖信息准确。

weixin_29062671的博客 269

ROS应用之如何配置RTOS满足机器人系统中的实时要求

实时操作系统(RTOS)基本概念实时操作系统(RTOS)是设计用于实时应用的操作系统,其主要目标是在确定的时间内完成任务。RTOS的任务调度算法和优先级控制机制能够确保高优先级任务按时完成。精确的传感器数据采集:传感器数据需要在规定时间内采集并传输给控制系统。快速响应外部事件:对于控制系统,需要确保指令在最短的时间内得到响应。任务的调度周期:任务的周期可以通过公式计算,其中 ftask 是任务的调度频率。优先级分配。

weixin_68094467的博客 1007

自动驾驶控制算法-横向控制与流程&代码仿真

本文是学习自动驾驶控制算法第八讲(一)横向控制算法与流程图以及后续两节的学习笔记。

qq_42846675的博客 1260

Sigrity System Explorer Transient Analysis模式进行瞬态仿真分析操作指导-差分信号

Sigrity System Explorer Transient Analysis模式可以用于瞬态仿真分析,通过搭建简易拓扑用于前仿真分析通道的时域性能,下面搭建一个简易的差分拓扑进行说明,以下图为例,准备好发送接收端的IBIS模型, (ibis_se.ibs,本例发送接收端都使用相同的IBIS模型),以及传输线的S参数模型(welement_se.sp)最上方的图形界面是传输线的模型,本例是一个上下都有参考平面的带状线,右侧的梯形是蚀刻角度,根据W1和W2以及铜厚来确定。

weixin_54787054的博客 438

无人驾驶方程式/运动控制/局部路径规划/模型预测控制——MPCC (占坑待更新)

MPCC 简述: 横纵向动力学耦合控制的MPC,实现了 局部路径规划 + 边界跟随 的功能。 线性化方法——一阶泰勒近似,分别对 动力学模型、目标函数 都做了线性化处理。 离散化方法——零阶保持 背景: 大名鼎鼎的AMZ无人驾驶车队在14年左右提出的算法,文献介绍是: 《Optimization-based autonomous racing of 1:43 scale RC ...

qq_38455100的博客 4512

数据库课程案例——电力公司收费管理系统分析与实践,完整带SQL语句

某电力公司收费管理信息系统实现客户信息、用电类型(类别号、类别名、电价)及业务员管理;实现客户用电信息管理(客户号、月份、用电类别号、用电度数);实现客户费用管理(客户号、月份、费用、收费标志),收费标志的默认值为“未收”;实现收费登记(客户、月份、应收费用、实收费用、业务员),并自动修改收费标志(用触发器实现);创建触发器,实现收费时自动更加应收费用和实收费用,计算本次结余,然后修改客户信息表中的结余金额;创建存储过程统计指定月份应收费用和实收费用;创建存储过程查询指定月份未交费的用户信息,以便崔费;创建

qq_44242804的博客 2761

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: Apollo规划模块学习(一)
下一篇: 自动驾驶-控制算法(二)
Shoulderc
博客等级 码龄6年 124粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值