自动驾驶方法及装置与流程

文档序号:29205069发布日期:2022-03-11 23:27阅读:304来源:国知局
自动驾驶方法及装置与流程

1.本技术涉及自动驾驶领域,并且更具体地,涉及一种自动驾驶方法及装置。


背景技术:

2.人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索, ai基础理论等。
3.自动驾驶是人工智能领域的一种主流应用,自动驾驶技术依靠计算机视觉、雷达、监控装置和全球定位系统等协同合作,让机动车辆可以在不需要人类主动操作下,实现自动驾驶。自动驾驶的车辆使用各种计算系统来帮助将乘客从一个位置运输到另一位置。一些自动驾驶车辆可能要求来自操作者(诸如,领航员、驾驶员、或者乘客)的一些初始输入或者连续输入。自动驾驶车辆准许操作者从手动模操作式切换到自动驾驶模式或者介于两者之间的模式。由于自动驾驶技术无需人类来驾驶机动车辆,所以理论上能够有效避免人类的驾驶失误,减少交通事故的发生,且能够提高公路的运输效率。因此,自动驾驶技术越来越受到重视。
4.自动驾驶汽车在巡航过程中,为了保持安全性和舒适性,需要合理的实时速度约束。通过设置不可碰触的虚拟墙可以生成合理的速度约束。例如,对于已经位于自车车道的车辆,一般将该车作为自车跟车对象,虚拟墙可以设置于自车跟车对象的后部,通过合理的速度约束使自车与虚拟墙保持安全距离。对于位于相邻车道的车辆,虚拟墙的设置存在临界位置。例如,当他车与自车之间的横向距离小于设定阈值时,通常将虚拟墙设置在他车的后部,当他车与自车之间的横向距离大于或等于设定阈值时,通常不设置虚拟墙。然而,当自车检测到他车的位置变化时,自车与他车之间的横向距离可能发生变化,并可能处于设定阈值附近变化,此时,虚拟墙可能出现不稳定的情况,即在设置虚拟墙和不设置虚拟墙之间跳变。另外,由于存在感知噪声,自车检测到他车的位置存在误差,若自车与他车之间的横向距离在设定阈值附近变化,则会导致虚拟墙不稳定。此外,对于自车附近的静止障碍物,例如,路边的停车等,当该障碍物距离自车的横向距离较近时,由于感知噪声等影响,有可能导致自车检测到的该障碍物与自车的横向距离在设定阈值附近变化,进而导致虚拟墙不稳定。当设置虚拟墙时,相应地存在与虚拟墙对应的牵引点,用于牵引自车前进,为自车提供速度约束,例如,自车减速行驶;当不设置虚拟墙时,相应地不存在牵引点为自车提供速度约束,自车匀速或加速行驶。当虚拟墙不稳定时,会导致速度跳变,自车频繁加速、减速,影响用户的乘坐体验。
5.因此,如何减少自动驾驶时的车辆速度跳变,提高用户的乘车体验,成为一个亟需
解决的技术问题。


技术实现要素:

