后轴反馈控制——frenet坐标的一个应用

本文探讨了自动驾驶路径跟踪控制的稳定性问题,利用李雅普诺夫第二方法分析了Frenet坐标系下的横向偏差和航向角偏差。提出了两种不同的系统状态方程和相应的李雅普诺夫函数设计,通过控制车辆的角速度ω来实现系统渐进稳定。第一种方案中,ω的设计考虑了速度、曲率和偏差角度;第二种方案则基于车辆的加速度和曲率。文章还给出了Python代码示例,展示了实际的控制算法实现。

0. 参考文献

前置
【1】https://blog.csdn.net/l898985121/article/details/109048855
这个是之前写的一篇文章,讲了frenet坐标的推导过程
【2】https://blog.csdn.net/l898985121/article/details/115702160
前面写的关于李雅普诺夫稳定的一篇转载文章
参考
【3】https://zhuanlan.zhihu.com/p/46377932
【3.1】https://arxiv.org/abs/1604.07446
这个是横向控制综述,看里面的后轴反馈方法
【4】https://github.com/AtsushiSakai/PythonRobotics/blob/master/PathTracking/rear_wheel_feedback/rear_wheel_feedback.py
这个是后轴反馈控制的python代码

1. 简单推导

1.1 frenet 坐标

长成这个样子:
在这里插入图片描述
从这个当中,我们选择后面两行,构成一个非线性的系统方程,系统的状态量是横向偏差 e e e和航向角偏差 ψ e \psi_e ψe。我们可以控制的输入是 ω \omega ω
当然也可以选择其他的状态量当做系统方程,这个在后文答案二中讨论

1.2 笔者的思路

然后,采用李雅普诺夫第二方法,寻找一个状态量的方程 V ( x ) V(\pmb{x}) V(xxx),也就是 V ( e , ψ e ) V(e,\psi_e) V(e,ψe),满足三个条件,就能得到一个渐进稳定的系统,为了满足这三个条件,我们需要设计 ω \omega ω

我们选择的一个李雅普诺夫函数如下:
V ( e , ψ e ) = e 2 + ψ e 2 V(e,\psi_e) = e^2 + \psi_e^2 V(e,ψe)=e2+ψe2
求导得到:
V ˙ = 2 e e ˙ + 2 ψ e ψ ˙ e \dot{V}=2e\dot{e}+2 \psi_e \dot{\psi}_e V˙=2ee˙+2ψeψ˙e
将上面的状态方程带入,得到:
V ˙ = 2 e v r sin ⁡ ( ψ e ) + 2 ψ e ( ω − v r κ cos ⁡ ( ψ e ) 1 − κ e ) \dot{V}=2 e v_r \sin (\psi_e) + 2 \psi_e (\omega - \frac{v_r \kappa \cos (\psi_e)}{1- \kappa e}) V˙=2evrsin(ψe)+2ψe(ω1κevrκcos(ψe))
观察上面这个式子,如何设计一个 ω \omega ω,使得这个式子小于0(系统渐进稳定)。

后续:这里其实确实可以瞎J设计,只要稳定就行,然后通过添加奇怪的系数k,可以进一步控制系统收敛的过程。

下面让我们先看几个答案

1.3 答案一

来自《A Survey of Motion Planning and Control Techniques for Self-driving Urban Vehicles》这篇文章
选择李雅普诺夫函数为:
V ( e , ψ e ) = e 2 + ψ e 2 k e V(e,\psi_e) = e^2 + \frac{\psi_e^2}{k_e} V(e,ψe)=e2+keψe2
求导得到:
V ˙ = 2 e e ˙ + 2 ψ e ψ ˙ e k e \dot{V}=2e\dot{e}+\frac{2 \psi_e \dot{\psi}_e}{k_e} V˙=2ee˙+ke2ψeψ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值