用于导航主车辆的导航系统和方法与流程

文档序号:32347444发布日期:2022-11-26 11:50阅读:40来源:国知局
用于导航主车辆的导航系统和方法与流程
用于导航主车辆的导航系统和方法
1.本技术是申请日为2019年3月20日、申请号为201980002445.4(国际申请号为pct/ib2019/000281)、发明名称为“用于导航车辆的系统和方法”的发明专利申请的分案申请。
2.相关申请的交叉引用
3.本技术要求于2018年3月20日提交的美国临时专利申请第62/645,479号、于2018年3月22日提交的美国临时专利申请第62/646,579号、于2018年8月14日提交的美国临时专利申请第62/718,554号、于2018年8月29日提交的美国临时专利申请第62/724,355号、于2018年11月28日提交的美国临时专利申请第62/772,366号以及于2018年12月11日提交的美国临时专利申请第62/777,914号的优先权权益。上述所有申请通过引用整体并入本文。
技术领域
4.本公开总体涉及自主车辆导航。此外,本公开涉及根据潜在事故责任约束进行导航的系统和方法。


背景技术:

5.随着技术的不断进步,能够在车行道上导航的完全自主车辆的目标即将出现。自主车辆可能需要考虑各种各样的因素,并且基于那些因素做出适当的决定,以安全和准确地到达期望的目的地。例如,自主车辆可能需要处理和解释可视信息(例如,从相机捕捉的信息)、来自雷达或激光雷达的信息,并且也可能使用从其它源(例如,从gps设备、速度传感器、加速度计、悬架传感器等)获得的信息。同时,为了导航到目的地,自主车辆还可能需要标识其在特定车行道内(例如,在多车道道路内的特定车道)的地点、沿着其它车辆旁边导航、避开障碍和行人、观察交通信号和标志、在适当的交叉路口或交汇处从一条道路行进到另一条道路,并对车辆运行期间发生或进展的任何其他情况作出响应。此外,导航系统可能需要遵守某些施加的约束。在一些情况下,这些约束可以涉及主车辆和一个或多个其他对象(诸如其他车辆、行人等)之间的交互。在其他情况下,约束可能涉及在为主车辆实施一个或多个导航动作时要遵循的责任规则。
6.在自主驾驶领域,可行的自主车辆系统有两个重要的考虑。第一是安全保证(assurance)的标准化,包括每辆自驾驶汽车必须满足以保证安全的要求,以及如何验证这些要求。第二是可扩展性,因为导致释放成本的工程解决方案不会扩展到数百万辆汽车,并且可能会阻止自主汽车的广泛采用或甚至不那么广泛的采用。因此,需要一种用于安全保证的可解释的数学模型、以及一种遵守安全保证要求同时可扩展到数百万辆汽车的系统设计。


技术实现要素:

7.与本公开一致的实施例提供了用于自主车辆导航的系统和方法。所公开的实施例可以使用相机来提供自主车辆导航特征。例如,与所公开的实施例一致,所公开的系统可以包括一个、两个或更多个监控车辆环境的相机。所公开的系统可以基于例如对由一个或多
个相机捕捉的图像的分析来提供导航响应。导航响应还可以考虑其他数据,包括例如全球定位系统(global positioning system,gps)数据、传感器数据(例如,来自加速度计、速度传感器、悬架传感器等)、和/或其他地图数据。
8.在一个实施例中,一种用于导航主车辆的系统可以包括至少一个处理设备,其被编程为接收代表主车辆环境的至少一个图像。可以从图像捕捉设备接收该至少一个图像。该至少一个处理设备可以被编程为基于至少一个驾驶策略,确定用于实现主车辆的导航目标的规划导航动作。该至少一个处理设备可以进一步被编程为分析至少一个图像以识别主车辆环境中的目标车辆,以及确定如果采取规划导航动作则将导致的主车辆和目标车辆之间的下一状态距离。该至少一个处理设备可以被编程为确定主车辆的最大制动能力、主车辆的最大加速能力以及主车辆的当前速度。该至少一个处理设备还可以被编程为基于主车辆的当前最大制动能力、主车辆的当前最大加速能力以及主车辆的当前速度,确定主车辆的当前停止距离。该至少一个处理设备可以进一步被编程为确定目标车辆的当前速度,并基于目标车辆的至少一个辨识的特性假设目标车辆的最大制动能力。该至少一个处理设备还可以被编程为,如果所确定的主车辆的当前停止距离小于所确定的下一状态距离与基于目标车辆的当前速度和所假设的目标车辆的最大制动能力而确定的目标车辆行驶距离之和,则实施规划导航动作。
9.在一个实施例中,一种用于导航主车辆的系统可以包括至少一个处理设备。该至少一个处理设备可以被编程为从图像捕捉设备接收代表主车辆环境的至少一个图像。该至少一个处理设备还可以被编程确定用于实现主车辆的导航目标的规划导航动作。该规划导航动作可以基于至少一个驾驶策略。该至少一个处理设备可以被编程为分析至少一个图像,以识别主车辆环境中的目标车辆。该至少一个处理设备可以进一步被编程为,确定如果采取规划导航动作则将导致的主车辆和目标车辆之间的下一状态距离。该至少一个处理设备可以被编程为确定主车辆的当前速度和目标车辆的当前速度。该至少一个处理设备可以被编程为基于目标车辆的至少一个辨识的特性假设目标车辆的最大制动率能力。该至少一个处理设备可以进一步被编程为,如果对于所确定的主车辆的当前速度以及以小于主车辆的最大制动率能力的预定次最大制动率,主车辆能够在主车辆停止距离内停止,则实施规划导航动作,所述主车辆停止距离小于所确定的下一状态距离与基于目标车辆的当前速度和所假设的目标车辆的最大制动率能力而确定的目标车辆行驶距离之和。
10.在一个实施例中,一种用于导航主车辆的系统可以包括至少一个处理设备。该至少一个处理设备可以被编程为从图像捕捉设备接收代表主车辆环境的至少一个图像。该至少一个处理设备还可以被编程确定用于实现主车辆的导航目标的规划导航动作。该规划导航动作可以基于至少一个驾驶策略。该至少一个处理设备可以被编程为分析至少一个图像,以识别主车辆环境中的目标车辆。该至少一个处理设备可以进一步被编程为,确定如果采取规划导航动作则将导致的主车辆和目标车辆之间的下一状态距离。该至少一个处理设备可以被编程为确定主车辆的当前速度。该至少一个处理设备可以进一步被编程为确定目标车辆的当前速度,并基于目标车辆的至少一个辨识的特性假设目标车辆的最大制动率能力。该至少一个处理设备可以被编程为,如果对于所确定的主车辆的当前速度和对于预定制动率曲线,主车辆能够在主车辆停止距离内停止,则实施规划导航动作,所述主车辆停止距离小于所确定的下一状态距离与基于目标车辆的当前速度和所假设的目标车辆的最大
制动率能力而确定的目标车辆行驶距离之和,其中所述预定制动率曲线从主车辆的次最大制动率逐渐增加到最大制动率。
11.在一个实施例中,一种用于制动主车辆的系统可以包括至少一个处理设备,其被编程为执行一个或多个操作。该至少一个处理设备可以被编程为从至少一个传感器接收代表主车辆环境的输出。该至少一个处理设备可以进一步被编程为基于该输出,检测主车辆环境中的目标车辆。该至少一个处理设备可以被编程为确定主车辆的当前速度和主车辆与目标车辆之间的当前距离。至少基于主车辆的当前速度和主车辆与目标车辆之间的当前距离,该至少一个处理器可以被编程为确定制动条件是否存在。如果确定制动条件存在,则该至少一个处理器可以被编程为使得根据预定制动曲线应用与主车辆相关联的制动设备,所述预定制动曲线包括以主车辆的次最大制动率开始并逐渐增加到主车辆的最大制动率的分段。
12.在一个实施例中,一种用于选择性地取代人类驾驶员对主车辆的控制的自主系统可以包括至少一个处理设备。该至少一个处理设备可以被编程为从图像捕捉设备接收代表主车辆环境的至少一个图像,并且基于对至少一个图像的分析,检测主车辆环境中的至少一个障碍物。该至少一个处理设备可以被编程为监视对与主车辆相关联的油门控件、制动控件或转向控件中的至少一个的驾驶员输入。该至少一个处理设备还可以被编程为确定该驾驶员输入是否会导致主车辆在相对于至少一个障碍物的接近缓冲区内导航。如果至少一个处理设备确定该驾驶员输入不会导致主车辆在相对于至少一个障碍物的接近缓冲区内导航,则该至少一个处理设备可以被编程为允许该驾驶员输入引起一个或多个主车辆运动控制系统中的对应改变。如果该至少一个处理设备确定该驾驶员输入会导致主车辆在相对于至少一个障碍物的接近缓冲区内导航,则该至少一个处理设备可以被编程为阻止该驾驶员输入引起一个或多个主车辆运动控制系统中的对应改变。
13.在一个实施例中,一种用于根据自主主车辆的至少一个导航目标来导航该主车辆的导航系统可以包括至少一个处理器。该至少一个处理器可以被编程为从一个或多个传感器接收指示主车辆相对于主车辆环境的运动的至少一个方面的传感器输出。该传感器输出可以在第一时间生成,该第一时间晚于该传感器输出所基于的测量或数据获取被获取时的数据获取时间,并且早于该传感器输出被该至少一个处理器接收的第二时间。该至少一个处理器可以被编程为,对于运动预测时间,至少部分地基于所接收的传感器输出以及对主车辆运动的至少一个方面在数据获取时间和运动预测时间之间的时间间隔内如何改变的估计,生成对主车辆运动的至少一个方面的预测。该至少一个处理器可以被编程为,至少部分地基于主车辆的至少一个导航目标并基于所生成的对主车辆运动的至少一个方面的预测,确定主车辆的规划导航动作。该至少一个处理器可以进一步被配置为生成用于实施规划导航动作的至少一部分的导航命令。该至少一个处理器可以被编程为将导航命令提供给主车辆的至少一个致动系统。可以提供该导航命令以使得至少一个致动系统在第三时间接收该导航命令,所述第三时间晚于第二时间并且早于或大体上等于至少一个致动系统的组件对所接收的命令进行响应的致动时间。在一些实施例中,运动预测时间在数据获取时间之后并且早于或等于致动时间。
14.在一个实施例中,一种用于导航主车辆的系统包括:至少一个处理设备,被编程为:从图像捕捉设备接收代表主车辆的环境的至少一个图像;基于至少一个驾驶策略,确定
用于实现主车辆的导航目标的规划导航动作;分析所述至少一个图像,以识别主车辆的环境中的目标车辆;确定如果采取所述规划导航动作则将导致的主车辆和目标车辆之间的下一状态距离;确定主车辆的最大制动能力、主车辆的最大加速能力以及主车辆的当前速度,其中,主车辆的最大制动能力是基于与主车辆或主车辆的环境相关联的至少一个因素而确定的;基于主车辆的当前最大制动能力、主车辆的当前最大加速能力以及主车辆的当前速度,确定主车辆的当前停止距离;确定目标车辆的当前速度,并基于目标车辆的至少一个辨识的特性假设目标车辆的最大制动能力;以及如果所确定的主车辆的当前停止距离小于所确定的下一状态距离与基于目标车辆的当前速度和所假设的目标车辆的最大制动能力而确定的目标车辆行驶距离之和,则实施所述规划导航动作。
15.在一个实施例中,一种用于导航主车辆的方法包括:从图像捕捉设备接收代表主车辆的环境的至少一个图像;基于至少一个驾驶策略,确定用于实现主车辆的导航目标的规划导航动作;分析所述至少一个图像,以识别主车辆的环境中的目标车辆;确定如果采取所述规划导航动作则将导致的主车辆和目标车辆之间的下一状态距离;确定主车辆的最大制动能力、主车辆的最大加速能力以及主车辆的当前速度,其中,主车辆的最大制动能力是基于与主车辆或主车辆的环境相关联的至少一个因素而确定的;基于主车辆的当前最大制动能力、主车辆的当前最大加速能力以及主车辆的当前速度,确定主车辆的当前停止距离;确定目标车辆的当前速度,并基于目标车辆的至少一个辨识的特性假设目标车辆的最大制动能力;以及如果所确定的主车辆的当前停止距离小于所确定的下一状态距离与基于目标车辆的当前速度和所假设的目标车辆的最大制动能力而确定的目标车辆行驶距离之和,则实施所述规划导航动作。
16.与其他公开的实施例一致,非暂时性计算机可读存储介质可以存储程序指令,这些程序指令可由至少一个处理设备执行,并执行本文描述的任何步骤和/或方法。
17.前面的一般描述和下面的详细描述仅仅是示例性和解释性的,而不是对权利要求的限制。
附图说明
18.并入本公开中并构成本公开的一部分的附图示出所公开的各种实施例。
19.在附图中:
20.图1是与所公开的实施例一致的示例系统的图示性表示。
21.图2a是包括与所公开的实施例一致的系统的示例车辆的图示性侧视图表示。
22.图2b是与所公开的实施例一致的图2a中所示的车辆和系统的图示性顶视图表示。
23.图2c是包括与所公开的实施例一致的系统的车辆的另一实施例的图示性顶视图表示。
24.图2d是包括与所公开的实施例一致的系统的车辆的又一实施例的图示性顶视图表示。
25.图2e是包括与所公开的实施例一致的系统的车辆的又一实施例的图示性顶视图表示。
26.图2f是与所公开的实施例一致的示例车辆控制系统的图示性表示。
27.图3a是与所公开的实施例一致的、包括后视镜和用于车辆成像系统的用户界面的
车辆的内部的图示性表示。
28.图3b是与所公开的实施例一致的、配置为位置在后视镜之后并抵靠车辆挡风玻璃的相机安装的示例的图示。
29.图3c是与所公开的实施例一致的图3b中所示的相机安装从不同的视角的图示。
30.图3d是与所公开的实施例一致的、配置为位于后视镜之后并抵靠车辆挡风玻璃的相机安装的示例的图示。
31.图4是与所公开的实施例一致的、配置为存储用于执行一个或多个操作的指令的存储器的示例框图。
32.图5a是示出与所公开的实施例一致的、用于基于单目图像分析引起一个或多个导航响应的示例处理的流程图。
33.图5b是示出与所公开的实施例一致的、用于在一组图像中检测一个或多个车辆和/或行人的示例处理的流程图。
34.图5c是示出与所公开的实施例一致的、用于在一组图像中检测道路标记和/或车道几何信息的示例处理的流程图。
35.图5d是示出与所公开的实施例一致的、用于在一组图像中检测交通灯的示例处理的流程图。
36.图5e是示出与所公开的实施例一致的、用于基于车辆路径引起一个或多个导航响应的示例处理的流程图。
37.图5f是示出与所公开的实施例一致的、用于确定前方车辆是否正在改变车道的示例处理的流程图。
38.图6是示出与所公开的实施例一致的、用于基于立体图像分析引起一个或多个导航响应的示例处理的流程图。
39.图7是示出与所公开的实施例一致的、用于基于三组图像的分析引起一个或多个导航响应的示例处理的流程图。
40.图8是与所公开的实施例一致的、可由自主车辆的导航系统的一个或多个专门编程的处理设备来实现的模块的框图表示。
41.图9是与所公开的实施例一致的导航选项图。
42.图10是与所公开的实施例一致的导航选项图。
43.图11a、图11b和图11c提供了与所公开的实施例一致的并道区(merge zone)中的主车辆的导航选项的示意表示。
44.图11d提供了与所公开的实施例一致的双并道场景的图示性描述。
45.图11e提供了与所公开的实施例一致的、在双并道场景中潜在有用的选项图。
46.图12提供了与所公开的实施例一致的、捕捉了主车辆的环境的表示性图像以及潜在导航约束的图。
47.图13提供了与所公开的实施例一致的、用于导航车辆的算法流程图。
48.图14提供了与所公开的实施例一致的、用于导航车辆的算法流程图。
49.图15提供了与所公开的实施例一致的、用于导航车辆的算法流程图。
50.图16提供了与所公开的实施例一致的、用于导航车辆的算法流程图。
51.图17a和17b提供了与所公开的实施例一致的、导航进入环形道的主车辆的图示性
图示。
52.图18提供了与所公开的实施例一致的、用于导航车辆的算法流程图。
53.图19示出了与所公开的实施例一致的、在多车道高速公路上行驶的主车辆的示例。
54.图20a和20b示出了与所公开的实施例一致的、正在另一车辆前方切入的车辆的示例。
55.图21示出了与所公开的实施例一致的、正在跟随另一车辆的车辆的示例。
56.图22示出了与所公开的实施例一致的、正在离开停车场并且并入可能繁忙的道路的车辆的示例。
57.图23示出了与所公开的实施例一致的、正在在道路上行驶的车辆。
58.图24a-24d示出了与所公开的实施例一致的四个示例场景。
59.图25示出了与所公开的实施例一致的示例场景。
60.图26示出了与所公开的实施例一致的示例场景。
61.图27示出了与所公开的实施例一致的示例场景。
62.图28a和28b示出了与所公开的实施例一致的、车辆正在跟随另一车辆的场景的示例。
63.图29a和29b示出了与所公开的实施例一致的切入场景中的示例归责(blame)。
64.图30a和30b示出了与所公开的实施例一致的切入场景中的示例归责。
65.图31a-31d示出了与所公开的实施例一致的漂移场景中的示例归责。
66.图32a和32b示出了与所公开的实施例一致的双向交通场景中的示例归责。
67.图33a和33b示出了与所公开的实施例一致的双向交通场景中的示例归责。
68.图34a和34b示出了与所公开的实施例一致的路线优先级场景中的示例归责。
69.图35a和35b示出了与所公开的实施例一致的路线优先级场景中的示例归责。
70.图36a和36b示出了与所公开的实施例一致的路线优先级场景中的示例归责。
71.图37a和37b示出了与所公开的实施例一致的路线优先级场景中的示例归责。
72.图38a和38b示出了与所公开的实施例一致的路线优先级场景中的示例归责。
73.图39a和39b示出了与所公开的实施例一致的路线优先级场景中的示例归责。
74.图40a和40b示出了与所公开的实施例一致的交通灯场景中的示例归责。
75.图41a和41b示出了与所公开的实施例一致的交通灯场景中的示例归责。
76.图42a和42b示出了与所公开的实施例一致的交通灯场景中的示例归责。
77.图43a-43c示出了与所公开的实施例一致的示例弱势道路使用者(vulnerable road user,vru)场景。
78.图44a-44c示出了与所公开的实施例一致的示例弱势道路使用者(vru)场景。
79.图45a-45c示出了与所公开的实施例一致的示例弱势道路使用者(vru)场景。
80.图46a-46d示出了与所公开的实施例一致的示例弱势道路使用者(vru)场景。
81.图47a和47b示出了与所公开的实施例一致的车辆跟随另一车辆的示例情景。
82.图48是示出了与所公开的实施例一致的用于导航主车辆的示例性处理。
83.图49a-49d示出了与所公开的实施例一致的车辆跟随另一车辆的示例情景。
84.图50是示出了与所公开的实施例一致的用于制动主车辆的示例性处理的流程图。
85.图51是示出了与所公开的实施例一致的用于导航主车辆的示例性处理的流程图。
86.图52a-52d示出了与所公开的实施例一致的主车辆的示例接近缓冲区。
87.图53a和53b示出了包括与所公开的实施例一致的接近缓冲区的示例情景。
88.图54a和54b示出了包括与所公开的实施例一致的接近缓冲区的示例情景。
89.图55提供了与所公开的实施例一致的用于选择性地取代人类驾驶员对主车辆的控制的流程图。
90.图56是示出了与所公开的实施例一致的用于导航主车辆的示例性处理的流程图。
91.图57a-57c示出了与所公开的实施例一致的示例情景。
92.图58是示出了与所公开的实施例一致的用于导航主车辆的示例性处理的流程图。
具体实施方式
93.接下来的详细描述参考附图。只要可能,在附图和接下来的描述中使用相同的附图标记来指代相同或相似的部分。尽管本文描述了若干示例性实施例,但是修改、调整和其它实施方式是可能的。例如,可以对附图中示出的组件做出替换、添加或修改,并且可以通过对所公开的方法进行步骤的替换、重新排序、移除或添加,来对本文描述的示例性方法进行修改。因此,接下来的详细描述并不限于所公开的实施例和示例。相反,适当的范围由所附权利要求限定。
94.自主车辆概览
95.如贯穿本公开所使用的,术语“自主车辆”是指在没有驾驶员输入的情况下能够实现至少一个导航改变的车辆。“导航改变”是指车辆的转向、制动、或加速/减速中的一个或多个。所谓自主,是指车辆不需要是完全自动的(例如,在没有驾驶员或没有驾驶员输入的情况下完全可操作的)。相反,自主车辆包括能够在某些时间段期间在驾驶员的控制下操作,且能够在其他时间段期间无需驾驶员控制而操作的那些车辆。自主车辆还可以包括仅控制车辆导航的某些方面(诸如转向(例如,在车辆车道约束之间维持车辆路线)或在某些情况下(但并非在所有情况下)的某些转向操作),但可以将其它方面交给驾驶员(例如,制动或在某些情况下的制动)的车辆。在一些情况下,自主车辆可以处理车辆的制动、速率控制和/或转向的某些或全部方面。
96.由于人类驾驶员通常依赖于可视线索和观察以便控制车辆,因此而建造了交通基础设施,其带有被设计为向驾驶员提供可视信息的车道标记、交通标志和交通灯。鉴于交通基础设施的这些设计特性,自主车辆可以包括相机以及分析从车辆的环境捕捉的可视信息的处理单元。可视信息可以包括,例如表示可由驾驶员观察到的交通基础设施的组件(例如,车道标记、交通标志、交通灯等)以及其它障碍物(例如,其它车辆、行人、碎片等)的图像。此外,自主车辆还可以使用存储的信息,诸如在导航时提供车辆环境的模型的信息。例如,车辆可以使用gps数据、传感器数据(例如,来自加速计、速度传感器、悬架传感器等)和/或其它地图数据,以在车辆正在行驶的同时提供与其环境有关的信息,并且该车辆(以及其它车辆)可以使用该信息在模型上对其自身定位。一些车辆也能够在车辆之间进行通信、共享信息、改变同伴车辆的危险或车辆周围的变化等。
97.系统概览
98.图1是与所公开的示例实施例一致的系统100的框图表示。取决于特定实施方式的
要求,系统100可以包括各种组件。在一些实施例中,系统100可以包括处理单元110、图像获取单元120、位置传感器130、一个或多个存储器单元140、150、地图数据库160、用户界面170和无线收发器172。处理单元110可以包括一个或多个处理设备。在一些实施例中,处理单元110可以包括应用处理器180、图像处理器190或任何其它合适的处理设备。类似地,取决于特定应用的要求,图像获取单元120可以包括任意数量的图像获取设备和组件。在一些实施例中,图像获取单元120可以包括一个或多个图像捕捉设备(例如,相机、电荷耦合器件(ccd)或任意其他类型的图像传感器),诸如图像捕捉设备122、图像捕捉设备124和图像捕捉设备126。系统100还可以包括将处理单元110通信地连接到图像获取单元120的数据接口128。例如,数据接口128可以包括用于将由图像获取单元120获取的图像数据传输到处理单元110的任何有线和/或无线的一个或多个链路。
99.无线收发器172可以包括被配置为通过使用射频、红外频率、磁场、或电场来交换通过空中接口到一个或多个网络(例如,蜂窝、因特网等)的传输的一个或多个设备。无线收发器172可以使用任何熟知的标准来发送和/或接收数据(例如,wi-fi、蓝牙智能、802.15.4、zigbee等)。这样的传输可以包括从主车辆到一个或多个远程定位的服务器的通信。这样的传输还可以包括主车辆与在主车辆的环境中的一个或多个目标车辆之间的(单向或双向的)通信(例如,为了便于考虑到或连同在主车辆的环境中的目标车辆来协调主车辆的导航),或者甚至向发送车辆附近的未指定的接收者的广播传输。
100.应用处理器180和图像处理器190两者都可以包括各种类型的基于硬件的处理设备。例如,应用处理器180和图像处理器190中的任一者或两者可以包括微处理器、预处理器(诸如图像预处理器)、图形处理器、中央处理单元(cpu)、辅助电路、数字信号处理器、集成电路、存储器或适用于运行应用和适用于图像处理和分析的任何其它类型的设备。在一些实施例中,应用处理器180和/或图像处理器190可以包括任何类型的单核或多核处理器、移动设备微控制器、中央处理单元等。可以使用各种处理设备,包括例如可从诸如等制造商获得的处理器,并且可以包括各种架构(例如,x86处理器、等)。
101.在一些实施例中,应用处理器180和/或图像处理器190可以包括可从获得的任何eyeq系列处理器芯片。这些处理器设计均包括带有本地存储器和指令集的多个处理单元。这样的处理器可以包括用于从多个图像传感器接收图像数据的视频输入,并且还可以包括视频输出能力。在一个示例中,使用在332兆赫兹下操作的90纳米-微米技术。架构由两个浮点式超线程32位risc cpu(核)、五个视觉计算引擎(vce)、三个矢量微代码处理器丹那利(denali)64位移动ddr控制器、128位内部声能互连(sonics interconnect)、双16位视频输入和18位视频输出控制器、16通道dma和若干外围设备构成。mips34k cpu管理这五个vce、三个vmp
tm
和dma、第二mips34k cpu和多通道dma以及其它外围设备。这五个vce、三个和mips34k cpu可以执行多功能捆绑应用所需要的密集视觉计算。在另一示例中,作为第三代处理器并且比强六倍的可以在所公开的实施例中使用。在其他示例中,可以在所公开的实施例中使用和/或当然,任何更新的或未来的eyeq处理设备也可以与所公开的
实施例一起使用。
102.任何本文所公开的处理设备可以被配置为执行某些功能。配置处理设备(诸如任何所描述的eyeq处理器或其它控制器或微处理器)以执行某些功能可以包括对计算机可执行指令的编程,并使处理设备在其操作期间可获得这些指令以用于执行。在一些实施例中,配置处理设备可以包括直接利用架构指令对处理设备编程。在其它实施例中,配置处理设备可以包括将可执行指令存储在操作期间处理设备可访问的存储器上。例如,处理设备在操作期间可以访问该存储器以获得并执行所存储的指令。在任一情况下,被配置为执行本文公开的感测、图像分析和/或导航功能的处理设备表示控制主车辆的多个基于硬件的组件的专用的基于硬件的系统。
103.尽管图1描绘了包含在处理单元110中的两个单独的处理设备,但是可以使用更多或更少的处理设备。例如,在一些实施例中,可以使用单个处理设备完成应用处理器180和图像处理器190的任务。在其它实施例中,这些任务可以由两个以上的处理设备执行。另外,在一些实施例中,系统100可以包括一个或多个处理单元110,而不包括诸如图像获取单元120之类的其它组件。
104.处理单元110可以包括各种类型的设备。例如,处理单元110可以包括各种设备,诸如控制器、图像预处理器、中央处理单元(cpu)、辅助电路、数字信号处理器、集成电路、存储器或任何其它类型的用于图像处理和分析的设备。图像预处理器可以包括用于捕捉、数字化和处理来自图像传感器的影像的视频处理器。cpu可以包括任何数量的微控制器或微处理器。辅助电路可以是任何数量的本领域公知的电路,包括高速缓存、电力供给、时钟和输入输出电路。存储器可以存储软件,该软件在由处理器执行时控制系统的操作。存储器可以包括数据库和图像处理软件。存储器可以包括任何数量的随机存取存储器、只读存储器、闪速存储器、磁盘驱动器、光存储、磁带存储、可移动存储和其它类型的存储。在一个实例中,存储器可以与处理单元110分离。在另一实例中,存储器可以被集成到处理单元110中。
105.每个存储器140、150可以包括软件指令,该软件指令在由处理器(例如,应用处理器180和/或图像处理器190)执行时可以控制系统100的各个方面的操作。例如,这些存储器单元可以包括各种数据库和图像处理软件,以及经训练的系统,诸如神经网络和深度神经网络。存储器单元可以包括随机存取存储器、只读存储器、闪速存储器、磁盘驱动器、光存储、磁带存储、可移动存储和/或任何其它类型的存储。在一些实施例中,存储器单元140、150可以与应用处理器180和/或图像处理器190分离。在其它实施例中,这些存储器单元可以被集成到应用处理器180和/或图像处理器190中。
106.位置传感器130可以包括适用于确定与系统100的至少一个组件相关联的位置的任何类型的设备。在一些实施例中,位置传感器130可以包括gps接收器。这种接收器可以通过处理由全球定位系统卫星广播的信号来确定用户位置和速度。可以使得来自位置传感器130的位置信息对于应用处理器180和/或图像处理器190可用。
107.在一些实施例中,系统100可以包括诸如用于测量车辆200的速率的速度传感器(例如,速度计)之类的组件。系统100还可以包括用于测量车辆200沿一个或多个轴的加速度的一个或多个加速度计(单轴或多轴的)。
108.存储器单元140、150可以包括数据库,或以任何其他形式组织的、指示已知地标的位置的数据。环境的传感信息(诸如来自激光雷达或两个或更多个图像的立体处理的图像、
雷达信号、深度信息)可以与位置信息(诸如gps坐标、车辆的自我运动等)一起处理,以确定车辆相对于已知地标的当前位置,并且改进车辆位置。这项技术的某些方面包含于被称为rem
tm
的定位技术中,该技术由本技术的受让人销售。
109.用户界面170可以包括适用于向系统100的一个或多个用户提供信息或从系统100的一个或多个用户接收输入的任何设备。在一些实施例中,用户界面170可以包括用户输入设备,包括例如触摸屏、麦克风、键盘、指针设备、跟踪转轮、相机、旋钮、按钮等。利用这样的输入设备,用户能够通过键入指令或信息、提供语音命令、使用按钮、指针或眼睛跟踪能力在屏幕上选择菜单选项、或通过任何其它适用于向系统100传送信息的技术来向系统100提供信息输入或命令。
110.用户界面170可以配备有一个或多个处理设备,其配置为向用户提供和从用户接收信息,并处理该信息以由例如应用处理器180使用。在一些实施例中,这样的处理设备可以执行指令以辨识和跟踪眼睛运动、接收和解释语音命令、辨识和解释在触摸屏上做出的触摸和/或手势、响应键盘输入或菜单选择等。在一些实施例中,用户界面170可以包括显示器、扬声器、触觉设备和/或任何其它用于向用户提供输出信息的设备。
111.地图数据库160可以包括任何类型的用于存储对系统100有用的地图数据的数据库。在一些实施例中,地图数据库160可以包括与各种项目在参考坐标系统中的位置有关的数据,各种项目包括道路、水特征、地理特征、商业区、感兴趣的点、餐馆、加油站等。地图数据库160不仅可以存储这些项目的位置,而且可以存储与这些项目有关的描述符,包括例如与任何所存储的特征相关联的名称。在一些实施例中,地图数据库160可以与系统100的其它部件在物理上位于一起。替代或附加地,地图数据库160或其一部分可以相对于系统100的其它组件(例如,处理单元110)位于远处。在这种实施例中,来自地图数据库160的信息可以通过与网络的有线或无线数据连接(例如,通过蜂窝网络和/或因特网等)而下载。在一些情况下,地图数据库160可以存储稀疏数据模型,该稀疏数据模型包括某些道路特征(例如,车道标记)或主车辆的目标轨迹的多项式表示。地图数据库160还可以包括已存储的各种辨识出的地标的表示,该地标的表示可用于确定或更新主车辆相对于目标轨迹的已知位置。地标表示可以包括数据字段,诸如地标类型、地标位置以及其他潜在标识符。
112.图像捕捉设备122、124和126均可以包括任何类型的适用于从环境捕捉至少一个图像的设备。此外,可以使用任何数量的图像捕捉设备来获取用于输入到图像处理器的图像。一些实施例可以仅包括单个图像捕捉设备,而其它实施例可以包括两个、三个、或甚至四个、或更多个图像捕捉设备。以下将参考图2b至图2e进一步描述图像捕捉设备122、124和126。
113.一个或多个相机(例如,图像捕捉设备122、124和126)可以是包括在车辆上的感测块的一部分。感测块中可以包括各种其他传感器,并且可以依靠这些传感器中的任何或全部,以形成车辆的感测的导航状态。除了相机(前方、侧方、后方等)之外,其他传感器(诸如雷达、激光雷达和声学传感器)可被包含在感测块中。另外,感测块可以包括一个或多个组件,该组件被配置为传送和发送/接收与车辆的环境有关的信息。例如,这种组件可以包括无线收发器(rf等),其可以从相对于主车辆位于远处的源接收基于传感器的信息或与主车辆的环境有关的任何其他类型的信息。这些信息可以包括从主车辆以外的车辆系统接收的传感器输出信息或相关信息。在一些实施例中,这些信息可以包括从远程计算设备、中央服
务器等接收的信息。此外,相机可以采用许多不同的配置:单个相机单元、多个相机、相机群、长fov、短fov、广角、鱼眼等。
114.系统100或其各种组件可以合并到各种不同的平台中。在一些实施例中,系统100可以被包括在车辆200上,如图2a所示。例如,车辆200可以配备有如上关于图1描述的系统100的处理单元110和任何其它组件。在一些实施例中,车辆200可以仅配备有单个图像捕捉设备(例如,相机),而在其它实施例中,诸如结合图2b至图2e所讨论的那些实施例,可以使用多个图像捕捉设备。例如,图2a中所示的车辆200的图像捕捉设备122和124中的任一个可以是adas(advanced driver assistance system,高级驾驶员辅助系统)成像集的一部分。
115.作为图像获取单元120的一部分的、被包括在车辆200上的图像捕捉设备,可以被置于任何合适的位置。在一些实施例中,如图2a至图2e,以及图3a至图3c中所示,图像捕捉设备122可以位于后视镜的附近。此位置可以提供与车辆200的驾驶员的视线相似的视线,这可以辅助确定对驾驶员而言什么是可视和不可视的。图像捕捉设备122可以被置于靠近后视镜的任何位置,而将图像捕捉设备122放置在镜子的驾驶员侧还可以辅助获得表示驾驶员的视场和/或视线的图像。
116.还可以使用图像获取单元120的图像捕捉设备的其它位置。例如,图像捕捉设备124可以位于车辆200的保险杠上或保险杠中。这种位置尤其可以适用于具有宽视场的图像捕捉设备。位于保险杠的图像捕捉设备的视线可以与驾驶员的视线不同,并且因此,保险杠图像捕捉设备和驾驶员可能不总是看到相同的对象。图像捕捉设备(例如,图像捕捉设备122、124和126)还可以位于其它位置中。例如,图像捕捉设备可以位于车辆200的侧视镜中的一者或两者之上或之中、车辆200的车顶上、车辆200的引擎盖上、车辆200的后备箱上、车辆200的侧面上、安装在车辆200的任何车窗上、置于车辆200的任何车窗的后面、或置于任何车窗的前面、以及安装在车辆200的前部和/或后部上的照明设备中或附近。
117.除了图像捕捉设备,车辆200还可以包括系统100的各种其它组件。例如,处理单元110可以被包括在车辆200上,与车辆的引擎控制单元(engine control unit,ecu)集成或分离。车辆200还可以配备有诸如gps接收器之类的位置传感器130,并且还可以包括地图数据库160以及存储器单元140和150。
118.如早先讨论的,无线收发器172可以通过一个或多个网络(例如,蜂窝网络、因特网等)和/或接收数据。例如,无线收发器172可以将系统100收集的数据上传到一个或多个服务器,并且从一个或多个服务器下载数据。经由无线收发器172,系统100可以接收,例如对存储在地图数据库160、存储器140和/或存储器150中存储的数据的周期性更新或按需求更新。类似地,无线收发器172可以将来自系统100的任何数据(例如,由图像获取单元120捕捉的图像、由位置传感器130或其它传感器、车辆控制系统接收的数据等)和/或由处理单元110处理的任何数据上传到一个或多个服务器。
119.系统100可以基于隐私等级设置将数据上传到服务器(例如,上传到云)。例如,系统100可以实施隐私等级设置,以规定或限制发送到服务器的、可以唯一地标识车辆和/或车辆的驾驶员/所有者的数据(包括元数据)的类型。这些设置可以由用户经由例如无线收发器172来设置、可以由出厂默认设置、或由无线收发器172接收的数据来初始化。
120.在一些实施例中,系统100可以根据“高”隐私等级上传数据,并且在设定了设置的情况下,系统100可以传输数据(例如,与路途有关的位置信息、捕捉的图像等),而不带有任
何关于特定车辆和/或驾驶员/所有者的细节。例如,当根据“高”隐私设置来上传数据时,系统100可以不包括车辆标识编号(vehicle identification number,vin)或车辆的驾驶员或所有者的名字,并且可以代替地传输数据(诸如,捕捉的图像和/或与路途有关的受限的位置信息)。
121.也可以考虑其它隐私等级。例如,系统100可以根据“中间”隐私等级向服务器传输数据,并且可以包括在“高”隐私等级下不包括的额外信息,诸如车辆的型号和/或模型和/或车辆类型(例如载客车辆、运动型多用途车辆、卡车等)。在一些实施例中,系统100可以根据“低”隐私等级上传数据。在“低”隐私等级设置下,系统100可以上传数据,并且包括足以唯一地标识特定车辆、所有者/驾驶员和/或车辆行驶过的部分路途或整个路途的信息。例如,这些“低”隐私等级数据可以包括以下中的一个或多个:vin、驾驶员/所有者姓名、出发之前车辆的源点、车辆的期望目的地、车辆的型号和/或模型、车辆类型等。
122.图2a是与所公开的实施例一致的、示例车辆成像系统的图示性侧视图表示。图2b是图2a中所示的实施例的图示性顶视图例示。如图2b所示,所公开的实施例可以包括车辆200,该车辆200在其车体中包括系统100,该系统100带有位于车辆200的后视镜附近和/或靠近驾驶员的第一图像捕捉设备122、位于车辆200的保险杠区域(例如,保险杠区域210中的一个)之上或之中的第二图像捕捉设备124、以及处理单元110。
123.如图2c所示,图像捕捉设备122和124两者可以都位于车辆200的后视镜附近和/或靠近驾驶员。此外,尽管图2b和图2c示出了两个图像捕捉设备122和124,应理解的是,其它实施例可以包括两个以上的图像捕捉设备。例如,在图2d和图2e中所示的实施例中,第一图像捕捉设备122、第二图像捕捉设备124和第三图像捕捉设备126被包括在车辆200的系统100中。
124.如图2d所示,图像捕捉设备122可以位于车辆200的后视镜附近和/或靠近驾驶员,并且图像捕捉设备124和126可以位于车辆200的保险杠区域(例如,保险杠区域210中的一个)之上或之中。并且如图2e所示,图像捕捉设备122、124和126可以位于车辆200的后视镜附近和/或靠近驾驶席。所公开的实施例不限于图像捕捉设备的任何特定数量和配置,并且图像捕捉设备可以位于车辆200内或车辆200上的任何合适的位置中。
125.应理解的是,所公开的实施例不限于车辆,并且可以被应用在其它情景中。还应理解,所公开的实施例不限于车辆200的特定类型,并且可以适用于所有类型的车辆,包括汽车、卡车、拖车和其它类型的车辆。
126.第一图像捕捉设备122可以包括任何合适类型的图像捕捉设备。图像捕捉设备122可以包括光轴。在一个实例中,图像捕捉设备122可以包括带有全局快门的aptina m9v024 wvga传感器。在其它实施例中,图像捕捉设备122可以提供1280
×
960像素的分辨率,并且可以包括滚动快门。图像捕捉设备122可以包括各种光学元件。在一些实施例中,可以包括一个或多个镜头,例如用于为图像捕捉设备提供期望的焦距和视场。在一些实施例中,图像捕捉设备122可以与6毫米镜头或12毫米镜头相关联。在一些实施例中,如图2d所示,图像捕捉设备122可以配置为捕捉具有期望的视场(fov)202的图像。例如,图像捕捉设备122可以配置为具有常规fov,诸如在40度到56度的范围内,包括46度fov、50度fov、52度fov,或更大的fov。可替代地,图像捕捉设备122可以配置为具有在23至40度的范围内的窄fov,诸如28度fov或36度fov。此外,图像捕捉设备122可以配置为具有在100至180度的范围内的宽fov。在
一些实施例中,图像捕捉设备122可以包括广角保险杠相机或者带有高达180度的fov的相机。在一些实施例中,图像捕捉设备122可以是带有大约2:1的高宽比(例如,h
×
v=3800
×
1900像素)、带有大约100度水平fov的7.2m(百万)像素图像捕捉设备。这种图像捕捉设备可以被用来替代三个图像捕捉设备配置。由于显著的镜头失真,在图像捕捉设备使用径向对称镜头的实施方式中,这种图像捕捉设备的垂直fov可以显著地小于50度。例如,这种镜头可以不是径向对称的,这将允许在100度水平fov情况下垂直fov大于50度。
127.第一图像捕捉设备122可以获取关于与车辆200相关联的场景的多个第一图像。多个第一图像中的每一个可以作为一系列的图像扫描线而被获取,其可使用滚动快门来捕捉。每个扫描线可以包括多个像素。
128.第一图像捕捉设备122可以具有与第一系列图像扫描线中的每一个的获取相关联的扫描速率。扫描速率可以指,图像传感器可以以该扫描速率获取与包含在特定扫描线中的每个像素相关联的图像数据。
129.图像捕捉设备122、124和126可以包含任何合适的类型和数量的图像传感器,例如,包括ccd传感器或cmos传感器等。在一个实施例中,可以采用cmos图像传感器以及滚动快门,以使得一行中的每个像素一次被读取一个,并且各行的扫描在逐行的基础上继续进行,直到已经捕捉了整个图像帧。在一些实施例中,可以相对于帧从顶部到底部顺序地捕捉各行。
130.在一些实施例中,本文公开的图像捕捉设备(例如,图像捕捉设备122、124和126)中的一个或多个可以构成高分辨率成像器,并且可以具有大于5m像素、7m像素、10m像素或更大像素的分辨率。
131.滚动快门的使用可能导致不同行中的像素在不同的时间被曝光和捕捉,这可能引起所捕捉的图像帧中的扭曲和其它图像伪像。另一方面,当图像捕捉设备122配置为利用全局或同步快门操作时,所有像素可以以相同的时间量并且在共同的曝光时段期间被曝光。其结果是,在从采用全局快门的系统收集的帧中的图像数据表示在一特定时间的整个fov(诸如fov 202)的快照。与之相比,在滚动快门应用中,在不同的时间,帧中的每行被曝光并且数据被捕捉。因此,在具有滚动快门的图像捕捉设备中,移动对象可能出现失真。将在下面更详细地描述这种现象。
132.第二图像捕捉设备124和第三图像捕捉设备126可以是任何类型的图像捕捉设备。类似于第一图像捕捉设备122,图像捕捉设备124和126中的每一个可以包括光轴。在一个实施例中,图像捕捉设备124和126中的每一个可以包括带有全局快门的aptina m9v024wvga传感器。可替代地,图像捕捉设备124和126中的每一个可以包括滚动快门。类似于图像捕捉设备122,图像捕捉设备124和126可以配置为包括各种镜头和光学元件。在一些实施例中,与图像捕捉设备124和126相关联的镜头可以提供fov(诸如fov204和206),其等于或窄于与图像捕捉设备122相关联的fov(诸如fov202)。例如,图像捕捉设备124和126可以具有40度、30度、26度、23度、20度或更小的fov。
133.图像捕捉设备124和126可以获取关于与车辆200相关联的场景的多个第二图像和第三图像。该多个第二图像和第三图像中的每一个可以作为第二系列图像扫描线和第三系列图像扫描线而被获取,这可以使用滚动快门进行捕捉。每个扫描线或行可以具有多个像素。图像捕捉设备124和126可以具有与被包含在第二系列和第三系列中的每个图像扫描线
的获取相关联的第二扫描速率和第三扫描速率。
134.每个图像捕捉设备122、124和126可以放置在相对于车辆200的任何合适的位置和方向处。可以选择图像捕捉设备122、124和126的相对位置以帮助将从图像捕捉设备获取的信息融合在一起。例如,在一些实施例中,与图像捕捉设备124相关联的fov(诸如fov 204)可能部分地或完全地和与图像捕捉设备122相关联的fov(诸如fov 202)以及与图像捕捉设备126相关联的fov(诸如fov 206)重叠。
135.图像捕捉设备122、124和126可以位于车辆200上的任何合适的相对高度处。在一个实例中,在图像捕捉设备122、124和126之间可以存在高度差,其可以提供足够的视差信息以使能立体分析。例如,如图2a所示,两个图像捕捉设备122和124在不同的高度处。例如,在图像捕捉设备122、124和126之间还可以存在横向位移差,为处理单元110的立体分析给出了额外的视差信息。如图2c和图2d所示,横向位移的差异可以通过d
x
表示。在一些实施例中,图像捕捉设备122、124和126之间可能存在前向或后向位移(例如,范围位移)。例如,图像捕捉设备122可以位于图像捕捉设备124和/或图像捕捉设备126之后0.5到2米或以上。这种类型的位移可以使得图像捕捉设备之一能够覆盖其它(一个或多个)图像捕捉设备的潜在盲点。
136.图像捕捉设备122可以具有任何合适的分辨率能力(例如,与图像传感器相关联的像素的数量),并且与图像捕捉设备122相关联的(一个或多个)图像传感器的分辨率可以比与图像捕捉设备124和126相关联的(一个或多个)图像传感器的分辨率更高、更低、或者与之相同。在一些实施例中,与图像捕捉设备122和/或图像捕捉设备124和126相关联的(一个或多个)图像传感器可以具有640
×
480、1024
×
768、1280
×
960的分辨率,或任何其它合适的分辨率。
137.帧速率(例如,在该速率下,图像捕捉设备获取一个图像帧的一组像素数据,然后继续捕捉与下一个图像帧相关联的像素数据)可以是可控的。与图像捕捉设备122相关联的帧速率可以比与图像捕捉设备124和126相关联的帧速率更高、更低或与之相同。与图像捕捉设备122、124和126相关联的帧速率可以取决于可能影响帧速率的定时的各种因素。例如,图像捕捉设备122、124和126中的一个或多个可以包括可选择的像素延迟时段,其在获取与图像捕捉设备122、124和/或126中的图像传感器的一个或多个像素相关联的图像数据之前或之后施加。通常,可以根据用于该设备的时钟速率来获取对应于每个像素的图像数据(例如,每个时钟周期一个像素)。另外,在包括滚动快门的实施例中,图像捕捉设备122、124和126中的一个或多个可以包括可选择的水平消隐时段,其在获取与图像捕捉设备122、124和/或126中的图像传感器的一行像素相关联的图像数据之前或之后施加。此外,图像捕捉设备122、124和126中的一个或多个可以包括可选择的垂直消隐时段,其在获取与图像捕捉设备122、124和126的图像帧相关联的图像数据之前或之后施加。
138.这些定时控制可以使能与图像捕捉设备122、124和126相关联的帧速率的同步,即便每个的线扫描速率不同。此外,如将在下面更详细地讨论的,这些可选择的定时控制以及其它因素(例如,图像传感器分辨率、最大线扫描速率等)可以使能从图像捕捉设备122的fov与图像捕捉设备124和126的一个或多个fov重叠的区域的图像捕捉的同步,即便图像捕捉设备122的视场不同于图像捕捉设备124和126的fov。
139.图像捕捉设备122、124和126中的帧速率定时可以取决于相关联的图像传感器的
分辨率。例如,假定对于两个设备,线扫描速率类似,如果一个设备包括具有640
×
480的分辨率的图像传感器,并且另一设备包括带有1280
×
960的分辨率的图像传感器,则需要更多的时间来从具有更高分辨率的传感器获取一帧图像数据。
140.可能影响图像捕捉设备122、124和126中的图像数据获取的定时的另一个因素是最大线扫描速率。例如,从被包含在图像捕捉设备122、124和126中的图像传感器获取一行图像数据将需要某个最低时间量。假定没有添加像素延迟时段,则用于获取一行图像数据的此最低时间量将与用于特定设备的最大线扫描速率有关。提供较高的最大线扫描速率的设备具有提供比带有较低的最大线扫描速率的设备更高的帧速率的潜力。在一些实施例中,图像捕捉设备124和126中的一个或多个可以具有高于与图像捕捉设备122相关联的最大线扫描速率的最大线扫描速率。在一些实施例中,图像捕捉设备124和/或126的最大线扫描速率可以是图像捕捉设备122的最大线扫描速率的1.25、1.5、1.75或2倍或更多倍。
141.在另一实施例中,图像捕捉设备122、124和126可以具有相同的最大线扫描速率,但图像捕捉设备122可以以小于或等于其最大扫描速率的扫描速率而操作。该系统可以配置为使得图像捕捉设备124和126中的一个或多个以等于图像捕捉设备122的线扫描速率的线扫描速率而操作。在其它实例中,该系统可以配置为使得图像捕捉设备124和/或图像捕捉设备126的线扫描速率可以是图像捕捉设备122的线扫描速率的1.25、1.5、1.75、或2倍或更多倍。
142.在一些实施例中,图像捕捉设备122、124和126可以是不对称的。也就是说,它们可包括具有不同视场(fov)和焦距的相机。例如,图像捕捉设备122、124和126的视场可以包括关于车辆200的环境的任何期望的区域。在一些实施例中,图像捕捉设备122、124和126中的一个或多个可以配置为从在车辆200前面、车辆200后面、车辆200的侧面、或其组合的环境获取图像数据。
143.此外,与每个图像捕捉设备122、124和/或126相关联的焦距可以是可选择的(例如,通过包括适当的镜头等),使得每个设备在相对于车辆200的期望的距离范围处获取对象的图像。例如,在一些实施例中,图像捕捉设备122、124和126可以获取离车辆几米之内的接近对象的图像。图像捕捉设备122、124和126还可以配置为获取离车辆更远的范围处(例如,25米、50米、100米、150米或更远)的对象的图像。此外,图像捕捉设备122、124和126的焦距可以被选择以使得一个图像捕捉设备(例如,图像捕捉设备122)可以获取相对靠近车辆的(例如,在10米内或20米内的)对象的图像,而其它图像捕捉设备(例如,图像捕捉设备124和126)可以获取离车辆200较远的(例如,大于20米、50米、100米、150米等的)对象的图像。
144.根据一些实施例,一个或多个图像捕捉设备122、124和126的fov可以具有广角。例如,具有140度的fov可能是有利的,尤其是对于可以被用于捕捉车辆200附近的区域的图像的图像捕捉设备122、124和126。例如,图像捕捉设备122可以被用来捕捉车辆200的右侧或左侧的区域的图像,并且在这些实施例中,可能期望图像捕捉设备122具有宽fov(例如,至少140度)。
145.与图像捕捉设备122、124和126中的每一个相关联的视场可以取决于各自的焦距。例如,随着焦距增加,对应的视场减小。
146.图像捕捉设备122、124和126可以配置为具有任何合适的视场。在一个特定示例中,图像捕捉设备122可以具有46度的水平fov,图像捕捉设备124可以具有23度的水平fov,
并且图像捕捉设备126可以具有在23度和46度之间的水平fov。在另一实例中,图像捕捉设备122可以具有52度的水平fov,图像捕捉设备124可以具有26度的水平fov,并且图像捕捉设备126可以具有在26度和52度之间的水平fov。在一些实施例中,图像捕捉设备122的fov与图像捕捉设备124和/或图像捕捉设备126的fov的比率可以从1.5到2.0变化。在其它实施例中,该比率可以在1.25与2.25之间变化。
147.系统100可以配置为使得图像捕捉设备122的视场至少部分地或完全地与图像捕捉设备124和/或图像捕捉设备126的视场重叠。在一些实施例中,系统100可以配置为使得图像捕捉设备124和126的视场例如落入(例如,窄于)图像捕捉设备122的视场并且与图像捕捉设备122的视场共享共同的中心。在其它实施例中,图像捕捉设备122、124和126可以捕捉相邻的fov,或者可以在它们的fov中具有部分重叠。在一些实施例中,图像捕捉设备122、124和126的视场可以对齐,以使得较窄fov图像捕捉设备124和/或126的中心可以位于较宽fov设备122的视场的下半部分中。
148.图2f是与所公开的实施例一致的示例车辆控制系统的图示性表示。如图2f所指示的,车辆200可以包括油门调节系统220、制动系统230和转向系统240。系统100可以通过一个或多个数据链路(例如,任何用于传输数据的有线和/或无线链路)向油门调节系统220、制动系统230和转向系统240中的一个或多个提供输入(例如,控制信号)。例如,基于对由图像捕捉设备122、124和/或126获取的图像的分析,系统100可以向油门调节系统220、制动系统230和转向系统240中的一个或多个提供控制信号以导航车辆200(例如,通过引起加速、转向、车道变换等)。此外,系统100可以从油门调节系统220、制动系统230和转向系统240中的一个或多个接收指示车辆200的运行条件(例如,速率、车辆200是否正在制动和/或转向等)的输入。以下结合图4至图7提供进一步的细节。
149.如图3a所示,车辆200还可以包括用于与车辆200的驾驶员或乘客进行交互的用户界面170。例如,车辆应用中的用户界面170可以包括触摸屏320、旋钮330、按钮340和麦克风350。车辆200的驾驶员或乘客还可以使用手柄(例如,位于车辆200的转向杆上或附近,包括例如转向信号手柄)、按钮(例如,位于车辆200的方向盘上)等与系统100交互。在一些实施例中,麦克风350可以位于与后视镜310相邻。类似地,在一些实施例中,图像捕捉设备122可以位于靠近后视镜310。在一些实施例中,用户界面170还可以包括一个或多个扬声器360(例如,车辆音频系统的扬声器)。例如,系统100可以经由扬声器360提供各种通知(例如,警报)。
150.图3b至图3d是与所公开的实施例一致的配置为位于后视镜(例如,后视镜310)后面并与车辆挡风玻璃相对的示例相机安装370的例示。如图3b所示,相机安装370可以包括图像捕捉设备122、124和126。图像捕捉设备124和126可以位于遮光板380的后面,其中遮光板380可以相对于车辆挡风玻璃齐平(flush)并且包括薄膜和/或防反射材料的合成物。例如,遮光板380可被放置为使得它相对于具有匹配斜面的车辆的挡风玻璃对齐。在一些实施例中,图像捕捉设备122、124和126中的每个可以位于遮光板380的后面,例如在图3d中所描绘的。所公开的实施例不限于图像捕捉设备122、124和126、相机安装370和遮光板380的任何特定配置。图3c是图3b所示的相机安装370从前面视角的例示。
151.如受益于本公开的本领域技术人员将理解的,可以对前述所公开的实施例做出许多变型和/或修改。例如,并非所有组件对于系统100的操作是必要的。此外,任何组件可以
位于系统100的任何适当的部件中并且组件可以被重新布置成各种配置同时提供所公开的实施例的功能。因此,前述配置是示例性的,并且不管上述讨论的配置如何,系统100都可以提供广阔范围的功能以分析车辆200的周围并响应于该分析而导航车辆200。
152.如在下面更详细讨论的并且根据各种所公开的实施例,系统100可以提供各种关于自主驾驶和/或驾驶员辅助技术的特征。例如,系统100可以分析图像数据、位置数据(例如,gps位置信息)、地图数据、速率数据和/或来自包含在车辆200中的传感器的数据。系统100可以从例如图像获取单元120、位置传感器130以及其它传感器收集数据用于分析。此外,系统100可以分析所收集的数据以确定车辆200是否应该采取某个动作,然后无需人工干预而自动采取所确定的动作。例如,当车辆200无需人工干预而导航时,系统100可以自动地控制车辆200的制动、加速、和/或转向(例如,通过向油门调节系统220、制动系统230和转向系统240中的一个或多个发送控制信号)。此外,系统100可以分析所收集的数据,并基于对所收集的数据的分析向车辆乘员发出警告和/或警报。下面提供关于系统100提供的各种实施例的额外的细节。
153.前向多成像系统
154.如上所讨论的,系统100可以提供使用多相机系统的驾驶辅助功能。多相机系统可以使用面向车辆的前方的一个或多个相机。在其它实施例中,多相机系统可以包括面向车辆的侧方或面向车辆的后方的一个或多个相机。在一个实施例中,例如系统100可以使用双相机成像系统,其中,第一相机和第二相机(例如,图像捕捉设备122和124)可以位于车辆(例如,车辆200)的前面和/或侧面处。其他相机配置与所公开的实施例一致,并且本文公开的配置是示例性的。例如,系统100可以包括任何数量的相机的配置(例如,一个、两个、三个、四个、五个、六个、七个、八个等)。此外,系统100可以包括相机“群集”。例如,相机群集(包括任何适当数量的相机,例如一个、四个、八个等)可以相对于车辆是前向的,或者可以面向任何其他方向(例如,后向、侧向、成角度的等)。因此,系统100可以包括多个相机群集,其中每个群集以特定方向定向,以从车辆环境的特定区域捕捉图像。
155.第一相机可以具有大于、小于、或部分重叠于第二相机的视场的视场。此外,第一相机可以连接到第一图像处理器以执行对由第一相机提供的图像的单目图像分析,并且第二相机可以连接到第二图像处理器以执行对由第二相机提供的图像的单目图像分析。第一和第二图像处理器的输出(例如,处理后的信息)可以被组合。在一些实施例中,第二图像处理器可以从第一相机和第二相机两者接收图像以执行立体分析。在另一实施例中,系统100可以使用三相机成像系统,其中每个相机具有不同的视场。因此,这种系统可以基于从位于车辆的前方和侧方的变化距离处的对象得到的信息做出决定。对单目图像分析的参考可以参考基于从单个视点(例如,从单个相机)捕捉的图像执行图像分析的实例。立体图像分析可以参考基于利用图像捕捉参数的一个或多个变化而捕捉的两个或更多个图像执行图像分析的实例。例如,捕捉到的适用于执行立体图像分析的图像可以包括以下捕捉的图像:从两个或更多个不同的位置、从不同的视场、使用不同的焦距、与视差信息一起等捕捉的图像。
156.例如,在一个实施例中,系统100可以使用图像捕捉设备122至126实现三相机配置。在这种配置中,图像捕捉设备122可以提供窄视场(例如,34度或从大约20度至45度的范围选择的其它值等),图像捕捉设备124可以提供宽视场(例如,150度或从大约100度至大约
180度的范围选择的其它值),并且图像捕捉设备126可以提供中间视场(例如,46度或从大约35度至大约60度的范围选择的其它值)。在一些实施例中,图像捕捉设备126可以作为主相机或基本相机。图像捕捉设备122至126可以位于后视镜310的后面并且基本上并排(例如,相距6厘米)。此外,在一些实施例中,如以上所讨论的,图像捕捉设备122至126中的一个或多个可以被安装在与车辆200的挡风玻璃齐平的遮光板380的后面。这种遮挡可以作用以减少任何来自车内的反射对图像捕捉设备122至126的影响。
157.在另一实施例中,如以上结合图3b和3c所讨论的,宽视场相机(例如,上述示例中的图像捕捉设备124)可以被安装得低于窄视场相机和主视场相机(例如,上述的示例中的图像捕捉设备122和126)。这种配置可以提供来自宽视场相机的自由视线。为减少反射,相机可以被安装得靠近车辆200的挡风玻璃,并且在相机上可以包括偏振器以衰减(damp)反射光。
158.三相机系统可以提供某些性能特性。例如,一些实施例可以包括通过一个相机基于来自另一相机的检测结果来验证对象的检测的能力。在上面讨论的三相机配置中,处理单元110可以包括例如三个处理设备(例如,三个如以上所讨论的eyeq系列处理器芯片),其中每个处理设备专用于处理由图像捕捉设备122至126中的一个或多个捕捉的图像。
159.在三相机系统中,第一处理设备可以从主相机和窄视场相机两者接收图像,并且执行对窄fov相机的视觉处理,以例如检测其它车辆、行人、车道标记、交通标志、交通灯以及其它道路对象。另外,第一处理设备可以计算来自主相机和窄相机的图像之间的像素的视差,并且创建车辆200的环境的3d重建。然后第一处理设备可以组合3d重建与3d地图数据、或组合3d重建与基于来自另一相机的信息计算出的3d信息。
160.第二处理设备可以从主相机接收图像,并执行视觉处理以检测其它车辆、行人、车道标记、交通标志、交通灯和其它道路对象。另外,第二处理设备可以计算相机位移,并且基于该位移计算连续图像之间的像素的视差,并创建场景的3d重建(例如,运动恢复结构(structure from motion))。第二处理设备可以将基于3d重建的运动恢复结构发送到第一处理设备以与立体3d图像进行组合。
161.第三处理设备可以从宽fov相机接收图像,并处理该图像以检测车辆、行人、车道标记、交通标志、交通灯和其它道路对象。第三处理设备还可以执行额外的处理指令来分析图像,以识别图像中移动的对象,诸如正改变车道的车辆、行人等。
162.在一些实施例中,使得基于图像的信息的流被独立地捕捉和处理可以提供用于在系统中提供冗余的机会。这种冗余可以包括例如使用第一图像捕捉设备和从该设备处理的图像来验证和/或补充通过从至少第二图像捕捉设备捕捉和处理图像信息而获得的信息。
163.在一些实施例中,系统100将两个图像捕捉设备(例如,图像捕捉设备122和124)用在为车辆200提供导航辅助中,并使用第三图像捕捉设备(例如,图像捕捉设备126)来提供冗余并验证对从其它两个图像捕捉设备接收到的数据的分析。例如,在这种配置中,图像捕捉设备122和124可以提供用于通过系统100进行立体分析的图像以导航车辆200,而图像捕捉设备126可以提供用于通过系统100进行单目分析的图像以提供对基于从图像捕捉设备122和/或图像捕捉设备124捕捉的图像而获得的信息的冗余和验证。即,图像捕捉设备126(和对应的处理设备)可以被视为提供用于提供对从图像捕捉设备122和124得到的分析的检查的冗余子系统(例如,以提供自动紧急制动(aeb)系统)。此外,在一些实施例中,可基于
从一个或多个传感器接收的信息(例如,雷达、激光雷达、声学传感器,从车辆外部的一个或多个收发器接收的信息等)来补充接收到的数据的冗余和验证。
164.本领域的技术人员将认识到,上述相机配置、相机放置、相机数量、相机位置等仅为示例。在不脱离所公开的实施例的范围下,这些组件和关于整个系统描述的其它组件可以被组装并且在各种不同的配置中使用。关于使用多相机系统以提供驾驶员辅助和/或自主车辆功能的进一步的细节如下。
165.图4是可以存储/编程有用于执行与本公开实施例一致的一个或多个操作的指令的存储器140和/或存储器150的示范性功能性框图。虽然下面指代存储器140,但是本领域技术人员将认识到指令可以被存储在存储器140和/或存储器150中。
166.如图4所示,存储器140可以存储单目图像分析模块402、立体图像分析模块404、速度和加速度模块406以及导航响应模块408。所公开的实施例不限于存储器140的任何特定配置。此外,应用处理器180和/或图像处理器190可以执行在被包含在存储器140中的任何模块402至408中所存储的指令。本领域技术人员将理解,在下面的讨论中,对处理单元110的参考可以单独地或统一地指代应用处理器180和图像处理器190。因此,任何以下处理的步骤可以由一个或多个处理设备来执行。
167.在一个实施例中,单目图像分析模块402可以存储指令(诸如计算机视觉软件),该指令在由处理单元110执行时,执行对由图像捕捉设备122、124和126中的一个获取的一组图像的单目图像分析。在一些实施例中,处理单元110可以将来自一组图像的信息与额外的传感信息(例如,来自雷达的信息)组合以执行单目图像分析。如以下结合图5a至图5d所描述的,单目图像分析模块402可以包括用于在该组图像内检测一组特征的指令,该特征诸如车道标记、车辆、行人、道路标志、高速公路出口坡道、交通灯、危险对象以及任何其它与车辆的环境相关联的特征。基于该分析,系统100(例如,经由处理单元110)可以引起车辆200中的一个或多个导航响应,诸如转向、车道变换、加速度的改变等,如以下结合导航响应模块408所讨论的。
168.在一个实施例中,单目图像分析模块402可以存储指令(诸如计算机视觉软件),该指令在由处理单元110执行时,执行对由图像捕捉设备122、124和126中的一个获取的一组图像的单目图像分析。在一些实施例中,处理单元110可以将来自一组图像的信息与额外的传感信息(例如,来自雷达、激光雷达等的信息)组合以执行单目图像分析。如以下结合图5a至图5d所描述的,单目图像分析模块402可以包括用于在该组图像内检测一组特征的指令,该特征诸如车道标记、车辆、行人、道路标志、高速公路出口坡道、交通灯、危险对象以及任何其它与车辆的环境相关联的特征。基于该分析,系统100(例如,经由处理单元110)可以引起车辆200中的一个或多个导航响应,诸如转向、车道变换、加速度的改变等,如以下结合确定导航响应所讨论的。
169.在一个实施例中,立体图像分析模块404可以存储指令(诸如,计算机视觉软件),该指令在由处理单元110执行时,执行对由从任意图像捕捉设备122、124和126中选择的图像捕捉设备的组合而获取的第一组和第二组图像的立体图像分析。在一些实施例中,处理单元110可以将来自第一组和第二组图像的信息与额外的传感信息(例如,来自雷达的信息)组合以执行立体图像分析。例如,立体图像分析模块404可以包括用于基于由图像捕捉设备124获取的第一组图像和由图像捕捉设备126获取的第二组图像执行立体图像分析的
指令。如下面结合图6所描述的,立体图像分析模块404可以包括用于检测第一组和第二组图像内的一组特征的指令,该特征诸如车道标记、车辆、行人、道路标志、高速公路出口坡道、交通灯、危险对象等。基于该分析,处理单元110可以引起车辆200中的一个或多个导航响应,诸如转向、车道变换、加速度的改变等,如以下结合导航响应模块408所讨论的。此外,在一些实施例中,立体图像分析模块404可实施与经训练的系统(诸如神经网络或深度神经网络)或未经训练的系统相关联的技术。
170.在一个实施例中,速度和加速度模块406可以存储被配置为对从车辆200中配置为引起车辆200的速度和/或加速度的改变的一个或多个计算和机电设备接收到的数据进行分析的软件。例如,处理单元110可以执行与速度和加速度模块406相关联的指令,以基于从单目图像分析模块402和/或立体图像分析模块404的执行而得到的数据来计算车辆200的目标速率。这种数据可以包括例如目标位置、速度和/或加速度、车辆200相对于附近车辆、行人或道路对象的位置和/或速率、车辆200相对于道路的车道标记等的位置信息等。此外,处理单元110可以基于传感输入(例如,来自雷达的信息)和来自车辆200的其它系统(诸如油门调节系统220、制动系统230和/或转向系统240)的输入来计算车辆200的目标速率。基于计算的目标速率,处理单元110可以向车辆200的油门调节系统220、制动系统230和/或转向系统的240传输电子信号,例如通过物理地压下制动器或松开车辆200的加速器,来触发速度和/或加速度的变化。
171.在一个实施例中,导航响应模块408可以存储软件,该软件可由处理单元110执行以基于从单目图像分析模块402和/或立体图像分析模块404的执行而得到的数据来确定期望的导航响应。这种数据可以包括与附近的车辆、行人和道路对象相关联的位置和速率信息、车辆200的目标位置信息等。另外,在一些实施例中,导航响应可以(部分地或完全地)基于地图数据、车辆200的预定位置、和/或车辆200与从单目图像分析模块402和/或立体图像分析模块404的执行检测到的一个或多个对象之间的相对速度或相对加速度。导航响应模块408还可以基于传感输入(例如,来自雷达的信息)和来自车辆200的其它系统(诸如车辆200的油门调节系统220、制动系统230和转向系统240)的输入确定期望的导航响应。基于期望的导航响应,处理单元110可以向车辆200的油门调节系统220、制动系统230和转向系统240传输电子信号以触发期望的导航响应,例如通过转动车辆200的方向盘以实现预定角度的旋转。在一些实施例中,处理单元110可以使用导航响应模块408的输出(例如,期望的导航响应)作为对速度和加速度模块406的执行的输入,以用于计算车辆200的速率的改变。
172.此外,本文公开的任何模块(例如,模块402、404和406)可以实现与经训练的系统(诸如神经网络或深度神经网络)或未经训练的系统相关联的技术。
173.图5a是示出与所公开的实施例一致的、用于基于单目图像分析引起一个或多个导航响应的示例处理500a的流程图。在步骤510,处理单元110可以经由在处理单元110和图像获取单元120之间的数据接口128接收多个图像。例如,包含在图像获取单元120中的相机(诸如具有视场202的图像捕捉设备122)可以捕捉车辆200的前方(例如,或者车辆的侧方或后方)区域的多个图像并经过数据连接(例如,数字、有线、usb、无线、蓝牙等)将它们传输到处理单元110。在步骤520,处理单元110可以执行单目图像分析模块402来分析该多个图像,如以下结合图5b至5d进一步详细描述的。通过执行该分析,处理单元110可以在该组图像内检测一组特征,诸如车道标记、车辆、行人、道路标志、高速公路出口坡道、交通灯等。
174.在步骤520,处理单元110还可以执行单目图像分析模块402来检测各种道路危险,诸如例如卡车轮胎的部件、倒下的道路标志、松散货物、小动物等。道路危险可能在结构、形状、大小和颜色上变化,这可能使这些危险的检测更加困难。在一些实施例中,处理单元110可以执行单目图像分析模块402来对该多个图像执行多帧分析以检测道路危险。例如,处理单元110可以估计连续图像帧之间的相机运动,并计算帧之间的像素中的视差来构建道路的3d地图。然后,处理单元110可以使用该3d地图来检测路面、以及存在于路面上的危险。
175.在步骤530,处理单元110可以执行导航响应模块408以基于在步骤520中执行的分析和如以上结合图4描述的技术引起一个或多个导航响应。导航响应可以包括例如转向、车道变换、加速度变化等。在一些实施例中,处理单元110可以使用从速度和加速度模块406的执行得到的数据来引起一个或多个导航响应。此外,多个导航响应可能同时地、按照顺序地或以其任意组合而发生。例如,处理单元110可以通过例如按照顺序地向车辆200的转向系统240和油门调节系统220传输控制信号,使得车辆200变换一个车道然后加速。可替代地,处理单元110可以通过例如同时向车辆200的制动系统230和转向系统240传输控制信号,使得车辆200制动同时变换车道。
176.图5b是示出与所公开的实施例一致的用于在一组图像中检测一个或多个的车辆和/或行人的示例处理500b的流程图。处理单元110可以执行单目图像分析模块402来实现处理500b。在步骤540,处理单元110可以确定表示可能的车辆和/或行人的一组候选对象。例如,处理单元110可以扫描一个或多个图像,将该图像与一个或多个预定模式比较,并且在每个图像内识别可能包含感兴趣的对象(例如,车辆、行人或其部分)的可能的位置。预定模式可以以实现高“伪命中”率和低“漏掉”率的这种方式来设计。例如,处理单元110可以将低的相似性的阈值用在预定模式以将候选对象识别为可能的车辆或行人。这样做可以允许处理单元110减少漏掉(例如,未识别出)表示车辆或行人的候选对象的可能性。
177.在步骤542,处理单元110可以基于分类标准过滤该组候选对象以排除某些候选(例如,不相关或较不相关的对象)。这种标准可以从与存储在数据库(例如,存储在存储器140中的数据库)中的对象类型相关联的各种属性得到。属性可以包括对象形状、尺寸、纹理、位置(例如,相对于车辆200)等。因此,处理单元110可以使用一组或多组标准来从该组候选对象中拒绝伪候选。
178.在步骤544,处理单元110可以分析多帧图像,以确定在该组候选对象中的对象是否表示车辆和/或行人。例如,处理单元110可以跨连续帧来跟踪检测到的候选对象并累积与检测到的对象相关联的逐帧数据(例如,大小、相对于车辆200的位置等)。此外,处理单元110可以估计检测到的对象的参数并将该对象的逐帧位置数据与预测的位置比较。
179.在步骤546,处理单元110可以对于检测到的对象构建一组测量。这种测量可以包括例如与检测到的对象相关联的(相对于车辆200的)位置、速度和加速度值。在一些实施例中,处理单元110可以基于使用一系列基于时间的观察的、诸如卡尔曼滤波器或线性二次估计(lqe)的估计技术和/或基于对于不同对象类型(例如,汽车、卡车、行人、自行车、道路标志等)可用的建模数据,来构建该测量。卡尔曼滤波器可以基于对象的比例的测量,其中该比例测量与要碰撞的时间(例如,车辆200到达对象的时间量)成比例。因此,通过执行步骤540至546,处理单元110可以识别在该组捕捉图像内出现的车辆和行人,并得到与该车辆和行人相关联的信息(例如,位置、速率、大小)。基于该识别和所得到的信息,处理单元110可
以引起车辆200中的一个或多个导航响应,如以上结合图5a所描述的。
180.在步骤548,处理单元110可以执行对一个或多个图像的光流分析,以减少检测到“伪命中”和漏掉表示车辆或行人的候选对象的可能性。光流分析可以指,例如在一个或多个图像中分析相对于车辆200的、与其它车辆和行人相关联的并且区别于路面运动的运动模式。处理单元110可以通过跨越在不同时间捕捉到的多个图像帧观察对象的不同位置,来计算候选对象的运动。处理单元110可以使用该位置和时间值作为对用于计算候选对象的运动的数学模型的输入。因此,光流分析可以提供检测车辆200附近的车辆和行人的另一种方法。处理单元110可以结合步骤540至546执行光流分析,以提供检测车辆和行人的冗余,并提高系统100的可靠性。
181.图5c是示出与所公开的实施例一致的用于在一组图像中检测道路标记和/或车道几何信息的示例处理500c的流程图。处理单元110可以执行单目图像分析模块402来实现处理500c。在步骤550,处理单元110可以通过扫描一个或多个图像来检测一组对象。为了检测车道标记、车道几何信息以及其它相关的道路标记的分段(segment),处理单元110可以过滤该组对象以排除那些被确定为不相关的(例如,小坑洼、小石块等)。在步骤552,处理单元110可以将在步骤550中检测到的属于相同的道路标记或车道标记的分段分组在一起。基于该分组,处理单元110可以产生表示所检测到的分段的模型,诸如数学模型。
182.在步骤554,处理单元110可以构建与所检测的分段相关联的一组测量。在一些实施例中,处理单元110可以创建所检测的分段从图像平面到现实世界平面上的投影。该投影可以使用具有与诸如所检测的道路的位置、斜率、曲率和曲率导数之类的物理属性对应的系数的三次多项式来表征。在产生该投影中,处理单元110可以考虑路面的变化、以及与车辆200相关联的俯仰(pitch)率和滚转(roll)率。此外,处理单元110可以通过分析出现在路面上的位置和运动线索来对道路标高进行建模。此外,处理单元110可以通过跟踪一个或多个图像中的一组特征点来估计与车辆200相关联的俯仰率和滚转率。
183.在步骤556,处理单元110可以通过例如跨连续图像帧跟踪所检测到的分段并累积与检测到的分段相关联的逐帧数据来执行多帧分析。由于处理单元110执行多帧分析,在步骤554中构建的该组测量可以变得更可靠并且与越来越高的置信度水平相关联。因此,通过执行步骤550至556,处理单元110可以识别在该组捕捉图像中出现的道路标记并得到车道几何信息。基于该识别和所得到的信息,处理单元110可以引起车辆200中的一个或多个导航响应,如以上结合图5a所描述的。
184.在步骤558,处理单元110可以考虑额外的信息源,以进一步产生车辆200在其周围的环境中的安全模型。处理单元110可以使用该安全模型来定义系统100可以在其中以安全的方式执行车辆200的自主控制的环境。为产生该安全模型,在一些实施例中,处理单元110可以考虑其它车辆的位置和运动、所检测的路缘和护栏、和/或从地图数据(诸如来自地图数据库160的数据)提取的一般道路形状描述。通过考虑额外的信息源,处理单元110可以提供用于检测道路标记和车道几何结构的冗余,并增加系统100的可靠性。
185.图5d是示出了与所公开的实施例一致的用于在一组图像中检测交通灯的示例处理500d的流程图。处理单元110可以执行单目图像分析模块402来实现处理500d。在步骤560,处理单元110可以扫描该组图像,并识别出现在图像中的可能包含交通灯的位置处的对象。例如,处理单元110可以过滤所识别的对象来构造一组候选对象,排除不可能对应于
交通灯的那些对象。过滤可以基于与交通灯相关联的诸如形状、尺寸、纹理、位置(例如,相对于车辆200)等之类的各种属性来进行。这种属性可以基于交通灯和交通控制信号的多个示例并存储在数据库中。在一些实施例中,处理单元110可以对反映可能的交通灯的该组候选对象执行多帧分析。例如,处理单元110可以跨连续图像帧跟踪候选对象,估计候选对象的现实世界位置,并过滤掉那些移动的对象(其不可能是交通灯)。在一些实施例中,处理单元110可以对候选对象执行颜色分析,并识别出现在可能的交通灯内的所检测到的颜色的相对位置。
186.在步骤562,处理单元110可以分析交叉口的几何形状。该分析可以基于以下的任意组合:(i)在车辆200的任一侧检测到的车道的数量、(ii)在道路上检测到的标记(如箭头标记)、和(iii)从地图数据(例如,来自地图数据库160的数据)提取的交叉口的描述。处理单元110可以使用从单目分析模块402的执行得到的信息来进行分析。此外,处理单元110可以确定在步骤560中检测到的交通灯和在车辆200附近出现的车道之间的对应性。
187.在步骤564,随着车辆200接近交叉口,处理单元110可以更新与所分析的交叉口几何形状和所检测到的交通灯相关联的置信度水平。例如,被估计为出现在交叉口处的交通灯的数量与实际出现在交叉口处的交通灯的数量比较可能影响置信度水平。因此,基于该置信度水平,处理单元110可以将控制委托给车辆200的驾驶员以便改进安全条件。通过执行步骤560至564,处理单元110可以识别出现在该组捕捉图像内的交通灯,并分析交叉口几何形状信息。基于该识别和分析,处理单元110可以引起车辆200中一个或多个导航响应,如以上结合图5a所描述的。
188.图5e是示出了与所公开的实施例一致的、用于基于车辆路径引起车辆中的一个或多个导航响应的示例处理500e的流程图。在步骤570,处理单元110可以构建与车辆200相关联的初始车辆路径。车辆路径可以使用以坐标(x,z)表达的一组点来表示,并且该组点中两个点之间的距离di可以落入1至5米的范围中。在一个实施例中,处理单元110可以使用诸如左道路多项式和右道路多项式的两个多项式来构建初始车辆路径。处理单元110可以计算该两个多项式之间的几何中点,并且将被包含在得到的车辆路径中的每个点偏移预定的偏移(例如,智能车道偏移),如果有的话(零偏移可以对应于在车道的中间行驶)。该偏移可以在垂直于在车辆路径中的任何两点之间的线段的方向上。在另一个实施例中,处理单元110可以使用一个多项式和估计的车道宽度,来将车辆路径的每个点偏移估计的车道宽度的一半加上预定偏移(例如,智能车道偏移)。
189.在步骤572,处理单元110可以更新在步骤570构建的车辆路径。处理单元110可以使用更高的分辨率来重建在步骤570构建的车辆路径,以使得表示车辆路径的该组点中两个点之间的距离dk小于上述距离di。例如,该距离dk可以落入0.1至0.3米的范围中。处理单元110可以使用抛物线样条算法(parabolic spline algorithm)重建车辆路径,这可以产生对应于车辆路径的总长度的累积距离向量s(即,基于表示车辆路径的该组点)。
190.在步骤574,处理单元110可以基于在步骤572构建的更新的车辆路径来确定前视点(look-ahead point)(以坐标表达为(x
l
,z
l
))。处理单元110可以从累积距离向量s提取前视点,并且该前视点可以与前视距离和前视时间相关联。前视距离可以具有范围为从10米至20米的下限,可以被计算为车辆200的速率和前视时间的乘积。例如,随着车辆200的速率下降,前视距离也可以减小(例如,直到它到达下限)。前视时间的范围可以从0.5到1.5秒,
可以与关联于引起车辆200中的导航响应的诸如航向误差(heading error)跟踪控制环路的一个或多个控制环路的增益成反比。例如,该航向误差跟踪控制环路的增益可以取决于横摆角速率环路、转向致动器环路、汽车横向动力学等的带宽。因此,航向误差跟踪控制环路的增益越高,前视时间越短。
191.在步骤576,处理单元110可以基于在步骤574中确定的前视点来确定航向误差和横摆角速率命令。处理单元110可以通过计算前视点的反正切,例如arctan(x
l
,z
l
)来确定航向误差。处理单元110可以将横摆角速率命令确定为航向误差和高水平控制增益的乘积。如果前视距离不在下限处,则高水平控制增益可以等于:(2/前视时间)。否则,高水平控制增益可以等于:(2
×
车辆200的速率/前视距离)。
192.图5f是示出了与所公开的实施例一致的用于确定前方车辆是否正在改变车道的示例处理500f的流程图。在步骤580,处理单元110可以确定与前方车辆(例如,在车辆200前方行驶的车辆)相关联的导航信息。例如,处理单元110可以使用以上结合图5a和图5b所描述的技术来确定前方车辆的位置、速度(例如,方向和速率)和/或加速度。处理单元110还可以使用以上结合图5e所描述的技术来确定一个或多个道路多项式、前视点(与车辆200相关联)和/或追踪轨迹(snail trail)(例如,描述前方车辆所采取的路径的一组点)。
193.在步骤582,处理单元110可以分析在步骤580中确定的导航信息。在一个实施例中,处理单元110可以计算追踪轨迹和道路多项式之间的距离(例如,沿着该轨迹)。如果沿着该轨迹的这个距离的变化(variance)超过预定的阈值(例如,在直路上0.1至0.2米,在适度弯曲道路上0.3至0.4米,以及在急转弯道路上0.5至0.6米),则处理单元110可以确定前方车辆很可能正在改变车道。在检测到多个车辆在车辆200前方行驶的情形中,处理单元110可以比较与每个车辆相关联的追踪轨迹。基于该比较,处理单元110可以确定追踪轨迹与其它车辆的追踪轨迹不匹配的车辆很可能正在改变车道。处理单元110可以额外地将(与前方车辆相关联的)追踪轨迹的曲率与前方车辆正在其中行驶的道路段的期望曲率相比较。该期望曲率可以从地图数据(例如,来自地图数据库160的数据)、从道路多项式、从其它车辆的追踪轨迹、从关于道路现有知识等提取。如果追踪轨迹的曲率和道路段的期望曲率的差异超过预定的阈值,则处理单元110可以确定前方车辆很可能正在改变车道。
194.在另一个实施例中,处理单元110可以在特定时间段(例如,0.5至1.5秒)将前方车辆的瞬时位置与(与车辆200相关联的)前视点相比较。如果前方车辆的瞬时位置与前视点之间的距离在该特定时间段期间变化,并且变化的累积总和超过预定阈值(例如,直路上0.3至0.4米,适度弯曲道路上0.7至0.8米,以及急转弯道路上1.3至1.7米),则处理单元110可以确定前方车辆很可能正在改变车道。在另一实施例中,处理单元110可以通过将沿着追踪轨迹行驶的横向距离与该追踪轨迹的期望曲率相比较,来分析该追踪轨迹的几何形状。期望曲率半径可以根据公式确定:(δ
z2

x2
)/2/(δ
x
),其中δ
x
表示行驶的横向距离以及δz表示的行驶的纵向距离。如果行驶的横向距离和期望曲率之间的差异超过预定阈值(例如,500至700米),则处理单元110可以确定前方车辆很可能正在改变车道。在另一个实施例中,处理单元110可以分析前方车辆的位置。如果前方车辆的位置遮挡了道路多项式(例如,前车覆盖在道路多项式的上方),则处理单元110可以确定前方车辆很可能正在改变车道。在前方车辆的位置是使得在前方车辆的前方检测到另一车辆并且这两个车辆的追踪轨迹不平行的情况下,处理单元110可以确定(较近的)前方车辆很可能正在改变车道。
195.在步骤584,处理单元110可以基于在步骤582进行的分析确定前方车辆200是否正在改变车道。例如,处理单元110可以基于在步骤582执行的各个分析的加权平均来做出该确定。在这种方案下,例如,由处理单元110基于特定类型的分析做出的前方车辆很可能正在改变通道的决定可以被分配值“1”(以及“0”用来表示前方车辆不太可能正在改变车道的确定)。在步骤582中执行的不同分析可以被分配不同的权重,并且所公开的实施例不限于分析和权重的任何特定组合。此外,在一些实施例中,所述分析可以利用经训练的系统(例如,机器学习或深度学习系统),其可以例如基于在当前位置处捕捉的图像来估计在车辆当前位置前方的未来路径。
196.图6是示出了与所公开的实施例一致的用于基于立体图像分析引起一个或多个导航响应的示例处理600的流程图。在步骤610,处理单元110可以经由数据接口128接收第一和第二多个图像。例如,被包含在图像获取单元120的相机(诸如具有视场202和204的图像捕捉设备122和124)可以捕捉在车辆200前方的区域的第一和第二多个图像,并经过数字连接(例如,usb、无线、蓝牙等)将它们传输到处理单元110。在一些实施例中,处理单元110可以经由两个或更多个数据接口接收该第一和第二多个图像。所公开的实施例不限于任何特定的数据接口配置或协议。
197.在步骤620,处理单元110可以执行立体图像分析模块404来执行对第一和第二多个图像的立体图像分析,以创建在车辆前方的道路的3d地图并检测图像内的特征,诸如车道标记、车辆、行人、道路标志、高速公路出口坡道、交通灯、道路危险等。立体图像分析可以以类似于以上结合图5a-图5d描述的步骤的方式来执行。例如,处理单元110可以执行立体图像分析模块404以在第一和第二多个图像内检测候选对象(例如,车辆、行人、道路标记、交通灯、道路危险等),基于各种标准过滤掉候选对象的子集,并对剩余的候选对象执行多帧分析、构建测量、并确定置信度水平。在执行上述步骤中,处理单元110可以考虑来自第一和第二多个图像二者的信息,而不是来自单独一组图像的信息。例如,处理单元110可以分析出现在第一和第二多个图像二者中的候选对象的像素级数据(或来自捕捉图像的两个流中的其它数据子集)的差异。作为另一示例,处理单元110可以通过观察候选对象在多个图像的一个中出现而未在另一个中出现,或相对于可能相对于出现在两个图像流中的对象而存在的其它差异,来估计候选对象(例如,相对于车辆200)的位置和/或速度。例如,可以基于与出现在图像流中的一个或两者中的对象相关联的轨迹、位置、移动特性等特征,来确定相对于车辆200的位置、速度和/或加速度。
198.在步骤630中,处理单元110可以执行导航响应模块408,以基于在步骤620中执行的分析和如以上结合图4所描述的技术而引起车辆200中的一个或多个导航响应。导航响应可以包括例如转向、车道变换、加速度的改变、速度的改变、制动等。在一些实施例中,处理单元110可以使用从速度和加速度模块406的执行得到的数据来引起该一个或多个导航响应。此外,多个导航响应可以同时地、按照顺序地、或以其任意组合而发生。
199.图7是示出了与所公开的实施例一致的用于基于对三组图像的分析来引起一个或多个导航响应的示例处理700的流程图。在步骤710中,处理单元110可以经由数据接口128接收第一、第二和第三多个图像。例如,被包含在图像获取单元120的相机(诸如具有视场202、204和206的图像捕捉设备122、124和126)可以捕捉在车辆200前方和/或侧方的区域的第一、第二和第三多个图像,并且经过数字连接(例如,usb、无线、蓝牙等)将它们传输到处
理单元110。在一些实施例中,处理单元110可以经由三个或更多个数据接口接收第一、第二和第三多个图像。例如,图像捕捉设备122、124、126的每个可以具有用于向处理单元110传送数据的相关联的数据接口。所公开的实施例不限于任何特定的数据接口配置或协议。
200.在步骤720,处理单元110可以分析该第一、第二和第三多个图像以检测图像内的特征,诸如车道标记、车辆、行人、道路标志、高速公路出口坡道、交通灯、道路危险等。该分析可以以类似于以上结合图5a-图5d和图6所描述的步骤的方式来执行。例如,处理单元110可以对第一、第二和第三多个图像的每个执行单目图像分析(例如,经由单目图像分析模块402的执行以及基于以上结合图5a-图5d所描述的步骤)。可替代地,处理单元110可对第一和第二多个图像、第二和第三多个图像、和/或第一和第三多个图像执行立体图像分析(例如,经由立体图像分析模块404的执行以及基于以上结合图6所描述的步骤)。与对第一、第二和/或第三多个图像的分析相对应的处理后的信息可以进行组合。在一些实施例中,处理单元110可以执行单目和立体图像分析的组合。例如,处理单元110可以对第一多个图像执行单目图像分析(例如,经由单目图像分析模块402的执行)并且对第二和第三多个图像执行立体图像分析(例如,经由立体图像分析模块404的执行)。图像捕捉设备122、124和126的配置—包括它们各自的位置和视场202、204和206—可以影响对第一、第二和第三多个图像进行的分析的类型。所公开的实施例不限于图像捕捉设备122、124和126的特定配置或对第一、第二和第三多个图像进行的分析的类型。
201.在一些实施例中,处理单元110可以基于在步骤710和720所获取和分析的图像对系统100执行测试。这种测试可以提供对于图像获取设备122、124和126的某些配置的系统100的整体性能的指示符。例如,处理单元110可以确定“伪命中”(例如,系统100不正确地确定车辆或行人的存在的情况)和“漏掉”的比例。
202.在步骤730,处理单元110可以基于从第一、第二和第三多个图像中的两个得到的信息引起车辆200中的一个或多个导航响应。对第一、第二和第三多个图像中的两个的选择可以取决于各种因素,诸如例如在多个图像的每个中检测到的对象的数量、类型和大小。处理单元110还可以基于图像质量和分辨率、图像中反映的有效视场、捕捉的帧的数量、一个或多个感兴趣的对象实际出现在帧中的程度(例如,其中出现有对象的帧的百分比、出现在每个这种帧中的对象的比例)等进行选择。
203.在一些实施例中,处理单元110可以通过确定从一个图像源得到的信息与从其它图像源得到的信息的相一致的程度,对从第一、第二和第三多个图像中的两个得到的信息进行选择。例如,处理单元110可以将从图像捕捉设备122、124和126的每个得到的处理后的信息组合(无论通过单目分析、立体分析、还是两者的任意组合),并确定在从图像捕捉设备122、124和126的每个捕捉到的图像之间相一致的视觉指示符(例如,车道标记、检测到的车辆及其位置和/或路径、检测到的交通灯等)。处理单元110还可以排除在捕捉到的图像之间不一致的信息(例如,正改变车道的车辆、指示车辆太靠近车辆200的车道模型等)。因此,处理单元110可以基于对相一致和不一致的信息的确定,来选择从第一、第二和第三多个图像的两个得到的信息。
204.导航响应可以包括例如转向、车道变换、加速度的改变等。处理单元110可以基于在步骤720所执行的分析和如以上结合图4所描述的技术引起一个或多个导航响应。处理单元110还可以使用从速度和加速度模块406的执行得到的数据引起一个或多个导航响应。在
一些实施例中,处理单元110可以基于在车辆200与在第一、第二和第三多个图像的任一者内检测到的对象之间的相对位置、相对速度和/或相对加速度来引起一个或多个导航响应。多个导航响应可以同时地、按顺序地或以其任意组合而发生。
205.强化学习和经训练的导航系统
206.下面的部分讨论自主驾驶以及用于完成车辆的自主控制的系统和方法,无论该控制是完全自主的(自驾驶车辆)还是部分自主的(例如,一个或多个驾驶员辅助系统或功能)。如图8所示,自主驾驶任务可以被划分为三个主要模块,包括感测模块801、驾驶策略模块803和控制模块805。在一些实施例中,模块801、803和805可以被存储在系统100的存储器单元140和/或存储器单元150中,或者模块801、803和805(或其中的部分)可以远离系统100而被存储(例如,存储在系统100经由例如无线收发器172可访问的服务器中)。此外,本文公开的任何模块(例如,模块801、803和805)可以实施与经训练的系统(诸如神经网络或深度神经网络)或未经训练的系统相关联的技术。
207.可以使用处理单元110实施的感测模块801可以处理与感测主车辆的环境中的导航状态有关的各种任务。这些任务可以依赖于来自与主车辆相关联的各种传感器和感测系统的输入。这些输入可以包括来自一个或多个车载相机的图像或图像流、gps位置信息、加速度计输出、用户反馈或对一个或多个用户接口设备的用户输入、雷达、激光雷达等。可以包括来自相机和/或任何其他可用的传感器的数据以及地图信息的感测可以被收集、分析并且制定成“感测到的状态”,该感测到的状态描述从主车辆的环境中的场景提取的信息。该感测到的状态可以包括与目标车辆、车道标记、行人、交通灯、道路几何形状、车道形状、障碍物、到其他对象/车辆的距离、相对速度、相对加速度有关的感测到的信息,以及任何其他潜在的感测到的信息。可以实施监督式机器学习,以便基于提供给感测模块801的感测到的数据产生感测状态输出。感测模块的输出可以表示主车辆的感测到的导航“状态”,其可以被传递至驾驶策略模块803。
208.尽管可以基于从与主车辆相关联的一个或多个相机或图像传感器接收的图像数据产生感测到的状态,但是还可以使用任何合适的传感器或传感器组合来产生在导航中使用的感测到的状态。在一些实施例中,可以在不依赖捕捉的图像数据的情况下产生感测到的状态。实际上,本文描述的任何导航原理可应用于基于捕捉的图像数据产生的感测到的状态以及使用其他基于非图像的传感器产生的感测到的状态。感测到的状态还可以经由主车辆外部的源来确定。例如,可以全部或部分地基于从远离主车辆的源接收的信息(例如,基于从其他车辆共享的、从中央服务器共享的、或来自与主车辆的导航状态有关的任何其他信息源的传感器信息、经处理的状态信息等),来产生感测到的状态。
209.驾驶策略模块803(在下文作更详细地讨论并且可以使用处理单元110来实施)可以实施期望的驾驶策略,以便响应于感测到的导航状态决定主车辆要采取的一个或多个导航动作。如果在主车辆的环境中不存在其他作用者(agent)(例如,目标车辆或行人),则可以以相对直接的方式处理输入到驾驶策略模块803的感测到的状态。当感测到的状态需要与一个或多个其他作用者进行协商时,任务变得更加复杂。用于生成驾驶策略模块803的输出的技术可以包括强化学习(下文更详细地讨论)。驾驶策略模块803的输出可以包括主车辆的至少一个导航动作,并且可以包括期望的加速度(其可以转化为主车辆的更新的速度)、主车辆的期望横摆率、期望的轨迹、以及其他潜在的期望导航动作。
210.基于来自驾驶策略模块803的输出,同样可以使用处理单元110实施的控制模块805可以产生用于与主车辆相关联的一个或多个致动器或受控设备的控制指令。这种致动器和设备可以包括加速器、一个或多个转向控制器、制动器、信号传输器、显示器或可以作为与主车辆相关联的导航操作的一部分而被控制的任何其它致动器或设备。控制理论的方面可以被用来生成控制模块805的输出。控制模块805可以负责产生并且输出指令至主车辆的可控组件,以便实施驾驶策略模块803的期望的导航目标或要求。
211.回到驾驶策略模块803,在一些实施例中,可以使用通过强化学习训练的经训练的系统来实施驾驶策略模块803。在其他实施例中,驾驶策略模块803可以在不用机器学习方法的情况下、通过使用指定的算法来“手动”解决自主导航期间可能出现的各种情景来实施。然而,这种方法虽然可行,但可能导致驾驶策略过于简单化,并且可能缺乏基于机器学习的经训练的系统的灵活性。例如,经训练的系统可能会更好地配备来处理复杂的导航状态,并且可以更好地确定出租车是在停车还是停下车来接/送乘客;确定行人是否意图穿过主车辆前的街道;防御性地平衡其他驾驶员的意外行为;在牵涉目标车辆和/或行人的密集交通中协商;决定何时暂停(suspend)某些导航规则或增强(augment)其他规则;预期未感测到但预期到的状况(例如,行人是否会从汽车或障碍物后面冒出);等等。基于强化学习的经训练的系统还可以更好地配备来解决连续且高维度的状态空间以及连续的动作空间。
212.使用强化学习对系统进行训练可以涉及学习驾驶策略,以便从感测到的状态映射到导航动作。驾驶策略是函数π:s

a,其中s是一组状态,而是动作空间(例如,期望的速率、加速度、横摆命令等)。状态空间是s=ss×sp
,其中ss是感测状态,且s
p
是关于通过该策略所保存的状态的附加信息。以离散的时间间隔工作,在时间t处,可以观察当前状态s
t
∈s,并且可以应用该策略来获得期望的动作a
t
=π(s
t
)。
213.可以通过暴露于各种导航状态,使该系统应用该策略,提供奖励(基于被设计为奖励期望导航行为的奖励函数),来训练该系统。基于奖励反馈,该系统可以“学习”该策略,并且变得在产生期望导航动作方面是经训练的。例如,学习系统可以观察当前状态s
t
∈sa并基于策略来决定动作a
t
∈a。基于所决定的动作(以及该动作的实施),环境移至下一个状态s
t+1
∈s,以由该学习系统观察。对于响应于观察到的状态而产生的每个动作,对该学习系统的反馈是奖励信号r1,r2,...。
214.强化学习(rl)的目标是找到策略π。通常假设:在时间t处,存在奖励函数r
t
,其测量处于状态s
t
并采取动作a
t
的瞬时质量。然而,在时间t处采取动作a
t
影响了环境,并因此影响未来状态的值。因此,当决定采取何种动作时,不仅应考虑当前的奖励,还应考虑未来的奖励。在某些情况下,当系统确定如果现在采用较低奖励选项则在将来可能实现更高的奖励时,则即使某一动作与低于另一个可用选项的奖励相关联,该系统也应采取该动作。为了对此形式化,观察到策略π以及初始状态s归纳出在上的分布,其中如果作用者在状态s0=s处开始并从那里开始遵循策略π,则向量(r1,...,r
t
)的概率为观察到奖励r1,...,r
t
的概率。初始状态s的值可定义为:
215.216.代替将时间范围限定为t,可以对未来奖励打折扣(discount),以对于一些固定的γ∈(0,),定义:
[0217][0218]
在任何情况下,最佳策略是下式的解:
[0219][0220]
其中,期望(expectation)在初始状态s之上。
[0221]
有若干种可能用于训练驾驶策略系统的方法。例如,可以使用模仿(imitation)方法(例如,行为克隆),在该方法中,系统从状态/动作对中学习,其中动作是好的作用者(例如,人类)响应于特定的观察到的状态而会选择的那些动作。假设观察人类驾驶员。通过这个观察,许多形式为(s
t
,a
t
)的示例(其中s
t
是状态,而a
t
是人类驾驶员的动作)可以被获得、观察并且用作训练驾驶策略系统的基础。例如,监督式学习可以用来学习策略π,使得π(s
t
)≈a
t
。这种方法有许多潜在的优点。首先,不要求定义奖励函数。其次,该学习是受监督的并且是离线发生的(不需要在学习过程中应用作用者)。这种方法的缺点在于:不同的人类驾驶员、甚至是相同的人类驾驶员在其策略选择中并不是确定性的。因此,对于||π(s
t
)-a
t
||非常小的函数的学习通常是不可行的。而且,随着时间的推移,即使是小的误差也可能会累积而产生较大的误差。
[0222]
可以采用的另一种技术是基于策略的学习。此处,可以以参数形式来表达策略,并且使用合适的优化技术(例如,随机梯度下降)直接对策略进行优化。该方法是直接对以给出的问题进行求解。当然还有很多方法可以对这个问题求解。这种方法的一个优点在于:其直接解决了问题,因此往往导致良好的实际结果。一个潜在的缺点是:其往往需要“在线策略”训练,即π的学习是迭代过程,其中在迭代j时,具有非完美的策略πj,并为了构造下一个策略πj,必须在基于πj动作的同时与环境进行交互。
[0223]
系统还可以通过基于值的学习(学习q或v函数)来训练。假设,良好近似能够学习到最佳值函数v*。可以构建最佳策略(例如,依靠贝尔曼方程(bellman equation))。有些版本的基于值的学习可以离线实施(称为“离线策略”训练)。基于值的方法的一些缺点可能是由于其强烈依赖于马尔可夫假设(markovian assumptions)以及需要对复杂函数的近似(相比直接对策略近似,对值函数的近似可能更难)。
[0224]
另一种技术可以包括基于模型的学习和规划(学习状态转换的概率并对寻找最优v的优化问题求解)。这些技术的组合也可以用来训练学习系统。在这种方法中,可以学习过程的动态性,即,采取(s
t
,a
t
)并在下一个状态s
t+1
上产生分布的函数。一旦学习了这个函数,可以求解最佳问题,以找到其值为最佳的策略π。这就是所谓的“规划”。这种方法的一个优点可能在于:学习部分受到监督,并且可以通过观察三元组(s
t
,a
t
,s
t+1
)而被离线应用。类似于“模仿”方法,这种方法的一个缺点可能在于:学习过程中小的误差可能积累并产生未充分执行的策略。
[0225]
用于训练驾驶策略模块803的另一种方法可以包括将驾驶策略函数分解为语义上有意义的分量。这允许手动实施该策略的某些部分,这可以确保策略的安全性;并且可以使
用强化学习技术来实施策略的其他部分,这可以适应性地实现于许多情景、防御性/侵略性行为之间的类似于人的平衡、以及与其他驾驶员的类似于人的协商。从技术角度而言,强化学习方法可以结合几种方法,并提供易于操作的训练程序,其中大部分训练可以使用记录的数据或自行构建的模拟器来执行。
[0226]
在一些实施例中,驾驶策略模块803的训练可以依赖于“选项”机制。为了说明,考虑双车道高速公路的驾驶策略的简单情景。在直接rl方法中,策略π将状态映射到中,其中π(s)的第一个分量是期望的加速度命令,且π(s)的第二个分量是横摆率。在经修改的方法中,可以构建以下策略:
[0227]
自动巡航控制(acc)策略,o
acc
:s

a:该策略总是输出为0的横摆率,并且仅改变速率以实现平稳且无事故的驾驶。
[0228]
acc+左策略,o
l
:s

a:该策略的纵向命令与acc命令相同。横摆率是将车辆朝左车道的中间居中同时确保安全的横向移动(例如,如果在左侧有车,则不向左移动)的直接实施方式。
[0229]
acc+右策略,or:s

a:与o
l
相同,但是车辆可以朝右车道的中间居中。
[0230]
这些策略可以被称为“选项”。依靠这些“选项”,可以学习选择了选项的策略πo:s

o,其中o是一组可用选项。在一个情况下,o={o
acc
,o
l
,or}。选项选择器策略πo通过对每个s设置来定义实际的策略π:s

a。
[0231]
实践中,策略函数可以被分解为选项图901,如图9所示。图10中示出了另一个示例选项图1000。选项图可以表示被组织为有向非循环图(dag)的分层决策集。存在一个称为图的根(root)节点903的特殊节点。该节点不具有进入(incoming)节点。决策过程从根节点开始遍历整个图,直到其到达“叶”节点,该叶节点是指没有外出(outgoing)决策线的节点。如图9所示,叶节点可以包括例如节点905、907和909。在遇到叶节点时,驾驶策略模块803可以输出与期望导航动作相关联的加速和转向命令,该期望导航动作与叶节点相关联。
[0232]
内部节点(诸如节点911、913和915)例如可引起一策略的实施,该策略在其可用选项中选择子代(child)。内部节点的可用子代的集合包括经由决策线与特定内部节点相关联的所有节点。例如,图9中被指定为“并道(merge)”的内部节点913包括各自通过决策线与节点913相连的三个子代节点909、915和917(分别为“保持”、“右超车”和“左超车”)。
[0233]
可以通过使节点能够调节其在选项图的层级中的位置而获得决策制定系统的灵活性。例如,可以允许任何节点声明自己为“关键(critical)”。每个节点可以实施“是关键的(is critical)”的函数,如果节点处于其策略实施的关键部分,则该函数输出“真”。例如,负责超车的节点可以在操纵中途声明自己为关键。这可对节点u的可用子代的集合施加约束,该节点u的可用子代可以包括作为节点u的子代的所有节点v,并且存在从v到叶节点的经过所有被指定为关键的节点的路径。一方面,这种方法可以允许在每个时间步长在图上声明期望路径,同时另一方面,可以保留策略的稳定性,特别是在策略的关键部分正在被实施之时。
[0234]
通过定义选项图,学习驾驶策略π:s

a的问题可以被分解成为图中的每个节点定义策略的问题,其中内部节点处的策略应当从可用的子代节点之中进行选择。对于一些节点,相应的策略可以手动实现(例如,通过如果-则(if-then)类型算法来指定响应于观察到
的状态的一组动作),而对于其他策略可以使用通过强化学习构建的经训练的系统来实施。手动或经训练/学习的方法之间的选择可以取决于与任务相关联的安全方面以及取决于其相对简单性。可以以使得一些节点直接实施、而其他节点可以依赖于经训练的模型的方式,来构建选项图。这种方法可以确保系统的安全运行。
[0235]
以下讨论提供了关于在驾驶策略模块803内的如图9中的选项图的作用的进一步细节。如上所述,对驾驶策略模块的输入是“感测到的状态”,其概括了环境图,例如,从可用的传感器获得的。驾驶策略模块803的输出是一组期望(可选地连同一组硬性约束),该组期望将轨迹定义为对优化问题的解。
[0236]
如上所述,选项图表示被组织为dag的分层决策集。存在称为图的“根”的特殊节点。根节点是没有进入边(例如,决策线)的唯一节点。决策过程从根节点开始遍历该图,直到其到达“叶”节点,所述叶节点即没有外出边的节点。每个内部节点应当实施在其可用的子代之中挑选一个子代的策略。每个叶节点应实施基于从根到叶的整个路径定义了一组期望(例如,主车辆的一组导航目标)的策略。基于感测到的状态而被直接定义的该组期望连同一组硬性约束一起建立了优化问题,该优化问题的解是车辆的轨迹。可以采用硬性约束来进一步提高系统的安全性,并且该期望可以用于提供系统的驾驶舒适性和类似于人的驾驶行为。作为优化问题的解而提供的轨迹进而定义了应该提供给转向、制动和/或引擎致动器的命令,以便完成该轨迹。
[0237]
返回图9,选项图901表示双车道高速公路的选项图,包括并入车道(意味着在某些点,第三车道并入到高速公路的右侧车道或左侧车道中)。根节点903首先决定主车辆是处于普通道路情景还是接近并道情景。这是可以基于感测状态而实施的决策的示例。普通道路节点911包括三个子节点:保持节点909、左超车节点917和右超车节点915。保持是指主车辆想要继续在相同车道中行驶的情况。保持节点是叶节点(没有外出边/线)。因此,保持节点定义了一组期望。其定义的第一个期望可以包括期望的横向位置——例如,尽可能靠近当前行驶车道的中心。还可以期望平稳地导航(例如,在预定的或允许的加速度最大值内)。保持节点还可以定义主车辆如何对其他车辆作出反应。例如,保持节点可以查看感测到的目标车辆并且为每个车辆分配语义含义,该语义含义可以被转换成轨迹的分量。
[0238]
各种语义含义可以被分配给主车辆的环境中的目标车辆。例如,在一些实施例中,语义含义可以包括以下指定中的任何指定:1)不相关:指示场景中感测到的车辆当前不相关;2)下一车道:指示感测到的车辆在相邻车道中并且相对于该车辆应当保持适当的偏移(精确的偏移可以在优化问题中计算,该优化问题在给定期望和硬性约束下构建轨迹,并且该精确的偏移可以潜在地是取决于车辆的——选项图的保持叶设定目标车辆的语义类型,其定义相对于目标车辆的期望);3)让路:主车辆将尝试通过例如降低速度(特别是在主车辆确定目标车辆可能切入主车辆的车道的情况下)让路给感测到的目标车辆;4)占道(take way):主车辆将尝试通过例如增加速度占用路权;5)跟随:主车辆期望跟随在该目标车辆后保持平稳驾驶;6)左/右超车:这意味着主车辆想要发起到左或右车道的变道。左超车节点917和左超车节点915是尚未定义期望的内部节点。
[0239]
选项图901中的下一个节点是选择间隙节点919。该节点可以负责选择主车辆期望进入的特定目标车道中的两个目标车辆之间的间隙。通过选择形式idj的节点,对于j的某个值,主车辆到达为轨迹优化问题指定了期望的叶——例如,主车辆希望进行操纵以便到
达所选择的间隙。这种操纵可能涉及首先在当前车道加速/制动,然后在适当的时间前往目标车道以进入所选择的间隙。如果选择间隙节点919不能找到适当的间隙,则其移动到中止节点921,所述中止节点921定义了回到当前车道的中心并取消超车的期望。
[0240]
返回到并道节点913,当主车辆接近并道时,其具有可取决于特定情况的若干选项。例如,如图11a所示,主车辆1105沿着双车道道路行驶,其中在双车道道路的主车道或并入车道1111中没有检测到其他目标车辆。在这种情况下,驾驶策略模块803在到达并道节点913时可以选择保持节点909。也就是说,在没有目标车辆被感测为并道到道路上的情况下,可以期望保持在其当前车道内。
[0241]
在图11b中,情况稍有不同。此处,主车辆1105感测从并入车道1111进入主要道路1112的一个或多个目标车辆1107。在这种情况下,一旦驾驶策略模块803遇到并道节点913,它可以选择发起左超车操纵,以避免并道情况。
[0242]
在图11c中,主车辆1105遇到从并入车道1111进入主要道路1112的一个或多个目标车辆1107。主车辆1105还检测在与主车辆的车道相邻的车道中行驶的目标车辆1109。主车辆还检测到在与主车辆1105相同的车道上行驶的一个或多个目标车辆1110。在这种情况下,驾驶策略模块803可以决定调节主车辆1105的速率,以为目标车辆1107让路并且行进在目标车辆1115前面。这可以例如通过以下方式来实现:进行到选择间隙节点919,该间隙节点919进而将选择id0(车辆1107)和id1(车辆1115)之间的间隙作为适当的并道间隙。在这种情况下,并道情况的适当间隙定义了轨迹规划器优化问题的目标。
[0243]
如上所述,选项图的节点可以将其自己声明为“关键”,这可以确保所选择的选项通过关键节点。形式上,每个节点可以实施iscritical函数。在选项图上从根到叶执行正向传递,并且对轨迹规划器的优化问题求解之后,可以从叶返回到根执行反向传递。沿着这个反向传递,可以调用传递中所有节点的iscritical函数,并且可以保存所有关键节点的列表。在对应于下一时间帧的正向路径中,可能需要驾驶策略模块803选择从根节点到叶的经过所有关键节点的路径。
[0244]
图11a至图11c可用于显示该方法的潜在益处。例如,在发起超车动作并且驾驶策略模块803到达对应于idk的叶的情况下,例如当主车辆处于超车操纵的中途时,选择保持节点909将会是不期望的。为了避免这种跳动,idj节点可以将其自己指定为关键。在操纵期间,可以监视轨迹规划器的成功,并且如果超车操纵按预期进行,则函数iscritical将返回“真”值。此方法可以确保在下一时间帧内,超车操纵将继续(而不是在完成最初选择的操纵之前跳到另一个潜在不一致的操纵)。另一方面,如果对操纵的监视指示所选择的操纵没有按预期进行,或者如果操纵变得不必要或不可能,则iscritical函数可以返回“假”值。这可以允许选择间隙节点在下一时间帧中选择不同的间隙,或完全中止超车操纵。此方法一方面可以允许在每个时间步长在选项图上声明期望的路径,同时在另一方面,可以在执行的关键部分时帮助提高策略的稳定性。
[0245]
硬性约束可以与导航期望不同,这将在下面更详细地讨论。例如,硬性约束可以通过对规划的导航动作应用附加的过滤层来确保安全驾驶。可以根据感测到的状态来确定所涉及的硬性约束,所述硬性约束可以被手动地编程和定义,而不是通过使用基于强化学习建立的经训练的系统。然而,在一些实施例中,经训练的系统可以学习要应用和遵循的可适用的硬性约束。这种方法可以促使驾驶策略模块803到达已经符合可适用的硬性约束的所
选动作,这可以减少或消除可能需要之后修改以符合可适用的硬性约束的所选动作。尽管如此,作为冗余安全措施,即使在驾驶策略模块803已经被训练以应对预定硬性约束的情况下,也可以对驾驶策略模块803的输出应用硬性约束。
[0246]
存在许多潜在的硬性约束的示例。例如,可以结合道路边缘上的护栏来定义硬性约束。在任何情况下,均不允许主车辆通过护栏。这种规则对主车辆的轨迹产生了硬性横向约束。硬性约束的另一个示例可以包括道路颠簸(例如,速率控制颠簸),其可以在颠簸之前以及正穿过颠簸时引起对驾驶速度的硬性约束。硬性约束可以被认为是安全关键的,因此可以手动定义,而不是仅仅依靠在训练期间学习约束的经训练的系统。
[0247]
与硬性约束相比,期望的目标可以是实现或达到舒适的驾驶。如以上所讨论的,期望的示例可以包括将主车辆置于车道内的与主车辆车道的中心对应的横向位置处的目标。另一个期望可能包括适合进入的间隙的id。注意,主车辆不需要精确地处于车道中心,而是,尽可能靠近它的期望可以确保,即使在偏离车道中心的情况下,主车辆也倾向于迁移到车道的中心。期望可以不是安全关键的。在一些实施例中,期望可能需要与其他驾驶员和行人协商。构建期望的一种方法可以依赖于选项图,并且在图的至少一些节点中实现的策略可以基于强化学习。
[0248]
对于实现为基于学习训练的节点的选项图901或1000的节点,训练过程可以包括将问题分解成监督式学习阶段和强化学习阶段。在监督式学习阶段,可以学习从(s
t
,a
t
)到的可微(differentiable)映射,使得这可以类似于“基于模型”的强化学习。然而,在网络的前向环路中,可以用s
t+1
的实际值来代替从而消除了误差累积的问题。预测的作用是将消息从未来传播回过去的动作。从这个意义上讲,该算法可以是“基于模型”的强化学习与“基于策略的学习”的组合。
[0249]
在某些情景下可以提供的重要元素是从未来损失/奖励回到对动作的决策的可微路径。通过选项图结构,涉及安全约束的选项的实现通常是不可微的。为了克服这个问题,对学习的策略节点中的子代的选择可以是随机的。也就是说,节点可以输出概率向量p,其分配用于选择特定节点的每个子代的概率。假设节点有k个子代,并令a
(1)
,...,a
(k)
为从每个子代到叶的路径的动作。所得到的预测动作因此为这可能导致从该动作到p的可微路径。在实践中,动作a可以被选择为对于i~p的a(i),并且a和之间的差可以被称为加性噪声。
[0250]
对于给定s
t
,a
t
下的训练,可以将监督式学习与真实数据一起使用。对于节点策略的训练,可以使用模拟器。之后,可以使用真实数据完成策略的微调。两个概念可以使模拟更加真实。首先,使用模仿,可以使用“行为克隆”范式,使用大型现实世界数据集来构建初始策略。在某些情况下,所得到的作用者可以是合适的。在其他情况下,所得到的作用者至少为道路上的其他作用者形成了非常好的初始策略。其次,使用自我发挥(self-play),我们自己的策略可被用来加强训练。例如,给定了可以是有经验的其他作用者(汽车/行人)的初步实施,则可以基于模拟器对策略进行训练。一些其他作用者可被新的策略取代,并且可以重复该过程。因此,该策略能够继续改善,因为其应该对更多种类的具有不同复杂等级的其他作用者做出响应。
[0251]
此外,在一些实施例中,系统可以实施多作用者的方法。例如,该系统可以考虑来自各种源的数据和/或从多个角度捕捉的图像。此外,一些公开的实施例可以提供能量的经济性,因为可以考虑不直接涉及主车辆但对主车辆可能产生影响的事件的预期,或者甚至对可能导致涉及其他车辆的不可预测情况的事件的预期可以是考虑因素(例如,雷达可能会“看穿(see through)”前方车辆以及不可避免的预期、或者甚至将影响主车辆的事件的高可能性)。
[0252]
带有施加的导航约束的经训练的系统
[0253]
在自主驾驶的情况下,重要关注的是如何确保经训练的导航网络的经学习的策略是安全的。在一些实施例中,可以使用约束来训练驾驶策略系统,使得由经训练的系统选择的动作已经可以应对(account for)可适用的安全约束。另外,在一些实施例中,可以通过将经训练的系统的所选动作传递经过主车辆的环境中的特定的感测到的场景所涉及的一个或多个硬性约束,来提供额外的安全层。这种方法可以确保主车辆采取的动作仅限于被确认为满足可适用的安全约束的那些动作。
[0254]
在其核心,导航系统可以包括基于将观察到的状态映射到一个或多个期望动作的策略函数的学习算法。在一些实施方式中,学习算法是深度学习算法。期望动作可以包括预期使车辆的预期奖励最大化的至少一个动作。虽然在一些情况下,车辆采取的实际动作可以对应于期望动作中的一个,但是在其他情况下,可以基于观察到的状态、一个或多个期望动作和对学习导航引擎施加的非学习的硬性约束(例如,安全约束)来确定采取的实际动作。这些约束可以包括围绕各种类型的检测到的对象(例如,目标车辆、行人、道路侧或道路上的静止对象、道路侧或道路上的移动对象、护栏等等)的禁止驾驶区。在一些情况下,该区的大小可以基于检测到的对象的检测到的运动(例如,速率和/或方向)而变化。其他约束可以包括在行人的影响区内穿行时的最大行驶速度、最大减速率(来应对主车辆后方的目标车辆间距)、在感测到的人行横道或铁路道口处的强制停止等。
[0255]
与通过机器学习训练的系统结合使用的硬性约束可以在自主驾驶中提供一定程度的安全性,其可以超过仅基于经训练的系统的输出可达到的安全性程度。例如,可以使用期望的一组约束作为训练指导来训练机器学习系统,并且因此,经训练的系统可以响应于感测到的导航状态而选择动作,该动作应对并遵守可适用的导航约束的限制。然而,经训练的系统在选择导航动作方面仍具有一定的灵活性,并且因此,至少在某些情况下,由经训练的系统选择的动作可以不严格遵守相关的导航约束。因此,为了要求所选动作严格遵守相关的导航约束,可以使用在学习/经训练的框架之外的、保证严格适用相关的导航约束的非机器学习组件对经训练的系统的输出进行组合、比较、过滤、调节、修改等。
[0256]
以下讨论提供了关于经训练的系统以及从将经训练的系统与经训练的/学习框架外的算法组件组合收集的潜在益处(特别是从安全角度而言)的附加细节。如前所述,可以通过随机梯度上升来优化策略的强化学习目标。目标(例如,预期奖励)可以被定义为
[0257]
涉及期望的目标可以用于机器学习情景中。然而,这样的目标,在不受限于导航约束的情况下,可能不会返回严格受限于这些约束的动作。例如,考虑一奖励函数,其中,表示要避免的罕见“困境(corner)”事件(例如,诸如事故)的轨迹,而
表示其余的轨迹,学习系统的一个目标可以是学习执行超车操纵。通常,在无事故的轨迹中,将会奖励成功、平稳的超车,并且惩罚在车道中停留而未完成超车——因此,范围为[-1,1]。如果序列代表事故,那么奖励-r应该提供足够高的惩罚来阻止这种事件发生。问题是确保无事故驾驶的值r应该是什么。
[0258]
观察到,事故对的影响是附加项-pr,其中p是带有事故事件的轨迹的概率质量。如果该项是可以忽略不计的,即,p<<1/r,则学习系统可以更经常优选执行了事故的策略(或者通常采用不计后果的驾驶策略),以便成功地履行超车操纵,而不是以某些超车操纵没有成功完成为代价而会更加防御性的策略。换言之,如果事故的概率至多为p,那么必须设定r使得r>>1/p。可以期望使p非常小(例如,在p=10-9
的数量级)。因此,r应该很大。在策略梯度中,可以估计的梯度。以下引理表明,随机变量的方差随着pr2而变大,该方差对于r>>1/p而言是大于r的。因此,估计目标可能是困难的,估计其梯度可能更加困难。
[0259]
引理:令πo为策略,并且令p和r是标量,使得在概率p下获得并且在概率1-p下获得那么,
[0260][0261]
其中,最终近似适用于r≥1/p的情况。
[0262]
该讨论表明,形式为的目标可能不会确保功能性安全而不引起方差问题。用于降低方差的基线减法方法可能无法为该问题提供足够的补救措施,因为该问题将从的高方差转移到基线常数的同样高的方差,该基线常数的估计同样会受到数值不稳定性的影响。并且,如果事故的概率为p,那么在获得事故事件之前,应平均对至少1/p个序列(sequences)进行采样。这意味着,用于旨在使最小化的学习算法的序列的样本的下限为1/p个。这个问题的解可以在本文描述的架构设计中找到,而不是通过数字调节技术。此处的方法是基于这样的观念,即硬性约束应该在学习框架之外注入。换言之,策略函数可以分解为可学习部分和不可学习部分。形式上,策略函数可以被构造为其中将(不可知的)状态空间映射到一组期望(例如,期望的导航目标等),而π
(t)
将该期望映射到轨迹(其可确定汽车在短距离内应该如何移动)。函数π
(t)
负责驾驶的舒适性和制定策略性决定,诸如哪些其他汽车应该被超车或被让路、以及主车辆在其车道内的期望位置是什么等等。从感测到的导航状态到期望的映射是策略其可以通过使预期奖励最大化而从经验中学习。由产生的期望可以转化为对于驾驶轨迹的代价函数。函数π
(t)
并非学习的函数,其可以通过找到使在功能性安全方面受到硬性约束的代价最小化的轨迹来实现。这种分解可以确保功能性安全,与此同时提供舒适的驾驶。
[0263]
如图11d所示,双并道导航情况提供了进一步示出这些概念的示例。在双并道中,
车辆从左侧和右侧两侧接近并道区域1130。并且,来自各侧的车辆(诸如车辆1133或车辆1135)可以决定是否并道至并道区域1130的另一侧的车道中。在繁忙交通中成功执行双并道可能需要显著的协商技巧和经验,并且可能难以通过枚举场景中所有作用者可能采取的所有可能的轨迹而以启发式或蛮力方法来执行。在该双并道的示例中,可以定义适合于双并道操纵的一组期望并道操纵的一组期望可以是以下集合的笛卡尔乘积:
[0264]
其中,[0,v
max
]是主车辆的期望的目标速率,l={1,1.5,2,2.5,3,3.5,4}是以车道为单位的期望的横向位置,其中整数表示车道中心,分数表示车道边界,而{g,t,o}是分配给n个其他车辆中的每个的分类标签。如果主车辆要给另一车辆让路,则另一车辆可以被分配“g”,如果主车辆要相对于另一车辆占道,则另一车辆可以被分配“t”,或者如果主车辆要相对于另一车辆保持一偏移距离,则另一车辆可以被分配“o”。
[0265]
下面描述了一组期望如何可以转化为对于驾驶轨迹的代价函数。驾驶轨迹可以由(x1,y1),...,(xk,yk)表示,其中(xi,yi)为主车辆在时间τ
·
i处的(横向,纵向)位置(以自我为中心的单位),在一些实验中,τ=0.1秒并且k=10。当然,还可以选择其他值。分配给轨迹的代价可以包括分配给期望的速率、横向位置以及分配给其他n个车辆中的每个车辆的标签的各个代价的加权总和。
[0266]
给定期望的速率v∈[0,υ
max
],与速率相关联的轨迹的代价为
[0267][0268]
给定期望的横向位置l∈l,与期望的横向位置相关联的代价为
[0269][0270]
其中dist(x,y,l)是从点(x,y)到车道位置l的距离。关于由于其他车辆导致的代价,对于任何其他车辆,(x
′1,y
′1),...,(x
′k,y
′k)可以表示以主车辆的以自我为中心的单位的其他车辆,并且i可以是最早的点,对于该点,存在j,使得(xi,yi)与(x’j
,y’j
)之间的距离很小。如果没有这样的点,则i可被设置为i=∞。如果另一车辆被分类为“让路”,则可以期望τi>τj+0.5,这意味着主车辆将在另一车辆到达同一点后至少0.5秒后到达轨迹相交点。用于将上述约束转换为代价的可以公式为[τ(j-i)+0.5]
+

[0271]
同样,如果另一汽车被分类为“占道”,可以期望τj>τi+0.5,其可以转化为代价[τ(i-j)+0.5]
+
。如果另一汽车被分类为“偏移”,则可以期望i=∞,这意味着主车辆的轨迹和偏移汽车的轨迹不相交。可以通过相对于轨迹之间的距离进行惩罚,将这种情况转化为代价。
[0272]
为这些代价中的每一个分配权重可以为轨迹规划器提供单个目标函数π(
t)
。鼓励平稳驾驶的代价可以被增加至该目标。而且,为了确保轨迹的功能性安全,可以将硬性约束增加至该目标。例如,可以禁止(xi,yi)离开道路,并且如果|i-j|小,则可以对于任何其他车辆的任何轨迹点(x’j
,y’j
),禁止(xi,yi)接近(x’j
,y’j
)。
[0273]
总而言之,策略π
θ
可以被分解成从不可知状态到一组期望的映射以及从期望到实际轨迹的映射。后一种映射不是基于学习的,并且可以通过求解优化问题来实现,该优化问
题的代价取决于期望,并且其硬性约束可以保证该策略的功能性安全。
[0274]
以下讨论描述从不可知状态到该组期望的映射。如上所述,为了符合功能性安全,仅依靠强化学习的系统可能遭受关于奖励的高且不便利的方差。通过使用策略梯度迭代将问题分解成从(不可知的)状态空间到一组期望的映射,随后不涉及基于机器学习训练的系统而映射到实际轨迹,可以避免该结果。
[0275]
出于各种原因,决策制定可以被进一步分解为语义上有意义的分量。例如,的大小可能是大的甚至连续的。在关于图11d的上面描述的双并道场景中,另外,梯度估计器可能涉及项在这样的表达式中,方差可以随着时间范围t增长。在某些情况下,t的值可大致为250,这可能足以产生显著的方差。假设采样率在10hz范围内,并且并道区域1130为100米,则并道的准备可以在并道区域之前大约300米处开始。如果主车辆以每秒16米(约每小时60公里)的速度行驶,则对于片段(episode)的t的值可以大致为250。
[0276]
回到选项图的概念,图11e中示出了可以表示图11d中描绘的双并道情景的选项图。如前所述,选项图可以表示组织为有向非循环图(dag)的分层决策集。在该图中可能存在被称为“根”节点1140的特殊节点,该节点可以是没有进入边(例如,决策线)的唯一节点。决策过程可以从根节点开始遍历该图,直到其到达“叶”节点,即,没有外出边的节点。每个内部节点可以实施从其可用子代中选择一子代的策略函数。可以存在从选项图上的一组遍历到一组期望的预定映射。换言之,在选项图上的遍历可以被自动转换为中的期望。给定图中的一节点v,参数向量θv可以指定选择v的子代的策略。如果θ是所有θv的联结(concatenation),那么,可以通过从图的根遍历到叶来定义同时在每个节点v处使用由θv定义的策略来选择子代节点。
[0277]
在图11e中的双并道选项图1139中,根节点1140可首先判定主车辆是否在并道区域内(例如,图11d中的区域1130),或者主车辆是否正在接近并道区域并且需要为可能的并道做准备。在这两种情况下,主车辆可能需要决定是否改变车道(例如,向左或向右)或是否保持在当前车道中。如果主车辆已决定改变车道,则主车辆可能需要决定条件是否适合继续并执行车道改变操纵(例如,在“继续”节点1142处)。如果不可能改变车道,则主车辆可以试图通过以处于车道标记上为目标,而朝着期望的车道“推进”(例如,在节点1144处,作为与期望车道中的车辆的协商的一部分)。替代地,主车辆可以选择“保持”在同一车道中(例如,在节点1146处)。这种过程可以以自然的方式确定主车辆的横向位置。例如,
[0278]
这可以实现以自然的方式确定期望的横向位置。例如,如果主车辆将车道从车道2改变为车道3,则“继续”节点可以将期望的横向位置设置为3,“保持”节点可以将期望的横向位置设置为2,而“推进”节点可以将期望的横向位置设置为2.5。接下来,主车辆可以决定是维持“相同”速率(节点1148)、“加速”(节点1150)或是“减速”(节点1152)。接下来,主车辆可以进入超越其他车辆并且将它们的语义含义设置为集合{g,t,o}中的值的“链状”结构1154。这个过程可以设置相对于其他车辆的期望。该链中所有节点的参数可以共享(类似于循环神经网络)。
[0279]
选项的潜在益处是结果的可解释性。另一个潜在益处在于可以依赖集合的可
分解结构,并且因此,可以从少数的概率之中选择每个节点处的策略。另外,该结构可以允许降低策略梯度估计器的方差。
[0280]
如上所述,双并道场景中片段的长度可以大致为t=250个步长。这样的值(或取决于特定的导航情景的任何其他合适的值)可以提供足够的时间来看到主车辆动作的后果(例如,如果主车辆决定改变车道作为并道的准备,主车辆仅在成功完成并道后才能看到益处)。另一方面,由于驾驶的动态性,主车辆必须以足够快的频率(例如,在上述情况下为10hz)做出决策。
[0281]
选项图可以以至少两种方式实现降低t的有效值。首先,给定更高等级的决策,可以为较低等级的决策定义奖励,同时考虑较短的片段。例如,当主车辆已经选择了“车道改变”和“继续”节点时,通过观看2至3秒的片段(意味着t变为20-30,而不是250),可以学习用于为车辆分配语义含义的策略。其次,对于高等级决策(诸如是否改变车道或保持在同一车道),主车辆可能不需要每0.1秒做出决策。替代地,主车辆能够以较低频率(例如,每秒)作出决策,或者实现“选项终止”功能,然后可以仅在每次选项终止之后计算梯度。在这两种情况下,t的有效值可能比其原始值小一个数量级。总而言之,每个节点的估计器可以取决于t的值,其比原来的250个步长小一个数量级,这可能会立即转到一个较小的方差。
[0282]
如上所述,硬性约束可以促进更安全的驾驶,并且可以存在几种不同类型的约束。例如,可以直接根据感测状态定义静态硬性约束。这些硬性约束可包括在主车辆的环境内的减速带、速率限制、道路弯曲、交叉口等,其可能涉及对车辆速率、航向、加速、制动(减速)等的一个或多个约束。静态硬性约束可能还包括语义上的自由空间,其中,例如,主车辆被禁止驶出自由空间之外,以及被禁止太靠近物理障碍行驶。静态硬性约束还可以限制(例如,禁止)不符合车辆的运动学运动的各个方面的操纵,例如,可以使用静态硬性约束来禁止可能导致主车辆翻转、滑动或者其他失去控制的操纵。
[0283]
硬性约束还可以与车辆相关联。例如,可以采用一约束,该约束要求车辆保持到其他车辆的至少一米的纵向距离和到其他车辆的至少0.5米的横向距离。还可以应用约束,使得主车辆将避免保持与一个或多个其他车辆的碰撞路线。例如,时间τ可以是基于特定场景的时间度量。可以从当前时间到时间τ考虑主车辆和一个或多个其他车辆的预测轨迹。在两条轨迹相交的情况下,可以表示车辆i到达和离开相交点的时间。也就是说,每辆汽车将在汽车的第一部分通过相交点时到达该点处,并且在汽车的最后部分通过该相交点之前需要一定时间量。该时间量将到达时间与离开时间分开。假设(即,车辆1的到达时间小于车辆2的到达时间),那么我们将希望确保车辆1在车辆2到达之前已经离开相交点。否则,将会导致碰撞。因此,可以实施使得的硬性约束。并且,为了确保车辆1和车辆2以最小量彼此错开,通过将缓冲时间(例如,0.5秒或另一适当值)包括在约束中,可以获得附加的安全余量。与两车辆的预测的相交轨迹有关的硬性约束可以表示为
[0284]
主车辆和一个或多个其他车辆的轨迹被追踪的时间量τ可以变化。然而,在交叉口情景中,速率可能更低,τ可能更长,并且τ可以被定义为使得主车辆将在小于τ秒内进入和离开交叉口。
[0285]
当然,对车辆轨迹应用硬性约束要求预测那些车辆的轨迹。对于主车辆而言,轨迹预测可能相对直接,因为主车辆通常已经理解并且事实上正在在任何给定时间对预期轨迹
进行规划。相对于其他车辆,预测它们的轨迹可能不那么直接。对于其他车辆而言,用于确定预测轨迹的基线计算可能依赖于其他车辆的当前速率和航向,例如,如基于对由主车辆上的一个或多个相机和/或其他传感器(雷达、激光雷达、声学等)捕捉的图像流的分析所确定的。
[0286]
然而,可能存在一些例外,其可以简化问题或者至少提供在针对另一车辆预测的轨迹中的增加的置信度。例如,对于存在车道指示的结构化道路以及可能存在让路规则的情况,其他车辆的轨迹可以至少部分地基于其他车辆相对于车道的位置以及基于可适用的让路规则。因此,在一些情况下,当观察到车道结构时,可以假设下一车道的车辆将遵守车道边界。也就是说,主车辆可以假设下一车道的车辆将保持在其车道中,除非观察到指示下一车道的车辆将切入主车辆的车道中的证据(例如,信号灯、强的横向运动、跨车道边界的移动)。
[0287]
其他情况也可以提供关于其他车辆的预期轨迹的线索。例如,在主车辆可以有路权的停车标志、交通灯、环形道等处,可以假设其他车辆将遵守该路权。因此,除非观察到违反规则的证据,否则可以假设其他车辆沿着遵守主车辆拥有的路权的轨迹继续前进。
[0288]
还可以相对于主车辆环境中的行人应用硬性约束。例如,可以相对于行人建立缓冲距离,使得禁止主车辆相对于任何观察到的行人比规定的缓冲距离更近地行驶。行人缓冲距离可以是任何合适的距离。在一些实施例中,缓冲距离可以是相对于观察到的行人至少一米。
[0289]
类似于带有车辆的情况,还可以相对于行人与主车辆之间的相对运动来应用硬性约束。例如,可以相对于主车辆的预计轨迹来监视行人的轨迹(基于航向和速率)。给定特定的行人轨迹,其中对于轨迹上的每个点p,t(p)可以表示行人到达点p所需的时间。为了保持距行人至少1米的所需的缓冲距离,t(p)必须大于主车辆将到达点p的时间(具有足够的时间差,使得主车辆在行人的前方以至少一米的距离通过),或者t(p)必须小于主车辆将到达点p的时间(例如,如果主车辆制动来为行人让路)。尽管如此,在后一示例中,硬性约束可能要求主车辆在晚于行人足够的时间到达点p,使得主车辆可以在行人后方通过,并且维持至少一米的所需的缓冲距离。当然,对行人的硬性约束可能有例外。例如,在主车辆具有路权或速度非常缓慢的情况下,并且没有观察到行人将拒绝为主车辆让路或将以其他方式导航向主车辆的证据,可以松弛(relax)行人硬性约束(例如,到至少0.75米或0.50米的较小缓冲)。
[0290]
在一些示例中,在确定不是全部约束都可以被满足的情况下,可以松弛约束。例如,在道路太窄而不能留出两个路缘或路缘与停放车辆的所需间距(例如0.5米)的情况下,如果存在减轻情况,则可以松弛一个或多个约束。例如,如果人行道上没有行人(或其他对象),可以在离路缘0.1米处缓慢行驶。在一些实施例中,如果松弛约束会改善用户体验,则可以松弛约束。例如,为了避免坑洼,可以松弛约束以允许车辆比通常可能允许的更靠近车道边缘、路缘或行人。此外,在确定哪些约束要松弛时,在一些实施例中,选择要松弛的一个或多个约束是被认为对安全具有最小可用负面影响的那些约束。例如,在松弛涉及与其他车辆的接近度的一个约束之前,可以松弛关于车辆可以有多接近行驶到路缘或混凝土障碍的约束。在一些实施例中,行人约束可以是最后被松弛的,或者在某些情况下可能永远不被松弛。
[0291]
图12示出可在主车辆的导航期间捕捉和分析的场景的示例。例如,主车辆可以包括如上所述的导航系统(例如,系统100),其可以从与主车辆相关联的相机(例如,图像捕捉设备122、图像捕捉设备124和图像捕捉设备126中的至少一个)接收表示主车辆的环境的多个图像。图12中所示的场景是可以在时间t从沿着预测轨迹1212在车道1210中行驶的主车辆的环境捕捉的图像之一的示例。导航系统可以包括至少一个处理设备(例如,包括上述的任何eyeq处理器或其他设备),所述处理设备被专门编程为接收多个图像并分析图像以确定响应于场景的动作。具体而言,如图8所示,至少一个处理设备可以实现感测模块801、驾驶策略模块803和控制模块805。感测模块801可以负责收集并输出从相机收集的图像信息,并且将该信息以所识别的导航状态的形式提供至驾驶策略模块803,其可以构成已经通过机器学习技术(诸如监督式学习、强化学习等)训练的经训练的导航系统。基于由感测模块801提供至驾驶策略模块803的导航状态信息,驾驶策略模块803(例如,通过实施上述的选项图方法)可以生成用于由主车辆响应于所识别的导航状态而执行的期望导航动作。
[0292]
在一些实施例中,至少一个处理设备可以使用例如控制模块805,将期望导航动作直接转换成导航命令。然而,在其他实施例中,可以应用硬性约束,使得针对场景和所述期望导航动作可能涉及的各种预定导航约束,对由驾驶策略模块803提供的期望导航动作进行测试。例如,在驾驶策略模块803输出将引起主车辆跟随轨迹1212的期望导航动作的情况下,可以相对于与主车辆的环境的各个方面相关联的一个或多个硬性约束来测试该导航动作。例如,捕捉图像1201可以显示路缘1213、行人1215、目标车辆1217以及存在于场景中的静止对象(例如,翻倒的箱子)。这些中的每个都可以与一个或多个硬性约束相关联。例如,路缘1213可以与禁止主车辆导航进路缘或经过路缘并且到人行道1214上的静态约束相关联。路缘1213还可以与路障包络(envelope)相关联,该路障包络限定了远离路缘(例如,0.1米、0.25米、0.5米、1米等)并且沿着路缘延伸的距离(例如,缓冲区),该距离限定了主车辆的禁止导航区。当然,静态约束还可以与其他类型的路侧边界(例如,护栏、混凝土柱、交通锥标、桥塔或任何其他类型的路侧障碍)相关联。
[0293]
应注意,距离和范围可以通过任何合适的方法来确定。例如,在一些实施例中,距离信息可以由车载雷达和/或激光雷达系统提供。替代地或另外地,距离信息可以从对从主车辆的环境捕捉的一个或多个图像的分析中导出。例如,可以确定图像中表示的已辨识的对象的多个像素,并将其与图像捕捉设备的已知视场和焦距几何形状进行比较,以确定比例和距离。例如,可以通过观察在已知时间间隔内从图像到图像的对象之间的比例变化,来确定速度和加速度。该分析可以指示对象朝着主车辆或者远离主车辆的运动方向、以及对象正在以多快速度远离主车辆或朝主车辆过来。可以通过分析在已知时间段内从一个图像到另一个图像的对象x坐标位置的变化,来确定穿越速度。
[0294]
行人1215可以与限定了缓冲区1216的行人包络相关联。在一些情况下,施加的硬性约束可以禁止主车辆在离行人1215一米的距离内(在相对于行人1215的任何方向)导航。行人1215还可以限定行人影响区1220的位置。这种影响区可以与限制主车辆在影响区内的速度的约束相关联。影响区可以从行人1215延伸5米、10米、20米等。影响区的每个分级(graduation)可以与不同的速率限制相关联。例如,在离行人1215一米至五米的区域内,主车辆可以被限制为第一速率(例如,10mph(每小时英里数),20mph等),所述第一速率可以小于从5米延伸至10米的行人影响区中的速率限制。可以对于影响区的各级使用任何分级。在
一些实施例中,第一级可以比从一米到五米更窄,并且可以仅从一米延伸到两米。在其他实施例中,影响区的第一级可从一米(围绕行人的禁止导航区的边界)延伸至至少10米的距离。第二级又可以从十米延伸到至少约二十米。第二级可以与主车辆的最大行驶速度相关联,其大于与行人影响区的第一级相关联的最大行驶速度。
[0295]
一个或多个静止对象约束也可以与主车辆的环境中检测到的场景有关。例如,在图像1201中,至少一个处理设备可以检测静止对象,诸如存在于道路中的箱子1219。检测到的静止对象可以包括各种对象,诸如树、杆、道路标志或道路中的对象中的至少一个。一个或多个预定导航约束可以与检测到的静止对象相关联。例如,这种约束可以包括静止对象包络,其中所述静止对象包络限定了关于对象的缓冲区,可以禁止主车辆导航到该缓冲区内。缓冲区的至少一部分可以从检测到的静止对象的边缘延伸预定距离。例如,在由图像1201表示的场景中,至少0.1米、0.25米、0.5米或更多的缓冲区可以与箱子1219相关联,使得主车辆将以至少一段距离(例如,缓冲区距离)通过箱子的右侧或左侧,以避免与检测到的静止对象发生碰撞。
[0296]
预定的硬性约束还可以包括一个或多个目标车辆约束。例如,可以在图像1201中检测到目标车辆1217。为了确保主车辆不与目标车辆1217碰撞,可以采用一个或多个硬性约束。在一些情况下,目标车辆包络可以与单个缓冲区距离相关联。例如,可以通过在所有方向上围绕目标车辆1米的距离来限定缓冲区。缓冲区可以限定从目标车辆延伸至少一米的区域,禁止主车辆导航到该区域中。
[0297]
然而,围绕目标车辆1217的包络不需要由固定的缓冲距离限定。在一些情况下,与目标车辆(或在主车辆的环境中检测到的任何其他可移动对象)相关联的预定硬性约束可取决于主车辆相对于检测到的目标车辆的定向。例如,在一些情况下,纵向缓冲区距离(例如,从目标车辆向主车辆的前方或后方延伸的距离——诸如在主车辆正朝着目标车辆行驶的情况下)可以为至少一米。横向缓冲区距离(例如,从目标车辆向主车辆的任一侧延伸的距离
‑‑
诸如当主车辆以与目标车辆相同或相反的方向行驶时,使得主车辆的一侧将邻近目标车辆的一侧通过)可以为至少0.5米。
[0298]
如上所述,通过对主车辆的环境中的目标车辆或行人的检测,还可能涉及其他约束。例如,可以考虑主车辆和目标车辆1217的预测轨迹,并且在两个轨迹相交(例如,在相交点1230处)的情况下,硬性约束可以需要或者其中主车辆为车辆1,而目标车辆1217为车辆2。类似地,可以相对于主车辆的预计轨迹来监视行人1215的轨迹(基于前进方向和速率)。给定特定的行人轨迹,对于轨迹上的每个点p上,t(p)将表示行人到达点p(即,图12中的点1231)所需的时间。为了保持距行人至少1米的所需缓冲距离,t(p)必须大于主车辆将到达点p的时间(具有足够的时间差,使得主车辆在行人前方以至少一米的距离通过),或者t(p)必须小于主车辆将到达点p的时间(例如,如果主车辆制动来为行人让路)。尽管如此,在后一示例中,硬性约束将要求主车辆以足够的时间晚于行人到达点p,使得主车辆可以在行人后方通过,并且保持至少一米的所需的缓冲距离。
[0299]
还可以采用其他硬性约束。例如,至少在一些情况下,可以采用主车辆的最大减速率。这种最大减速率可以基于检测到的距跟随主车辆的目标车辆的距离(例如,使用从后向相机收集的图像)而被确定。硬性约束可以包括在感测到的人行横道或铁路道口处的强制停止、或其他可适用的约束。
[0300]
在对主车辆的环境中的场景的分析指示可能涉及一个或多个预定导航约束的情况下,可以相对于主车辆的一个或多个规划的导航动作来施加这些约束。例如,在对场景的分析导致驾驶策略模块803返回期望导航动作的情况下,可以针对一个或多个涉及的约束来测试该期望导航动作。如果期望导航动作被确定为违反所涉及的约束的任何方面(例如,如果期望导航动作将驱使主车辆在行人1215的0.7米的距离内,其中预定硬性约束要求主车辆保持距离行人1215至少1.0米),则可以基于一个或多个预定导航约束对期望导航动作做出至少一个修改。以这种方式调节期望导航动作可以遵循在主车辆的环境中检测到的特定场景所涉及的约束,为主车辆提供实际导航动作。
[0301]
在确定主车辆的实际导航动作之后,可以通过响应于所确定的主车辆的实际导航动作而引起对主车辆的导航致动器的至少一个调节,来实现该导航动作。这种导航致动器可以包括主车辆的转向机构、制动器或加速器中的至少一个。
[0302]
优先约束
[0303]
如上所述,导航系统可采用各种硬性约束来确保主车辆的安全操作。约束可以包括相对于行人、目标车辆、路障或检测到的对象的最小安全驾驶距离、当在检测到的行人的影响区内通过时的最大行驶速率、或者主车辆的最大减速率等等。这些约束可以对基于机器学习(监督式、强化或组合)训练的经训练的系统来施加,但是它们也可以对非经训练的系统(例如,采用算法来直接处理在来自主车辆环境的场景中发生的预期情况的那些系统)有用。
[0304]
在任何一种情况下,都可能存在约束的层级。换言之,一些导航约束优先于其他约束。因此,如果出现了不可获得会导致所有相关约束均被满足的导航动作的情况,则导航系统可首先确定实现最高优先级约束的可用导航动作。例如,系统也可以使车辆首先避开该行人,即使避开该行人的导航会导致与道路中检测到的另一车辆或对象碰撞。在另一个示例中,系统可以使车辆骑上路缘来避开行人。
[0305]
图13提供了示出用于实现基于对主车辆的环境中场景的分析而确定的相关约束的层级的算法的流程图。例如,在步骤1301,与导航系统相关联的至少一个处理设备(例如,eyeq处理器等)可以从安装在主车辆上的相机接收表示主车辆的环境的多个图像。通过在步骤1303对表示主车辆环境的场景的图像的分析,可以识别与主车辆相关联的导航状态。例如,导航状态可以指示主车辆正沿着双车道道路1210行驶,如图12所示,其中目标车辆1217正在移动通过主车辆前方的交叉口,行人1215正在等待穿过主车辆行驶的道路,对象1219存在于主车辆车道的前方,以及场景的各种其他属性。
[0306]
在步骤1305,可以确定主车辆的导航状态涉及的一个或多个导航约束。例如,在分析由一个或多个捕捉图像表示的主车辆的环境中的场景之后,至少一个处理设备可以确定通过对捕捉图像的图像分析所辨识的对象、车辆、行人等涉及的一个或多个导航约束。在一些实施例中,至少一个处理设备可以确定导航状态涉及的至少第一预定导航约束和第二预定导航约束,并且第一预定导航约束可以不同于第二预定导航约束。例如,第一导航约束可以涉及在主车辆的环境中检测到的一个或多个目标车辆,而第二导航约束可以涉及在主车辆的环境中检测到的行人。
[0307]
在步骤1307,至少一个处理设备可以确定与在步骤1305中识别的约束相关联的优先级。在所描述的示例中,涉及行人的第二预定导航约束可以具有比涉及目标车辆的第一
预定导航约束更高的优先级。虽然可以基于各种因素来确定或分配与导航约束相关联的优先级,但是在一些实施例中,导航约束的优先级可能与其从安全角度而言的相对重要性有关。例如,虽然在尽可能多的情况下遵守或满足所有实施的导航约束可能是重要的,但是一些约束可能与其他约束相比与具有更高的安全风险相关联,因此,这些约束可被分配更高的优先级。例如,要求主车辆保持与行人间距至少1米的导航约束可具有比要求主车辆保持与目标车辆间距至少1米的约束更高的优先级。这可能是因为与行人相撞会比与另一车辆相撞造成更严重的后果。类似地,保持主车辆与目标车辆之间的间距可以具有比以下约束更高的优先级:要求主车辆避开道路上的箱子、在减速带上低于特定速度驾驶、或者使主车辆占有者暴露于不超过最大加速度等级。
[0308]
虽然驾驶策略模块803被设计为通过满足特定场景或导航状态涉及的导航约束以使安全性最大化,但是在一些情况下,实际上不可能满足每个所涉及的约束。在这种情况下,如步骤1309所示,可以使用每个涉及的约束的优先级来确定应该首先满足哪个涉及的约束。继续上面的示例,在不可能同时满足行人间隙约束和目标车辆间隙两者约束,而只能满足其中一个约束的情况下,则更高优先级的行人间隙约束可导致该约束在尝试保持到目标车辆的间隙之前被满足。因此,在正常情况下,如步骤1311所示,在第一预定导航约束和第二预定导航约束两者都可以被满足的情况下,至少一个处理设备可以基于所识别的主车辆的导航状态来确定满足第一预定导航约束和第二预定导航约束两者的主车辆的第一导航动作。然而,在其他情况下,在不是所有涉及的约束都可以被满足的情况下,如步骤1313所示,第一预定导航约束和第二预定导航约束不能同时被满足的情况下,至少一个处理设备可以基于所识别的导航状态,确定满足第二预定导航约束(即,较高优先级约束)但不满足第一预定导航约束(具有低于第二导航约束的优先级)的主车辆的第二导航动作。
[0309]
接下来,在步骤1315,为了实施所确定的主车辆的导航动作,至少一个处理设备可以响应于所确定的主车辆的第一导航动作或所确定的主车辆的第二导航动作,引起对主车辆的导航致动器的至少一个调节。如在前面的示例中所述,导航致动器可以包括转向机构、制动器或加速器中的至少一个。
[0310]
约束松弛
[0311]
如上所述,出于安全目的可以施加导航约束。约束可以包括相对于行人、目标车辆、路障或检测到的对象的最小安全驾驶距离、当在检测到的行人的影响区内通过时的最大行驶速度、或者主车辆的最大减速率等等。这些约束可以被施加在学习或非学习的导航系统中。在某些情况下,这些约束可以被松弛。例如,在主车辆在行人附近减速或停靠,然后缓慢前进以传达要驶过行人的意图的情况下,可以从所获取的图像中检测行人的响应。如果行人的响应是保持静止或停止移动(和/或如果感测到与行人的眼神接触),则可以理解该行人认识到导航系统要驶过行人的意图。在这种情况下,系统可松弛一个或多个预定约束并实施较不那么严格的约束(例如,允许车辆在行人0.5米内导航,而不是在更严格的1米边界内)。
[0312]
图14提供了用于基于一个或多个导航约束的松弛来实施主车辆的控制的流程图。在步骤1401,至少一个处理设备可以从与主车辆相关联的相机接收表示主车辆的环境的多个图像。在步骤1403对图像的分析可以使得能够识别与主车辆相关联的导航状态。在步骤1405,至少一个处理器可以确定与主车辆的导航状态相关联的导航约束。导航约束可以包
括导航状态的至少一个方面所涉及的第一预定导航约束。在步骤1407,多个图像的分析可以揭示至少一个导航约束松弛因素(relaxation factor)的存在。
[0313]
导航约束松弛因素可以包括一个或多个导航约束在至少一个方面可以被暂停、改变或以其他方式松弛的任何合适的指示符。在一些实施例中,至少一个导航约束松弛因素可以包括(基于图像分析)行人的眼睛正看向主车辆的方向的确定。在这种情况下,可以更安全地假定行人意识到主车辆。因此,行人不会参与导致行人移动到主车辆路径中的意外动作的置信度可能更高。还可以使用其他约束松弛因素。例如,至少一个导航约束松弛因素可以包括:被确定为没有在移动的行人(例如,假定不太可能进入主车辆路径的行人);或者其运动被确定为正在减慢的行人。导航约束松弛因素还可以包括更复杂的动作,诸如被确定为在主车辆停住然后恢复移动后没有在移动的行人。在这种情况下,可以假设行人知道主车辆具有路权,并且行人停住可以表明行人让路给主车辆的意图。其他可能导致一个或多个约束被松弛的情况包括路缘石的类型(例如,低路缘石或具有渐变坡度的路缘石可能允许松弛的距离约束)、在人行道上缺少行人或其他对象、处于其引擎未运转的车辆可以具有松弛的距离、或者行人正背向和/或远离于主车辆驶向的区域移动的情况。
[0314]
在识别存在导航约束松弛因素(例如,在步骤1407)的情况下,可以响应于约束松弛因素的检测来确定或产生第二导航约束。该第二导航约束可以不同于第一导航约束,并且所述第二导航约束可以包括相对于第一导航约束被松弛的至少一个特性。第二导航约束可以包括基于第一约束的新生成的约束,其中所述新生成的约束包括在至少一个方面松弛第一约束的至少一个修改。可替代地,第二约束可以构成在至少一个方面比第一导航约束不那么严格的预定约束。在一些实施例中,可以保留这种第二约束,以仅用于在主车辆的环境中识别约束松弛因素的情况。无论第二约束是新生成的还是从一组完全或部分可用的预定约束中选择的,应用第二导航约束代替更严格的第一导航约束(其可以应用在没有检测到相关导航约束松弛因素的情况)可以被称为约束松弛并且可以在步骤1409中完成。
[0315]
在步骤1407检测到至少一个约束松弛因素,并且在步骤1409中已经松弛了至少一个约束的情况下,可以在步骤1411中确定主车辆的导航动作。主车辆的导航动作可以基于所识别的导航状态并且可以满足第二导航约束。可以在步骤1413通过响应于所确定的导航动作而引起对主车辆的导航致动器的至少一个调节来实施导航动作。
[0316]
如上所述,导航约束和松弛导航约束的使用可以对经训练(例如,通过机器学习)或未经训练(例如,被编程为响应于特定导航状态以预定动作来响应的导航系统)的导航系统采用。在使用经训练的导航系统的情况下,用于某些导航情况的松弛导航约束的可用性可以表示从经训练的系统响应到未经训练的系统响应的模式切换。例如,经训练的导航网络可以基于第一导航约束来确定主车辆的原始导航动作。然而,车辆采取的动作可以是与满足第一导航约束的导航动作不同的动作。相反,所采取的动作可以满足更松弛的第二导航约束,并且可以是由未经训练的系统产生的动作(例如,作为在主车辆的环境中检测到特定状况的响应,诸如导航约束松弛因素的存在)。
[0317]
有许多可以响应于在主车辆的环境中检测到约束松弛因素而被松弛的导航约束的示例。例如,在预定导航约束包括与检测到的行人相关联的缓冲区,并且缓冲区的至少一部分从检测到的行人延伸一定距离的情况下,被松弛的导航约束(新产生的、从预定集合中从存储器中调用的,或作为先前存在的约束的松弛版本生成的)可以包括不同的或修改的
缓冲区。例如,不同的或修改的缓冲区可以具有比相对于检测到的行人的原始的或未修改的缓冲区更小的相对于行人的距离。因此,在主车辆的环境中检测到适当的约束松弛因素的情况下,鉴于经松弛的约束,可以允许主车辆更靠近检测到的行人而导航。
[0318]
如上所述,导航约束的被松弛的特性可以包括与至少一个行人相关联的缓冲区的宽度减少。然而,被松弛的特性还可以包括对与目标车辆、检测到的对象、路侧障碍或在主车辆的环境中检测到的任何其他对象相关联的缓冲区的宽度减少。
[0319]
至少一个被松弛的特性还可以包括导航约束特性的其他类型的修改。例如,被松弛的特性可以包括与至少一个预定导航约束相关联的速率的增加。被松弛的特性还可以包括与至少一个预定导航约束相关联的最大可允许减速度/加速度的增加。
[0320]
尽管如上所述在某些情况下约束可以被松弛,而在其他情况下,导航约束可以被增强(augment)。例如,在一些情况下,导航系统可以确定授权(warrant)对一组正常导航约束的增强的条件。这种增强可以包括将新的约束添加到一组预定的约束或者调节预定约束的一个或多个方面。添加或调节可导致相对于在正常驾驶条件下可适用的该组预定约束而言更为保守的导航。可以授权约束增强的条件可以包括传感器故障、不利的环境条件(雨、雪、雾或与可见性降低或车辆牵引力降低相关联的其他情形)等。
[0321]
图15提供用于基于对一个或多个导航约束的增强来实施主车辆的控制的流程图。在步骤1501,至少一个处理设备可以从与主车辆相关联的相机接收表示主车辆的环境的多个图像。在步骤1503对图像的分析可以使得能够识别与主车辆相关联的导航状态。在步骤1505,至少一个处理器可以确定与主车辆的导航状态相关联的导航约束。导航约束可以包括导航状态的至少一个方面所涉及的第一预定导航约束。在步骤1507,对多个图像的分析可以揭示至少一个导航约束增强因素的存在。
[0322]
涉及的导航约束可以包括上述的(例如,关于图12)任何导航约束或任何其他合适的导航约束。导航约束增强因素可以包括一个或多个导航约束可以在至少一个方面被补充/增强的任何指示符。可以在每个组的基础上(例如,通过将新的导航约束添加到一组预定的约束)或者可以在每个约束的基础上(例如,修改特定的约束,使得经修改约束比原始约束更具限制性,或者添加对应于预定约束的新约束,其中该新约束在至少一个方面比对应约束更具限制性),来执行导航约束的补充或增强。另外或可替代地,导航约束的补充或增强可以是指基于层级从一组预定约束中进行选择。例如,一组被增强的约束可用于基于是否在主车辆的环境中或相对于主车辆检测到导航增强因素来进行选择。在没有检测到增强因素的正常情况下,则可以从适用于正常情况的约束中抽取所涉及的导航约束。另一方面,在检测到一个或多个约束增强因素的情况下,所涉及的约束可以从被增强的约束中抽取,该被增强的约束是相对于一个或多个增强因素而生成或预定的。被增强的约束在至少一个方面与正常情况下适用的对应约束相比可能更具限制性。
[0323]
在一些实施例中,至少一个导航约束增强因素可以包括在主车辆的环境中检测到(例如,基于图像分析)道路表面上存在冰、雪或水。例如,这种确定可以基于对以下的检测:反射率高于干燥道路所预期的区域(例如,指示道路上的冰或水);道路上的指示雪的存在的白色区域;道路上的与道路上存在纵向沟(例如,雪中的轮胎痕迹)一致的阴影;主车辆挡风玻璃上的水滴或冰/雪颗粒;或者道路表面上存在水或冰/雪的任何其他合适的指示符。
[0324]
至少一个导航约束增强因素还可以包括在主车辆的挡风玻璃的外表面上检测到
的颗粒。这种颗粒可能会损害与主车辆相关联的一个或多个图像捕捉设备的图像质量。虽然关于主车辆的挡风玻璃进行了描述,其与安装在主车辆的挡风玻璃后面的相机相关,但对在其他表面(例如,相机的镜头或镜头盖、前灯透镜、后挡风玻璃、尾灯透镜或对于与主车辆相关联的图像捕捉设备可见(或由传感器检测到)的主车辆的任何其他表面)上的颗粒的检测,也可指示导航约束增强因素的存在。
[0325]
导航约束增强因素也可以被检测为一个或多个图像获取设备的属性。例如,检测到的由与主车辆相关联的图像捕捉设备(例如,相机)捕捉的一个或多个图像的图像质量方面的降低,也可以构成导航约束增强因素。图像质量的下降可能与硬件故障或部分硬件故障相关联,该故障与图像捕捉设备或与图像捕捉设备相关联的组件相关联。这种图像质量的下降也可能是由环境条件引起的。例如,在主车辆周围的空气中存在烟、雾、雨、雪等也可能导致降低相对于可能存在于主车辆的环境中的道路、行人、目标车辆等的图像质量。
[0326]
导航约束增强因素还可以涉及主车辆的其它方面。例如,在一些情况下,导航约束增强因素可以包括检测到的与主车辆关联的系统或传感器的故障或部分故障。这种增强因素可以包括,例如检测到速度传感器、gps接收器、加速度计、相机、雷达、激光雷达、制动器、轮胎或与主车辆相关联的任何其他系统的故障或部分故障,该故障可影响主车辆相对于与主车辆的导航状态相关联的导航约束进行导航的能力。
[0327]
在识别导航约束增强因素的存在(例如,在步骤1507)的情况下,可以响应于检测到约束增强因素来确定或产生第二导航约束。该第二导航约束可以不同于第一导航约束,并且所述第二导航约束可以包括相对于第一导航约束被增强的至少一个特性。第二导航约束可以比第一导航约束更具限制性,因为检测到在主车辆的环境中的或者与主车辆相关联的约束增强因素可以表明主车辆可以具有至少一个相对于正常操作条件降低的导航能力。这种降低的能力可以包括较低的道路牵引力(例如,道路上的冰、雪、或水;降低的轮胎压力等);受损的视觉(例如,降低捕捉图像质量的雨、雪、沙尘、烟、雾等);受损的检测能力(例如,传感器故障或部分故障、传感器性能降低等),或主车辆响应于检测到的导航状态而导航的能力方面的任何其他降低。
[0328]
在步骤1507中检测到至少一个约束增强因素,并且在步骤1509中增强了至少一个约束的情况下,可以在步骤1511中确定主车辆的导航动作。主车辆的导航动作可以基于所识别的导航状态并且可以满足第二导航(即,被增强的)约束。可以在步骤1513通过响应于所确定的导航动作而引起对主车辆的导航致动器进行至少一个调节来实施导航动作。
[0329]
如所讨论的,导航约束和被增强的导航约束的使用可以对经训练(例如,通过机器学习)或未经训练(例如,被编程为响应于特定导航状态以预定动作来响应的系统)的导航系统采用。在使用经训练的导航系统的情况下,针对某些导航情况的被增强的导航约束的可用性可表示从经训练的系统响应到未经训练的系统响应的模式切换。例如,经训练的导航网络可以基于第一导航约束来确定主车辆的原始导航动作。然而,车辆采取的动作可以是与满足第一导航约束的导航动作不同的动作。相反,所采取的动作可以满足被增强的第二导航约束,并且可以是由未经训练的系统产生的动作(例如,作为对在主车辆的环境中检测到特定条件的响应,诸如存在导航约束增强因素)。
[0330]
有许多可以响应于在主车辆的环境中检测到约束增强因素而生成、补充或增强的导航约束的示例。例如,在预定导航约束包括与检测到的行人、对象、车辆等相关联的缓冲
区,并且缓冲区的至少一部分从检测到的行人/对象/车辆延伸一定距离的情况下,被增强的导航约束(新产生的、从预定集合中从存储器调用的,或作为先前存在的约束的增强版本而生成的)可以包括不同的或修改的缓冲区。例如,不同的或修改的缓冲区可以具有比相对于检测到的行人/对象/车辆的原始的或未修改的缓冲区而言更大的相对于行人/对象/车辆的距离。因此,在主车辆的环境中或相对于主车辆检测到适当的约束增强因素的情况下,鉴于该被增强的约束,可以强制主车辆更远离检测到的行人/对象/车辆而导航。
[0331]
至少一个被增强的特性还可以包括导航约束特性的其他类型的修改。例如,被增强的特性可以包括与至少一个预定导航约束相关联的速度的降低。被增强的特性还可以包括与至少一个预定导航约束相关联的最大可允许减速度/加速度的减小。
[0332]
基于长远规划的导航
[0333]
在一些实施例中,所公开的导航系统不仅可以对主车辆的环境中检测到的导航状态进行响应,而且还可以基于长远规划(long range planning)来确定一个或多个导航动作。例如,系统可以考虑可用作相对于检测到的导航状态进行导航的选项的一个或多个的导航动作对未来导航状态的潜在影响。考虑可用的动作对未来状态的影响可以使得导航系统不仅基于当前检测到的导航状态、而且还基于长远规划来确定导航动作。在导航系统采用一种或多种奖励函数作为从可用选项中选择导航动作的技术的情况下,使用长远规划技术的导航可能尤其适用。可以相对于可以响应于检测到的主车辆的当前导航状态而采取的可用导航动作,来分析潜在奖励。然而,进一步地,还可以相对于可以响应于未来导航状态而采取的动作,来分析潜在奖励,所述未来导航状态预计是由于对当前导航状态的可用动作而造成的。因此,所公开的导航系统在某些情况下可以响应于检测到的导航状态而从可以响应于当前导航状态而采取的可用动作之中选择导航动作,即使在所选择的导航动作可能不会产生最高的奖励的情况之下。这在系统确定以下情况时尤其正确:所选择的动作可能导致未来导航状态,该未来导航状态引起一个或多个潜在的导航动作,其中该潜在的导航动作提供比所选择的动作或者在某些情况下比相对于当前导航状态可用的任何动作更高的奖励。该原理可以更简单地表达为:为了在未来产生更高的奖励选项,而在现在采取不那么有利的动作。因此,所公开的能够进行长远规划的导航系统可以选择短期非最理想的动作,其中长期预测指示奖励的短期损失会导致长期奖励增加。
[0334]
通常,自主驾驶应用可涉及一系列规划问题,其中导航系统可以决定即时动作以便优化更长期目标。例如,当车辆在环形道处遇到并道情况时,导航系统可以决定即时加速或制动命令,以便发起到环形道的导航。虽然在环形道处对检测到的导航状态的即时动作可能涉及响应于所检测到的状态的加速或制动命令,但长期目标是成功并道,并且所选命令的长期影响是并道的成功/失败。可以通过将问题分解为两个阶段来解决规划问题。首先,监督式学习可以应用于基于现在来预测近未来(假设预测符(predictor)相对于现在的表示将是可微的)。其次,可以使用循环神经网络对作用者的完整轨迹进行建模,其中未解释的因素被建模为(加性)输入节点。这可以允许使用监督式学习技术和对循环神经网络直接优化来确定长期规划问题的解。这种方法还可以使得能够通过将对抗性要素纳入环境来学习鲁棒的策略。
[0335]
自主驾驶系统的两个最基本的要素是感测和规划。感测处理的是寻找环境的现在状态的紧凑表示,而规划处理的是决定采取何种动作以优化未来目标。监督式机器学习技
术对求解感测问题是有用的。机器学习算法框架也可以用于规划部分,尤其是强化学习(rl)框架,诸如上述那些。
[0336]
rl可以按照连续几轮(round)的顺序而执行。在第t轮,规划器(亦称作用者或驾驶策略模块803)可以观察状态s
t
∈s,其表示作用者和环境。然后其应该决定动作a
t
∈a。在执行该动作后,该作用者接收即时奖励并移至新的状态s
t+1
。作为示例,主车辆可以包括自适应巡航控制(acc)系统,其中车辆应该自主地实施加速/制动,以在保持平稳驾驶的同时保持与前车的适当距离。该状态可以被建模为一对其中x
t
是到前车的距离,v
t
是主车辆相对于前车速度的速度。所述动作将是加速命令(若a
t
<0则主车辆减速)。奖励可以是取决于|a
t
|(反映驾驶的平稳性)和s
t
(反映主车辆与前车保持安全距离)的函数。规划器的目标是使累积奖励最大化(可以直至未来奖励的时间范围或折扣后的总和)。要做到这一点,规划器可依赖策略π:s

a,其将状态映射到动作。
[0337]
监督式学习(sl)可以被看作是rl的特例,其中s
t
是从s上的一些分布中采样的,并且奖励函数可以具有r
t
=-l(a
t
,y
t
)的形式,其中l是损失函数,并且学习器观察y
t
的值,y
t
为在查看状态s
t
时要采取的最佳动作的值(可能有噪声)。通常的rl模型与特例sl之间可能存在若干差异,并且这些差异使通常的rl问题更具挑战性。
[0338]
在一些sl情况下,学习器采取的动作(或预测)可能对环境没有影响。换言之,s
t+1
和a
t
是独立的。这会有两个重要的含义。首先,在sl中,样本(s1,y1),...,(sm,ym)可以提前被收集,然后才能开始搜索相对于样本具有良好准确度的策略(或预测符)。相反,在rl中,状态s
t+1
通常取决于所采取的动作(以及之前的状态),而这又取决于用于生成该动作的策略。这将使数据生成过程束缚于策略学习过程。其次,因为在sl中动作不影响环境,所以选择a
t
对π的表现的贡献是局部的。具体而言,a
t
只影响即时奖励的值。相反,在rl中,第t轮采取的动作可能会对未来轮中的奖励值产生长期影响。
[0339]
在sl中,“正确”答案的知识y
t
、连同奖励r
t
=-l(a
t
,y
t
)的形状一起可以提供对于a
t
的所有可能的选择的奖励的全部知识,这可以使得能够计算奖励相对于a
t
的导数。相反,在rl中,奖励的“一次性”值可能是对于所采取动作的具体选择而能观察到的全部。这可以被称为“强盗(bandit)”反馈。这是需要“探索”作为长期导航规划的一部分的最重要原因之一,因为在基于rl的系统中,如果只有“强盗”反馈可用,则系统可能并不总是知道所采取的动作是否是要采取的最好的动作。
[0340]
许多rl算法至少部分地依赖于马尔可夫决策过程(mdp,markov decision process)的数学优化模型。马尔可夫假设是:给定s
t
和a
t
,s
t+1
的分布被完全确定。依据mdp状态上的稳定分布,其给出了给定策略的累积奖励的闭合解表达式。策略的稳定分布可以表示为线性规划问题的解。这产生了两类算法:1)相对于原始问题的优化,其被称为策略搜索;2)相对于双重问题的优化,其变量被称为值函数v
π
。如果mdp从初始状态s开始,并且从那里根据π来选择动作,则值函数确定预期累积奖励。相关量是状态-动作值函数q
π
(s,a),假设从状态s开始,即时选择的动作a,以及从那里根据π选择的动作,则状态-动作值函数确定累积奖励。q函数可能会引起最优策略的表征(使用贝尔曼方程)。特别是,q函数可能表明最优策略是从s到a的确定性函数(实际上,它可能被表征为相对于最优q函数的“贪婪”策略)。
[0341]
mdp模型的一个潜在优点在于其允许使用q函数将未来耦合到现在。例如,假设主车辆现在处于状态s,q
π
(s,a)的值可以指示执行动作a对未来的影响。因此,q函数可以提供动作a的质量的局部测量,从而使rl问题更类似于sl场景。
[0342]
许多rl算法以某种方式近似v函数或q函数。值迭代算法(例如q学习算法)可以依赖于以下事实:最优策略的v和q函数可以是从贝尔曼方程导出的一些运算符的固定点。行动者-评价器(actor-critic)策略迭代算法旨在以迭代的方式学习策略,其中在迭代t处,“评价器”估计并且基于该估计,“行动者”改进策略。
[0343]
尽管mdp的数学优势和切换到q函数表示的方便性,但该方法可能具有若干限制。例如,马尔可夫行为状态的近似概念可能是在某些情况下所能找到的全部。此外,状态的转变不仅取决于作用者的行为,还取决于环境中其他参与者的行为。例如,在上面提到的acc示例中,尽管自主车辆的动态可以是马尔可夫的,但下一个状态可取决于另一车辆的驾驶员的行为,而该行为不一定是马尔可夫的。对这个问题的一个可能的解决方案是使用部分观察到的mdp,其中假设:存在马尔可夫状态,但是可以看到的是根据隐藏状态而分布的观察。
[0344]
更直接的方法可以考虑mdp的博弈理论概括(例如,随机博弈框架)。事实上,用于mdp的算法可以被推广到多作用者博弈(例如,最小最大-q学习或纳什-q学习)。其他方法可包括其他参与者的显式建模以及消除遗憾(vanishing regret)学习算法。在多作用者场景中的学习可能比在单作用者场景中更复杂。
[0345]
q函数表示的第二限制可以通过偏离表格场景(tabular setting)而产生。表格场景就是当状态和动作的数量很小之时,因此q可以表示为|s|个行和|a|个列的表格。然而,如果s和a的自然表示包含欧几里得空间,并且状态和动作空间是离散的,则状态/动作的数量可能在维度上是指数的。在这种情况下,采用表格场景可能并不实际。相反,q函数可以由来自参数假设类别(例如,某个架构的神经网络)的某个函数来近似。例如,可以使用深q网络(dqn,deep-q-network)学习算法。在dqn中,状态空间可以是连续的,而动作空间可以仍然是小的离散集合。可以存在处理连续动作空间的方法,但它们可能依赖于对q函数近似。在任何情况下,q函数都可能是复杂的且对噪声敏感,因此可能会对学习带来挑战。
[0346]
不同的方法可以是使用循环神经网络(rnn,recurrent neural network)来解决rl问题。在某些情况下,rnn可以与多作用者博弈的概念和来自博弈论的对抗环境的稳健性相结合。此外,这种方法可以并不明确依赖任何马尔可夫假设。
[0347]
以下更详细地描述通过基于预测进行规划来导航的方法。在这种方法中,可以假定状态空间s是的子集,而动作空间a是的子集。这在许多应用中可能是一种自然表现。如上所述,rl和sl之间可能存在两个关键区别:(1)因为过去的动作影响未来的奖励,来自未来的信息可能需要传播回过去;(2)奖励的“强盗”本质可能模糊(状态、动作)和奖励之间的依赖性,这会使学习过程复杂化。
[0348]
作为该方法的第一步,可以观察到存在有趣的问题,其中奖励的强盗本质并不是问题。例如,acc应用的奖励值(如下面将更详细讨论的)可能相对于当前状态和动作是可微的。事实上,即使奖励是以“强盗”方式给出的,学习可微函数使得的问题可以是相对直接的sl问题(例如,一维回归问题)。因此,该方法的第一步可以是将奖
励定义为函数该函数关于s和a是可微的,或者该方法的第一步可以是使用回归学习算法,以便学习可微函数该函数至少使样本上的至少一些回归损失最小化,其中实例向量为以及目标标量为r
t
。在某些情况下,为了创建训练集,可以使用探索的元素。
[0349]
为了解决过去与未来之间的联系,可以使用类似的想法。例如,假设可以学习一个可微函数使得学习这样的函数可以表征为sl问题。可以被认为是近未来的预测符。接下来,可以使用参数函数π
θ
:s

a来描述从s映射到a的策略。将π
θ
表达为神经网络,可以使得能够使用循环神经网络(rnn)来表达运行作用者达t轮的片段,其中下一个状态被定义为此处,可由环境所定义,并可表达近未来的不可预测的方面。s
t+1
以可微方式依赖于s
t
和a
t
的事实可以使能未来的奖励值和过去的行为之间的联系。策略函数π
θ
的参数向量可以通过在所得到的rnn上进行反向传播来学习。请注意,不需要在v
t
上施加显式概率假设。特别是,不需要对于马尔可夫关系的要求。相反,可依赖循环网络在过去和未来之间传播“足够”的信息。直观地说,可以描述近未来的可预测部分,同时v
t
可以表达由于环境中其他参与者的行为而可能出现的不可预测的方面。学习系统应该学习对其他参与者的行为而言是稳健的策略。如果||v
t
||很大,过去的动作与未来的奖励值之间的联系可能会过于嘈杂,而无法学习有意义的策略。以透明的方式明确表达系统的动态可以使得更容易地结合先验知识。例如,先验知识可以简化定义的问题。
[0350]
如上所述,学习系统可受益于相对于对抗环境(诸如主车辆的环境)的鲁棒性,所述环境可包括可能以预料外的方式动作的多个其他驾驶员。在不对v
t
施加概率性假设的模型中,可以考虑其中是以对抗方式来选择v
t
的环境。在某些情况下,可以对μ
t
施加限制,否则对抗方可能会使规划问题变得困难甚至不可能。一种自然约束可能是要求由常数来限制||μ
t
||。
[0351]
针对对抗环境的鲁棒性可能在自主驾驶应用中有用。以对抗的方式选择μ
t
甚至可加快学习过程,因为它可以将学习系统专注于稳健的最佳策略。可以用简单的博弈来说明这个概念。状态为动作为即时损失函数为0.1|a
t
|+[|s
t
|-2]
+
,其中[x]
+
=max{x,0}为relu(修正线性单元)函数。下一个状态为s
t+1
=s
t
+a
t
+v
t
,其中v
t
∈[-0.5,0.5]是对于环境以对抗的方式来选择的。此处,最优策略可以写成带有relu的双层网络:a
t
=[s
t-1.5]
+
+[-s
t-1.5]
+
。观察到,当|s
t
|∈(1.5,2]时,最优动作可能比动作a=0具有更大的即时损失。因此,系统可以为未来做出规划,并且可以不仅仅依赖于即时损失。观察到,损失关于a
t
的导数为0.1sign(a
t
),并且关于s
t
的导数是1[|s
t
|>2]sign(s
t
)。在s
t
∈(1.5,2]的情况下,v
t
的对抗性选择将会设定v
t
=0.5,因此,无论何时a
t
>1.5-s
t
,在t+1轮可以有非零损失。在这种情况下,损失的导数可以直接向后传播到a
t
。因此,在a
t
的选择是非最优的情况下,v
t
的对抗性选择可以帮助导航系统获得非零后向传播消息。这种关系可以帮助导航系统基于以下预期来选择当前动作,即:预期这种当前行为(即使该行为会导致非最优奖励
甚至损失)将在未来提供导致更高的奖励的更优化的动作的机会。
[0352]
这种方法可以应用于实际上可能出现的任何导航情况。以下描述适用于一个示例的方法:自适应巡航控制(acc)。在acc问题中,主车辆可能试图与前方的目标车辆保持适当的距离(例如,到目标车辆1.5秒)。另一个目标可能是尽可能平稳地驾驶,同时保持期望的间隙。代表这种情况的模型可以如下定义。状态空间为动作空间为状态的第一坐标是目标汽车的速度,第二坐标是主车辆的速度,而最后的坐标是主车辆与目标车辆之间的距离(例如,沿道路曲线的主车辆的位置减去目标车辆的位置)。主车辆采取的动作是加速,并可以用a
t
来表示。量τ可以表示连续轮之间的时间差。虽然τ可被设置为任何合适的量,但是在一个示例中,τ可以是0.1秒。位置s
t
可以表示为并且目标车辆的(未知)加速度可以表示为
[0353]
系统的完整动态可以通过以下描述来描述:
[0354][0355]
这可以被描述为两个向量的总和:
[0356][0357]
第一向量是可预测的部分,而第二向量是不可预测的部分。第t轮的奖励定义如下:
[0358]
其中
[0359]
第一项可导致对非零加速度的惩罚,因此鼓励平稳驾驶。第二项取决于到目标汽车的距离x
t
和期望的距离之间的比率,所述期望的距离被定义为1米的距离和1.5秒刹车距离之间的最大值。在某些情况下,这个比率可能恰好为1,但只要该比率在[0.7,1.3]范围内,策略可能会放弃任何处罚,这可能会使主车辆在导航方面有所放松——可能在实现平稳的驾驶方面很重要的特性。
[0360]
实施以上概述的方法,主车辆的导航系统(例如,通过在导航系统的处理单元110内的驾驶策略模块803的操作)可以响应于观察到的状态来选择动作。所选动作可以基于不仅对与相对于感测到的导航状态可用的响应动作相关联的奖励的分析,而且还可以基于对未来状态、响应于未来状态的潜在动作和与潜在的动作相关联的奖励的考虑和分析。
[0361]
图16示出了基于检测和长远规划的导航的算法方法。例如,在步骤1601,主车辆的导航系统的至少一个处理设备110可以接收多个图像。这些图像可以捕捉表示主车辆的环境的场景,并且可以由上述任何图像捕捉设备(例如,相机、传感器等)提供。在步骤1603分析这些图像中的一个或多个可以使至少一个处理设备110能够识别与主车辆相关联的当前导航状态(如上所述)。
[0362]
在步骤1605、1607和1609,可以确定响应于感测到的导航状态的各种潜在的导航
动作。这些潜在的导航动作(例如,第一导航动作至第n可用导航动作)可以基于感测到的状态和导航系统的长远目标(例如,完成合并、平稳地跟随前车、超过目标车辆、避开道路中的对象、针对检测到的停车标志而减速、避开切入的目标车辆、或可以推进系统的导航目标的任何其他导航动作)来确定。
[0363]
对于所确定的潜在导航动作中的每个,系统可以确定预期奖励。预期奖励可以根据上述技术中的任一种来确定,并且可以包括关于一个或多个奖励函数对特定潜在动作的分析。对于在步骤1605、1607和1609中确定的每个潜在导航动作(例如,第一,第二和第n),可以分别确定预期奖励1606、1608和1610。
[0364]
在一些情况下,主车辆的导航系统可基于与预期奖励1606、1608和1610(或预期奖励的任何其他类型的指示符)相关联的值,从可用潜在动作中选择。例如,在某些情况下,可以选择产生最高预期奖励的动作。
[0365]
在其他情况下,尤其是在导航系统进行长远规划以确定主车辆的导航动作的情况下,系统可以不选择产生最高预期奖励的潜在动作。相反,系统可以展望未来以分析,如果响应于当前导航状态选择了较低的奖励动作,是否有机会在之后实现较高奖励。例如,对于在步骤1605、1607和1609处确定的任何或全部潜在动作,可以确定未来状态。在步骤1613、1615和1617确定的每个未来状态可以表示预期基于当前导航状态、由相应潜在动作(例如,在步骤1605、1607和1609确定的潜在动作)修改而得到的未来导航状态。
[0366]
对于在步骤1613、1615和1617预测的未来状态中的每个,可以确定和评估一个或多个未来动作(作为响应于确定的未来状态而可用的导航选项)。在步骤1619、1621和1623处,例如,可以(例如,基于一个或多个奖励函数)产生与一个或多个未来动作相关联的预期奖励的值或任何其他类型的指示符。可以通过比较与每个未来动作相关联的奖励函数的值或通过比较与预期奖励相关联的任何其他指示符,来评估与一个或多个未来动作相关的预期奖励。
[0367]
在步骤1625,主车辆的导航系统可基于预期奖励的比较,不仅基于相对于当前导航状态识别的潜在动作(例如,步骤1605、1607和1609中的),并且还基于作为响应于预测的未来状态可用的潜在未来动作的结果而确定的预期奖励(例如,在步骤1613、1615和1617处确定的),来选择主车辆的导航动作。在步骤1625处的选择可以基于在步骤1619、1621和1623处执行的选项和奖励分析。
[0368]
在步骤1625处对导航动作的选择可以仅基于与未来动作选项相关联的预期奖励的比较。在这种情况下,导航系统可以仅基于对从对潜在的未来导航状态的动作得到的预期奖励的比较,来选择对当前状态的动作。例如,系统可以选择在步骤1650、1610和1609处识别的、与通过在步骤1619、1621和1623处的分析确定的最高未来奖励值相关联的潜在动作。
[0369]
在步骤1625对导航动作的选择还可以仅基于当前动作选项的比较(如上所述)。在这种情况下,导航系统可以选择在步骤1605、1607或1609识别的、与最高预期奖励1606、1608或1610相关联的潜在动作。这种选择可以在很少或不考虑未来导航状态或对响应于预期未来导航状态的可用导航动作的未来预期奖励的情况下执行。
[0370]
另一方面,在一些情况下,在步骤1625对导航动作的选择可以基于与未来动作选项和当前动作选项两者相关联的预期奖励的比较。事实上,这可能是基于长远规划的导航
原理之一。例如,可以分析对未来动作的预期奖励,以确定是否有任何预期奖励可以授权响应于当前导航状态对较低的奖励动作进行的选择,以便响应于后续导航动作实现潜在的较高奖励,该后续导航动作是预期响应于未来导航状态而可用的。作为示例,预期奖励1606的值或其他指示符可以指示在奖励1606、1608和1610当中的最高预期奖励。另一方面,预期奖励1608可以指示在奖励1606、1608和1610当中的最低预期奖励。并非简单地选择在步骤1605确定的潜在动作(即,引起最高预期奖励1606的动作),可以将未来状态、潜在的未来动作、以及未来奖励的分析用于在步骤1625进行导航动作选择。在一个示例中,可以确定在步骤1621识别的奖励(响应于对步骤1615确定的未来状态的至少一个未来动作,而步骤1615确定的未来状态是基于步骤1607中确定的第二潜在动作的)可以高于预期奖励1606。基于该比较,可以选择在步骤1607确定的第二潜在动作,而不是在步骤1605确定的第一潜在动作,尽管预期奖励1606高于预期奖励1608。在一个示例中,在步骤1605确定的潜在导航动作可以包括在检测到的目标车辆前面的并道,而在步骤1607确定的潜在导航动作可以包括在目标车辆后面的并道。尽管在目标车辆前面并道的预期奖励1606可能高于与在目标车辆后面并道相关联的预期奖励1608,但可以确定在目标车辆后面并道可能导致一未来状态,对于该未来状态可能存在产生比预期奖励1606、1608或基于响应于当前的、感测到的导航状态的可用动作的其他奖励甚至更高的潜在奖励的动作选项。
[0371]
在步骤1625处从潜在动作之中进行选择可以基于预期奖励的任何合适的比较(或将与一个潜在动作相关联的益处的任何其他度量或指示符彼此比较)。在一些情况下,如上所述,如果预计第二潜在动作要提供与高于与第一潜在动作相关联的奖励的预期奖励相关联的至少一个未来动作,则可以越过第一潜在动作而选择第二潜在动作。在其他情况下,可以采用更复杂的比较。例如,与响应于预计的未来状态的动作选项相关联的奖励可以与与确定的潜在动作相关联的多于一个预期奖励相比较。
[0372]
在一些情况下,如果至少一个未来动作被预期产生高于预期作为对当前状态的潜在动作的结果的任何奖励(例如,预期奖励1606、1608、1610等)的奖励时,则基于预计的未来状态的动作和预期奖励可以影响对当前状态的潜在动作的选择。在某些情况下,产生最高的预期奖励(例如,从与对感测到的当前状态的潜在动作相关联的预期奖励、以及从与相对于潜在未来导航状态的潜在未来动作选项相关联的预期奖励当中)的未来动作选项可以用作选择对当前导航状态的潜在动作的指导。也就是说,在识别产生最高预期奖励(或者高于预定阈值的奖励等)的未来动作选项之后,在步骤1625可以选择将导致与识别的、产生最高的预期奖励的未来动作相关联的未来状态的潜在动作。
[0373]
在其他情况下,可以基于预期奖励之间确定的差,来进行可用动作的选择。例如,如果与在步骤1621确定的未来动作相关联的预期奖励与预期奖励1606之间的差大于预期奖励1608与预期奖励1606之间的差(假设正符号的差),则可以选择在步骤1607确定的第二潜在动作。在另一个示例中,如果与在步骤1621确定的未来动作相关联的预期奖励和与在步骤1619确定的未来动作相关联的预期奖励之间的差大于预期奖励1608与预期奖励1606之间的差,则可以选择在步骤1607确定的第二潜在动作。
[0374]
已经描述了用于从对当前导航状态的潜在动作当中进行选择的若干示例。然而,可以使用任何其他合适的比较技术或标准,用于通过基于延伸到预计的未来状态的动作和奖励分析的长远规划来选择可用动作。此外,虽然图16表示长远规划分析中的两个层(例
如,第一层考虑对当前状态的潜在动作产生的奖励,而第二层考虑响应于预计的未来状态的未来动作选项产生的奖励),然而,基于更多层的分析可以是能够的。例如,不是将长远规划分析基于一个或两个层,而是可以使用三层、四层或更多层分析来从响应于当前的导航状态的可用潜在动作当中选择。
[0375]
在从响应于感测到的导航状态的潜在动作当中进行选择之后,在步骤1627,至少一个处理器可以响应于所选择的潜在导航而引起对主车辆的导航致动器的至少一个调节动作。导航致动器可以包括用于控制主车辆的至少一个方面的任何合适的装置。例如,导航致动器可以包括转向机构、制动器或加速器中的至少一个。
[0376]
基于推断的其他方侵略的导航
[0377]
可以通过分析获取的图像流来监视目标车辆,以确定驾驶侵略的指示符。本文将侵略描述为定性或定量参数,但可以使用其他特性:注意力的感知等级(驾驶员的潜在损伤、手机造成分心、睡着等)。在一些情况下,目标车辆可以被认为具有防御性姿势,并且在一些情况下,可以确定目标车辆具有更具侵略性姿势。基于侵略指示符可以选择或产生导航动作。例如,在一些情况下,可以跟踪相对于主车辆的相对速度、相对加速度、相对加速度的增加、跟随距离等,以确定目标车辆是侵略性的还是防御性的。例如,如果目标车辆被确定为具有超过阈值的侵略等级,则主车辆可能倾向于让路给目标车辆。还可以基于确定的目标车辆相对于目标车辆的路径中或其附近的一个或多个障碍物(例如,前方车辆、道路上的障碍物、交通灯等)的行为,来辨别目标车辆的侵略等级。
[0378]
作为对这个概念的介绍,将相对于主车辆并道至环形道来描述示例性实验,其中导航目标是穿过环形道并从环形道出去。该情况可以以主车辆接近环形道的入口开始,并且可以以主车辆到达环形道的出口(例如,第二出口)结束。可以基于主车辆是否始终与所有其他车辆保持安全距离、主车辆是否尽快完成路线、以及主车辆是否遵循平稳的加速策略来衡量成功。在这个示例中,n
t
个目标车辆可以随机置于环形道上。为了对对抗和典型行为的混合进行建模,在概率p下,目标车辆可以通过“侵略性”驾驶策略来建模,使得侵略性的目标车辆在主车辆试图在目标车辆前方并道时加速。在概率1-p下,目标车辆可以通过“防御性”驾驶策略来建模,使得目标车辆减速并让主车辆并道。在该实验中,p=0.5,并且可以不为主车辆的导航系统提供关于其他驾驶员的类型的信息。可以在片段开始时随机选择其他驾驶员的类型。
[0379]
导航状态可以表示为主车辆(作用者)的速度和位置、以及目标车辆的位置、速度和加速度。保持目标加速度观察可能很重要,以便基于当前状态区分侵略性和防御性的驾驶员。所有目标车辆都可能沿着环形路径为轮廓的一维曲线移动。主车辆可以在其自身的一维曲线移动,该曲线在并道点处与目标车辆的曲线相交,并且该点是两条曲线的起点。为了对合理驾驶进行建模,所有车辆的加速度的绝对值可以以常数为界限。因为不允许倒退驾驶,速度也可以通过relu传递。注意,通过不允许倒退驾驶,因此长远规划可以成为必要的,因为作用者不会对其过去的行为后悔。
[0380]
如上所述,下一状态s
t+1
可被分解为可预测部分和不可预测部分v
t
的总和。表达式可以表示车辆位置和速度的动态(可以以可微分的方式良好地定义),同时v
t
可以表示目标车辆的加速度。可以验证,可以表示为relu函数在仿射变换上的
组合,因此其相对于s
t
和a
t
是可微的。该向量v
t
可以由模拟器以不可微的方式来定义,并且可以对一些目标实施侵略性行为并对其他目标实施防御性行为。在图17a和17b中示出了来自这种模拟器的两个帧。在这个示例性实验中,主车辆1701学习到在它接近环形道的入口时减速。它还学习到为侵略性车辆(例如,车辆1703和1705)让路,并且在防御性车辆(例如,车辆1706、1708和1710)前方并道时安全地继续行驶。在由图17a和17b表示的示例中,没有为主车辆1701的导航系统提供目标车辆的类型。而是,通过基于观察到的(例如,目标车辆的)位置和加速度的推断,来确定特定车辆是否被确定为侵略性或防御性的。在图17a中,基于位置、速度和/或相对加速度,主车辆1701可以确定车辆1703具有侵略性的倾向,并且因此主车辆1701可以停下并等待目标车辆1703通过而不是尝试在目标车辆1703的前方并道。然而,在图17b中,目标车辆1701辨识出在车辆1703后面行驶的目标车辆1710展现出防御性的倾向(同样基于观察到的车辆1710的位置、速度和/或相对加速度),因此完成了在目标车辆1710前方以及目标车辆1703后方的成功并道。
[0381]
图18提供了表示用于基于预测的其他车辆的侵略来导航主车辆的示例性算法的流程图。在图18的示例中,可以基于相对于目标车辆的环境中的对象所观察到目标车辆的行为,来推断与至少一个目标车辆相关联的侵略等级。例如,在步骤1801,主车辆导航系统的至少一个处理设备(例如,处理设备110)可以从与主车辆相关联的相机接收表示主车辆的环境的多个图像。在步骤1803,对一个或多个所接收的图像的分析可以使至少一个处理器能够识别主车辆1701的环境中的目标车辆(例如,车辆1703)。在步骤1805,对一个或多个所接收的图像的分析可以使至少一个处理设备能够在主车辆的环境中识别目标车辆的至少一个障碍物。所述对象可以包括道路中的碎片、停车灯/交通灯、行人、另一车辆(例如,在目标车辆前方行驶的车辆、停放的车辆等)、道路中的箱子、路障、路缘或可能在主车辆的环境中遇到的任何其他类型的对象。在步骤1807,对一个或多个接收的图像的分析可以使至少一个处理设备能够确定目标车辆相对于目标车辆的至少一个识别的障碍物的至少一个导航特性。
[0382]
可以使用各种导航特性来推断检测到的目标车辆的侵略等级,以便产生对目标车辆的适当的导航响应。例如,这种导航特性可以包括目标车辆与至少一个识别的障碍物之间的相对加速度、目标车辆距障碍物的距离(例如,目标车辆在另一车辆后面的跟随距离)、和/或目标车辆与障碍物之间的相对速度等。
[0383]
在一些实施例中,可以基于来自与主车辆相关联的传感器(例如雷达、速度传感器、gps等)的输出来确定目标车辆的导航特性。然而,在一些情况下,可以部分地或完全地基于对主车辆的环境的图像的分析来确定目标车辆的导航特性。例如,上文所述和在例如通过引用合并如此处的美国专利号9,168,868中描述的图像分析技术可以用于识别主车辆的环境内的目标车辆。并且,随着时间的推移监视目标车辆在捕捉图像中的位置和/或监视与目标车辆相关联的一个或多个特征(例如,尾灯、头灯、保险杠、车轮等)在捕捉图像中的位置,可以使得能够确定目标车辆与主车辆之间或者目标车辆与主车辆的环境中的一个或多个其它对象之间的相对距离、速度和/或加速度。
[0384]
可以从目标车辆的任何合适的观察到的导航特性或观察到的导航特性的任何组合中推断所识别的目标车辆的侵略等级。例如,可以基于任何观察到的特性和一个或多个预定阈值等级或任何其他合适的定性或定量分析,作出对侵略性的确定。在一些实施例中,
如果目标车辆被观察到以小于预定侵略性距离阈值的距离跟随主车辆或另一车辆,则目标车辆可被认为是侵略性的。另一方面,被观察到以大于预定防御性距离阈值的距离跟随主车辆或另一车辆的目标车辆可被认为是防御性的。预定侵略性距离阈值不需要与预定防御性距离阈值相同。另外,预定侵略性距离阈值和预定防御性距离阈值中的任一个或两者可以包括值的范围,而不是分界值(bright line value)。此外,预定侵略性距离阈值和预定防御性距离阈值都不必被固定。相反,这些值或值的范围可以随时间而改变,并且可以基于观察到的目标车辆的特性来应用不同的阈值/阈值的范围。例如,所应用的阈值可以取决于目标车辆的一个或多个其他特性。较高的所观察到的相对速度和/或加速度可以授权应用较大的阈值/范围。相反,较低的相对速度和/或加速度(包括零相对速度和/或加速度)可以授权在进行侵略性/防御性推断时应用较小的距离阈值/范围。
[0385]
侵略性/防御性推断也可以基于相对速度和/或相对加速度阈值。如果观察到的目标车辆相对于另一车辆的相对速度和/或相对加速度超过预定等级或范围,则该目标车辆可被认为是侵略性的。如果观察到的目标车辆相对于另一车辆的相对速度和/或相对加速度低于预定水平或范围,则该目标车辆可被认为是防御性的。
[0386]
尽管可以仅基于任何观察到的导航特性来进行侵略性/防御性确定,但该确定还可以取决于观察到的特性的任何组合。例如,如上所述,在一些情况下,目标车辆可以仅基于观察到其正在以某个阈值或范围以下的距离跟随另一车辆而被认为是侵略性的。然而,在其他情况下,如果目标车辆以小于预定量(其可以与仅基于距离进行确定时应用的阈值相同或不同)并且具有大于预定量或范围的相对速度和/或相对加速度跟随另一车辆,则该目标车辆可以被认为是侵略性的。类似地,目标车辆可以仅基于观察到其正在以大于某个阈值或范围的距离跟随另一车辆而被认为是防御性的。然而,在其他情况下,如果目标车辆以大于预定量(其可以与仅基于距离进行确定时应用的阈值相同或不同)并且具有小于预定量或范围的相对速度和/或相对加速度跟随另一车辆,则该目标车辆可以被认为是防御性的。如果例如车辆超过0.5g加速度或减速度(例如,加速度变化率(jerk)为5米每三次方秒(m/s3))、车辆在车道变换或曲线上具有0.5g的横向加速度、一车辆导致另一车辆进行上述任何一项、车辆改变车道并导致另一车辆以0.3g减速度或3m/s3的加速度变化率以上进行让路、和/或车辆在不停的情况下改变两条车道,则系统100可以得出侵略性/防御性。
[0387]
应该理解的是,对超过一范围的量的引用可以指示该量超过与该范围相关联的所有值或落入该范围内。类似地,对低于一范围的量的引用可以指示该量低于与该范围相关的所有值或落入该范围内。另外,尽管相对于距离、相对加速度和相对速度描述了用于进行侵略性/防御性推断的示例,但是可以使用任何其他合适的量。例如,可以使用对要发生碰撞的时间的计算、或者目标车辆的距离、加速度和/或速度的任何间接指示符。还应该注意的是,尽管上述示例关注于相对于其他车辆的目标车辆,但是可以通过观察目标车辆相对于任何其他类型的障碍物(例如,行人、路障、交通灯、碎片等)的导航特性来进行侵略性/防御性推断。
[0388]
回到图17a和17b所示的示例,当主车辆1701接近环形道时,导航系统(包括它的至少一个处理设备)可以接收来自与主车辆相关联的相机的图像流。基于对一个或多个接收的图像的分析,可以识别目标车辆1703、1705、1706、1708和1710中的任何一个。此外,导航系统可以分析一个或多个识别的目标车辆的导航特性。导航系统可以辨识到目标车辆1703
与1705之间的间隙表示潜在并道至环形道的第一机会。导航系统可以分析目标车辆1703以确定与目标车辆1703相关联的侵略指示符。如果目标车辆1703被认为是侵略性的,则主车辆导航系统可以选择为车辆1703让路而不是在车辆1703前方并道。另一方面,如果目标车辆1703被认为是防御性的,则主车辆导航系统可以尝试在车辆1703前完成并道动作。
[0389]
当主车辆1701接近环形道时,导航系统的至少一个处理设备可以分析所捕捉的图像以确定与目标车辆1703相关联的导航特性。例如,基于图像,其可以确定车辆1703以一距离跟随车辆1705,该距离为主车辆1701安全进入提供足够的间隙。事实上,可以确定车辆1703以超过侵略性距离阈值的距离跟随车辆1705,并且因此基于该信息,主车辆导航系统可以倾向于将目标车辆1703识别为防御性的。然而,在一些情况下,如上所述,可以在进行侵略性/防御性确定时,分析目标车辆的多于一个的导航特性。进一步分析,主车辆导航系统可以确定,当目标车辆1703以非侵略距离在目标车辆1705后面跟随时,车辆1703相对于车辆1705具有超过与侵略性行为相关联的一个或多个阈值的相对速度和/或相对加速度。实际上,主车辆1701可以确定目标车辆1703相对于车辆1705正在加速,并且靠近存在于车辆1703与1705之间的间隙。基于对相对速度、加速度和距离(以及甚至是车辆1703与1705之间的间隙正在靠近的速率)的进一步分析,主车辆1701可以确定目标车辆1703正在侵略性地表现行为。因此,虽然可能存在主车辆可以安全地导航进入的足够间隙,但主车辆1701可以预期在目标车辆1703前方的并道将导致在主车辆紧后面的侵略性地导航的车辆。此外,基于通过图像分析或其他传感器输出观察到的行为,目标车辆1703可以被预期为:如果主车辆1701要在车辆1703的前方并道,则目标车辆1703将继续加速朝向主车辆1701或者以非零相对速度继续朝向主车辆1701行驶。从安全角度来看,这种情况可能是不希望的,并且也可能导致主车辆的乘客不适。出于这种原因,如图17b所示,主车辆1701可以选择为车辆1703让路,并且在车辆1703后面并且在车辆1710的前方并道至环形路,该车辆1710基于对其一个或多个导航特性的分析而被视为是防御性的。
[0390]
回到图18,在步骤1809,主车辆的导航系统的至少一个处理设备可以基于识别的目标车辆相对于识别的障碍物的至少一个导航特性,来确定主车辆的导航动作(例如,在车辆1710的前方和车辆1703的后方并道)。为了实施该导航动作(在步骤1811),至少一个处理设备可以响应于所确定的导航动作引起对主车辆的导航致动器的至少一个调节。例如,可以施加制动以便让路给图17a中的车辆1703,并且加速器可以与主车辆的车轮的转向一起应用以便使主车辆在车辆1703后面进入环形交叉口,如图17b所示。
[0391]
如以上示例中所述,主车辆的导航可以基于目标车辆相对于另一车辆或对象的导航特性。另外,主车辆的导航可以仅基于目标车辆的导航特性而不特别参考另一车辆或对象。例如,在图18的步骤1807处,对从主车辆的环境捕捉的多个图像的分析可以使得能够确定识别的目标车辆的至少一个导航特性,该导航特性指示与目标车辆相关联的侵略等级。导航特性可以包括速度、加速度等,其不需要相对于另一对象或目标车辆进行参考,以便进行侵略性/防御性的确定。例如,观察到的与目标车辆相关联的超过预定阈值或落入或超过数值范围的加速度和/或速度可以指示侵略性行为。相反,观察到的与目标车辆相关联的低于预定阈值或落入或超过数值范围的加速度和/或速度可以指示防御性行为。
[0392]
当然,在一些情况下,为了进行侵略性/防御性的确定,可以相对于主车辆来参考所观察到的导航特性(例如,位置、距离、加速度等)。例如,观察到的目标车辆的指示与目标
车辆相关联的侵略等级的导航特性可以包括目标车辆与主车辆之间的相对加速度的增加、主车辆后方目标车辆的跟随距离、目标车辆与主车辆之间的相对速度等。
[0393]
基于事故责任(liability)约束的导航
[0394]
如以上各节所述,可以针对预定的约束来测试规划导航动作,以确保符合某些规则。在一些实施例中,这个概念可以扩展到潜在事故责任的考虑。如下所述,自主导航的主要目标是安全。由于绝对安全可能是不可能的(例如,至少因为处于自主控制下的特定主车辆不能控制其周围的其他车辆——它只能控制其自身的动作),在自主导航中使用潜在事故责任作为考虑因素,并且实际上作为对规划动作的约束,可有助于确保特定的自主车辆不采取任何被认为不安全的动作——例如,潜在事故责任可能附给主车辆上的那些动作。如果主车辆仅采取安全的并且被确定不会导致主车辆自身过错(fault)或责任的事故的动作,那么可以实现期望的事故避免等级(例如,每小时驾驶少于10-9
)。
[0395]
大多数当前的自主驾驶方法带来的挑战包括缺乏安全保证(或至少无法提供期望的安全等级),以及也缺乏可扩展性。考虑保证多作用者(multi-agent)安全驾驶的问题。由于社会不太可能容忍机器造成的道路事故死亡,因此可接受的安全等级对于接受自主车辆至关重要。虽然目标可能是提供零事故,但这可能是不可能的,因为事故中通常涉及多个作用者,并且可以设想事故完全是由于其他作用者的责任而发生的情况。例如,如图19所示,主车辆1901在多车道高速公路上驾驶,虽然主车辆1901可以控制其自身相对于目标车辆1903、1905、1907和1909的动作,但是它不能控制其周围的目标车辆的动作。结果,如果车辆1905例如在与主车辆的碰撞路线上突然切入主车辆的车道,主车辆1901可能无法避免与至少一个目标车辆发生事故。为了解决这一难题,自主车辆从业者的典型响应是采用统计数据驱动的方法,在这种方法中,随着更多里程上的数据被收集,安全验证变得更加严格。
[0396]
然而,为理解针对安全的数据驱动方法的问题本质,首先要考虑的是,已知每小时(人类)驾驶的事故引起的死亡的概率为10-6
。合理的假设是,为了使社会接受机器在驾驶任务中代替人类,死亡率应该降低三个数量级,即降低到每小时10-9
的概率。这一估计与假设的气囊死亡率相似并且来自航空标准。例如,10-9
是机翼在半空中自发脱离飞机的概率。然而,试图使用通过累积驾驶里程提供额外的置信度的、数据驱动的统计方法来保证安全是不实际的。保证每小时驾驶10-9
的死亡概率所需的数据量与其倒数(即109小时的数据)成比例,其大约为300亿英里的量级。此外,多作用者系统与其环境交互,并且可能无法离线验证(除非有逼真模拟器是可用的,该逼真模拟器以其全部的丰富性和复杂性来模拟真实人类驾驶(诸如鲁莽的驾驶)——但是验证该模拟器的问题甚至比创建安全的自主车辆作用者还要困难)。对规划和控制软件的任何改变都将需要同样量级的新数据收集,这显然是不实用和不切实际的。此外,通过数据开发系统总是遭受缺乏对被采取动作的可解译性(interpretability)和可解释性(explainability)——如果自主车辆(autonomous vehicle,av)发生事故导致死亡,我们需要知道原因。因此,需要一种针对安全的基于模型的方法,但是汽车工业中现有的“功能安全”和asil要求并不是为了应对多作用者环境而设计的。
[0397]
为自主车辆开发安全驾驶模型的第二主要挑战是对可扩展性的需求。av的前提不仅仅是“建设更美好的世界”,而是基于这样一个前提,即没有驾驶员的移动性可以以比有驾驶员的移动性更低的成本得以维持。这一前提总是与可扩展性的概念相结合——即,支
持av的大规模生产(以百万计),并且更重要的是支持可以忽略不计的增量成本,以便能够在新的城市驾驶。因此,计算和感测的成本确实很重要,如果要大规模制造av,验证的成本和在“每个地方”驾驶而不是在选择的少数几个城市驾驶的能力也是维持业务的必要要求。
[0398]
大多数当前方法的问题在于沿着三个轴的“蛮力”心态:(i)所需的“计算密度”,(ii)高清地图被定义和创建的方式,以及(iii)传感器的所需规格。蛮力方法与可扩展性背道而驰,并将重心转移到不受限的车载计算无处不在的未来,在未来,构建和维护hd地图的成本变得可忽略不计且可扩展,奇异的超高级传感器将被开发、生产到汽车级并且成本可以忽略不计。实现上述任何一种情况的未来确实是可能的,但使上述所有情况成立很可能是低概率事件。因此,有必要提供一种形式(formal)模型,将安全和可扩展性结合成社会可以接受的、并且在支持数百万辆汽车在发达国家的任何地方驾驶的意义上是可扩展的av程序。
[0399]
所公开的实施例表示了一种解决方案,该解决方案可以提供目标安全等级(或者甚至可以超过安全目标),并且还可以扩展到包括数百万辆(或更多)自主车辆的系统。在安全方面,引入被称为“责任敏感安全性(responsibility sensitive safety,rss)”的模型,该模型将“事故归责”的概念形式化,是可解译和可解释的,并将“责任”观念合并到机器人作用者的动作中。rss的定义对实施它的方式是不可知的——这是促进创建令人信服的全局安全模型的目标的关键特征。rss的动机是,观察到(如图19所示)作用者在事故中起着不对称的作用,在该事故中通常只有其中一个作用者对事故有责任并且因此要对该事故负责。rss模型还包括在有限的感测条件下对“谨慎驾驶”的形式处理,在这种条件下,并非所有的作用者都总是可见的(例如,由于遮挡)。rss模型的一个主要目标是保证作用者永远不会发生“归责”给它或它要负责的事故。只有当模型带有符合rss的有效策略(例如,将“感测状态”映射到动作的功能)时,它才可能有用。例如,当前时刻看似无辜的动作可能会在遥远的将来导致灾难性事件(“蝴蝶效应”)。rss可有助于在短期的将来构建一组局部约束,这些约束可以保证(或至少实际上保证)未来不会因主车辆的动作而发生事故。
[0400]
另一贡献围绕“语义(semantic)”语言的引入而进展,该“语义”语言包括单位、测量和动作空间,以及如何将它们合并到av的规划、感测和致动中的规范。为了获得语义观念,在此上下文中,考虑参加驾驶课程的人是如何被指导去思考“驾驶策略”的。这些指令不是几何的——它们不采取“以当前速度行驶13.7米,然后以0.8m/s2的速率加速”的形式。相反,这些指令是语义性质的——“跟随你前面的车”或“在你左侧超过那辆车”。人类驾驶策略的典型语言是关于纵向和横向目标,而不是通过加速度矢量的几何单位。形式化的语义语言在多个方面可能是有用的,这些方面涉及不随时间和作用者数量成指数级比例增加的规划的计算复杂性、安全和舒适交互的方式、对感测的计算进行定义的方式、传感器模态的规格以及它们在融合方法中如何交互。(基于语义语言的)融合方法可以确保rss模型只对量级为105小时的驾驶数据的数据集执行离线验证,即可实现所需的每一小时驾驶10-9
的死亡概率。
[0401]
例如,在强化学习设置中,可以在语义空间上定义q函数(例如,对当作用者处于状态s∈s时,执行动作a∈a的长期质量进行评估的函数;给定这样的q函数,动作的自然选择可以是挑选具有最高质量的动作π(s)=argmax
a q(s,a)),在该语义空间中,在任何给定时间要检查的轨迹的数量以104界定,而不管用于规划的时间范围。这个空间中的信噪比可能
是高的,允许有效的机器学习方法成功地对q函数建模。在对感测进行计算的情况下,语义可以允许区分影响安全的错误和影响驾驶舒适性的错误。我们定义用于感测的pac模型(可能近似正确(probably approximate correct,pac),借用了valiant的pac学习术语),将该模型与q函数相配合,并展示了测量错误是如何以符合rss同时又能允许优化驾驶舒适性的方式合并到规划的。语义语言对于该模型的某些方面的成功可能很重要,因为误差(诸如相对于全局坐标系统的误差)的其他标准测量可能不符合pac感测模型。此外,语义语言可能是定义hd地图的重要促成因素,hd地图可以使用低带宽感测数据构建,从而通过众包(crowdsourcing)来构建并支持可扩展性。
[0402]
总而言之,所公开的实施例可以包括涵盖av的以下重要成分的形式模型:感测、规划和行动。该模型可能有助于确保从规划的角度来看,不会发生av自身责任的事故。并且通过pac感测模型,即使存在感测误差,所描述的融合方法也可能只需要非常合理量级的离线数据收集以符合所描述的安全模型。此外,该模型可以通过语义语言将安全和可扩展性配合在一起,从而为安全和可扩展的av提供完整的方法。最后,值得注意的是,制定将会被业界和监管机构采用的被接受的安全模型可能是av成功的必要条件。
[0403]
rss模型通常遵循经典的感测-规划-行动机器人控制方法。感测系统可以负责理解主车辆环境的当前状态。规划部分可以被称为“驾驶策略”,并且可以由一组硬编码指令、通过经训练的系统(例如,神经网络)或组合来实施,该规划部分可以负责根据用于实现驾驶目标(例如,如何从左车道移动到右车道以便离开高速公路)的可用选项来确定最佳的下一步移动是什么。行动部分负责实施规划(例如,用于对车辆进行转向、加速和/或制动等以便实施所选择的导航动作的致动器和一个或多个控制器的系统)。下面描述的实施例主要集中在感测和规划部分。
[0404]
事故可能源于感测误差或规划误差。规划是多作用者的努力,因为还有其他道路使用者(人和机器)对av的动作做出反应。所描述的rss模型被设计为解决规划部分的安全等问题。这可以被称为多作用者安全。在统计方法中,对规划误差的概率的估计可以“在线”完成。也就是说,软件每次更新后,必须用新版本驾驶数十亿英里,以提供对规划误差的频率的可接受等级的估计。这显然是不可行的。作为一种替代,rss模型可以对规划模块不会犯归责给av的错误(形式上定义了“归责”的概念)提供100%的保证(或几乎100%的保证)。rss模型还可以提供一种不依赖于在线测试的用于其验证的有效方法。
[0405]
感测系统中的误差可能更容易验证,因为感测可以独立于车辆动作,且因此我们可以使用“离线”数据来验证严重感测误差的概率。但是,即使收集超过109小时驾驶的离线数据,也很有挑战性。作为所公开的感测系统的描述的一部分,描述了一种融合方法,其可以使用显著更少量的数据来验证。
[0406]
所描述的rss系统也可以扩展到数百万辆汽车。例如,所描述的语义驾驶策略和所应用的安全约束可以与即使在当今的技术中也能扩展到数百万辆汽车的感测和映射(mapping)要求相一致。
[0407]
这样的系统的基础构造块是彻底的安全定义,即av系统可能需要遵守的最低标准。在下面的技术引理中,用来验证av系统的统计方法被证明是不可行的,即使是用于验证简单的声明:诸如“系统每小时发生n起事故”。这意味着,基于模型的安全定义是用于验证av系统的唯一可行工具。
[0408]
引理1令x为概率空间,并且a为pr(a)=p1《0.1的事件。假设我们从x采样(i.i.d.)个样本,并且令那么
[0409]
pr(z=0)≥e-2

[0410]
证明我们使用不等式1-x≥e-2x
(在附录a.1中证明了完整性),得到
[0411][0412]
推论1假设av系统av1以很小但不足(small yet insufficient)的概率p1发生事故。被给予1/p1个样本的任何确定性验证程序都将以恒定的概率无法区分av1和从不发生事故的不同av系统av0。
[0413]
为了获得对这些概率的典型值的透视,假设我们希望事故概率为每小时10-9
,而某个av系统提供仅10-8
的概率。即使该系统获得了108小时的驾驶,仍有恒定的概率该验证过程将无法指示该系统是危险的。
[0414]
最后,请注意,该困难在于使单一、特定、危险的av系统无效。完整的解决方案(solution)不能被看作是单一的系统,因为需要新的版本、错误修正和更新。从验证器的角度来看,每一次改变,甚至是单行代码的改变,都会生成新的系统。因此,一个经过统计验证的解决方案,必须在每次小的修正或改变后通过新的样本在线验证,以应对新系统观察到和得出的状态分布的偏移。重复且系统地获得如此大量的样本(并且即使如此,也有恒定的概率无法验证系统)是不可行的。
[0415]
此外,任何统计性的声明都必须被形式化来进行衡量。声明一系统发生的事故的数量的统计属性比声明“它以安全的方式驾驶”要弱得多。为了说明这一点,必须从形式上定义什么是安全。
[0416]
绝对安全是不可能的
[0417]
如果在未来某个时间没有事故跟随动作a发生,则汽车c采取的动作a可以被认为是绝对安全的。通过观察例如如图19所描绘的简单的驾驶场景,可以看出,是不可能实现绝对安全的。从车辆1901的角度来看,没有任何动作可以确保周围的车辆不会撞上它。通过禁止自主汽车处于这种情况来解决这个问题也是不可能的。由于每条有两条以上车道的高速公路都会在某一点导致这种场景,禁止这种场景相当于要求留在车库里。乍一看,这种暗示可能看起来令人失望。没有什么是绝对安全的。然而,如上所述,对绝对安全的这种要求可能过于苛刻,事实证明人类驾驶员并不遵守绝对安全的要求。相反,人类根据依赖于责任的安全理念行事。
[0418]
责任敏感安全性(rss)
[0419]
绝对安全概念中缺少的重要方面是大多数事故的不对称——通常是其中一个驾驶员对撞车负责,并且要被归责。在图19的示例中,如果例如左侧汽车1909突然驶入中央汽车1901,则中央汽车1901不应被归责。为了将考虑到其缺乏责任的事实形式化,av 1901待在自己车道上的行为可以被认为是安全的。为此,描述了“事故归责(accident blame)”或事故责任的形式概念,其可以作为安全驾驶方法的前提。
[0420]
作为示例,考虑两辆汽车cf、cr以相同的速度、一辆在另一辆后面、沿着直道行驶的简单情况。假设处于前面的汽车cf因为路上出现障碍物而突然制动并设法避开它。不幸的
是,cr没有与cf保持足够的距离,不能及时作出响应,并撞上cf的后侧。很明显,责任在于cr;后车有责任与前车保持安全距离,并为意外但合理的制动做好准备。
[0421]
接下来,考虑一系列更广泛的场景:行驶在多车道道路上,其中汽车可以自由改变车道,切入其他汽车的路径,以不同的速度行驶,等等。为了简化以下讨论,假设在平面上有一条直道,其中横向轴和纵向轴分别是x轴和y轴。在温和条件下,这可以通过定义实际弯道和直道之间的同态(homomorphism)来实现。另外,考虑离散的时间空间。定义可能有助于区分两组直观上不同的情况:不执行显著的横向操纵(lateral maneuver)的简单的情况、和涉及横向运动的更复杂的情况。
[0422]
定义1(汽车廊道(corridor))汽车c的廊道是一个范围[c
x,left
,c
x,right
]
×
[
±
∞],其中c
x,left
,c
x,right
是c的最左、最右角的位置。
[0423]
定义2(切入(cut-in))若汽车c1(例如,图20a和20b中的汽车2003)在时间t-1不与汽车c0(例如,图20a和20b中的汽车2001)的廊道相交,而在时间t与c0的廊道相交,则汽车c1在时间t切入汽车c0的廊道。
[0424]
可以在廊道的前/后部分之间作进一步区分。术语“切入方向”可以描述在相关廊道边界方向上的运动。这些定义可以定义有横向运动的情况。对于不存在这种发生的简单情况,诸如汽车跟随另一辆汽车的简单情况,定义了安全纵向距离:
[0425]
定义3(安全纵向距离(safe longitudinal distance))若对于由cf(汽车2105)执行的任何制动命令a,|a|《a
max,brake
,如果cr(汽车2103)从响应时间p应用其最大制动直到完全停止,然后其不会与cf相撞,那么汽车cr和位于cr的前方廊道的另一辆汽车cf之间的纵向距离2101(图21)关于响应时间p是安全的。
[0426]
下面的引理2计算d作为cr、cf的速度、响应时间ρ和最大加速度a
max,brake
的函数。ρ和a
max,brake
都是常数,都应通过规定被确定为一些合理的值。在进一步的示例中,响应时间ρ和最大加速度a
max,brake
中的任一个可以针对特定车辆或车辆类型进行设置,或者可以根据关于车辆条件、道路条件、用户(例如,驾驶员或乘客)偏好等的测量或以其他方式输入的参数进行调整/调节。
[0427]
引理2令cr为纵轴上在cf后面的车辆。令a
max,brake
、a
max,accel
为最大制动和最大加速度命令,并且令ρ为cr的响应时间。令υr、υf为汽车的纵向速度,并且令lf、lr为它们的长度。定义υ
p,max
=υr+ρ
·amax,accel
,并定义以及令l=(lr+lf)/2。则,cr的最小安全纵向距离为:
[0428][0429]
证明令d
t
为时间t时的距离。为了防止事故,对于每一个t,我们必须让d
t
》l。为了构造d
min
,我们需要找到对d0的最紧需的下限。显然,d0必须至少为l。只要两辆汽车在t≥ρ秒后没有停止,前一辆车的速度将为υf–
ta
max,brake
,而cr的速度的上限将为υ
ρ,max

(t

ρ)a
max,accel
。因此,在t秒后,汽车之间的距离的下限将为:
[0430][0431]
注意,tr是cr达到完全停止(速度为0)的时间,并且tf是另一车辆达到完全停止的时间。注意,a
max,brake
(tr–
tf)=υ
ρ,max

υf+ρa
max,brake
,所以如果tr≤tf,要求d0》l就足够了。如果tr》tf,则
[0432][0433]
要求d
tr
》l并重新排列项就可以得出证明的结论。
[0434]
最后,定义了一个比较运算符,它允许带有一些“余量”的概念进行比较:当比较长度、速度等时,有必要接受非常相似的量为“相等”。
[0435]
定义4(μ-比较(μ-comparison))两个数字a、b的μ-比较为:若a》b+μ则a》
μ
b;若a《b

μ则a《
μ
b;若|a

b|≤μ则a=
μ
b。
[0436]
下面的比较(argmin、argmax等)是针对一些合适的μ的μ-比较。假设汽车c1、c2之间发生了事故。为了考虑谁应对事故负责,定义了需要检查的相关时刻。这是事故发生前的某个时间点,并且直观地是“不可返回的点”;在那之后,没有什么能阻止事故的发生。
[0437]
定义5(归责时间(blame time))事故的归责时间是事故发生前满足如下条件的最早时间:
[0438]
·
其中一辆汽车和另一辆汽车的廊道之间有相交(intersection),并且
[0439]
·
纵向距离不安全。
[0440]
显然存在这样的时间,因为在事故发生的时刻,两个条件都成立。归责时间可以分为两个不同的类别:
[0441]
·
一类是其中也发生了切入,即,它们是一辆汽车和另一辆汽车的廊道相交的第一时刻,并且在不安全的距离内。
[0442]
·
一类是其中不发生切入,即,已经与廊道相交了,处于安全的纵向距离,并且该距离在归责时间时已变为不安全。
[0443]
定义6(μ-横向速度失败(μ-losing by lateral velocity))假设汽车c1、c2之间发生切入。假如c1相对于切入的方向的横向速度比c2的横向速度大μ,则我们将c1称为μ-横向速度失败。
[0444]
应当注意的是速度的方向很重要:例如,速度-1、1(两辆车撞向彼此)是平局(tie),然而如果速度是1、1+μ/2,则正向朝着另一辆汽车的那辆汽车应该被归责。直觉上,这个定义允许我们归责给一辆在横向上向另一辆汽车开得很快的汽车。
[0445]
定义7((μ1,μ2)-横向位置获胜((μ1,μ2)-winning by lateral position))假设汽车c1、c2之间发生切入。假如c1相对于被切入车道的中心(最靠近被切入相关廊道的中心)的横向位置比μ1小(以绝对值),并且比c2的横向位置小μ2,则我们将c1称为(μ1,μ2)-横向位置获胜。
[0446]
直觉上,如果一辆汽车非常靠近车道中心(μ1),并且比另一辆汽车更靠近(更靠近了μ2),将不会归责给它。
[0447]
定义8(归责(blame))汽车c1、c2之间事故的归责或责任是归责时间之时的状态的
函数,并且定义如下:
[0448]
·
如果归责时间不是切入时间,则归责给后面的汽车。
[0449]
·
如果归责时间也是切入时间,则归责给两辆汽车,除非对于其中一辆汽车c1(不失一般性),对于某些预定义的μ,以下两个条件成立:
[0450]
·
它没有横向速度失败,
[0451]
·
它横向位置获胜。
[0452]
在这种情况下,c1是幸免的。换句话说,如果发生不安全的切入,两辆汽车都要被归责,除非其中一辆汽车(明显)没有更快的横向速度,并且(明显)更靠近车道中心。这样,就可以捕捉到想要的行为:如果正在跟随一辆汽车,保持安全的距离,并且如果切入一辆只在自己车道上行驶的汽车的廊道,仅在安全的距离处切入。如下文进一步讨论的,用于遵循上述安全指南的基于自动控制器的系统不应导致过度防御性驾驶。
[0453]
处理有限感测
[0454]
在考虑了高速公路的示例之后,接下来的第二示例解决了有限感测的问题。当被归责了事故时,非常常见的人类响应落入“但我没能看到他”类别。很多时候,这是真的。人类的感测能力是有限的,有时是因为把注意力集中在道路的不同部分的无意识的决定,有时是因为粗心大意,有时是因为物理限制——不可能看到藏在停着的汽车后面的行人。在这些人类限制中,先进的自动感测系统可能只受后者的制约:360
°
的道路视野以及计算机从不粗心大意的事实,使它们凌驾于人类的感测能力之上。回到“但我没能看到他”的示例,恰当的回答是“好吧,你应该更小心一点的”。为了使关于有限感测要小心的事物形式化,考虑如图22所示的场景。汽车2201(c0)正试图离开停车场,并入一条(可能)繁忙的道路,但看不到街上是否有汽车,因为它的视野被建筑2203遮挡住了。假设这是一条城市的狭窄街道,速度限制为30公里/小时。人类驾驶员的行为是慢慢并入道路,获得越来越多的视场,直到感测限制消除。应该定义一个重要的时刻——被遮挡对象暴露给我们的第一时间;在其暴露后,人们就像能感测到的任何其他对象一样来处理它。
[0455]
定义9(暴露时间(exposure time))对象的暴露时间是我们看到它的第一时间。
[0456]
定义10(由于不合理的速度的归责)假设在暴露时间或暴露时间之后,汽车c1(汽车2205)以速度υ》υ
limit
行驶,并且c0没有以速度υ》υ
limit
行驶。那么,只归责给c1上。我们说c1由于不合理的速度而被归责。
[0457]
这个扩展允许c0安全地离开停车场。使用我们先前的责任敏感安全性定义以及动态υ
limit
定义(其使用道路条件和速度限制,加上合理的余量),仅仅需要做的是检查在最坏的情况下,如图所示,切入是否在安全的纵向距离内,同时假设c1不会超过υ
limit
。直觉上,这鼓励c0开得更慢且距障碍物更远,从而慢慢增加其视场,之后允许安全地并入街道。
[0458]
将事故责任定义扩展到有限感测这一基本情况后,一系列扩展可以解决类似的情况。关于什么可以被遮挡(一辆潜在的快速汽车不会在两辆停得很近的汽车之间被遮挡,但是行人能被遮挡)、以及它能执行的何种最坏情况操纵(行人的υ
limit
比汽车的υ
limit
小得多)的简单假设,意味着对驾驶的限制——必须做好最坏的准备,并且有能力在暴露时间突然到来时做出响应。在城市场景中,可以从可能被停放的汽车遮挡的行人的场景中举出更详细的示例。与行人发生的事故的事故归责可定义为:
[0459]
定义11(行人事故归责(accident-with-pedestrian blame))行人事故归责总是
在汽车上,除非以下三种情况之一成立:
[0460]
·
汽车以汽车的侧面撞击行人,并且汽车关于撞击方向的横向速度小于μ。
[0461]
·
行人在暴露时间或之后的速度大于υ
limit

[0462]
·
汽车处于完全停止。
[0463]
非形式上地,只有当行人撞向汽车的侧面,而汽车没有以比μ快的速度驶向行人,或者如果汽车是处于停止的,或者如果行人在某个方向(不一定是撞击方向)超出常人地快速跑,汽车才不被归责。
[0464]
尽管所描述的系统可能无法确保绝对安全,但它可能会导致在自主车辆当中很少(如果有的话)事故发生的情况。例如,在所有的汽车(和其他道路使用者)能够成功地验证他们不会因为所采取的动作导致的事故而被归责的情况下,事故就可以被消除。根据定义,每起事故至少有一辆负责任的汽车。因此,如果没有汽车采取可能为导致的事故负责的动作(根据上述rss模型),就决不应该有任何事故,从而产生不实用和不切实际的统计方法所寻求的绝对安全或接近绝对安全的类型。
[0465]
不是所有的路都是简单的结构。有些路,像交叉口和环形道,包含更复杂的情况以及各种路权规则。并非所有被遮挡对象都是汽车或行人,自行车和摩托车都是要被考虑的合法的道路使用者。本部分介绍的原理可以扩展到这些额外的情况。
[0466]
责任敏感安全性的有效验证条件
[0467]
本部分讨论rss的实施方面。首先,应该注意的是,现在执行的动作可能具有蝴蝶效应,其例如在驾驶10分钟后会导致一连串有事故的事件。检查未来所有可能结果的“蛮力”方法不仅不切实际,而且很可能是不可能的。为了克服这一挑战,现在与计算上有效的方法一起描述如上面描述的责任敏感安全性定义来验证它们。
[0468]
计算上可行的安全验证。
[0469]
用于计算上可行的验证的主要数学工具是“归纳法”。要通过归纳法来证明一个声明,首先要针对简单情况来证明声明,然后,每个归纳法步骤都将证明扩展到越来越多的相关情况。为了说明这种归纳工具如何有助于安全验证,请再次考虑汽车cr跟随另一汽车cf的简单示例(参见图21)。以下约束可以应用于cr的策略上。在每个时间步长t,策略可以挑选任何加速命令,使得即使cf将应用-a
max
的减速度,下一时间步长之时cr和cf之间产生的距离将至少是安全纵向距离(定义3和引理2中定义)。如果不存在这样的动作,cr必须应用减速度-a
max
。下面的引理使用归纳法来证明任何遵守上述约束的策略都决不会与cf发生事故。
[0470]
引理3在定义3中给出的假设下,如果cr的策略遵守上面给出的约束,它将决不会与cf发生事故。
[0471]
证明通过归纳法来证明。基于归纳法,从两辆汽车之间的距离是安全的(根据引理2)的初始状态开始。归纳步骤如下。考虑在某个时间t,cr和cf之间的距离。如果存在一个动作导致安全距离(即使cf作出最大减速的情况),我们也很乐意。如果所有动作都不能保证安全距离,令t

《t为我们采取非最大减速的动作的最大时间。根据归纳法假设,在时间t'+1处,我们在处于安全的距离内,从那开始,我们执行最大减速。因此,根据安全距离的定义,从时间t'到现在没有碰撞,这就得出了证明的结论。
[0472]
上面的示例证实了更一般的想法:在极端情况下,cr可以执行一些紧急操纵,并将其引导回“安全状态”。应该注意的是,我们上面描述的对策略的约束只取决于一个未来的
时间步长,因此它可以以计算上有效的方式来验证。
[0473]
为了概括这些对rss足够的局部属性的想法,我们首先定义了默认紧急策略(default emergency policy,dep),并将其用作定义我们称之为“谨慎(cautious)”的动作采取的局部属性的构造块。结果表明,对于rss来说,只采用谨慎的命令就足够了。
[0474]
定义12(默认紧急策略)默认紧急策略(dep)是应用最大制动力、以及朝着相对于车道的0航向的最大航向改变。最大制动力和航向改变是从汽车的物理参数(也可能从天气和路况)推导出。定义13(安全状态)如果从某个状态s开始执行dep不会导致归责给我们的事故,则这个状态s是安全的。就像在一辆汽车跟随另一辆汽车的简单情况中一样,如果某个命令导致安全状态,则我们将其定义为是谨慎的。定义14(谨慎命令(cautious command))假设我们当前处于状态s0。如果相对于其他车辆现在可能执行的可能命令的集合a,下一状态s1将会是安全的,则命令a是谨慎的。上述定义取决于集合a中的其他车辆可能会执行的最坏情况下的命令。我们将基于最大制动/加速度和横向运动的合理上限来构建集合a。
[0475]
下面的定理再次通过归纳法证明,如果我们只发出谨慎命令,那么就不会有归责给我们的事故。定理1假设在时间0,c处于安全状态,并且对于每个时间步长,c只发出谨慎命令,如果在某个时间步长处不存在谨慎命令,c应用dep。那么,c决不会发生归责给它的事故。证明通过归纳法。归纳法的基础来自安全状态的定义,并且基于谨慎命令的定义。
[0476]
这种方法的一个好处是,可能没有必要检查无限的未来,因为我们可以迅速回到安全状态,并从那里安全地继续。此外,考虑到我们将在t+1时再次规划的事实,因此如果必要的话能够在那时执行dep,我们应该只检查我们在时间t给出的命令,而不是我们可能想到的更长的规划——我们可以在t+1时改变该规划。现在,当在运行时用这个透明模型来验证学习组件时,将学习组件合并到系统中成为可能。最后,这种局部验证意味着完整的未来rss,这是我们期望的目标。一个实现障碍是,谨慎性(cautiousness)定义涉及到另一作用者直到t
brake
可以执行的所有轨迹,即使对于中等的t
brake
,这也是巨大的空间。为了解决这个问题,我们接下来转到开发一种有效的可计算方法,以可扩展的方式验证谨慎性,从而验证rss。
[0477]
有效谨慎性验证
[0478]
第一个观察(observation)是,当且仅当存在特定的车辆该车辆可以执行来自集合a的、在我们执行dep时导致归责给我们的事故的命令时,状态是不安全的。因此,在具有表示为的单个目标车辆的场景中,并且在一般情况下,可以针对场景中的每个其他车辆顺序地执行该过程。
[0479]
当考虑单个目标汽车时,当且仅当存在一系列导致了归责给c的事故的的命令(其表示为所有这些都在集合a中)时,动作a不是谨慎的。正如已经证明的那样,如果在时间0处,满足在c的前方廊道,有一个简单的方法来检查a的谨慎性——我们只需要验证即使将在一个时间步长内应用最大制动(并且我们将执行a),产生的纵向距离仍将保持安全。下面的引理给出了在其中也要考虑横向操纵的更复杂的情况下谨慎性的充分条件。
[0480]
引理4假设在时间t=0,不在c的前方廊道。那么,如果在每一个t∈(0,t
brake
],都
没有归责给c的不安全切入,则a是谨慎的。
[0481]
证明假设a不是谨慎的,即,存在导致归责给c的事故的在事故发生前,必定存在切入时间t。首先假设t》0。如果该切入是在安全纵向距离处,那么不会有归责给我们的事故,这是因为通过-a
max
的减速度来执行dep的事实并基于安全纵向距离的定义(并且我们在此假设响应时间ρ大于时间步长分辨率)。如果切入是不安全的,根据引理的假设,这不归责给c,因此事故也不归责给c。
[0482]
最后,如果t《0,根据引理的假设,在切入的时刻,在c的后方廊道。通过归纳法,c在过去只执行了安全的切入,因此要么切入是安全的,要么要归责给c。在这两种情况下,当前的事故都不归责给c。
[0483]
根据引理4,检查是否可能存在归责给c的不安全切入的问题仍然存在。下面给出了一种有效的算法,用于检查在时间t不安全切入的可能性。为了验证整个轨迹,我们将时间间隔[0,t
brake
]离散化,并将该算法应用于所有时间间隔(在安全距离定义中使用稍大的p值,以确保离散化不会造成损伤)。令为的最小矩形边界的对角线长度。对于每个时间t∈[0,t
brake
],将c
length
(t)定义为c在时间t的纵向“跨度(span)”,并且令用相似的方式定义c
width
[t]并且
[0484]
[0485][0486]
以下定理证明了上述算法的正确性。
[0487]
定理2如果算法1返回“不可行”,那么在时间t,不会有归责给自我(ego)车辆的不安全切入。为了证明这个定理,我们依赖下面的关键引理,它证明了算法1的两个构造块的正确性。从纵向可行性开始:
[0488]
引理5在算法1的注释下,如果检查纵向可行性程序是通过返回“不可行”来结束的,则在时间t不会有归责给自我车辆的非安全切入。
[0489]
证明忽略切入操纵的横向方面,我们仅仅检验c和之间的纵向距离将会不安全的可能性。很明显,位置是在时间t所能达到的位置的边界。由于的事实,我们得到,任何可达到的纵向非安全距离都是≥l。假设并矛盾地假设使用由a
y,min
、a
y,max
界定的加速度命令可达到非安全纵向位置和速度,表示为和根据的定义,我们有因此汽车之间的距离更大,即,此汽车之间的距离更大,即,由于关于(y[t],υy[t])在纵向上是安全的,根据纵向非安全的定义,其遵循达到的速度必须小于然而,很明显,为了获得更低的速度,必须在整个时间窗[0,t]内使用小于a
y,min
的平均加速度,从而与使用由a
y,min
、a
y,max
界定的命令达到纵向非安全的事实相矛盾。通过考虑对的情况的对称论证,证明就完成了。
[0490]
接下来,横向可行性。
[0491]
引理6在算法1的注释下,如果检查横向可行性程序是通过返回“不可行”来结束的,则在时间t不会有归责给自我车辆的不安全切入。
[0492]
证明首先,很明显,通过坐标的简单改变和相对速度的考虑,≤0的假设和关于v
x
[t]的假设并没有失去一般性。此外,通过类似的论证,很容易扩展到的情况。
[0493]
请注意,在我们的示例中,切入中所涉及的汽车的位置是(x[t],x[t]

w),这意味着一些(μ1,μ2)-横向位置获胜属性影响了归责。通过我们对υ
x
[t]的假设,我们得到,在假设c将被归责的情况下,在时间t可以使用的最大横向速度是0:要么为了μ-横向速度“平局”(在c没有(μ1,μ2)-横向位置获胜的情况下,这足以将责任推到它身上),要么为了μ-横向速度获胜(在c确实(μ1,μ2)-横向位置获胜的情况下,这对于将责任推到它身上是必要的)。剩下来检查是否存在始于止于使用以a
x,max
为界的横向加速度、最终位置的操纵。换句话说,以期望的横向速度0结束的切入。
[0494]
从算法中回想的定义。假设t
top
《0。这意味着,当使用最大横向加速度时,达到横向速度0所需的时间,即是小于t的。这意味着,它没有能够执行的操纵来及时达到期望的速度,因此不存在有问题的操纵。因此,如果程序由于t
top
《0而返回“不可行”,确实,不存在归责给c的不安全切入的可行性。
[0495]
考虑t
top
》0的情况。那么,由于x
max


w,程序返回“不可行”。考虑时间范围[0,t]内的的横向速度分布族(family of lateral velocity profiles),表示为并由a参数化。我们以与算法中使用的相似方式为每个a定义请注意,对于所有t
top
(a)》0。我们现在将所有时间t'0[0,t]的速度分布ua定义如下:
[0496][0497]
第一,可以看出ua满足约束第二,可以计算使用ua时行驶的距离,因为这相当于分段线性函数的积分。将到达位置定义为并注意算法中定义的x
max
正好是第三,可以看出行驶距离随着a单调增加,并且是无界的。因此,对于任何期望的最终位置存在满足的a的值。特别是,对于x=x[t]

w,这样的值是存在的,我们将其表示为a
cut

[0498]
观察到,由于算法中定义的x
max
是《x[t]

w的,因此我们有a
cut
》a
x,max
。这不足以证明没有有效的操纵可以导致位置≥x[t]

w;这仅适用于u族成员。我们现在证明,即使在u之外,所有达到最终位置x[t]

w的速度分布在途中必须使用至少为a
cut
的加速度值,使其无效,从而完成证明。
[0499]
假设某个速度分布u满足边界约束此外,假设它达到某个最终位置因此,我们得到:
learning,rl)的语言来表达的。在rl的每次迭代中,作用者观察描述世界的状态,表示为s
t
,并且应当基于将状态映射到动作的策略函数π来挑选一个动作,表示为a
t
。作为它的动作和超出它控制的其他因素(诸如其他作用者的动作)的结果,世界的状态被改变为s
t
+1。我们用们用来表示(状态,动作)序列。每一个策略都会在(状态,动作)序列上归纳一个概率函数。该概率函数可能会受到作用者所采取的动作的影响,但也取决于环境(尤其是取决于其他作用者的行为)。我们用p
π
表示由π归纳的(状态,动作)序列上的概率。策略的质量被定义为其中是奖励函数,用来测量序列有多好。在大多数情况下,采用采用的形式,其中ρ(s,a)是瞬时奖励函数,用于测量处于状态s并执行动作a的即刻质量。为了简单起见,我们坚持这种更简单的情况。
[0515]
为了用上面的rl语言来表达驾驶策略问题,令s
t
为道路、自我车辆以及其他道路使用者的位置、速度和加速度的某一表示。令a
t
为横向和纵向加速度命令。下一状态s
t+1
取决于a
t
以及其他作用者的行为将如何。瞬时奖励ρ(s
t
,a
t
)可能取决于与其他汽车的相对位置/速度/加速度、我们的速度和期望速度之间的差异、我们是否遵循期望的路线、我们的加速度是否舒适等。
[0516]
在决定策略在时间t应该采取什么动作时,一个挑战来自这样一个事实,即人们需要估计这一动作对奖励的长期影响。例如,在驾驶策略的上下文中,在时间t采取的动作可能看起来是目前的好动作(即,奖励值ρ(s
t
,a
t
)是好的),但可能在5秒后导致事故(即,5秒内的奖励值将是灾难性的)。因此,当作用者处于状态s时,我们需要估计执行动作a的长期质量。这通常被称为q函数,即q(s,a)应该反映在时间s执行动作a的长期质量。给定这样的q函数,动作的自然选择是挑选具有最高质量π(s)=argmax
a q(s,a)的那个动作。
[0517]
即刻的问题是如何定义q和如何有效地评估q。让我们首先做出(完全不现实的)简化假设,即s
t
+1是(s
t
,a
t
)的某种确定性函数,也就是说,s
t
+1=f(s
t
,a
t
)。熟悉马尔可夫决策过程(markov decision process,mdp)的人会注意到,这个假设甚至比mdp的马尔可夫假设(即,s
t
+1有条件地独立于过去给定的(s
t
,a
t
))更强。正如[5]中指出的,即使马尔可夫假设也不适用于多作用者场景,诸如驾驶,因此我们稍后将放松该假设。
[0518]
在这个简化假设下,给定st,对于t个步长的每个决策序列(a
t
,

,a
t
+t),我们可以精确地计算未来状态(s
t
+1,...,s
t
+t+1)以及时间t,...,t的奖励值。将所有这些奖励值汇总成一个数字,例如,通过取它们的和我们可以如下定义q(s,a):
[0519]
使得满足
[0520]
也就是说,如果我们现在处于状态s并且立即执行动作a,那么q(s,a)是我们所能期待的最好的未来。
[0521]
让我们讨论一下如何计算q。第一个想法是将一组可能的动作的集合a离散化为一个有限集合并简单地遍历离散化集合中的所有动作序列。然后,运行时间受离散动作序列的数量支配。如果表示10个横向加速度和10个纵向加速度,我们获得100
t
个可能,这即使对于很小值的t也变得不可行。虽然有加速搜索的试探法(例如,从粗略到精细搜
索),但这种蛮力方法需要巨大的计算能力。
[0522]
参数t通常被称为“规划的时间范围”,并且它控制着计算时间和评估质量之间的自然权衡——t越大,我们对当前动作的评估就越好(因为我们明确更深入地检查其对未来的影响),但另一方面,更大的t会指数地增加计算时间。为了理解为什么我们可能需要大的t值,考虑一个场景:其中我们在高速公路出口前200米并且我们应走这个出口。当时间范围足够长时,累积奖励将指示在t和t+t之间的某个时间τ我们是否已经到达出口车道。另一方面,对于短的时间范围,即使我们执行了正确的即刻动作,我们也不知道它是否会最终将把我们引向出口车道。
[0523]
另一种不同的方法试图执行离线计算,以构造q的近似,表示为然后在策略的在线运行期间,使用作为q的近似,而不明确推出未来。构造这种近似的一种方法是离散化动作域和状态域两者。由表示这些离散化集合。离线计算可以对于每个评估q(s,a)值。然后,对于每一个对于我们定义为q(s,a)。此外,基于bellman[2,3]的开创性工作,我们可以基于动态编程过程(诸如值迭代算法)为每一个计算q(s,a),并且在我们的假设下,总运行时间是计算q(s,a),并且在我们的假设下,总运行时间是的阶。这种方法的主要问题是,在任何合理的近似下,都非常大(由于维数灾难)。实际上,感测状态应该针对每个其他相关车辆在纵向和横向的位置、速度和加速度的意义上表示6个参数。即使我们将每个维度离散化为10个值(非常粗糙的离散),由于我们有6个维度,要描述单辆汽车我们需要106个状态,要描述k辆汽车我们需要10
6k
个状态。这导致对于中的每个(s,a)存储q的值的存储器需求是不切实际的。
[0524]
处理这种维数灾难的一种方法是将q限制为来自受限的函数类(通常称为假设类(hypothesis class)),诸如手动确定特征的线性函数或深度神经网络。例如,考虑深度神经网络,在玩雅达利(atari)游戏的上下文中,它对q进行近似。这导致了资源有效的解决方案,前提是可以有效地评估对q进行近似的函数类。然而,这种方法有几个缺点。首先,不知道所选的函数类是否包含对期望的q函数的良好近似。其次,即使存在这样的函数,也不知道现有算法是否能设法有效地学习它。到目前为止,学习复杂的多作用者问题(诸如我们在驾驶中遇到的问题)的q函数的成功案例还不多。这项任务之所以困难,有几个理论上的原因。正如关于马尔可夫假设所提到的,根本的现有方法是有问题的。但是,更严重的问题是由于作出决策的时间分辨率而导致的信噪比非常小,如下所述。
[0525]
考虑一个简单的场景,在这个场景中,车辆需要改变车道以便从200米内的高速公路出口出去,并且道路当前是空旷的。最好的决策是开始进行车道改变。可以每0.1秒做出一次决策,因此在当前时间t,q(s
t
,a)的最佳值应该是针对与向右侧的小的横向加速度相对应的动作a的值。考虑对应于零横向加速度的动作a'。因为现在开始改变车道或者在0.1秒内改变车道之间的差异很小,所以q(s
t
,a)和q(s
t
,a')的值几乎相同。换句话说,选择a比a'只有非常小的益处。另一方面,由于我们使用的是对q的函数近似,并且由于在测量状态s
t
时有噪声,所以我们对q值的近似很可能是有噪声的。这产生非常小的信噪比,导致非常慢的学习,尤其是对于大量用于神经网络近似类的随机学习算法。然而,正如本文,这个问题不是任何特定函数近似类的属性,而是在q函数的定义中所固有的。
[0526]
总之,可用的方法大致可以分为两个阵营。第一种是蛮力方法,包括搜索许多动作序列或将感测状态域离散化、并在存储器中维护一个巨大的表。这种方法可以得到对q的非常准确的近似,但是无论是在计算时间还是在存储器方面都需要无限的资源。第二种是资源有效的方法,在这种方法中,我们要么搜索短的动作序列,要么对q应用函数近似。在这两种情况下,我们的代价都是对q不太准确的近似,这可能会导致糟糕的决策。
[0527]
本文描述的方法包括构造一个既资源有效又准确的q函数,以偏离几何动作并适应语义动作空间,如下一部分所述。
[0528]
语义方法
[0529]
作为所公开的语义方法的基础,考虑一个刚刚拿到驾照的青少年。他的父亲坐在他旁边,并给他“驾驶策略”指示。这些指令不是几何的——它们不采用“以当前速度行驶13.7米,然后以0.8m/s2的速度加速”的形式。相反,指令是语义性质的——“跟随你前面的车”或“快速在你左侧超过那辆车”。我们为这些指令形式化(formalize)了一种语义语言,并将它们用作语义动作空间。然后我们在语义动作空间上定义q函数。我们揭示了语义动作可以有很长的时间范围,这允许我们在不规划许多未来的语义动作的情况下估计q(s,a)。是的,语义动作的总数尚小。这允许我们在保持资源有效的同时得到对q函数的准确估计。此外,正如我们后面所揭示的,我们结合学习技术来进一步改进质量函数,同时因为不同语义动作之间的显著差异而不会遭受小的信噪比的困扰。
[0530]
现在定义语义动作空间。主要思想是定义横向和纵向目标,以及实现这些目标的侵略性(aggressiveness)等级。横向目标是车道坐标系统中期望的位置(例如,“我的目标是在2号车道的中心”)。纵向目标有三种类型。第一种类型是相对于其他车辆的相对位置和速度(例如,“我的目标是以与3号汽车相同的速度落后于3号汽车,处于距它2秒钟的距离”)。第二种类型是速度目标(例如,“以该道路的允许速度的110%行驶”)。第三种类型是某个位置的速度约束(例如,当接近交叉口时,“在停车线处速度为0”,或者当通过急转弯时,“在弯道上某个位置处速度最多为60kmh”)。对于第三种选项,我们可以改为应用“速度分布”(路线上的几个离散点以及每个点处的期望速度)。横向目标的合理数量以16=4x4(最多4个相关车道上的4个位置)为界。第一种类型的纵向目标的合理数量以8
×2×
3=48为界(8辆相关汽车,无论是在它们前面还是后面,以及3个相关距离)。绝对速度目标的合理数量是10,速度约束数量的合理上限是2。为了实施给定的横向或纵向目标,我们需要应用加速,然后减速(或者反过来)。实现目标的侵略性是用以实现该目标的最大(绝对值)加速度/减速度。随着定义了目标和侵略性,我们有封闭形式的公式来使用运动学计算来实施该目标。唯一剩下的部分是确定横向目标和纵向目标之间的组合(例如,“从横向目标开始,并且正好在横向目标的中间,也开始应用纵向目标”)。5次混合和3个侵略性等级的集合似乎就足够了。总之,我们得到了大小为≈104的语义动作空间。
[0531]
值得一提的是,履行这些语义动作所需的可变时间不同于决策做出过程的频率。为了对动态世界做出反应,我们应该以高频率做出决策——在我们的实施方式中,每100毫秒做出决策。相反,每一次这样的决策都是基于构建履行某种语义动作的轨迹,该轨迹将具有更长的时间范围(比如,10秒)。我们使用更长的时间范围,因为它有助于我们更好地评估轨迹的短期前缀(prefix)。下一部分讨论了语义动作的评估,但在此之前,我们论证语义动作归纳了足够的搜索空间。
[0532]
如上所述,语义动作空间归纳了所有可能的几何弯道(curve)的子集,其大小指数地(以t)小于枚举所有可能的几何弯道。第一个直接的问题是,这个更小的搜索空间的短期前缀的集合是否包含我们将想要使用的所有几何命令。从以下意义上说,这确实足够了。如果道路没有其他作用者,则除了设置横向目标和/或绝对加速度命令和/或在某些位置的速度约束之外,没有理由进行改变。如果道路包含其他作用者,我们可能需要与其他作用者协商路权。在这种情况下,相对于其他作用者设置纵向目标就足够了。长期来看,这些目标的具体实施方式可能会有所不同,但短期前缀不会有太大改变。因此,我们可以很好地涵盖相关的短期几何命令。
[0533]
构建语义动作的评价函数
[0534]
我们已经定义了语义动作集合,用as表示。假定我们目前在状态s,我们需要一种方法来选择最好的a
s 0 as。为了解决这个问题,我们采取了类似于[6]的选项机制的方法。基本思想是把as看作元(meta)动作(或者选项)。对于每个元动作选择,我们构建表示元动作as的实现的几何轨迹(s1,a1),...,(s
t
,a
t
)。要做到这一点,我们当然需要知道其他作用者将如何对我们的动作做出反应,但是目前我们仍然依赖于(不现实的)假设,即对于某个已知的确定性函数f,s
t+1
=f(s
t
,a
t
)。我们现在可以使用作为当我们处于状态s1时执行语义动作as的质量的良好近似。
[0535]
这种方法可以产生强大的驾驶策略。然而,在某些情况下,可能需要更复杂的质量函数。例如,假设我们在出口车道前跟着一辆慢的卡车,在那里我们需要走出口车道。一个语义选项是继续在卡车后面慢慢行驶。另一个语义选项是超越卡车,希望稍后我们能回到出口车道并且准时从出口出去。前面描述的质量测量没有考虑我们超越卡车后会发生什么,因此即使有足够的时间超车并返回出口车道,我们也不会选择第二个语义动作。机器学习可以帮助我们构造对语义动作更好的评估,它将考虑的不仅仅是即刻的语义动作。如前所述,由于信噪比低(缺乏优势),在即刻几何动作上学习q函数是有问题的。当考虑语义动作时,这是没有问题的,都是因为执行不同的语义动作之间有很大的差异,并且因为语义时间范围(我们考虑了多少语义动作)非常小(在大多数情况下可能少于三个)。
[0536]
应用机器学习的另一个潜在优势是为了一般化:我们可以通过手动检查道路的属性,为每条道路设置适当的评估函数,这可能涉及一些尝试和误差。但是,我们能自动一般化到任何道路吗?这里,如上所述,机器学习方法可以在多种道路类型上进行训练,以便也一般化到未见的道路。根据所公开的实施例的语义动作空间可以考虑潜在的好处:语义动作包含长时间范围内的信息,因此我们可以在资源有效的同时获得对它们质量的非常准确的评估。
[0537]
其他作用者的动态
[0538]
迄今为止,我们一直依赖于s
t+1
是s
t
和a
t
的确定性函数的假设。如前所述,这一假设并不完全现实,因为我们的动作会影响其他道路使用者的行为。虽然我们确实考虑了其他作用者对我们的动作的一些反应(例如,我们假设如果我们执行安全切入,那么我们后面的汽车会调整其速度以免从后面撞上我们),但是假设我们对其他作用者的所有动态进行建模是不现实的。这个问题的解决方案是以高频率重新应用决策做出,并通过这样做,不断地使我们的策略适应超出我们建模范围的环境部分。从某种意义上说,可以把这看作是在每
一步长对世界的马尔可夫过程。
[0539]
感测
[0540]
本部分描述感测状态,即对场景相关信息的描述,并形成对驾驶策略模块的输入。总的来说,感测状态包含静态和动态对象。静态对象是车道、物理道路定界符、速度约束、路权约束以及关于遮挡物(例如,遮挡了并入道路的相关部分的围栏)的信息。动态对象是车辆(例如,边界框、速度、加速度)、行人(边界框、速度、加速度)、交通灯、动态道路定界符(例如,建筑区域的锥形物)、临时交通标志和警察活动以及道路上的其他障碍物(例如,动物、从卡车上掉下来的床垫等)。
[0541]
在任何合理的传感器设置中,我们都不能期望获得精确的感测状态s。相反,我们查看原始传感器和地图数据,我们用x 0 x表示,并且存在取得x并产生近似感测状态的感测系统。
[0542]
定义16(感测系统)令s表示感测状态的域,并且令x为原始传感器和地图数据的域。感测系统为函数
[0543]
理解何时我们应该接受作为对s的合理的近似是很重要的。回答这个问题的最终方法是通过检查这个近似对我们的驾驶策略的性能的总体影响,特别是对安全性的影响。遵循我们的安全-舒适区分,这里我们再次区分导致不安全行为的感测错误和影响乘坐舒适性的感测错误。在解决细节之前,感测系统可能产生的误差类型包括:
[0544]
·
漏警(false negative):感测系统漏掉了对象
[0545]
·
虚警(false positive):感测系统指示“幻影(ghost)”对象
[0546]
·
不准确测量:感测系统正确检测到对象,但不正确地估计其位置或速度
[0547]
·
不准确语义:感测系统正确地检测到对象,但误解了它的语义含义,例如交通灯的颜色
[0548]
舒适
[0549]
回想一下,对于语义动作a,给定当前感测状态为s,我们使用q(s,a)来表示我们对a的评估。我们的策略挑选动作π(s)=argmax
a q(s,a)。如果我们注入而不是s,那么选择的语义动作将是如果那么应该被接受为对s的良好近似。但是,只要关于真实状态s的质量是近乎最优的,即,对于某些参数∈,参数∈,选择也一点都不坏。我们说,在这种情况下,关于q是∈-准确的。自然地,我们不能期望感测系统一直都是∈-准确的。因此,我们也允许感测系统以某一小概率δ出现故障。在这种情况下,我们说是可能(以至少为1

δ的概率)、近似(达到∈)、正确的,或简称pac(借用valiant的pac学习术语)。
[0550]
我们可以使用几个(∈,δ)对来评估系统的不同方面。例如,我们可以选择三个阈值∈1《∈2《∈3来表示轻度、中度和严重错误,并且为它们中的每一个设置不同的δ值。这导致以下定义。
[0551]
定义17(pac感测系统)令((∈1,δ1),...,(∈k,δk))为(准确度,置信度)对的集合,令s为感测状态域,令x为原始传感器和地图数据域,并且令d为x
×
s上的分布。令a为动作空间,q:s
×a→
/为质量函数,以及π:s

a使得π(s)∈argmax
a q(s,a)。如果对于每一个i∈
{1,...,k}我们有{1,...,k}我们有则感测系统关于上述参数是可能-近似-正确(pac)的。
[0552]
这里,定义取决于x
×
s上的分布d。重要的是要强调,我们通过记录许多人类驾驶员的数据而不是遵循我们的自主车辆的特定策略来构造这种分布。虽然后者似乎更合适,但它需要在线验证,这使得感测系统的开发不切实际。由于任何合理的策略对d的影响都很小,通过应用简单的数据增强技术,我们可以构造适当的分布,然后在感测系统的每次重大更新后执行离线验证。该定义为使用的舒适乘坐提供了充分但非必要的条件。这不是必要的,因为它忽略了一个重要事实,即短期错误的决策对乘坐的舒适性几乎没有影响。例如,假设前方100米处有一辆车,它比主车辆慢。最好的决策是现在开始稍微加速。如果感测系统错过了这辆车,但将在下一时间(100毫秒后)检测到它,那么两种乘坐之间的差异将不会明显。为了简化呈现,我们忽略了这个问题,并且要求更强的条件。对多帧pac定义的适应在概念上很简单,但更具技术性。
[0553]
接下来,我们推导出遵循以上pac定义的设计原则。回想一下,我们已经描述了几种类型的感测错误。对于漏警、虚警和不准确语义类型的错误,错误要么将在不相关的对象上(例如,当我们直行时左转的交通灯),要么将被该定义的δ部分捕捉。因此,我们关注经常发生的“不准确测量”类型的误差。
[0554]
有些令人惊讶的是,我们将论证,经由自我准确度(即通过测量每个对象相对于主车辆的位置的准确度)来测量感测系统准确度的流行方法不足以确保pac感测系统。然后,我们将提出一种不同的方法来确保pac感测系统,并将论证如何有效地获得它。我们从一些附加的定义开始。
[0555]
对于场景中的每个对象o,令p(o)、分别为根据s、的、o在主车辆坐标系统中的位置。请注意,o和主车辆之间的距离是||p||。的加性误差是的加性误差是相对于o和主车辆之间的距离的相对误差是加性误差除以||p(o)||,即
[0556]
要求远处对象的加性误差很小是不现实的。事实上,假设o是一辆距离主车辆150米的车辆,并且令∈为适中大小,比如∈=0.1。对于加性准确度,这意味着我们应该以高达10厘米的准确度知道车辆的位置。这对于价格合理的传感器来说是不现实的。另一方面,对于相对准确度,我们需要估计高达10%的位置,这相当于15米的准确度。这是可行的(如下所述)。
[0557]
如果对于每一个o∈o,p(o)和之间的(相对)误差最多是∈,则感测系统以∈-自我准确(∈-ego-accurate)的方式定位对象集合o。下面的示例证实,∈-自我准确的感测状态不能对于每一个合理的q来保证pac感测系统。事实上,考虑一个场景,其中主车辆以30米/秒的速度行驶,并且其前方150米处有一辆停下的车辆。如果主车辆在自我车道上,并且不存在及时改变车道的选项,我们现在必须以至少3m/s2的速率开始减速(否则,我们要么将不能及时停下来,要么我们将需要在稍后强烈减速)。另一方面,如果车辆在路边,我们不需要应用强的减速。假设p(o)是其中一种情况,而是另一种情况,这两个位置之间有5米的差异。那么,的相对误差是
[0558][0559]
也就是说,对于相当小的∈值(小于3.5%的误差),感测系统可以是∈-自我准确的,然而,对于任何合理的q函数,q的值是完全不同的,因为我们混淆了需要强烈制动的情况和不需要强烈制动的情况。
[0560]
上面的示例论证了,∈-自我准确度不能保证我们的感测系统是pac的。是否存在对于pac感测系统是充分的另一个属性取决于q。我们将描述一系列的q函数,其中存在一个简单的定位属性来保证pac感测系统。∈-自我准确度的问题是它可能会导致语义错误——在前面提到的示例中,即使在∈《3.5%的情况下是∈-自我准确的,它也会将车辆误分配到正确的车道上。为了解决这个问题,我们依靠横向位置的语义单位。
[0561]
定义18(语义单位(semantic units))车道中心是一条简单的自然曲线,也就是说,它是一条可微分的内射映射l:[a,b]

|3,其中对于每一个a≤t1《t2≤b,我们得到长度等于t2–
t1。车道的宽度是函数w:[a,b]

|
+
。点x∈|3在曲线上的投影是曲线上最接近x的点,即t
x
=argmin
t∈[a,b]
||l(t)

x||的点l(t
x
)。x关于车道的语义纵向位置是t
x
,并且x关于车道的语义横向位置是l(t
x
)/w(t
x
)。语义速度和加速度被定义为上述的一阶和二阶导数。
[0562]
类似于几何单位,对于语义纵向距离,我们使用相对误差:如果对某个对象归纳出的语义纵向距离,而真实距离是p(o),那么相对误差是(其中,分母中的最大值应对的是其中对象具有几乎相同的纵向距离的情况(例如,一辆汽车在另一条车道上挨着我们))。由于语义横向距离很小,我们可以对它们使用加性误差。这导致以下定义:
[0563]
定义19(语义单位的误差(error in semantic units))令l为车道,并且假设主车辆相对于车道的语义纵向距离为0。令为一个点,并且令p
lat
(x)、p
lon
(x)为该点相对于车道的语义横向和纵向距离。令为近似测量。关于x的和p之间的距离定义为
[0564][0565]
横向和纵向速度的距离定义类似。有了上面的定义,我们就可以定义q的属性以及相应的pac感测系统的充分条件。
[0566]
定义20(语义-李普希茨q(semantically-lipschitzq))如果对于每一个a、s、lipschitzq))如果对于每一个a、s、其中p是由s、归纳的对对象o的测量,则q函数是l-语义-李普希茨(l-semantically-lipschitz)的。
[0567]
作为一个直接的推论,我们得到:
[0568]
引理8如果q是l-语义-李普希茨的,并且感测系统产生语义测量,使得至少有1-δ的概率我们得到则是参数为0,δ的pac感测系统。
[0569]
安全
[0570]
本部分讨论了导致不想要的行为的感测误差的潜在性。如前所述,策略是可证明地安全的,因为它不会导致归责给主av的事故。这种事故仍可能由于硬件故障(例如,所有传感器故障或高速公路上的轮胎爆炸)、软件故障(某些模块中的重大缺陷)或感测错误而发生。我们的最终目标是这种事件的概率将是非常小——每小时发生这种事故的概率为10-9
。为了理解这个数字,在美国驾驶员在道路上花费的平均小时数(截至2016年)不到300小时。因此,按预期,一个人需要活330万年才能发生由这些类型的事件中的一种引起的事故。
[0571]
我们首先定义什么是安全相关的感测误差。回想一下,在每一步长,我们的策略都会挑选使q(s,a)最大化的a的值,即π(s)=argmax
a q(s,a)。对于每一个不谨慎(见定义14)的动作a,我们通过令q(s,a)=

∞来确保安全。因此,第一种类型的安全评价器(safety-critic)感测错误是:如果我们的感测系统导致了挑选一个不安全的动作。形式地,令为根据的决策,如果则我们说导致安全评价器遗漏(safety-critic miss)。第二种类型的安全评价器感测错误是:如果根据所有的动作都是不安全的,并且我们必须应用标准紧急策略(例如,用力制动),而根据s,则存在安全的动作,即max
a q(s,a)》

∞。当我们的速度很高并且我们后面有汽车时,这是很危险的。我们称这种错误为安全评价器幻影(safety-critic ghost)。
[0572]
通常,安全评价器遗漏是由漏警引起的,而安全评价器幻影是由虚警引起的。这种错误也可能是由明显不正确的测量引起的,但是在大多数情况下,我们的舒适目标确保我们远离安全定义的边界,因此合理的测量误差不太可能导致安全评价器错误。我们如何才能确保安全评价器错误的概率非常小,比如说,小于每小时10-9
次?如引理1所述,在不做进一步假设的情况下,我们需要基于超过109小时的驾驶来检查我们的系统。这是不现实的(或者至少是极具挑战性的)——这相当于记录了一年内330万辆汽车的驾驶。此外,构建达到如此高准确度的系统是巨大的挑战。系统设计和验证挑战两者的解决方案是依赖于几个子系统,每个子系统都是独立设计的,并依赖于不同的技术,这些系统以确保提高它们各自的准确度的方式融合在一起。
[0573]
假设我们构建了三个子系统,表示为s1、s2、s3(扩展到3个以上是很简单的)。每个子系统接收a并且应该输出安全/非安全。大多数子系统(在我们的示例中是2个)接受为安全的动作被认为是安全的。如果没有动作被至少2个子系统认为是安全的,则应用默认紧急策略。基于以下定义,该融合方案的性能分析如下:
[0574]
定义21(单侧c-近似独立(one side c-approximate independent))两个伯努利随机变量r1、r2若满足:
[0575][0576]
则被称为单侧c-近似独立。
[0577]
对于i0{1,2,3},由表示的伯努利随机变量分别指示子系统i是否执行安全评价器遗漏/幻影。类似地,em、eg指示融合系统的安全评价器遗漏/幻影。我们依赖于这样的假设,即对于任意一对i≠j,随机变量都是单侧c-近似独立的,并且对于同样成立。在解释为什么这个假设是合理的之前,让我们先分析一下它的含义。我们可以通
过以下来界定em的概率:
[0578][0579]
因此,如果所有子系统都有则完全相同的推导对安全评价器幻影错误也成立。因此,通过应用联合边界,我们得出结论:
[0580]
推论2假设对于任意一对i≠j,随机变量都是单侧c-近似独立的,并且对于同样成立。也假设对每一个i,有和则,
[0581][0582]
这个推论允许我们使用小得多的数据集来验证感测系统。例如,如果我们想要获得10-9
的安全评价器错误概率,取105数量级的示例并分别测试每个系统就足够了,而不用取109数量级的示例。
[0583]
可能存在产生不相关误差的传感器对。例如,雷达在恶劣天气条件下工作良好,但可能会因不相关的金属对象而失效,这与受恶劣天气影响但不太可能受金属对象影响的相机相反。看起来,相机和激光雷达有共同的误差来源——例如,两者都受雾天、大雨或雪的影响。然而,相机和激光雷达的误差类型会有所不同——相机可能会由于恶劣天气而遗漏对象,而激光雷达可能会由于来自空气中粒子的反射而检测到幻影。由于我们已经区分了这两种类型的误差,近似独立性仍然可能成立。
[0584]
我们对安全重要的(safety-important)幻影的定义要求:根据至少两个传感器,所有的动作是不安全的。即使在困难的条件下(例如,大雾),这也不太可能发生。原因是,在这种情况下,受困难条件影响的系统(例如,激光雷达)将决定非常防御性的驾驶,因为它们可以宣称高速和横向操纵是不安全的动作。因此,主av将缓慢驾驶,并且然后即使需要紧急停车,因为行驶速度低,也不会有危险。因此,我们的定义使驾驶风格适应道路条件。
[0585]
构建可扩展的感测系统
[0586]
已经在舒适性和安全两方面描述了来自感测系统的要求。接下来,描述了一种用于构建满足这些要求同时是可扩展的感测系统的方法。感测系统有三个主要组件。第一个是基于相机的场景的远距离、360度覆盖。相机的三个主要优点是:(1)高分辨率,(2)纹理,(3)价格。低价格支持可扩展系统。纹理能够理解场景的语义,包括车道标记、交通灯、行人的意图等等。高分辨率支持远距离检测。此外,在同一域中检测车道标记和对象能够实现出色的语义横向准确度。相机的两个主要缺点是:(1)信息是2d的并且估计纵向距离很困难,(2)对光照条件(低日照、恶劣天气)敏感。我们使用我们系统的接下来两个组件来克服这些困难。
[0587]
我们系统的第二组件是语义高清晰度制图(mapping)技术,称为道路体验管理
(road experience management,rem)(它涉及基于为路段预先确定和存储的目标轨迹进行的导航、以及基于在主车辆环境中识别的已辨识地标的位置(例如,在图像中)确定沿目标轨迹的精确位置的能力)。地图创建的常见几何方法是在地图创建过程中记录3d点云(由激光雷达获得),然后通过将现有激光雷达点与地图中的点进行匹配来获得地图上的定位。这种方法有几个缺点。首先,每公里的地图数据需要很大的存储器,因为我们需要保存很多点。这需要昂贵的通信基础设施。其次,并不是所有的汽车都装备有激光雷达传感器,因此地图更新非常不频繁。这是有问题的,因为道路中可能发生改变(施工区域、危险),并且基于激光雷达的制图解决方案的“反射现实时间(time-to-reflect-reality)”很大。与此相反,rem遵循基于语义的方法。这个想法是利用大量的装备有相机和检测场景中的语义上有意义的对象(车道标记、路缘、电线杆、交通灯等)的软件的车辆。如今,许多新车都装备了可用于众包(crowd-sourced)地图创建的adas系统。由于该处理是在车辆端完成的,因此只有少量语义数据应当被传输到云。这允许以可扩展的方式非常频繁地更新地图。此外,自主车辆可以通过现有的通信平台(蜂窝网络)接收小尺寸化的地图数据。最后,可以基于相机获得地图上的高精度定位,而不需要昂贵的激光雷达。
[0588]
rem可用于多种目的。第一,它让我们对道路的静态结构有所预见(我们可以提前对高速公路出口路进行规划)。第二,它为我们提供了所有静态信息的准确信息的另一来源,它与相机检测一起产生了对世界的静态部分的鲁棒视图(robust view)。第三,它解决了将2d信息从图像平面提升到3d世界的问题,如下所述。该地图将所有车道描述为3d世界中的曲线。自我车辆在地图上的定位能够将道路上的每个对象从图像平面轻松提升到其3d位置。这就产生了遵守语义单位的准确度的定位系统。该系统的第三组件可以是互补的雷达(radar)和激光雷达(lidar)系统。这些系统可以有两个目的。首先,它们可以提供极高的准确度等级来增强安全。其次,他们可以给出对速度和距离的直接测量,这进一步提高了乘坐的舒适性。
[0589]
以下部分包括rss系统的技术引理和几个实际考虑。
[0590]
引理9对于所有x 0[0,0.1],满足1

x》e-2x

[0591]
证明令f(x)=1

x

e-2x
。我们的目标是论证,对于x0[0,0.1],f(x)≥0。注意,f(0)=0,因此只要在上述范围内有f(x)≥0就足够了。显式地,f'(x)=

1+2e-2x
。显然,f

(0)=1,并且它是单调递减的,因此验证f'(0.1)>0就足够了,这在数值上很容易做到,f'(0.1)≈0.637。
[0592]
有效谨慎性验证——被遮挡对象
[0593]
与未被遮挡对象一样,我们可以检查给出当前命令,之后dep是否为rss。为此,当假设暴露时间为1并在那时我们发出dep命令(根据定义,这足以满足谨慎性)时,我们展开(unroll)我们的未来直到t
brake
。对于所有t'0[0,t
brake
],我们检查是否会发生可归责的事故——当假设被遮挡对象出现最坏情况时。我们使用一些我们的最坏情况下的操纵和安全距离规则。我们采用基于遮挡物的方法来寻找兴趣点——也就是说,对于每个遮挡对象,我们计算最坏情况。这是一种至关重要的效率驱动的方法——例如,行人可以藏在汽车后面的许多位置,并且可以执行许多操纵,但是只有单个它可以执行的最坏情况的位置和操纵。
[0594]
接下来,考虑更复杂的情况,即被遮挡行人。考虑停着的汽车后面的被遮挡区域。被遮挡区域和我们的汽车c的前面/侧面的最近点可以例如通过它们的几何属性(三角形、
矩形)来找到。形式上,我们可以把被遮挡区域看作是少数简单形状的凸区域的结合,并分别处理它们中的每一个。此外,可以看到行人可以从被遮挡区域跑到汽车(在v
limit
约束下)的前面,当且仅当他可以使用可能的最短路径来这样做。利用行人可以行进的最大距离是v
limit
·
t'的事实,我们可以简单地检查正面碰撞的可能性。至于侧面碰撞,我们注意到,如果路径短于vlimit
·
t',当且仅当在碰撞方向上我们的横向速度大于μ时,我们才有责任。公开了一种关于被遮挡行人的谨慎性验证的算法,其在此以自由伪码描述。关键部分,即检查存在与被车辆遮挡的行人发生可归责的事故的可能性的部分,是以上述简单方式完成的。
[0595][0596]
关于验证模拟器的问题
[0597]
如前所述,多作用者安全可能难以统计地验证,因为它应该以“在线”方式进行。有人可能会主张,通过建立驾驶环境模拟器,我们可以在“实验室”验证驾驶策略。然而,验证模拟器忠实地表示现实与验证策略本身一样困难。要了解为什么这是真的,假设模拟器在以下意义上已经过验证:在模拟器中应用驾驶策略π会导致发生事故的概率为而在现实世界中π发生事故的概率是p,其中(我们需要0将小于10-9
。)接下来将驾驶策略替换为π’。假设π’执行使人类驾驶员混淆并导致事故的怪异动作的概率为10-8
。在没有否定它在估计原始策略π的性能方面的卓越能力的情况下,这种怪异动作有可能(甚至更有可能)没有在模拟器中被建模。这证明,即使模拟器已经被论证为反映驾驶策略π的现实,也不能保证反映另一驾驶策略的现实。
[0598]
基于车道的坐标系统
[0599]
rss定义中可以做的一个简化假设是道路由相邻的、恒定宽度的直车道组成。横轴和纵轴之间的区别、以及纵向位置的排序可能在rss中起着重要作用。此外,这些方向的定义显然是基于车道形状。从平面上的(全局)位置到基于车道的坐标系统的变换将问题简化为原始的“恒定宽度的直车道”情况。
[0600]
假设车道的中心是平面上的平滑有向曲线r,其中其所有片段(表示为r
(1)
,...,r
(k)
)或者是线性的、或者是弧形的(arc)。请注意,曲线的平滑度意味着没有一对连续的片段可以是线性的。形式上,曲线将“纵向”参数参数映射到平面,即曲线是r:[y
min
,y
max
]

|2形式的函数。我们定义了连续的车道宽度函数w:[y
min
,y
max
]

|
+
,将纵向位置y映射为正的车道宽度值。对于每个y,根据r的平滑度,我们可以定义在y位置处曲线的法向单位向量(normal unit-vector),表示为r

(y)。我们自然地将平面上位于车道上的点的子集定义如下:
[0601]
r={r(y)+αw(y)r

(y)|y0[y
min
,y
max
],α0[
±
1/2]}
[0602]
非形式地,我们的目标将r的变换φ构造为,使得对于车道上的两辆汽车,它们的“逻辑排序”将被保留:如果在曲线上cr在cf的“后面”,则φ(cr)y《φ(cf)y。如果在曲线上c
l
在cr的“左侧”,则φ(c
l
)
x
《φ(cr)
x
。在这里,和rss一样,我们将把y轴与“纵向”轴相关联,x轴与“横向”相关联。
[0603]
为了定义φ,我们依赖于这样的假设:对于所有i,如果r(i)是半径为ρ的弧形,则整个r(i)的车道宽度≤ρ/2。请注意,这一假设适用于任何实际道路。这个假设简单地暗含了,对于所有(x',y')0r,存在唯一的一对y'0[y
min
,y
max
],α'0[
±
1/2],使得满足(x',y')=r(y')+α'w(y')r

(y')。我们现在可以定义φ:r

|2为φ(x',y')=(y',α'),其中(y',α')是满足(x',y')=r(y')+α'w(y')r

(y')的唯一值。
[0604]
这个定义抓住了车道的坐标系统中“横向操纵”的概念。例如,考虑一条加宽的车道,汽车恰好在该车道的边界中的一个边界上行驶(见图23)。车道2301的加宽意味着汽车2303正在远离车道的中心移动,因此具有相对于车道的横向速度。然而,这并不意味着它执行横向操纵。φ(x',y')
x
=α'的定义,即以w(y')为单位到车道中心的横向距离,意味着车道边界具有
±
1/2的固定横向位置。因此,坚持在车道边界中的一个边界上的汽车不被视为执行任何横向运动。最后,可以看出φ是同态(homomorphism)。当讨论φ(r)=[y
min
,y
max
]
×
[
±
1/2]时,使用基于车道的坐标系统这一术语。因此,我们得到了从一般的车道几何形状到直的、纵向/横向坐标系统的简化。
[0605]
将rss扩展到一般道路结构
[0606]
本部分描述了适用于所有道路结构的rss的完整定义。本部分涉及rss的定义,而不是如何有效地确保策略遵守rss。接下来引入路线优先级(route priority)的概念,以捕捉不止单车道几何形状存在的任何情况,例如交叉口。
[0607]
第二个一般化涉及双向道路,其中可能有两辆汽车朝相反的方向驾驶。在这种情况下,已经建立的rss定义仍然有效,只是对到迎面而来的交通的“安全距离”进行了微小的一般化。(使用交通灯控制交通流量的)受控交叉口可以完全由路线优先级和双向道路的概念来处理。没有明确路线定义的非结构化道路(例如停车场)也可以使用rss进行处理。rss在这种情况下仍然有效,在这种情况下,唯一需要的修改是采用定义虚拟路线并将每辆汽车分配到(可能是几条)路线的方式。
[0608]
路线优先级
[0609]
现在引入路线优先级的概念来处理在一个场景中有多个在特定区域重叠的不同道路几何形状的情景。如图24a-d所示,示例包括环形道、交叉口和并入高速公路。已经描述了一种将一般车道几何形状变换成对于纵轴和横轴具有一致的含义的、基于车道的几何形状的方法。现在解决存在不同道路几何形状的多条路线的情景。其遵循,当两辆车接近重叠区域时,两者都会执行到另一辆车的前方廊道的切入。当两条路线具有相同的几何形状时(如两条相邻高速公路车道的情况),这种现象不会发生。大致来说,路线优先级原则规定,如果路线r1、r2重叠,并且r1优先于r2,则来自r1的车辆进入来自r2的车辆的前方廊道不被视为执行切入。
[0610]
为形式地解释这个概念,回想一下,事故的归责取决于从车道的坐标系统中导出的几何特性并且取决于也依赖于它的最坏情况假设。令r1,...,rk为定义道路结构的路线。
作为一个简单的示例,考虑并道情景,如图24a所示。假设两辆汽车,2401(c1)和2402(c2)分别行驶在路线r1、r2上,并且r1是优先路线。例如,假设r1是高速公路车道,并且r2是并入车道。为每条路线定义了基于路线的坐标系统后,第一个观察是,我们可以在任何路线的坐标系统中考虑任何操纵。例如,如果我们使用r2的坐标系统,在r1上直行看起来像是并入r2的左侧。rss的定义的一种方法可以是,当且仅当如果操纵关于ri是安全的,那么每辆车都可以执行该操纵。然而,这意味着在优先路线上行驶的c1应该是关于并入路线(merging route)r2非常保守的,因为c2可以精确地在路线上行驶并因此可以横向位置获胜。这是不自然的,因为在这种情况下高速公路上的汽车有路权。为了克服这个问题,我们定义了某些其中定义了路线优先级、并且只有一些路线被认为与安全相关的区域。
[0611]
定义22(具有路线优先级的事故责任)假设r1、r2是两条重叠的具有不同几何形状的路线。我们使用r1》[b,e]r2来表示r1在r1坐标系统的纵向区间[b,e](图25)中优先于r2。假设在路线r1、r2上行驶的汽车c1、c2之间发生事故。对于i 0 {1,2},如果我们考虑ri的坐标系统,令指示对事故负责的汽车。事故的归责如下:
[0612]
·
若r1》[b,e]r2,并且在关于r1的归责时间上,其中一辆汽车在r
1-系统纵轴的[b,e]区间内,则归责根据b1。
[0613]
·
否则,归责根据b1∪b2。
[0614]
为了说明该定义,请再次考虑并入高速公路的示例。图25中表示为“b”和“e”的线表示r1》[b,e]r2的b、e的值。因此,我们允许汽车在高速公路上自然行驶,同时暗示并入汽车关于那些汽车必须是安全的。特别地,观察到在汽车2401c1在优先车道的中心行驶、没有横向速度的情况下,汽车2401 c1不会为与在非优先车道上行驶的汽车2402 c2的事故负责,除非2402 c2已经在安全距离处切入了2401 c1的廊道。请注意,最终结果与常规rss非常相似——这与汽车在直路上试图执行车道改变的情况完全相同。请注意,可能存在另一作用者使用的路线未知的情况。例如,在图26中,汽车2601可能无法确定汽车2602将走路径“a”还是路径“b”。在这种情况下,可以通过迭代地检查所有可能性来获得rss。
[0615]
双向交通
[0616]
为了处理双向交通,对归责定义的修改是通过锐化(sharpening)依赖于后方/前方关系的部分来实现的,因为在这种情况下,这些部分具有略有不同的含义。考虑两辆汽车c1、c2在某条直的双车道道路上行驶,纵向方向相反,即v
1,long
·v2,long
《0。在合理的城市情景中,相对于车道的驾驶方向可能是负的,诸如汽车偏离到对向车道(opposite lane)以超过停放的卡车,或者汽车正在倒车进入停车点。因此,需要扩展我们对于负的纵向速度被假设为不现实的情况所引入的安全纵向距离的定义。回想一下,如果cf的最大制动允许cr有足够的响应时间在碰撞cf之前制动,那么cr和cf之间的距离是安全的。在我们的情况中,我们再次以稍微不同的方式考虑对向汽车的“最坏情况”:当然,我们并不假设“最坏情况”是它朝向我们加速,而它确实会制动以避免碰撞——但只是使用一些合理的制动力。为了捕捉汽车之间的责任的差异,当他们中的一辆明显以相反的方向行驶时,我们从定义“正确的”行驶方向开始。
[0617]
在平行车道的rss定义中,相关车道被定义为其中心最靠近切入位置的车道。我们现在可以简化到只考虑这条车道(或者,在对称的情况下,分开处理两条车道,如定义22所
示)。在下面的定义中,术语“航向(heading)”表示横向速度除以纵向速度的反正切(弧度)。
[0618]
定义23((μ1,μ2,μ3)-正确驾驶方向获胜((μ1,μ2,μ3)-winning by correct driving direction))假设c1、c2以相反的方向行驶,即v
1,long
·v2,long
《0。令xi、hi为他们相对于车道的横向位置和航向。如果所有以下条件成立,我们称c1为(μ1,μ2,μ3)-正确驾驶方向获胜:
[0619]
·
|h1|《μ1,
[0620]
·
|h
2-π|《μ2,
[0621]
·
|x1|《μ3。
[0622]
该事件的指示符由w
cdd
(i)表示。
[0623]
换句话说,如果c1靠近车道中心在正确的方向上行驶,而c2采取相反的方向,则c1获胜。最多有一辆车能获胜,或者也可能没有一辆车能获胜。直觉上,假设在讨论的情况发生了碰撞。把更多的责任归给正确驾驶方向失败的汽车c1是合理的。这是通过针对汽车正确驾驶方向获胜的情况重新定义a
max,brake
来实现的。
[0624]
定义24(合理制动力(reasonable braking power))令α
max,brake,wcdd
》0为小于a
max,brake
的常数。假设c1、c2以相反的方向行驶。若ci为(μ1,μ2,μ3)-正确驾驶方向获胜,则每辆汽车ci的合理制动力(表示为rbpi)为a
max,brake,wcdd
,否则为a
max,brake

[0625]
对于正确驾驶方向获胜/未获胜的情况,a
max,brake,wcdd
、a
max,brake
的精确值是应该被定义的常数,并且可以取决于每辆汽车所行驶的道路和车道类型。例如,在一条狭窄的城市街道上,正确驾驶方向获胜可能并不意味着小得多的制动值:在繁忙的交通中,我们确实期望汽车以相似的力制动,无论是否有人明显偏离到它的车道之中。然而,考虑允许高速的农村双向道路的示例。当偏离到对向车道时,不能期望在正确方向上行驶的汽车应用非常强的制动力来避免撞到主车辆——主车辆将比它们有更多的责任。当两辆车在同一车道上,其中一辆正在倒车进入停车点时,可以对这种情况定义不同的常数。
[0626]
接下来定义以相反的方向行驶的汽车之间的安全距离,并立即导出其精确值。
[0627]
定义25(安全纵向距离-双向交通(safe longitudinal distance-two-way traffic))以相反的方向行驶并且都处于彼此的前方廊道的一辆汽车c1和另一辆汽车c2,若对于由c1、c2执行直到响应时间ρ的任何加速命令a,|a|《a
max,accel
,如果c1和c2从时间ρ应用它们的合理制动力直到完全停止,然后它们不会碰撞,则c1、c2之间的纵向距离关于响应时间ρ是安全的。
[0628]
引理10令c1、c2如定义25所示。令rbpi、a
max,accel
为合理制动(对于每个i)和加速度命令,并且令ρ为汽车的响应时间。令v1、v2为汽车的纵向速度,并且令l1、l2为它们的长度。定义v
i,ρ,max
=|vi|+ρ
·amax,accel
。令l=(lr+lf)/2。则,最小安全纵向距离为:
[0629][0630]
可以看出,总和(sum)中的项是每辆车在执行定义25中的操纵时直到达到完全停止之前行驶的最大距离。因此,为了使完全停止处于大于l的距离,初始距离必须大于这个总和与附加项l。
[0631]
将具有如定义25中定义的非安全纵向距离的rss的相同归责时间定义用于定义双向交通情景的归责/事故责任。
[0632]
定义26(双向交通中的归责)以相反的方向行驶的汽车c1、c2之间发生事故的双向交通中的归责,是归责时间处的状态的函数,并定义如下:
[0633]
·
如果归责时间也是切入时间,则归责被定义为和常规rss定义中的一样。
[0634]
·
否则,对于每一个i,如果在归责时间之后发生的某个时刻t,ci没有以至少rbpi的力来制动,则归责给ci。
[0635]
例如,假设在归责时间之前发生了安全切入。例如,c1偏离到了对向车道,以安全距离执行了到c2的廊道的切入。请注意,c2正确驾驶方向获胜,因此这个距离可能非常大——我们不期望c2执行强的制动力,而只是合理制动力。那么,两辆汽车都有责任不彼此相撞。然而,如果切入不在安全距离内,则我们使用常规定义,注意如果c2在其车道中心行驶而没有横向运动,则c2不会被归责。将完全归责给c1。这允许汽车在其车道中心自然行驶,而不用担心不安全地偏离到其车道的交通。另一方面,允许安全偏离到对向车道,这是密集城市交通中需要的常见操纵。考虑到汽车启动倒车停车操纵的示例,它应该在确保与其后面汽车的距离是安全的同时开始倒车。
[0636]
交通灯
[0637]
在包括有交通灯的十字路口的情景中,人们可能会认为交通灯情景的简单规则是“如果一辆汽车的路线有绿灯,而另一辆汽车的路线有红灯,那么归责给路线有红灯的那一辆”。然而,这不是正确的规则,尤其是在所有情况下。考虑例如图27中描绘的情景。即使汽车2701在具有绿灯的路线上,我们也不期望它忽略已经在十字路口的汽车2703。正确的规则是具有绿灯的路线优先于具有红灯的路线。因此,我们获得了从交通灯到我们之前已经描述的路线优先级概念的清晰简化。
[0638]
非结构化道路
[0639]
转到无法定义清晰路线几何形状的道路,首先考虑根本没有车道结构的情景(例如停车场)。确保不会发生事故的一个方法是要求每辆汽车都直线行驶,而如果发生航向改变,必须在我周围没有附近汽车时进行该航向改变。这背后的基本原理是,一辆汽车可以预测其他汽车将做什么,并相应地行动。如果其他汽车偏离了这一预测(通过改变航向),这是在足够长的距离内完成的,因此可能有足够的时间来修正预测。当有车道结构时,它可以更智能地预测其他汽车将做什么。如果根本没有车道结构,汽车将根据其当前航向继续行驶。从技术上来说,这相当于根据每辆汽车的航向将每辆汽车分配到一条虚拟的直的路线上。接下来,考虑一个大型非结构化环形道的情景(例如,巴黎凯旋门周围)。这里,合理的预测是假设汽车将根据环形道的几何形状继续行驶,同时保持其偏移。从技术上来说,这相当于根据每辆汽车与环形道中心的当前偏移,将每辆汽车分配到一条虚拟的弧形路线。
[0640]
上述驾驶策略系统(例如,rl系统)可以与一个或多个所述的事故责任规则一起实施,以提供导航系统,该导航系统在决定要实施的特定导航指令时考虑潜在事故责任。这些规则可以在规划阶段期间应用;例如,在一组编程的指令内或在经训练的模型内应用,使得由已经符合规则的系统产生所建议的导航动作。例如,驾驶策略模块可以考虑例如rss所基于的一个或多个导航规则,或用rss所基于的一个或多个导航规则来训练。附加地或可替代地,rss安全约束可以被应用为过滤层,通过该过滤层,针对相关事故责任规则对由规划阶段所建议的所有建议的导航动作进行测试,以确保所建议的导航动作是相符合的。如果特定动作符合rss安全约束,则可以实施该动作。否则,如果所建议的导航动作不符合rss安全
约束(例如,如果基于一个或多个上述规则,所建议的动作可能导致主车辆的事故责任),则不采取该动作。
[0641]
实际上,特定的实施方式可以包括用于主车辆的导航系统。主车辆可以配备有图像捕捉设备(例如,一个或多个相机,诸如上述那些相机中的任何一个),其在操作期间捕捉表示主车辆环境的图像。使用图像信息,驾驶策略可以接收多个输入并输出用于实现主车辆的导航目标的规划导航动作。驾驶策略可以包括一组编程的指令、经训练的网络等,其可以接收各种输入(例如,来自一个或多个相机的、示出了主车辆的周围环境的图像,所述主车辆的周围环境包括目标车辆、道路、对象、行人等;来自激光雷达或雷达系统的输出;来自速度传感器、悬架传感器等的输出;表示主车辆的一个或多个目标的信息
‑‑
例如用于将乘客运送到特定位置的导航规划等)。基于该输入,处理器可以例如通过分析相机图像、激光雷达输出、雷达输出等,来识别主车辆环境中的目标车辆。在一些实施例中,处理器可以通过分析一个或多个输入,诸如一个或多个相机图像、激光雷达输出和/或雷达输出,来识别主车辆环境中的目标车辆。此外,在一些实施例中,处理器可以基于传感器输入的多数同意或组合(例如,通过分析一个或多个相机图像、激光雷达输出和/或雷达输出,并且基于输入的多数同意或组合来接收识别目标车辆的检测结果),来识别主车辆环境中的目标车辆。
[0642]
基于驾驶策略模块可用的信息,可以以用于实现主车辆的导航目标的一个或多个规划导航动作的形式来提供输出。在一些实施例中,rss安全约束可以被应用为规划导航动作的过滤器。也就是说,规划导航动作一旦产生,就可以针对至少一个事故责任规则(例如,上面讨论的事故责任规则中的任何一个)对其进行测试,以确定主车辆相对于所识别的目标车辆的潜在事故责任。并且,如所指出的,如果针对至少一个事故责任规则对规划导航动作的测试指示:如果采取了规划导航动作,可能存在主车辆的潜在事故责任,则处理器可以使得主车辆不实施规划导航动作。另一方面,如果针对至少一个事故责任规则对规划导航动作的测试指示:如果采取了规划导航动作,不会产生主车辆的事故责任,则处理器可以使得主车辆实施规划导航动作。
[0643]
在一些实施例中,系统可以针对至少一个事故责任规则来测试多个潜在导航动作。基于测试结果,系统可以将潜在导航动作过滤为多个潜在导航动作的子集。例如,在一些实施例中,子集可以仅包括以下的潜在导航动作:针对这些潜在导航动作,针对至少一个事故责任规则的测试指示,如果采取了潜在导航动作,则不会产生主车辆的事故责任。然后,系统可以对没有事故责任的潜在导航动作进行评分和/或优先级排序,并且基于例如最佳评分或最高优先级来选择导航动作之一来实施。评分和/或优先级可以基于例如一个或多个因素,诸如被视为最安全、最有效、乘客最舒适的潜在导航动作等。
[0644]
在一些情况下,是否实施特定的规划导航动作的确定还可以取决于默认紧急程序在规划动作之后的下一状态下是否可用。如果dep可用,rss过滤器可以批准规划动作。另一方面,如果dep将不可用,下一状态可以被视为不安全的状态,并且规划导航动作可以被拒绝。在一些实施例中,规划导航动作可以包括至少一个默认紧急程序。
[0645]
所述系统的一个好处是,为了确保车辆的安全动作,只需要考虑主车辆相对于特定目标车辆的动作。因此,在存在一个以上目标车辆的情况下,可以关于主车辆附近的影响区中的目标车辆(例如,在25米、50米、100米、200米等内),针对事故责任规则来顺序地测试主车辆的规划动作。实际上,至少一个处理器可以进一步被编程为:基于对表示主车辆环境
的至少一个图像的分析(或者基于激光雷达或雷达信息等)来识别主车辆环境中的多个其他目标车辆,并重复针对至少一个事故责任规则对规划导航动作的测试,以确定主车辆相对于多个其他目标车辆中的每一个的潜在事故责任。如果所重复的针对至少一个事故责任规则对规划导航动作的测试指示:如果采取了规划导航动作,可能存在主车辆的潜在事故责任,则处理器可以使得主车辆不实施规划导航动作。如果所重复的针对至少一个事故责任规则对规划导航动作的测试指示:如果采取了规划导航动作,不会产生主车辆的事故责任,则处理器可以使得主车辆实施规划导航动作。
[0646]
如上所述,上述任何规则都可以用作rss安全测试的基础。在一些实施例中,至少一个事故责任规则包括跟随规则(following rule),该规则定义了所识别的目标车辆后方的距离,主车辆不能在不具有事故责任的可能性的情况下在该距离内行进。在其他情况下,至少一个事故责任规则包括前导规则(leading rule),该规则定义了所识别的目标车辆前方的距离,主车辆不能在不具有事故责任的可能性的情况下在该距离内行进。
[0647]
虽然上述系统可以将rss安全测试应用于单个规划导航动作,以测试与主车辆不应该采取任何可能要对导致的事故负责的动作的规则的符合性,但是该测试可以应用于多于一个规划导航动作。例如,在一些实施例中,至少一个处理器可以基于至少一个驾驶策略的应用,确定用于实现主车辆的导航目标的两个或更多个规划导航动作。在这些情况下,处理器可以针对至少一个事故责任规则来测试两个或更多个规划导航动作中的每一个,以确定潜在事故责任。并且,对于两个或更多个规划导航动作中的每一个,如果测试指示:如果采取了两个或更多个规划导航动作中的特定一个,可能存在主车辆的潜在事故责任,则处理器可以使得主车辆不实施规划导航动作中的该特定一个。另一方面,对于两个或更多个规划导航动作中的每一个,如果测试指示:如果采取两个或更多个规划导航动作中的特定一个,不会产生主车辆的事故责任,则处理器可以将两个或更多个规划导航动作中的该特定一个识别为供实施的可行候选。接下来,处理器可以基于至少一个成本函数从供实施的可行候选当中选择要采取的导航动作,并使得主车辆实施所选择的导航动作。
[0648]
因为rss的实现涉及确定主车辆和一个或多个目标车辆之间的事故的相对潜在责任、以及测试规划导航动作的安全符合性,所以系统可以跟踪对于遇到的车辆的事故责任潜在性。例如,系统不仅能够避免采取导致的事故将造成主车辆的责任的动作,而且主车辆系统还能够跟踪一个或多个目标车辆,并且识别和跟踪那些目标车辆已经违反了哪些事故责任规则。在一些实施例中,用于主车辆的事故责任跟踪系统可以包括至少一个处理设备,该处理设备被编程为:从图像捕捉设备接收表示主车辆的环境的至少一个图像,并且分析至少一个图像以识别主车辆环境中的目标车辆。基于对至少一个图像的分析,处理器可以包括编程以确定所识别的目标车辆的导航状态的一个或多个特性。导航状态可以包括目标车辆的各种操作特性,诸如车辆速度、到车道中心的接近度、横向速度、行驶方向、距主车辆的距离、航向或者可以用于基于上述规则中的任何一个确定潜在事故责任的任何其他参数。处理器可以将所确定的所识别的目标车辆的导航状态的一个或多个特性与至少一个事故责任规则(例如,上述规则中的任何一个,诸如横向速度获胜、方向优先级、车道中心接近度获胜、跟随或前导距离和切入等)进行比较。基于状态与一个或多个规则的比较,处理器可以存储指示所识别的目标车辆方的潜在事故责任的至少一个值。并且在发生事故的情况下,处理器可以提供所存储的至少一个值的输出(例如,经由有线或无线的任何合适的数据
接口)。例如,可以在主车辆和至少一个目标车辆之间发生事故之后提供这样的输出,并且该输出可以用于或者可以以其他方式提供事故责任的指示。
[0649]
可以在任何合适的时间和任何合适的条件下存储指示潜在事故责任的至少一个值。在一些实施例中,如果确定主车辆不能避免与所识别的目标车辆碰撞,则至少一个处理设备可以为所识别的目标车辆分配和存储碰撞责任值。
[0650]
事故责任跟踪能力不限于单个目标车辆,而是可以用于跟踪多个遇到的目标车辆的潜在事故责任。例如,至少一个处理设备可以被编程为检测主车辆的环境中的多个目标车辆,确定多个目标车辆中的每一个的导航状态特性,并且基于目标车辆中的每一个的相应导航状态特性与至少一个事故责任规则的比较,确定和存储指示多个目标车辆中的相应目标车辆方的潜在事故责任的值。如上所述,用作责任跟踪的基础的事故责任规则可以包括上述规则中的任何一个或任何其他合适的规则。例如,至少一个事故责任规则可以包括横向速度规则、横向位置规则、驾驶方向优先级规则、基于交通灯的规则、基于交通标志的规则、路线优先级规则等。事故责任跟踪功能还可以与基于rss考虑的安全导航相结合(例如,主车辆的任何动作是否会造成对导致的事故的潜在责任)。
[0651]
除了基于根据rss的事故责任考虑进行导航之外,还可以从车辆导航状态以及对特定的未来导航状态是否被认为是安全的确定(例如,如上文详细描述的,是否存在dep使得事故可以被避免或者任何导致的事故不会被认为是主车辆的过错)的方面来考虑导航。可以控制主车辆从安全状态导航到安全状态。例如,在任何特定状态下,驾驶策略可用于生成一个或多个规划导航动作,并且可通过确定对应于每个规划动作的所预测的未来状态是否将提供dep来测试这些动作。如果是这样,提供dep的一个或多个规划导航动作可以被视为安全的,并可以有资格供实施。
[0652]
在一些实施例中,用于主车辆的导航系统可以包括至少一个处理设备,该处理设备被编程为:从图像捕捉设备接收表示主车辆的环境的至少一个图像;基于至少一个驾驶策略,确定用于实现主车辆的导航目标的规划导航动作;分析至少一个图像以识别主车辆的环境中的目标车辆;针对至少一个事故责任规则测试规划导航动作,以确定主车辆相对于所识别的目标车辆的潜在事故责任;如果针对至少一个事故责任规则对规划导航动作的测试指示:如果采取规划导航动作,可能存在主车辆的潜在事故责任,则使得主车辆不实施规划导航动作;并且如果针对至少一个事故责任规则对规划导航动作的测试指示:如果采取规划导航动作,不会产生主车辆的事故责任,则使得主车辆实施规划导航动作。
[0653]
在一些实施例中,用于主车辆的导航系统可以包括至少一个处理设备,该处理设备被编程为:从图像捕捉设备接收表示主车辆的环境的至少一个图像;基于至少一个驾驶策略,确定主车辆的多个潜在导航动作;分析至少一个图像以识别主车辆的环境中的目标车辆;针对至少一个事故责任规则测试多个潜在导航动作,以确定主车辆相对于所识别的目标车辆的潜在事故责任;选择潜在导航动作中的、对其的测试指示如果采取所选择的潜在导航动作不会产生主车辆的事故责任的一个潜在导航动作;并使得主车辆实施所选择的潜在导航动作。在一些情况下,所选择的潜在导航动作可以从多个潜在导航动作的子集中选择,对多个潜在导航动作的子集的测试指示:如果采取多个潜在导航动作的子集中的任何一个,不会产生主车辆的事故责任。此外,在一些情况下,可以根据评分参数来选择所选择的潜在导航动作。
[0654]
在一些实施例中,用于导航主车辆的系统可以包括至少一个处理设备,该处理设备被编程为:从图像捕捉设备接收表示主车辆的环境的至少一个图像,并且基于至少一个驾驶策略确定用于实现主车辆导航目标的规划导航动作。处理器还可以分析至少一个图像以识别主车辆的环境中的目标车辆;确定如果采取了规划导航动作将会产生的主车辆和目标车辆之间的下一状态距离;确定主车辆的当前最大制动能力和主车辆的当前速度;确定目标车辆的当前速度,并基于目标车辆的至少一个辨识的特性假设目标车辆的最大制动能力;并且,如果给定主车辆的最大制动能力和主车辆的当前速度,主车辆可以在停止距离内停止,则实施规划导航动作,该停止距离小于所确定的下一状态距离与基于目标车辆的当前速度和所假设的目标车辆的最大制动能力而确定的目标车辆行驶距离之和。停止距离还可以包括主车辆在没有制动的反应时间期间行驶的距离。
[0655]
确定目标车辆的最大制动能力所基于的目标车辆的所辨识的特性可以包括任何合适的特性。在一些实施例中,特性可以包括车辆类型(例如,摩托车、汽车、公共汽车、卡车,其中每一个都可以与不同的制动曲线(braking profile)相关联)、车辆尺寸、预测的或已知的车辆重量、车辆型号(vehicle model)(例如,可以用于查找已知的制动能力)等。
[0656]
在一些情况下,可以相对于一个以上的目标车辆做出安全状态确定。例如,在一些情况下,安全状态确定(基于距离和制动能力)可以基于领先主车辆的两个或更多个所识别的目标车辆。这种确定可能是有用的,尤其是在关于最前面的目标车辆的前方的信息不可用的情况下。在这种情况下,为了确定安全状态、安全距离和/或可用的dep,可以假设最前面的可检测到车辆将经历与不可移动或几乎不可移动的障碍物的即将发生的碰撞,使得跟随的目标车辆可以比其自身的制动曲线所允许的更快地达到停止(例如,第二目标车辆可能与最前面的第一车辆碰撞,因此比预期的最大制动条件更快地达到停止)。在这种情况下,基于所识别的最前面目标车辆相对于主车辆的位置来确定安全状态、安全跟随距离、dep可能是重要的。
[0657]
在一些实施例中,这种安全状态到安全状态导航系统可以包括至少一个处理设备,该处理设备被编程为:从图像捕捉设备接收表示主车辆的环境的至少一个图像。这里,与其他实施例一样,由图像捕捉设备(例如,相机)捕捉的图像信息可以用从一个或多个其他传感器(诸如,激光雷达或雷达系统)获得的信息来补充。在一些实施例中,用于导航的图像信息甚至可以源自激光雷达或雷达系统,而不是源自光学相机。至少一个处理器可以基于至少一个驾驶策略来确定用于实现主车辆导航目标的规划导航动作。处理器可以分析至少一个图像(例如,从相机、雷达、激光雷达或可以从中获得主车辆的环境的图像的任何其他设备中的任何一个获得的图像,无论是基于光学的、基于距离图的等等)以识别主车辆前方的第一目标车辆和第一目标车辆前方的第二目标车辆。处理器然后可以确定如果采取了规划导航动作将会产生的主车辆和第二目标车辆之间的下一状态距离。接下来,处理器可以确定主车辆的当前最大制动能力和主车辆的当前速度。如果给定主车辆的最大制动能力和主车辆的当前速度,主车辆可以在小于所确定的主车辆和第二目标车辆之间的下一状态距离的停止距离内停止,则处理器可以实施规划导航动作。
[0658]
也就是说,如果主车辆处理器确定在前方可见目标车辆和主车辆之间的下一状态距离中有足够的距离来停止而不发生碰撞或不发生责任将归给主车辆的碰撞,并且假设前方可见目标车辆将在任何时刻突然完全停止,则主车辆的处理器可以采取规划导航动作。
另一方面,如果没有足够的空间使主车辆停止而不发生碰撞,则可以不采取规划导航动作。
[0659]
另外,虽然在一些实施例中下一状态距离可以用作基准,但是在其他情况下,可以使用不同的距离值来确定是否采取规划导航动作。在一些情况下,如在上述情况下,主车辆可能需要在其中停止以避免碰撞的实际距离可能小于所预测的下一状态距离。例如,在前方可见目标车辆被一个或多个其他车辆(例如,上述示例中的第一目标车辆)跟随的情况下,实际预测的所需停止距离将是所预测的下一状态距离减去跟随前方可见目标车辆的(一个或多个)目标车辆的长度。如果前方可见目标车辆立即停止,可以假设正在跟随的目标车辆将与前方可见目标车辆碰撞,因此,它们也需要被主车辆避开以避免碰撞。因此,主车辆处理器可以评估下一状态距离减去主车辆和前方可见/检测到的目标车辆之间的任何中间目标车辆的总长度,以确定是否有足够的空间在最大制动条件下使主车辆停下来而没有碰撞。
[0660]
在其他实施例中,用于评估主车辆和一个或多个前方目标车辆之间碰撞的基准距离可以大于所预测的下一状态距离。例如,在一些情况下,前方可见/检测到的目标车辆可能会快速但不是立即停止,使得前方可见/检测到的目标车辆在假设的碰撞之后行驶较短的距离。例如,如果该车辆撞到停放的汽车,碰撞的车辆在完全停止之前仍可能行驶一段距离。在假设的碰撞后行驶的距离可能小于相关目标车辆的假设的或确定的最小停止距离。因此,在一些情况下,主车辆的处理器可以在其对是否采取规划导航动作的评估中延长下一状态距离。例如,在该确定中,下一状态距离可以增加5%、10%、20%等,或者可以用预定的固定距离(10米、20米、50米等)来补充,以考虑在假设的即将发生的碰撞后前方/可见目标车辆可能行驶的合理距离。
[0661]
除了在该评估将下一状态距离延长一假设的距离值之外,可以通过考虑前方可见/检测到的目标车辆在碰撞后行驶的距离和跟随前方可见/检测到的目标车辆的任何目标车辆的长度(其可以假设在前方可见/检测到的车辆突然停止后与前方可见/检测到的车辆堆积在一起)两者,来修改下一状态距离。
[0662]
除了基于主车辆和前方可见/检测到的目标车辆之间的下一状态距离(通过考虑前方可见/检测到的目标车辆的碰撞后运动和/或跟随前方可见/检测到的目标车辆的车辆长度对其修改)确定是否采取规划导航动作之外,主车辆可以在其确定中继续考虑一个或多个前方车辆的制动能力。例如,主车辆处理器可以继续确定如果采取了规划导航动作将会产生的主车辆和第一目标车辆(例如,跟随前方可见/检测到的目标车辆的目标车辆)之间的下一状态距离;确定第一目标车辆的当前速度,并基于第一目标车辆的至少一个所辨识的特性假设第一目标车辆的最大制动能力;并且如果给定主车辆的最大制动能力和主车辆的当前速度,主车辆不能在停止距离内停止,则不实施规划导航动作,该停止距离小于所确定的主车辆和第一目标车辆之间的下一状态距离与基于第一目标车辆的当前速度和所假设的第一目标车辆的最大制动能力而确定的第一目标车辆行驶距离之和。这里,如在上述示例中,第一目标车辆的所辨识的特性可以包括车辆类型、车辆尺寸、车辆型号等。
[0663]
在一些情况下(例如,通过其他车辆的动作),主车辆可以确定碰撞即将发生并且不可避免。在这种情况下,主车辆的处理器可以被配置为选择导致的碰撞将不会产生主车辆的责任的导航动作(如果可用)。附加地或可替代地,主车辆的处理器可以被配置为选择将比当前轨迹或相对于一个或多个其他导航选项而言对主车辆提供更少的潜在损害或对
目标对象提供更少的潜在损害的导航动作。此外,在一些情况下,主车辆处理器可以基于预期碰撞的一个或多个对象的类型的考虑来选择导航动作。例如,当面对由于第一导航动作而与停放的汽车发生碰撞或由于第二导航动作而与不可移动的对象发生碰撞时,可以选择对主车辆提供更低潜在损害的动作(例如,导致与停放的汽车发生碰撞的动作)。当面对由于第一导航动作而与以与主车辆相似的方向移动的车辆发生碰撞或由于第二导航动作而与停放的车辆发生碰撞时,可以选择对主车辆提供更低潜在损害的动作(例如,导致与移动的汽车发生碰撞的动作)。当面临由于第一导航动作而与行人发生碰撞或者由于第二导航动作而与任何其他对象发生碰撞时,可以选择提供对于行人碰撞的任何替代的动作。
[0664]
实际上,用于导航主车辆的系统可以包括至少一个处理设备,该处理设备被编程为:从图像捕捉设备接收表示主车辆的环境的至少一个图像(例如,可见图像、激光雷达图像、雷达图像等);从至少一个传感器接收主车辆的当前导航状态的指示符;并且基于对至少一个图像的分析以及基于主车辆的当前导航状态的指示符,确定主车辆和一个或多个对象之间的碰撞是不可避免的。处理器可以评估可用的替代。例如,处理器可以基于至少一个驾驶策略来确定涉及与第一对象的预期碰撞的主车辆的第一规划导航动作以及涉及与第二对象的预期碰撞的主车辆的第二规划导航动作。可以针对至少一个事故责任规则来测试第一和第二规划导航动作,以确定潜在事故责任。如果针对至少一个事故责任规则对第一规划导航动作的测试指示:如果采取第一规划导航动作,可能存在主车辆的潜在事故责任,则处理器可以使得主车辆不实施第一规划导航动作。如果针对至少一个事故责任规则对第二规划导航动作的测试指示:如果采取第二规划导航动作,不会产生主车辆的事故责任,则处理器可以使得主车辆实施第二规划导航动作。对象可以包括其他车辆或非车辆对象(例如,道路碎片、树木、电线杆、标志、行人等)。
[0665]
以下附图和讨论提供了在进行导航和实施所公开的系统和方法时可能发生的各种场景的示例。在这些示例中,主车辆可以避免采取如果采取了的话将会产生对于导致的事故归因于主车辆的责任的动作。
[0666]
图28a和28b示出了以下情景和规则的示例。如图28a所示,车辆2804(例如,目标车辆)周围的区域表示车辆2802(例如,主车辆)的最小安全距离廊道,车辆2802在车道上行驶在车辆2804后面一段距离。根据与所公开的实施例一致的一条规则,为了避免责任归属于车辆2802的事故,车辆2802必须通过留在车辆2802周围的区域来保持最小安全距离。相反,如图28b所示,如果车辆2804制动,那么如果发生事故,则车辆2802将有过错。
[0667]
图29a和29b示出了切入场景中的示例归责。在这些场景下,车辆2902周围的安全廊道确定切入操纵中的过错。如图29a所示,车辆2902在车辆2904的前方切入,违反了安全距离(由车辆2904周围的区域描绘),并因此有过错。如图29b所示,车辆2902在车辆2904的前方切入,但是在车辆2904的前方保持了安全距离。
[0668]
图30a和30b示出了切入情景中的示例归责。在这些情景中,车辆3004周围的安全廊道确定车辆3002是否有过错。在图30a中,车辆3002在车辆3006后面行驶,并且改变到目标车辆3004正在行驶的车道。在这种情景下,车辆3002违反了安全距离,并且因此如果发生事故,就有过错。在图30b中,车辆3002切入车辆3004后面并保持安全距离。
[0669]
图31a-31d示出了漂移情景中的示例归责。在图31a中,该情景以车辆3104的轻微横向操纵、切入到车辆3102的宽阔廊道开始。在图31b中,车辆3104继续切入车辆3102的正
常廊道,违反了安全距离区域。如果发生事故,应归责给车辆3104。在图31c中,车辆3104保持其初始位置,而车辆3102横向移动,“迫使”违反正常安全距离廊道。如果发生事故,应归责给车辆3102。在图31b中,车辆3102和3104朝向彼此横向移动。如果发生事故,责任由两辆车分担。
[0670]
图32a和32b示出了双向交通情景中的示例归责。在图32a中,车辆3202对车辆3206进行超车,并且车辆3202已经执行了切入操纵,保持着距车辆3204的安全距离。如果发生事故,车辆3204应该因没有以合理的力制动而被归责。在图32b中,车辆3202切入,而没有与车辆3204保持安全的纵向距离。如果发生事故,要归责给车辆3202。
[0671]
图33a和33b示出了双向交通情景中的示例归责。在图33a中,车辆3302漂移到迎面而来的车辆3204的路径中,保持着安全距离。如果发生事故,车辆3204因没有以合理的力制动而被归责。在图33b中,车辆3202漂移到迎面而来的车辆3204的路径中,违反了安全的纵向距离。如果发生事故,要归责给车辆3204。
[0672]
图34a和34b示出了路线优先级情景中的示例归责。在图34a中,车辆3402运行到停止标志。由于不尊重交通灯分配给车辆3404的优先权,责任归属于车辆3402。在图34b中,尽管车辆3402没有优先权,但是当车辆3404的灯变绿时,车辆3402已经在十字路口。如果车辆3404撞到3402,将归责给车辆3404。
[0673]
图35a和35b示出了路线优先级情景中的示例归责。在图35a中,车辆3502倒车进入迎面而来的车辆3504的路径。车辆3502执行保持着安全距离的切入操纵。如果发生事故,车辆3504应该为没有以合理的力制动而被归责。在图35b中,车辆3502在没有保持安全纵向距离的情况下切入。如果发生事故,要归责给车辆3502。
[0674]
图36a和36b示出了路线优先级情景中的示例归责。在图36a中,车辆3602和车辆3604在相同的方向上行驶,而车辆3602跨过车辆3604的路径左转。车辆3602执行保持着安全距离的切入操纵。如果发生事故,车辆3604应该为没有以合理的力制动而被归责。在图36b中,车辆3602在没有保持安全纵向距离的情况下切入。如果发生事故,要归责给车辆3602。
[0675]
图37a和37b示出了路线优先级情景中的示例归责。在图37a中,车辆3702想要左转,但是必须给迎面而来的车辆3704让路。车辆3702左转,违反了相对于车辆3704的安全距离。责任在于车辆3702。在图37b中,车辆3702左转,相对于车辆3704保持着安全距离。如果发生事故,车辆3704应该为没有以合理的力制动而被归责。
[0676]
图38a和38b示出了路线优先级情景中的示例归责。在图38a中,车辆3802和车辆3804直行,并且车辆3802具有停止标志。车辆3802进入十字路口,违反了相对于车辆3804的安全距离。责任在于车辆3802。在图38b中,车辆3802进入十字路口,同时相对于车辆3804保持着安全距离。如果发生事故,车辆3804应该为没有以合理的力制动而被归责。
[0677]
图39a和39b示出了路线优先级情景中的示例归责。在图39a中,车辆3902想要左转,但是必须给来自其右侧的车辆3904让路。车辆3902进入十字路口,违反了路权和相对于车辆3904的安全距离。责任在于车辆3902。在图39b中,车辆3902进入十字路口,同时保持着路权和相对于车辆3904的安全距离。如果发生事故,车辆3904应该为没有以合理的力制动而被归责。
[0678]
图40a和40b示出了交通灯情景中的示例归责。在图40a中,车辆4002正在闯红灯。
由于不尊重交通灯分配给车辆4004的优先权,责任归属于车辆4002。在图40b中,尽管车辆4002没有优先权,但是当车辆4004的灯变绿时,车辆4002已经在十字路口。如果车辆4004撞到车辆4002,将归责给车辆4004。
[0679]
图41a和41b示出了交通灯情景中的示例归责。车辆4102正在跨过迎面而来的车辆4104的路径左转。车辆4104具有优先权。在图41中,车辆4102左转,违反了相对于车辆4104的安全距离。责任归属于车辆4102。在图41b中,车辆4102左转,相对于车辆4104保持着安全距离。如果发生事故,车辆4104应该为没有以合理的力制动而被归责。
[0680]
图42a和42b示出了交通灯情景中的示例归责。在图42a中,车辆4202正在右转,切入正在直行的车辆4204的路径。红灯时右转(right-on-red)被假设为合法的操纵,但是车辆4204具有路权,因为车辆4202违反了相对于车辆4204的安全距离。责任归属于车辆4202。在图42b中,车辆4202右转,相对于车辆4204保持着安全距离。如果发生事故,车辆4204应该为没有以合理的力制动而被归责。
[0681]
图43a-43c示出了示例弱势道路使用者(vru)情景。车辆执行操纵时与动物或vru发生的事故被视为切入的变型,其中默认归责给汽车,但有一些例外。在图43a中,车辆4302切入动物(或vru)的路径,同时保持着安全距离并确保可以避免事故。在图43b中,车辆4302切入动物(或vru)的路径,违反了安全距离。责任归属于车辆4302。在图43c中,车辆4302注意到动物并停止,给动物足够的时间来停止。如果动物撞到了汽车,那要归责给动物。
[0682]
图44a-44c示出了示例弱势道路使用者(vru)情景。在图44a中,车辆4402正在设置有信号灯的十字路口左转,并在人行横道上遇到行人。车辆4402有红灯,并且vru有绿灯。车辆4402有过错。在图44b中,车辆4402有绿灯,并且vru有红灯。如果vru进入人行横道,则vru有过错。在图44c中,车辆4402有绿灯,并且vru有红灯。如果vru已经在人行横道上,则车辆4402有过错。
[0683]
图45a-45c示出了示例弱势道路使用者(vru)情景。在图45a中,车辆4502正在右转并遇到骑车人。骑车人有绿灯。车辆4502有过错。在图45b中,骑车人有红灯。如果骑车人进入十字路口,则骑车人有过错。在图45c中,骑车人有红灯,但已经在十字路口了。车辆4502有过错。
[0684]
图46a-46d示出了示例弱势道路使用者(vru)情景。车辆不执行操纵时与vru发生的事故默认归责给车辆,但有一些例外。在图46a中,车辆4602必须始终确保保持安全距离,并确保能够避免与vru发生事故。在图46b中,如果车辆4602没有保持安全距离,则要归责给车辆4602。在图46c中,如果车辆4602没有保持足够低的速度以便避免与可能被车辆5604遮挡的vru相撞,或者驾驶超过法定限速,则要归责给车辆4602。在图46d中,在vru可能被车辆4604遮挡的另一情景下,如果车辆4602保持足够低的速度,但vru速度高于合理的阈值,则要归责给vru。
[0685]
如本文所公开的,rss定义了多作用者情景的框架。带有静态对象、道路偏离、失控或车辆故障的事故都归责给主车辆(host)。rss定义了谨慎操纵,谨慎操纵不允许与其他对象发生事故,除非其他对象危险地操纵到主车辆的路径上(在这种情况下,要归责给它们)。在责任在于目标(target)的肯定碰撞的情况下,主车辆将应用它的制动。只有在操纵是“谨慎的”(感知到不会引起另一事故)的情况下,系统才可以考虑规避转向。
[0686]
非碰撞事故包括由车辆火灾、坑洼、坠落对象等引发的事故。在这些情况下,可能
默认归责给主车辆,但主车辆可以避免的情景除外,诸如可以被分类为“静态对象”情景的坑洼和坠落对象,假设它们在安全距离处可见或存在谨慎的规避操纵。在主车辆是静止的多作用者情景中,不应归责给主车辆。在这种情况下,目标实质上执行了不安全切入。例如,如果骑车人骑进一辆静止的汽车,则不应归责给主车辆。
[0687]
rss还包括在道路结构不清晰的地方(诸如停车场或没有车道标记的宽阔环形道)分配责任的指南。在这些非结构化道路情景中,通过检查每辆车与其路径的偏离来确定它们是否允许了足够的距离以允许该区域中的其他对象进行调整,从而分配责任。
[0688]
与责任敏感安全性(rss)有关的其他细节
[0689]
如上所述,rss提供了一组数学公式,该数学公式可用于确保实施rss的车辆不会卷入由其引起的事故中。结果,在一些实施方式中,rss可以设置极端的包络(例如,最小安全纵向距离),这将保证实施rss的车辆不会卷入应归责于该车辆的事故中。在一些实施例中,系统可以实施修改的rss,其可以涉及预定的操作包络,该包络可以大于上述的rss协议。至少在某些情况下,这种改进的rss可以提供更高的安全等级,并减少可能归因于采用rss的车辆的错误的概率。这样的修改的rss系统将在下面例如与所描述的舒适rss系统相关地更详细进行描述。
[0690]
如上所述,rss可以假设主车辆将以其最大制动能力进行制动以避免与目标车辆、vru或另一对象的碰撞。rss可以基于主车辆和目标车辆的速度、主车辆和目标车辆的最大制动能力以及在主车辆反应时间内的主车辆的最大加速能力,确定与主车辆之间的安全纵向距离,实际上是确定缓冲区,该缓冲区的大小如上所述。如果主车辆进入小于安全距离(例如,该rss距离)的距离内,则主车辆即使以其最大制动能力进行制动,也可能无法在不接触目标车辆的情况下停止(至少在某些情况下),如图28a-46d的示例中所示。施加最大制动,尤其是在突然进行这样的施加时,可能被认为是一种极端反应,并且这种极端反应应保留在无法避免的情况下。在某些情况下,最大制动可能会让乘客感到不舒服,可能涉及到拖拽车辆,可能严重磨损车辆的硬件(轮胎、制动片等)等。因此,为了避免出现最大制动情景以及可能与目标车辆发生接触,至少在某些情况下或在某些实施方式中,可以采用基于rss安全距离的驾驶策略来维持相对于目标车辆的安全纵向距离。
[0691]
如上所述,rss距离可以包括取决于主车辆在感测到的事件与主车辆对该感测到的事件的反应之间的时间段期间(即,与主车辆相关联的反应时间)可能经历的最大可能加速能力的分量。例如,rss可以应对在主车辆感测到目标车辆、vru或其他对象的时间段与主车辆开始施加制动或进行另一导航操纵的时间之间的延迟。例如,在主车辆检测到目标车辆正在制动的时间与主车辆开始制动或开始另一回避操纵的时间之间,可能存在若干毫秒(或更多或更少)。上面描述了与rss和rss安全距离有关的更多细节。
[0692]
定义27(rss安全距离)若对于由cf执行的、最大为a
max,brake
的任何制动,如果cr将在响应时间ρ期间以最大为a
max,accel
进行加速,并且从那以后以其最大制动a
max,brake
从时间ρ开始制动直到完全停止,然后其不会与cf相撞,那么汽车cr和位于cr的前方廊道的另一辆汽车cf之间的纵向距离关于响应时间p是安全的。
[0693]
下面的引理11计算根据主车辆跟随目标车辆的此实施例的rss安全距离的示例。rss安全距离可以包括对最大制动能力的假设和所确定的目标车辆的当前速度。
[0694]
引理11令cr为纵轴上在目标车辆cf后面的主车辆。令a
max,brake
为最大制动能力以及
令a
max,accel
为车辆的最大加速度。令v为车辆的当前速度。令ρ为主车辆cr的响应时间。则,主车辆cr的rss安全距离为:
[0695][0696]
证明rss安全距离可以包括如果以最大制动能力a
max,brake
进行制动则车辆停止所需的最小距离的计算。可以以上述关于rss的任何方式来计算该最小距离,并且引理11中使用的公式仅是示例性的。例如,可以使用引理2计算达到停止所需的最小距离。引理11提供了修改的示例,该修改需要应对可能会在响应时间段ρ期间发生的加速。令v1为主车辆cr的当前速度以及v2为目标车辆cf的当前速度。然后,对于主车辆cr,rss
distance
包括在响应时间段ρ内以最大加速能力a
max,accel
加速后的主车辆cr速度的计算,并将该速度乘以响应时间段ρ来确定响应时间段ρ期间行驶的最大距离。响应时间段ρ期间的最大行驶距离为:
[0697]dmax,ρ
=(v1+(v1+ρa
max,accel
))ρ
[0698]
在安全距离确定中使用的主车辆的速度可以对应于主车辆在其响应时间段ρ内加速之后的最大可能速度。例如,令v1为主车辆cr的当前速度,令ρ为响应时间段,以及令a
max,accel
为主车辆的最大加速度,则主车辆在响应时间段ρ之后的最大可能速度v
max,ρ
为:
[0699]vmax,ρ
=v1+ρa
max,accel
[0700]
在一些实施例中,rss安全距离还可以包括一分量,该分量确保即使主车辆和目标车辆均从它们的当前速度(以及在主车辆在其反应时间内的最大加速之后)以最大制动能力停止。这样的分量可以包括最小靠近距离分量。最小靠近距离可以与rss安全距离计算中的最小距离分量相对应,使得即使主车辆和目标车辆在停止时(并且在以最大加速度的主车辆反应时间之后)应用最大制动,主车辆将至少在距感测到的目标车辆、vru或其他对象的最小距离处停止。例如,如果主车辆在目标车辆后面行驶并且目标车辆开始以其最大制动能力制动,则配备有rss的主车辆可以通过以其最大制动能力进行制动来响应。如果rss安全距离包括最小靠近距离分量,则主车辆可以至少在距目标车辆的最小距离处停止。最小距离可以是预定的(例如,最小距离为0.5m、1m、2m等),或者可以基于与本公开一致的任何一组因素(例如,与主车辆和/或目标车辆相关联的速度、感测到的天气条件、用户的偏好等)来确定。rss安全距离的以下表达式包括最小距离d
min

[0701][0702]
图47a和47b进一步示出了当主车辆在目标车辆后面行驶时的rss安全距离的概念。例如,图47a示出了主车辆4704和目标车辆4706之间的rss安全距离4702。即使在最坏情况的情景下(其中目标车辆4706在rss安全距离4702处以其最大制动能力进行制动),主车辆4704也将能够通过以其最大制动能力进行制动而停止从而不与目标车辆4706发生碰撞,即使在主车辆以其最大加速能力进行加速的响应时间之后才开始该最大制动。在大多数情况下,目标车辆4706可能不需要以其最大制动能力制动到完全停止。在这样的情况下,主车辆4704可以以其最大制动能力进行制动,直到其变为距目标车辆4706至少rss安全距离4702为止。
[0703]
图47b示出了主车辆4724与目标车辆4726之间的rss安全距离4722。在该实施例
中,rss安全距离4722包括rss安全距离4702和最小靠近距离4710。如上所述,最小靠近距离4710可以是如果主车辆4724和目标车辆4726均以其最大制动能力进行制动并达到停止(即使在主车辆在其反应时间内以其最大加速能力进行加速之后),在主车辆4724和目标车辆4726之间将存在的最小分隔距离。
[0704]
与本公开一致,公开了一种用于导航主车辆的系统。该系统可以包括至少一个处理设备,其被编程为执行与本公开一致的一个或多个方法、处理、功能或操作。在一些实施例中,该系统可以是adas系统或本文公开的另一导航系统。类似地,处理设备可以是处理设备110,或主车辆中的或与主车辆通信的另一处理器或处理设备。
[0705]
图48是描述了可以由至少一个处理设备执行的示例处理4800的流程图。处理4800仅是示例性的。受益于本公开的本领域普通技术人员可以理解,处理4800可以包括附加步骤、排除某些步骤,或者可以以与本公开一致的方式进行其他修改。
[0706]
处理4800可以包括用于接收代表主车辆环境的至少一个图像的步骤4802。与本公开一致,至少一个处理设备可以被编程为接收代表主车辆环境的至少一个图像。如上所述,可以从图像捕捉设备接收至少一个图像。图像捕捉设备可以是与本公开一致的任何设备,包括图像捕捉设备122。在一些实施例中,至少一个图像可以是从相机、雷达、激光雷达或可以从中获得图像的任何其他设备(无论是光学的或是以其他方式的)中的任何一个获得的图像。在捕捉图像的时间与处理设备接收图像的时间之间可能存在某个延迟时间段。此外,在事件发生的时间与成像设备捕捉该事件的图像之间可能存在一段延迟时间段。例如,如果目标车辆进入主车辆前方的车道,则在目标车辆驶入车道时与成像设备捕捉该目标车辆的图像之间可能存在较短的时间段(例如,1毫秒、2毫秒、5毫秒等)。
[0707]
处理4800可以包括用于确定主车辆的规划导航动作的步骤4804。与本公开一致,至少一个处理设备可以被编程确定用于实现主车辆的导航目标的规划导航动作。可以基于至少一个驾驶策略来确定导航动作。规划导航动作和/或至少一个驾驶策略可以是与本公开一致的任何内容,包括以上讨论的内容。例如,规划导航动作可以包括车道改变操纵、并道操纵、超车操纵、跟随距离减小操纵或维持油门动作中的至少一个。处理设备可以被编程为分析至少一个图像,以识别主车辆环境中的目标车辆。至少一个图像可以是从诸如图像捕捉设备122之类的图像捕捉设备接收的图像。至少一个图像可以是作为处理4800的步骤4802的一部分接收的一个或多个图像。
[0708]
处理4800可以包括用于确定与规划导航动作相关联的下一状态距离的步骤4806。与本公开一致,处理设备可以被编程为确定如果采取规划导航动作则将导致的主车辆和目标车辆之间的下一状态距离。可以通过本文公开的任何手段来计算下一状态距离,包括上面的rss安全距离公式。例如,如果规划导航动作是主车辆的加速,则下一状态距离可以是主车辆与主车辆前方的车辆之间的距离。在一些示例中,可以确定一个以上的下一状态距离。例如,如果规划导航动作是并入相邻车道中,则可以关于主车辆与在并道之后将在主车辆前方的第一目标车辆来确定第一下一状态距离,以及可以关于在并道之后将在主车辆后方的第二目标车辆来确定第二下一状态距离。
[0709]
处理4800可以包括用于确定主车辆的最大制动能力、最大加速能力和当前速度的步骤4808。与本公开一致,处理设备可以被编程为确定主车辆的最大制动能力、主车辆的最大加速能力和/或主车辆的速度。可以通过与本公开一致的任何手段来确定各个因素(即,
主车辆的最大制动能力、最大加速能力和速度)。在一些实施例中,可以基于例如车辆的当前速度、道路特性(例如,道路的坡度、道路的材料等)、天气条件(例如,下雪、潮湿等)、车辆条件(例如,车辆的轮胎压力、制动片条件、当前负载等)等等,来确定主车辆的最大制动能力和/或最大加速度能力。在一些实施例中,可以基于一个或多个传感器的输出来确定一个或多个因素。例如,主车辆可以包含可以向处理设备提供输出的加速度计,并且该输出可以包括主车辆的当前速度和/或主车辆的加速能力。在一些实施例中,处理设备可以确定主车辆的当前速度,并使用当前速度来确定当前最大制动能力和/或当前加速能力。例如,以第一速度(例如15km/hr)行驶的车辆的最大制动能力可能与以第二速度(例如30km/hr)行驶的相同车辆的最大制动能力明显不同。在一些实施例中,可以使用预定值来假设主车辆的最大制动能力、最大加速能力和/或速度中的一个或多个。例如,处理设备可以被配置为假设主车辆具有与预定值相对应的最大制动能力,该预定值对应于与主车辆相关联的车辆类型的平均(或最差)最大制动能力。在一些实施例中,可以基于道路的外部条件或车辆的临时特性来确定每个因素。例如,可以基于感测到的路面条件来确定主车辆的最大制动能力。在该示例中,感测到的道路条件可以包括道路的粗糙度、道路的倾斜或坡度、道路上是否存在物质或对象、道路是否为沥青、水泥、碎石或其他材料,或与本公开一致的任何其他条件。作为另一示例,可以基于感测到的天气条件来确定主车辆的最大制动能力。在该示例中,天气条件可包括检测到任何降水(例如,雨、雨夹雪、雪、冰等)、影响可见度的天气条件(例如,雾、烟雾、烟等)、可能影响车辆操作的天气条件(例如强风、高温等),或者可能影响主车辆导航响应的任何其他天气条件。在另一示例中,处理设备可以基于主车辆是否包含例如一位乘客或多位乘客、重量很大的货物、拖车等来确定最大制动能力。
[0710]
在一些实施例中,可以基于一个或多个预定义的因素来确定最大制动能力和/或最大加速能力。例如,政府或行业实体可以提供一个或多个规章,该规章规定一个车辆或一类车辆可以具有的最大制动能力和/或最大加速能力,并且至少一个处理器可以假设主车辆具有由规章允许的最大制动能力和/或最大加速能力。
[0711]
处理4800可以包括用于确定主车辆的当前停止距离的步骤4810。与本公开一致,处理设备可以被配置为基于主车辆的当前最大制动能力、主车辆的当前最大加速能力和/或主车辆的当前速度,来确定主车辆的当前停止距离。可以通过与本公开一致的任何手段来确定主车辆的当前停止距离。例如,处理设备可以使用上面关于rss讨论的一个或多个公式。
[0712]
在一些实施例中,当前停止距离可以是这样的距离:给定主车辆的当前速度,如果主车辆在以其最大制动能力进行制动之前还要在一段时间内以其最大加速能力进行加速,则主车辆达到停止所需的距离。例如,主车辆的当前停止距离包括加速距离,该加速距离对应于从所确定的主车辆的当前速度开始,主车辆以主车辆的当前最大加速能力在预定时间段内能够行驶的距离。预定时间段可以是由处理设备假设的时间段。例如,约束可以指示处理设备假设主车辆将在特定时间段内(例如,0.5毫秒、1毫秒、2毫秒、3毫秒、10毫秒等)加速。预定时间段可以是与主车辆相关联的反应时间。例如,预定时间段可以是当主车辆的传感器(例如,成像设备)感测到需要来自主车辆的制动响应的条件(例如,目标车辆进入主车辆的路径)的时间与主车辆开始以其最大制动能力进行制动的时间之间的延迟。在该示例中,可以假设,在最坏情况的情景下,主车辆在整个延迟时间段内以其最大加速能力进行加
速。在一些实施例中,可以由处理设备确定或近似与反应时间相关联的时间段。例如,处理设备可以监视从接收到图像到确定需要制动响应之间的时间。作为另一示例,处理设备可以确定与多个导航响应相关联的平均、中值或模式(mode)反应时间,并在计算当前停止距离时使用该平均、中值或模式反应时间。例如,在数十、数百或数千个导航响应之后,处理设备可以确定感测到的事件与导航响应之间的平均时间是具体的值(例如,任何实际的毫秒数),并将该值用作与主车辆相关联的反应时间。
[0713]
与本公开一致,确定的当前停止距离可以包括在达到完全停止之后主车辆与另一对象(例如,目标车辆或vru)之间的最小距离。所确定或预定的最小距离可以对应于要在主车辆与其他车辆之间维持的预定分隔距离。例如,处理设备可以被编程为在停止距离的计算中包括确定或预定的最小距离。例如,预定分隔距离可以是至少1米(m)。在该示例中,如上所述,所确定或预定的最小距离可以是d
min

[0714]
处理4800可以包括用于确定目标车辆的当前速度并假设目标车辆的最大制动能力的步骤4812。与本公开一致,至少一个处理设备可以被编程为确定目标车辆的当前速度。在一些实施例中,可以基于主车辆的速度来确定目标车辆的速度。例如,主车辆上的一个或多个传感器可以提供与主车辆的速度以及目标车辆相对于主车辆的加速或方向改变的指示有关的信息。在一些实施例中,可以基于对至少一个图像的分析来确定目标车辆速度。该至少一个图像可以是例如在步骤4802由处理设备接收并在步骤4806用于识别目标车辆的相同图像。在一些实施例中,可以分析多个图像以确定目标车辆的速度。例如,第一图像可以描绘目标车辆距主车辆的第一距离,并且第二图像可以描绘目标车辆距主车辆的第二距离,处理设备可以使用距离改变和第一图像与第二图像之间的时间来确定与目标车辆相关联的速度。在一些实施例中,可以基于对来自与主车辆相关联的激光雷达系统或雷达系统中的至少一个系统的输出的分析来确定目标车辆速度。例如,处理设备可以使用主车辆的速度以及主车辆与目标车辆之间的距离(例如,由激光雷达系统感测)来确定主车辆的速度。
[0715]
在一些实施例中,为了应对最坏情况的情景,处理设备可以被编程为假设目标车辆的当前速度小于或大于感测到的目标车辆的速度。例如,如果目标车辆在主车辆的前方行驶,则处理设备可以被编程为使用预定的值、百分比、公式等来降低感测到的速度。例如,如果处理设备基于来自一个或多个传感器的信息确定目标车辆以100km/hr的速度行驶,则处理设备可以将感测到的速度调整10%,以假设车辆以90km/hr的速度行驶。目标车辆的速度可能与目标车辆的制动能力相关联,因此,假设降低的目标车辆的速度类似于假设目标车辆可能比在其他情况下更快地停止(例如,相比于如果以100km/hr的速度行驶,如果目标车辆以90km/hr的速度行驶,则可能在更短的距离内停止)。
[0716]
与本公开一致,至少一个处理设备可以被编程为基于目标车辆的至少一个辨识的特性来假设目标车辆的最大制动能力。可以假设最大制动能力作为处理4800的步骤4812的一部分。处理设备可以被编程为从来自一个或多个传感器(例如,激光雷达、雷达、成像设备等)的信息中辨识至少一个特性。在一些实施例中,可以基于对至少一个图像的分析来确定所辨识的目标车辆的特性。例如,目标车辆的图像可包括目标车辆外部上的文本,该文本可用于确定车辆类型、车辆型号、车辆尺寸或其他特性。作为另一示例,目标车辆的图像可以包括其他对象,该其他对象可以被用于基于与该其他对象的比较来近似车辆尺寸或其他特
性。作为具体示例,大型车辆可能看起来比限速标志高,而小型车辆可能看起来比限速标志矮。在一些实施例中,可以基于激光雷达输出或雷达输出中的至少一个来确定目标车辆的至少一个特性。例如,激光雷达输出可以包括与到目标车辆的后保险杠的距离相关联的第一距离和与到目标车辆的前保险杠(或其他区域)的距离相关联的第二距离,这两个距离之间的差可以用于估计目标车辆的尺寸。
[0717]
至少一个特性可以是已知与制动能力相关或可能与制动能力相关的任何特性。在一些实施例中,所辨识的目标车辆的特性可以包括车辆类型。车辆类型可以是例如目标车辆所属的一般类别(例如,全尺寸轿车、紧凑型汽车、suv、跨界suv、摩托车等),或与目标车辆相关联的更具体的类别或子类别。处理设备可以被编程为假设目标车辆具有与该车辆类型或一类车辆的已知制动能力的最大制动能力相对应的最大制动能力。例如,如果确定目标车辆是全尺寸轿车,则处理设备可以假设目标车辆具有与具有最佳的最大制动能力的全尺寸轿车(例如,相比于其他全尺寸轿车,该全尺寸轿车可以在最短距离内停止)的最大制动能力匹配的最大制动能力。在一些实施例中,所辨识的目标车辆的特性可以包括车辆型号、品牌名称或目标车辆的其他分类符(例如,等)。处理设备可以使用车辆类型来例如访问包含每种车辆类型的已知制动能力的数据库。例如,如果检测到的车辆类型是bmw则处理设备可以从数据库中查询已报告的bmw的制动能力。如果针对某个车辆型号报告了多个最大制动能力(例如,bmw可能具有不同的制动能力,具体取决于其是否具有xdrive40i或xdrive50i内饰级别,或者取决于其制造年份),处理设备可以被编程为假设目标车辆具有针对该车辆型号报告的最佳的最大制动能力。在一些实施例中,所辨识的目标车辆的特性可以包括车辆尺寸。车辆尺寸可以是相对尺寸、预定尺寸等等。车辆尺寸可以对应于车辆的物理尺寸和/或车辆的估计重量。例如,处理设备可以确定目标车辆大于或小于主车辆。在另一个示例中,处理设备可以被编程为将目标车辆分类为一个或多个预定的车辆尺寸,每个类别可以包括一定范围的尺寸(例如,类别1=小于1,000kg;类别2=1,000

1500kg;类别3=1,500-1,800kg;等等)。某些车辆可以包含其尺寸的指示,其可以用于确定目标车辆的车辆尺寸。例如,目标车辆可以是gmc并且可以在车辆的外部包括与其尺寸相关联的指示,诸如1500、2500、2500hd等等。
[0718]
目标车辆的当前速度和所假设的目标车辆的最大制动能力可以用于确定目标车辆行驶距离,该目标车辆行驶距离包括目标车辆通过以其最大制动能力进行制动从其当前速度达到完全停止所需的距离。可以通过与本公开一致的任何方式来确定该距离。
[0719]
处理4800可以包括用于如果规划导航动作是安全的,则实施该规划导航动作的步骤4814。出于步骤4814的目的,何时规划导航动作可以被认为是安全的一个示例是,当所确定的主车辆的当前停止距离小于所确定的下一状态距离与目标车辆行驶距离之和。在一些实施例中,至少一个处理设备可以被编程为,如果所确定的主车辆的当前停止距离小于所确定的下一状态距离与目标车辆行驶距离之和,则执行规划导航动作。目标车辆行驶距离可以通过与本公开一致的任何手段来确定。例如,可以基于目标车辆的当前速度和所假设的目标车辆的最大制动能力来确定目标车辆行驶距离。该目标车辆行驶距离可以对应于目标车辆在达到完全停止之前将行驶的总距离。由于主车辆的当前停止距离(包括在反应时间段期间内假设最大加速度所行驶的潜在距离)将允许其即使在目标车辆以其最大制动能
力进行制动时也能在撞上目标车辆之前达到完全停止,故主车辆与目标车辆之间不会发生碰撞,因此在这种情况下可以实施该导航操作。由于在执行导航动作之后,主车辆将至少与目标车辆保持rss安全距离,因此处理设备将实施该导航动作。换句话说,下一状态距离等于或大于rss安全距离。相反,如果下一状态距离小于rss安全距离(例如,主车辆的当前停止距离并不小于所确定的下一状态距离与目标车辆行驶距离之和),则处理设备可以被编程为拒绝或中止该导航动作,或实施不同的导航动作。
[0720]
出于步骤4814的目的,何时规划导航动作可以被认为是安全的一个示例是,当所确定的主车辆的当前停止距离比所确定的下一状态距离与目标车辆行驶距离之和少了至少预定最小距离,其中目标车辆行驶距离基于目标车辆的当前速度和所假设的目标车辆的最大制动能力而确定。在一些实施例中,至少一个处理设备可以被配置为,如果所确定的主车辆的当前停止距离比所确定的下一状态距离与目标车辆行驶距离之和少了至少预定最小距离,则实施规划导航动作,其中所述目标车辆行驶距离基于目标车辆的当前速度和所假设的目标车辆的最大制动能力而确定。在该实施例中,预定最小距离可以是d
min
,并且可以通过与本公开一致的任何方式来预定或确定,并具有以上讨论的任何属性。在一些实施例中,预定最小距离可以对应于要在主车辆和其他车辆之间维持的预定分隔距离。例如,自主导航系统的一个约束可以指示自主车辆永远不会进入(小于)其他车辆的指定距离内。预定分隔距离可以是任何尺寸的距离。在一些实施例中,预定分隔距离为至少1m、2m、5m等。在一些实施例中,预定距离可以根据例如主车辆正在行驶的速度、主车辆的位置(例如,城市道路、乡村高速公路等)而变化。
[0721]
与本公开一致,rss模型可以用于导航完全自主车辆、可以用于导航部分自主车辆(例如,具有人类可操作模式和选择性自主模式的车辆),或者可以用作人类可操作车辆中的基本安全特征(例如,安全系统可以阻止或禁止在rss模型下可能是不安全的、在人类可操作车辆中的人类输入)。
[0722]
舒适责任敏感安全性(crss)
[0723]
rss对于确定主车辆与另一对象(例如,一个或多个目标车辆或vru)之间的安全距离是有效的。rss中的某些基础计算可以假设一种最坏情况的情景,并要求主车辆以其最大能力做出响应。例如,rss的某些实施例可以定义一个安全区域,如果目标车辆和主车辆均以其最大制动能力进行制动,并且主车辆在以其最大能力进行加速的反应时间之后开始制动,则在该安全区域中不会发生碰撞。
[0724]
尽管rss可以预防或避免事故发生,但是自主汽车的某些用户可能会发现rss所需的反应在某些情况下可能无法创造出最舒适或最放松的乘坐体验。例如,如果确实出现最坏情况的情景,则至少在某些情景下,以rss模式运行的车辆可能会以其最大制动能力进行制动。另外,rss可以定义主车辆与另一对象之间的安全距离。如果目标车辆、vru或其他对象距一个车辆的距离超过安全距离,则该车辆无需做出任何导航响应。但是,当对象进入的距离等于或小于rss安全距离时,该车辆可能会通过以最大制动能力进行制动来响应,直到该车辆达到停止或在对象或目标车辆之间已建立rss距离为止。这样的操作可能使主车辆的乘客经受不舒适的加速率(例如,在主车辆制动以最大水平施加时的时间段期间)。因此,可能需要一种允许更舒适的乘客体验的自主车辆安全模型。
[0725]
为了提供更舒适的、类似于人类的驾驶体验,自主车辆可以配备有导航系统,该导
航系统被配置为使用非最大导航响应进行操作。例如,如果自主车辆需要减速或停止以避免碰撞,则导航系统可以允许至少在部分制动时间段期间内以小于车辆的最大制动能力的力进行制动。类似地,如果车辆需要转弯、转向或急转弯以避免碰撞,则导航系统可以允许小于车辆最大转弯能力的转弯。对于加速响应来说也是如此,至少在部分加速时间段期间内可以以小于车辆的最大加速能力来执行加速响应。通过限制制动或加速的量,主车辆的制动响应可能不那么突然、更平稳,并且感觉更类似于有计划的(scheduled)制动,而不是紧急制动或延迟制动。例如,有计划的制动可以包括不会导致安全带锁死的逐渐的速度下降。在另一个示例中,有计划的制动可以包括逐渐的制动功率增加,可能直到达到车辆的最大制动功率为止,到那时可以以最大制动功率继续制动。
[0726]
与公开的实施例一致,可以确定舒适责任敏感安全性(crss)安全距离。crss安全距离可以是主车辆可以舒适地达到停止而不会与另一对象(例如,目标车辆或vru)碰撞的主车辆与该对象之间的距离。与本公开一致,crss可以假设从初始制动力(其小于车辆的最大制动能力)到车辆的最大制动能力的逐渐的制动施加,而不是立即施加最大制动能力。至少在crss的情况下,术语最小制动能力有时与术语初始制动力可互换使用。初始制动力可以是车辆的最小制动力或车辆的最大制动能力的一部分。可以基于计算出的主车辆的瞬时速度、目标车辆的瞬时速度、舒适性或次最大制动加速度、以及响应时间,来确定crss安全距离。
[0727]
定义28(crss安全距离)若对于由汽车cf执行的以最大为a
max,brake
的任何制动,如果cr会施加加速度变化率有限(jerk-bounded)的制动和加速,然后其不会与cf相撞,那么汽车cr和位于cr的前方廊道的另一辆汽车cf之间的纵向距离关于响应时间p是安全的。
[0728]
在一些实施例中,可以通过以经约束的制动曲线(profile)降低主车辆的速率或速度,来实现舒适的导航响应,这可以显著地减少车辆和/或其乘客的加速度变化率。下面的引理12根据一个实施例来计算crss安全距离,其中车辆的制动经受逐渐的制动曲线,而不是立即施加最大制动能力。
[0729]
引理12令cr为纵轴上在目标车辆cf后面的主车辆。令a
max,brake
为最大制动能力。令vo为主车辆的初始速度,vf为目标车辆的初始速度。令j
max
为主车辆制动的线性施加的斜率,令t为主车辆达到完全制动的时间。那么,主车辆的crss安全距离为:
[0730][0731]
证明crss假设主车辆的加速度变化率有限制动能力,该能力与以下有关:线性地(以斜率j
max
)降低主车辆的加速度,直到达到最大制动能力a
max,brake
,然后持续以恒定减速度(与a
max,brake
相关)制动,直到达到停止。加速度变化率为j
max
且初始加速度ao≤0m/s,初始速度vo≤0m/s2,初始位置xo≤0m的车辆制动具有以下动态特性:
[0732]
a(t)=a
0-j
max
t
[0733][0734]
[0735]
基于这些方程式,可以定义制动距离。令a
min,brake
为主车辆的最小制动能力,令t为a(t)=-a
min,brake
或v(t)=0的首次时间,即,
[0736]
t=min{t1,t2}其中
[0737]
通过以j
max
线性地施加制动来达到最大制动能力的时间是:
[0738][0739]
在任何给定时间,主车辆的速率(速度)也可以被确定为j
max
的函数,如下:
[0740][0741]
利用针对达到最大制动能力的时间、以及在根据j
max
施加制动的时间段期间和其中施加最大制动a
max,brake
的时间段期间(因为使用j
max
逐渐施加制动直到达到最大制动能力)两者中的主车辆的速率的公式,可以确定主车辆的制动距离为:
[0742][0743]
与本公开一致,次最大制动率j
max
可以由处理设备预定或确定。在一些实施例中,j
max
可以是理想的或统计上可接受的制动率。例如,与大多数人达到停止的制动率有关的数据可以用于j
max
。在一些实施例中,可以根据用户偏好来设置j
max
。例如,第一乘客可以提供对他或她舒适的第一j
max
,第二乘客可以提供对他或她舒适的第二j
max
,依此类推。在一些实施例中,处理设备可以基于例如一个或多个道路特性、交通条件(拥挤水平、主车辆周围的车辆之间的平均距离、主车辆前方的切入率等)、一个或多个车辆特性、一个或多个天气特性等等,来确定j
max
。例如,处理设备可以确定在积雪道路上提供最大的安全性和舒适性的j
max
、在干燥公路上提供最大的安全性和舒适性的第二j
max
,等等。应当理解,虽然实施j
max
可以帮助增加舒适性并对主车辆的性能产生其他积极影响,但也可能产生较不理想的效果,尤其是在j
max
较小从而可能使制动变得“松弛”或不够强的情况下。例如,通过使车辆始终保持与前方车辆的距离过大,使用较小的j
max
可能会对效率产生强烈的负面影响。这可能会引起其他道路使用者的烦恼,并阻止主车辆有效地协商复杂的情景,例如在拥挤的区域中并道和驾驶。因此,在一些示例中,可以设置、选择或确定使性能或效率与舒适性平衡(同时保持rss安全性)的j
max

[0744]
与本公开一致,次最大制动率j
max
可以是一个恒量。例如,次最大制动率可以是与2m/s2、10m/s2的减速度或任何其他恒定减速度相对应的制动率。在一些实施例中,次最大制动率可以是与主车辆的最大制动率能力成比例的恒量。例如,次最大制动率可以是主车辆的最大制动能力的20%、33%、50%、70%或任何其他百分比。在一些实施例中,次最大制动率可以是主车辆当前速度的线性函数,从而使得从主车辆的最小制动能力直到最大到主车辆的最大制动能力而逐渐地施加制动。例如,可以确定允许主车辆在不达到车辆的最大制动能力的情况下从其当前速度而达到停止的次最大制动率。作为另一示例,可以确定最终
达到主车辆的最大制动能力的次最大制动率,从而使得主车辆在停止操纵的第一部分中以小于最大制动能力进行制动,并在停止操纵的第二部分中以其最大制动能力进行制动。在一些实施例中,次最大制动率可以是车辆当前速度的不同函数。例如,次最大制动率可以是这样一种制动率,其被指数或对数地施加直到车辆达到停止。
[0745]
与本公开一致,crss安全距离可以被用于以上关于rss讨论的任何实施例中。实际上,crss要求自主车辆比以rss模式操作的车辆更早开始制动。使用crss时,车辆最多以j
max
指示的率施加制动,而在rss中,车辆可能以其最大制动能力进行制动。这样,crss安全距离可能比rss安全距离更长。
[0746]
与本公开一致,crss模型可以是rss假设,即,在以与j
max
相关联的率进行制动直到达到停止之前,主车辆可以在初始响应时段内以其最大加速能力进行加速。作为另一示例,crss可以包括rss假设,即,在以与j
max
相关联的率施加制动直到达到停止之后,主车辆在距目标车辆还剩下最小靠近距离的位置处停止。
[0747]
在一些实施例中,可以对crss进行修改,使得车辆可以在第一时段内以次最大制动能力进行制动,并且可以在第二时段内以其最大制动能力进行制动。例如,在目标车辆后面行驶的主车辆可以感测到目标车辆即将停止,然后主车辆可以在第一持续时间内(或直到行驶了第一距离)以次最大制动能力进行制动(例如,以j
max
逐渐制动),并在第二持续时间内(或直到行驶了第二距离)以最大制动能力进行制动。在此示例中,crss安全距离可以短于车辆被编程为在整个时段内仅以次最大制动能力进行制动的情况。在一些实施例中,可以对crss进行修改,使得主车辆可以在第一时段内以第一次最大制动能力进行制动,并且在第二时间段内以第二次最大制动能力进行制动。例如,主车辆可以被编程为在第一持续时间或距离内以第一率(例如,第一j
max
)进行制动,并且在第二持续时间或距离内以第二率(例如,第二j
max
)进行制动。在该示例中,第一率可以小于第二率。这样的操作模式使主车辆能够例如在不以高于与j
max
相关联的等级的率进行制动的情况下,重新建立crss距离。
[0748]
在一些实施例中,主车辆的乘客或用户可以选择确定次最大制动率的一个或多个导航模式。例如,乘客可能能够选择主车辆是否以与恒定的次最大制动率、逐渐增加的次最大制动率、指数增加的次最大制动率相关联的制动曲线来进行制动。可以采用任何其他制动率曲线。例如,一种可选模式可以指示主车辆恒定地施加预定次最大制动率,直到主车辆停止或者直到确定制动条件不再存在为止。作为另一示例,一种可选模式可以指示主车辆在确定制动条件存在的时间段的至少一部分内以预定次最大制动率恒定地施加主车辆制动,然后以其最大制动率能力来施加主车辆制动。作为另一示例,一种可选模式可以指示主车辆以预定次最大制动率开始施加制动,并逐渐增加制动率直到主车辆的最大制动率能力。可以选择制动率的任何其他组合。
[0749]
与本公开一致,crss可以与rss模式一起使用,或者可以代替rss模式使用。在一些实施例中,在某些情况下可以选择性地使用crss,而在其他情况下可以使用rss。例如,crss可以用于高速公路(例如,在主车辆高速行驶并且以最大制动能力进行制动可能非常不舒服的情况下),而rss可以用于城市环境(例如,在主车辆低速行驶并在交通灯、停车标志等处频繁停止的情况下)。在一些实施例中,主车辆可以能够在crss和rss模式之间自动切换。例如,系统可以在感测到主车辆已经进入高速公路环境时切换到crss,可以在感测到城市环境时切换到rss,和/或可以在某些感测到的天气条件(例如,雪、雨等)下切换到crss。
[0750]
在一些实施例中,crss可用于确保主车辆始终与目标车辆(或vru或其他对象)保持至少crss安全距离。例如,如果目标车辆改变车道并且在车道改变之后在主车辆前方的距离小于crss距离,则主车辆可以以次最大制动率(例如,j
max
制动率)进行制动,直到距目标车辆的距离等于或大于crss安全距离。在该示例中,如果目标车辆达到完全停止,则主车辆可以以次最大制动率进行制动直到达到完全停止,或者可以应用以次最大率开始并增加至最大制动率的制动曲线。同样,如果目标车辆制动一段时间但继续在主车辆前方行驶,则主车辆可能会以次最大制动率进行制动,直到目标车辆与目标车辆的距离至少为crss安全距离为止,然后主车辆可以继续以其当前速度或以允许主车辆维持crss距离的新速度行驶。如上所述,如果在该模式下不能维持crss距离,则主车辆将不会采取相对于目标车辆的主动导航动作。在一些实施例中,处理设备可以确定主车辆正在靠近crss安全距离(例如,主车辆距目标车辆的距离大于crss安全距离,但是如果其继续以其当前加速度或当前速度行驶,则将处于crss安全距离),并且可以在不制动的情况下移除加速度,以维持大于crss安全距离的距离。例如,当主车辆不滑行则会进入crss安全距离之内时,主车辆可以释放油门,从而使主车滑行远离主车辆前方的目标车辆。
[0751]
在一些实施例中,当使用crss时,可以实施rss作为紧急措施。例如,当目标车辆在主车辆前方切入并且到主车辆前方的目标车辆的距离(不是主车辆的过错)小于crss安全距离时,则主车辆可能会根据rss模式进行制动(例如,立即以其最大制动能力进行制动)。特别是,如果该切入创建的距离等于或小于rss安全距离(比crss安全距离更短),则可以使用rss制动。如果该距离大于rss安全距离但小于crss安全距离,则在一个示例中,系统可以根据当前距离(介于crss安全距离和rss安全距离之间的某个距离)确定可用于使主车辆安全地停止的j
max
并相应地调整crss,以使车辆在至少一部分制动时段内使用所确定的j
max
而停止。
[0752]
图49a-49d示出了当主车辆在目标车辆后方行驶时,在crss模型下的安全距离的概念。图49a示出了在主车辆4904和目标车辆4906之间的crss安全距离4902。如上所述,crss安全距离4902是在主车辆4904以小于其最大制动能力的舒适制动率j
max
进行制动时,主车辆4904在不与目标车辆4906碰撞的情况下达到停止所需的距离。出于比较的目的,包括了rss安全距离4702(如图47a-47b所示)。rss安全距离4702是主车辆4904在以其最大制动能力进行制动时达到停止所需的距离。
[0753]
图49b示出了主车辆4914与目标车辆4916之间的crss安全距离4912。crss安全距离4902与crss安全距离4912之间的差可能是由于crss安全距离4912与比crss安全距离4902更低的制动率相关联。即,与主车辆4914相关联的j
max
小于与主车辆4904相关联的j
max
,因此,主车辆4914将需要更长的距离才能达到停止。
[0754]
图49c示出了主车辆4924与目标车辆4926之间的crss安全距离4922。在该示例中,crss安全距离4922包括最小距离4910,该最小距离4910可以是在主车辆通过以j
max
的率进行制动达到停止之后(如crss安全距离4902所示),主车辆4924与目标车辆4926之间的最小分隔。如上所述,最小距离4910可以是d
min

[0755]
图49d示出了主车辆4934与目标车辆4936之间的crss安全距离4932。在该示例中,crss安全距离4932包括最小距离4910和加速距离4908。加速距离4908可以是如果主车辆4934在初始反应时段内以最大加速能力进行加速,则其将行驶的距离。
[0756]
crss安全距离的概念可以扩展到横向方向。受益于本公开的本领域技术人员将认识到,crss安全距离可以包括主车辆与另一对象(例如目标车辆或vru)之间的横向距离,在该横向距离内主车辆可以调节主车辆的转向以避免与对象碰撞,同时避免不舒适的转向调节。
[0757]
与本公开一致,公开了一种用于制动主车辆的系统。该系统可以是例如制动系统230,或者可以被包括在导航系统(例如adas系统)中。制动系统可以包括至少一个处理设备。该处理设备可以被编程为执行与本公开一致的一个或多个方法、处理、操作或功能。
[0758]
图50是描绘了可以由制动系统的至少一个处理设备执行的示例性处理5000的流程图。处理5000用于说明性目的,而并非限制性的。受益于本公开的本领域普通技术人员可以理解,处理5000可以包括附加步骤、可以排除某些步骤,或者可以以与本公开一致的方式进行其他修改。
[0759]
处理5000可以包括用于接收代表主车辆环境的输出的步骤5002。与本公开一致,至少一个处理设备可以被编程为接收代表主车辆环境的输出。例如,可以从包括在制动系统中或与制动系统通信的至少一个传感器接收输出。至少一个传感器可以是本文公开的任何传感器,包括例如图像捕捉设备、雷达系统、激光雷达系统、加速度计等。在一些实施例中,处理设备可以被编程为从一个或多个传感器接收多个输出。例如,处理设备可以从图像捕捉设备接收第一输出、从激光雷达系统接收第二输出,等等。作为另一个示例,处理设备可以被编程为从图像捕捉设备接收第一输出、从该图像捕捉设备接收第二输出,等等。在一些实施例中,一个或多个传感器可以被配置为捕捉与主车辆环境的不同区域有关的信息。例如,第一图像捕捉设备可以被配置为捕捉主车辆前方环境的图像,第二图像捕捉设备可以被配置为捕捉主车辆后方环境的图像,等等。作为另一示例,图像捕捉设备可以被配置为捕捉主车辆前方环境的图像,并且一个或多个激光雷达系统可以被配置为捕捉与主车辆的任一侧上的环境有关的信息。
[0760]
处理5000可以包括用于检测主车辆环境中的目标车辆的步骤5004。在一些实施例中,可以基于在步骤5002处接收到的输出来检测目标车辆。与本公开一致,制动系统的至少一个处理设备可以被编程为基于该输出来检测主车辆环境中的目标车辆。可以通过与本公开一致的任何手段来检测目标车辆。例如,如果输出是一个或多个图像,则处理设备可以分析图像(例如,将图像与已知包含车辆的图像进行比较)以检测目标车辆。作为另一示例,来自一个或多个激光雷达系统或雷达系统的一个或多个输出可用于检测目标车辆的轮廓和位置。在一些实施例中,处理设备可以检测多个目标车辆。例如,处理设备可以检测在主车辆之前、主车辆之后和/或目标车辆附近,或其组合的目标车辆。尽管这些示例公开了检测目标车辆,但是应当理解,可以通过相同的手段来检测任何其他对象(例如,vru、道路特性等)。
[0761]
处理5000可以包括用于确定主车辆的速度和主车辆与目标车辆之间的距离的步骤5006。与本公开一致,制动系统的至少一个处理设备可以被编程为确定主车辆的当前速度和主车辆与目标车辆之间的当前距离。可以基于来自一个或多个传感器的一个或多个输出来确定当前速度和/或当前距离。在一些实施例中,可以基于在步骤5004用于检测目标车辆的输出来确定当前速度和/或当前距离。例如,来自激光雷达系统的输出可以输出目标车辆和主车辆上的各个点之间的一个或多个距离,其可以用于确定主车辆和目标车辆之间的
当前距离。在一些实施例中,可以通过与主车辆相关联的加速度计和/或速度计来提供主车辆的当前速度。
[0762]
处理5000可以包括用于确定制动条件是否存在的步骤5008。与本公开一致,制动系统的至少一个处理设备可以确定制动条件是否存在。制动条件可以是主车辆需要制动以避免不安全情况、避免碰撞或达到停止的任何条件。例如,制动条件可以是对以下的确定:主车辆距目标车辆或其他对象的距离小于crss安全距离。可以至少基于主车辆的当前速度以及主车辆与目标车辆之间的当前距离来确定制动条件是否存在。如上所述,例如,处理设备可以基于主车辆和目标车辆的当前速度、主车辆的制动能力、所假设的目标车辆的制动能力,以及可选地,主车辆的最大加速率,从而确定目标车辆与主车辆之间的crss安全距离(或rss安全距离)。处理设备可以将crss安全距离与主车辆与目标车辆之间的当前距离进行比较。如果基于该比较,主车辆与目标车辆之间的当前距离小于crss安全距离,则处理设备可以确定制动条件存在。本文公开的主车辆将通过制动来做出响应的任何其他不安全条件均可以是制动条件。如果主车辆检测到在当前速度和/或加速度下主车辆将比crss距离更近地靠近目标车辆,则制动条件也会存在。在这种情况下,主车辆将通过制动或采取另一操纵(车道改变等)来采取行动,以使得在主车辆和目标车辆之间至少维持crss距离。
[0763]
处理5000可以包括用于如果制动条件存在,则使得根据预定制动曲线来应用制动设备的步骤5010。制动条件可以是在步骤5008确定的任何制动条件。与本公开一致,制动系统的至少一个处理设备可以被编程为,如果确定制动条件存在,则使得根据预定制动曲线应用与主车辆相关联的制动设备。例如,如果处理设备确定主车辆相对于目标车辆小于或靠近crss安全距离,则制动系统可以以预定次最大制动率开始制动主车辆。预定制动曲线可以包括以主车辆的次最大制动率开始的分段,并且可以逐渐地增加直到主车辆的最大制动率。根据本文公开的任何实施例,次最大制动率可以逐渐地增加。例如,该逐渐增加可以是非线性增加。在另一个示例中,该逐渐增加可以是线性增加。
[0764]
例如,制动系统可以仅在制动条件的持续时间内施加制动。在一些实施例中,一旦达到主车辆的最大制动率,则至少一个处理器可以被配置为以主车辆的最大制动率持续应用主车辆的制动设备,直到制动条件终止存在(例如,主车辆停止,或者在主车辆与目标车辆之间重新建立crss距离)。在某些情况下,即使在以最大制动率应用制动机构时,制动条件也可能在主车辆达到完全停止之前终止,并且处理设备可以响应于制动条件的结束而终止制动。在一些实施例中,可能不会达到主车辆的最大制动率。例如,如果制动条件在制动系统达到最大制动率之前终止存在,则至少一个处理器可以被编程为终止制动,并且可能永远不会达到主车辆的最大制动率。
[0765]
在一些实施例中,用于计算制动距离的最大制动能力可以是在本文使用和描述的公式中使用的特定数值(或任何其他数学表达)。在一些实施例中,最大制动力可以相对于在公式中使用的制动力而变化,并且可以是车辆在每个瞬间能够产生的实际制动力,并且例如可能受到动态因素的影响,该动态因素包括路面特性、天气条件以及车辆及其各种系统和部件的条件。
[0766]
与本公开一致,公开了一种用于导航主车辆的系统。在一些实施例中,该系统可以是adas系统或本文公开的其他导航系统。该导航系统可以包括被编程为执行与本公开一致的一个或多个方法、处理、功能或操作的至少一个处理器或处理设备。该处理器或处理设备
可以是处理设备110,或主车辆中的或与主车辆通信的另一处理器或处理设备(例如,制动系统的至少一个处理设备)。
[0767]
图51是描述可以由导航系统的至少一个处理设备执行的示例性处理5100的流程图。处理5100是用于说明性目的,而并非限制性的。受益于本公开的本领域普通技术人员可以理解,处理5100可以包括附加步骤、排除某些步骤,或者可以以与本公开一致的方式进行其他修改。
[0768]
处理5100可以包括用于接收代表主车辆环境的至少一个图像的步骤5102。与本公开一致,至少一个处理设备可以被编程为接收代表主车辆环境的至少一个图像。可以从图像捕捉设备接收至少一个图像。图像捕捉设备可以是与本公开一致的任何设备,包括图像捕捉设备122。在一些实施例中,至少一个图像可以是从相机、雷达、激光雷达或可以从中获得图像的任何其他设备(无论是光学的或是以其他方式的)中的任何一个获得的图像。
[0769]
处理5100可以包括用于确定规划导航动作的步骤5104。与本公开一致,至少一个处理设备可以被编程确定用于实现主车辆的导航目标的规划导航动作。可以基于至少一个驾驶策略来确定导航动作。规划导航动作和/或至少一个驾驶策略可以是与本公开一致的任何内容,包括以上讨论的内容。例如,规划导航动作可以包括车道改变操纵、并道操纵、超车操纵、跟随距离减小操纵或维持油门动作中的至少一个。可以以关于处理4800的步骤4804所讨论的基本相同的方式来确定导航动作。处理设备可以被编程为分析至少一个图像,以识别主车辆环境中的目标车辆。至少一个图像可以是从诸如图像捕捉设备122之类的图像捕捉设备接收的图像。目标车辆可以是在主车辆的当前附近或主车辆的将来附近的任何地方的车辆。例如,目标车辆可以是在主车辆前面、旁边或后面的车辆,和/或如果其执行规划导航动作则将在主车辆的前面、旁边或后面的车辆。
[0770]
处理5100可以包括用于确定与规划导航动作相关联的下一状态距离的步骤5106。与本公开一致,至少一个处理设备可以被编程为确定如果采取规划导航动作则将导致的主车辆和目标车辆之间的下一状态距离。可以通过本文公开的任何手段来计算下一状态距离,包括上面的crss安全距离公式。例如,如果规划导航动作是主车辆的加速(或车道改变,或甚至是在不施加制动的情况下以当前速度持续等),则下一状态距离可以是主车辆与主车辆前方的目标车辆之间的距离。在一些示例中,可以确定一个以上的下一状态距离。例如,如果规划导航动作是并入相邻车道中,则可以关于主车辆与在并道之后将在主车辆前方的第一目标车辆,确定第一下一状态距离,以及可以关于在并道之后将在主车辆后方的第二目标车辆,确定第二下一状态距离。
[0771]
处理5100可以包括用于确定主车辆的当前速度的步骤5108。与本公开一致,至少一个处理设备可以被编程为确定主车辆的当前速度。可以通过与本公开相一致的任何手段来确定当前速度,包括如关于处理4800的步骤4808所讨论的手段。在一些实施例中,可以基于一个或多个传感器的输出来确定主车辆的当前速度。例如,可以从加速器、激光雷达系统、雷达系统、gps单元等的输出来确定当前速度。作为另一示例,可以通过分析一个或多个图像来确定主车辆的当前速度(例如,基于在两个或更多个图像中检测到的固定对象的缩放率变化)。
[0772]
处理5100可以包括用于确定目标车辆的当前速度并假设目标车辆的最大制动能力的步骤5110。与本公开一致,至少一个处理设备可以被编程为确定目标车辆的当前速度
并假设目标车辆的最大制动率能力。可以基于目标车辆的至少一个特性来假设最大制动率能力。可以通过与本公开相一致的任何手段来确定目标车辆的最大制动能力,包括关于rss所讨论的手段(例如,作为处理4800的步骤4812的一部分)。
[0773]
在一些实施例中,可以基于主车辆的当前速度来确定目标车辆的当前速度。例如,主车辆的一个或多个传感器可以提供与主车辆的速度有关的信息,并且一个或多个传感器可以提供目标车辆相对于主车辆的位置和/或目标车辆的位置、加速度或速度的改变,其可用于确定目标车辆的当前速度。在一些实施例中,可以基于对至少一个图像的分析来确定目标车辆速度。该至少一个图像可以是与首先检测到目标车辆的图像相同的图像,或者可以是不同的图像。在一些实施例中,可以分析多个图像以确定目标车辆的当前速度。例如,在第一时间捕捉的图像可以描绘目标车辆与主车辆的第一距离,而在第二时间捕捉的图像可以描绘目标车辆与主车辆的第二距离,处理设备可以基于两个图像之间的距离改变来确定当前速度。在一些实施例中,可以基于对来自与主车辆相关联的激光雷达系统或雷达系统中的至少一个的输出的分析,来确定目标车辆速度。例如,处理设备可以使用主车辆的速度以及主车辆与目标车辆之间的距离(例如,由激光雷达系统感测),来确定主车辆的速度。
[0774]
可以通过与本公开一致的任何手段来确定目标车辆的至少一个特性。在一些实施例中,处理设备可基于来自与主车辆相关联的一个或多个传感器的一个或多个输出来确定至少一个特性。例如,可以基于激光雷达输出或雷达输出中的至少之一来确定至少一个特性。例如,激光雷达输出可以包括与例如主车辆与目标车辆的顶部边缘和目标车辆的底部边缘之间的距离相关联的一个或多个距离,它们之间的差可以用于确定目标车辆的尺寸。在一些实施例中,可以基于对至少一个图像的分析来确定至少一个特征。该至少一个图像可以是首先检测到目标车辆的图像,或不同的图像。例如,目标车辆的图像可以包括文本、徽标或可用于确定车辆类型、型号、内饰级别或其他特性的其他信息。作为另一示例,目标车辆的图像可以包括可用于与目标车辆进行比较以确定目标车辆的尺寸的其他车辆或对象。
[0775]
所辨识的目标车辆的特性可以是可用于确定目标车辆的最大制动能力的任何特性。在某些实施例中,所辨识的目标车辆的特性可以包括车辆类型。车辆类型可以是例如目标车辆所属的一般类别(例如,全尺寸轿车、紧凑型汽车、suv、跨界suv、摩托车等),或与目标车辆相关联的更具体的类别或子类别。处理设备可以被编程为假设目标车辆具有与该车辆类型或一类车辆的已知制动能力的最大制动能力相对应的最大制动能力。例如,如果确定目标车辆是摩托车,则处理设备可以假设目标车辆具有与具有最佳的最大制动能力的摩托车(例如,可以最快地或在最短差距内达到停止的摩托车)的最大制动能力相匹配的最大制动能力。在一些实施例中,所辨识的目标车辆的特性可以包括车辆型号。车辆型号可以包括例如车辆的品牌名称和/或型号名称。可以通过与本公开相一致的任何手段来确定目标车辆的车辆型号,包括例如检测文本、徽标或车辆型号的其他标识符,或者检测车辆型号的特征特性。例如,处理设备可以分析目标车辆的图像,并辨识与车辆型号相关联的文本(例如,可以在目标车辆的后部检测到文本“honda accord(本田雅阁)”)。作为另一示例,处理设备可以分析图像并辨识目标车辆的一个或多个独特特征(例如,尾灯的形状、扰流板的存在或不存在、目标车辆的总体形状等),并且可以通过例如将辨识出的特征与已知车辆类型的一个或多个图像进行比较来确定车辆类型。处理设备可以使用车辆类型来确定目标车辆
的制动能力。例如,如果车辆类型是ford则处理设备可以访问数据库或执行因特网搜索以定位所报告的ford的制动能力。某些车辆类型可能具有多个已报告的制动能力,这取决于例如车辆内饰级别中提供的特征。处理设备可以被编程为假设目标车辆具有该类型车辆中最佳的最大制动能力。在一些实施例中,所辨识的目标车辆的特性可以包括车辆尺寸。车辆尺寸可以是车辆的物理维度、与车辆相关联的重量、其组合等。车辆尺寸可以是相对尺寸、多个预定尺寸之一等。例如,处理设备可以被编程为将目标车辆分类为多个预定尺寸范围之一(例如,紧凑型=小于1,000kg;小尺寸=1,000-1,500kg;依此类推)。在一些实施例中,可以基于目标车辆尺寸与主车辆的尺寸、道路上的其他车辆、目标车辆附近的对象等的比较,来估计目标车辆尺寸。例如,处理设备可以分析目标车辆的图像,并确定该目标车辆大于主车辆但小于目标车辆旁边的车辆。车辆尺寸可以用于假设目标车辆的最大制动能力。例如,处理设备可以被编程为假设更大、更重的车辆花费更长的时间来达到停止。
[0776]
可以基于附加因素来确定目标车辆的最大制动能力。例如,可以基于感测到的路面条件来确定目标车辆的当前最大制动能力。在该示例中,所感测的道路条件可以包括道路的粗糙度、道路的倾斜或坡度、道路上是否存在物质或对象、道路是否为沥青、水泥、碎石或其他材料,或与本公开一致的任何其他条件。作为另一示例,可以基于感测到的天气条件来确定目标车辆的当前最大制动能力。在该示例中,天气条件可包括检测到任何降水(例如,雨、雨夹雪、雪、冰等)、影响可见度的天气条件(例如,雾、烟雾、烟等)、可能影响车辆操作的天气条件(例如强风、高温等),或者可能影响主车辆导航响应的任何其他天气条件。在另一示例中,处理设备可以基于主车辆是否包含例如新的或旧的轮胎、一位乘客或多位乘客、重量很大的货物、拖车等来确定最大制动能力。在一些实施例中,可以基于预定因素确定目标车辆的最大制动能力,该预定因素诸如规定车辆或车辆类型允许的最大制动能力的规章。
[0777]
所假设的最大制动能力可用于确定目标车辆行驶距离,该目标车辆行驶距离是若目标车辆要以其最大制动能力进行制动则从其当前速度达到停止所需的距离。可以通过与本公开一致的任何手段来计算该距离,包括关于rss和/或crss所讨论的手段。
[0778]
处理5100可以包括用于如果规划导航动作是安全的,则实施该导航动作的步骤5112。出于步骤5112的目的,何时规划导航动作可以被认为是安全的一个示例是,当可以使用次最大制动率使主车辆在主车辆停止距离内停止,该主车辆停止距离小于所确定的下一状态距离与基于目标车辆的当前速度和所假设的目标车辆的最大制动率能力而确定的目标车辆行驶停止距离之和。在一些实施例中,至少一个处理设备可以被编程为,如果对于所确定的主车辆的当前速度和以预定的次最大制动率,主车辆能够在主车辆停止距离内停止,则实施规划导航动作,该主车辆停止距离小于所确定的下一状态距离与目标车辆行驶距离之和。预定次最大制动率可以小于主车辆的最大制动率能力。目标车辆行驶距离可以是基于目标车辆的当前速度和所假设的目标车辆的最大制动率能力而确定的距离。如上所述,次最大制动率可以是在crss公式中由j
max
表示的加速度变化率有限制动率。在一些实施例中,次最大制动率可以是与主车辆的最大制动能力相关联但小于其的任何减速率。例如,预定次最大制动率可以关联于高达与主车辆的最大制动率能力相关联的减速率的50%的减速率。在另一示例中,预定次最大制动率可以关联于高达与主车辆的最大制动率能力相
关联的减速率的20%的减速率。在一些实施例中,可以确定主车辆的最大制动率能力,使得能够确定次最大制动率。可以基于与本公开一致的任何手段来确定最大制动率能力,包括关于rss所讨论的那些手段。例如,可以基于感测到的路面条件来确定主车辆的最大制动率能力。作为另一示例,可以基于感测到的天气条件来确定主车辆的最大制动率能力。
[0779]
在一些实施例中,如上所述,预定次最大制动率可以是由用户选择的次最大制动率。例如,可以基于用户可选的制动模式来确定预定次最大制动率,该用户可选的制动模式包括:以预定次最大制动率恒定地施加主车辆制动,直到主车辆停止或确定制动条件不再存在的模式;在确定制动条件存在的时间段的至少一部分内,以预定次最大制动率恒定地施加主车辆制动,然后以主车辆的最大制动率施加主车辆制动的模式;和/或以预定次最大制动率开始施加主车辆制动并且逐渐增加到主车辆的最大制动率的模式。
[0780]
与本公开一致,可以使用以上讨论的一个或多个crss公式来确定主车辆停止距离。例如,可以基于主车辆的当前速度和主车辆的预定次最大制动率来确定主车辆停止距离。作为另一示例,可以基于主车辆的当前速度、主车辆在响应时段内能够达到的最大加速度、以及主车辆的预定次最大制动率,来确定主车辆停止距离。在一些实施例中,主车辆停止距离可以大于加速距离及最大制动率距离的总和,该加速距离对应于主车辆在预定时间段内以主车辆的最大加速能力能够行驶的距离,该最大制动率距离对应于主车辆在以主车辆的最大制动率能力从主车辆的当前速度减速到零速度时可以行驶的距离。在一些实施例中,主车辆停止距离可以大于加速距离及次最大制动率距离的总和,该加速距离对应于主车辆在预定时间段内以主车辆的最大加速能力能够行驶的距离,该次最大制动率距离对应于主车辆在以主车辆的次最大制动率能力从主车辆的当前速度减速到零速度时可以行驶的距离。在任何实施例中,预定时间段可以是与车辆相关联的反应时间。例如,预定时间段可以是在处理设备首先检测到目标车辆的时间与主车辆开始制动的时间之间的时间段,如上面关于rss所讨论的。
[0781]
在一些实施例中,主车辆停止距离可以包括第一距离和第二距离,在第一距离内以预定次最大制动率制动主车辆,在第二距离内以主车辆的最大制动率能力制动主车辆。例如,如上所述,主车辆可以在第一距离内根据crss以次最大制动率进行制动,然后在第二距离内以最大制动率进行制动。在另一示例中,主车辆可以以次最大制动率进行制动,并且逐渐增加次最大制动率直到达到最大制动率,然后以最大制动率继续制动。处理设备可以被配置为,在第二持续时间内以主车辆的最大制动率能力制动主车辆之前,使主车辆在第一距离内以预定次最大制动率进行制动。例如,主车辆可以在第一持续时间内根据crss以次最大制动率进行制动,然后在第二持续时间内以最大制动率进行制动。
[0782]
在步骤5112何时规划导航动作可以被认为是安全的另一个示例是,当可以使用预定次最大制动率使主车辆在主车辆停止距离内停止,该主车辆停止距离小于所确定的下一状态距离与基于目标车辆的当前速度和所假设的目标车辆的最大制动率能力而确定的目标车辆行驶距离之和,其中预定制动率曲线从主车辆的次最大制动率逐渐增加到最大制动率。在一些实施例中,至少一个处理设备可以被编程为,如果对于所确定的主车辆的当前速度和对于预定制动率曲线,主车辆能够在主车辆停止距离内停止,则实施规划导航动作,该主车辆停止距离小于所确定的下一状态距离与基于目标车辆的当前速度和所假设的目标车辆的最大制动率能力而确定的目标车辆行驶距离之和,其中该预定制动率曲线从主车辆
的次最大制动率逐渐增加到最大制动率。该目标车辆停止距离可以如关于以上实施例中所讨论的那样而确定。该实施例与先前实施例之间的区别在于,该实施例中的制动曲线可以逐渐增加直到主车辆的最大制动率。crss安全距离可以包括(在主车辆和目标车辆的当前速度下)当主车辆在至少一部分制动时段内以次最大率施加其制动并且目标车辆以其最大率进行制动时,主车辆能够在其内停止并且不与目标车辆发生碰撞的距离。
[0783]
在该实施例中,可以通过与本公开一致的任何手段来增加制动率曲线。例如,预定制动率曲线可以从主车辆的次最大制动率线性地增加到最大制动率。作为另一示例,预定制动率曲线可以从主车辆的次最大制动率非线性地增加到最大制动率。在该示例中,预定制动率曲线可以指数地、对数地或者根据任何其他函数增加或者可以零星地增加。在任何示例中,仍然有可能制动曲线永远不会达到最大制动能力。例如,在车辆达到其最大制动率能力之前,制动条件(车辆可能已经响应于该制动条件而开始以预定制动率曲线进行制动)可能终止存在,并且车辆可以终止制动作为响应。
[0784]
与本公开一致,至少一个处理设备可以被配置为,如果所确定的主车辆停止距离比所确定的下一状态距离与基于目标车辆的当前速度和所假设的目标车辆的最大制动率能力而确定的目标车辆行驶距离之和少了至少预定最小距离,则实施规划导航动作。在一些实施例中,最小距离可以是如上文关于crss和rss所讨论的d
min
,并且可以通过与本公开一致的任何手段来预定或确定。在一些实施例中,预定最小距离可以对应于要在主车辆和其他车辆之间维持的预定分隔距离。例如,如果主车辆和目标车辆在相同的方向上行驶并且都达到停止,则预定分隔距离可以是主车辆和目标车辆都达到停止后两者之间的最小距离。预定分隔距离可以是任何长度的距离。例如,预定分隔距离可以是至少1m或其他合适的最小靠近距离。在一些实施例中,预定距离可以取决于例如主车辆行驶的速度、主车辆的位置(例如,城市道路、农村公路等)而变化。例如,d
min
可以随着主车辆速度的增加而增加。
[0785]
关于crss讨论的实施例仅是示例性的。受益于本公开的本领域普通技术人员可以理解,在本公开所讨论的任何实施例中,可以使用crss代替rss或与rss关联使用。在一些实施例中,主车辆可以能够在crss或rss模式下导航。例如,可以将完全自主车辆配置为在crss模型的规则下导航,但是车辆中的乘客可以解除crss模型并选择在rss模式下导航。例如,这样的模式选择可以使主车辆更靠近目标车辆,同时仍维持安全距离。然而,需要权衡的是,rss模式可能相比crss模式关联于更高的减速率,并且可能使主车辆的乘客感到不那么舒适。在一些实施例中,自主车辆可以能够在crss和rss模式的每个模式下导航。例如,车辆可以被配置为当在第一条件下(例如,以高速、在农村公路上等)行驶时采用crss模型,而在第二条件下(例如,以低速、在城市公路上等)行驶时采用rss模式。
[0786]
与本公开一致,crss模型可以用于导航完全自主车辆、可以用于导航部分自主车辆(例如,具有人类可操作模式和选择性自主模式的车辆),或者可以用作人类可操作车辆中的基本安全特征(例如,人类可操作车辆可以阻止或禁止在crss模型下可能是不安全的情况)。
[0787]
用于驾驶员操作车辆的零视觉(vision zero)安全系统
[0788]
在一些实施例中,可以在具有自主或部分自主能力但是允许人类驾驶员以驾驶员控制模式进行操作的主车辆中,采用安全系统(例如,零视觉)。在这种情况下,安全系统可以在后台运行。可以允许驾驶员采取他或她希望的任何导航动作,只要该导航动作不会导
致相对于检测到的目标车辆小于crss或rss距离即可。如果驾驶员从未采取会导致相对于目标车辆小于crss或rss距离(例如,取决于所选择的操作模式)的靠近的导航动作,那么驾驶员可能不会意识到该安全系统的操作。另一方面,如果驾驶员发起了会导致相对于目标车辆小于crss或rss距离的靠近的导航动作,则安全系统将采取一个或多个动作来阻止发起的导航动作被完成。换句话说,车辆可以从驾驶员那里取得对车辆的控制,以避免导航到涉及小于crss或rss的靠近距离的不安全情况。一旦驾驶员中止尝试导航到被车辆感测为不安全的条件,或者当驾驶员发起了主车辆认为是安全的不同导航动作,则他或她便会重新取得控制。
[0789]
所公开的安全系统可以取得对车辆的控制以阻止导航动作、可以阻止与潜在的不安全导航动作相关联的驾驶员输入(例如,被检测为具有会违反crss或rss包络的结果)、禁止某些导航输入、警告驾驶员和/或其组合。例如,如果车辆的横向运动会导致不安全切入(例如,如果车辆会在目标车辆前方切入,从而使该车辆与目标车辆之间的距离小于rss安全距离),则安全系统可以阻止该横向运动。在图30a中描绘了可以由安全系统阻止的不安全切入的示例。作为另一示例,安全系统可以阻止会导致一纵向运动、该纵向运动进而会导致在主车辆与目标车辆(例如,前方的目标车辆)之间小于rss或crss距离的导航动作。在图28b中示出了可以由安全系统阻止的不安全纵向运动的示例。作为另一示例,安全系统可以阻止会导致在主车辆与行人之间小于预定距离或安全距离的主车辆横向或纵向运动(响应于驾驶员输入)。在图44a和44c中描绘了可以由安全系统阻止的与行人有关的不安全运动的示例。
[0790]
与本公开一致,安全系统可以在人类驾驶员尝试进行不安全的导航操纵时阻止该导航操纵。如本文所使用的,“阻止”可以包括用于使驾驶员无法执行该导航操纵的任何手段。例如,如果不安全的航行操纵是并道,则安全系统可通过锁定方向盘或其他转向机构(例如,使方向盘无法朝并道的方向旋转)、通过施加相等但相反的转向输入来抵消驾驶员的转向输入、通过拦截或中断与驾驶员的转向输入相关联的电信号,或者以其他方式使驾驶员的转向输入没有导航响应或小于预期的导航响应,来停止并道。作为另一个示例,如果不安全的导航操纵是加速,则安全系统可以通过使加速输入无效(例如,拦截电信号、锁定油门踏板、施加制动等),来停止加速。该阻止可能足以避免或停止否则会是不安全的导航操纵(例如,确定为导致距目标车辆小于crss或rss的靠近等)。
[0791]
与本公开一致,安全系统可以接管车辆以避免由人类驾驶员尝试进行的不安全导航操纵。在接管时段期间,安全系统可以以自主模式操作并完全控制主车辆,直到例如确定驾驶员输入将不再导致不安全的导航动作为止。如本文所使用的,“接管”可以包括一个或多个的自主控制致动器的任何操作,安全系统通过所述操作可以操纵或控制转向、制动、加速或其他车辆控制系统中的一个或多个。例如,如果确定驾驶员输入与不安全的并道相关联,则安全系统可以临时取得对车辆转向机构的控制,从而使得驾驶员不能提供额外的转向输入以引起并道,或者使得驾驶员的输入无效,并且安全系统可以使车辆朝着避免不安全操纵的方向来转向(例如,与所发起的对方向盘的驾驶员输入相反的反向转向)。作为另一示例,如果不安全操纵是加速,则安全系统可以取得对加速机构的控制,从而使得驾驶员例如不能向油门提供额外的输入,或者使得驾驶员的输入无效,并且安全系统可以使车辆减速、维持当前速度或使车辆滑行以避免不安全条件。安全系统接管的设计避免了被系统
确定为不安全的导航操作,并避免了碰撞,尤其是可能是主车辆过错的碰撞。
[0792]
如本文中所使用的,当术语“取代”用于指代安全系统取代人类驾驶员时,其可以指代禁止人类驾驶员控制、阻止人类驾驶员控制或从人类驾驶员取得控制中的任何一个。
[0793]
如所指出的,自主安全系统可以在后台运行,直到检测到不安全条件或被确定为与不安全操纵相关联的驾驶员输入。在这种情况下,安全系统可以取代人类驾驶员控制(至少暂时地取代)。不安全条件可以包括例如确定驾驶员输入与会将主车辆置于距目标车辆小于crss或rss安全距离的距离的导航操纵相关联。作为示例,安全系统的处理设备可以使用在rss模型和/或crss模型下开发的纵向和/或横向安全距离,来构造相对于主车辆(或检测到的目标车辆)的接近缓冲区(proximity buffer)。在该示例中,安全条件可以包括在接近缓冲区内不存在对象(例如,目标车辆或vru)的任何条件。相反,不安全条件可以包括在接近缓冲区内存在或将存在对象的任何条件。接近缓冲区可以包括主车辆周围的二维或三维区域。可以使用上述的rss和/或crss安全距离计算,来确定接近缓冲区的维度。例如,接近缓冲区可以包括:在主车辆前方的、例如对应于crss安全纵向距离或rss距离的距离;在主车辆任一侧上的、例如对应于预定安全横向距离的距离;和/或在主车辆后方的、例如对应于rss安全距离的距离。
[0794]
图52a-52d是与本公开一致的示例性接近缓冲区的视觉表示。图52a示出了主车辆5201周围的接近缓冲区5202。在该示例中,可以从所确定的主车辆5201前方的安全距离5204并且从所确定的主车辆5201后方的安全距离5206得出该接近缓冲区5202。作为图52a至52d的示例中的最短安全距离的所确定的安全距离5204可以是rss纵向安全距离。因此,所确定的安全距离5204可以如上所述被确定。类似地,所确定的安全距离5206可以是rss纵向安全距离。包括接近缓冲区5202侧面的横向安全距离未被标出,但是应当理解,它们可以通过与本公开一致的任何手段来确定。可以预先确定这样的横向安全距离,以便在主车辆和其他车辆或对象之间维持最小横向间隔。这样的横向安全距离可以是例如0.25m、0.5m、1.0m或更长。在一些实施例中,接近缓冲区的侧面可以对应于预定的横向距离阈值,该阈值可以定义主车辆与对象之间的最小安全横向距离。
[0795]
图52b描绘了主车辆5211周围的接近缓冲区5212。在该示例中,主车辆5211前方的所确定的安全距离5214比主车辆5201前方的所确定的安全距离5204更长。在一些实施例中,所确定的安全距离5214可以比5204长,因为例如所确定的安全距离5214可以对应于crss安全距离。如上所述,所确定的安全距离5214也可以与rss安全距离以及最小靠近距离相对应。如上所述,所确定的安全距离5214可以对应于crss安全距离,该距离包括与次最大制动率相关联的制动距离。在一些实施例中,所确定的安全距离5214可以比所确定的安全距离5204更长,因为与主车辆5201相比,主车辆5211可能具有不同的制动特性或特征等。例如,所确定的安全距离5204和所确定的安全距离5214可以是rss安全距离,并且所确定的安全距离5214可以更长,因为与主车辆5211相比,主车辆5211可能与更高的当前速度和/或更低的最大制动能力相关联。
[0796]
图52c示出了主车辆5221周围的接近缓冲区5222。在该示例中,所确定的安全距离5224比所确定的安全距离5204长,并且比所确定的安全距离5214短。在一些实施例中,出于关于图52b所描述的任何原因,所确定的安全距离5224可以比所确定的安全距离5214短,并且比所确定的安全距离5204长。例如,如关于rss模型所描述的,所确定的安全距离5224可
以是包括最小靠近距离的rss安全距离,但是主车辆5221的最大加速能力可能小于主车辆5211的最大加速能力和/或主车辆5221的预定靠近距离可能小于主车辆5211的预定靠近距离。作为另一示例,主车辆5221的乘客或驾驶员可能已经选择了第一次最大制动率,并且主车辆5211的乘客或驾驶员可能已经选择了小于第一次最大制动率的第二次最大制动率,因此,主车辆5211可能需要更大的距离(例如,所确定的安全距离5214)才能安全地达到停止。在该示例中,主车辆5221具有车辆后方的更长的所确定的安全距离5226。正如主车辆5221前方的所确定的安全距离5224一样,由于用于确定距离的模型(例如,rss和/或crss)、主车辆5221的条件或特性(例如,最大加速能力、最大制动能力、当前速度、当前制动能力、次最大制动率等)和/或道路条件(例如,天气条件、道路材料等等),所确定的安全距离5226的长度可以比所确定的安全距离5216更长。
[0797]
图52d描绘了车辆5231周围的接近缓冲区5232。接近缓冲区5232大于接近缓冲区5205、5212或5222中的任何一个。在一些实施例中,接近缓冲区5232可以大于其他缓冲区,这是因为例如crss模型被用于主车辆5231前方的所确定的安全距离5234和主车辆5231后方的所确定的安全距离5236两者。在一些实施例中,接近缓冲区5232的尺寸可能是由于关于图52a至52c所讨论的因素中的任何一个。
[0798]
与本公开一致,主车辆可具有一个以上的接近缓冲区。例如,主车辆可以具有与rss模型相关联的第一接近缓冲区(例如,接近缓冲区5202)和与crss模型相关联的第二接近缓冲区(例如,接近缓冲区5232)。在一些实施例中,如果第一接近缓冲区被打破(breach),则安全系统可以取代驾驶员。例如,如果主车辆进入距目标车辆小于rss安全距离的距离内,则安全系统可以取代驾驶员以阻止碰撞。在相同的实施例中,如果第二接近缓冲区被打破但放弃了取代驾驶员,则安全系统可以警告驾驶员。例如,如果主车辆进入小于crss安全距离的目标车辆的距离内,则安全系统可以通过:例如使扬声器系统发出声音警告;使乘客舱内的座椅、转向机构或其他组件振动;在平视显示器或增强现实显示器上显示警报;或通过任何其他手段,来警告驾驶员主车辆太靠近目标车辆。在一些实施例中,如果第二接近缓冲区被打破,则安全系统可以取代驾驶员。例如,如果主车辆进入小于crss安全距离的目标车辆的距离内,则安全系统可以使车辆以与crss模型的次最大制动率相对应的率进行减速。如果主车辆与目标车辆之间的距离变得比rss安全距离更近而打破了第一接近缓冲区,则安全系统可以使车辆根据rss模型以与主车辆的最大制动率相对应的率进行减速。并且,如上所述,只要来自驾驶员的输入被确定为将导致相对于另一车辆或对象小于rss或crss距离的靠近,则安全系统也可以取代驾驶员。
[0799]
如上所述,rss和crss模型中的每一个可以计算相对于检测到的对象的安全距离。例如,每个模型可以确定目标车辆的制动能力,并使用该制动能力来确定安全距离。这样,接近缓冲区的维度可以取决于在主车辆环境中检测到的对象而不同。作为一个示例,当第二目标车辆具有比第一目标车辆更高的最大制动能力时,主车辆与第一目标车辆之间的rss安全距离可以比主车辆与第二目标车辆之间的rss安全距离更长(即,第二目标车辆可能比第一目标车辆在更短的距离内达到停止)。作为另一个示例,主车辆与行人之间的rss或crss安全距离可能比主车辆与任何目标车辆之间的rss或crss安全距离显著更长,这是因为主车辆与行人之间的最小分隔距离可能大于主车辆和目标车辆之间的最小分隔距离。
[0800]
安全系统可以在与不安全条件(诸如接近缓冲区被打破)相对应的持续时间内,或
在检测到不安全驾驶员输入(例如,被确定为会导致相对于另一车辆或对象小于rss或crss距离的靠近的至少一个驾驶员输入)的时间段期间来取代驾驶员。例如,安全系统可以取得对车辆的控制,直到不安全条件终止存在为止(例如,该车辆与目标车辆的距离大于crss或rss安全距离)。
[0801]
图53a和53b示出了两个车辆之间的安全和不安全条件的示例。图53a示出了沿着道路5302在相同方向上行驶的主车辆5301和目标车辆5303。在该示例中,主车辆5301可以包括与本公开一致的安全系统和接近缓冲区5304。类似地,目标车辆5303可以包括与本公开一致的安全系统并且具有接近缓冲区5306。在该示例中,如果主车辆5301由驾驶员驾驶,则该驾驶员可以持续导航主车辆5301(例如,该驾驶员将不会被安全系统取代),这是因为在接近缓冲区5304内不存在对象。对于人类驾驶员导航目标车辆5303来说也是如此。
[0802]
图53b描绘了沿着道路5312在同一方向上行驶的主车辆5311和目标车辆5313。在此示例中,主车辆5301可以包括与本公开一致的安全系统和接近缓冲区5314。类似地,目标车辆5313可以包括与本公开一致的安全系统并且具有接近缓冲区5316。在该示例中,如果主车辆5311由人类驾驶员驾驶,并且目标车辆5313的安全系统检测到被确定为会导致图53b中所示的切入的一个(或多个)驾驶员输入,则安全系统可以取代驾驶员并取得控制以阻止该动作。例如,与车辆5313相关联的安全系统可以确定驾驶员输入将导致可能打破横向安全距离的情况、在操纵之后将导致与车辆5313的后部的纵向间隔不足(例如,在切入之后将不存在rss距离)等等。在这种情况下,安全系统将通过阻止驾驶员输入导致不安全的切入操纵来进行响应。在图53b的相同场景中,如果车辆5313确实进行了切入操纵,例如,在车辆5311的驾驶员没有制动来使车辆减速以便建立起与缓冲区5314相关联的crss或rss距离的情况下,车辆5311的安全系统可以取代驾驶员输入。在这种情况下,不安全的驾驶员输入可以对应于在输入中缺乏改变,或者换句话说,不安全地维持了当前的输入/控制。
[0803]
图54a和54b示出了与本公开一致的安全系统可以取代人类驾驶员的附加实例。如图54a和54b所示,车辆5402、车辆5404和车辆5406各自在道路5400上沿共同的方向行驶。在该示例中,道路5400可以是高速公路。车辆5402可以包括与本公开一致的安全系统,并且可以具有接近缓冲区5403。接近缓冲区5403可以对应于rss和/或crss模型中的任何一个,如上所述。出于说明的目的,假设接近缓冲区5403具有与crss模型相关联的车辆5402前方的所确定的安全距离。
[0804]
在图54a中,如图所示,车辆5402中的驾驶员可以使车辆5402靠近车辆5406的后部。如果驾驶员尝试使车辆5402进入小于crss安全距离的车辆5406的距离内(如在接近缓冲区5403内的车辆5406所示),则车辆5402的安全系统可以取代驾驶员,以避免不安全条件并维持crss距离。例如,安全系统可以取得控制并阻止或忽略驾驶员的加速输入,或者可以制动车辆5402。例如,安全系统可以使车辆5402以与crss模型的次最大制动率相对应的率进行减速,直到车辆5402与车辆5406的距离大于接近缓冲区5402。作为另一个示例,在接近缓冲区5403被打破之前,安全系统可以确定车辆5402的下一状态位置(例如,如果执行了驾驶员的输入则车辆5402将会处于的位置),并且在将车辆5402带入小于crss安全距离的车辆5406的距离内之前取代驾驶员。
[0805]
在图54b中,车辆5402中的人类驾驶员可能尝试使车辆5402并入由车辆5404占据的车道中。如果驾驶员尝试可能使车辆5402进入小于crss安全距离的车辆5404的距离内的
导航动作(如接近缓冲区5403和车辆5404之间的重叠所示),则安全系统可以取代人类驾驶员以阻止该导航动作。例如,如果人类驾驶员尝试例如通过使方向盘向右转动而右转向,则安全系统可以确定该转向的执行将导致图54b所示的不安全条件。作为响应,安全系统可以接管控制并取代人类驾驶员。例如,安全系统可以通过向左对方向盘施加相等的力来禁止方向盘向右转动。作为另一示例,安全系统可通过机械和/或电气地中断右转弯输入而使方向盘的向右转动无效,来阻止右转向。作为另一示例,安全系统可以接管车辆5402,并根据需要左转向,以避免如果执行右转向时将出现的不安全条件。对于这些示例中的任何一个,该取代可以持续到车辆5402返回到安全条件(例如,到车辆5404或5406都不在接近缓冲区5403内的位置)为止和/或与车辆5402相关联的下一状态条件被确定为安全为止。
[0806]
在图53a至53b和图54a至54b中描绘的示例仅是示例性的。受益于本公开的本领域技术人员可以理解,安全系统或类似的导航系统可以在任何不安全条件下或响应于可能导致不安全条件的任何输入来取代驾驶员。
[0807]
在一些实施例中,安全系统可以存储或传输与其中安全系统取代人类驾驶员的任何实例有关的数据。例如,安全系统可以生成与导致安全系统取代驾驶员的不安全条件、所发生的取代的类型(例如,禁止、阻止或接管)、取代的持续时间、取代的后果(例如,车辆恢复到安全条件、车辆停止、车辆发生碰撞)有关的数据,或是与取代或在取代之前或之后发生的事件有关的任何其他信息。与本公开一致,该信息可以用于确定安全系统、rss模型、crss模型或任何其他自主车辆特征是否正在按预期执行。这样的信息可以从主车辆通过一个或多个网络传输到远程服务器。例如,该信息可以被传输到汽车制造商、安全制造商或负责实施安全系统的其他方以进行分析。在一些实施例中,该信息可以被显示给车辆的驾驶员。例如,可以在每个取代事件之后、每个行程之后、在接收到来自驾驶员的请求之后、或者以有计划的间隔(例如,每天、每周、每两周、每月等)来生成报告。可以设想的是,提供与安全系统和所避免的不安全条件有关的驾驶员信息可以增加驾驶员对安全系统(或通常对自主车辆)的信任程度。
[0808]
在一些实施例中,车辆可以包括用于停用或解除安全系统的装置(例如,开关、按钮、语音激活控件或其他类型的控件)。例如,驾驶员可以停用安全系统以阻止其解除驾驶员,或者驾驶员可以在取代事件期间解除安全系统以重新取得对主车辆的控制。可以设想的是,用于停用或解除安全系统的控件独立于与导航车辆相关联的车辆的任何控制机构。例如,车辆可以包括不与油门、制动器、方向盘或任何其他控制机构相关联的按钮。在此示例中,驾驶员仅能通过按下该按钮(或其他安全系统控件)来停用或解除安全系统。与传统的adas系统(即,高级驾驶员辅助系统,诸如车道保持系统、自动制动系统等)不同,无法通过向转向控件、制动控件或油门控件提供输入来停用或解除所公开的安全系统。例如,如果该安全系统接管车辆的转向机构以便执行右转弯,则驾驶员将无法通过例如持续将车轮向右转动(例如,利用力的增加来试图克服或解除安全系统)来解除安全系统。而是,驾驶员首先需要激活指定的安全系统超驰控件(override control)来解除安全系统。类似地,如果所公开的安全系统取得控制以阻止会导致纵向距离小于crss或rss的导航动作,则驾驶员将无法通过对车辆制动器或油门的输入来超驰控制(override)该安全系统。相反,将需要使用指定的安全系统控件。
[0809]
应当理解,可以通过任何适当的控制输入(诸如,杆、旋钮、虚拟按钮、语音命令、手
势等)来解除或停用安全系统。在一些实施例中,导航系统可以包括在车辆内部的图像捕捉设备,该图像捕捉设备被配置为捕捉人类驾驶员的一个或多个图像或视频。至少一个处理设备可以分析所捕捉的图像和/或视频以辨识手势或其他非语言命令,并且可以被编程为响应于手势或其他非语言命令停用或解除安全系统。在一些实施例中,导航系统可以包括被配置为捕捉声音数据的一个或多个麦克风。至少一个处理设备可以使用语音辨识处理(例如,使用神经网络、经训练的或未经训练的系统等)来分析声音数据,并且响应于包括辨识出的命令的声音数据来停用或解除安全系统。
[0810]
与本公开一致,安全系统可以收集与停用或解除安全系统的任何情况有关的信息。例如,安全系统可以记录正好在安全系统停用之前的导航情况(例如,主车辆的速度、加速度、跟随距离等)和/或停用的时间和地点。在一些实施例中,即使在已经停用或解除安全系统之后,其也可以继续监视驾驶员的驾驶条件,并如上所述存储或发送该数据。
[0811]
与本公开一致,公开了一种用于选择性地取代人类驾驶员控制的导航系统。该导航系统可以例如通过阻止或禁止驾驶员的动作来部分地取代驾驶员,或者可以例如通过接管车辆并执行独立于驾驶员的导航操纵来完全取代驾驶员。该导航系统可以是本文公开的安全系统或任何其他系统。在一些实施例中,该系统可以完全容纳在主车辆内。在其他实施例中,该系统的一个或多个组件可以位于远离主车辆的位置,诸如在服务器或其他设备中。该系统可以包括至少一个处理设备。该至少一个处理设备可以被编程为执行与本公开一致的一个或多个方法、处理、操作或功能。至少一个处理设备可以是例如处理设备110。
[0812]
图55是描绘了用于选择性地取代人类驾驶员的示例性处理5500的流程图。与本公开一致,导航系统中的至少一个处理设备可以被编程为执行处理5500的全部或部分。处理5500仅仅是示例性的,受益于本公开的本领域普通技术人员可以理解该处理5500可以包括附加步骤、可以排除一个或多个步骤、或者可以以与本公开一致的方式进行其他修改。
[0813]
处理5500可以包括用于接收一个或多个图像的步骤5502。至少一个图像可以表示例如主车辆的环境。在一些实施例中,处理设备可以被编程为接收代表主车辆环境的至少一个图像。可以从至少一个图像捕捉设备接收至少一个图像。例如,导航系统可以包括一个或多个图像捕捉设备(诸如图像捕捉设备122),其可以捕捉主车辆环境的图像。图像捕捉设备可以具有与人类驾驶员的视场相对应的视场。在一些实施例中,导航系统可以包括多个图像捕捉设备,每个图像捕捉设备具有相对于主车辆环境的不同视场。例如,多个图像捕捉设备中的至少一个可以被配置为捕捉代表主车辆后方的主车辆环境的图像;多个图像捕捉设备中的至少一个可以被配置为捕捉代表主车辆侧面的主车辆环境的图像;和/或多个图像捕捉设备中的至少一个可以被配置为捕捉代表主车辆前方的主车辆环境的图像;等等。例如,第一图像捕捉设备可以具有与主车辆前方的区域相对应的视场,第二图像捕捉设备可以具有与主车辆右侧相对应的视场,等等。在所公开的实施例中,处理设备可以被编程为接收多个图像。例如,在导航系统仅包含一个图像捕捉设备的实施例中,处理设备可以从该成像设备接收多个图像。作为另一个示例,处理设备可以从第一图像捕捉设备接收一个或多个图像和/或从第二图像捕捉设备接收一个或多个图像,从第三图像捕捉设备接收一个或多个图像,等等。
[0814]
处理5500可以包括用于检测主车辆环境中的至少一个障碍物的步骤5504。可以通过对至少一个图像的分析来检测至少一个障碍物。该至少一个图像可以是在步骤5502接收
到的一个或多个图像。例如,处理设备可以被编程为基于对至少一个图像的分析,检测主车辆环境中的至少一个障碍物。例如,处理设备可以将接收到的图像与已知障碍物的一个或多个图像进行比较,或者可以检测该图像中与一个或多个障碍物相对应的形状、文本或其他对象。一个或多个障碍物可以是主车辆环境中的任何对象。例如,一个或多个障碍物可以是主车辆正在行驶的道路上或道路附近的目标车辆或vru。作为另一示例,一个或多个障碍物可以是坑洞、栏杆、道路标志、交通灯、交通锥、栏杆或护栏,或道路上或沿道路的任何其他对象。在一些实施例中,可能在主车辆环境中检测到多个障碍物。例如,处理设备可以检测到第一主车辆、第二主车辆、交通灯、坑洞和任何数量的额外的障碍物。
[0815]
在其中导航系统包括多个图像捕捉设备的实施例中,每个图像捕捉设备可以具有相对于主车辆环境的不同视场,至少一个处理设备可以被配置为从多个图像捕捉设备中的每一个接收一个或多个图像,并基于对从多个图像捕捉设备接收到的一个或多个图像的分析来检测主车辆环境中的至少一个障碍物。例如,多个图像捕捉设备中的至少一个可以被配置为捕捉代表主车辆侧面的主车辆环境的图像,并且从该图像捕捉设备接收的一个或多个图像可以被用于检测位于主车辆侧面的一个或多个障碍物。类似地,多个图像捕捉设备中的至少一个可以被配置为捕捉代表主车辆后方的主车辆环境的图像,并且从该图像捕捉设备接收的一个或多个图像可以被用于检测位于主车辆后方的一个或多个障碍物。
[0816]
在一些实施例中,至少一个障碍物可以是主车辆环境中的目标车辆。例如,至少一个障碍物可以是被确定为在主车辆的前方的目标车辆。作为另一示例,至少一个障碍物可以是被确定为处于与主车辆不同的车道中的目标车辆。在一些实施例中,至少一个障碍物可以包括道路中的行人或对象。
[0817]
在一些实施例中,处理设备可以使用来自与主车辆相关联的一个或多个传感器的输出来检测环境中的一个或多个障碍物。传感器可以是本文公开的任何传感器。例如,处理设备可以接收来自激光雷达系统和/或雷达系统的输出,并使用该信息来检测主车辆附近的一个或多个障碍物。
[0818]
处理5500可以包括用于监视对油门机构、制动机构和/或转向机构的驾驶员输入的步骤5506。与本公开一致,至少一个处理设备可以被编程为监视对与主车辆相关联的油门控件、制动控件或转向控件中的至少一个的驾驶员输入。可以通过与本公开一致的任何技术来监视该输入。例如,一个或多个传感器可以被配置为检测与油门、制动或转向控件中的任何一个相关联的电信号。在另一示例中,一个或多个传感器可以被配置为检测对油门、制动或转向控件中的任何一个的机械输入。油门控件、制动控件和/或转向控件可以是目前已知或随后开发的任何类型的控件。例如,油门控件可以包括加速器踏板,制动控件可以包括制动踏板,并且转向控件可以包括方向盘。在另一示例中,一个或多个主车辆控制系统可以包括:用于控制主车辆的航向的至少一个转向致动器、用于引起主车辆制动设备的应用的制动致动器,或用于引起主车辆油门的应用的加速致动器。例如,油门控制系统可以包括用于引起主车辆油门的应用的加速致动器,制动控制系统可以包括用于引起主车辆制动踏板的应用的制动致动器,和/或转向控制系统可以包括用于控制主车辆的航向的至少一个转向致动器。驾驶员输入可以是对一个或多个控件的任何激活运动或其他激活,或者是不存在该运动或其他激活。继续以上示例,驾驶员输入可以包括以下中的至少一个:压下加速踏板、压下制动踏板、未压下制动踏板、旋转方向盘或不旋转方向盘。
[0819]
处理5500可以包括用于确定驾驶员输入是否会导致安全导航动作的步骤5508。如所描述的,如果在使驾驶员输入生效的情况下将会发生的导航改变不会导致主车辆进入距一个对象小于主车辆周围的接近缓冲区的距离(例如,在rss距离、crss距离或预定的最小横向缓冲区距离内等等),则该驾驶员输入可以导致安全条件。与本公开一致,至少一个处理设备可以被编程为确定驾驶员输入是否会导致主车辆在相对于至少一个障碍物的接近缓冲区内导航。至少一个处理设备可以通过与本公开一致的任何技术来确定接近缓冲区是否可能被打破。例如,处理设备可以确定主车辆与一个或多个对象(例如,目标车辆或vru)之间的当前距离,并基于该当前距离和驾驶员输入来确定主车辆与一个或多个对象之间的下一状态距离。可以例如基于图像分析(例如,缩放观测)、激光雷达输出、雷达输出等来确定对象之间的这种距离。作为一个示例,参照图53a和图53b,如果人类驾驶员提供了将导致车辆5303转向左的输入(例如,通过旋转车辆5303的方向盘),则处理设备可以确定车辆5303和车辆5301之间的下一状态距离将会是图53b所示的不安全条件。作为另一个示例,参照图54a,如果车辆5402的人类驾驶员提供了加速输入(例如,通过压下加速踏板),则处理设备可以确定车辆5402的加速度可能使车辆5402进入小于接近缓冲区5403的车辆5406的距离内,因此是不安全的。在这种情况下,安全系统可以取得对主车辆的控制,并阻止与检测到的驾驶员输入相关联的不安全操纵。
[0820]
处理5500可以包括功能5510,该功能5510可以指示导航系统如何处理驾驶员输入将会导致主车辆打破接近缓冲区的情况以及驾驶员输入将不会导致主车辆打破接近缓冲区的情况。在一些实施例中,功能5510可以被包括在处理5500的步骤5508中。接近缓冲区可以是与本公开一致的任何接近缓冲区,包括使用rss和/或crss模型确定的那些接近缓冲区。接近缓冲区可以取决于rss和crss模型所依赖的、在主车辆环境中的检测到的障碍物或对象。在一些实施例中,接近缓冲区可以包括一个或多个预定距离。例如,接近缓冲区可以对应于预定的横向距离阈值。横向距离阈值可包括主车辆与位于主车辆任一侧的对象之间的预定最小距离。作为另一示例,接近缓冲区可以对应于预定的纵向距离。如相对于rss模型所描述的,该纵向距离可以是例如要在主车辆与对象之间维持的最小距离d
min

[0821]
与本公开一致,至少一个障碍物可以包括目标车辆,并且可以基于检测到的主车辆的当前速度、主车辆的最大制动率能力、所确定的目标车辆的当前速度、所假设的目标车辆的最大制动率能力、以及所确定的主车辆的最大加速能力,来确定相对于目标车辆的接近缓冲区。在这种情况下,接近缓冲区可以至少包括主车辆加速距离、主车辆停止距离和目标车辆停止距离的总和,该主车辆加速距离被确定为主车辆在与主车辆相关联的反应时间内以主车辆的最大加速能力加速时将行驶的距离,该主车辆停止距离被确定为以主车辆的最大制动率能力将主车辆的当前速度降低到零所需的距离,该目标车辆停止距离被确定为以所假设的目标车辆的最大制动率能力将目标车辆的当前速度降低到零所需的距离。例如,可以使用rss安全距离来确定接近度缓冲区,该rss安全距离包括主车辆的加速距离和停止距离以及目标车辆的停止距离。在一些实施例中,还可以基于要在主车辆与目标车辆之间维持的预定最小距离,来确定相对于目标车辆的接近缓冲区。例如,如上所述,该接近缓冲区可以包括最小距离d
min

[0822]
与本公开内容一致,至少一个障碍物可以包括目标车辆,并且可以基于检测到的主车辆的当前速度、主车辆的最大制动率能力、所确定的目标车辆的当前速度、所假设的目
标车辆的最大制动率能力、以及主车辆的最大加速能力,来确定相对于目标车辆的接近缓冲区。在一些实施例中,还可以基于小于主车辆的最大制动率能力的预定次最大制动率,来确定相对于目标车辆的接近缓冲区,使得接近缓冲区至少包括主车辆停止距离和目标车辆停止距离的总和,该主车辆停止距离被确定为以主车辆的预定次最大制动能力将主车辆的当前速度降低到零所需的距离,该目标车辆停止距离被确定为以所假设的目标车辆的最大制动能力将目标车辆的当前速度降低到零所需的距离。例如,可以使用crss安全距离来确定接近缓冲区,该crss安全距离包括:在主车辆以与预定次最大制动率相对应的率进行减速的情况下主车辆的停止距离、以及在目标车辆以与其最大制动率能力相对应的率进行减速的情况下目标车辆的停止距离。在一些实施例中,还可以基于要在主车辆与目标车辆之间维持的预定最小距离,来确定相对于目标车辆的接近缓冲区。例如,如上所述,该接近缓冲区可以包括最小距离d
min

[0823]
在以上公开的任何实施例中,目标车辆可以在主车辆的前面、旁边或后面。例如,目标车辆可以在主车辆的前方,并且至少一个处理设备可以被配置为确定驾驶员输入会导致目标车辆和主车辆之间的纵向距离的改变。例如,主车辆与目标车辆的距离可以大于主车辆前方的接近缓冲区的距离,并且驾驶员输入可能导致主车辆与目标车辆的距离小于该接近缓冲区的距离。在一些实施例中,可以确定目标车辆处于与主车辆不同的车道中,并且至少一个处理设备可以被配置为确定驾驶员输入会导致主车辆的横向运动,使得在该横向运动之后,目标车辆将在主车辆的前方。例如,驾驶员输入可能导致主车辆在目标车辆后方并道,如果主车辆与目标车辆的距离将保持大于主车辆前方的接近缓冲区的距离,则该并道可能是安全的,如果主车辆将进入小于主车辆前方的接近缓冲区的距离的目标车辆的距离内,则该并道可能是不安全的。在一些实施例中,确定目标车辆处于与主车辆不同的车道中,并且至少一个处理设备被配置为确定驾驶员输入会导致主车辆的横向运动,使得在该横向运动之后,主车辆将在目标车辆的前方。例如,驾驶员输入可能使得主车辆切入目标车辆的前方,如果主车辆将保持大于车辆后方的接近缓冲区的距离,则该切入可能是安全的,如果主车辆将进入小于主车辆后方的接近缓冲区的目标车辆的距离内,则该切入可能是不安全的。
[0824]
与本公开一致,至少一个障碍物可以包括道路中的行人或对象,并且相对于至少一个障碍物的接近缓冲区可以至少包括要在主车辆与至少一个障碍物之间维持的最小距离。如上所述,最小距离可以根据障碍物的类别而变化。例如,如果障碍物是行人,则最小距离可以是在预定阈值内主车辆将必然能够避免与行人发生碰撞的距离。这样,相对于行人的最小距离可以是与本公开一致的最长的最小靠近距离。在一些实施例中,可以基于主车辆的当前速度来确定相对于行人的接近缓冲区,并且该接近缓冲区可以随着主车辆速度的增加而增加。即使在相对于行人的接近缓冲区是基于主车辆的当前速度的情况下,可以预期的是,相对于行人的接近缓冲区将比主车辆的停止距离更长(并且通常比停止距离长得多)。例如,相对于行人的接近缓冲区可以是针对主车辆的当前速度的主车辆的停止距离(根据rss或crss模型计算)加上附加的最小距离。作为另一示例,相对于行人的接近缓冲区可以是针对主车辆的当前速度的主车辆的停止距离的120%,或是对该停止距离的不同修改(例如,110%、150%、200%等)。
[0825]
处理5500可以包括用于如果驾驶员输入不会导致主车辆进入相对于对象的接近
缓冲区内,则允许该输入的步骤5514。与本公开一致,至少一个处理设备可以被编程为,如果至少一个处理设备确定驾驶员输入不会导致主车辆在相对于至少一个障碍物的接近缓冲区内导航,则允许该驾驶员输入引起一个或多个主车辆运动控制系统中的对应改变。例如,如果处理设备确定驾驶员输入不会使主车辆进入相对于任何障碍物(例如目标车辆或vru)的接近缓冲区内,则处理设备可以放弃取代人类驾驶员。本文公开的若干附图描绘了安全系统不会取代驾驶员的状况,包括图53a。
[0826]
该一个或多个主车辆运动控制系统可以是与本公开一致的任何系统。例如,一个或多个运动控制系统可以包括油门系统220、制动系统230和/或转向系统240。在一些实施例中,一个或多个主车辆控制系统可以包括用于控制主车辆的航向的至少一个转向致动器、用于引起主车辆制动设备的应用的制动致动器,或用于引起主车辆油门的应用的加速致动器。例如,油门系统220可以包括一个或多个加速致动器,制动系统230可以包括一个或多个制动致动器,并且转向系统240可以包括一个或多个转向致动器。
[0827]
处理5500可以包括用于如果驾驶员输入会导致主车辆进入相对于对象的接近缓冲区内,则取代人类的步骤5512。与本公开一致,至少一个处理设备可以被编程为,如果至少一个处理设备确定驾驶员输入不会导致主车辆在相对于至少一个障碍物的接近缓冲区内导航,则阻止驾驶员输入引起一个或多个主车辆运动控制系统中的对应改变。安全系统可以基于本文公开的不安全条件的多个示例中的任何示例来取代人类驾驶员。例如,如果驾驶员输入会导致主车辆进入小于rss安全距离(或crss安全距离,这取决于所使用的模型)的对象的距离,则安全系统可以确定驾驶员输入不安全,并可以取代驾驶员并接管控制。
[0828]
与本公开一致,阻止驾驶员输入引起主车辆中的对应改变可以包括阻止该驾驶员输入。在一些实施例中,为了阻止驾驶员输入引起一个或多个主车辆运动控制系统中的对应改变,至少一个处理设备可以被配置为响应于检测到的驾驶员输入,在某些情况下阻止油门控件、制动控件或转向控件中的至少一个的动作或阻止进一步的动作。例如,如果驾驶员输入是由压下加速踏板引起的加速,则安全系统可以通过锁定加速踏板以使其不能被压下来阻止该加速。类似地,如果驾驶员输入是方向盘的顺时针旋转,则安全系统可以通过锁定方向盘以使其无法转动或只能沿与安全条件相对应的方向转动(例如,锁定方向盘使其不能顺时针旋转,但允许逆时针旋转)来阻止该旋转。在一些实施例中,为了阻止驾驶员引起一个或多个主车辆运动控制系统中的对应改变,至少一个处理设备可以被配置为禁用油门控件、制动控件或转向控件中的至少一个的可操作性。例如,如果驾驶员输入是压下制动踏板,则安全系统可以通过将制动踏板与制动系统的其余部分解耦(例如,以电子或机械方式)从而使压下制动踏板无效来阻止该输入。类似地,如果驾驶员输入是方向盘的旋转,则安全系统可以通过将方向盘解耦从而使方向盘(至少在会导致不安全条件的方向上)的旋转无效来阻止该输入。在一些实施例中,阻止驾驶员输入引起一个或多个主车辆运动控制系统中的对应改变可以包括以下步骤中的至少一个:对于对方向盘的驾驶员输入,阻止其引起至少一个转向致动器的对应响应;对于对制动踏板的驾驶员输入,阻止其引起制动致动器的对应响应;或者对于对加速器踏板的驾驶员输入,阻止其引起加速致动器的对应响应。例如,如果驾驶员输入是压下加速踏板,则并非是锁定该踏板或解耦该踏板,而是安全系统可以允许驾驶员提供该输入,但是例如通过在来自加速踏板的电信号到达加速致动器
之前拦截该电信号,从而阻止该输入生效。在任何实施例中,对驾驶员输入的阻止可以持续与不安全条件相对应的时段。例如,当处理设备确定主车辆的加速不会使主车辆进入小于接近缓冲区的距离的对象的距离内时,安全系统可以解锁加速踏板。
[0829]
与本公开一致,阻止驾驶员输入引起主车辆中的对应改变可以包括禁止该驾驶员输入。在一些实施例中,为了阻止驾驶员输入引起一个或多个主车辆运动控制系统中的对应改变,至少一个处理设备可以被配置为阻止油门控件、制动控件或转向控件中的至少一个响应于驾驶员输入的动作,并向油门控件、制动控件或转向控件中的至少一个施加冲击力(impulse force)。例如,如果驾驶员输入是方向盘的顺时针旋转,则安全系统可以通过锁定方向盘以使其不能沿顺时针方向旋转并施加使方向盘沿逆时针方向旋转的力来禁止该旋转。在同一示例中,安全系统可以通过部分地锁定方向盘,以使其可以沿顺时针方向旋转但是主车辆并不完全响应顺时针旋转来禁止该旋转,并且该安全系统可以沿逆时针方向对方向盘施加力。在一些实施例中,至少一个处理设备可以被配置为阻止油门控件、制动控件或转向控件中的至少一个的动作,并且持续向油门控件、制动控件或转向控件中的至少一个施加冲击力,直到接收到不会导致主车辆在相对于至少一个障碍物的接近缓冲区内导航的驾驶员输入为止。例如,继续上面的示例,安全系统可以持续禁止方向盘沿顺时针方向旋转,直到人类驾驶员沿逆时针方向旋转方向盘的幅度足以使主车辆避免不安全条件或恢复到安全条件(例如,在接近缓冲区内没有障碍物的条件)。作为另一示例,如果驾驶员输入是压下加速踏板,则安全系统可以通过向加速踏板提供与该压下相反的力来禁止该输入,并且可以持续提供该力,直到驾驶员停止压下加速踏板或开始压下制动踏板为止。在任何实施例中,该禁止可以一直持续到主车辆处于安全状况,在该安全状况下在接近缓冲区内不存在障碍物并且不存在会导致主车辆进入小于接近缓冲区的障碍物的距离的驾驶员输入。
[0830]
与本公开一致,阻止驾驶员输入引起主车辆中的对应改变可以包括从人类驾驶员接管控制或与从人类驾驶员接管控制相关联。在一些实施例中,至少一个处理设备可以被配置为在至少一个处理设备阻止驾驶员输入引起一个或多个主车辆运动控制系统中的对应改变的间隔期间,自主地控制主车辆的导航。例如,如果驾驶员输入是方向盘的顺时针旋转,则如上所述,安全系统可以阻止或禁止该输入,并且取得对转向系统240的控制,使得驾驶员输入无效并由处理设备控制主车辆的转向。在一些实施例中,如果任何驾驶员输入将会导致不安全条件,则安全系统可以完全取代人类驾驶员,从而使处理设备具有对主车辆的完全自主控制,而并非仅仅是与不安全的驾驶员输入相对应的对系统的控制。例如,如果不安全的驾驶员输入是压下加速踏板,则安全adas系统可以取得对加速系统、制动系统和转向系统的控制,使得处理设备可以完全导航主车辆。根据本公开的任何实施例,安全系统及其中的处理设备可以自主地导航主车辆。在一些实施例中,至少一个处理设备可以被配置为在接收到不会导致主车辆在相对于至少一个障碍物的接近缓冲区内导航的驾驶员输入之后,将主车辆的导航控制返回给驾驶员。例如,在安全系统自主地导航主车辆的时段内,如果驾驶员尝试提供不会引起不安全条件的输入,则安全系统可以终止自主导航并允许人类驾驶员接管对主车辆的控制。
[0831]
与本公开一致,至少一个处理设备可以被编程为警告人类驾驶员。在一些实施例中,如果处理设备确定驾驶员输入将会导致不安全条件,则至少一个处理设备可以警告驾
驶员。该警告可以是与本公开一致的任何警报。例如,车辆可以包括扬声器系统,并且安全系统可以通过该扬声器系统提供听觉警报。作为另一示例,车辆可以包括一个或多个显示器(例如,仪表板或娱乐系统中的屏幕),并且安全系统可以在一个或多个显示器上提供视觉警报。作为另一个示例,车辆可以具有平视显示器或增强现实显示器(例如,在车辆的前挡风玻璃上),并且安全系统可以在该平视显示器或增强现实显示器上提供警报。该显示器可以包括,例如,何种驾驶员输入将会导致不安全条件的指示、将会是安全条件的输入的指示、安全系统正在取代驾驶员指示等。
[0832]
与本公开一致,至少一个处理设备可以被编程为收集和传输与安全系统取代人类驾驶员时的情况有关的数据。例如,该数据可以包括:与被确定为不安全的驾驶员输入有关的信息;取代的时间、地点和持续时间;取代的类型(例如,阻止、禁止或接管);接管的后果(例如避免了碰撞);以及与取代有关的任何其他信息。该数据可以被传输到一个或多个系统或设备。例如,数据可以被传输到与驾驶员相关联的设备,以用于通知驾驶员被避免的事故、他或她的驾驶能力等。作为另一示例,该信息可以被传输到一个或多个系统以用于与自主车辆、道路安全、人类驾驶习惯等有关的研究。
[0833]
与本公开一致,用于选择性地取代对主车辆的人类驾驶员控制的自主系统可以包括系统超驰控件,其用于禁用用于选择性地取代人类驾驶员控制的自主系统。该系统超驰控件可以不同于油门控件、制动控件和转向控件。例如,该系统超驰控件不同于制动控件、油门控件和转向控件要求了驾驶员向该超驰控件提供不同于导航输入的输入。在一些实施例中,系统超驰控件可以是手柄、按钮、控制杆或能够从驾驶员接收输入的其他物理设备。例如,该超驰控件可以是控制杆,并且禁用自主系统的输入可以是该控制杆的拉动或其它位移。在一些实施例中,系统超驰控件可以是听觉短语、视觉手势,或可以由一个或多个麦克风和/或图像捕捉设备系统检测的其他类型输入。例如,该系统超驰控件可以包括手势。如上所述,该系统超驰控件可以是用于停用或解除系统的任何其它手段。
[0834]
与本公开一致,至少一个处理设备可以被配置为跟踪何时通过该系统超驰控件的操作而禁用了用于选择性地取代人类驾驶员控制的自主系统。例如,该处理设备可以存储与驾驶员激活该系统超驰控件的时间和位置有关的数据以及与该系统被禁用的持续时间有关的信息,包括例如与该禁用有关的、显示在车辆的显示器或仪表板上的视觉信息(例如,图像或视频片段)。在一些实施例中,如果车辆发生碰撞,则处理设备可以被编程为报告在碰撞之前是否禁用了安全系统。在一些实施例中,处理设备可以被编程为,即使该系统被禁用也监视驾驶员输入。例如,在禁用时,处理设备可以被配置为执行处理5500,除了步骤5512之外。在该示例中,处理设备可以收集并存储与人类驾驶员是否引起主车辆在相对于一个对象的接近缓冲区内的不安全条件有关的数据以及与车辆导航有关的其他信息。该信息可用于确定在发生碰撞时的归责。例如,如果处理装设备确定,当主车辆与目标车辆之间发生碰撞时,adas安全系统被禁用,则主车辆的驾驶员或是目标车辆的驾驶员可能需要被归责。类似地,如果安全系统被禁用并且处理设备确定驾驶员提供了如果未禁用安全系统则将被取代的输入,则主车辆的驾驶员可能需要被归责。
[0835]
上面讨论的示例和实施例仅是示例性的,并且不限制用于选择性地取代人类驾驶员控制的自主系统的范围。受益于本公开的本领域普通技术人员可以理解,如何以与本公开一致的任何方式来修改该自主系统。
[0836]
路径预测以补偿控制延迟
[0837]
本文公开的自主导航系统可以确定主车辆的一个或多个导航动作,并可以实施该导航动作。如上所述,该导航动作可以基于一个或多个导航策略、导航目标等。导航系统可以包括一个或多个传感器,该传感器提供用于确定主车辆的导航响应的输出。例如,该系统可以包括:多个图像捕捉设备,其被配置为捕捉主车辆环境的图像;以及至少一个处理器,其被配置为分析该图像并确定导航响应。然而,在图像(或来自传感器的其他输出)被捕捉的时间与实施了导航响应以引起主车辆的操纵的时间之间,可能存在一段延迟时段。在某些情况下,在实施了导航响应与发生所期望的效果的时间之间(例如,转动方向盘与车轮转动作为响应之间)可能还存在附加的延迟。尽管延迟时段可能很短,但是在大多数情况下,车辆会在该延迟时段内继续行驶。结果,特定导航决策所基于的传感器输出可能已过时,这是因为它们可能是基于主车辆的过去运动条件,而不是基于在接近或等于车辆致动器响应于规划导航动作的实施而引起车辆状态改变的时间处的实际运动条件。结果,主车辆可能表现出“正弦波”驾驶,其中由于基于并非代表在致动器响应的时间处的实际条件的传感器信息而实施了导航决策,车辆可能进行振荡校正(例如,制动器、加速器、制动器、加速器等)。因此,公开了一种用于在进行了车辆传感器测量之后并且在致动时间之前或同时预测车辆的运动的系统。所公开的系统可以避免如果在传感器测量、驾驶决策和导航动作实施时间等期间未进行校正来应对改变的车辆运动则可能导致的非平滑、振动的校正。
[0838]
控制车辆速度的问题可以如下形式化。速度命令信号v
cmd
(t)可以是主车辆的目标速度。导航系统可以调节油门和制动控制,以使车辆的实际速度(表示为v(t))尽可能接近v
cmd
(t)。令p(t)∈[-1,1]为踏板的位置,其中-1对应于全制动,1对应于全油门,以及0意指无制动和无油门。移动踏板可能会改变车辆的速度,并且控制器的目标可能是移动踏板以使误差信号e(t)=v
cmd
(t)-v(t)的绝对值小。在标准符号中,v
cmd
(t)是期望的设定值,v(t)是过程变量,而p(t)是控制变量。
[0839]
控制器可以以离散时间运行,其中每δ秒移动一次踏板位置。控制器可以基于以下的简单方程式:对于每个t=kδ,其中k是自然数,
[0840][0841][0842]
pe(t):=pe(t-δ)+u(t)
·
δ
[0843][0844]
其中pe是踏板位置的误差校正函数;pg(v,a)是作为当前速度和加速度命令的函数的、踏板位置的“猜测(guess)”函数,其可能是恒定的(猜测函数在下面详细说明,需注意,其不依赖于v或a的反馈,因此pg以完全“开环”的方式工作);是得出过去误差的折扣后平均值的信号(并初始化为)。注意:
[0845][0846]
为了简单起见,以上表示不包括与饱和有关的方面(对该误差、踏板位置、踏板的
改变进行裁剪(clip))。受益于本公开的本领域普通技术人员可以理解,上述公式中可以包括饱和。
[0847]
接下来可以考虑猜测函数pg(v,a)。例如,可以驾驶车辆同时将速度和踏板位置记录为时间的函数。可以将速度的导数作为实际加速度(即使其可能有噪声),并尝试拟合出一函数,该函数给出加速度作为p(t)和v(t)的函数。取反此函数则提供了猜测函数pg(v,a)。
[0848]
猜测函数可以提供优势,因为其不具有延迟。如果关于踏板的正确位置的大多数信息存在于期望的加速度和当前速度中,则猜测函数可以提供对正确的踏板位置的估计。控制器的作用是通过使用pe来消除由于附加变量(例如,轮胎的压力、发动机的热量、尾风等)而导致的误差。
[0849]
该大多数信息取决于v和a,这是因为作用在车辆上的主要力是:摩擦力,其线性地取决于v;滞后(空气阻力),其二次方地取决于v;重力,其以9.8sin(θ)的形式随着高度而改变;制动摩擦力,其取决于制动踏板的位置;以及引擎力,其取决于油门踏板的位置。
[0850]
该猜测函数可能具有若干优势。首先,初始猜测(在大多数情况下)将非常接近踏板的最佳位置,因此对于非常接近期望加速度的加速度将导致可以忽略不计的延迟。第二,学习初始猜测函数的问题是一个离线问题(从人类/自主驾驶员收集示例并将其拟合成函数)。这可以很容易地适用于另一车辆,甚至可以即时与现有的汽车相适应(要拟合的参数的数量(在选择使用低次多项式进行拟合的情况下)远小于能够收集的示例的数量,因此不必担忧过度拟合)。第三,从经验上来说,折扣后的积分器可以提供积分器的“无稳态误差”属性,同时由于该折扣会很快地忘记过去的误差,因此延迟要小得多。此外,在一些实施例中,即使是现有的小延迟也可能仅存在于控制器的闭合稳态误差的部分上。
[0851]
在一些实施例中,该猜测函数可以不接收反馈,而是取决于评价(comment)。在一些实施例中,这可以使该pe项成为使用猜测函数的导航系统中的唯一控制器。分开地分析pe:
[0852][0853]
在一些实施例中,根据本文的等式操作的控制器可以取决于具有随时间衰减的系数的积分器。应当注意的是,该系数中的非衰减项可能相对较小,如km》》1。如所讨论的,这种类型的积分器可能具有“无稳态误差”属性,同时由于折扣效果而经受来自过去误差的更小延迟。这也可以被解释为常规的pi控制器中的p项和i项之间的某种关系:例如,完全无折扣就可以得到经典的i项,而严重的折扣(harsh discounting)就可以得到经典的p项。这样,该控制器可以提供优于现有pi控制器的显著优势。
[0854]
图56描绘了可以由导航系统执行的处理5600的概括。以下讨论说明了控制器如何应对处理延迟。处理5600可以包括感测和输出阶段5602,在该阶段中导航系统可以从一个或多个传感器收集数据并分析该数据以生成一个或多个输出。例如,在感测和输出阶段5602,图像捕捉设备122可以捕捉一个或多个图像,并将那些图像提供给至少一个处理设备,该至少一个处理设备被编程为分析该图像以检测主车辆环境中的障碍物。感测和输出阶段5602可以以与一个或多个传感器有关的输出来结束,诸如确定目标车辆在主车辆的前方。感测和输出阶段5602还可以包括由与主车辆相关联的任何传感器(例如,gps、加速度计、速度计、轮胎压力指示器、雷达、激光雷达等)进行的测量。处理5600可以包括导航命令确定阶段5604,在该阶段中导航系统可以包括至少一个处理设备,该至少一个处理设备被编程为使用来自感测和输出阶段5602的输出来确定用于主车辆的一个或多个导航命令。例如,至少一个处理设备可以使用例如一个或多个导航策略以及来自传感器输出的输出来确
定导航命令。导航命令确定阶段5604可以以将导航命令传输到一个或多个运动控制系统(例如,油门控制系统、制动控制系统、转向控制系统等)来结束。处理5600可以包括导航响应阶段5606,其用于使车辆执行与来自导航命令阶段5604的(一个或多个)导航命令相一致的导航操纵。例如,导航响应阶段5606可以包括响应于来自导航命令确定阶段5604的导航命令而激活油门致动器。
[0855]
在该示例中,t(0)可以表示进行传感器测量的时刻(例如,图像捕捉设备122捕捉第一图像);t(1)可以表示传感器输出传输到一个或多个处理设备的时刻;t(2)可以表示处理器接收到传感器输出的时刻,该处理器被编程为基于一个或多个接收到的传感器输出来确定导航命令;t(3)可以表示处理器将所确定的导航命令传输到一个或多个运动控制系统的时刻;t(4)可以表示一个或多个运动控制系统接收到所传输的导航命令的时刻;t(5)可以表示导航命令生效的时刻(例如,致动器引起油门、制动或转向响应)。与本公开一致,在任何时刻之间可能存在延迟。例如,处理5600的总延迟可以是t(5)和t(0)之间的差,其可以在例如从一毫秒到几百毫秒的范围内。例如,在处理5600的一些配置中,延迟可以是150毫秒。累积的延迟可以包括用于在阶段5602收集、封包和传输传感器输出、用于在阶段5604将驾驶策略等应用于一个或多个接收到的传感器输出以便生成规划导航动作命令、以及用于在阶段5606传输或以其他方式使所接收的导航命令生效的处理时间。
[0856]
在累积的延迟或总延迟的任何部分期间,主车辆可以以其在数据获取时间t(0)处行驶时的相同或不同的速度、加速度和/或路径持续导航。例如,如果在传感器测量时应用了制动器,则在实施导航命令时的车辆速度可能会比传感器测量时的速度更低。类似地,如果在传感器测量时应用了加速器,则在实施导航命令时的车辆速度可能会比传感器测量时的速度更高。当在致动时间t(5)处使导航命令生效时,车辆可能已经行驶了一段较大的距离和/或可能具有与导航命令所基于的速度、加速度或路径不同的速度、加速度或路径。这样,导航命令可能在致动时间t(5)处引起了导航响应,该导航响应并非基于运动控制系统使导航命令生效时车辆的实际运动条件。
[0857]
图57a至57c示出了对传感器测量和致动之间的时间期间的车辆路径的预测可能有用的条件。图57a至图57c分别描绘了在数据获取时间t(0)处在道路5700上的主车辆5702和目标车辆5706。数据获取时间t(0)可以是主车辆5702上的一个或多个传感器捕捉与目标车辆5706有关的信息的时刻。图57a和57c还描绘了在延迟时间t(5)处的主车辆5702’和目标车辆5706’。延迟时间t(5)可以是主车辆执行导航操纵或以其他方式实施导航命令的时刻,如关于图56所讨论的。
[0858]
图57a描绘了在初始时间t(0)处的主车辆5702和在延迟时间t(5)处的同一主车辆5702’。如图所示,在初始时间t(0)处的主车辆5702与在延迟时间t(5)处的主车辆5702’之间存在微小的位置差。该位置差可以归因于主车辆5702在响应时段δt(未示出)期间行驶的距离,该响应时段δt是延迟时间t(5)与初始时间t(0)之间的差。类似地,目标车辆5706在响应时段δt期间可能已经行驶了一段距离。在该示例中,基于在初始时间t(0)处的主车辆5702和目标车辆5706的位置确定的导航命令可能不会在延迟时间t(5)处引起理想的导航响应,这是因为在延迟时间t(5)处的主车辆5702’和目标车辆5706’的位置不同于在初始时间t(0)处的位置。
[0859]
图57b描绘了可以对应于主车辆5702的期望轨迹的示例性路径5704。例如,主车辆
5702的导航系统中的至少一个处理器可以确定主车辆5702应经过目标车辆5706并且可以生成与路径5704一致的导航命令。在此示例中,基于初始时间t(0)处的条件生成路径5704。例如,路径5704可以基于目标车辆5706在初始时间t(0)处的速度、加速度、最大制动能力和位置以及与在初始时间t(0)处的主车辆5702相关联的速度、加速度、位置和一个或多个导航策略。
[0860]
图57c描绘了主车辆5702、5702’可以行驶的不同路径5704、5704’和5710。路径5704是如图57b所示的在初始时间t(0)的条件下确定的期望路径。在该示例中,在延迟时间t(5)处,主车辆5702’处于不能遵循路径5704的位置,这是因为路径5704的起点在延迟时间t(5)处的车辆5702’前方的后面。这样,在时间t(5)处的主车辆5702’不能遵循在时间t(0)处生成的路径5704。路径5704’可以是车辆5702’如果要执行与路径5704一致的导航操纵则将行驶的轨迹。换句话说,路径5704’是如果主车辆5702’要在延迟时间t(5)处执行针对初始时间t(0)处的主车辆5702生成的导航命令则将导致的轨迹。在该示例中,相比于路径5704与在初始时间t(0)处的目标车辆5706的距离,路径5704’更接近在延迟时间t(5)处的目标车辆5706’。在一些实施例中,路径5704’与目标车辆5706’之间的距离可能被认为是不安全的距离(例如,该距离可能打破了主车辆5702’的接近缓冲区)。路径5710可以是主车辆5702’的路径,其是基于主车辆5702和目标车辆5706的预测路径在初始时间t(0)处生成的。例如,在初始时间t(0),主车辆5702的导航系统可以预测目标车辆5706在延迟时间t(5)处的位置(其可以是由目标车辆5706’所描绘的位置),并且可以预测主车辆5702在延迟时间t(5)处的位置(其可以是由主车辆5702’所描绘的位置),并且可以生成与路径5710相一致的导航命令,该导航命令将在延迟时间t(5)处实施。如该示例所示,基于预测条件的路径5710可提供比路径5704’明显的安全优势。
[0861]
上面的示例仅是说明性的,并且不限制实施例的范围。例如,尽管图57a至57c描绘了主车辆经过目标车辆的预测路径,但预测路径可以与主车辆的任何导航操纵相关联,并且可以与任何障碍物有关(例如,vru、多个主车辆、道路特性等)。作为一个示例,可以生成用于主车辆进入道路转弯的预测路径。任何其他导航操纵都可以受益于如上所述的预测路径分析和/或猜测函数。
[0862]
在一些实施例中,延迟的响应可能引起主车辆的过度校正或不必要的导航响应。例如,如果主车辆前方的目标车辆以低的速度但高的加速度行驶,则在时间t(0)处捕捉的图像可以用于确定主车辆可能需要停车或急转弯以避免与目标车辆相撞。然而,在时间t(5)处,目标车辆可能由于其高的加速度而行驶了很长的距离,并且主车辆可以通过例如以次最大制动率滑行或制动来避免与目标车辆相撞。在该示例中,如果主车辆配备有被编程为基于针对时间t(5)预测的条件而不是基于时间t(0)处的当前条件来确定预测路径的系统,则主车辆可以更准确且舒适地对检测到的目标车辆做出响应。在一些实施例中,延迟的响应可能使主车辆执行不充分的导航响应,这可能导致主车辆进入不安全条件。例如,如果目标车辆以安全距离行驶但迅速减速并且主车辆正在朝向目标车辆加速,则基于在时间t(0)处的感测条件确定的距离可能会显著地长于在主车辆实施基于时间t(0)处的条件而确定的导航命令的时间t(5)处的实际距离。这样,主车辆可能不会如所编程的进行制动、急转弯或以其他方式避免不安全条件。
[0863]
与本公开一致,公开了一种用于根据自主主车辆的至少一个导航目标来导航该主
车辆的导航系统。导航系统可以是与本公开一致的任何导航,包括但不限于所公开的零视觉安全系统。该系统可以在主车辆内或与主车辆通信。该系统可以包括一个或多个传感器,其被配置为收集与主车辆环境有关的数据。例如,导航系统可以包括一个或多个图像捕捉设备、激光雷达系统、雷达系统、加速度计等。该系统可以包括至少一个处理器,其被编程为执行与本公开一致的一个或多个方法、处理、操作或功能。至少一个处理器可以是例如处理设备110或与本公开一致的任何其他处理设备。
[0864]
图58是描绘了用于根据自主主车辆的至少一个导航目标来导航该主车辆的示例性处理5800的流程图。与本公开一致,至少一个处理器可以被编程为执行处理5800的全部或部分。处理5800仅是示例性的,受益于本公开的本领域普通技术人员可以理解,处理5800可以包括附加步骤、可以排除一个或多个步骤,或者可以以与本公开一致的方式进行其他修改。
[0865]
处理5800可以包括用于接收指示主车辆的运动的传感器输出的步骤5802。与本公开一致,至少一个处理器可以被编程为接收指示主车辆相对于主车辆环境的运动的至少一个方面的传感器输出。可以从一个或多个传感器接收输出。一个或多个传感器可以包括本文公开的任何传感器,包括例如图像捕捉设备、感测系统、加速度计、gps单元等。例如,一个或多个传感器可以包括速度传感器、加速度计、相机、激光雷达系统或雷达系统。输出可以包括或传达与主车辆、主车辆环境、主车辆环境中的障碍物等有关的任何信息。例如,输出可以包括主车辆的当前速度和/或加速度、主车辆的航向、主车辆的位置等。作为另一示例,输出可以包括对检测到的目标车辆的识别、目标车辆的位置、目标车辆的速度以及假设的目标车辆的制动能力,例如,基于对一个或多个图像、激光雷达或雷达的分析所检测的。可以根据与本公开一致的任何方法、处理、功能或操作来确定输出。
[0866]
在一些实施例中,传感器输出可以在第一时间处生成,该第一时间晚于传感器输出所基于的测量或数据获取被获取时的数据获取时间,并且早于至少一个处理器接收传感器输出的第二时间。在一些实施例中,数据获取时间可以是一个或多个传感器进行测量或数据获取时的时刻,而第一时间可以是基于测量或数据的输出准备好被输出的时刻。例如,参考图56,该输出可以在第一时间t(1)处生成,并且其基于在数据获取时间t(0)处获取的数据。在一些实施例中,数据获取时间与第一时间之间的时间可以是若干毫秒。例如,第一时间t(1)与数据获取时间t(0)之间的时间可以大于2毫秒、大于10毫秒、处于5到50毫秒的范围内、小于100毫秒或任何其他时间段。在一些实施例中,第二时间可以是控制器接收到传感器输出的时刻。例如,第二时间可以是时间t(2)。控制器可以包括例如以上关于猜测函数所描述的控制器,或者被编程为执行猜测函数的至少一个处理器。
[0867]
处理5800可以包括用于生成对主车辆运动的至少一方面的预测的步骤5804。与本公开一致,至少一个处理器可以被编程为,对于运动预测时间,生成对主车辆运动的至少一个方面的预测。至少一个处理器可以确定或预计与运动预测时间相对应的未来时间。运动预测时间可以是主车辆可以执行导航响应的未来时间。在一些实施例中,运动预测时间可以大体上对应于致动时间。例如,运动预测时间可以是对何时将发生致动时间t(5)的预测,在该时间处一个或多个致动器可以实施导航命令。但是,运动预测时间也可以对应于t(0)之后和t(5)之前的任何时间。例如,可以针对t(1)、t(2)、t(3)、t(4)中的任何一个或在t(5)之前的其他时间来预测主车辆的运动。
[0868]
在一些实施例中,运动预测时间可以大体上对应于控制器接收传感器输出的时间(例如,时间t(2))。在其他情况下,运动预测时间可以应对处理器对传感器输出进行操作所需的时间。例如,如果处理器需要大约100毫秒来执行诸如检测目标车辆、响应于一个或多个感测到的条件来确定适当的导航动作等功能,则至少一个处理器可以假设运动预测时间是第二时间t(2)之后的100毫秒。在一些实施例中,运动预测时间可以大体上对应于第三时间,在第三时间处致动系统接收基于传感器输出确定的导航命令(例如,在时间t(4))。运动预测时间还可以对应于在第三时间之后(例如,时间t(4))预定或确定量的时间。例如,如果制动系统230在时间t(4)处接收导航命令,则运动预测时间可以是在时间t(4)之后与制动系统230的平均致动器响应时间相对应的时间。
[0869]
运动预测时间可以是数据获取时间之后的任何时间段。在一些实施例中,运动预测时间可以在数据获取时间之后并且早于或等于致动时间。例如,运动预测时间可以是数据获取时间之后的至少100毫秒。在另一示例中,运动预测时间可以是数据获取时间之后的至少200毫秒。在另一个示例中,运动预测时间可以是数据获取时间之后的50-300毫秒、数据获取时间之后的75-275毫秒、数据获取时间之后的100-250毫秒、数据获取时间之后的150-200毫秒,等等。
[0870]
在一些实施例中,对主车辆运动的至少一个方面的预测可以至少部分地基于:所接收的传感器输出,以及对主车辆运动的至少一个方面在数据获取时间和运动预测时间(即,基于较早获取的(一个或多个)传感器输出对车辆运动进行预测的时间)之间的一段时间间隔内如何改变的估计。例如,如果主车辆运动的至少一个方面是主车辆的加速度,则预测可以包括如果主车辆在运动预测时间之间的时间期间以检测到的加速度行驶则主车辆所行驶的距离。该预测可以基于所接收的传感器输出和与本公开一致的任何其他信息。例如,该预测可以基于来自图像传感器的输出(诸如对目标车辆的检测)以及先前确定的道路特性、天气条件或可能影响相对于主车辆的未来条件的其他因素。在一些实施例中,该预测可以包括对稍后时间(例如,在时间t(5))主车辆运动的至少一个方面的估计。结果,导航决策可以基于对车辆运动的估计,该估计可能更接近于与在初始时间(例如,在时间t(0))感测到的所获取的传感器输出相对应的实际运动值。
[0871]
在一些实施例中,对主车辆运动的至少一个方面的预测包括对主车辆在运动预测时间处的速度或加速度中的至少一个的预测。至少一个方面可以包括例如主车辆运动的速度、加速度、位置、横摆或其他方面。例如,如果基于在数据获取时间t(0)获取的(一个或多个)传感器输出在时间t(1)确定主车辆的加速度和/或速度,则至少一个处理器可以确定主车辆在时间t(5)或在另一个运动预测时间处的所预测的未来速度和未来加速度。例如,至少一个处理器可以假设主车辆以在时间t(0)确定的相同加速度率从时间t(0)加速到时间t(5)或另一运动预测时间,并且因此可以确定主车辆在时间t(5)处的速度大于在时间t(0)处的速度。因此,至少一个处理器可以预测在运动预测时间处的速度和/或加速度,以便确定适合于时间t(5)或其他运动预测时间处的估计速度的导航动作。
[0872]
在一些实施例中,对主车辆运动的至少一个方面的预测可以包括对主车辆在运动预测时间处的路径的预测。例如,如果在时间t(0)处主车辆在道路上行驶,则至少一个处理器可以使用来自一个或多个传感器的信息来预测主车辆将在时间t(5)处行驶的路径(例如,改变的航向等)。作为一个示例,如果传感器输出指示主车辆正在以恒定的速度在向前
的直行路径上行驶,则至少一个处理器可以预测在时间t(5)处主车辆将在相同的直行路径上,但可能沿该路径更远。作为另一示例,如果传感器输出指示主车辆正在沿与方向盘的特定旋转相关联的曲线路径行驶,则至少一个处理器可以预测主车辆可能在与该方向盘的相同旋转相关联的路径上或在与方向盘的增加的旋转相关联的路径上。在这种情况下,预测路径可以基于检测到的转向控制器中的改变率,或者可以基于检测到的横摆角速率、检测到的向心加速度、检测到车辆前方的道路弯曲等。在一些实施例中,对主车辆在运动预测时间处的路径的预测可以包括主车辆的目标航向。例如,目标航向可以包括主车辆要行驶的方向。作为一个示例,如果来自传感器的输出指示存在主车辆需要避开的障碍物,则目标航向可以是主车辆需要行驶以避开障碍物的方向。目标航向可以是与基本(cardinal)方向相对应的方向,也可以是基于预定的坐标系。例如,方向可以是北、东北、东、东南、南等,或者可以由预期的航向角(例如,相对于在传感器测量时确定的当前航向角)指示。在另一个示例中,可以基于穿过主车辆车身的水平或垂直轴的角度、横摆角速率等来表示航向。在一些实施例中,一个或多个传感器可以包括相机,并且对主车辆在运动预测时间处的路径的预测可以基于由相机捕捉的至少一个图像。例如,路径可以包括穿过图像中捕捉的环境的虚拟轨迹,并且可以包括覆盖图像或在图像上方的路径表示。作为另一示例,对路径的预测可以包括例如图像中检测到的两个障碍物之间的路线。
[0873]
在一些实施例中,对主车辆在运动预测时间处的路径的预测可以至少基于所确定的主车辆的速度和主车辆的目标轨迹,该主车辆的目标轨迹被包含在主车辆在其上行驶的路段的地图中。例如,可以根据上面讨论的语义高清制图技术(例如,rem)来生成预测路径。作为示例,主车辆在其上行驶的路段可以与多个轨迹相关联,该多个轨迹可以用于在该路段上导航自主车辆,并且预测路径可以包括与该路段相关联的目标轨迹之一上的位置。作为另一示例,如果确定主车辆正在根据预定目标轨迹行驶,则在运动预测时间处的预测路径可以包括沿着相同目标轨迹的位置、速度和/或加速度。在一些实施例中,目标轨迹可以包括代表沿着路段的至少一个车道的优选路径的预定三维样条(spline)。例如,三维样条可以包括多个地标、道路特征和其他对象,这些地标、道路特征和其他对象定义了路段上的目标轨迹。在该示例中,预测路径可以包括对于在运动预测时间哪些地标、道路特征或其他对象可能在主车辆附近的预测。例如,如果基于主车辆在第一和第二地标之间的位置确定主车辆在目标轨迹上,则预测路径可以包括在该目标轨迹上在所述地标之间的位置。如果主车辆正在根据rem地图中的目标轨迹进行导航,则在特定时间点(例如,在时间t(0))沿着目标轨迹的定位可用于预测稍后的路径。例如,如果在时间t(0)已知主车辆的速度并且已知主车辆相对于rem目标轨迹的位置,则在稍后的时间(例如,在时间t(5)),其可以是基于已知的处理时间延迟确定的,然后可以估计主车辆相对于rem目标轨迹的位置。并且,如果已知rem目标轨迹上的位置,则可以从地图上确定该位置处的航向(因为航向可以对应于主车辆将在时间t(0)行驶以便继续遵循rem目标轨迹的方向)。在一些实施例中,对主车辆运动的至少一个方面(例如,速度)的预测可以基于所确定的制动踏板位置、所确定的油门位置、所确定的与主车辆运动相反的空气阻力、摩擦力或主车辆行驶的路段的坡度中的至少一个。例如,该预测可以基于在猜测函数和以上公开的其他公式中定义的踏板位置。可以例如通过观察响应于制动踏板和/或油门踏板位置而得到的车辆速度来凭经验确定猜测函数。例如,车辆可以根据与特定制动踏板位置相对应的特定减速曲线来减速。类似地,车辆
可以根据与特定油门踏板位置相对应的特定加速曲线来加速。
[0874]
作为另一示例,如果传感器的输出包括主车辆的速度和/或加速度,则至少一个处理器可以使用初始速度和/或加速度以及诸如摩擦力或空气阻力之类的阻力(或基于道路坡度的重力)来预测未来速度和/或加速度。在一些实施例中,可以通过确定主车辆上的总力并基于该总力修改主车辆的当前速度和/或加速度,来确定主车辆运动的至少一个方面。在此示例中,总力可以包括助力(例如,下坡行驶时的油门、加速度、重力等)和阻力(例如,上坡行驶时的风阻、摩擦力、重力等)之和,并且主车辆的当前速度可被用于使用总力来预测未来速度。
[0875]
在一些实施例中,对主车辆运动的至少一个方面的预测可以基于与主车辆相关联的预定函数。该预定函数使得能够基于确定的主车辆的当前速度以及确定的主车辆的制动踏板位置或确定的油门位置,来预测主车辆的未来速度和加速度。例如,对主车辆运动的至少一个方面的预测可以包括使用猜测函数来预测主车辆的未来速度、加速度和/或位置。例如,如上所述,制动器和油门踏板的位置可以通过p(t)∈[-1,1]来定义,其中-1对应于全制动,1对应于全油门,以及0对应于无制动和无油门,并且至少一个处理器可以使用猜测函数来基于踏板位置预测主车辆运动的一个方面。
[0876]
在一些实施例中,对在运动预测时间处的主车辆运动的至少一方面的预测可以应对与一个或多个传感器相关联的数据获取率和与至少一个传感器生成导航命令的速率相关联的控制率之间的不匹配。例如,相比于至少一个处理器可以处理数据以基于该数据生成导航命令的速率,一个或多个传感器可以以更慢的速率来获取该数据。作为特定示例,一个或多个相机可以以10hz的速率获取图像,但是至少一个处理器可以基于该图像以50hz的速率生成导航命令。结果,导航决策可以基于的新图像可能仅对每五个处理事件可用。在这种情况下,可以针对可能在图像捕捉事件(其以10hz的速率发生)之间发生的那些处理事件(发生频率高达50hz),来预测车辆运动。
[0877]
处理5800可以包括用于确定主车辆的规划导航动作的步骤5806。该规划导航动作可以基于例如对主车辆运动的预测和/或主车辆的导航目标。与本公开一致,至少一个处理器可以被编程为,至少部分地基于主车辆的至少一个导航目标(例如,沿着从点a到点b的预期路线来导航)并基于生成的对主车辆运动的至少一个方面的预测,来确定主车辆的规划导航动作。规划导航动作可以是本文描述的任何导航动作,包括加速、减速、转弯、转向、多个导航操纵等。例如,规划导航动作包括主车辆的速度改变或航向改变中的至少一个。作为另一示例,规划导航动作可以包括主车辆要遵循的期望轨迹或路径。例如,可以根据本文描述的任何实施例来确定导航动作。然而,在某些情况下,可以基于所预测的在晚于传感器测量时间的时间处主车辆运动的方面,来确定当前公开的实施例中的导航动作。例如,代替使用原始感测条件来确定主车辆的目标轨迹,处理设备可以基于那些感测条件以及导致的被预测会在获取感测条件后发生的车辆运动改变,来确定目标轨迹。与其他实施例相比,使用预测的车辆运动可能具有若干优势。例如,参考图57c,如果基于来自时间t(0)的感测条件来确定目标轨迹,则主车辆5702’将沿路径5704’行驶,其进入不安全的、目标车辆5706’的距离内(例如,可能在接近缓冲区内和/或小于rss或crss安全距离),然而,如果基于预测的条件来确定目标轨迹,则主车辆5702’将沿路径5710行驶,其维持了相对于目标车辆5706’的安全条件。另外,通过对晚于传感器测量时间并且接近或等于致动时间的运动预测时间
处的车辆速度进行预测,主车辆可以行驶得更平稳,并具有较少的可能使乘客不舒服的正弦波/震荡校正或不存在该校正。
[0878]
在一些实施例中,主车辆的导航目标可以包括从第一位置到第二位置的转移。例如,第一位置可以是起点,而第二位置可以是目的地。在该示例中,预测的主车辆运动的方面可用于确定与导航目标一致的一个或多个导航动作(例如,可能使主车辆沿着所选路线或目标轨迹变得更接近目的地的一个或多个动作)。作为另一示例,第一位置可以是目标轨迹上的第一地点,并且第二位置可以是目标轨迹上的第二地点。在该示例中,导航动作可以是将会使主车辆沿着目标轨迹朝向第二地点行驶的任何导航操纵,如以上关于rem地图和相关联的导航所讨论的。在一些实施例中,主车辆的导航目标可以包括从主车辆占据的当前车道到相邻车道的车道改变。例如,导航目标可以是路径5704,如关于图57b所描述的。在该示例中,处理设备可以使用预测的主车辆运动的方面来确定与目标相对应的导航动作,诸如通过开发主车辆要遵循的路径5710。
[0879]
在一些实施例中,主车辆的导航目标可以包括维持主车辆与检测到的目标车辆之间的接近缓冲区。如上所述,可以基于检测到的主车辆的当前速度、主车辆的最大制动率能力、确定的目标车辆的当前速度、以及假设的目标车辆的最大制动率能力,来确定接近缓冲区。还可以基于主车辆的最大加速能力来确定相对于目标车辆的接近缓冲区,使得该接近缓冲区至少包括主车辆加速距离、主车辆停止距离和目标车辆停止距离的总和,该主车辆加速距离被确定为主车辆在与主车辆相关联的反应时间内以主车辆的最大加速能力加速时将行驶的距离,该主车辆停止距离被确定为以主车辆的最大制动率能力将主车辆的当前速度降低到零所需的距离,该目标车辆停止距离被确定为以所假设的目标车辆的最大制动率能力将目标车辆的当前速度降低到零所需的距离。例如,如上所述,主车辆可以具有被配置为维持主车辆和一个或多个障碍物之间的接近缓冲区的安全系统。在该实施例中,接近缓冲区可以基于rss安全距离。在一些实施例中,接近缓冲区可以基于crss安全距离,如关于图52a至52d所讨论的。在该示例中,规划导航动作可以是将会维持接近缓冲区的任何导航动作。
[0880]
处理5800可以包括用于生成用于实施规划导航动作的导航命令的步骤5808。与本公开一致,至少一个处理器可以被编程为生成用于实施规划导航动作的至少一部分的导航命令。导航命令可以是用于引起与本公开一致的一个或多个操纵的任何指令。例如,该命令可以包括用于使制动系统以特定水平施加制动或用于使油门系统以特定水平加速的指令。在一些实施例中,导航命令可以包括用于控制主车辆的速度的踏板命令或用于控制主车辆的航向的横摆角速率命令中的至少一个。例如,导航命令可以包括用于使油门踏板被压下与针对规划导航动作所确定的加速度相对应的量的指令。导航命令可以包括与本公开一致的任何其他命令或指令。例如,命令可以包括用于使主车辆改变航向、加速、减速、改变速度、滑行、停止等的语义或非语义命令。
[0881]
上面描述的导航动作、导航目标和导航命令的示例仅用于说明。受益于本公开的本领域普通技术人员可以理解,可以对本文所述的任何实施例进行修改,以使用预测的主车辆运动的方面来确定规划导航动作。例如,可以使用预测的主车辆运动的方面来修改所讨论的与rem模型、rss模型和crss模型有关的实施例以及所讨论的与图13至15和图18有关的实施例。
[0882]
处理5800可以包括用于将导航命令提供给主车辆的至少一个致动系统的步骤5810。与本公开一致,至少一个处理器可以被编程为将导航命令提供给主车辆的至少一个致动系统,使得至少一个致动系统在第三时间处接收导航命令,该第三时间晚于第二时间并且早于或大体上等于至少一个致动系统的组件对所接收的命令进行响应的致动时间。例如,参考图56,可以在时间t(4)将导航命令提供给致动系统,时间t(4)在一个或多个致动器实施命令的时间t(5)之前或大体上与该时间t(5)同时。致动系统可以是被配置为引起对导航命令的一个或多个响应的任何系统。例如,至少一个致动系统可包括油门致动系统、制动致动系统或转向致动系统中的一个或多个。作为特定示例,油门致动系统可以包括油门系统220,制动致动系统可以包括制动系统230,并且转向致动系统可以包括转向系统240。
[0883]
如上所述,基于针对致动时间t(5)所预测的运动方面,致动系统可在时间t(5)引起比直接基于在时间t(0)感测到的运动方面在致动时间t(5)处的响应更准确、精确和/或安全的导航响应。这是因为预测的运动方面可能比在时间t(0)处感测到的运动方面更类似于致动时间t(5)处的实际条件。在一些实施例中,运动预测时间可以在数据获取时间之后并且早于或等于致动时间。运动预测时间与实际致动时间越接近,导航动作就越准确、精确和安全。例如,在致动时间t(5)处,一个或多个致动系统可引起与基于预测的主车辆运动的方面的规划导航动作相对应的导航动作,如果运动预测时间接近致动时间,这可对应于执行与规划导航动作紧密匹配的导航动作。例如,运动预测时间可以大体上类似于致动时间t(5),并且与运动预测时间相关联的预测运动方面可以大体上类似于致动时间t(5)处的实际运动方面。
[0884]
本文公开的实施例是示例性的,并且用于预测主车辆运动的一个或多个方面以及用于基于该预测引起导航响应的任何其他手段可以与本公开一致。
[0885]
已经出于说明的目的呈现了前面的描述。其并非详尽无遗,并且不限于所公开的精确形式或实施例。考虑到所公开实施例的说明书和实践,修改和调整对于本领域技术人员而言将是显而易见的。另外,尽管所公开的实施例的各方面被描述为存储在存储器中,但是本领域技术人员将理解,这些方面也可以存储在其他类型的计算机可读介质上,诸如辅助存储设备,例如,硬盘或cd rom,或其他形式的ram或rom、usb介质、dvd、蓝光、4k超高清蓝光或其他光驱介质。
[0886]
基于书面描述和公开的方法的计算机程序在有经验的开发者的技能范围内。可以使用本领域技术人员已知的任何技术来创建各种程序或程序模块,或者可以结合现有软件来设计各种程序或程序模块。例如,程序部分或程序模块可以在.net framework、.net compact framework(以及相关语言,如visual basic、c等)、java、c++、objective-c、html、html/ajax组合、xml或包含java小程序的html中设计或通过它们设计。
[0887]
此外,虽然本文已经描述了说明性实施例,但是具有等效的元件、修改、省略、组合(例如,跨各种实施例的方面)、调整和/或改变的任何和所有实施例的范围,如本领域技术人员基于本公开的技术将理解的。权利要求中的限制将基于权利要求中采用的语言广泛地解释,并且不限于本说明书中或在申请的审查期间描述的示例。这些示例应被解释为非排他性的。此外,可以以任何方式修改所公开方法的步骤,包括通过重新排序步骤和/或插入或删除步骤。因此,其意图是说明书和示例仅被认为是说明性的,真正的范围和精神由所附权利要求及其等同物的全部范围表示。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1