6.本技术提供一种自动驾驶方法及装置,能够减少车辆速度跳变,提高用户的乘车体验。
7.第一方面,提供了一种自动驾驶方法,该方法包括:获取障碍物的运动状态,障碍物的运动状态包括障碍物的位置和障碍物的速度;根据障碍物的运动状态确定牵引点的位置和牵引点的速度,牵引点的速度用于指示自车在牵引点的位置处的期望速度,牵引点的位置为障碍物的运动状态的连续函数,牵引点的速度为障碍物的运动状态的连续函数;根据牵引点的位置和牵引点的速度获取自车的期望加速度。
8.在本技术实施例中,牵引点的位置和牵引点的速度均为障碍物的运动状态的连续函数,在检测到障碍物或者获取障碍物的运动状态之后,能够持续为车辆提供速度约束,牵引点的位置和速度随障碍物的运动状态连续变化,避免由于感知噪声等影响导致牵引点的位置和速度突变,因此可以避免车辆频繁加速或减速,提高了用户的乘坐体验。
9.此外,在检测到障碍物或者获取障碍物的运动状态之后,能够持续为车辆提供速度约束,这样,在危险场景中可以自车可以尽快做出响应,避免发生碰撞或影响乘车体验。例如,在检测到障碍物或者获取障碍物的运动状态之后即确定牵引点的位置和速度,持续为车辆提供速度约束,而不是在车距较近的情况下才提供速度约束,这样,在出现危险场景之前可以提前减速,提高乘车安全性。
10.示例性地,障碍物可以包括他车、自行车或行人等物体。
11.其中,障碍物位于自车的前方区域,自车的前方区域包括自车的侧前方区域,或者可以理解为自车的目标行进路径之外的侧前方区域。
12.例如,障碍物可以为路边停靠的他车、相邻车道上行驶的他车或横穿马路的行人等。
13.牵引点的位置和牵引点的速度均为障碍物的运动状态的连续函数,牵引点的位置和牵引点的速度随障碍物的运动状态连续变化,由于障碍物的运动状态是随时间连续变化的,因此牵引点的位置和牵引点的速度也是随时间连续变化的,即牵引点的位置和速度不会发生跳变,避免使自车频繁加速或减速。
14.结合第一方面,在第一方面的某些实现方式中,方法还包括:根据障碍物的位置生成虚拟墙,虚拟墙的状态包括可穿透状态和不可穿透状态。
15.根据本技术实施例的方案,虚拟墙的状态包括可穿透状态和不可穿透状态,在不同的入侵程度下,虚拟墙可以呈现不同的状态。例如,对于入侵程度较低的障碍物,虚拟墙为可穿透状态,自车可以预防性减速,对于入侵程度较高的障碍物,虚拟墙为不可穿透状态,保证了自车的行车安全,避免紧急情况下的驾驶员接管,或者,避免突然减速,进而提高用户的乘车体验。
16.可穿透状态指的是,自车在行驶过程中能够穿过该虚拟墙,不可穿透状态指的是,自车在行驶过程中不可穿透该虚拟墙,或者说,需要与该虚拟墙保持一定的安全距离。
17.结合第一方面,在第一方面的某些实现方式中,虚拟墙连续存在。
18.在现有方案中,当自车检测到障碍物在加墙的临界位置附近跳变时,自车会在设
置虚拟墙与不设置虚拟墙之间跳变,导致自车频繁加速或减速。在本技术实施例中,自检测到障碍物开始,即可设置虚拟墙,虚拟墙连续存在,能够为自车提供持续的速度约束,避免自车频繁加速或减速。
19.结合第一方面,在第一方面的某些实现方式中,方法还包括:获取自车的目标行驶路径;以及根据障碍物的运动状态确定牵引点的位置和牵引点的速度,包括:根据障碍物的运动状态和自车的目标行驶路径确定牵引点的位置和牵引点的速度。
20.结合第一方面,在第一方面的某些实现方式中,牵引点的位置通过跟车距离表征。
21.结合第一方面,在第一方面的某些实现方式中,期望加速度的更新频率大于或等于 20hz。
22.结合第一方面,在第一方面的某些实现方式中,根据障碍物的运动状态确定牵引点的位置和牵引点的速度,包括:根据障碍物的运动状态计算碰撞危险度;根据碰撞危险度确定牵引点的位置和牵引点的速度。
23.碰撞危险度可以用于表征障碍物的入侵程度,即入侵自车的目标行驶路径的程度。
24.碰撞危险度也可以称为接近危险度。碰撞危险度可以用于指示障碍物与自车的接近程度。或者可以理解为,碰撞危险度用于指示障碍物与自车发生碰撞的风险。碰撞危险度越高,碰撞风险越大。
25.结合第一方面,在第一方面的某些实现方式中,在碰撞危险度小于第一阈值的情况下,虚拟墙的状态为可穿透状态;在碰撞危险度大于或等于第一阈值的情况下,虚拟墙的状态为不可穿透状态。
26.结合第一方面,在第一方面的某些实现方式中,障碍物的速度包括障碍物的切向速度,根据碰撞危险度确定牵引点的位置和牵引点的速度,包括:根据碰撞危险度确定自车的穿透速度,自车的穿透速度与碰撞危险度呈负相关关系;根据障碍物的切向速度和自车的穿透速度确定牵引点的速度。
27.碰撞危险度越高,自车的穿透速度越低。
28.结合第一方面,在第一方面的某些实现方式中,根据碰撞危险度确定牵引点的位置和牵引点的速度,包括:在碰撞危险度大于或等于第一阈值的情况下,牵引点的速度小于或等于障碍物的切向速度。
29.结合第一方面,在第一方面的某些实现方式中,根据碍物的运动状态计算碰撞危险度,包括:根据障碍物的运动状态计算碰撞指标,碰撞指标包括以下至少一项或多项:障碍物与车道线之间的距离、障碍物预计压线时间或障碍物与自车之间的侧向距离;根据碰撞指标计算碰撞危险度。
30.结合第一方面,在第一方面的某些实现方式中,方法还包括:控制车载显示器显示自车、障碍物和虚拟墙之间的位置关系。
31.第二方面,提供了一种自动驾驶装置,装置包括:获取单元,用于获取障碍物的运动状态,障碍物的运动状态包括障碍物的位置和障碍物的速度;处理单元,用于:根据障碍物的运动状态确定牵引点的位置和牵引点的速度,牵引点的速度用于指示自车在牵引点的位置处的期望速度,牵引点的位置为障碍物的运动状态的连续函数,牵引点的速度为障碍物的运动状态的连续函数;根据牵引点的位置和牵引点的速度获取自车的期望加速度。
32.在本技术实施例中,牵引点的位置和牵引点的速度均为障碍物的运动状态的连续函数,在检测到障碍物或者获取障碍物的运动状态之后,能够持续为车辆提供速度约束,牵引点的位置和速度随障碍物的运动状态连续变化,避免由于感知噪声等影响导致牵引点的位置和速度突变,因此可以避免车辆频繁加速或减速,提高了用户的乘坐体验。
33.此外,在检测到障碍物或者获取障碍物的运动状态之后,能够持续为车辆提供速度约束,这样,在危险场景中可以自车可以尽快做出响应,避免发生碰撞或影响乘车体验。例如,在检测到障碍物或者获取障碍物的运动状态之后即确定牵引点的位置和速度,持续为车辆提供速度约束,而不是在车距较近的情况下才提供速度约束,这样,在出现危险场景之前可以提前减速,提高乘车安全性。
34.结合第二方面,在第二方面的某些实现方式中,处理单元还用于:根据障碍物的运动状态生成虚拟墙,虚拟墙的状态包括可穿透状态和不可穿透状态。
35.结合第二方面,在第二方面的某些实现方式中,虚拟墙连续存在。
36.结合第二方面,在第二方面的某些实现方式中,获取单元还用于:获取自车的目标行驶路径;以及处理单元具体用于:根据障碍物的运动状态和自车的目标行驶路径确定牵引点的位置和牵引点的速度。
37.结合第二方面,在第二方面的某些实现方式中,牵引点的位置通过跟车距离表征。
38.结合第二方面,在第二方面的某些实现方式中,期望加速度的更新频率大于或等于 20hz。
39.结合第二方面,在第二方面的某些实现方式中,处理单元具体用于:根据障碍物的运动状态计算碰撞危险度;根据碰撞危险度确定牵引点的位置和牵引点的速度。
40.结合第二方面,在第二方面的某些实现方式中,在碰撞危险度小于第一阈值的情况下,虚拟墙的状态为可穿透状态;在碰撞危险度大于或等于第一阈值的情况下,虚拟墙的状态为不可穿透状态。
41.结合第二方面,在第二方面的某些实现方式中,障碍物的速度包括障碍物的切向速度,处理单元具体用于:根据碰撞危险度确定自车的穿透速度,自车的穿透速度与碰撞危险度呈负相关关系;根据障碍物的切向速度和自车的穿透速度确定牵引点的速度。
42.结合第二方面,在第二方面的某些实现方式中,处理单元具体用于:在碰撞危险度大于或等于第一阈值的情况下,牵引点的速度小于或等于障碍物的切向速度。
43.结合第二方面,在第二方面的某些实现方式中,处理单元具体用于:根据障碍物的运动状态计算碰撞指标,碰撞指标包括以下至少一项或多项:障碍物与车道线之间的距离、障碍物预计压线时间或障碍物与自车之间的侧向距离;根据碰撞指标计算碰撞危险度。
44.结合第二方面,在第二方面的某些实现方式中,装置还包括,显示单元,显示单元用于显示自车、障碍物和虚拟墙之间的位置关系。
45.应理解,在上述第一方面中对相关内容的扩展、限定、解释和说明也适用于第二方面中相同的内容。
46.第三方面,提供了一种自动驾驶装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第一方面以及第一方面中的任意一种实现方式中的方法。
47.第四方面,提供了一种车辆,该车辆包括上述第二方面以及第二方面中任一种实
现方式中的自动驾驶装置。
48.第五方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行第一方面中的任意一种实现方式中的方法。
49.第六方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面中的任意一种实现方式中的方法。
50.第七方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行上述第一方面中的任意一种实现方式中的方法。
51.可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面中的任意一种实现方式中的方法。
52.上述芯片具体可以是现场可编程门阵列(field-programmable gate array,fpga)或者专用集成电路(application-specific integrated circuit,asic)。
附图说明
53.图1为本技术实施例提供的一种应用场景的示意图;
54.图2为本技术实施例提供的一种自动驾驶汽车的结构示意图;
55.图3为本技术实施例提供的一种计算机系统的结构示意图;
56.图4为本技术实施例提供的一种云侧指令自动驾驶汽车的应用示意图;
57.图5为本技术实施例提供的一种云侧指令自动驾驶汽车的应用示意图;
58.图6为本技术实施例提供的一种自动驾驶装置的示意性框图;
59.图7为本技术实施例提供的一种自动驾驶方法的示意性流程图;
60.图8为本技术实施例提供的碰撞指标的示意图;
61.图9为本技术实施例提供的牵引点的位置的示意图;
62.图10为本技术实施例提供的牵引点的速度的示意图;
63.图11为本技术实施例提供的一种自动驾驶方法的示意性流程图;
64.图12为在侧向压车的情况下现有方案中的车辆行驶示意图;
65.图13为侧向压车的情况下本技术实施例提供的方案中的车辆行驶示意图;
66.图14为本技术实施例提供的在他车位置跳变的情况下的车辆行驶示意图;
67.图15为本技术实施例提供的自动驾驶装置的示意性框图;
68.图16为本技术实施例提供的自动驾驶装置的硬件结构示意图;
69.图17为本技术实施例提供的一种计算机程序产品的结构示意图。
具体实施方式
70.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
71.本技术实施例的方案可以应用于自动驾驶场景中。
72.自动驾驶汽车或智能汽车在行驶过程中,自车的驾驶目标为以安全、舒适的方式行驶,当存在碰撞风险时,需要避免发生碰撞。
73.例如,行驶道路包括城市开放结构化道路、高速路或乡村道路等。
74.当周围存在障碍物时可能存在碰撞风险,如跟车或插车(cut-in)等场景下,自车
的目标为以安全、舒适的方式完成跟车或刹车等动作。障碍物包括移动物体和静止障碍物等。
75.图1示出了本技术实施例中的一种应用场景,他车11位于自车12的侧前方,他车 11尚未入侵自车车道,但存在入侵趋势,例如,如图1所示,他车11具有侧向速度,即可以理解为存在入侵自车所在车道的趋势。侧向速度指的是垂直于车道方向的速度。本技术实施例中的方案可以应用于该场景中,避免自车11频繁加速或减速,提高了用户的乘坐体验。
76.图2是本技术实施例提供的车辆100的功能框图。在一个实施例中,将车辆100配置为完全或部分地自动驾驶模式。例如,车辆100可以在处于自动驾驶模式中的同时控制自身,并且可通过人为操作来确定车辆及其周边环境的当前状态,确定周边环境中的至少一个其他车辆的可能行为,并确定该其他车辆执行可能行为的可能性相对应的置信水平,基于所确定的信息来控制车辆100。在车辆100处于自动驾驶模式中时,可以将车辆100置于在没有和人交互的情况下操作。
77.车辆100可包括各种子系统,例如行进系统102、传感器系统104、控制系统106、一个或多个外围设备108以及电源110、计算机系统112和用户接口116。可选地,车辆 100可包括更多或更少的子系统,并且每个子系统可包括多个元件。另外,车辆100的每个子系统和元件可以通过有线或者无线互连。
78.行进系统102可包括为车辆100提供动力运动的组件。在一个实施例中,推进系统 102可包括引擎118、能量源119、传动装置120和车轮/轮胎121。引擎118可以是内燃引擎、电动机、空气压缩引擎或其他类型的引擎组合,例如汽油发动机和电动机组成的混动引擎,内燃引擎和空气压缩引擎组成的混动引擎。引擎118将能量源119转换成机械能量。
79.能量源119的示例包括汽油、柴油、其他基于石油的燃料、丙烷、其他基于压缩气体的燃料、乙醇、太阳能电池板、电池和其他电力来源。能量源119也可以为车辆100的其他系统提供能量。
80.传动装置120可以将来自引擎118的机械动力传送到车轮121。传动装置120可包括变速箱、差速器和驱动轴。在一个实施例中,传动装置120还可以包括其他器件,比如离合器。其中,驱动轴可包括可耦合到一个或多个车轮121的一个或多个轴。
81.传感器系统104可包括感测关于车辆100周边的环境的信息的若干个传感器。例如,传感器系统104可包括定位系统122(定位系统可以是gps系统,也可以是北斗系统或者其他定位系统)、惯性测量单元(inertial measurement unit,imu)124、雷达126、激光测距仪128以及相机130。传感器系统104还可包括被监视车辆100的内部系统的传感器 (例如,车内空气质量监测器、燃油量表、机油温度表等)。来自这些传感器中的一个或多个的传感器数据可用于检测对象及其相应特性(位置、形状、方向、速度等)。这种检测和识别是自主车辆100的安全操作的关键功能。
82.定位系统122可用于估计车辆100的地理位置。imu 124用于基于惯性加速度来感测车辆100的位置和朝向变化。在一个实施例中,imu 124可以是加速度计和陀螺仪的组合。
83.雷达126可利用无线电信号来感测车辆100的周边环境内的物体。在一些实施例中,除了感测物体以外,雷达126还可用于感测物体的速度和/或前进方向。
84.激光测距仪128可利用激光来感测车辆100所位于的环境中的物体。在一些实施例中,激光测距仪128可包括一个或多个激光源、激光扫描器以及一个或多个检测器,以及其
他系统组件。
85.相机130可用于捕捉车辆100的周边环境的多个图像。相机130可以是静态相机或视频相机。
86.控制系统106为控制车辆100及其组件的操作。控制系统106可包括各种元件,其中包括转向系统132、油门134、制动单元136、计算机视觉系统140、路线控制系统142以及障碍物避免系统144。
87.转向系统132可操作来调整车辆100的前进方向。例如在一个实施例中可以为方向盘系统。
88.油门134用于控制引擎118的操作速度并进而控制车辆100的速度。
89.制动单元136用于控制车辆100减速。制动单元136可使用摩擦力来减慢车轮121。在其他实施例中,制动单元136可将车轮121的动能转换为电流。制动单元136也可采取其他形式来减慢车轮121转速从而控制车辆100的速度。
90.计算机视觉系统140可以操作来处理和分析由相机130捕捉的图像以便识别车辆100 周边环境中的物体和/或特征。物体和/或特征可包括交通信号、道路边界和障碍物。计算机视觉系统140可使用物体识别算法、运动中恢复结构(structure from motion,sfm)算法、视频跟踪和其他计算机视觉技术。在一些实施例中,计算机视觉系统140可以用于为环境绘制地图、跟踪物体、估计物体的速度等等。
91.路线控制系统142用于确定车辆100的行驶路线。在一些实施例中,路线控制系统 142可结合来自传感器、gps 122和一个或多个预定地图的数据以为车辆100确定行驶路线。
92.障碍物避免系统144用于识别、评估和避免或者以其他方式越过车辆100的环境中的潜在障碍物。
93.当然,在一个实例中,控制系统106可以增加或替换地包括除了所示出和描述的那些以外的组件。或者也可以减少一部分上述示出的组件。
94.车辆100通过外围设备108与外部传感器、其他车辆、其他计算机系统或用户之间进行交互。外围设备108可包括无线通信系统146、车载电脑148、麦克风150和/或扬声器 152。
95.在一些实施例中,外围设备108提供车辆100的用户与用户接口116交互的手段。例如,车载电脑148可向车辆100的用户提供信息。用户接口116还可操作车载电脑148来接收用户的输入。车载电脑148可以通过触摸屏进行操作。在其他情况中,外围设备108 可提供用于车辆100与位于车内的其它设备通信的手段。例如,麦克风150可从车辆100 的用户接收音频(例如,语音命令或其他音频输入)。类似地,扬声器152可向车辆100 的用户输出音频。
96.无线通信系统146可以直接地或者经由通信网络来与一个或多个设备无线通信。例如,无线通信系统146可使用3g蜂窝通信,例如cdma、evd0、gsm/gprs,或者4g 蜂窝通信,例如lte。或者5g蜂窝通信。无线通信系统146可利用wifi与无线局域网 (wireless local area network,wlan)通信。在一些实施例中,无线通信系统146可利用红外链路、蓝牙或zigbee与设备直接通信。其他无线协议,例如各种车辆通信系统,例如,无线通信系统146可包括一个或多个专用短程通信(dedicated short rangecommunications,dsrc)设备,这些设备可包括车辆和/或路边台站之间的公共和/或私有数据通信。
97.电源110可向车辆100的各种组件提供电力。在一个实施例中,电源110可以为可再充电锂离子或铅酸电池。这种电池的一个或多个电池组可被配置为电源为车辆100的各种组件提供电力。在一些实施例中,电源110和能量源119可一起实现,例如一些全电动车中那样。
98.车辆100的部分或所有功能受计算机系统112控制。计算机系统112可包括至少一个处理器113,处理器113执行存储在例如数据存储装置114这样的非暂态计算机可读介质中的指令115。计算机系统112还可以是采用分布式方式控制车辆100的个体组件或子系统的多个计算设备。
99.处理器113可以是任何常规的处理器,诸如商业可获得的cpu。替选地,该处理器可以是诸如asic或其它基于硬件的处理器的专用设备。尽管图2功能性地图示了处理器、存储器、和在相同块中的计算机110的其它元件,但是本领域的普通技术人员应该理解该处理器、计算机、或存储器实际上可以包括可以或者可以不存储在相同的物理外壳内的多个处理器、计算机、或存储器。例如,存储器可以是硬盘驱动器或位于不同于计算机110 的外壳内的其它存储介质。因此,对处理器或计算机的引用将被理解为包括对可以或者可以不并行操作的处理器或计算机或存储器的集合的引用。不同于使用单一的处理器来执行此处所描述的步骤,诸如转向组件和减速组件的一些组件每个都可以具有其自己的处理器,处理器只执行与特定于组件的功能相关的计算。
100.在此处所描述的各个方面中,处理器可以位于远离该车辆并且与该车辆进行无线通信。在其它方面中,此处所描述的过程中的一些在布置于车辆内的处理器上执行而其它则由远程处理器执行,包括采取执行单一操纵的必要步骤。
101.在一些实施例中,数据存储装置114可包含指令115(例如,程序逻辑),指令115 可被处理器113执行来执行车辆100的各种功能,包括以上描述的那些功能。数据存储装置114也可包含额外的指令,包括向推进系统102、传感器系统104、控制系统106和外围设备108中的一个或多个发送数据、从其接收数据、与其交互和/或对其进行控制的指令。
102.除了指令115以外,数据存储装置114还可存储数据,例如道路地图、路线信息,车辆的位置、方向、速度以及其它这样的车辆数据,以及其他信息。这种信息可在车辆100 在自主、半自主和/或手动模式中操作期间被车辆100和计算机系统112使用。
103.在本技术实施例中,辆100或计算机系统112可以从数据存储装置114中获取数据,并执行后文中的方法700或方法1100。
104.用户接口116,用于向车辆100的用户提供信息或从其接收信息。可选地,用户接口116可包括在外围设备108的集合内的一个或多个输入/输出设备,例如无线通信系统146、车车在电脑148、麦克风150和扬声器152。
105.计算机系统112可基于从各种子系统(例如,行进系统102、传感器系统104和控制系统106)以及从用户接口116接收的输入来控制车辆100的功能。例如,计算机系统112 可利用来自控制系统106的输入以便控制转向单元132来避免由传感器系统104和障碍物避免系统144检测到的障碍物。在一些实施例中,计算机系统112可操作来对车辆100及其子系统的许多方面提供控制。
106.可选地,上述这些组件中的一个或多个可与车辆100分开安装或关联。例如,数据存储装置114可以部分或完全地与车辆100分开存在。上述组件可以按有线和/或无线方式
来通信地耦合在一起。
107.可选地,上述组件只是一个示例,实际应用中,上述各个模块中的组件有可能根据实际需要增添或者删除,图1不应理解为对本技术实施例的限制。
108.在道路行进的自动驾驶汽车,如上面的车辆100,可以识别其周围环境内的物体以确定对当前速度的调整。所述物体可以是其它车辆、交通控制设备、或者其它类型的物体。在一些示例中,可以独立地考虑每个识别的物体,并且基于物体的各自的特性,诸如它的当前速度、加速度、与车辆的间距等,可以用来确定自动驾驶汽车所要调整的速度。
109.可选地,自动驾驶车辆100或者与自动驾驶车辆100相关联的计算设备(如图1的计算机系统112、计算机视觉系统140、数据存储装置114)可以基于所识别的物体的特性和周围环境的状态(例如,交通、雨、道路上的冰、等等)来预测所识别的物体的行为。可选地,每一个所识别的物体都依赖于彼此的行为,因此还可以将所识别的所有物体全部一起考虑来预测单个识别的物体的行为。车辆100能够基于预测的所识别的物体的行为来调整它的速度。换句话说,自动驾驶汽车能够基于所预测的物体的行为来确定车辆将需要调整到(例如,加速、减速、或者停止)什么稳定状态。在这个过程中,也可以考虑其它因素来确定车辆100的速度,诸如,车辆100在行驶的道路中的横向位置、道路的曲率、静态和动态物体的接近度等等。
110.除了提供调整自动驾驶汽车的速度的指令之外,计算设备还可以提供修改车辆100的转向角的指令,以使得自动驾驶汽车遵循给定的轨迹和/或维持与自动驾驶汽车附近的物体(例如,道路上的相邻车道中的轿车)的安全横向和纵向距离。
111.上述车辆100可以为轿车、卡车、摩托车、公共汽车、船、飞机、直升飞机、割草机、娱乐车、游乐场车辆、施工设备、电车、高尔夫球车、火车、和手推车等,本技术实施例不做特别的限定。
112.根据图3,计算机系统101包括处理器103,处理器103和系统总线105耦合。处理器103可以是一个或者多个处理器,其中每个处理器都可以包括一个或多个处理器核。显示适配器(video adapter)107,显示适配器可以驱动显示器109,显示器109和系统总线 105耦合。系统总线105通过总线桥111和输入输出(i/o)总线113耦合。i/o接口115和 i/o总线耦合。i/o接口115和多种i/o设备进行通信,比如输入设备117(如:键盘,鼠标,触摸屏等),多媒体盘(media tray)121(例如,cd-rom,多媒体接口等)。收发器123(可以发送和/或接受无线电通信信号),摄像头155(可以捕捉景田和动态数字视频图像)和外部usb接口125。其中,可选地,和i/o接口115相连接的接口可以是usb 接口。
113.其中,处理器103可以是任何传统处理器,包括精简指令集计算(“risc”)处理器、复杂指令集计算(“cisc”)处理器或上述的组合。可选地,处理器可以是诸如专用集成电路(“asic”)的专用装置。可选地,处理器103可以是神经网络处理器或者是神经网络处理器和上述传统处理器的组合。
114.可选地,在本技术的各种实施例中,计算机系统101可位于远离自动驾驶车辆的地方,并且可与自动驾驶车辆无线通信。在其它方面,本技术所述的一些过程在设置在自动驾驶车辆内的处理器上执行,其它由远程处理器执行,包括采取执行单个操纵所需的动作。
115.计算机101可以通过网络接口129和软件部署服务器(deploying server)149通信。网络接口129是硬件网络接口,比如,网卡。网络127可以是外部网络,比如因特网,也可
以是内部网络,比如以太网或者虚拟私人网络(vpn)。可选地,网络127还可以是无线网络,比如wifi网络,蜂窝网络等。
116.硬盘驱动接口和系统总线105耦合。硬件驱动接口和硬盘驱动器相连接。系统内存 135和系统总线105耦合。运行在系统内存135的数据可以包括计算机101的操作系统(os) 137和应用程序143。
117.操作系统包括壳(shell)139和内核(kernel)141。shell 139是介于使用者和操作系统之内核(kernel)间的一个接口。shell是操作系统最外面的一层。shell管理使用者与操作系统之间的交互:等待使用者的输入,向操作系统解释使用者的输入,并且处理各种各样的操作系统的输出结果。
118.内核141由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。直接与硬件交互,操作系统内核通常运行进程,并提供进程间的通信,提供cpu时间片管理、中断、内存管理、io管理等等。
119.应用程序143包括控制汽车自动驾驶相关的程序147,比如,管理自动驾驶的汽车和路上障碍物交互的程序,控制自动驾驶汽车路线或者速度的程序,控制自动驾驶汽车和路上其他自动驾驶汽车交互的程序。应用程序143也存在于deploying server 149的系统上。在一个实施例中,在需要执行应用程序147时,计算机系统101可以从deploying server149 下载应用程序143。
120.在本技术实施例中,应用程序147可以包括控制自动驾驶汽车速度的程序,计算机系统101可以调用应用程序147以执行如下步骤:
121.获取障碍物的运动状态,障碍物的运动状态包括障碍物的位置和障碍物的速度;
122.根据障碍物的运动状态确定牵引点的位置和牵引点的速度,牵引点的速度用于指示自车在牵引点的位置处的期望速度,牵引点的位置为障碍物的运动状态的连续函数,牵引点的速度为障碍物的运动状态的连续函数;
123.根据牵引点的位置和牵引点的速度获取自车的期望加速度。
124.传感器153和计算机系统101关联。传感器153用于探测计算机系统101周围的环境。举例来说,传感器153可以探测动物,汽车,障碍物和人行横道等,进一步传感器还可以探测上述动物,汽车,障碍物和人行横道等物体周围的环境,比如:动物周围的环境,例如,动物周围出现的其他动物,天气条件,周围环境的光亮度等。可选地,如果计算机系统101位于自动驾驶的汽车上,传感器可以是摄像头,红外线感应器,化学检测器,麦克风等。
125.计算机系统112还可以从其它计算机系统接收信息或转移信息到其它计算机系统。或者,从车辆100的传感器系统104收集的传感器数据可以被转移到另一个计算机对此数据进行处理。如图4所示,来自计算机系统112的数据可以经由网络被传送到云侧的计算机 420用于进一步的处理。网络以及中间节点可以包括各种配置和协议,包括因特网、万维网、内联网、虚拟专用网络、广域网、局域网、使用一个或多个公司的专有通信协议的专用网络、以太网、wifi和http、以及前述的各种组合。这种通信可以由能够传送数据到其它计算机和从其它计算机传送数据的任何设备,诸如调制解调器和无线接口。
126.在一个示例中,计算机420可以包括具有多个计算机的服务器,例如负载均衡服务器群,为了从计算机系统112接收、处理并传送数据的目的,其与网络的不同节点交换信息。该服务器可以被类似于计算机系统112配置,具有处理器430、存储器440、指令450、和数据
460。
127.在一个示例中,服务器的数据460可以包括从计算机系统接收的数据,例如,车辆传感器收集到的数据。处理器430通过读取指令450以执行后文中的方法700。
128.图5示出了根据示例实施例的自主驾驶车辆和云服务中心的示例。云服务中心可以经诸如无线通信网络的网络502,从其操作环境500内的自动驾驶车辆510和512接收信息(诸如车辆传感器收集到数据或者其它信息)。
129.例如,云服务中心接收的数据可以包括自动驾驶车辆510和512的速度信息以及位置信息等。
130.云服务中心根据接收到的数据,运行其存储的控制汽车自动驾驶相关的程序对自动驾驶车辆510和512进行控制。控制汽车自动驾驶相关的程序可以为,管理自动驾驶的汽车和路上障碍物交互的程序,控制自动驾驶汽车路线或者速度的程序,控制自动驾驶汽车和路上其他自动驾驶汽车交互的程序。
131.网络502将地图的部分向外提供给自动驾驶车辆510或512。在其它示例中,可以在不同位置或中心之间划分操作。例如,多个云服务中心可以接收、证实、组合和/或发送信息报告。在-些示例中还可以在自动驾驶车辆之间发送信息报告和/或传感器数据。其它配置也是可能的。
132.在一些示例中,云服务中心向自动驾驶车辆发送对于关于环境内可能的驾驶情况所建议的解决方案(如,告知前方障碍物,并告知如何绕开它)。例如,云服务中心可以辅助车辆确定当面对环境内的特定障碍时如何行进。云服务中心向自动驾驶车辆发送指示该车辆应当在给定场景中如何行进的响应。例如,云服务中心基于收集到的传感器数据,可以确认道路前方具有临时停车标志的存在,并还该车道上基于“车道封闭”标志和施工车辆的传感器数据,确定该车道由于施上而被封闭。相应地,云服务中心发送用于自动驾驶车辆通过障碍的建议操作模式(例如:指示车辆变道另一条道路上)。云服务中心观察其操作环境内的视频流并且已确认自动驾驶车辆能安全并成功地穿过障碍时,对该自动驾驶车辆所使用操作步骤可以被添加到驾驶信息地图中。相应地,这一信息可以发送到该区域内可能遇到相同障碍的其它车辆,以便辅助其它车辆不仅识别出封闭的车道还知道如何通过。
133.自动驾驶汽车在巡航过程中,为了保持安全性和舒适性,需要合理的速度约束。通过设置不可触碰的虚拟墙(可以称为“加墙”),使自车与虚拟墙保持安全距离,进而得到合理的速度约束。虚拟墙为假想的墙,携带距离、速度等运动参数,自车需要保持一定的安全距离、速度跟随该墙行驶。常见的加墙场景包括:对于已经位于自车车道的物体,在物体位置设置虚拟墙;对于交通灯、停牌等标志,在停止线处设置虚拟墙。
134.对于位于相邻车道的车辆,虚拟墙的设置存在临界位置。例如,当他车与自车之间的横向距离小于设定阈值时,通常将虚拟墙设置在他车的后部,当他车与自车之间的横向距离大于或等于设定阈值时,通常不设置虚拟墙。然而,当自车检测到他车的位置变化时,自车与他车之间的横向距离可能发生变化,并可能处于设定阈值附近变化,此时,虚拟墙可能出现不稳定的情况,即在设置虚拟墙和不设置虚拟墙之间来回变换。例如,由于存在感知噪声,自车检测到他车的位置存在误差,若自车与他车之间的横向距离在设定阈值附近变化,则会导致虚拟墙不稳定。此外,对于自车附近的静止障碍物,例如,路边的停车等,当该障碍物距离自车的横向距离较近时,由于感知噪声等影响,有可能导致自车检测到的该障
碍物与自车的横向距离在设定阈值附近变化,进而导致虚拟墙不稳定。当设置虚拟墙时,相应地存在与虚拟墙对应的牵引点,用于牵引自车前进,为自车提供速度约束,例如,为了与虚拟墙保持一定的距离,自车减速行驶;当不设置虚拟墙时,相应地不存在牵引点为自车提供速度约束,自车匀速或加速行驶。当虚拟墙不稳定时,会导致速度跳变,自车频繁加速、减速,影响用户的乘坐体验。
135.对于有入侵自车车道的趋势但入侵程度较低的障碍物,若自车与他车之间的横向距离较大,通常不设置虚拟墙,自车可以正常行驶,例如,加速或匀速行驶,或者说,自车的速度可以大于障碍物的切向速度,在障碍物入侵自车车道之前超过障碍物;若设置了虚拟墙,则他车成为自车的跟车对象,自车始终与他车保持距离跟车前进,尤其是在他车的侧向速度较低的情况下,自车需要长时间受到不必要的速度约束,影响了自车的正常行驶,因此,为了保证自车的正常行驶,在自车与他车之间的横向距离较大的情况下通常不设置虚拟墙。然而,随着障碍物入侵程度不断增加,当障碍物的入侵程度较高,例如,障碍物与自车的横向距离小于设定阈值时才设置虚拟墙,此时,自车与障碍物之间的切向距离已经过近,自车来不及减速,可能会出现碰撞风险,或者,为了避免碰撞,自车突然急减速,或者,由驾驶员紧急接管,严重影响乘车体验。再如,在超车时,如果被超车辆与自车的横向距离过近,或者被超车辆做出侧向压车的危险动作,现有方案中通常不减速,为了避免碰撞,自车需要提供较高横向控制能力,也就是需要使自车与被超车辆迅速拉开横向距离,影响乘车体验。
136.本技术提出一种自动驾驶方法及装置,能够减少车辆速度突变,提高用户乘车体验。
137.图6示出了本技术实施例提供的一种自动驾驶装置600的示意性框图。
138.为了更好的了解本技术实施例中的方法,下面对图6中的各个模块的功能进行简单的描述。
139.该装置600包括获取模块610、风险估计模块(risk evaluator)620、牵引点生成模块 (towing point generator)630和加速度生成模块(acceleration generator)640。
140.其中,获取模块610用于获取障碍物的运动状态。
141.示例性地,障碍物可以包括他车、自行车或行人等物体。
142.其中,障碍物的运动状态可以包括障碍物的位置、障碍物的加速度或障碍物的速度等。
143.风险评估模块620用于根据障碍物的运动状态计算碰撞危险度。
144.碰撞危险度也可以称为接近危险度。碰撞危险度可以用于指示障碍物与自车的接近程度。或者可以理解为,碰撞危险度用于指示障碍物与自车发生碰撞的风险。碰撞危险度越高,碰撞风险越大。例如,当障碍物位于自车的相邻车道,碰撞危险度可以为障碍物与自车的侧向碰撞危险度。
145.计算碰撞危险度的具体方法可以参见后文方法700中的步骤s720。
146.需要说明的是,风险评估模块620为可选模块,获取模块610可以将障碍物的运动状态输入到牵引点生成模块630。
147.牵引点生成模块630计算牵引点的速度和牵引点位置。
148.其中,牵引点的速度用于指示自车在牵引点的位置处的期望速度。
149.牵引点的位置为障碍物的运动状态的连续函数,牵引点的速度为障碍物的运动状
态的连续函数。
150.牵引点生成模块630可以根据障碍物的运动状态计算牵引点的速度和牵引点的位置。
151.或者,在装置600包括风险评估模块620的情况下,牵引点生成模块630可以根据碰撞危险度计算牵引点的速度和牵引点的位置。
152.确定牵引点的位置和牵引点的速度的方法可以参见后文方法700中的步骤s720。
153.加速度生成模块640计算自车的期望加速度。
154.具体地,期望加速度是根据位置误差和速度误差确定的。
155.示例性地,期望加速度为位置误差和速度误差的线性组合。
156.位置误差指的是牵引点的位置与自车当前位置之间的差值,速度误差指的是牵引点的速度与自车当前速度之间的差值。
157.确定加速度的方法可以参见后文方法700中的步骤s730。
158.根据本技术实施例的方案,牵引点的位置和牵引点的速度均为障碍物的运动状态的连续函数,在检测到障碍物或者获取障碍物的运动状态之后,能够持续为车辆提供速度约束,牵引点的位置和速度随障碍物的运动状态连续变化,避免由于感知噪声等影响导致牵引点的位置和速度突变,因此可以避免车辆频繁加速或减速,提高了用户的乘坐体验。
159.下面结合图7至图14对本技术实施例的自动驾驶方法进行详细介绍。
160.图7是本技术实施例的一种自动驾驶方法700。图7所示的方法可以由自动驾驶装置来执行,该自动驾驶装置可以是云服务设备,也可以是终端设备,也可以是由云服务设备和终端设备构成的系统。例如,方法700可以运行于车载计算机等运算能力足以用来执行该自动驾驶方法的装置上,车载计算机的算力能够满足30hz或者更高的更新率。示例性地,方法700可以由图2中的计算机系统112、图3中的计算机系统101、图4中的计算机系统112或服务器420、或者图5中的云服务中心520执行,或者,方法700可以由图 6中的自动驾驶装置执行。
161.方法700包括步骤s710至步骤s730。下面对步骤s710至步骤s730进行详细说明。
162.s710,获取障碍物的运动状态。
163.其中,障碍物位于自车的前方区域,自车的前方区域包括自车的侧前方区域,或者可以理解为自车的目标行进路径之外的侧前方区域。
164.例如,障碍物可以包括路边停靠的他车、相邻车道上行驶的他车或横穿马路的行人等可以移动的物体。再如,障碍物也可以包括路障或路边垃圾桶等静止的物体。
165.其中,障碍物的运动状态可以包括障碍物的位置、障碍物的加速度或障碍物的速度等。
166.障碍物的速度包括障碍物的切向速度和障碍物的侧向速度。如图8所示,侧向速度指的是垂直于车道方向的速度。切向速度指的是平行于车道方向的速度。
167.示例性地,障碍物的运动状态可以由感知融合模块检测得到。例如,感知融合模块可以包括图2中的雷达126、激光测距仪128或者相机130等。再如,感知融合模块可以包括图3中的传感器153。
168.进一步地,步骤s710还可以包括获取自车的目标行驶路径。
169.示例性地,自车的目标行驶路径可以由运动规划模块确定。例如,运动规划模块可
以包括图2中的路线控制系统142。
170.运动规划模块可以基于路网拓扑、自车的位置和自车的速度等参数确定自车的目标行驶路径。
171.示例性地,自车的速度可以由速度传感器检测得到。自车的位置可以由定位系统确定,例如,可以由图2的车辆100中的定位系统122确定。路网拓扑可以由导航模块确定,导航模块也可以称为地图模块,用于为图2中的路径控制系统142提供支持,即提供路网拓扑。
172.在获取自车的目标行驶路径的情况下,障碍物可以为位于目标行驶路径的前方区域的障碍物,目标行驶路径的前方区域包括目标行驶路径的侧前方区域。
173.s720,根据障碍物的运动状态确定牵引点的位置和牵引点的速度。
174.牵引点的位置为障碍物的运动状态的连续函数,牵引点的速度为障碍物的运动状态的连续函数。
175.其中,牵引点的速度用于指示自车在牵引点的位置处的期望速度。
176.例如,牵引点的位置为位置a,牵引点的速度为速度b。自车在到达位置a处的期望速度为速度b。或者可以理解为,期望自车以速度b到达位置a。
177.牵引点的位置为障碍物的运动状态的连续函数指的是牵引点的位置是随障碍物的运动状态连续变化的。由于障碍物的运动状态是随时间连续变化的,因此牵引点的位置也是随时间连续变化的,即牵引点的位置不会发生跳变。
178.牵引点的位置发生跳变指的是从存在牵引点变化到不存在牵引点,或者从不存在牵引点变化为存在牵引点。也就是说,在检测到障碍物之后,牵引点的位置即随障碍物的运动状态连续变化,牵引点的位置不会在存在和不存在之间跳变。或者本技术实施例中的“连续”可以理解为,牵引点的位置并非只有不存在牵引点和牵引点位于固定位置两种状态,牵引点的位置随障碍物的运动状态变化,牵引点的位置取值可以包括多个数值。牵引点位于固定位置指的是牵引点与虚拟墙之间保持固定距离的位置。
179.牵引点的速度为障碍物的运动状态的连续函数指的是牵引点的速度是随障碍物的运动状态连续变化的。由于障碍物的运动状态是随时间连续变化的,因此牵引点的速度也是随时间连续变化的,即牵引点的速度不会发生跳变。
180.牵引点的速度发生跳变指的是从存在牵引点变化到不存在牵引点,或者从不存在牵引点变化为存在牵引点。也就是说,在检测到障碍物之后,牵引点的速度即随障碍物的运动状态连续变化,牵引点的速度不会在存在和不存在之间跳变。或者本技术实施例中的“连续”可以理解为,牵引点的速度并非只有不存在牵引点的速度和牵引点的速度为固定速度两种状态,随障碍物的运动状态变化,牵引点的速度取值可以包括多个速度值。需要说明的是,牵引点的速度为固定速度并非为恒定值,而是相对于某一参考系的固定速度,例如,牵引点的速度为固定速度指的是牵引点的速度为障碍物的速度。
181.牵引点是用于为自车提供速度约束。存在牵引点能够为自车提供速度约束,不存在牵引点无法为自车提供速度约束。在本技术实施例中,在检测到障碍物后,能够一直为自车提供速度约束,不会在提供速度约束和不提供速度约束之间跳变。
182.由于障碍物的运动状态是随时间连续变化的,因此作为障碍物的运动状态的连续函数的牵引点的位置和牵引点的速度也是随时间连续变化的,避免牵引点的位置和速度突变导致的自车频繁加速或减速。
183.可选地,方法700还包括:根据障碍物的运动状态生成虚拟墙。
184.示例性地,根据障碍物的位置生成虚拟墙。例如,虚拟墙可以位于障碍物的后方紧邻障碍物处,并垂直于车道方向。如图9所示,障碍物为他车11,虚拟墙901可以位于他车11的尾部,并垂直于车道线方向。
185.虚拟墙的状态包括可穿透状态和不可穿透状态。可穿透状态指的是,自车在行驶过程中可以穿过该虚拟墙,例如,如图14所示,该虚拟墙为可穿透虚拟墙,自车可以穿透该虚拟墙。不可穿透状态指的是,自车在行驶过程中不可穿透该虚拟墙,或者说,需要与该虚拟墙保持一定的安全距离,例如,如图13所示,该虚拟墙为不可穿透虚拟墙,自车不得穿透该虚拟墙。
186.示例性地,虚拟墙的状态与牵引点的位置有关。
187.示例性地,当虚拟墙的状态为可穿透状态时,牵引点的位置可以在虚拟墙处或者虚拟墙的前方;当虚拟墙的状态为不可穿透状态时,牵引点的位置位于虚拟墙的后方。
188.应理解,以上仅为示意,在该方案实施过程中,虚拟墙的状态和牵引点的位置之间的关系还可以包括其他表现形式,例如,虚拟墙的状态为可穿透状态时,牵引点的位置也可以位于虚拟墙的后方。需要说明的是,本技术实施例中的“前方”、“后方”等描述均是相对于车辆前进方向而言。例如,图9中,自车12向前方行驶,即向图的左侧行驶,图 9中的(a)图中,牵引点902位于虚拟墙901的左侧,即牵引点902位于虚拟墙901的前方。
189.如图9所示,图9的(a)图中,牵引点902位于虚拟墙901的前方,虚拟墙901为可穿透状态;图9的(b)图中,牵引点902位于虚拟墙901处,虚拟墙901为可穿透状态;图9的(c)图中,牵引点902位于虚拟墙901的后方,虚拟墙901为不可穿透状态。应理解,图9仅为示意,牵引点位于虚拟墙后方时,虚拟墙也可以为可穿透状态。
190.示例性地,牵引点的位置可以通过跟车距离表示。跟车距离指的是虚拟墙与牵引点之间的距离。例如,跟车距离可以为正数,零或负数。当跟车距离为正数时,虚拟墙位于牵引点的后方,虚拟墙的状态为不可穿透状态或可穿透状态;跟车距离为0时,牵引点位于虚拟墙处,虚拟墙的状态为可穿透状态;跟车距离为负数时,虚拟墙位于牵引点的前方,虚拟墙的状态为可穿透状态。再如,跟车距离可以为正数,零或负数。当跟车距离为正数时,虚拟墙位于牵引点的前方,虚拟墙的状态为可穿透状态;跟车距离为0时,牵引点位于虚拟墙处,虚拟墙的状态为可穿透状态;跟车距离为负数时,虚拟墙位于牵引点的后方,虚拟墙的状态为不可穿透状态或可穿透状态。
191.应理解,以上仅为示例,还可以通过其他方式表示牵引点的位置,例如,通过牵引点与障碍物之间的切向距离指示牵引点的位置,本技术对此不做限定。切向距离指的是平行于车道方向的距离。
192.可选地,牵引点的速度是根据障碍物的切向速度和自车的穿透速度确定的。
193.例如,牵引点的速度为障碍物的切向速度和自车的穿透速度的和,牵引点速度v
牵引点
满足如下公式。
[0194]v牵引点
=v
切向
+v
穿透

