规划决策算法(四)---Frenet坐标系

知乎:坐标系转换

1.Frenet 坐标系

什么是 Frenet 坐标系:
为什么使用 Frenet 坐标系: 通常情况,我们只会关注车辆当前距离左右车道线的距离,来判断是否偏离车道,是否需要打方向盘进行方向微调。而不是基于汽车的出发点,那样就太远了
往往道路是弯曲的,在直角坐标系下要计算出车辆行驶的距离要考虑道路曲率会非常麻烦。而在Frenet坐标系中,原点所在参考线与车道中心线平行,容易确定车辆偏离车道中心线的距离以及车辆沿车道中心线的行驶距离。因此使用Frenet坐标系可以忽略道路曲率的影响,让道路表达更加直观、简洁。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Frenet 坐标系相当于把道路抻直了

在这里插入图片描述

2.笛卡尔坐标系

在这里插入图片描述
在这里插入图片描述

3.两者转换

在实践中只需要记住结论
推导博客
在这里插入图片描述
某一时刻,假设车辆质心在全局笛卡尔坐标系下的坐标为(x,y)
**原点:**车辆质心到参考线上的投影点称为
原点切线方向称为s轴方向或纵轴方向
原点法线方向称为d轴方向或横轴方向
s:值指的是参考线上的原点与起点之间曲线的长度,也就是车辆在道路上的纵向行驶距离。
d:值指的是原点与车辆质心之间的距离,也就是车辆偏离道路中心线的距离。
车辆质心随着时间在不断变化,因此Frenet坐标系的原点也在不断变换,所以Frenet坐标系是一个移动坐标系。

4.存在的问题

输入的坐标往往是笛卡尔坐标,在中间预测轨迹时使用 Frenet 坐标,最后输出给下游时还要转换成笛卡尔坐标,所以需要将 Frenet 和笛卡尔坐标之间相互转换,但是将 Frenet 坐标转为笛卡尔坐标会有以下问题
在这里插入图片描述

5.参考线生成

如果 Frenet 坐标建立的不够精确就会导致问题越明显,所以参考线的生成要满足一下约束,最终效果生成一条平滑的曲线 :
在这里插入图片描述

S1 :插值扩充点的个数

在这里插入图片描述
S2:将点与点之间变得平滑

