0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Frenet坐标系,自动驾驶“混乱”的源头

jf_C6sANWk1 来源:阿宝1990 2023-04-03 10:16 次阅读

人类驾驶员在道路上开车的时候,没有人会去基于当前距离出点的横向和纵向距离是多少,而去决定下一步的方向盘转角大小。通常情况,我们只会关注车辆当前距离左右车道线的距离,来判断是否偏离车道,是否需要打方向盘进行方向微调。

自动驾驶运动规划也在效仿这一过程,而为了让这一过程得以实施,2010年,BMW的Moritz Werling在2010年的论文《Optimal Trajectory Generation for Dynamic Street Scenarios in a Frene´t Frame》中提出了Frenet坐标系。

没错,还是国外人发明,我们整天鼓吹自动驾驶第一大国,但看看自动驾驶常用的基础理论、经典架构、基础软件、经典算法……,有多少是我们的发明创造!每个场景都炒一波自动驾驶概念,每个概念都拉一波融资,每一波融资都用来重复造轮子……。大而不强,是自动驾驶继承自汽车产业的顽疾。

Frenet坐标下的出现,让规划、控制有了方向,但也从此开启了自动驾驶万国混战的源头。

01Frenet坐标系的定义

Frenet坐标系的建立基于一个参考线,这个参考线可以是任意曲线,但在自动驾驶运动规划中一般定义为道路的中心线,这条中心线是地图模块输入过来的一系列离散点。同时使用参考线的切线向量和法线向量建立一个直角坐标系,如图1所示,这个坐标系就是Frenet坐标系。

edd2af6e-d1c4-11ed-bfe3-dac502259ad0.png

图1 Frenet坐标系示意图

某一时刻,假设车辆质心在全局笛卡尔坐标系下的坐标为(x,y),车辆质心到参考线上的投影点称为原点,原点切线方向称为s轴方向或纵轴方向,原点法线方向称为d轴方向或横轴方向。纵坐标s值指的是参考线上的原点与起点之间曲线的长度,也就是车辆在道路上的纵向行驶距离。横坐标d值指的是原点与车辆质心之间的距离,也就是车辆偏离道路中心线的距离。车辆质心随着时间在不断变化,因此Frenet坐标系的原点也在不断变换,所以Frenet坐标系是一个移动坐标系。

02为什么使用Frenet坐标系

(一)道路表达直观

假设现在我们知道笛卡尔坐标系下车辆的位置为(x,y),在道路通常都有一定曲率的背景下,从这个坐标中我们无法得知道路在哪里,也不知道车辆行驶了多远,更难以确定它是否偏离车道中心。当然我们可以从输入的高精地图数据进行计算获得上述数据,但是计算量太大,因此用笛卡尔坐标系描述道路会非常复杂。

而在Frenet坐标系中,横轴和纵轴相互垂直且原点所在参考线与车道中心线平行,容易确定车辆偏离车道中心线的距离以及车辆沿车道中心线的行驶距离。因此使用Frenet坐标系可以忽略道路曲率的影响,让道路表达更加直观、简洁。

(二)简化路径规划问题

运动规划是为了获得车辆在未来一段时间内具有前瞻性的行驶轨迹,这个轨迹是一种由二维空间和一维时间组成的三维空间中的曲线。

在笛卡尔坐标系下,整车的横向运动、纵向运动耦合在一起,想要计算清楚两者的关系还是需要费一番苦力的。而在Frenet坐标系中,距离参考线的位置可以使用纵向距离s和横向距离d分别表示,而通过对时间分别求导,又可以得到纵向运动速度和横向运动速度。

车辆的二维运动问题在Frenet坐标系下被解耦成两个一维运动问题,而一维优化问题要比二维优化问题更容易容易求解。因此相比于笛卡尔坐标系,Frenet坐标系可以明显地简化运动规划问题,这就是运动规划中笛卡尔坐标系转换为Frenet坐标系的必要性。