[0195]
其中,v
切向
表示障碍物的切向速度,v
穿透
表示自车的穿透速度。
[0196]
其中,自车的穿透速度是根据障碍物的运动状态确定的。
[0197]
可选地,虚拟墙的状态与牵引点的速度有关。
[0198]
示例性地,在牵引点的速度小于或等于障碍物的切向速度的情况下,虚拟墙的状态为不可穿透状态。在牵引点的速度大于障碍物的切向速度的情况下,虚拟墙的状态为可穿透状态。
[0199]
例如,牵引点的速度为障碍物的切向速度和自车的穿透速度的和,自车的穿透速度可以为正数或零,即自车的穿透速度为非负数。在该情况下,若自车的穿透速度为0,则牵引点的速度等于障碍物的切向速度,虚拟墙的状态为不可穿透状态。或者可以理解为,当虚拟墙的状态为不可穿透状态时,牵引点的速度可以仅通过障碍物的切向速度确定。
[0200]
如图10所示,图10的(a)图中,牵引点902的速度v
牵引点
为障碍物的切向速度v
切向
和自车的穿透速度v
穿透
之和,虚拟墙901为可穿透状态。图10的(b)图中,牵引点902 的速度v
牵引点
为障碍物的切向速度v
切向
和自车的穿透速度v
穿透
之和,虚拟墙901为可穿透状态。图10的(c)图中,牵引点的速度v
牵引点
为障碍物的切向速度v
切向
,虚拟墙901为不可穿透状态。
[0201]
再如,牵引点的速度为障碍物的切向速度和自车的穿透速度的和,自车的穿透速度可以为正数、零或负数。在该情况下,若自车的穿透速度为0或负数时,牵引点的速度等于或小于障碍物的切向速度,虚拟墙的状态为不可穿透状态。
[0202]
牵引点和虚拟墙是对应的,也就是说,当设置虚拟墙时,即存在牵引点为自车提供速度约束,当不设置虚拟墙时,相应地,不存在牵引点为自车提供速度约束。虚拟墙是连续存在的,牵引点的位置和牵引点的速度为障碍物的运动状态的连续函数,因此,速度约束是连续存在的,自车不会发生加速度跳变。也就是说,虽然虚拟墙的状态会发生改变,但由于虚拟墙是连续存在的,或者说由于牵引点的位置和牵引点的速度是连续变化的,自车的加速度不会随着虚拟墙状态的改变而发生跳变。
[0203]
可选地,步骤s720包括:根据障碍物的运动状态计算碰撞危险度;根据碰撞危险度确定牵引点的位置和牵引点的速度。
[0204]
碰撞危险度也可以称为接近危险度。碰撞危险度可以用于指示障碍物与自车的接近程度。或者可以理解为,碰撞危险度用于指示障碍物与自车发生碰撞的风险。碰撞危险度越高,碰撞风险越大。例如,当障碍物位于自车的相邻车道,碰撞危险度可以为障碍物与自车的侧向碰撞危险度。
[0205]
可选地,根据障碍物的运动状态计算碰撞危险度,包括:根据障碍物的运动状态计算碰撞指标,根据碰撞指标计算碰撞危险度。
[0206]
下面以障碍物位于自车的相邻车道为例对碰撞指标进行说明。
[0207]
示例性地,碰撞指标包括以下任意一项或多项:障碍物与车道线之间的距离(distanceto lane,dtl)、障碍物到达车道线的时间(time to lane,ttl)、障碍物与自车之间的侧向距离(distance to vehicle,dtv)。
[0208]
也就是说可以根据上述任一项或多项指标计算碰撞危险度。例如,根据dtl计算碰撞危险度。再如,根据ttl和dtv计算碰撞危险度。再如,根据dtl、ttl和dtv计算碰撞危险度。
[0209]
其中,dtl中的车道线指的是障碍物与自车之间的车道线。障碍物到达车道线的时间即为障碍物预计压线时间。
[0210]
可选地,该车道线可以是通过自车的目标行驶路径确定的。也就是说,根据障碍物的运动状态和自车的目标行驶路径确定碰撞指标,根据碰撞指标计算碰撞危险度。或者可以理解为,根据障碍物的运动状态和自车的目标行驶路径确定牵引点的位置和牵引点的速
度。
[0211]
进一步地,根据目标行驶路径可以确定自车发生变道行为,相应地,上述指标中的车道线也会发生改变。
[0212]
侧向距离指的是垂直于车道方向的距离,也可以称为横向距离。相对应地,切向距离指的是平行于车道方向的距离,也可以称为纵向距离。
[0213]
dtl表征了交通规则上的语义信息。
[0214]
ttl为dtl和障碍物的侧向速度之商,即障碍物预计压线时间。ttl表征了障碍物的运动趋势。障碍物存在向自车车道移动的运动趋势,也可以称为障碍物存在入侵趋势。
[0215]
dtv表征了运动学意义上的碰撞风险。
[0216]
例如,如图8所示,障碍物为他车,dtl和dtv分别如图8所示。
[0217]
碰撞危险度与dtl、ttl和dtv之间为负相关关系,即dtl、ttl和dtv越高,碰撞危险度越低,发生碰撞的可能性越小。
[0218]
例如,碰撞危险度risk满足如下公式。
[0219]
risk=0.3*(2.0-dtl)+0.3*(1.0-ttl)+0.4*(2.5-dtv)
[0220]
在上述公式,碰撞危险度为关于dtl、ttl和dtv的单调递减函数。
[0221]
需要说明的是,以上公式仅为示例,还可以通过其他公式计算接近碰撞危险度,只要满足碰撞危险度为dtl、ttl和dtv的连续函数,且与dtl、ttl和dtv呈负相关关系即可。
[0222]
应理解,以上仅为示意,还可以通过其他方式计算碰撞危险度。例如,仅通过dtv 和ttl计算碰撞危险度。再如,还可以结合以上三种参数之外的其他参数计算碰撞危险度。
[0223]
可选地,虚拟墙的状态可以根据碰撞危险度确定。
[0224]
例如,当碰撞危险度大于或等于第一阈值时,虚拟墙的状态为不可穿透状态。当碰撞危险度小于第一阈值时,虚拟墙的状态为可穿透状态。第一阈值的取值范围为(0,1]。
[0225]
碰撞危险度可以为障碍物的运动状态的连续函数,牵引点的位置和牵引点的速度均为碰撞危险度的连续函数。由此,牵引点的位置和牵引点的速度均为障碍物的运动状态的连续函数。
[0226]
示例性地,在碰撞危险度小于第二阈值的情况下,牵引点的位置位于虚拟墙的前方。在碰撞危险度等于第二阈值的情况下,牵引点的位置位于虚拟墙处。在碰撞危险度大于第二阈值的情况下,牵引点的位置位于虚拟墙的后方。第二阈值的取值范围为(0,1]。第二阈值小于第一阈值。
[0227]
牵引点的位置可以通过跟车距离表示,跟车距离为碰撞危险度的连续函数。如前所述,在一些实施方式中,跟车距离为正数表示牵引点的位置位于虚拟墙的后方,跟车距离为零表示牵引点位于虚拟墙处,跟车距离为负数表示牵引点的位置位于虚拟墙前方。在该情况下,跟车距离与碰撞危险度呈正相关关系。即碰撞危险度越高,跟车距离越大,若牵引点位于虚拟墙的后方,则牵引点与虚拟墙之间的距离越大;若牵引点位于虚拟墙的前方,则牵引点与虚拟墙之间的距离越小。
[0228]
例如,跟车距离和碰撞危险度risk可以通过方式一确定。
[0229]
跟车距离=自车车速*(2.4*risk

1.2);
[0230]
在方式一中,跟车距离为碰撞危险度的单调递增函数。第二阈值为0.5,当碰撞危险度小于0.5时,跟车距离为正数,牵引点位于虚拟墙的前方;当碰撞危险度大于0.5时,跟
车距离为负数,牵引点位于虚拟墙的后方;当碰撞危险度等于0.5时,跟车距离为0,牵引点位于虚拟墙处。
[0231]
再如,跟车距离和碰撞危险度risk可以通过方式二确定。
[0232]
当碰撞危险度risk大于或等于第一阈值时,跟车距离和碰撞危险度risk可以满足如下公式。
[0233]
跟车距离=自车车速*(2.4*risk

1.2);
[0234]
当碰撞危险度risk小于第一阈值时,跟车距离和碰撞危险度risk可以满足如下公式。
[0235]
跟车距离=min(自车车速*(2.4*risk

1.2),d)
[0236]
其中,d表示自车与虚拟墙之间的距离。
[0237]
在方式二中,若碰撞危险度小于1,跟车距离为分段函数。该分段函数可以理解为,当自车到达上述公式中前项指示的位置之前,即上述公式中的前项小于后项,跟车距离为危险度的单调递增函数,当自车到达前项指示的位置之后,即上述公式中的前项大于后项,跟车距离为自车与虚拟墙之间的距离,整个过程保持连续性,虚拟墙为可穿透状态。当碰撞危险度大于或等于1时,跟车距离为危险度的单调递增函数,虚拟墙的状态为不可穿透状态。
[0238]
自车到达上述公式中前项指示的位置之前可以理解为前项计算得到的牵引点的位置在自车的前方,在该情况下,牵引点的位置根据前项的值确定。自车到达上述公式中前项指示的位置之后可以理解为前项计算得到的牵引点的位置在自车的后方,在该情况下,牵引点的位置与自车的位置保持一致。
[0239]
应理解,以上公式仅为示意。在一种实现方式中,当虚拟墙的状态为不可穿透状态时,可以复用现有方案中牵引点的位置的计算方式。
[0240]
例如,当碰撞危险度大于或等于1时,虚拟墙的状态为不可穿透状态,跟车距离和碰撞危险度risk可以满足如下公式。
[0241]
跟车距离=自车车速*1.2;
[0242]
也就是说,当碰撞危险度大于或等于1时,跟车距离以自车车速为参考基准保持不变。例如,当自车匀速前进时,跟车距离保持不变。
[0243]
这样可以复用已有的成熟算法,无需大量路测重新调试,节约了调试成本。
[0244]
图9示出了不同碰撞危险度的情况下的牵引点位置。图9的(a)图中的碰撞危险度最低,(c)图的碰撞危险度最高。碰撞危险度较低时,牵引点距离自车较远,如图9的 (a)图所示,牵引点位于虚拟墙的前方,牵引点与自车的距离最大。随着危险度的增加,牵引点与自车之间的距离减小。如图9的(b)图所示,牵引点位于虚拟墙的后方,相对于图9的(a)图而言,牵引点与自车之间的距离减小。如图9的(c)图所示,牵引点位于虚拟墙的后方,(c)图中的碰撞危险度最高,牵引点与自车之间的距离最小,若此时的碰撞危险度大于或等于第一阈值,则此时的虚拟墙的状态为不可穿透状态,即此时的虚拟墙与不可穿透虚拟墙等效。若此时的碰撞危险度小于第一阈值,则此时的虚拟墙的状态为可穿透状态。
[0245]
进一步地,自车的穿透速度为碰撞危险度的连续函数。
[0246]
可选地,自车的穿透速度与碰撞危险度呈负相关关系,即危险度越高,自车的穿透速度越低。
[0247]
可选地,在碰撞危险度大于或等于第一阈值的情况下,牵引点的速度小于或等于障碍物的切向速度,虚拟墙的状态为不可穿透状态。
[0248]
在碰撞危险度小于第一阈值的情况下,牵引点的速度大于障碍物的切向速度,虚拟墙的状态为可穿透状态。
[0249]
示例性地,自车的穿透速度可以满足如下公式。
[0250]v穿透
=a*(1-risk);
[0251]
在上述自车的穿透速度的公式中,自车的穿透速度为碰撞危险度的非负单调递减函数。a为参数,a的取值范围为[0,300]。例如,第一阈值为1,a为25,当碰撞危险度为0 时,自车的穿透速度为25米/秒,当碰撞危险度小于1时,自车的穿透速度大于0,牵引点的速度大于障碍物的切向速度,虚拟墙的状态为可穿透状态。当碰撞危险度等于1时,自车的穿透速度为0,牵引点的速度等于障碍物的切向速度,此时的虚拟墙的状态为不可穿透状态。当碰撞危险度大于1时,自车的穿透速度小于0,牵引点的速度小于障碍物的切向速度,此时的虚拟墙的状态为不可穿透状态。
[0252]
示例性地,自车的穿透速度可以满足如下公式。
[0253]v穿透
=max(a*(1-risk),0);
[0254]
在上述自车的穿透速度的公式中,自车的穿透速度为碰撞危险度的非负单调递减函数,自车的穿透速度为非负数。a为参数,a的取值范围为[0,300]。例如,第一阈值为1, a为25,当碰撞危险度为0时,自车的穿透速度为25米/秒,当碰撞危险度小于1时,自车的穿透速度大于0,牵引点的速度大于障碍物的切向速度,虚拟墙的状态为可穿透状态。当碰撞危险度大于或等于1时,自车的穿透速度为0,牵引点的速度等于障碍物的切向速度,此时的虚拟墙的状态为不可穿透状态。
[0255]
图10示出了不同危险度的情况下的牵引点速度。图10的(a)图中的危险度最低, (c)图的危险度最高。危险度较低时,自车的穿透速度较高,随着危险度升高,自车的穿透速度降低,当危险度大于或等于第二阈值时,自车的穿透速度为0。如图10所示,牵引点的速度为自车的穿透速度和障碍物的切向速度之和。图10的(a)图中危险度最低,自车的穿透速度最大。图10的(b)图中的危险度高于(a)图中的危险度,其自车的穿透速度低于图(a)中的自车的穿透速度。图10的(c)图中的危险度最高,其危险度大于第一阈值,自车的穿透速度为0,牵引点的速度即为障碍物的切向速度。
[0256]
碰撞危险度可以用于表征障碍物的入侵程度,即入侵自车的目标行驶路径的程度。
[0257]
在本技术实施例中,当障碍物的入侵程度较低时,碰撞危险度较低,虚拟墙为可穿透状态,自车可以预防性减速,当障碍物的入侵程度较高时,碰撞危险度较高,虚拟墙为不可穿透状态,自车可以保持安全距离,避免出现碰撞。
[0258]
在不同的入侵程度下,虚拟墙的状态不同,牵引点的位置以及牵引点的速度不同,在逐渐入侵的场景中,能够保证自车反映连续,提高乘坐体验。
[0259]
例如,在自车超车时,被超车辆即为目标行驶路径之外的障碍物,障碍物的入侵程度较低时,自车可以适当减速超车,保证安全,随着障碍物的入侵程度增加,自车可以保持稳定的速度或继续减速避免碰撞。上述过程均为连续变化的过程,避免车辆速度突变。
[0260]
在一种实施方式中,当虚拟墙的状态为不可穿透状态时,牵引点的速度可以复用
现有方案中的不可穿透虚拟墙的方案实现。
[0261]
示例性地,若现有方案中牵引点的速度为障碍物的切向速度。在本技术的方案中,当虚拟墙的状态为不可穿透状态时,牵引点的速度可以等于障碍物的切向速度。
[0262]
这样可以复用已有的成熟算法,无需大量路测重新调试,节约了调试成本。
[0263]
s730,根据牵引点的位置和牵引点的速度获取自车的期望加速度。
[0264]
具体地,期望加速度是根据位置误差和速度误差确定的。
[0265]
示例性地,期望加速度为位置误差和速度误差的线性组合。
[0266]
位置误差指的是牵引点的位置与自车当前位置之间的差值,速度误差指的是牵引点的速度与自车当前速度之间的差值。
[0267]
例如,跟车距离可以通过前述方式二确定,在该情况下,期望加速度a
期望
满足如下公式。
[0268]a期望
=k1(v
牵引点-v
自车
)+k2(s
牵引点-s
自车
)
[0269]
其中,k1和k2为系数。示例性地,k1和k2可以根据路测经验确定。k1的取值范围为(0,10],k2的取值范围为(0,10]。
[0270]
例如,k1=1.0,k2=0.1。s
牵引点
表示牵引点的位置,s
自车
表示自车的位置。示例性地,该位置可以通过frenet坐标系下的s轴坐标表示,s轴坐标也可以称为弧长坐标。
[0271]
示例性地,期望加速度a
期望
还可以根据碰撞危险度、位置误差和速度误差确定。
[0272]
例如,跟车距离通过前述方式一确定,在该情况下,当碰撞危险度risk大于或等于第一阈值时,期望加速度a
期望
可以满足如下公式。
[0273]a期望
=k1(v
牵引点-v
自车
)+k2(s
牵引点-s
自车
);
[0274]
在一种实现方式中,当碰撞危险度大于或等于第一阈值时,虚拟墙的状态为不可穿透状态,期望加速度可以复用现有方案计算,例如,通过上式计算。
[0275]
当碰撞危险度risk小于第一阈值时,跟车距离和碰撞危险度risk可以满足如下公式。
[0276]a期望
=k1(v
牵引点-v
自车
)+max(k2(s
牵引点-s
自车
),0);
[0277]
上式可以理解为,当碰撞危险度risk小于第一阈值时,虚拟墙的状态为可穿透状态,若牵引点的位置位于自车前方,即自车未到达牵引点的位置,则基于牵引点和自车之间的位置误差以及牵引点的速度和自车速度之间的速度误差计算期望加速度,牵引自车到达牵引点的位置;若牵引点的位置位于自车的后方,即自车已到达牵引点的位置,上式中的后项为0,通过牵引点的速度和自车速度之间的速度误差得到期望加速度,牵引自车穿透虚拟墙。
[0278]
该期望加速度可以输出至纵向规划模块。纵向规划模块可以用于得到目标车速。
[0279]
通常虚拟墙为不可穿透虚拟墙,当自车检测到的障碍物的位置在加墙临界点附近频繁变化时,可能导致虚拟墙出现不稳定的现象,即在有虚拟墙和没有虚拟墙之间跳变,对自车速度产生非连续影响,导致自车速度突变。
[0280]
根据本技术实施例的方案,牵引点的位置和牵引点的速度均为障碍物的运动状态的连续函数,在检测到障碍物或者获取障碍物的运动状态之后,能够持续为车辆提供速度约束,牵引点的位置和速度随障碍物的运动状态连续变化,避免由于感知噪声等影响导致牵引点的位置和速度突变,因此可以避免车辆频繁加速或减速,提高了用户的乘坐体验。
[0281]
现有方案中,通常在危险场景,例如,横向车距较近的情况下设置不可穿透的虚拟墙,容易发生碰撞,或者,容易出现急减速的情况,影响用户的乘坐体验。根据本技术实施例的方案,在检测到障碍物或者获取障碍物的运动状态之后,能够持续为车辆提供速度约束,这样,在危险场景中可以自车可以尽快做出响应,避免发生碰撞或影响乘车体验。例如,在检测到障碍物或者获取障碍物的运动状态之后即确定牵引点的位置和速度,持续为车辆提供速度约束,而不是在车距较近的情况下才提供速度约束,这样,在出现危险场景之前可以提前减速,提高乘车安全性。
[0282]
此外,本技术实施例中的虚拟墙的状态包括可穿透状态和不可穿透状态,如前所述,方法可以应用于cut-in场景。cut-in场景指的是障碍物切入自车车道的场景。在不同的入侵程度下,虚拟墙可以呈现不同的状态。例如,对于入侵程度较低的障碍物,虚拟墙为可穿透状态,自车可以预防性减速,随着入侵程度的增加,虚拟墙转变为不可穿透状态,保证了自车的行车安全,由于自车已经提前减速,可以避免紧急cut-in导致的驾驶员接管,或者,避免突然减速,进而提高用户的乘车体验。
[0283]
此外,本技术实施例中的方案中在危险度较高的情况下,虚拟墙为不可穿透状态,与不可穿透虚拟墙等效,可以兼容传统的不可穿透虚拟墙的方案,这样可以复用已有的成熟算法,无需大量路测重新调试,节约了调试成本。
[0284]
图11示出了本技术实施例提供的一种自动驾驶方法1100,方法1100可以视为方法 700的一种实现方式,为了避免不必要的重复,下面在介绍方法1100时适当省略重复的描述。方法1100包括步骤s1110至步骤s1170,下面对步骤s1110至步骤s1170进行说明。
[0285]
s1110,获取障碍物的运动状态。
[0286]
示例性地,障碍物的运动状态包括障碍物的速度和障碍物的位置。
[0287]
障碍物的运动状态可以通过感知融合模块获取。
[0288]
进一步地,步骤s1110还包括自车的目标行驶路径。
[0289]
示例性地,障碍物位于目标行驶路径的侧前方区域。
[0290]
自车的目标行驶路径可以通过横向规划模块获取。
[0291]
步骤s1110与方法700中的步骤s710对应,具体描述参见前述方法700,此处不再赘述。
[0292]
s1120,计算碰撞指标。
[0293]
根据障碍物的运动状态计算碰撞指标。
[0294]
示例性地,碰撞指标包括以下任意一项或多项:障碍物与车道线之间的距离dtl、障碍物预计压线时间ttl、障碍物与自车之间的侧向距离dtv。
[0295]
s1130,计算碰撞危险度。
[0296]
根据碰撞指标计算碰撞危险度。
[0297]
示例性地,碰撞危险度risk可以满足如下公式。
[0298]
risk=0.3*(2.0-dtl)+0.3*(1.0-ttl)+0.4*(2.5-dtv);
[0299]
碰撞危险度与dtl、ttl和dtv之间为负相关关系,即dtl、ttl和dtv越高,碰撞危险度越低,发生碰撞的可能性越小。
[0300]
s1140,确定牵引点的位置。
[0301]
示例性地,牵引点的位置可以通过跟车距离表征。跟车距离为碰撞危险度的连续
函数。例如,跟车距离可以为正数、零或负数。在一些实施方式中,跟车距离为正数表示牵引点的位置位于虚拟墙的后方,跟车距离为零表示牵引点位于虚拟墙处,跟车距离为负数表示牵引点的位置位于虚拟墙前方。在该情况下,跟车距离与碰撞危险度呈正相关关系。
[0302]
示例性地,跟车距离和碰撞危险度risk可以通过方式一确定。
[0303]
跟车距离=自车车速*(2.4*risk

1.2);
[0304]
在方式一中,跟车距离为碰撞危险度的单调递增函数。第二阈值为0.5,当碰撞危险度小于0.5时,跟车距离为正数,牵引点位于虚拟墙的前方;当碰撞危险度大于0.5时,跟车距离为负数,牵引点位于虚拟墙的后方;当碰撞危险度等于0.5时,跟车距离为0,牵引点位于虚拟墙处。
[0305]
再如,跟车距离和碰撞危险度risk可以通过方式二确定。
[0306]
当碰撞危险度risk大于或等于第一阈值时,跟车距离和碰撞危险度risk可以满足如下公式。
[0307]
跟车距离=自车车速*(2.4*risk

1.2);
[0308]
当碰撞危险度risk小于第一阈值时,跟车距离和碰撞危险度risk可以满足如下公式。
[0309]
跟车距离=min(自车车速*(2.4*risk

1.2),d)
[0310]
其中,d表示自车与虚拟墙之间的距离。
[0311]
在方式二中,若碰撞危险度小于1,跟车距离为分段函数。该分段函数可以理解为,当自车到达上述公式中前项指示的位置之前,即上述公式中的前项小于后项,跟车距离为危险度的单调递增函数,当自车到达前项指示的位置之后,即上述公式中的前项大于后项,跟车距离为自车与虚拟墙之间的距离,整个过程保持连续性,虚拟墙为可穿透状态。当碰撞危险度大于或等于1时,跟车距离为危险度的单调递增函数,虚拟墙的状态为不可穿透状态。
[0312]
s1150,确定牵引点的速度。
[0313]
示例性地,牵引点的速度由障碍物的切向速度和自车的穿透速度确定。
[0314]
例如,牵引点的速度等于障碍物的切向速度和自车的穿透速度之和,牵引点速度v
牵引点
满足如下公式。
[0315]v牵引点
=v
切向
+v
穿透

