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

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

3天内不再提示

如何安全有效的规划自动驾驶汽车行驶路线?

ml8z_IV_Technol 来源:未知 作者:胡薇 2018-09-15 10:54 次阅读

事实上,路径规划技术,现阶段是一个非常活跃的研究领域。路径规划之所以如此复杂,是因为其涵盖了自动驾驶的所有技术领域,从最基础的制动器,到感知周围环境的传感器,再到定位及预测模型等等。准确的路径规划,要求汽车要理解我们所处的位置以及周边的物体(其他车辆、行人、动物等)会在接下来的几秒钟内采取什么样的行为。另一项关键技术是轨迹生成器(trajectory generator),其产生输入路径规划算法的参考轨迹。

本期算法分享,我们重点介绍一种基于C++开发的高速公路路径规划算法。该算法利用jerk minimisation技术,可在模拟器中生成安全且高效的行驶路径。

本算法的一些假设如下:

任何情况下,不会与其他车辆发生事故

最大行驶速度为80KMH

最大加速度为10m/s2

最大jerk为10m/s3

车辆在不同车道之间不超过3s

车辆不能超出高速的3条车道

车辆不能逆向行驶

自动驾驶汽车的功能层

首先,我们来详细的研究下自动驾驶汽车的功能层(Functional Layers)。

路径规划需要自动驾驶汽车不同功能层之间的合作、协调。上图给出了一个自动驾驶系统的功能层的配置形式:

动作控制层:负责控制汽车,使其尽可能的安按照“设定的”轨迹形式。该层需要最快的反映速度;

传感器融合层:负责合并个传感器的输出(如雷达和激光雷达)

定位层:负责尽可能准确的在地图上定位车辆的位置,并计算其他物体相对于车辆的位置

预测层:负责识别传感器检测到的物体的性质(又名感知),并根据汽车当前的轨迹、其他车辆的轨迹和场景中的各种元素(如交通灯)预测场景中近未来的变化。这个层的一个重要任务是预测冲突。

行为层:该层的主要作用是协调。根据底层的输入信息来决定如何调整行车轨迹

轨迹层:负责计算既定条件(速度、距离、车道、jerk等等)下的行车轨迹

生成行车轨迹的方法很多,这里我们采用了Frenet Coordiante System方法。

传感器融合层的意义

我们在模拟器中为车辆设置了一系列传感器,它们的输出融合在一起以产生更精确的测量结果。大多数在Level4上的自动驾驶汽车公司在他们的传感器套件中使用雷达、激光雷达和照相机。拥有多种不同类型的传感器至关重要,因为每种传感器都有各自的优缺点。此外,对于同种传感器进行冗余设计,可以减轻传感器故障带来的影响。

在本算法中,模拟器可以提供以下传感器融合功能:

车辆的位置、速度和方向

其他车辆的位置和速度

上次提交的车辆行驶轨迹

通过以上信息,我们可以计算车辆与其他车辆的准确距离,并通过行车轨迹来预测与其他车辆的碰撞可能性。

下面我们详细介绍轨迹生成器(Trajectory Generation)。

Frenet坐标系

通常,我们习惯使用笛卡尔坐标系来定义空间点的位置。但在现实中,道路往往不是“笔直”的,因此对于人类非常简单的操作(如判断车辆在哪条车道),在电脑的笛卡尔坐标系中,往往是难以准确定义的。下图展示了我们使用笛卡尔坐标系时所面临的问题:

笛卡尔坐标系中的曲线车道

设想一下,如果我们采用的坐标系可以反映道路的曲率,那么在新的坐标系下车辆向前行驶并保持在车道内的轨迹就会变成一条直线,这会大大简化路径规划的难度。而Frenet坐标系正可以实现我们的设想。

不同坐标系下的行车轨迹:

Frenet(左)vs 笛卡尔坐标系(右)