下面我们用一个例子来解释Frenet坐标系的这种降维作用。假设行为决策层判断前方有低速行驶的车辆,随后在t0时刻做出了一个在t1时刻完成变道的决策。即车辆需要在Δt=(t1-t0)时间内,横向上需要完成一个Δd以及纵向上完成一个Δs的移动。如图2所示,我们可以将s和d分别表示为关于t的函数:s(t)和d(t),这样二维运动规划问题被分割成了两个独立的一维优化问题。

ede535e4-d1c4-11ed-bfe3-dac502259ad0.png

图2 Frenet坐标系下运动规划示例

03Frenet坐标系与笛卡尔坐标系转换

要使用Frenet坐标系进行运动规划,就需要将笛卡尔坐标系下的车辆状态转化为Frenet坐标系下的状态。由于公式太多,只能采用图片方式呈现后续内容。

edf7774a-d1c4-11ed-bfe3-dac502259ad0.png

图3 Frenet坐标系和笛卡尔坐标系下的状态表示

ee108cee-d1c4-11ed-bfe3-dac502259ad0.png

ee2193cc-d1c4-11ed-bfe3-dac502259ad0.png

ee389de2-d1c4-11ed-bfe3-dac502259ad0.png

ee4cf486-d1c4-11ed-bfe3-dac502259ad0.png

ee68182e-d1c4-11ed-bfe3-dac502259ad0.png

ee82e79e-d1c4-11ed-bfe3-dac502259ad0.png

ee9507d0-d1c4-11ed-bfe3-dac502259ad0.png

eeb644e0-d1c4-11ed-bfe3-dac502259ad0.png

eecc1ed2-d1c4-11ed-bfe3-dac502259ad0.png

eedd73d0-d1c4-11ed-bfe3-dac502259ad0.png

eef04e38-d1c4-11ed-bfe3-dac502259ad0.png

ef02b0d2-d1c4-11ed-bfe3-dac502259ad0.png

ef17ce5e-d1c4-11ed-bfe3-dac502259ad0.png

ef30ab04-d1c4-11ed-bfe3-dac502259ad0.png

ef43de0e-d1c4-11ed-bfe3-dac502259ad0.png

ef561b78-d1c4-11ed-bfe3-dac502259ad0.png

基于Frenet坐标系进行运动规划,将输出单独的横、纵向轨迹,而最终输出到自动驾驶车辆参考运动轨迹需要可直接被控制模块所应用,因此最后还需要把Frenet坐标系下得到的轨迹转化到一个全局笛卡尔坐标系中。逆过程过于简单,下面直接给出结论。

ef72874a-d1c4-11ed-bfe3-dac502259ad0.png

04写在最后

Frenet坐标系的熟练掌握,应该是规划控制入门的第一课,也是开启你自动驾驶混乱时代的第一课。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制模块
    +关注

    关注

    2

    文章

    119

    浏览量

    18635
  • 向量
    +关注

    关注

    0

    文章

    55

    浏览量

    11589
  • 自动驾驶
    +关注

    关注

    773

    文章

    13060

    浏览量

    163236

原文标题:Frenet坐标系,自动驾驶“混乱”的源头