[0316]
自车的穿透速度与碰撞危险度呈负相关关系,即碰撞危险度越大,自车的穿透速度越小。
[0317]
示例性地,自车的穿透速度可以满足如下公式。
[0318]v穿透
=max(25*(1-risk),0);
[0319]
在上述自车的穿透速度的公式中,自车的穿透速度为碰撞危险度的非负单调递减函数,自车的穿透速度为非负数。第二阈值为1,当碰撞危险度为0时,自车的穿透速度为 25米/秒,当碰撞危险度小于1时,自车的穿透速度大于0,牵引点的速度大于障碍物的切向速度,虚拟墙的状态为可穿透状态。当碰撞危险度大于或等于1时,自车的穿透速度为0,牵引点的速度等于障碍物的切向速度,此时的虚拟墙的状态为不可穿透状态。
[0320]
步骤s1120至步骤s1150与方法700中的步骤s720对应,具体描述参见前述方法700,此处不再赘述。
[0321]
s1160,确定期望加速度。
[0322]
具体地,期望加速度是根据位置误差和速度误差确定的。
[0323]
示例性地,期望加速度为位置误差和速度误差的线性组合。
[0324]
位置误差指的是牵引点的位置与自车当前位置之间的差值,速度误差指的是牵引点的速度与自车当前速度之间的差值。
[0325]
例如,跟车距离可以通过前述方式二确定,在该情况下,期望加速度a
期望
满足如下公式。
[0326]a期望
=k1(v
牵引点-v
自车
)+k2(s
牵引点-s
自车
)
[0327]
其中,k1和k2为系数。示例性地,k1和k2可以根据路测经验确定,例如,k1=1.0, k2=0.1。s
牵引点
表示牵引点的位置,s
自车
表示自车的位置。
[0328]
示例性地,期望加速度a
期望
还可以根据碰撞危险度、位置误差和速度误差确定。
[0329]
例如,跟车距离通过前述方式一确定,在该情况下,当碰撞危险度risk大于或等于第一阈值时,期望加速度a
期望
可以满足如下公式。
[0330]a期望
=k1(v
牵引点-v
自车
)+k2(s
牵引点-s
自车
);
[0331]
当碰撞危险度risk小于第一阈值时,跟车距离和碰撞危险度risk可以满足如下公式。
[0332]a期望
=k1(v
牵引点-v
自车
)+max(k2(s
牵引点-s
自车
),0);
[0333]
上式可以理解为,当碰撞危险度risk小于第一阈值时,虚拟墙的状态为可穿透状态,若牵引点的位置位于自车前方,即自车未到达牵引点的位置,则基于位置误差和速度误差计算期望加速度,牵引自车到达牵引点的位置;若牵引点的位置位于自车的后方,即自车已到达牵引点的位置,上式中的后项为0,通过速度误差得到期望加速度,牵引自车穿透虚拟墙。
[0334]
步骤s1160与方法700中的步骤s730对应,具体描述参见前述方法700,此处不再赘述。
[0335]
s1170,输出期望加速度。
[0336]
该期望加速度可以输出至纵向规划模块。纵向规划模块可以用于得到目标车速。
[0337]
根据本技术实施例的方案,牵引点的位置和牵引点的速度均为障碍物的运动状态的连续函数,在检测到障碍物或者获取障碍物的运动状态之后,能够持续为车辆提供速度约束,牵引点的位置和速度随障碍物的运动状态连续变化,避免由于感知噪声等影响导致牵引点的位置和速度突变,因此可以避免车辆频繁加速或减速,提高了用户的乘坐体验。
[0338]
图12和图13分别示出了当侧向的他车向自车车道切入时使用现有方案和本技术的方案的效果示意图。
[0339]
现有方案使用的虚拟墙为不可穿透虚拟墙,即加墙之后,自车需要与虚拟墙保持安全距离。如图12所示,他车11向自车12做出侧向挤压动作,由图12的(a)图至(c)图可以看出,他车11逐渐入侵自车12的车道。如图12中的(a)图所示,他车11并未入侵至自车车道,或者说,自车12与他车11之间的横向距离大于设定阈值,现有方案通常不加虚拟墙,图12中的(b)图中,他车11入侵程度不高,或者说,自车12与他车11 之间的横向距离大于设定阈值,现有方案通常不加虚拟墙,自车能够正常行驶。而图12 中的(c)图中,他车已入侵至自车12的车道,且入侵程度较高,自车12与他车11之间的横向距离小于设定阈值,现有方案此时加
虚拟墙910,虚拟墙910为不可穿透虚拟墙。然而,如图12中的(c)图所示,加虚拟墙910时可能已经发生碰撞或者需要急减速或需要紧急交由驾驶员接管,严重影响乘车安全以及乘车体验。
[0340]
本技术实施例中的方案,能够提前加虚拟墙,该虚拟墙包括可穿透状态和不可穿透状态,在不影响自车行驶的情况下,提前减速,提高乘车安全性与舒适性。
[0341]
如图13所示,他车11向自车12做出侧向挤压动作,由图13的(a)图至(c)图可以看出,他车11逐渐入侵自车12的车道。如图13中的(a)图所示,他车11并未入侵至自车车道,本技术实施例的方案设置虚拟墙901,该虚拟墙901包括可穿透状态和不可穿透状态。虚拟墙901的状态随着他车11的入侵程度变化。图13中的(b)图中,他车 11入侵程度相较于(a)图增加,虚拟墙901的状态逐渐变为不可穿透状态,图13中的(c) 图中,他车已入侵至自车12的车道,且入侵程度较高,虚拟墙901为不可穿透状态。在图13中,在检测到他车11时即可设置虚拟墙901,提前减速,提高乘车安全性与舒适性。
[0342]
图14示出了在他车位置有噪声的情况下本技术的方案的效果示意图。
[0343]
在现有方案中,当他车位置有噪声时,自车检测到的他车的位置可能在设置虚拟墙和不设置虚拟墙的临界位置跳动,导致虚拟墙不稳定,自车频繁加速减速。需要说明的是,图14仅为自车检测到的他车位置变化情况的示意图,不表示他车11的实际位置。
[0344]
自车12获取的他车11的位置如图14所示,他车11在车道线附近,如图14的(a) 图所示,自车12在检测到他车11时即设置虚拟墙901,该虚拟墙901的状态包括可穿透状态和不可穿透状态,如图14的(b)图所示,他车11的入侵程度较低,该虚拟墙901 为可穿透状态,自车12穿透虚拟墙901,图14的(c)图中,自车12继续行驶。在图14 的行驶过程中,自车速度可以保持在较为稳定的状态,平稳从他车11旁经过。
[0345]
图15是本技术实施例提供的自动驾驶装置3000的示意性框图。图15所示的自动驾驶装置3000包括获取单元3010和处理单元3020。
[0346]
获取单元3010和处理单元3020可以用于执行本技术实施例的自动驾驶方法,例如,可以用于执行方法700或方法1100。
[0347]
获取单元3010用于获取障碍物的运动状态,障碍物的运动状态包括障碍物的位置和障碍物的速度。处理单元3020用于根据障碍物的运动状态确定牵引点的位置和牵引点的速度,牵引点的速度用于指示自车在牵引点的位置处的期望速度,牵引点的位置为障碍物的运动状态的连续函数,牵引点的速度为障碍物的运动状态的连续函数;根据牵引点的位置和牵引点的速度获取自车的期望加速度。
[0348]
可选地,作为一个实施例,处理单元3020具体用于:根据障碍物的位置生成虚拟墙,虚拟墙的状态包括可穿透状态和不可穿透状态。
[0349]
可选地,作为一个实施例,虚拟墙连续存在。
[0350]
可选地,作为一个实施例,获取单元3010还用于获取自车的目标行驶路径;以及处理单元3020具体用于:根据障碍物的运动状态和自车的目标行驶路径确定牵引点的位置和牵引点的速度。
[0351]
可选地,作为一个实施例,牵引点的位置通过跟车距离表征。
[0352]
可选地,作为一个实施例,期望加速度的更新频率大于或等于20hz。
[0353]
可选地,作为一个实施例,处理单元3020具体用于:根据障碍物的运动状态计算碰
撞危险度;根据碰撞危险度确定牵引点的位置和牵引点的速度。
[0354]
可选地,作为一个实施例,在碰撞危险度小于第一阈值的情况下,虚拟墙的状态为可穿透状态;在碰撞危险度大于或等于第一阈值的情况下,虚拟墙的状态为不可穿透状态。
[0355]
可选地,作为一个实施例,障碍物的速度包括障碍物的切向速度,处理单元3020具体用于:根据碰撞危险度确定自车的穿透速度,自车的穿透速度与碰撞危险度呈负相关关系;根据障碍物的切向速度和自车的穿透速度确定牵引点的速度
[0356]
可选地,作为一个实施例,处理单元3020具体用于:在碰撞危险度大于或等于第一阈值的情况下,牵引点的速度小于或等于障碍物的切向速度。
[0357]
可选地,作为一个实施例,处理单元3020具体用于:根据障碍物的运动状态计算碰撞指标,碰撞指标包括以下至少一项或多项:障碍物与车道线之间的距离、障碍物预计压线时间或障碍物与自车之间的侧向距离;根据碰撞指标计算碰撞危险度。
[0358]
可选地,作为一个实施例,处理单元3020还用于:控制车载显示器显示自车、障碍物和虚拟墙之间的位置关系。
[0359]
需要说明的是,上述装置3000以功能单元的形式体现。这里的术语“单元”可以通过软件和/或硬件形式实现,对此不作具体限定。
[0360]
例如,“单元”可以是实现上述功能的软件程序、硬件电路或二者结合。硬件电路可能包括应用特有集成电路(application specific integrated circuit,asic)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等) 和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
[0361]
因此,在本技术的实施例中描述的各示例的单元,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0362]
图16是本技术实施例提供的自动驾驶装置的硬件结构示意图。图16所示的自动驾驶装置4000(该装置4000具体可以是一种计算机设备)包括存储器4001、处理器4002、通信接口4003以及总线4004。其中,存储器4001、处理器4002、通信接口4003通过总线4004实现彼此之间的通信连接。
[0363]
存储器4001可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器4001可以存储程序,当存储器4001中存储的程序被处理器4002执行时,处理器4002用于执行本技术实施例的自动驾驶方法的各个步骤。具体地,处理器4002可以执行上文中图7所示的方法中的步骤s710至步骤s730。
[0364]
处理器4002可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphicsprocessing unit,gpu)或者一个或多个集成电路,用于执行相关程序,以实现本技术方法实施例的自动驾驶方法。
[0365]
处理器4002还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术的自动驾驶方法的各个步骤可以通过处理器4002中的硬件的集成逻辑电路或者软件形式的指令完成。
[0366]
上述处理器4002还可以是通用处理器、数字信号处理器(digital signal processing, dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器4001,处理器4002 读取存储器4001中的信息,结合其硬件完成本技术实施例的自动驾驶装置中包括的单元所需执行的功能,或者执行本技术实施例的自动驾驶方法。
[0367]
通信接口4003使用例如但不限于收发器一类的收发装置,来实现装置4000与其他设备或通信网络之间的通信。例如,可以通过通信接口4003获取障碍物的运动状态。
[0368]
总线4004可包括在装置4000各个部件(例如,存储器4001、处理器4002、通信接口4003)之间传送信息的通路。
[0369]
应注意,尽管上述装置4000仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置4000还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置4000还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置4000也可仅仅包括实现本技术实施例所必须的器件,而不必包括图16中所示的全部器件。
[0370]
在一些实施例中,所公开的方法可以实施为以机器可读格式被编码在计算机可读存储介质上的或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。图17示意性地示出根据这里展示的至少一些实施例而布置的示例计算机程序产品的概念性局部视图,所述示例计算机程序产品包括用于在计算设备上执行计算机进程的计算机程序。在一个实施例中,示例计算机程序产品6000是使用信号承载介质6010来提供的。信号承载介质601 可以包括一个或多个程序指令6020,其当被一个或多个处理器运行时可以提供以上针对图7或图11描述的功能或者部分功能。因此,例如,参考图7中所示的实施例,方法700 的一个或多个特征可以由与信号承载介质6010相关联的一个或多个指令来承担。此外,图17中的程序指令6020也描述示例指令。
[0371]
在一些示例中,信号承载介质6010可以包含计算机可读介质6030,诸如但不限于,硬盘驱动器、紧密盘(cd)、数字视频光盘(dvd)、数字磁带、存储器、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等等。在一些实施方式中,信号承载介质6010可以包含计算机可记录介质6040,诸如但不限于,存储器、读/写(r/w)cd、r/w dvd等等。在一些实施方式中,信号承载介质 6010可以包含通信介质6050,诸如但不限于数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路等等)。因此,例如,信号承载介质6010可以由无线形式的通信介质6050(例如,遵守ieee 802.11标准或者其它传输协议的无线通信介质) 来传达。一个或多个程序指令6020可以是,例如,计算机可执行指令或者逻辑实施指令。在一些示例中,图2至图5中的计算设备可以被配置为,响应于通过计算机可读介质6030、计算机可记录介质6040、和/或通信介质6050中的一个或多个传达到计算设备的程序指令 6020,提供各种操作、功能、或者动作。应
该理解,这里描述的布置仅仅是用于示例的目的。因而,本领域技术人员将理解,其它布置和其它元素(例如,机器、接口、功能、顺序、和功能组等等)能够被取而代之地使用,并且一些元素可以根据所期望的结果而一并省略。另外,所描述的元素中的许多是可以被实现为离散的或者分布式的组件的、或者以任何适当的组合和位置来结合其它组件实施的功能实体。
[0372]
应理解,本技术实施例中的处理器可以为中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(fieldprogrammable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0373]
还应理解,本技术实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom, eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(randomaccess memory,ram)可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram, dr ram)。
[0374]
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘。
[0375]
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,其中a,b可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
[0376]
本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个) 的
任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
[0377]
应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0378]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0379]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0380]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0381]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0382]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0383]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0384]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1