无引导线的左转场景下,自动驾驶如何规划轨迹?

[首发于智驾最前沿微信公众号]对于很多新手司机来说,在无引导线左转的场景中,开车会非常谨慎,但依旧会很好地处理好这一操作。但对于自动驾驶汽车来说,其行驶需要有较为明显的参考线,在没有白色虚线、没有箭头感知“我的车道在哪儿”的交通场景下,想要很好地处理好无引导线左转是一个非常大的挑战。但想要让自动驾驶汽车满足所有的出行需求,这一场景必须解决,那在无引导线的左转场景下,自动驾驶是如何进行轨迹规划的?

无引导线的左转需要哪些技术?

首先要明确一个核心问题,在无引导线场景中,轨迹规划不再只是“沿着车道中心走”。车道边界、道路几何甚至道路使用者的意图都可能不明确。系统必须在不确定性中做出选择,即确定哪条路径是“合法且合理”,在何时让出优先权、何时进攻性地切入间隙、如何保证乘客舒适同时满足动力学约束。实现这些目标,需要可靠的环境感知、准确的行为预测、稳健的行为决策(行为层规划)以及满足动力学与安全约束的轨迹生成与控制(轨迹层/运动层)等四个层次协同。

在感知层,自动驾驶首先要完成的是对环境要素的高精度检测与跟踪。摄像头负责识别交通标志、路缘、人行道和车辆外形,雷达在远距和恶劣天气下提供速度向量,激光雷达(若装备)能在三维点云中区分静态障碍与动态目标。但是在“无引导线”场景中,车道边界不能作为可靠参考,这时系统会把道路边缘(路肩、门廊、人行道边缘)以及其他道路使用者的走向作为替代参考。这一场景中,高精度定位(GNSS+IMU+视觉/激光定位)就非常重要,但在城市峡谷或隧道中高精度定位会出现漂移,因此传感器融合要提供一个稳定的参考系,使后续的预测与轨迹规划有一条可信的轨迹基准线。

预测层的目标是估计其他道路使用者在未来几秒内可能的轨迹分布。在无引导线交叉口,其他车辆的行为更具多样性,有人会减速让行,有人会抓住小间隙穿过去,还有些可能会加速抢行。预测模型通常要输出多模态的未来轨迹分布,每条轨迹带有概率权重。这其中常见的技术包括基于轨迹历史的物理模型、带社会力或交互项的学习模型,以及结合地图和意图理解的混合模型。必须强调的是,预测的不确定性是轨迹规划的核心输入之一,决策层不会仅采用“最可能”轨迹来评估碰撞风险,而是要对多种可能性做鲁棒(robust)处理,在概率空间上保证安全边界。

行为决策层(或称策略层)主要承担“我要怎么做”的问题,即确定是等待、向前探头、还是旋即转入?在无引导线左转中的决策过程往往比路径细节更重要。决策器需要综合法律规则(例如优先权)、当地驾驶文化(例如是否存在抢行现象)、实时交通密度、对方车辆速度与加速度趋势,以及自身车辆的性能限制来判定是否接受某个时间间隔(gap)。很多系统采用基于规则加概率的混合方法,在明确的规则场景下先用规则裁决(如“让行给迎面来车”),在规则模糊或场景复杂时引入基于代价/收益的优化或博弈模型来选择最优策略。更高级的做法会以概率安全边界为准——在任意预测下,选取能在给定置信度下避免碰撞的动作。

在轨迹生成层,系统需要把行为决策转化为具体的时间参数化路径(x(t),y(t),θ(t)),并保证该轨迹满足车辆动力学与乘客舒适性约束同时避开预测的动态障碍。常见方法可以分为采样生成与优化求解两大类。采样生成方法会在行为层给定的参考区域内生成大量候选轨迹(例如采样不同曲率、不同速度曲线),对每条候选轨迹进行碰撞检测、动力学可行性校验和代价评估,最终选取最优解。优化方法则把轨迹生成看成带约束的最优化问题,最小化一个或多个代价项(如轨迹偏离、加速度/加jerk惩罚、安全距离违约等),并通过数值求解器得到连续的轨迹。优化方法通常更平滑、参数更少,但对初始值和求解时间更敏感;采样方法更具全局性,但计算量大、需要有效的候选筛选策略。

无引导线的左转需要考虑哪些内容?

在无引导线的左转中,轨迹的基准坐标系非常重要。很多系统采用Frenet坐标系在已有参考路径上做横向轨迹优化,但当参考路径不存在时,必须先构造一个“临时参考线”。这个参考线通常基于道路几何(两侧道路中间连线或曲线拟合)和期望转弯弧线(例如圆弧或clothoid曲线)生成。生成参考线时要考虑转弯半径和车辆的最小转弯圈,同时预留给行人、自行车和其他车辆的安全空间。随后在该参考线的Frenet坐标下优化速度曲线与横向偏移,最终映射回全局坐标系。

对于汽车来说,安全是首要约束,在轨迹优化里常通过硬约束或高惩罚项来体现。硬约束直接禁止轨迹进入碰撞集合,而高惩罚项会在目标函数中强烈惩罚与其他物体间距过小的情况。在实际部署中,更有一种常用策略是先用保守的“安全包”(safety envelope)静态过滤掉那些明显危险的候选轨迹,然后在剩余空间里做更细粒度的优化。安全包的大小要与预测不确定性相匹配;当预测很不确定时,安全包放大,从而使决策更加保守。

