陈晓明,李 柏,范丽丽,张友民
(1.湖南大学 机械与运载工程学院,湖南 长沙 410082;2.北京理工大学 信息与电子学院,北京 100081;3.康考迪亚大学 机械、工业与航空工程系,魁北克 蒙特利尔 H3G 1M8)
自动驾驶系统集成了传感技术、数据处理技术以及自动化技术等[1],能够实现自动感知、决策规划和控制跟踪功能,它在提升交通安全性、通行效率、环境与资源友好性等方面具有巨大的潜力[2]。自动泊车是自动驾驶技术的重要应用之一,它能够让车辆在停车场或道路上实现自动泊车和取车,从而节省司乘时间、提升出行便捷度[3]。
众多汽车制造商和技术公司竞相研发并推出各自的自动泊车产品,展现出在自动驾驶技术领域的高度竞争力和持续创新性。例如,奔驰的Drive Pilot、日产的ProPilot、凯迪拉克的Super Cruise、特斯拉的FSD、小鹏汽车的XNGP、问界电动汽车搭载的华为ADS 2.0以及宝骏云朵纯电家用车搭载的大疆成行平台等都是备受关注的代表性产品。尽管这些自动驾驶系统发展势头强劲,但泊车系统的泛化性仍存在挑战。目前这些系统的性能仍受到特定条件和环境的制约,当遇到难度较大的泊车情境时,系统可能会采取保守的策略,选择将车辆的控制权交还给人类驾驶员,这降低了用户的使用体验感,也在一定程度上说明了自动泊车系统的智能性仍有提升空间。在自动泊车系统中,决策规划模块负责通过车载传感器和通信网络系统接收场景信息,制定智能车的行驶策略和运动轨迹[4]。大量文献表明,不同的运动规划方法已被应用于泊车场景,但在无序、多变的复杂环境中实时地规划出无碰撞、易于跟踪执行、高效率的泊车轨迹仍是挑战[5-8]。
现有文献对感知、决策与控制这3 个模块的发展进行了较为全面的描述,然而对运动规划模块,特别是泊车场景下的具体技术与方法,阐述得相对较少。为填补这一研究空白,本文聚焦运动规划模块,梳理了自动泊车领域现有的智能车运动规划方法,介绍各研究团队提出的方法/技术及其贡献,并对比了这些方法/技术的优点和适用条件,最后阐述了自动泊车运动规划领域未来的研究方向和应用前景。
运动规划是车载决策规划模块中的一个功能环节,它承接上游路由寻径获得的全局路线、任务指派调度等宏观全局信息,在其基础上实施局部的轨迹规划[9]。局部轨迹规划负责规划出一条衔接始末位姿的时空轨线,以使车辆按制定的行驶方案从起点行驶到目标位置,同时确保车辆安全、高效、舒适以及能耗低[10]。运动规划的求解质量与效率直接反映了自动泊车系统的智能水平[11-12],而自动泊车是实现高级自动驾驶系统商业应用和批量生产最有前景的场景之一[13]。
泊车通常发生在停车场、路侧等非结构化的场景中。与道路上巡航的场景不同,这些场景不存在明确的参考线指引车辆行驶;同时,泊车时车辆通常需要进行倒车、满舵以及多次方向调整[14]。因此,泊车的运动规划需要充分考虑车辆的机械性能,如极限转向角、微小幅度速度调整等[15]。此外,泊车场景中存在运动轨迹难以预测的行人、难以预先定义形状和数量的障碍物、目标泊位狭小或非标准(图1)等情况,这些因素考验着泊车运动规划方法的泛化性,即其是否能够处理复杂环境中的避障任务。这一特性也使得泊车的运动规划方法能够推广应用于其他复杂、非结构化的环境,如港口、矿山和园区等[16]。虽然这些场景的任务本质是相同的,即所规划出的轨迹能够避让环境中的障碍物、满足符合运动学的可行性要求,但需要结合应用场景的特征和具体需求进行适配处理[17]。
图1 停车场静态杂乱障碍物实拍图Fig.1 Static and cluttered obstacles in the parking lot
泊车运动规划的输出结果是轨迹,该轨迹包含一系列时序路途点以及相应的车辆运动状态[18];而路径规划的结果仅是二维平面上的一条曲线,在获得可行路径后需要额外匹配与时间相关的物理量,从而生成完整的轨迹,因此路径规划实质上是将运动规划解耦为路径规划和速度规划后的两个模块之一。路径规划的局限之处在于与时间相关的控制变量信息需要通过逆运动学分析来获得。如果将泊车规划任务视同为路径规划问题,那么泊车过程中常见的车身原地静止而车轮转向的“原地打轮”等复杂行驶动作无法通过路径规划结果来反映,因此泊车规划任务需要处理的是轨迹规划问题而非路径规划问题。即便如此,早期的研究大多仅聚焦于路径规划本身,而专注于在获得路径后进行速度规划的研究较少(速度规划往往按照恒定速度或最优速度方式实现,或者将速度规划的任务下放至控制跟踪阶段实现),这是由于早期的技术水平不足以支撑高性能轨迹规划方法的开发。因此,本文尊重该领域的历史发展进程,同时对自动泊车路径规划方法以及轨迹规划方法进行回顾。
现定义车辆的状态变量为z∈Rnz,控制变量为u∈Rnu,其中nz表示状态空间的维数,nu表示控制空间的维数,集合C表示车辆行驶的二维平面空间,COBS表示二维平面上由环境中静态障碍物占据的子空间区域,CFREE=CCOBS表示环境中车辆的可行驶区域。自动泊车轨迹规划任务可被直观、准确地描述为如下数学模型:
式中:tf——泊车运动过程的终止时刻;J——待最小化的代价函数;——车辆运动学的常微分方程组;[zmin,zmax] ——受到车辆自身物理属性限制的z(t)的容许区间;[umin,umax]——受到车辆自身物理属性限制的u(t)的容许区间;zinit与uinit——z(t)在初始时刻的取值;zend与uend——u(t)在终止时刻的取值;fp(·):Rnz→R2——从车辆状态位姿z到其占据环境空间区域(即车身足迹)的非线性映射。
早在20世纪70年代,Miller J A[19]已将移动机器人的运动规划方法衍生到阿克曼转向的车辆的运动规划,并考虑了车辆的倒车行为和车辆运动学约束,这项工作呈现了泊车运动规划的初步形态。早期,规划未被视为独立的研究课题,而是与控制融合在一起。Harris C J 与Moore C G[20]在1989年设计了控制车辆跟踪简单泊车路径的方案(图2),那时的泊车运动规划方法主要解决标准泊位的泊车问题。随着计算机硬件的发展,学者们开始考虑更复杂、更贴近日常实际交通情景的泊车场景。
图2 文献[20]方法设计概览Fig.2 Overview of the methodology in reference [20]
当前,面向自动泊车任务的主流运动规划方法主要包括几何方法、搜索方法、采样方法、数值优化方法以及机器学习方法[21]。
几何方法是针对特定的泊车场景展开的研究[22],如平行泊车、垂直泊车或斜列泊车。在1957年,Dubins L E[23]忽略环境中的障碍物,仅聚焦规划出车辆可执行的路径,证明了在转弯半径受限时连接两点之间的路径可以由最大曲率的弧线和直线段组成。由于Dubins 曲线只允许车辆向前行驶,在某些情景下车辆不得不在目标点附近绕行以满足目标位姿的要求。Reeds J和Shepp L[24]基于Dubins算法提出了RS曲线,与Dubins 曲线不同,RS 曲线允许车辆有倒退行为,因此在特定场景中能够找到更优的路径。针对低速的泊车场景,许多研究者延用圆弧与直线段的组合作为行车路径这一思想,通过探究泊车过程中车辆与泊位的相对位置关系并结合车辆的运动学模型以及几何参数求得关键的航迹点,随后使用直观的解析式表示泊车路径。Hsieh M F和Ozguner U[25]基于车辆的最小转弯半径生成了连接泊车起始点与泊位中线上任意一点的圆弧,随后回正方向,沿直线将车泊入泊位。Jeevan P等[26]根据垂直泊位的几何特征计算车辆可以成功泊出的点,并将其设置为中继点,由此将泊车任务划分为前进阶段和倒退阶段,在前进阶段用三次样条插值连接车辆当前位置与中继点,倒退阶段是从中继点泊入车位。为了提升闭环跟踪性能,Liang Z 等[27]在获取无碰撞路径点后,使用Bezier 曲线平滑由一系列路径点连接的折线。上述方法成功与否很大程度上取决于起始时刻车辆相对泊位的位姿。为了能够让车辆在任意起始点均可生成可行路径,Du X 和Tan K K[28]通过划分车辆与泊位的位置关系类型,并依此枚举各车辆在不同起始点时衔接始末位姿的直线与圆弧组合,当确定车辆在初始时刻的位置后,根据其归属的类型从备选路径集合中选择满足要求的直线与圆弧组合。由于泊车场景中通常涉及速度方向的切换,圆弧和直线组合的路径在速度切换时会出现曲率不连续的尖点,对遵循非完整性约束的车辆而言,曲率不连续的路径会使其需要改变速度甚至完全静止之后再改变转角,这一操作会加重车轮磨损[29]。早期的研究者认为这一问题在低速的泊车场景中可以被忽略,或是倾向于在控制跟踪阶段缓解这一问题[28]。Vorobieva H等[30]在规划阶段,根据车辆和平行泊车位的几何特征生成由两段圆弧组成的路径,再使用回旋曲线(Clothoid)将其平滑成曲率连续的路径。而后,基于曲率连续的回旋曲线的方法引起了学者们的关注[31-32]。基于回旋曲线的几何方法的计算耗时主要源于Fresnel积分计算[33],为了减轻计算负担,近似回旋曲线的方法被提出[33],其通过设置虚拟牵引点逐步引导车辆泊入垂直泊位。文献[34]忽略道路宽度限制,采用一次机动的方式完成泊车路径规划,即待车辆驶出泊位后再满舵行驶。Cai L等[35]考虑了道路狭窄的平行泊车场景,借用泊位的空间调整车辆的姿态,并以目标线作为中间媒介,先将车辆从泊位中驶出,随后沿设置的目标线机动,以此使车辆在任意位姿均可完成泊车规划,并在圆弧和直线的交界处使用Bezier曲线进行平滑处理。此外,因为这些方法基于泊位特征,是通过车辆与车位特殊的几何关系推导出相关关系式的,各方法有其特异的泊位。例如,面向平行泊车的方法可能无法直接适用于垂直泊车[36]。
为了满足避障需求,这类方法采用预先定义的规则作为限制。在运动规划的初始阶段,环境地图已得到处理(图3),有分散、杂乱障碍物的环境均被转化为规整的几何形状。图3中,绿色框线表示车辆的既定泊车空位。因此,在运动规划阶段只需考虑自车的运动与规整的泊位之间的几何关系。然而,这类预设会减小车辆运动的可行域,这意味着车辆将会舍弃一些具有挑战性的泊位。这一方法适用于现阶段停车场的情况,这是因为在设计现阶段停车场的泊位时需要为乘客上下车预留一定的空间,而自动泊车技术将提高停车场空间的利用率,未来的智慧停车场将不再需要考虑乘客上下车预留空间这一问题[37],因此自动泊车运动规划方法具备应对非标准化泊位的能力。这类方法的局限性在于缺乏最优性和泛化能力,它们难以应对障碍物分布不规则且场景复杂的非结构化泊车任务。这些方法着重规划路径,需要额外配置控制信息,在实际跟踪阶段,可能会出现较大的误差。
图3 几何方法环境地图预处理示意Fig.3 Map preprocessing by geometric method
采样方法是在连续的空间中生成样本点,随后寻找车辆运动学可行且能够满足避障要求的点序列作为规划结果。
快速随机扩展树(rapidly-exploring random trees,RRT)系列算法是经典的采样方法。LaValle S M等[38]提出RRT,以蒙特卡洛的方式随机生成样本点,但连接节点的折线不适合作为阿克曼转向车辆的行驶路径。Karaman S等[39]提出RRT*,其在节点拓展过程中考虑了车辆的非完整性约束,并证明了RRT算法的概率完备性。在基础RRT 方法的基础上,Kuwata Y 等[40]考虑了车辆的运动学限制,采用Dubins路径长度评估采样点的可行性,据此扩展节点,将RRT算法应用于泊车运动规划。为提升扩展效率,Han L 等[41]提出双向RRT(bidirectional-RRT,Bi-RRT)方法,它采用并行的策略,分别以起始位姿和终止位姿为树根同时扩展节点,两棵树不断朝向对方交替扩展,直到二者扩展的节点连接。Klemm S等[42]将connect-RRT方法应用在狭小泊位的运动规划中,并证明了双向搜索的RRT算法在迭代时间上有显著收益。Jhang J H 等[43]在Bi-RRT 中引入RS曲线加速生成可行的避障路径,并设计了更贴合人类驾驶习惯的代价函数。Shin S 等[44]考虑进一步提升节点的拓展效率,提出结合人工磁场模型确定RRT的节点拓展方向,磁场的磁力线具有与Dubins曲线相似的形状,障碍物的斥力将诱导车辆远离。Zheng K 和Liu S[45]考虑RRT的重规划能力,当环境中出现新的障碍物时,对原树进行剪枝后继续扩展,以提升规划效率。类似地,Karaman S 等[46]将RRT 与分支限界算法(branch-and-bound)相结合来更有效地构建树,降低重规划时树结构修改的计算成本。
动态窗口方法(dynamic window approach,DWA)是在线速度和角速度组合的速度空间内进行采样,以生成多条候选轨迹并进行评估,根据代价函数值选择最优轨迹。Lei Y等[47]将DWA应用在无人驾驶矿用卡车的泊车运动规划中,为解决基础DWA算法难以生成严格符合目标姿态角边值约束的困难,提出了一种基于模糊逻辑控制的DWA规划方法,用模糊逻辑控制设计代价函数中的惩罚权重,如图4所示。图中,DWA在每一步选择当前步的最优轨迹。Yang H等[48]采用改进的A*搜索和DWA 算法实施非完整约束车辆的运动规划。
图4 DWA 方法示意Fig.4 Schematic of DWA method
概率路线图(probabilistic roadmap,PRM)是在构型空间(configuration space)上采样出固定点并连接样本点而构建的(其中采样的状态点称为节点,边表示节点的连接关系),对边进行碰撞检测并剔除相应的会产生碰撞的节点和边[49]。PRM是通过采样构建一个图形结构,之后可以使用搜索算法在图中找到连接起始状态和目标状态的最短路径[50]。Song G和Amato N M[51]提出一种基于客制化PRM(customized PRM,C-PRM)的泊车运动规划方法,其在构建路线图阶段先粗略地检查节点和边的有效性,在查询阶段对必经路径的部分进行细致的检验,这使得C-PRM的效率和泛化性较传统PRM的大幅提升。
搜索方法是先用有限个涵盖环境信息的网格表征连续的空间,随后在网格图中搜索衔接初始位姿到目标位姿的泊车路径。Dolgov D等[52]提出了一种混合A*搜索算法,它在基本A*搜索方法的基础上考虑了车辆运动学规律并设置了更恰当的启发函数,但该算法不具备求解完备性。有别于混合A*搜索算法用RS曲线尝试寻找可行路径,Klaudt S等[53]提出的考虑车辆转向角的模型更为精准。为提升混合A*搜索算法的搜索效率,Sedighi S等[54]结合可见图算法搜索出的连接始末位置的折线,引导混合A*搜索算法沿该折线拓展节点,以此加速生成运动学的路径。类似地,Sedighi S等[55]提出一种基于Voronoi图的混合A*搜索算法,其先用Voronoi图搜索出符合完整性约束的最短路径,再用混合A*搜索算法对该路径进行优化,生成满足非完整性约束的路径。He J与Li H[56]用快速A*算法判断能否在特定时间内完成泊车任务,若这一泊车任务有可行解,则记录粗略的路径点,再通过专家经验的方法平滑路径。但A*搜索算法不考虑姿态角,仍需做一些后处理。Chen C等[57]提出一种考虑车头姿态角度因素的启发函数来引导状态空间的遍历搜索过程,其先搜索出能够满足避障要求的一系列彼此重叠的圆,随后在这些圆中搜索满足运动学约束的路径,以此提升搜索效率。Bergman K等[58]改进了state-lattice方法并将其应用于泊车运动规划,通过搜索离线构建的符合车辆运动学的状态格,生成衔接起始节点和目标节点的可避障链路。Fuji H等[59]提出一种基于状态路线图的搜索方法,其首先构造包括位置信息和离散姿态角信息的地图,随后搜索能够连通始末位姿的无碰撞路径。当车辆沿规划好的轨迹行驶时,若因车辆自身突发故障或外部突发风险造成紧急制动驻车,该方法能够重新规划出脱困轨迹。Leu J等[60]基于A*搜索算法设计了包含后退(retreat)机制的路径规划方法,当车辆停止在原参考轨迹上时触发后退机制,则可在自由空间中找到一个最短的点边序,并以此快速对原轨迹进行修复。
数值优化方法是将泊车运动规划问题描述为一则最优控制问题(optimal control problem,OCP),将这一时间连续的问题离散化为一个非线性规划问题(nonlinear program,NLP),并采用梯度下降的优化方法予以数值求解。数值优化方法也称数值最优控制方法或计算最优控制方法[5]。
Kondak K 与Hommel G[61]于2001 年将泊车任务描述为非线性最优控制问题,引入人工势场描述避障约束,将障碍物视为点簇,对每个点施加相应的不等式约 束,并用序 贯二次规划(sequential quadratic programming,SQP)方法进行求解。虽然这项工作计算时间长,但其为数值优化方法在泊车领域的应用奠定了基础。Yamamoto M 等[62]于2005 年提出利用模型预测控制的方法对泊车问题进行建模,考虑了泊车场景中可能存在障碍物的情况,通过设置中继点得以将车辆安全地泊入车位。虽然该工作不能保证在苛刻泊位条件下能成功泊车,且计算的时效性不一定能满足实时性的需求,但它指示了最优控制方法在泊车领域应用的方向。泊车运动规划的OCP 中包含一则代价函数、避障约束、边值约束以及运动学约束等,要求在满足约束条件的前提下,使得代价函数值最小[63]。早期的探索是先通过精准建模描述泊车轨迹规划问题,再运用拉格朗日插值法或高斯伪谱法等将时间连续的状态变量和控制变量离散成有限个配置点,最后进行数值求解。Zips P等[64]提出采用Runge-Kutta的方式离散化连续的路径,通过求解优化问题获得原优化问题的解。Li B与Shao Z[65]提出了一种利用三角形面积判据来解析地描述车身与不规则凸多边形障碍物之间的避障约束条件,其能够表述任意不规则姿态下的障碍物与车身之间的避障约束,如图5 所示。图中,点P用于判断障碍物是否在凸多边形ABCDE内。为了提升数值求解效率,Moon J等[66]基于三角形判据的避障方法提出一种动态优化的方法,通过时空解耦将平行泊车过程划分为两个阶段,在其中一个环境相对简单且车辆的运动区域确定的阶段内,避障约束被表达为车辆位于矩形区域内,这在一定程度上缓解了非凸不可微的避障约束对计算效率的影响。类似地,Li B 等[67]构造了slot 函数来表征平行泊车的障碍物边界,能够统一处理各种平行泊车问题,其中采用了时空解耦方式[68]渐进地生成初始解,以便提升泊车轨迹规划的稳定性与实时性。除了采用图形学表述避障约束外,Zhang X等[69]提出了一种基于优化的避障方法(optimizationbased collision avoidance,OBCA),其分别将车和环境中的障碍物描述为多面体,利用凸优化学科领域的符号距离概念表示车与障碍物之间的避障约束,利用凸优化的强对偶性重构凸集之间的距离函数,将不可微分的避障约束转化为光滑的可微分约束条件。
图5 三角形面积判据示意Fig.5 Schematic of a triangle area criterion
迭代起点的选择会影响NLP 问题的收敛性和收敛速度等,因此研究人员们提出分级的方式,即用其他方法(如采样/搜索方法)生成一条粗略的轨迹作为优化问题的初始解,并以暖启动(warm start)[70]的方式加速优化求解过程,这相当于是在梯度优化的求解过程中选择了近似可行/最优的高质量迭代优化起始点[71]。Zhang X 等[72]设计了采用混合A*搜索方法作为优化问题的启发,从而提升求解效率和求解质量。He R等[73]基于OBCA 方法提出TDR-OBCA(temporal and dual warm starts with reformulated optimization-based collision avoidance)方法,其采样时间可非均匀,目标位姿为软约束,从而增强算法的鲁棒性和计算效率。
大量非凸非线性的避障约束是影响求解效率的主要因素,Rösmann C 等[74]提出一种时间弹性带方法(timed elastic band,TEB),它将最优控制问题中非凸非线性的避障约束以及运动学约束软化作为代价函数中的惩罚项,从而把原始的最优控制问题转化为无约束的优化问题,虽然优化的求解速度快,但其求解结果的可行性差,这也表明了单纯依赖惩罚约束的方法存在稳定性不足的弱点。降低优化求解耗时的另一种思路是将避障约束表示为线性约束,Shi S等[75]提出了双层最优 运动规 划模型(bi-level optimal motion planning,BOMP),采用J2-function来线性地描述避障约束。Li B 等[76]提出了一种安全行车隧道(safe travel corridor,STC)概念,其非凸的避障约束重构为线性的盒约束。该方法用两个圆盘覆盖车身,将双圆盘收缩为两质点并相应膨化环境中的障碍物(图6),沿着依据混合A*搜索算法生成的参考轨迹铺设安全行车隧道,将车辆与周围的障碍物分隔开,使车辆仅在这一安全行车隧道中行驶,这样,避障约束的规模不再受环境中障碍物个数及其顶点数量的影响,即原先大规模的避障约束可被控制在较低水平,使最优控制问题易于求解。STC方法受制于参考轨迹的质量,由于混合A*搜索算法生成的路径并不能完全满足车辆运动学约束,倘若所有符合运动学可行性的轨迹均在所生成的STC外,则会导致优化问题求解失败。为解决混合A*搜索算法生成的初始解不理想而导致STC 失败的问题,Li B等[77]在使用STC 的基础上提出轻量化迭代方法(lightweight iterative optimization method,LIOM),极大地降低了车辆对参考轨迹的依赖程度。它将最优控制问题中非凸非线性的约束软化为外罚函数并补入代价函数中,并将前一次迭代生成的优化轨迹视为初始解来重新构建STC,随后予以数值求解,直到软化约束的罚函数代价值低于某一预设阈值为止。虽然将硬性约束条件软化为外罚函数多项式并不能保证生成轨迹的可行性,但据此构造的每个中间过渡最优控制问题的约束条件都是轻量级的盒约束且能够确保有解。车辆的运动学可行性与避障要求通常容易相互掣肘,倘若初始解仅指示了绕行障碍物的方式但运动学完全不可行,LIOM也有能力在每一次迭代过程中朝违背运动学约束程度更轻的方向进化。此外,由于文献[76]的质点模型形成了一定的冗余区域,且STC的构建导致自由空间中临近膨化障碍物的边角区域无法被局部矩形包括在内,这可能导致该方法无法获得最优解。不同于文献[76],Han Z等[78]则采用凸多边形表征安全行车隧道替代了横平竖直的矩形框,这使它不会过于保守,能够提高自由空间的利用率。Lian J等[79]则认为文献[76]中恒定的拓展步长难以兼顾优化效率和轨迹可行性/最优性,因此,提出沿着A*粗略搜索的路径铺设粗略隧道,并计算局部矩形的尺寸来大致判定该区域的宽窄程度,依此自适应更改拓展步长,以求提升轨迹最优性。然而,STC的求解可行性/最优性受限以及它面对狭小空间失败的主要原因是双圆盘模型引入的冗余区域而非恒定的拓展步长。将离散点顺次连接,近似获得原连续问题的数值解。求解精度和求解时间与离散后的配置点的数量相关,但数值优化方法求解高维问题时,求解时间不会随着维数增长而骤增[80],并且求解质量不会随着有限元数量增加而无限增强[81]。
图6 安全行车隧道构建方法Fig.6 Schematics of the principle to construct safe travel corridors
除梯度优化外,还有一些研究工作着眼于以随机搜索的方法确定寻优迭代的步长与梯度方向。例如,采用粒子群优化算法(particle swarm optimization,PSO)求解。PSO 是基于随机性模拟群体行为,一组个体(粒子)被随机初始化,并在搜索空间中移动,每个粒子的运动受到个体经验和群体经验的影响。PSO 算法主要聚焦于构建目标函数(适应度函数),用罚函数法将包含车辆运动学约束以及环境限制约束等的泊车运动规划问题转化为无约束问题,随后进行求解,当约束条件不满足时,会对适应度函数施加较大的惩罚,从而引导搜索过程向满足约束条件的方向进行。Huang W等[82]结合人工势场法,用PSO确定最优的目标位姿和泊车轨迹,最后通过样条曲线对轨迹进行平滑处理。由于随机性,PSO具有全局搜索的能力,但也可能导致它陷入局部最小值,通常需要在不同随机数种子条件下并行计算以增加寻找到全局最优性的概率。
机器学习方法将轨迹规划问题转化为求解输入与输出的映射关系[83]。Gorinevsky D等[84]于1996年提出一种通过构建神经网络生成泊车轨迹并进行跟踪控制的方案。Zhao Y 和Collins JR E G[85]基于模糊逻辑控制-遗传算法展开研究,将泊车过程抽象成多个阶段,依据制定的模糊规则设定各阶段的隶属函数,并用遗传算法确定模糊控制系统的参数,依此输出泊车轨迹。它是基于人类驾驶员泊车的操作经验所设计的一种运动规划方案。基于规则和经验设计的模糊逻辑控制的避障方法在遇到不规整的障碍物或在泊位附近存在障碍物的情况时,所规划轨迹的质量很大程度上取决于所设定的隶属函数的质量,这是因为隶属函数的准确度直接影响模糊推理的结果[86]。Liu W等[87]提出将车速和目标位姿作为神经网络的输入,通过足够数量的样本学习输入的车速/姿态角与轨迹之间的映射关系。为提升学习模型的泛化性,Lin Y L等[88]提出一种平行学习的轨迹规划方法,它将数据驱动方法与预测学习、迁移学习相结合来构建深度学习模型。Chai R等[89]提出使用 基于深 度神经网络(deep neural network,DNN)的架构来解决泊车轨迹规划问题,其下层构建的DNN 使用由上层优化方法生成的时间最优轨迹进行训练,以获得泊车轨迹和转向角之间的映射关系(图7)。为提升算法的实时性以及迁移能力,Chai R等[90]继而提 出循环DNN(recurrent deep neural network,RDNN)算法,它具有反馈连接机制,允许信息在网络中传递循环,从而能够捕捉序列中的时间依赖关系,因此能更好地发掘车辆状态之间的内在联系,借助迁移学习策略使这一方法能够适配不同类型的智能车。Zhang P 等[91]提出一种基于强化学习的端到端的泊车运动规划方法,旨在能够从大量的数据中持续学习泊车行为背后的意图与最优前轮转向角之间的映射关系。由于期望的运动规划输出是多指标综合最优的泊车轨迹,故基于数据的学习模型对所采用的训练数据集质量要求较高。为了减弱对高水平人类驾驶员的泊车数据/基于先验规则的高质量数据的依赖,Zhang J等[92]基于强化学习的架构,迭代地执行数据生成、数据评估和训练网络,通过构建奖励函数评估和过滤泊车数据,随后用神经网络从过滤后的数据中学习泊车策略。Song S等[93]使用非线性规划的结果作为离线训练数据,然后利用人工神经网络进行学习,以期望生成近似最优的泊车轨迹,并将其应用在狭小泊位的运动规划中。
图7 基于DNN 方法的架构[89]Fig.7 Framework based on DNN method in reference [89]
几何方法是通过解析表达式描述泊车路径曲线的,即使是在狭窄环境中,也能够保持高效计算。该方法在辅助泊车系统中商用程度高,但适用的场景比较简单,虽然可以通过前置处理生成一个适用于这一方案的简化场景,但会不可避免地降低空间的利用率,且对复杂环境的处理能力受限。
采样方法不受维数限制,在高维空间内仍能够高效求解。以RRT系列算法为代表的采样方法求解效率高且不受构型空间的维数限制,在高维的构型空间随机采样,连接各节点,并评估各节点的代价值,其搜索结果是渐进最优的。但由于这一方法是随机拓展的,算法的错误难以稳定复现,在量产落地时的优先级不高。
搜索方法将连续的状态空间离散成网格图,并在图中寻找始末状态的链接。然而在面临高维度问题时,求解精度和实时性会受到网格分辨率的限制。如果场景中存在狭窄区域,为了找到可行路径,需要使用足够小的网格分辨率,这会显著增加计算成本。
数值优化方法可通过增加离散有限元的数量提高规划的精度,这类方法所规划的轨迹具备最优性,但对算力的要求较高,为提升求解的实时性,需要一个合适的初始解来加速求解过程。
机器学习方法将车辆当前的状态视为输入,将近似最优的轨迹视作输出,通过提取已有泊车数据中的时空特征信息,构建能够反映输入与输出映射关系的学习网络[94],随后训练网络参数获得学习模型,并用这一模型求解实际的泊车轨迹规划问题。这类方法具有应对复杂环境的潜力,但为了获取更准确的学习模型,在学习阶段需要提供大量的数据集进行迭代训练,挑战在于在训练样本时如何避免过拟合。此外,机器学习的可行性受到质疑的主要原因在于其不可解释的黑盒特性,目前的中间特征表示不足以解释其推理过程的因果关系,而缺乏可解释性的后果可能是灾难性的[95]。
上述5类自动泊车运动规划方法均有各自适用的场景,并且稳步并行发展。表1示出多种自动泊车轨迹/路径规划方法性能对比。目前,融合各方法优势的组合型方法是发展趋势。这一思路并不新鲜,许多学者提出了采用采样/搜索方法规划出粗略轨迹作为数值优化方法的初始解的两阶段分级(hierarchy)运动规划方法[96],而且两类方法的融合也将同时推进各自的发展。例如,LIOM 需要由采样/搜索方法作为初始解,但是对于实际问题而言,这个初始的参考轨迹只要能够正确选择绕行的同伦类别(homotopy class)即可,那么可以通过降低第一阶段路径精度来降低搜索的耗时。于是一种具有容错机制的FTHA 作为混合A*搜索算法不完备性的备选方案被同时提出,以确保采样/搜索方法有解,随后采用数值优化方法进行精细求解。第一阶段可以弱化运动学可行性的重要程度,从而软化相互掣肘的约束条件。类似地,可以结合机器学习的方法与采样/搜索的方法设计分级运动规划方法,具体方案可参见文献[97]。
表1 多种自动泊车轨迹/路径规划方法性能对比表Table 1 Performance comparison of multiple trajectory/path planning methods for automatic parking
目前的自动泊车轨迹规划方法与完全成熟的泊车技术还存在一些差距,需要更深入的研究来弥补,这为未来的运动规划方法的研究指明了新的方向。
更细致地考虑模型中的避障约束,比如高底盘的车身能够扫过障碍物,车身矩形覆盖显然会有更多冗余[98]。考虑障碍物的空间复杂结构以及自车底盘的高度因素,例如在路侧泊位泊车时,若车辆的地盘高于路肩,则车辆在揉库时能够借用部分路肩的空间,这相当于增大了泊车可机动的空间。此外,当环境非常复杂时,避障约束的规模将剧烈增大,如何统一地描述避障约束,使得其能够在保障安全冗余的同时兼备高精度(例如窄路原地换向),以及如何合理简化避障约束(例如:周围存在大量无序障碍物),从而保障在复杂环境中泊车运动规划的效率和成功率值得进一步探索,且这能够进一步发挥车辆的高性能,在脱困、竞技等方面会有更广阔的应用。
对于自动泊车系统而言,保障运动规划的质量仍然是未来研究的重点,尤其是应对狭窄的或周围环境复杂的泊位时,运动规划方法需要具备算法的稳定性,即仍然能够快速、高精度、低耗时地完成计算[99]。为提升规划算法在复杂环境中的计算稳定性,分级的轨迹规划方法值得更深入的研究。例如,文献[63]融合了采样/搜索方法和数值优化方法的优势,所提出的全局最优性增强的混合A*搜索算法具备筛选更多备选解的能力,随后将其作为数值优化过程的初始解,数值优化方法的使用有望提升轨迹的局部最优性,而采样/搜索方法为结果的全局最优性提供了支撑。值得注意的是,应慎重引入包含随机性的方案,因为这会损害方法的稳定性。此外,如果一则轨迹规划问题是无解的,算法应具备fail-fast 属性,即面对无解问题时,算法能够快速抛出异常提醒,从而触发相应的异常处理模块工作。
当车辆在遇到紧急情况而制动,导致失去跟踪原轨迹的能力,或者在原轨迹上突然出现新的障碍物时,运动规划方法应在短时间内重规划出近似最优的轨迹。相比结构化道路上的高速行驶过程,泊车场景中障碍物摆放的变化会导致场景可通行拓扑结构的可行性与最优性发生本质变化,因此在线泊车轨迹重规划的难度远高于道路场景中的重规划[100]。但泊车轨迹重规划过程中毕竟车辆行驶速度不快,一般允许在稍长的时间(如0.5~ 2 s)内完成计算。如何在有限时间内生成高质量的泊车轨迹重规划结果,以何种方式利用此前计算的名义参考泊车轨迹(将其直接舍弃还是将其部分地视作先验信息),是未来值得深入研究的关键问题。
本文所提文献大多数致力于提升单车的智能水平,而在现实的交通流中泊车时,往往涉及与正常通行的车辆以及其他动态交通参与者的交互和博弈[101-102]。随着车路云一体化智能网联系统的发展,考虑交互的泊车运动规划方法将提升自动泊车系统的实用性。例如,系统检测到他车试图进入自车的目标泊位时,简单地选择礼让他车并不能提升用户的使用体验,车路云一体化背景下的自车有能力获取他车的历史驾驶习惯数据来综合评估抢行的风险与收益,依此进行运动规划,而此决策过程可以借助云端所记录的数据,确保自车能够在安全和高效之间取得平衡。
在泊车过程中,由于周围障碍物的遮挡,可能会产生盲区,而在这些盲区中可能会出现意外的障碍物[103];此外,当车辆驶过已停泊车辆时,乘客可能会突然打开车门,这类无意识的开门行为相当于场景中突然出现难以预测的障碍物(图8)。在这些情况下,采用防御性驾驶的泊车规划方法可以预先避免与障碍物发生干涉,在规划中提前预测或预设此类事件的发生并采取措施来降低风险。防御性运动规划方法能够增加泊车过程的安全性和可靠性,确保在泊车时也能考虑不可预见的情况,减小潜在的事故风险。这是强调在泊车规划中的避险主动性,以提前应对可能的危险情况。
图8 防御性驾驶场景案例Fig.8 Examples of defensive driving scenarios
本文对现有的应用于自动泊车领域的运动规划方法进行了分类、梳理与分析,具体包括几何方法、采样方法、搜索方法、数值优化方法以及机器学习方法;探讨了未来运动规划方法可能的研究方向,主要包括构建泛化性更强的模型、提升规划方法的稳定性、关注在线实时高质量重规划的能力和防御性驾驶的能力,以及考虑与其他交通参与者的交互等。
在自动泊车技术的赛道上,各品牌商家均在加速研发,力求推出更智能、泛化性更强的自动泊车系统。随着技术的不断迭代更新以及数据的积累,未来泊车技术将向着成熟的、稳定的、高阶智能的商用化方向发展,并为汽车行业带来巨大的潜力和机会。