在Frenet坐标系中,可以平面上的点的位置可以由纵轴和横轴定位,分别记为S和D 。其背后的数学原理非常复杂,在此我们不进行累述。你可以认为穿过道路中心的曲线决定了S轴,并指出了车辆在路上走了多远;D轴则映射为车辆的侧向位移。下图显示了弯曲道路在Frenet坐标系上的样子:

行驶轨迹平滑处理

我们假设车道已经被预先映射,并且提供了沿着中黄线的路径点,这条中黄线分隔了公路的两边。这有助于我们确定我们在最近的路径点上的位置。

由于我们所设置的路径点非常稀疏,当我们试图将Frenet转换回真实世界坐标时,会产生带折角的轨迹。这反过来又会导致车辆突然的加速和颠簸。由于函数toRealWorld(s, d) -> (x, y)使用两个路径点之间的线性插值,来确定x和y的最佳逼近值,我们总是冒着产生非平滑轨迹的风险。

如何进行改善呢?在之前分享的算法中,我们发现由多项式拟合的曲线往往会产生非常平滑的轨迹。因此,我们用多项式拟合来替代线性插值。利用在Frenet坐标系中取位置s来创建样条,得到真实世界的坐标(x, y)和偏移量(dx和dy),然后代入这个公式,得到最接近真实世界的坐标点。

x=spline_s_x(s)+d*spline_s_dx(s)y=spline_s_y(s)+d*spline_s_dy(s)

可以看到,经过优化的行车轨迹非常平滑。

状态控制机制

路径规划的另一个问题是,人类可以根据驾驶方式、环境信息以及目的地,将汽车转换到不同的状态。事实证明,我们可以将机车辆的状态编入字典,并指导它们根据当前状态,将自动驾驶系统的其他层转换到哪些状态。

在算法中,我们的状态控制机制非常简单,如下所示:

最终的状态控制机制

最常见的状态是保持车道,但每当我们想要改变车道,汽车将首先过渡到准备换车道的左/右状态,并在确保转换车道是安全的。在换车道前进入的中间状态,类似于车辆在换车道前打开左/右信号

关于状态机的实现,我们在Frenet坐标上获得了灵感。我们将一个给定的状态分解为它的纵向和横向分量。纵向状态代表保持当前车道,横向状态代表我们可能会进入的下一个状态,而损失函数(Cost Function)则倾向于选择纵向状态。

损失函数

鉴于我们通常会返回多个候选状态以及轨迹,我们必须找到一种选择“最佳”行动路线的方法。我们用损失函数来解决该问题。损失函数可以教会汽车我们想要的合理行为,以及通过不同的权重来惩罚哪些行为。

我们所有的成本损失函数都遵循在cost_functions文件中定义的接口

typedeffunction&,constTrajectory&,constState&,constdouble&)>CostFunction;

最终结果

可以看到,当前我们设计的路径规划器运行得相当好,可以确保车辆在车道上安全有效的行驶。后续,我们计划通过调整权重、改进损失函数以及在预测层中加入机器学习算法来进一步优化。

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

    关注

    21

    文章

    2066

    浏览量

    72892
  • 自动驾驶汽车

    关注

    4

    文章

    374

    浏览量

    40701

原文标题:自动驾驶 | 高速公路行驶路径规划算法