a. 考虑为了使连接成的轨迹尽可能满足平滑的要求,参考线之间应该又怎样的性质?

    1. 直线平滑度最高,自车行驶也最容易;对应图中theta越小、|P2P4|越小则越接近直线,如果 thete 很大就会是一条直线
    1. 行驶距离越短越好,所以相邻两点距离和应该越小越好 m i n ∑ ∣ ∣ P k P k − 1 ∣ ∣ 2 min\sum ||P_{k}P_{k - 1}||_{2} min∣∣PkPk12
    1. 点间距越均匀越好 m i n { a b s ( ∣ ∣ P k + 1 P k ∣ ∣ 2 − ∣ ∣ P k P k − 1 ∣ ∣ 2 ) } min\left \{ {abs(||P_{k+1}P_{k}||_{2} - ||P_{k}P_{k-1}||_{2})} \right \} min{abs(∣∣Pk+1Pk2∣∣PkPk12)}
    1. 为了避免调整位置前后轨迹变化太大,应该限制每个点可以偏移原始点的位置,
      同时最小化偏移距离 m i n ∑ ∣ ∣ P k P k ′ ∣ ∣ 2 min\sum ||P_{k}P_{k}{'}||_{2} min∣∣PkPk2

b. 把这个问题用数学表达式写出来:考虑上面提到的性质,把不满足上述性质的程度记作J,根据上面的描述,J应该包含下面几项,注意式中都对距离取了平方,取平方可以提升计算效率
1. 平滑代价: ∑ ∣ ∣ 2 P k − P k − 1 − P k + 1 ∣ ∣ 2 2 \sum ||2P_{k} - P_{k - 1} - P_{k + 1}||_{2}^{2} ∣∣2PkPk1Pk+122
2. 偏移代价: ∑ ∣ ∣ P k P k ′ ∣ ∣ 2 2 \sum ||P_{k}P_{k}{'}||_{2}^{2} ∣∣PkPk22
3. 距离代价: ∑ ∣ ∣ P k P k − 1 ∣ ∣ 2 2 \sum ||P_{k}P_{k - 1}||_{2}^{2} ∣∣PkPk122(此部分代价同时可以反应均匀性)
c. 每个点还应该满足位置限制条件,也就是将每个点限制在框中
1. x m i n < = x k − x k ′ < = x m a x x_{min} <= x_{k} - x_{k}^{'} <= x_{max} xmin<=xkxk<=xmax
2. y m i n < = y k − y k ′ < = y m a x y_{min} <= y_{k} - y_{k}^{'} <= y_{max} ymin<=ykyk<=ymax
d. 于是,我们想让参考点变得符合我们对中心线预期的问题,就变成了下面这样一个数学问题,在满足限制条件的情况下,使得J的值最小,其中w表示各个项目的重要程度;
1. m i n { J = w 1 ∑ ∣ ∣ 2 P k − P k − 1 − P k + 1 ∣ ∣ 2 2 + w 2 ∑ ∣ ∣ P k P k ′ ∣ ∣ 2 2 + w 3 ∑ ∣ ∣ P k P k − 1 ∣ ∣ 2 2 } min\left \{ J = w_{1}\sum ||2P_{k} - P_{k - 1} - P_{k + 1}||_{2}^{2} + w_{2}\sum ||P_{k}P_{k}{'}||_{2}^{2} + w_{3}\sum ||P_{k}P_{k - 1}||_{2}^{2} \right \} min{J=w1∣∣2PkPk1Pk+122+w2∣∣PkPk22+w3∣∣PkPk122}
2. s.t. x m i n < = x k − x k ′ < = x m a x x_{min} <= x_{k} - x_{k}^{'} <= x_{max} xmin<=xkxk<=xmax y m i n < = y k − y k ′ < = y m a x y_{min} <= y_{k} - y_{k}^{'} <= y_{max} ymin<=ykyk<=ymax
e. 问题求解,这其实是一个标准的二次规划问题,调用OSQP这个运算库就可以求解出来结果
1. 二次规划问题:目标函数是凸二次函数(最高次数为2,且为凸函数),约束条件是线性函数
2. 二次规划问题的标准形式 m i n   1 2 x T H x + q T x s . t .      a T x = b   h T x < = t \begin{array}{l} min\ \frac{1}{2} x^{T}Hx + q^{T}x \\ s.t.\ \ \ \ a^{T}x = b \\ \ h^{T}x <= t \end{array} min 21xTHx+qTxs.t.    aTx=b hTx<=t

上方是问题的形式,下方的问题的约束

6.Frnet 坐标转笛卡尔坐标

龙格现象:
虽然高次多项式会拟合出一条更精确的曲线,但是当次数变高是会出现震荡的现象,所以我们应该使用低次多项的方式拟合一条曲线
在这里插入图片描述
微分基本公式及法则
在这里插入图片描述

  • 14
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Frenet坐标系是一种常用于无人驾驶路径规划中的局部路径规划方法。它是由两个坐标系组成的,分别是Frenet纵向坐标系和横向坐标系。 Frenet纵向坐标系主要用于描述车辆在路径上的纵向运动,它的原点位于路径上的某一点,纵轴与路径的切线方向一致。其中,s轴表示纵向距离,表示车辆在路径上行驶的位置。而d轴表示横向距离,表示车辆在路径上的横向偏移量,即车辆离路径的距离。 Frenet横向坐标系用于描述车辆在路径上的横向运动,它的原点也位于路径上的某一点,横轴与路径的法向方向(垂直于切线方向的方向)一致。其中,l轴表示横向距离,表示车辆在路径的左右偏移量,即车辆相对于路径的位置。而r轴表示横向曲率半径,表示车辆所在位置的曲率半径,它与路径的曲率有关。 使用Frenet坐标系进行路径规划时,首先需要根据路径曲线,将路径离散化为一系列的路径点。然后,根据车辆当前状态(包括位置、速度、加速度等),在Frenet坐标系下进行规划。局部路径规划的目标是生成一条较短且安全的路径,能够使车辆沿着路径稳定行驶。 在Frenet坐标系下,路径规划算法主要涉及到横向运动和纵向运动的规划。横向运动规划主要考虑车辆与车道的对齐以及避免碰撞等因素,通常使用虚拟弓形路径或者多项式拟合等方法进行规划。纵向运动规划主要考虑车辆的速度和加速度等因素,以及与前车的保持安全距离和行驶速度的匹配等要求,一般采用经典的PID控制方法或者模型预测控制等技术。 总之,Frenet坐标系是无人驾驶路径规划中一种常用的局部路径规划方法,通过将车辆位置在路径上的纵向和横向运动分解为Frenet坐标系下的变量,并结合车辆动力学和环境约束,可以实现车辆的稳定行驶和避免碰撞等目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值