文章出处:【微信号:阿宝1990,微信公众号:阿宝1990】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MATLAB建立和控制图形窗口和坐标系命令

    MATLAB建立和控制图形窗口和坐标系命令建立和控制图形窗口 Figure 建立图形 Gcf 获取当前图形的句柄 Clf 清除当前图形 Close 关闭图形 建立和控制坐标系
    发表于 09-22 16:00

    如何使labview中xy图的坐标系与栅格坐标系一致

    如何使labview中xy图的坐标系与栅格坐标系一致
    发表于 01-25 21:44

    如何建立坐标系

    各位大神们如何在labview中建立坐标系啊(对一张图片),感谢各位大神的回复
    发表于 05-03 10:04

    坐标系与ROI同步旋转问题

    `如何建立一个具有特定角度的坐标系,并让矩形ROI随坐标系旋转?`
    发表于 09-18 13:41

    坐标系转换与手眼标定

    首先坐标系转换的变换矩阵(没有坐标系矩阵变换的概念可先百度)如图:
    发表于 06-20 18:34

    如何更改mpu6050的DMP使坐标系跟原坐标系一致?

    如果我的坐标系跟原坐标系不一致,(例如我现在的X轴是原来Y轴的反方向,现在的Y轴是原来的X轴,Z轴不变)更改姿态程序的什么地方,我用的是战舰板的MPU6050软件
    发表于 07-22 03:05

    如何计算才能把坐标系转换成水平的坐标系

    当mpu6050初始放置的时候是倾斜的,如何计算才能把坐标系转换成水平的坐标系?转换后的效果是保证倾角不变,水平转动mpu,出来的数据是水平转动的。我用当前四元数与初始的四元数做差,得到的四元数坐标系还是与mpu
    发表于 07-31 22:19

    CAD制图软件新手攻略:坐标系及标注坐标

    浩辰CAD制图软件为绘图空间提供了一个绝对的坐标系,并称之为世界坐标系,这个坐标系存在于任何一个图形之中,而且不可更改。相对于世界坐标系,用户可根据需要创建无限多的CAD
    发表于 09-23 10:28

    解决电压方程在静止坐标系与运动坐标系转换问题

    本文将解决电压方程在静止坐标系与运动坐标系转换问题。本文将呈现的转换关系是电压方程由静止坐标系转换至运动坐标系,反之同理可证。
    发表于 08-27 07:17

    介绍坐标系和机器人之间的纽带即连杆坐标系

    目录1. 引言2. 连杆坐标系3 DH参数3.1 DH参数的介绍3.2 DH参数定义3.2.1 连杆长度和扭角3.2.2 连杆转角和连杆偏距4. 解决问题5. 总结1. 引言  前面的文章我们一直在
    发表于 09-01 06:17

    一种基于Frenet坐标系的优化轨迹动作规划方法

    本文介绍一种基于Frenet坐标系的优化轨迹动作规划方法,该方法在高速情况下的高级车道保持和无人驾驶都具有很强的实用性,是目前普遍采用的一种动作规划算法。
    的头像 发表于 07-09 09:33 1.3w次阅读
    一种基于<b class='flag-5'>Frenet</b><b class='flag-5'>坐标系</b>的优化轨迹动作规划方法

    自动驾驶各个坐标系

    ENU局部坐标系采用三维直角坐标系来描述地球表面,实际应用较为困难,因此一般使用简化后的二维投影坐标系来描 述。 UTM:在众多二维投影坐标系中,统一横轴墨卡托(The Unive
    发表于 06-01 15:59 0次下载
    <b class='flag-5'>自动驾驶</b>各个<b class='flag-5'>坐标系</b>

    自动驾驶中的各种时空坐标系

    介绍自动驾驶技术中几种常用的坐标系统,以及他们之间如何完成关联和转换,最终构建出统一的环境模型。 所谓时空坐标系,包括三维空间坐标系和一维时间坐标
    发表于 06-02 15:44 0次下载
    <b class='flag-5'>自动驾驶</b>中的各种时空<b class='flag-5'>坐标系</b>

    自动驾驶里面的三个坐标系

    自动驾驶里面会有三个坐标系.其中自然坐标系是指以我们规划的轨迹,建立的自然坐标系。使用自然坐标系的目的是要使控制算法的使用变得简单。自然坐
    发表于 06-06 09:56 0次下载
    <b class='flag-5'>自动驾驶</b>里面的三个<b class='flag-5'>坐标系</b>

    自动驾驶规划算法基础之frenet与笛卡尔cartesian坐标系的转换

    该笔记来自b站up主(偶像):憨厚老实的老王 B站视频链接跟着老王的视频手写推了一遍公式,这酸爽! csdn中推导公式比较好的博主: Frenet坐标系与Cartesian坐标系互转
    发表于 06-06 10:01 2次下载
    <b class='flag-5'>自动驾驶</b>规划算法基础之<b class='flag-5'>frenet</b>与笛卡尔cartesian<b class='flag-5'>坐标系</b>的转换