文章出处:【微信号:IV_Technology,微信公众号:智车科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    谷歌的自动驾驶汽车是酱紫实现的吗?

    看到新闻报道说谷歌自动驾驶汽车已经行驶近30万公里了,非常的强大~~上次参加了重庆新能源汽车峰会,对会上富士通半导体宣讲的一款全景视频汽车
    发表于 06-14 16:15

    【话题】特斯拉首起自动驾驶致命车祸,自动驾驶的冬天来了?

    `特斯拉首起自动驾驶致命车祸,自动驾驶的冬天来了?“一个致命的事故一定是由多个小的错误组成的。”  7月初,特斯拉发表博客叙述了NHTSA(美国国家公路交通安全管理局)正在着手调查第一起Tesla
    发表于 07-05 11:14

    因为「不够安全」,我们就必须拒绝自动驾驶汽车上路?

    当提及自动驾驶汽车汽车行业本身在追问,***的规则制定者和安全倡导者们都在纠结一个基础的问题:究竟如何才是足够安全?这有点像是一场发生在
    发表于 04-08 11:17

    自动驾驶的到来

    得益于2025规划,中国整车厂与Tier1目前对于自动驾驶有极大的热忱及投入,有机会在这个领域实现弯道超车。目前的顾虑在于法规政策的制定,以及中国特色的交通情况带给自动驾驶的挑战。安全
    发表于 06-08 15:25

    AI/自动驾驶领域的巅峰会议—国际AI自动驾驶高峰论坛

    正与新的移动商业模式一起蓬勃发展。本次以人工智能作为自动驾驶核心的国际AI自动驾驶高峰论坛将汇聚全球汽车行业和半导体行业的核心参与者,深度剖析人工智能在汽车领域的突出发展,预测人工智能
    发表于 09-13 13:59

    UWB主动定位系统在自动驾驶中的应用实践

    周边对其安全行驶可能存在隐患的物体,为车辆的行为决策和路径规划提供可靠的信息源。随着自动驾驶热潮,众多企业涌入环境感知技术产品的研究,目前已取得阶段性进展。但成本过高、技术不成熟、国内外技术产品差距
    发表于 12-14 17:30

    车联网对自动驾驶的影响

    技能的自动驾驶汽车,可以通过对上海市所有车主的上下班时间收集,通过导航来统筹规划每辆车合适的出发时间,行驶路径,从而达到交通效率的最优解。再或者人类
    发表于 03-19 06:20

    如何让自动驾驶更加安全

    上市,自动驾驶汽车必须首先确保安全,毕竟我们开发自动驾驶汽车的初衷是相信自动驾驶
    发表于 05-13 00:26

    自动驾驶汽车的处理能力怎么样?

    作在未来20 - 30年中,自动驾驶汽车(AV)将改变我们的驾驶习惯、运输行业并更广泛地影响社会。 我们不仅能够将汽车召唤到我们的家门口并在使用后将其送走,
    发表于 08-07 07:13

    联网安全接受度成自动驾驶的关键

    技术发展已经不是实现自动驾驶汽车的最大阻碍。  举例来说,当无人自动驾驶汽车处于行驶状态,从自动驾驶
    发表于 08-26 06:45

    如何保证自动驾驶安全

    自动驾驶技术为人们勾勒出了一副美好的未来出行的画面:坐上没有方向盘的汽车,一觉睡到公司门口;甚至我们可能不再拥有一辆汽车,需要出门时共享自动驾驶汽车
    发表于 10-22 07:45

    2020年自动驾驶汽车成熟度指数分析

    区域化应用测试,为自动驾驶时代来临做好政策和数字基建支撑。 自动驾驶汽车正步入技术发展成熟期,各国中央和地方***通过多种关键政策和投资决策,使其能够在社会中实现安全有效的运用。
    发表于 01-22 06:01

    电子技术在汽车行驶安全上有哪些应用?

    汽车安全性的内容和影响因素是什么?电子技术在汽车行驶安全上有哪些应用?
    发表于 05-13 06:13

    自动驾驶技术的实现

    k随着汽车电子的日益复杂化以及汽车电子电气架构(EEA)的升级,人们对于联网智能汽车的需求也在逐步上升,大量先进技术往汽车上应用,如高级驾驶
    发表于 09-03 08:31

    智能汽车能否识别和绕开物体

    自动驾驶能否识别障碍物的能力与环境感知同等重要,如何安全有效规划行驶路线,是自动驾驶汽车需解决的最大的难题之一。
    的头像 发表于 04-17 16:16 2089次阅读