时间尺度的选择也很关键。车道保持或高速匀速行驶的轨迹可以以较长时间窗口规划(例如510秒),但交叉口左转这种即时性强、交互频繁的场景,短期的高频轨迹更新更重要。典型做法是采用分层时序,行为层决定在未来几秒内的策略(等待或进入),轨迹层在更短的时间窗口(13秒)生成高分辨率轨迹供控制器跟随。与此同时,系统对预测结果持续做在线修正,轨迹可以在执行过程中被打断或重规划,以应对突发变动。

在无引导线的左转场景下进行实际决策时,一个常见且直观的量度是“可接受的间隙(acceptable gap)”或“时间间隙(TIME gap)”。这个指标衡量当前对向或横向来车与我方车辆之间的时间间隔是否足够安全地完成左转。工程上通常会把可接受间隙转换成速度与加速度边界:如果对向车需t秒才能到交叉点,而我方完成左转需τ秒,则系统判断可接受当t-τ>安全裕度。安全裕度并非常数,它受路况、能见度、本车加速能力、对方车辆加速行为预测和法律要求影响。在拥堵且低速的情形下,允许的时间差会小一些;在高速来车或能见度差时,系统会显著提高安全裕度。

人车交互和非语言沟通在无引导线左转时对人类司机也尤为重要。自动驾驶汽车缺少人类的眼神、手势或点头,因此需要通过其它手段与周围交通参与者沟通其意图。最基本的方式是标准化信号,开启转向灯是最直接的意图表达,必要时车辆可以做轻微的前探(slow forward creep)以显示进入意愿,同时在控制上保证随时能够紧急停车。某些研究与应用中也引入外显信号灯或可视化屏幕向行人和驾驶员传达“我让行”或“我将转弯”的信息,但这些仍属于实验性手段,普及度与法律认可度有限。因此,保守且清晰的信号策略与及时的姿态表达(例如稳定且可预期的减速曲线)是目前实用性最高的“沟通”方式。

谈到模型和算法细节,不可忽视的是动力学与轮胎模型的限制。对于乘用车,常用的运动学单轨模型(kinematic bicycle model)和较为精细的动力学模型都可以用来保证轨迹可执行性。轨迹生成时会约束最大横向加速度、最大纵向加速度与最大转向角速度,避免出现车辆无法跟随的轨迹。乘客舒适性也会被转化为约束或代价项,加速度、加加速度(jerk)和横向加速度的突变都会被惩罚,从而保证平滑的转弯动作。

在高度不确定或对手行为难以预测时,概率与鲁棒控制方法变得尤为重要。基于POMDP(部分可观测马尔科夫决策过程)的框架能够在观测不完全与行为不确定的情况下给出最优策略,但其计算复杂度通常很高,实际情况下,系统会采用近似方法或只在关键时刻使用。另一条工程化路径是使用基于风险的优化,即定义一个风险函数,该函数衡量在轨迹执行期间出现碰撞或近碰的概率,并在优化中把风险控制在可接受阈值内。这样,决策不仅考虑期望成本,也把尾部风险(低概率但高代价的事件)纳入考虑。

数据驱动的方法正在快速发展,尤其是用来学习“人类可接受行为”的模型。通过对大量交通场景的数据学习,自动驾驶系统可以学到一些场景特有的隐含规则(例如某城市司机更愿意在特定情况下礼让),进而生成更“社会化”的轨迹。然而,这类模型的可解释性和可验证性仍是挑战。在安全关键的场景里,纯学习方法通常需要与规则/物理模型结合,以便在极端情形下保持可预测与可控。

仿真与验证是确保策略可行的最后一道防线。在实验室中,系统会在大规模仿真环境中暴露于成千上万种无引导线左转情形,检验在各种天气、能见度、道路几何和其他车辆策略下的表现。仿真中需要覆盖罕见但危险的角落案例,如一辆摩托车突然从路边穿出或对向车辆急刹等场景一定需要涵盖。真实道路测试则需要循序渐进,从封闭场地到低流量路段再到复杂城市路口,逐步放宽安全员干预。这种逐步验证不仅是技术要求,也是合规与伦理的必须。

工程实践中还有许多细节会影响自动驾驶汽车在无引导线的左转场景下的最终表现。传感器的安装位置和视角决定了对交叉口的可视范围,摄像头与激光雷达的同步与时间戳对多传感器融合至关重要。决策频率要与控制器频率匹配,过低会在高度动态场景里导致滞后,过高又会引发计算资源瓶颈。系统还需要对极端情况设计兜底策略,例如当传感器数据不可信或突然出现传感器故障时,应立即进入保守模式——如停在安全位置或缓慢退出交叉口,同时发出危险信号。

最后的话

总的来说,无引导线的无保护左转不是单一算法能解决的问题,而是一个系统级挑战。要做到既安全又高效,这就需要从感知到控制的端到端协同设计,感知提供可靠的世界模型,预测揭示多模态的未来,决策在规则与风险之间找到平衡,轨迹生成在动力学、舒适性与安全之间求解最优解。再加上良好的工程实现、全面的仿真验证与谨慎的路测推进,自动驾驶车辆才能在这个看似简单但充满变数的场景里,像一个既谨慎又体贴的人类司机那样完成左转。

返回顶部
跳到底部

Copyright ©2024 本站由 xsck 版权所有,站长QQ303154759.吉ICP备2024023058号,本站部分内容为转载,不代表本站立场,如有侵权请联系处理 open开发