CN116917827A - 驾驶仿真中的代理转换 - Google Patents
驾驶仿真中的代理转换 Download PDFInfo
- Publication number
- CN116917827A CN116917827A CN202280016650.8A CN202280016650A CN116917827A CN 116917827 A CN116917827 A CN 116917827A CN 202280016650 A CN202280016650 A CN 202280016650A CN 116917827 A CN116917827 A CN 116917827A
- Authority
- CN
- China
- Prior art keywords
- simulation
- driving
- vehicle
- agent
- log data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 650
- 238000006243 chemical reaction Methods 0.000 title abstract description 8
- 230000003993 interaction Effects 0.000 claims abstract description 109
- 238000000034 method Methods 0.000 claims abstract description 84
- 230000000694 effects Effects 0.000 abstract description 5
- 230000003213 activating effect Effects 0.000 abstract 1
- 239000003795 chemical substances by application Substances 0.000 description 500
- 230000006399 behavior Effects 0.000 description 140
- 230000000875 corresponding effect Effects 0.000 description 56
- 230000003542 behavioural effect Effects 0.000 description 35
- 230000001276 controlling effect Effects 0.000 description 35
- 230000008569 process Effects 0.000 description 32
- 230000015654 memory Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 15
- 230000001133 acceleration Effects 0.000 description 14
- 238000012360 testing method Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 230000004044 response Effects 0.000 description 12
- 239000000203 mixture Substances 0.000 description 7
- 239000000872 buffer Substances 0.000 description 6
- 230000035484 reaction time Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000005259 measurement Methods 0.000 description 5
- 230000008447 perception Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 241001465754 Metazoa Species 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000004931 aggregating effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000007935 neutral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000002310 reflectometry Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241000237519 Bivalvia Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 235000020639 clam Nutrition 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000036461 convulsion Effects 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/15—Vehicle, aircraft or watercraft design
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0027—Planning or execution of driving tasks using trajectory prediction for other traffic participants
- B60W60/00276—Planning or execution of driving tasks using trajectory prediction for other traffic participants for two or more other traffic participants
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C5/00—Registering or indicating the working of vehicles
- G07C5/008—Registering or indicating the working of vehicles communicating information to a remotely located station
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C5/00—Registering or indicating the working of vehicles
- G07C5/08—Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
- G07C5/0841—Registering performance data
- G07C5/085—Registering performance data using electronic data carriers
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Automation & Control Theory (AREA)
- Mechanical Engineering (AREA)
- Transportation (AREA)
- Human Computer Interaction (AREA)
- Pure & Applied Mathematics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Traffic Control Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本文讨论了用于执行基于日志的驾驶仿真以评估车辆控制系统的性能和功能的技术。仿真系统可以执行基于日志的驾驶仿真,该仿真系统包括回放代理,其行为基于由在环境中操作的车辆捕获的日志数据。仿真系统可以确定与回放代理相关联的交互,并且可以在驾驶仿真期间将回放代理转换为智能代理。在驾驶仿真期间,已经被转换为智能代理的回放代理可以与附加的回放代理交互,从而导致附加的转换的级联效应。将回放代理转换为智能代理可以包括启动规划组件以控制该智能代理,这可以基于对基于回放代理的目的地和/或驾驶属性的确定。
Description
相关申请的交叉引用
本PCT国际申请要求享有于2021年2月24日提交的题为“AGENT CONVERSIONS INDRIVING SIMULATIONS”的美国申请第17/184,128号的优先权的权益,以及于2021年2月24日提交的题为“SIMULATED AGENTS BASED ON DRIVING LOG DATA”的美国申请第17/184,169号的优先权的权益,上述美国申请的全部内容通过引用以其整体并入本文用于所有目的。
背景技术
仿真可以被用于测试和验证系统的特征和功能,包括例如由于安全考虑、时间限制、可重复性等而可能在现实世界环境中以其他方式禁止测试的那些特征和功能。例如,自主车辆可以使用驾驶仿真来测试和改进车辆控制系统在乘客安全、车辆决策、传感器数据分析、路线优化等方面的性能。然而,要创建和执行能准确反映现实世界场景的驾驶仿真可能是困难的并且昂贵的,因为用于创建这种仿真的数据可能是有噪的、不一致的或者不完整的。另外地,驾驶仿真的执行可能涉及执行多个不同的交互系统和组件,包括正在被评估的车辆控制系统,以及仿真环境中的代理和其他对象,这可能是资源和计算昂贵的。
附图说明
参考附图来描述具体实施方式。在附图中,附图标记的最左边的数字标识附图标记首次出现的附图。在不同的附图中使用相同的附图标记指示相似或者相同的组件或者特征。
图1示出了根据本公开的一个或多个实现方式的执行基于日志的驾驶仿真以及在仿真期间将回放代理转换为智能代理的示例过程。
图2A-图2C示出了根据本公开的一个或多个实现方式的用于确定在基于日志的驾驶仿真期间在代理之间的交互的示例技术。
图3A-图3D描绘了根据本公开的一个或多个实现方式的在基于日志的驾驶仿真期间的四个不同时间的场景。
图4A-图4D描绘了根据本公开的一个或多个实现方式的在另一基于日志的驾驶仿真期间的四个不同时间的场景。
图5示出了根据本公开的一个或多个实现方式的包括车辆和仿真系统的计算环境的框图。
图6是示出根据本公开的一个或多个实现方式的用于在驾驶仿真期间将回放代理转换为智能代理的示例过程的流程图。
图7是示出根据本公开的一个或多个实现方式的在驾驶仿真期间将回放代理级联转换为智能代理的示例过程的流程图。
具体实施方式
本文讨论了用于执行基于日志的驾驶仿真以评估车辆控制系统的功能和性能的技术。本文描述的一些技术包括使用被配置为执行车辆控制系统并且评估车辆控制系统对动态仿真环境的响应的仿真系统来执行基于日志的驾驶仿真。在基于日志的驾驶仿真中,仿真环境可以包括回放代理,其基于与在现实(例如,非仿真的或者物理的)环境中观察到的对应的代理相关联的日志数据进行操作。例如,穿越环境的现实(例如,非仿真的)车辆可以存储由车辆的传感器和/或感知系统收集的日志数据,该日志数据包括表示代理和车辆观察到的其他对象(例如,其他车辆、自行车、行人等)的日志数据。仿真系统可以基于日志数据生成并且执行基于日志的仿真,其中在仿真中生成并且提供回放代理以对应于在现实环境中观察到的代理。每个回放代理可以基于日志数据中表示的对应的代理,并且可以以与在现实环境中观察到的对应的代理类似或者相同的方式在仿真中操作。
在基于日志的驾驶仿真的执行期间,代替日志数据或者除了日志数据之外,仿真系统可以将回放代理中的一个或多个转换为可以由规划组件控制的“智能代理”。与回放代理不同,仿真中的智能代理可以对仿真环境做出反应,并且做出与日志数据中对应的回放代理的行为偏离的操作决策或者行为。例如,智能代理可以检测到与仿真中的另一代理的潜在交互(例如,碰撞),并且可以改变其速度或者轨迹以避免交互。回放代理可能限于记录在日志中的代理的动作,而没有独立的决策能力。
在一些示例中,仿真系统可以监视基于日志的仿真的执行,以确定在仿真期间在回放代理和其他代理之间已经发生或者将要发生的交互。响应于检测到涉及回放代理的交互,仿真系统可以将回放代理转换为智能代理,允许智能代理在仿真内根据需要控制其路径以防止交互。在回放代理已经被转换为智能代理后,它可能会偏离日志数据中对应的回放代理的行为。随着驾驶仿真继续,这样的偏离可能导致智能代理与附加的回放代理交互,由此导致仿真系统基于交互将附加的回放代理转换为智能代理。结果可能是在执行驾驶仿真期间将回放代理转换为智能代理的级联效应。
另外地,在一些实现方式中,仿真系统可以分析日志数据以确定与日志数据内的回放代理相关联的行为、属性和/或目的地。当回放代理被转换为智能代理时,仿真系统可以执行规划组件以控制智能代理的行为和/或操作。在某些情况下,针对智能代理的规划组件的执行可以包括基于所确定的目的地和/或相关联的回放代理的驾驶行为/属性来启动和/或控制规划组件。例如,仿真系统可以分析回放代理所采取的路线以及回放代理在该路线期间执行的驾驶行为和操作,以确定针对该回放代理的一个或多个驾驶风格和/或驾驶员个性类型(例如,攻击性度量、驾驶技巧度量、反应时间度量、守法度量等)。仿真系统可以配置规划组件以基于回放代理的目的地和/或基于对应于由回放代理表现出的驾驶风格和/或驾驶员个性的参数来控制智能代理。
本文所描述的技术可以以多种方式实现。下面参考附图提供了示例实现方式。尽管在自主车辆和基于日志的驾驶仿真的上下文中讨论了某些示例,但在其他示例中,本文描述的方法、设备、系统、计算机可读介质和/或其他实现方式可以应用于各种其他环境,例如,在半自主或者非自主车辆中的使用,和/或在航空或者航海的上下文中的使用。
图1描绘了执行基于日志的驾驶仿真的示例过程100,包括在仿真期间在一个或多个时间处将回放代理转换为智能代理。在各种实现方式中,过程100中的操作中的一些或者全部可以由驾驶仿真系统(例如,下面更详细地描述的仿真系统)来执行。
在操作102处,仿真系统可以接收与穿越环境的车辆相关联的日志数据。在各种示例中,日志数据可以包括由穿越现实或者仿真环境的现实或者仿真车辆存储的数据。如框104中示出的,车辆106可以穿越包括多个代理108和/或其他附加的对象的环境。日志数据可以包括由车辆106观察到的和/或感知到的数据,例如,识别环境的特性、在车辆106附近检测到的代理108、环境、代理和/或其他对象的属性或者特性(例如,分类、大小、形状、位置、偏航、速度、轨迹等)的数据。在某些实例中,日志数据可以包括代理108和其他对象的操作和/或行为,以及车辆106观察到的事件,例如,事故或者接近事故、交通违规、行人、骑自行车的人或者动物过马路或者乱穿马路、天气异常、施工区域、绕行路线、学校区域等。这些特定的事件或者行为可以从期望用作驾驶仿真的事件/行为列表中指定。
在操作102中接收的日志数据可以包括原始传感器数据和/或基于与车辆106相关联的传感器数据的数据,例如,边界框、速度、分类、对象维度、预测、对象轨迹信息、控制信号等。可以包括在日志数据中的由车辆106生成的数据的示例可以在以下文件中被发现,例如,于2017年7月7日提交的题为“Interactions Between Vehicle and TeleoperationsSystem”的美国专利申请第15/644,267号、于2017年9月1日提交的题为“OccupantProtection System Including Expandable Curtain and/or Expandable Bladder”的美国专利申请第15/693,700号、以及于2018年11月21日提交的题为“Executable ComponentInterface and Controller”的美国专利申请第16/198,653号,它们中的每一个都通过引用以其整体并入本文用于所有目的。
在一些实现方式中,仿真系统可以基于在操作102中接收到的日志数据来生成一个或多个基于日志的驾驶仿真。为了生成基于日志的驾驶仿真,仿真生成器可以使用在操作102中接收到的日志数据来生成仿真指令,该仿真指令当由仿真器执行时,生成仿真环境。可以用于生成基于日志的驾驶仿真的附加的日志数据可以包括感知数据、预测数据和/或指示诊断信息、轨迹信息和由车辆106生成的其他信息的状态数据。在某些情况下,仿真生成器可以通过在日志数据内识别环境中的静态和/或动态对象(例如,代理108)以及对象的各种属性和行为来生成仿真场景。在某些实例中,当生成基于日志的仿真时,仿真系统可以省略日志中表示的不满足或者未超过与车辆106的交互阈值水平的对象。通过排除不满足或者未超过与车辆106的交互阈值水平的对象,仿真系统可以减少生成和执行基于日志的驾驶仿真所要求的计算资源量。
在操作110处,仿真系统执行基于日志的驾驶仿真,包括基于在日志数据内检测到的代理108的回放代理。在各种示例中,基于日志的驾驶仿真可以被用于测试和验证仿真车辆对与现实世界中可能遇到的那些场景类似或者相同的各种仿真场景的响应。例如,基于日志的驾驶仿真可以使用各种仿真环境、对象和/或代理来对正常或者异常驾驶状况和/或车辆状况进行建模。基于日志的驾驶仿真可以对不同的交通状况、环境状况、道路障碍物、事故等进行建模,以测试和验证乘客安全、车辆路线、决策、效率等。某些驾驶仿真可以测试仿真车辆对车辆上有缺陷和/或有故障的传感器的响应。某些驾驶仿真可以测试仿真车辆的单独组件或者系统(例如,传感器数据感知组件、决策或者规划组件等),而其他驾驶仿真可以测试整个仿真车辆,包括车辆的各种组件或者系统之间的交互。
在基于日志的驾驶仿真的执行期间,仿真系统可以执行一组仿真指令来仿真与由日志数据表示的环境类似或者相同的环境。如框112中示出的,在基于日志的仿真期间,仿真车辆114可以被一个或多个车辆控制系统(或者车辆控制器)控制,该车辆控制系统(或者车辆控制器)可以响应于仿真环境、对象以及代理来控制仿真车辆114的行为。在某些情况下,仿真系统的仿真器组件可以执行仿真场景,该仿真场景向执行车辆控制器的过程提供表示仿真环境和对象的数据,车辆控制器可以通过向执行仿真场景的过程提供回表示在仿真期间仿真车辆114的操作和行为的数据来做出响应。
在基于日志的驾驶仿真开始时,仿真代理中的每一个最初可以是回放代理116。如上所述,回放代理可以被配置为基于先前在非仿真环境内收集的日志数据来操作,并且因此仿真中的回放代理116可以以与日志数据内的对应代理的行为类似或者相同的方式来行动。因为先前收集的日志数据是固定并且不变的,所以仿真环境和仿真内的对象或者代理二者可能不能被配置为对仿真车辆114或者仿真中的任何其他对象的行为做出反应或者响应。因此,框112中描绘的每个代理可以是在基于日志的仿真开始时的回放代理116,其可以以固定并且预先确定的方式操作。
相反,基于日志的驾驶仿真中的仿真车辆114可以与收集与非仿真环境相关联的日志数据的代理108不同地操作。在一些示例中,代理108和仿真车辆114可以是不同的车辆类型(和/或不同的代理类型)。即使当代理108和仿真车辆114两者都被实现为自主车辆时,仿真车辆114也可以包括与代理108的车辆控制器不同的车辆控制器。例如,相对于代理108使用的软件和/或硬件系统,仿真车辆114可以包括各种不同的和/或更新后的软件系统(例如,感知组件、感知组件、规划组件等)或者可以包括不同的车辆能力的集合、不同的规划/路线算法、或者不同的传感器系统和/或传感器配置。因此,仿真车辆114可以在基于日志的仿真内做出与捕获日志数据的代理108不同的响应。代理108和仿真车辆114中的车辆控制器和/或其他车辆软件或者硬件系统之间的这样的差异可能导致在基于日志的仿真中仿真车辆114的行为偏离代理108的行为。在该示例中,仿真车辆114在框112中被描绘为在仿真场景中的一个位置处,并且车辆轮廓118指示与在日志数据内在相同相对时间处的代理108的位置相对应的不同位置。
例如,仿真车辆114可以是要通过确定仿真车辆114对仿真代理(例如,代理108)的响应而在仿真中被测试的自主车辆。在仿真中,可以修改仿真车辆114的各种方面(例如,与感知、预测和/或规划器相关)以测试例如组件的新版本。日志数据可以被用于仿真,以重新创建现实世界的驾驶状况和代理交互。然而,如果仿真车辆114的操作与日志数据中记录的操作不同,则从日志数据创建的代理也可以不同地交互。维持仿真的完整性可以包括维持代理(例如,回放代理)的现实世界的行为和交互,同时仍然考虑仿真车辆114与环境的交互(例如,经由智能代理)的差异。
在操作120处,仿真系统可以确定驾驶仿真中的回放代理116中的任一个是否与任何偏离的非回放代理交互。如本文所使用的,偏离代理可以指代诸如仿真车辆114或者智能代理之类的代理,其在驾驶仿真内的状态不同于日志数据内的对应的代理的状态。例如,在该示例中,仿真车辆114可以被识别为偏离,因为仿真车辆114的位置不同于在日志数据内的代理108的对应的位置(由车辆轮廓118指示)。确定代理是否偏离可以基于位置的比较(如在该示例中),和/或可以基于比较仿真代理和日志数据内对应的代理之间的其他车辆属性或者状态,例如,偏航、速度、轨迹等。另外地,如下所述,仿真系统可以使用偏离距离阈值、其他类型的阈值比较(例如,偏航偏离阈值)和/或多个偏离标准的组合来确定代理是否要被分类为偏离。
仿真系统可以在基于日志的仿真的执行期间周期性地和/或连续地执行操作120处的确定,并且可以在仿真期间的任何时间确定回放代理116和不同偏离代理之间的交互。为了确定代理之间的交互,仿真系统可以使用边界框和/或其他技术(例如,路径多边形、走廊(corridor)等)来表示代理在仿真期间的各种时间处的位置。在一些示例中,可以基于代理在仿真期间的任何时间点处的大小、位置、偏航和/或速度来确定在该时间点处的代理的边界框。仿真系统可以基于在仿真期间的特定时间点处两个代理的边界框之间的重叠来确定两个代理之间的交互。因此,在代理的边界框重叠的时间点处,交互可以表示两个代理之间的碰撞,或者潜在碰撞或者险些发生的碰撞。
当仿真系统确定回放代理116在仿真期间已经与偏离代理交互(或者将要与偏离代理交互)时(120:是),在操作122处,仿真系统可以将回放代理116转换为智能代理以避免交互。例如,如框124中示出的,仿真系统已经将仿真车辆114正后方的回放代理转换成智能代理126。该转换可以基于相关联的回放代理116将与仿真车辆114交互(例如,碰撞)的确定来执行,其中,该仿真车辆114已经偏离其基于日志数据的预期位置(例如,车辆轮廓118)。当将交互的回放代理116转换为智能代理126时,仿真系统可以执行或者启动针对智能代理126的规划组件,其可以使用规划组件来分析仿真环境并且确定针对智能代理126通过仿真环境的路径。在各种示例中,智能代理126使用的规划组件可以与仿真车辆114使用的规划组件相同,或者可以是被配置为利用最小轨迹调整以避免交互的组件的简化版本。例如,如果智能代理126比智能代理正前方的代理移动得更快,则在预先确定的距离阈值处,规划组件可以降低智能代理126的速度以匹配正前方的代理的速度。在其他情况下,规划组件可以使智能代理126在仿真中制动、转向、暂停、加速度或者执行其他导航操纵以避免与其他代理交互。
如上所述,在基于日志的驾驶仿真开始时,仿真中的代理中的一些或者全部可以是基于日志数据而行动和/或不包括规划组件的回放代理116。然而,仿真车辆114可以包括不同的车辆控制器和/或配置,其导致偏离日志数据中的对应的代理108的行为。仿真车辆114的偏离可以导致仿真系统将回放代理116中的一个或多个转换为智能代理。在回放代理116已经被转换为智能代理126之后,它可以开始使用规划组件而不是仅依赖于日志数据来导航通过仿真环境。因此,随着驾驶仿真继续,智能代理126也可能偏离日志数据中其对应的代理108。在驾驶仿真中的该时间段期间,仿真车辆114和智能代理126两者都可以是偏离代理,并且两者都可以与附加的回放代理116交互并且导致附加的回放代理116转换成智能代理。在某些示例中,结果可以是回放代理转换到智能代理的级联效应,该级联效应可以持续一段时间直到级联效应在仿真内本地运行完毕,或者可以持续直到仿真结束。
当在仿真期间的当前时间处不存在将要被转换成智能代理的回放代理时(120:否),则在操作128处,仿真系统可以确定是否已经满足针对仿真的结束条件。仿真结束条件可以包括例如仿真的成功完成、组件的超时、仿真内发生的碰撞或者错误、或者用户手动终止仿真。如果仿真结束条件尚未出现(128:否),则过程100返回到操作110以继续仿真。然而,如果仿真结束条件已经出现(128:是),则在操作130处,仿真系统可以终止仿真并且输出或者存储仿真结果。在某些示例中,仿真结果可以识别仿真期间仿真车辆114的行为和/或性能,其可以对应于正在被评估的车辆控制器的行为和/或性能。当驾驶仿真是仿真的批或者序列中的一个仿真时,过程100可以返回到操作102以使用针对仿真车辆114的相同日志数据和相同车辆控制器来执行该批或者序列中的下一个仿真。
如这些和其他示例所示,本文描述的技术提供了用于生成和执行驾驶仿真的许多改进和技术优势。这样的优势可以包括提供基于日志的仿真(其相对应于被测试的车辆控制器的改变是更鲁棒并且更持久的)以及更准确地表示现实世界驾驶场景的仿真。例如,在某些仿真系统中,当基于日志的仿真导致仿真车辆与回放代理之间的碰撞时,该仿真可以被无效和/或从仿真测试组中丢弃。因此,这样的系统中的基于日志的测试通常是短暂的,并且可能很快变得过时,因为对仿真车辆的车辆控制器的任何改变都可能导致仿真被无效。相反,本文描述的技术包括选择性地将回放代理转换为智能代理,从而提供更鲁棒和持久的仿真,其可以在更长的时间段内操作且故障更少,并且更少需要干预和手动分析,从而增加可用仿真测试的数量,并且改进仿真系统的效率和质量。
另外地,一些常规系统可以执行包括大量(或者排他地)智能代理而不是回放代理的仿真。在这样的系统中,尽管智能代理可以在仿真过程中成功地避免碰撞,但在某些情况下,它们可能提供不太现实并且价值较低的驾驶仿真。例如,回放代理可以在仿真内提供优于智能代理的优势,因为回放代理基于现实世界的日志数据,并且因此可以提供更真实的场景,其仿真有真实驾驶员的环境,这些驾驶员可能会以意想不到和不可预测的方式驾驶。另外地,当回放代理在基于日志的仿真期间被转换为智能代理时,仿真系统可能仅具有有限的传感器和感知数据来控制智能代理。此外,回放代理到智能代理的转换以及在仿真期间规划组件操作智能代理两者都可能要求附加的计算资源,这降低了仿真系统的速度和效率并且限制了可以执行的仿真的数量。因此,本文描述的在有限和有选择的基础上并且仅在仿真期间必要时将回放代理转换为智能代理的技术,可以在仿真期间在较长的时间内保持更大数量的回放代理。
图2A至图2C示出了用于检测和分析基于日志的驾驶仿真内的代理交互的技术。如上所述,在一些实现方式中,基于确定在仿真内在回放代理与偏离的非回放代理之间发生交互,仿真系统可以在驾驶仿真期间将回放代理转换为智能代理。在该示例中,图2A至图2B描绘了使用与驾驶仿真内的两个代理相关联的轨迹和边界框来检测这两个代理之间的交互的示例。图2C确定与非回放代理(例如,仿真车辆或者另一智能代理)相关联的偏离距离,其对应于驾驶仿真内的代理与日志数据内的对应的代理之间的距离。
图2A和图2B分别示出了驾驶仿真200和218,其可以是不同的仿真或者相同仿真的部分。在这些示例中,仿真系统可以被配置为确定表示沿轨迹行进的仿真车辆与沿不同轨迹行进的回放代理之间的潜在碰撞的交互。尽管在这些示例中仅讨论了两个车辆,但是在其他示例中,仿真系统可以类似地分析轨迹、路径、边界框重叠,和/或执行本文描述的其他技术以确定驾驶仿真内任何两个代理之间的交互。这样的交互可以包括回放代理和仿真车辆之间的交互,或者回放代理和智能代理之间的交互。
如该示例中示出的,为了确定驾驶仿真内的交互,仿真系统可以确定与驾驶仿真中的车辆相关联的位置、轨迹、大小和/或空间区域,并且可以使用大小和/或空间区域以及车辆轨迹以确定车辆之间交互的可能性或者概率。如图2A中示出的,仿真200表示沿着轨迹204行进的仿真车辆202与沿着轨迹208行进的回放代理206之间的交互分析。在一些示例中,仿真系统可以确定与仿真车辆202相关联的任何数量的边界框210和212,以及与回放代理206相关联的附加的边界框214和216。仿真系统可以基于相应的车辆的维度(例如,长度、宽度和高度)和形状、以及相应的车辆的轨迹和所得到的车辆定向来确定边界框210-216中的每一个。
在一些示例中,边界框210-216还可以包括在相应的车辆的投影定向区域之外的安全缓冲区。仿真系统可以基于相应的车辆的车辆分类、速度、偏航和/或其他属性来确定要添加到边界框210的任何安全缓冲区的大小和形状。例如,仿真系统可以基于回放代理206沿其感知轨迹的感知边缘(最前点和最后点、最左点和最右点)来确定边界框214和216的维度,包括围绕回放代理206的感知边缘的附加的安全缓冲区。在各种示例中,较大的安全缓冲区可以被用于较高速车辆、较脆弱的车辆/对象(例如,自行车或者行人),或者用于其中仿真系统对回放代理206的大小、形状、轨迹或者其他状态参数的感知数据不太有信心的场景。
在图2A中,可以在驾驶仿真期间的特定(例如,当前)时间处描绘仿真车辆202和回放代理206的位置,并且边界框210-216被示出为在当前时间之后的两个时间间隔处的投影。在该示例中,分别描绘了在当前时间之后的第一时间(t=1)和第二时间(t=2)处的针对仿真车辆202的边界框210和212。类似地,分别描绘了在第一时间(t=1)和第二时间(t=2)处的针对回放代理206的边界框214和216。如该示例中示出的,当在仿真中在后续时间计算边界框210-216的投影区域时,仿真系统还可以考虑预期的车辆操纵(例如,转弯)以及对车辆的定向和位置的对应的影响。
在一些示例中,仿真系统可以在每个时间间隔处对与仿真车辆202相关联的边界框和与回放代理206相关联的边界框进行比较,以确定是否存在任何重叠,这可以指示仿真车辆202和回放代理206之间的交叉。在该示例中,仿真系统可以比较边界框210和214的大小、形状和位置以确定在第一时间(t=1)处不存在重叠,并且类似地可以比较边界框212和216以确定在第二时间(t=2)处不存在重叠。因此,在示例仿真200中,仿真系统可以确定仿真车辆202和回放代理206之间不存在交叉。
相反,图2B描绘了在沿着轨迹222行进的仿真车辆220与沿着轨迹226行进的回放代理224之间的第二仿真218的交互分析。如在上面的示例中,仿真系统可以在每个时间间隔处对与仿真车辆220相关联的边界框和与回放代理224相关联的边界框进行比较,以确定是否存在任何重叠,这可以指示仿真车辆220和回放代理224之间的交叉。在该示例中,仿真系统可以针对仿真车辆220生成一组边界框228-230,并且针对回放代理224生成另一组边界框232-234。然后,仿真系统可以比较边界框228和232的大小、形状和位置以确定在第一时间(t=1)处是否存在重叠,并且类似地可以比较边界框230和234以确定在第二时间(t=2)处是否存在重叠。如该示例中示出的,仿真218中的仿真车辆220可以比仿真200中的仿真车辆202驾驶得更快。然而,回放代理224的速度和轨迹可以保持与仿真200中的回放代理206的速度和轨迹相同。因此,如图2B中示出的,边界框230和234之间存在重叠,从而指示仿真218中的仿真车辆220和回放代理224之间的交互(和潜在碰撞)。
尽管上面的示例描述了通过在离散的时间间隔处投影边界框来确定交互,但是仿真系统可以在其他示例中实现各种其他技术。例如,在某些情况下,仿真系统可以基于车辆的相应的轨迹来确定针对每个车辆仿真200和218的投影路径多边形或者自由形式走廊,并且可以在基于路径多边形(或者走廊)的重叠确定的潜在碰撞区域内执行时间空间重叠分析。例如,于2018年9月19日提交的题为“Collision Prediction and Avoidance forVehicles”的美国专利申请第16/136,038号(该美国专利申请通过引用以其整体并入本文用于所有目的)中更详细地描述了,仿真系统可以基于车辆轨迹之间的交叉点以及与车辆相关联的一个或多个偏移距离来确定车辆之间的潜在碰撞区域。仿真系统可以基于车辆的长度和/或宽度来确定偏移距离,并且还可以应用安全缓冲区或者表示车辆在该处不会发生碰撞的安全距离的任何其他距离。例如,仿真系统可以基于针对每个车辆的投影移动走廊的重叠来计算用于定义潜在碰撞区域的维度的偏移距离,其中,针对车辆的轨迹的交叉点之前和之后的点执行测量。在各种示例中,移动走廊的大小可以从每个车辆的中心点和/或从每个车辆沿着它们的轨迹的最前点和最后点测量。当计算针对潜在碰撞区域的偏移距离时,仿真系统还可以考虑车辆操纵(例如,转弯)以及对车辆的位置的对应的影响。
在一些示例中,在驾驶仿真中检测到回放代理(例如,回放代理224)和非回放代理(例如,仿真车辆220)之间的交互之后,仿真系统可以确定针对与交互相关联的非回放代理的偏离距离。图2C中针对仿真218示出了偏离距离确定的示例。在此示例中,示出了边界框230和234,其描绘了在仿真218中的第二时间(t=2)处仿真车辆220与回放代理224之间的交互。另外地,图2C描绘了仿真车辆在第二时间(t=2)处的位置236,以及日志数据中表示的对应的代理车辆的位置238。如该示例中示出的,因为仿真车辆220的功能/行为不同于日志数据内的对应的车辆的功能/行为,所以仿真车辆220从其在日志数据中的位置偏离偏离距离240。如上所述,仿真车辆可以基于车辆控制器软件和/或硬件系统的不同版本而偏离日志数据,并且智能代理可以基于规划组件的决策而偏离日志数据,而规划组件的决策与日志数据中的驾驶员的决策偏离。然而,在一些示例中,回放代理导航通过仿真环境的行为可以仅取决于日志数据,并且因此在这样的示例中回放代理可能不会偏离它们在日志数据中的位置。
如图2C中示出的,仿真系统已经确定仿真车辆220正在偏离,因为仿真车辆220的位置236与在日志数据内在相同相对时间处的对应的车辆的位置238不同。在一些示例中,为了确定代理是否偏离,仿真系统可以将偏离距离240与偏离距离阈值(例如,0.3米)进行比较,并且偏离超过偏离距离阈值的代理可以被确定为偏离代理,同时偏离小于偏离距离阈值的代理可以被确定为非偏离代理。在一些示例中,可以使用为零的偏离距离阈值,使得代理的位置和对应的日志数据之间的任何偏离可以被仿真系统分类为偏离代理。
另外地,虽然该示例描述了基于偏离距离240的量来确定偏离代理,但是在其他示例中,偏离代理的确定可以包括确定代理的偏航偏离以及将偏航偏离与偏航偏离阈值进行比较。在某些情况下,距离、偏航和/或代理的其他属性(例如,速度、轨迹等)的偏离阈值可以是预先确定的并且是固定的阈值。在其他情况下,仿真系统可以基于速度和/或针对不同类型的代理使用代理的不同的偏离阈值。例如,行人代理、自行车代理、汽车代理、卡车代理等,每个代理可以具有不同的距离和/或偏航偏离阈值以确定哪些代理被认为是偏离代理。
图3A至图3D描绘了在基于日志的驾驶仿真300内的四个不同场景。图3A至图3D中描绘的四个场景可以表示在四个不同时间处的相同驾驶仿真300:场景302(图3A)可以表示仿真300在第一时间(t=0)处的状态,场景304(图3B)可以表示仿真300在第二时间(t=1)处的状态,场景306(图3C)可以表示仿真300在第三时间(t=2)处的状态,并且场景308(图3D)可以表示仿真300在第四时间(t=3)处的状态。仿真300包括在包括多个附加的代理和其他对象的仿真环境内驾驶的仿真车辆310。如下文参考单独场景302-308所述,该示例中的仿真车辆310不与仿真300中的回放代理中的任一个交互,并且因此仿真300不会导致回放代理到智能代理的任何转换。
如场景302中示出的,在包括多个附加的代理和其他对象的仿真环境中,仿真车辆310在交叉之前的人行横道处停止。回放代理312是仿真车辆310正后方的车辆,并且正在接近交叉并朝仿真车辆310移动。
在场景304中,回放代理312已经在仿真车辆310正后方停止,并且当第二回放代理314接近交叉时,第二回放代理314从后面接近回放代理312。
在场景306中,仿真车辆310和回放代理312保持在交叉处停止,并且附加的回放代理314和316也已经在交叉处的回放代理312后面排队停止。场景306内的代理310-318可以在交叉处(例如,在停车标志处)等待,以等待交通信号灯的改变、等待横穿交通的中断、等待行人穿过人行横道等。另外地,场景306中示出了自行车回放代理318和行人回放代理320,它们也等待沿北行方向穿过交叉。
在场景308中,仿真车辆310已经开始移动并且正在交叉处执行左转。回放代理312、314和316也正朝向交叉前进,并且自行车回放代理318和行人回放代理320正前进以沿北行方向穿过街道。
在仿真300期间,仿真车辆310不与回放代理312-320中的任一个交互,并且因此,回放代理312-320(或者仿真中描绘的其他代理中的任一个)都没有被转换为智能代理。在某些情况下,仿真300可以表示其中仿真车辆310没有显著(或者根本没有)偏离仿真300所基于的日志数据内的对应的车辆的驾驶路径/行为的仿真。在其他情况下,仿真车辆310可能偏离日志数据中的对应的车辆,但可能没有显著偏离,或者可能不会导致与仿真300中的回放代理312-320中的任一个的交互。
图4A至图4D描绘了类似于上述驾驶仿真300的另一驾驶仿真400内的四个不同场景。例如,驾驶仿真400可以基于与驾驶仿真300相同的日志数据,并且可以包括相同的仿真环境、相同的仿真对象和相同的回放代理初始组。然而,如下文参考单独场景402-408所述,该示例中的仿真车辆410的行为与仿真300中的仿真车辆310的行为不同。仿真车辆410的行为的差异导致与回放代理的交互,这使仿真系统执行回放代理转换到智能代理的级联序列。
如场景402中示出的,仿真车辆410在仿真300中示出的相同交叉之前的相同人行横道处停止。然而,该示例中的仿真车辆410已经在先前示例中的仿真车辆310之前几英尺处停止。与仿真车辆310不同,该示例中的仿真车辆410在交叉前面的人行横道之前已经完全停止。回放代理412是仿真车辆410正后方的车辆,并且正在接近交叉并朝仿真车辆410移动。
在场景404中,回放代理412遵循与先前示例中的回放代理312相同的路径。然而,因为仿真车辆410比之前的示例早几英尺停止,所以仿真系统已经确定回放代理412和偏离的仿真车辆410之间将产生交互。该示例中的交互是回放代理412和仿真车辆410之间的潜在追尾碰撞,其中仿真车辆410由于较早地在交叉处停止而偏离。因此,为了防止潜在碰撞,仿真系统已经将代理412转换为智能代理,并且如场景404中所描绘的,智能代理412已经使用规划组件来识别与仿真车辆410的潜在碰撞,并且已经在交叉处较早地制动以避免潜在碰撞。
在场景406中,仿真车辆410和智能代理412保持在交叉处停止。由于智能代理412在交叉处较早制动,因此仿真系统已经确定回放代理414和现在偏离的智能代理412之间将产生另一次交互(例如,潜在的追尾碰撞)。作为响应,仿真系统还已经将代理414转换为智能代理,并且智能代理414已在交叉处较早制动以避免与智能代理412的潜在碰撞。然后,在将代理414转换为智能代理之后,仿真系统还确定在回放代理416和现在偏离的智能代理414之间将产生另一次交互。因此,仿真系统将代理416转换为智能代理,并且智能代理416在交叉处较早制动以避免与智能代理414的潜在碰撞。
在场景408中,仿真车辆410已经开始移动并且正在交叉处执行左转。已经转换为智能代理的代理412、414和416也正在朝向交叉前进。然而,与仿真300中不同,在该示例中自行车代理418和行人代理320也已经被转换为智能代理。例如,由于仿真车辆410在场景408中在交叉处停得更远和/或加速得更慢,所以自行车回放代理418的回放轨迹和速度将导致在场景408之后的交互的西边人行横道处与较慢的仿真车辆410进行交互。由于仿真车辆410比日志数据中的对应的车辆更晚到达人行横道,仿真系统已经确定将在自行车回放代理418和偏离的仿真车辆410之间产生交互(例如,潜在的自行车-车辆碰撞)。作为响应,仿真系统还已经将自行车代理418转换为智能自行车代理,并且智能自行车代理418在场景408中的人行横道处已经让行,以允许仿真车辆410在智能自行车代理418穿过之前前进通过交叉。然后,在将自行车代理418转换为智能自行车代理之后,仿真系统还确定行人代理420与现在偏离的智能自行车代理418之间将产生另一次交互。因此,仿真系统将行人代理420转换为智能行人代理,并且智能行人代理420在场景408处不开始行走,因为智能自行车代理保持在智能行人代理420的正前方。
如仿真400所示,与类似的仿真300相比,当仿真系统基于第一回放代理与偏离代理(例如,仿真车辆或智能代理)之间的交互的确定将第一回放代理转换为智能代理时,该转换允许智能代理使用规划组件并且在仿真中独立控制其路径以防止交互。然而,在第一回放代理已经转换为智能代理之后,它可能会偏离日志数据中其对应的代理的行为,这可能导致智能代理在驾驶仿真继续时与附加的回放代理交互。与现在偏离的智能代理的这些附加的交互可能导致仿真系统将附加的回放代理转换为智能代理,并且结果可能是在驾驶仿真的执行期间将回放代理转换为智能代理的级联效应。
图5示出了可以用于实现本文描述的驾驶仿真系统和技术的示例计算环境500。在该计算环境500中,包括车辆502和被配置为生成并且执行基于日志的驾驶仿真的仿真系统532。车辆502可以包括自主车辆的各种基于软件和/或基于硬件的组件,并且可以被用于控制穿过物理环境的自主车辆和/或在基于日志的驾驶仿真内操作的仿真车辆。车辆502可以与本文描述的现实和/或仿真车辆或者车辆控制器中的任一个或全部类似或者相同。在一些示例中,车辆502可以对应于穿过物理环境、捕获并且存储日志数据的车辆,日志数据可以被提供给仿真系统532并且用于生成基于日志的仿真。另外地或者可替代地,车辆502可以作为一个或多个单独的车辆控制系统操作,从而在基于日志的驾驶仿真期间与仿真系统532交互并且被仿真系统532评估。
在至少一个示例中,车辆502可以对应于被配置为执行对象感知和预测功能、路线规划和/或优化的自主或者半自主车辆。示例车辆502可以是无人驾驶车辆,例如,被配置为根据美国国家公路交通安全管理局发布的5级分类操作的自主车辆,该分类描述了一种能够针对整个行程执行所有安全关键功能的车辆,其中驾驶员(或者乘员)在任何时间都不被期望控制车辆。在这样的示例中,因为车辆502可以被配置为控制从行程开始到完成的所有功能(包括所有停车功能),所以它可以不包括驾驶员和/或用于驾驶车辆502的控件,例如,方向盘、加速度踏板和/或制动踏板。这仅是示例,并且本文描述的系统和方法可以并入任何地面、空中或者水上交通工具,包括从需要驾驶员始终手动控制的交通工具到部分或者完全自主地控制的交通工具。
在该示例中,车辆502可以包括车辆计算设备504、一个或多个传感器系统506、一个或多个发射机508、一个或多个通信连接510、至少一个直接连接512以及一个或多个驱动系统514。
车辆计算设备504可以包括一个或多个处理器516以及与一个或多个处理器516通信地耦合的存储器518。在所示示例中,车辆502是自主车辆;然而,车辆502可以是任何其他类型的车辆或者机器人平台。在所示示例中,车辆计算设备504的存储器518存储定位组件520、感知组件522、一个或多个系统控制器524、预测组件526和规划组件528。尽管在图5中出于说明性目的被描绘为驻留在存储器518中,但是定位组件520、感知组件522、系统控制器524、预测组件526和规划组件528中的一个或多个可以另外地或者可替代地被车辆502访问(例如,存储在远离车辆502的存储器上或者以其他方式可由远离车辆502的存储器访问)。
在至少一个示例中,定位组件520可以包括从传感器系统506接收数据以确定车辆502的位置和/或定向(例如,x位置、y位置、z位置、滚动、俯仰或偏航中的一个或多个)的功能。例如,定位组件520可以包括和/或请求/接收环境的地图并且可以连续地确定自主车辆在地图内的位置和/或定向。在某些实例中,定位组件520可以利用SLAM(同时定位和映射)、CLAMS(同时校准、定位和映射)、相对SLAM、束调整、非线性最小二乘优化等来接收图像数据,激光雷达数据、雷达数据、飞行时间数据、IMU数据、GPS数据、车轮编码器数据等,以准确地确定自主车辆的位置。在某些实例中,定位组件520可以向车辆502的各个组件提供数据以确定自主车辆的初始位置,用于生成轨迹和/或用于确定对象接近一个或多个人行横道区域和/或用于识别候选参考线,如本文所讨论的。
在某些实例中,通常感知组件522可以包括执行对象检测、分割和/或分类的功能。在一些示例中,感知组件522可以提供处理后的传感器数据,其指示靠近车辆502的实体的存在和/或将实体分类为实体类型(例如,汽车、行人、骑自行车的人、动物、建筑物、树木、路面、路缘、人行道、交通信号灯、停车标志、未知物等)。在另外的或者可替代的示例中,感知组件522可以提供指示与检测到的实体(例如,被跟踪的对象)和/或实体所在的环境相关联的一个或多个特性的处理后的传感器数据。在一些示例中,与实体相关联的特性可以包括但不限于x位置(全局和/或局部位置)、y位置(全局和/或局部位置)、z位置(全局和/或局部位置)、定向(例如,滚动、俯仰、偏航)、实体类型(例如,分类)、实体的速度、实体的加速度、实体的范围(大小)等。与环境相关联的特性可以包括但不限于环境中另一个实体的存在、环境中另一个实体的状态、一天中的时间、一周中的一天、季节、天气状况、黑暗/光明的指示等。
在一些示例中,存储器518可以包括可由车辆502用来在环境内导航的一张或多张地图。为了本公开的目的,地图可以是以二维、三维或者N维建模的任何数量的数据结构,其能够提供关于环境的信息,例如但不限于拓扑(例如,交叉)、街道、山脉、道路、地形和通常环境。在某些实例中,地图可以包括但不限于:纹理信息(例如,颜色信息(例如,RGB颜色信息、Lab颜色信息、HSV/HSL颜色信息)等)、强度信息(例如,激光雷达信息、雷达信息等);空间信息(例如,投影到网格上的图像数据、单独“面元”(例如,与单独颜色和/或强度相关联的多边形))、反射率信息(例如,镜面反射率信息、回射率信息、BRDF信息、BSSRDF信息等)。在某些实例中,地图可以包括环境的三维网格。在某些实例中,地图可以以图块格式被存储,使得地图的单独图块表示环境的离散部分,并且可以根据需要被加载到工作存储器中。
在一些示例中,可以至少部分地基于地图来控制车辆502。即,地图可以与定位组件520、感知组件522、预测组件526和/或规划组件528结合使用以确定车辆502的位置、识别环境中的对象和/或生成在环境内导航的路线和/或轨迹。
在至少一个示例中,车辆计算设备504可以包括一个或多个系统控制器524,其可以被配置为控制车辆502的转向、推进、制动、安全、发射机、通信和其他系统。系统控制器524可以与驱动系统514的对应的系统和/或车辆502的其他组件通信和/或对其进行控制。
通常,预测组件526可以包括生成与环境中的对象相关联的预测信息的功能。作为示例,预测组件526可以被实现以当行人穿越或者准备穿越人行横道区域时预测环境中接近人行横道区域的行人的位置(或者与过马路的行人相关联的区域或者位置)。作为另一示例,本文所讨论的技术可以被实现以当车辆502穿越环境时预测其他对象(例如,车辆、自行车、行人等)的位置。在一些示例中,预测组件526可以基于目标对象和/或接近目标对象的其他对象的属性来生成针对这样的目标对象的一个或多个预测位置、预测速度、预测轨迹等。
通常,规划组件528可以确定车辆502穿越环境所遵循的路径。例如,规划组件528可以确定各种路线和轨迹以及各种细节水平。例如,规划组件528可以确定从第一位置(例如,当前位置)到第二位置(例如,目标位置)行进的路线。出于本讨论的目的,路线可以是用于在两个位置之间行进的航路点序列。作为非限制性示例,航路点包括街道、交叉、全球定位系统(GPS)坐标等。此外,规划组件528可以生成用于沿着从第一位置到第二位置的路线的至少一部分引导自主车辆的指令。在至少一个示例中,规划组件528可以确定如何引导自主车辆从航路点序列中的第一航路点到航路点序列中的第二航路点。在一些示例中,指令可以是轨迹或者轨迹的一部分。在一些示例中,可以根据滚动时域技术实质上同时生成多个轨迹(例如,在技术容差内),其中,多个轨迹中的一个轨迹被选择用于车辆502导航。
在某些实例中,规划组件528可以至少部分地基于与环境中的对象相关联的预测位置来生成针对车辆502的一个或多个轨迹。在一些示例中,规划组件528可以使用时序逻辑(例如,线性时序逻辑和/或信号时序逻辑)来评估车辆502的一个或多个轨迹。
如可以被理解的,出于说明性目的,本文讨论的组件(例如,定位组件520、感知组件522、一个或多个系统控制器524、预测组件526和规划组件528)被描述为分开的。然而,由各种组件执行的操作可以被组合或者在任何其他组件中被执行。此外,所讨论的以软件实现的组件中的任一个都可以以硬件实现,反之亦然。此外,在车辆502中实现的任何功能可以在一个或多个远程计算设备(例如,仿真系统532)或者另一组件中被实现(并且反之亦然)。
在至少一个示例中,传感器系统506可以包括飞行时间传感器、激光雷达传感器、雷达传感器、超声换能器、声纳传感器、位置传感器(例如,GPS、罗盘等)、惯性传感器(例如,惯性测量单元(IMU)、加速度计、磁力计、陀螺仪等)、相机(例如,RGB、IR、强度、深度等)、麦克风、车轮编码器、环境传感器(例如,温度传感器、湿度传感器、光传感器、压力传感器等)。传感器系统506可以包括这些或者其他类型的传感器中的每一个的多个实例。例如,飞行时间传感器可以包括位于车辆502的角落、前部、后部、侧面和/或顶部的单独的飞行时间传感器。作为另一示例,相机传感器可以包括设置在车辆502的外部和/或内部周围的各个位置处的多个相机。传感器系统506可以向车辆计算设备504提供输入。另外地或者可替代地,传感器系统506可以经由一个或多个网络530以特定频率、在经过预先确定时间段之后、近乎实时地将传感器数据发送到一个或多个外部计算设备。
车辆502还可以包括用于发射光和/或声音的一个或多个发射机508,如上所述。该示例中的发射机508包括内部音频和视觉发射机以与车辆502的乘客进行通信。通过示例而非限制的方式,内部发射机可以包括扬声器、灯、标志、显示屏、触摸屏、触觉发射机(例如,振动和/或力反馈)、机械致动器(例如,安全带张紧器、座椅定位器、头枕定位器等)等。该示例中的发射机508还包括外部发射机。通过示例而非限制的方式,该示例中的外部发射机包括用于以信号通知行进方向的灯或者车辆动作的其他指示器(例如,指示灯、标志、灯阵列等),以及用于与行人或者其他附近车辆可听地通信的一个或多个音频发射机(例如,扬声器、扬声器阵列、喇叭等),这些发射机中的一个或多个包括声束控制技术。
车辆502还可以包括一个或多个通信连接510,其实现在车辆502与一个或多个其他本地或者远程计算设备之间的通信。例如,通信连接510可以促进与车辆502上的其他本地计算设备和/或驱动系统514的通信。而且,通信连接510可以允许车辆与其他附近的计算设备(例如,其他附近的车辆、交通信号等)通信。通信连接510还使得车辆502能够与远程遥控操作计算设备或者其他远程服务通信。
通信连接510可以包括用于将车辆计算设备504连接到另一计算设备或者网络(例如,网络530)的物理和/或逻辑接口。例如,通信连接510可以实现基于Wi-Fi的通信,例如,经由IEEE 802.11标准定义的频率、短距离无线频率(例如,)、蜂窝通信(例如,2G、3G、4G、4G LTE、5G等)或者使得相应的计算设备能够与其他计算设备接合的任何合适的有线或者无线通信协议。
在至少一个示例中,车辆502可以包括一个或多个驱动系统514。在一些示例中,车辆502可以具有单个驱动系统514。在至少一个示例中,如果车辆502具有多个驱动系统514,则单独的驱动系统514可以被定位在车辆502的相对端(例如,前部和后部等)。在至少一个示例中,驱动系统514可以包括一个或多个传感器系统以检测驱动系统514和/或车辆502的周围环境的状况。通过示例而非限制的方式,传感器系统可以包括用于感测驱动模块的车轮的旋转的一个或多个车轮编码器(例如,旋转编码器)、用于测量驱动模块定向和加速度的惯性传感器(例如,惯性测量单元、加速度计、陀螺仪、磁力计等)、相机或者其他图像传感器、用于声学检测驱动系统周围的对象的超声传感器、激光雷达传感器、雷达传感器等。一些传感器(例如,车轮编码器)可以是驱动系统514所独有的。在某些情况下,驱动系统514上的传感器系统可以重叠或者补充车辆502的对应的系统(例如,传感器系统506)。
驱动系统514可以包括车辆系统中的许多车辆系统,包括高压电池、用于推进车辆的电机、用于将来自电池的直流电转换成交流电以供其他车辆系统使用的逆变器、包括转向电机和转向机架(其可以是电动的)的转向系统、包括液压或者电动执行器的制动系统、包括液压和/或气动组件的悬架系统、用于分配制动力以减轻牵引力损失并且保持控制的稳定性控制系统、HVAC系统、照明(例如,诸如用于照亮车辆外部环境的头/尾灯之类的照明)以及一个或多个其他系统(例如,冷却系统、安全系统、车载充电系统、诸如DC/DC转换器、高压结、高压电缆、充电系统、充电端口等之类的其他电气组件)。另外地,驱动系统514可以包括驱动系统控制器,其可以接收并且预处理来自传感器系统的数据,并且控制各种车辆系统的操作。在一些示例中,驱动系统控制器可以包括一个或多个处理器以及与该一个或多个处理器通信地耦合的存储器。存储器可以存储一个或多个组件以执行驱动系统514的各种功能。此外,驱动系统514还包括一个或多个通信连接,其使得相应的驱动系统能够与一个或多个其他本地或者远程计算设备进行通信。
在至少一个示例中,直接连接512可以提供物理接口以将一个或多个驱动系统514与车辆502的车身耦合。例如,直接连接512可以允许在驱动系统514和车辆之间传送能量、流体、空气、数据等。在某些实例中,直接连接512还可以将驱动系统514可释放地固定至车辆502的车身。
在至少一个示例中,定位组件520、感知组件522、一个或多个系统控制器524、预测组件526和规划组件528可以处理传感器数据,如上所述,并且可以通过一个或多个网络530发送它们相应的输出到一个或多个外部计算设备,例如,仿真系统532。在至少一个示例中,组件的相应的输出可以以特定频率、在经过预先确定的时间段之后、近乎实时地等传输到仿真系统532。另外地或者可替代地,车辆502可以经由网络530向仿真系统532发送传感器数据,包括原始传感器数据、处理后的传感器数据和/或传感器数据的表示。这样的传感器数据可以作为日志数据的一个或多个文件550,以特定频率、在经过预先确定时间段之后、近乎实时地等发送到仿真系统532。
如上所述,仿真系统532可以使用本文描述的各种组件和系统来生成和执行驾驶仿真(例如,基于日志的驾驶仿真),以执行与上面参考图1至图4D和下面参考过程600和700描述的技术类似或者相同的技术。仿真系统532可以与一个或多个车辆502通信/交互以执行驾驶仿真,其中车辆502与仿真车辆相对应。尽管在该示例中未示出,但是仿真系统532还可以包括日志数据存储库和/或包括仿真环境和对象的仿真场景。在各种示例中,仿真系统732可以生成、实例化和执行针对仿真车辆的驾驶仿真,包括基于来自车辆502和/或其他车辆控制系统的仿真来监视和接收响应。
仿真系统532可以包括一个或多个处理器534,以及与一个或多个处理器534通信地耦合的存储器536。在所示示例中,仿真系统532的存储器536存储基于日志的仿真生成器538和仿真器540,其被配置为执行基于日志的驾驶仿真。仿真器540包括代理交互监视器542、代理转换器544、规划组件546和回放代理分析器548。在该示例中,代理交互监视器542可以包括本文描述的用于在基于日志的仿真期间跟踪代理和仿真车辆、生成边界框以及确定在仿真期间在代理之间的交互的功能。代理转换器544可以包括本文描述的用于在基于日志的驾驶仿真期间将回放代理转换为智能代理的功能。规划组件546可以包括本文描述的用于在驾驶仿真期间为智能代理提供规划组件功能的功能。例如,可以在规划组件546内针对仿真期间的每个智能代理转换启动功能、线程或者过程,以分析仿真环境并且确定智能代理通过仿真环境的路径。在一些示例中,规划组件546可以是规划组件528的简化版本,其被配置为利用智能代理的最小轨迹调整以避免交互。回放代理分析器548可以包括本文描述的用于分析回放代理所采取的路线、车辆状态以及回放代理执行的驾驶操作以确定针对回放代理的一个或多个驾驶风格和/或驾驶员个性类型的功能。尽管为了说明的目的而在图5中被描绘为驻留在存储器536中,但是可以预期的是,系统和组件538-548中的一些或者全部可以另外地或者可替代地被远程地存储并且可由仿真系统532通过网络530访问。
基于日志的仿真生成器538可以使用与本文描述的技术类似或者相同的技术来生成基于日志的驾驶仿真。例如,基于日志的仿真生成器538可以接收车辆502和/或其他车辆控制系统的先前收集的日志数据。日志数据可以对应于由穿越物理环境的车辆502捕获的数据。为了生成基于日志的驾驶仿真,基于日志的仿真生成器538可以使用接收到的日志数据来生成仿真指令,该仿真指令当由仿真器540执行时,生成仿真环境和仿真对象(例如,代理)。在基于日志的仿真的执行期间,仿真器540可以基于日志数据向仿真车辆(例如,车辆502)提供仿真环境和对象数据。例如,基于日志的仿真生成器538可以接收并且分析日志数据以检测环境内的特定对象,以及与这些对象相关联的属性数据(例如,大小、位置、轨迹、航路点等),并且仿真器540可以将对象数据转换为可以在驾驶仿真的执行期间发送到车辆502的传感器数据。
在某些实例中,基于日志的仿真生成器538可以确定特定对象具有特性并且将该特性应用于仿真对象。仅出于说明的目的,日志数据可以指示对象以低于速度限制的大约10英里/小时的速度行进并且缓慢加速。基于日志的仿真生成器538可以确定对象是谨慎车辆并且将谨慎对象模型应用于仿真环境中的对应的仿真对象。在某些实例中,基于日志的仿真生成器538可以基于日志数据中的行为数据来确定对象是攻击性对象、被动对象、中性对象和/或其他类型的行为并且将与行为(例如,被动行为、谨慎行为、中性行为和/或攻击性行为)相关联的行为指令应用于仿真对象。
在某些实例中,仿真器540可以基于与对象相关联的属性使用过滤器以从仿真场景中移除日志数据中表示的对象。在某些实例中,仿真器540可以基于对象/分类类型(汽车、行人、摩托车、骑自行车的人等)、对象大小(例如,长度、宽度、高度和/或体积)、置信水平、轨迹长度、对象和生成日志数据的车辆之间的交互量、和/或时间段来过滤对象。
通过示例而非限制的方式,日志数据可以包括不同大小的对象,例如,邮箱和建筑物。基于日志的仿真生成器538可以使用基于体积的过滤器,使得与大于等于或大于三立方米的阈值体积的体积相关联的对象(例如,建筑物)在仿真场景中被表示,并且使得与小于三立方米的体积相关联的对象(例如,邮箱)在仿真场景中不被表示。在某些实例中,基于日志的仿真生成器538可以使用轨迹长度过滤器,其中具有不满足或者未超过轨迹长度阈值的轨迹长度(例如,与物理距离或者时间段相关联的数据)的对象从仿真场景被过滤。这可能会导致仿真忽略与数据捕获期间的不良检测相关联的对象。在某些实例中,基于日志的仿真生成器538可以使用基于运动的过滤器,使得在仿真中表示与根据日志数据的运动或者轨迹相关联的对象。在某些实例中,过滤器可以组合应用或者互斥地应用。
在某些实例中,基于日志的仿真生成器538可以过滤不满足或者未超过置信阈值的对象。通过示例而非限制的方式,日志数据可以指示对象与行人的分类属性相关联以及与分类相关联的置信值为5%。基于日志的仿真生成器538可以具有75%的置信值阈值,并且基于不满足或者未超过置信值阈值的置信值来过滤对象。在某些实例中,用户可以提供包括一个或多个属性阈值的用户生成的过滤器,使得基于日志的仿真生成器538可以过滤不满足或者未超过由用户生成的过滤器指示的一个或多个属性阈值的对象。
仿真器540可以执行驾驶仿真作为一组仿真指令并且生成仿真数据。在某些实例中,仿真器540可以同时和/或并行执行多个仿真场景。这可以允许用户编辑仿真并且执行仿真的排列,其中每个仿真之间存在变化。另外地,仿真器540可以确定针对仿真的结果。例如,仿真器540可以执行基于日志的驾驶仿真以在用于测试和验证的仿真中使用。仿真器540生成指示车辆502如何执行(例如,响应)的仿真数据,并且可以将仿真数据与预先确定的结果进行比较和/或确定是否有任何预先确定规则/断言被破坏/触发。
在某些实例中,预先确定的规则/断言可以是基于仿真的(例如,可以基于人行横道场景启用关于人行横道的交通规则,或者可以针对停顿的车辆场景禁用关于穿过车道标记的交通规则)。在某些实例中,仿真器540可以随着仿真的进行而动态地启用和禁用规则/断言。例如,当仿真对象接近学校区域时,可以启用与学校区域相关的规则/断言,并且当仿真对象离开学校区域时,可以禁用与学校区域相关的规则/断言。在某些实例中,规则/断言可以包括例如与给定仿真场景下对象可以多快加速相关的舒适度量。
至少部分地基于确定车辆502的执行与预先确定的结果一致(即,自主控制器做了它应该做的一切)和/或确定规则没有被破坏或者断言没有被触发,仿真器540可以确定车辆502成功。至少部分地基于确定车辆502的性能与预先确定的结果不一致(即,自主控制器做了不应该做的事情)和/或确定规则被破坏或者断言被触发,仿真器540可以确定车辆502发生故障。因此,至少部分地基于执行仿真,仿真数据可以指示车辆502是如何响应每个仿真的,如上所述,并且至少部分地基于仿真数据来确定成功结果或者不成功结果。
车辆502的处理器516和仿真系统532的处理器534可以是能够执行指令以处理数据并且执行如本文所述的操作的任何合适的处理器。通过示例而非限制的方式,处理器516和534可以包括一个或多个中央处理单元(CPU)、图形处理单元(GPU)、或者处理电子数据以将该电子数据转换成可以被存储在寄存器和/或存储器中的其他电子数据的任何其他设备或者设备的一部分。在一些示例中,集成电路(例如,ASIC等)、门阵列(例如,FPGA等)和其他硬件设备也可以被认为是处理器,只要它们被配置为实现编码指令。
存储器518和536是非暂时性计算机可读介质的示例。存储器518和536可以存储操作系统和一个或多个软件应用、指令、程序和/或数据以实现本文描述的方法和归因于各种系统的功能。在各种实现方式中,可以使用任何合适的存储器技术(例如,静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器、或者能够存储信息的任何其他类型的存储器)来实现存储器。本文描述的架构、系统和单独元件可以包括许多其他逻辑、程序和物理组件,其中附图中示出的那些仅仅是与本文讨论相关的示例。
应当注意,虽然图5被示出为分布式系统,但在可替代示例中,车辆502的组件可以与仿真系统532相关联和/或仿真系统532的组件可以与车辆502相关联。即,车辆502可以执行与仿真系统532相关联的功能中的一个或多个,并且反之亦然。此外,仿真器540(及其子组件)的各方面可以在本文讨论的设备或者系统中的任一个上执行。
如上所述,仿真系统532可以分析从车辆502接收的日志数据550以确定与车辆和日志数据中表示的其他对象相关联的行为、属性和/或目的地。在一些示例中,仿真系统532可以使用日志数据中的对象的行为、属性和/或目的地来确定仿真中针对智能代理的对应的行为、属性和/或目的地。例如,回放代理分析器548可以分析日志数据550以识别由环境中的任何动态对象执行的一个或多个行为,包括机动车辆对象、非机动车辆对象(例如,自行车、滑板等)和/或行人对象。基于根据日志数据确定的对象分类和对象行为,回放代理分析器548可以确定与对象相关联的属性(例如,驾驶属性、个性属性或者其他行为属性)。然后,规划组件546可以使用由回放代理分析器548确定的对象属性来控制仿真内的智能代理,从而提供更现实的代理行为和决策,并且改进仿真的整体质量和价值。
由回放代理分析器548基于日志数据确定的行为可以包括由环境中的对象执行(或未执行)的任何可观察的动作。行为可以被表示为二进制值和/或数值,其量化对象执行的行为。在某些示例中,可以为特定代理记录属性的多个不同的值。属性的值可以对应于某个代理的行为。例如,属性的特定范围可以对应于特定行为,或者属性的值可以被聚合和/或缩放以对应于特定行为。在一些示例中,回放代理分析器548可以针对对象的不同分类确定不同类型的行为,例如,针对机动车辆对象的一组行为、针对自行车的另一组行为、针对行人的另一组行为等。在下面的部分中针对不同的对象分类描述了可以由回放代理分析器548确定的行为和/或属性的类型的各种示例。从本公开的上下文可以理解,本文描述的行为和属性是非限制性示例,并且任何附加的类型的对象行为和属性可以在其他示例中被使用。
针对日志数据550中表示的每个机动车辆(例如,汽车、卡车、公共汽车、摩托车等),回放代理分析器548可以基于车辆位置、轨迹、速度、姿态和/或在日志数据550中捕获的与车辆相关联的其他车辆属性来确定各种不同的驾驶行为。根据车辆的日志数据550确定的驾驶行为的示例可以包括车辆相对于速度限制的速度、车辆相对于停车线(例如,停车标志、交通灯、人行横道等)的停车距离。驾驶行为的附加的示例可以包括车辆是否在自行车道、公交车道或者出租车道上驾驶、车辆是否使用车道分割或者车道共享、以及车辆是否在路肩或者停车道上驾驶。驾驶行为的其他示例可以包括车辆执行的任何交通违规行为。驾驶行为的其他示例可以包括舒适参数,例如,车辆的平均(或者优选)加速度和制动、车辆的最大加速度和制动、车辆的平均(或者优选)巡航速度、车辆的最大和最小巡航速度、以及车辆的平均和/或最大可容忍急动度量。附加的驾驶行为可以包括观察到的车辆响应于潜在交互的反应时间,或者估计的轨迹扫描距离(例如,车辆在交互之前扫描多远)。另一种驾驶行为可以包括车辆在停车标志或者人行横道处时在车辆恢复移动之前的停止延迟时间。另一种驾驶行为可以包括低速容差参数,其对应于导致车辆改变车道或者超越车辆前方的代理的代理的速度。附加的驾驶行为可以包括针对车辆的信令参数,例如,车辆在路口转弯之前是否使用转向灯、在路口之前车辆使用转向灯的距离、车辆在改变车道前是否使用转向灯、以及在改变车道前车辆使用转向灯的距离。
针对日志数据550中表示的行人和/或其他非机动车辆对象(例如,自行车、滑板等),回放代理分析器548可以使用对象的位置、轨迹、速度、姿态和/或其他属性来确定上述针对机动车辆的相同行为中的任一个。另外地并且可替代地,回放代理分析器548可以基于对象分类来确定环境中的对象的不同行为集合。根据针对非机动车辆对象的日志数据550确定的行为的示例可以包括对象的期望(或者正常)速度和最大速度(例如,步行速度、骑自行车速度等)以及针对对象的正常和最大加速度和减速度速率。针对非机动车辆对象的附加的行为可以包括过马路和/或乱穿马路时对象的正常速度和加速度。针对非机动车辆对象的行为的其他示例可以包括针对对象的正常和最大转弯速度,以及对象在其自身与街道、墙壁或者其他移动对象之间保持的距离(例如,安全区域、跟随距离)。
针对为车辆确定的每个驾驶行为或者针对非机动车辆对象确定的其他行为,回放代理分析器548可以确定行为的单独实例、平均值、范围和/或分布。作为示例,回放代理分析器548可以基于来自日志数据550的车辆在人行横道上停止的单个实例来确定车辆在人行横道上停止的行为。在其他示例中,回放代理分析器548可以识别行为的多个实例(例如,驾驶速度测量、跟随距离测量、加速度速率值、制动速率值等),并且驾驶行为可以对应于实例的平均值、实例的范围、或者基于实例的概率分布。例如,针对表示车辆相对于速度限制的速度、车辆跟随距离等的驾驶行为,可以将驾驶行为计算为基于该车辆的行为的实例的平均值或者分布。
在一些示例中,回放代理分析器548可以使用基于日志数据550确定的对象行为来确定与对象相关联的行为属性。针对日志数据550内的机动车辆,行为属性可以指代驾驶属性。在某些情况下,驾驶属性和/或行为属性可以对应于单个行为或者一组行为。例如,车辆的低级驾驶属性可以包括诸如车辆的反应时间、相对于速度限制的平均速度、平均跟随距离、平均转向灯使用距离等之类的属性。
另外地或者可替代地,某些驾驶属性和/或行为属性可以包括基于行为的组合的高级属性。例如,回放代理分析器548可以使用多种驾驶行为(例如,加速度/制动速率、转向速率、驾驶速度、跟随距离等)来确定车辆的攻击性驾驶属性。可以组合分析驾驶行为(例如,车道使用、交通信号使用、驾驶速度、停车/让行行为等)的不同组合以确定守法驾驶属性。可以组合分析驾驶行为的又一组合(例如,跟随距离、加速度/制动速率、反应时间、轨迹扫描距离等)以确定车辆的驾驶技能属性。针对这些示例和车辆的其他高级驾驶属性(或者针对其他类型的对象的高级行为属性),回放代理分析器548可以基于根据日志数据550确定的行为的各种组合来针对高级属性中的每一个指派分数或者度量。在一些示例中,高级驾驶属性或者属性的组合可以指代驾驶风格或者驾驶个性,并且可以针对行人和非机动车辆对象,基于他们相应的行为/属性来确定类似的风格或者个性。
在回放代理分析器548基于日志数据550确定环境中的对象的行为和/或属性之后,规划组件536可以使用该行为和属性来控制仿真内的一个或多个智能代理。在一些示例中,驾驶仿真中的单个智能代理可以被指派与日志数据550内对应的动态对象相同的行为和/或属性。为了将一组行为/属性指派给智能代理,仿真系统532可以基于行为/属性来实例化规划组件536的特定版本,和/或可以在实例化与智能代理的期望的行为/属性集相对应的规划组件536时提供特定参数。如上所述,智能代理可以在仿真开始时被实例化,或者可以在驾驶仿真期间从回放代理转换而来。
如上所述,规划组件536可以在仿真期间控制智能代理的动作和行为,包括仿真环境内的对象的任何驾驶决策。如本文所使用的,仿真车辆或者其他仿真对象的决策可以包括规划组件536的任何确定,以在仿真期间控制仿真车辆/对象。由规划组件536针对仿真车辆确定的驾驶决策可以对应于由回放代理分析器548针对日志数据550中的对应车辆确定的任何驾驶行为。
在一些示例中,规划组件536可以基于来自日志数据550的单个对应车辆来控制仿真车辆。例如,规划组件536可以控制仿真车辆以相对于速度限制相同的速度驾驶,以对于本文描述的驾驶行为中的任一个具有相同的跟随距离、具有相同的转向灯使用等等。为了确定针对仿真车辆的特定驾驶决策(例如,街道上的驾驶速度、接近停车标志的减速度速率、相对于停车标志的停车位置等等),规划组件536可以匹配来自日志数据550中对应车辆的相同行为。
在其他示例中,规划组件536可以在没有来自日志数据550中对应车辆的任何匹配行为的情况下确定针对仿真车辆的驾驶决策。例如,如果对应车辆在收集日志数据550的时间段内没有在停车标志或者交通灯处停止,则规划组件536在控制与停车标志或者交通灯相关的仿真车辆时可能没有任何直接驾驶行为以供使用。在这样的实例中,规划组件536可以使用一个或多个间接技术来确定针对仿真车辆的驾驶决策。在某些情况下,规划组件536可以使用针对仿真车辆的驾驶行为/决策的预先确定和/或默认值。规划组件536还可以基于不同驾驶行为之间的相关性和/或与该相关性相关联的加权值来确定针对仿真车辆的驾驶决策。例如,规划组件536可以确定一种驾驶行为(例如,停车标志处的时间延迟)和其他驾驶行为(例如,与速度限制相关的平均速度、跟随距离、转向速率等)之间存在相关性。规划组件536还可以确定加权值以指示不同驾驶行为之间的相关性的强度(例如,高加权值可以指示驾驶行为之间更强的相关性)。然后,当针对对应车辆的日志数据550中没有对应的驾驶行为时,为了确定针对仿真车辆的驾驶决策,规划组件536可以使用日志数据550中的车辆的相关驾驶行为的值以及相关联的加权值,以确定针对仿真车辆的驾驶决策。
另外地或者可替代地,规划组件536可以使用日志数据550中对应车辆的较高级驾驶属性(例如,攻击性驾驶属性分数、守法驾驶属性分数、反应时间驾驶属性分数和/或驾驶技能属性分数等)来确定针对仿真车辆的驾驶决策。例如,规划组件536可以实现机器学习模型和/或基于启发式的算法,以基于日志数据550中对应车辆的较高级属性来确定针对仿真车辆的较低级驾驶决策(例如,速度、加速度、跟随距离、转向灯使用等)。作为示例,规划组件536可以基于日志数据中对应车辆的驾驶员攻击性度量和驾驶员技能度量来确定针对第一仿真车辆的跟随距离,同时基于日志数据中不同的对应车辆的不同驾驶员攻击性度量和驾驶员技能度量来确定针对第二仿真车辆的不同跟随距离。
在一些示例中,仿真系统532可以实现一对一映射,其中基于日志数据550中的单个对应车辆的驾驶行为和属性来控制单个仿真车辆。在其他示例中,仿真系统532可以使用多对一映射,其中可以针对日志数据550中的多个车辆确定驾驶行为和属性,并且来自多个车辆的行为/属性的聚合可以被用于控制单个仿真车辆。仿真系统532还可以被使用一对多映射,其中日志数据550中的单个车辆的行为和/或属性可以被用于控制一个或多个驾驶仿真中的多个仿真车辆。
在其他示例中,仿真系统532可以配置仿真以包括仿真车辆组,该仿真车辆组具有基于一个或多个车辆日志内的车辆组的行为/属性的组成。例如,仿真系统532可以分析与日志数据550相关联的一个或多个环境和时间内的一组车辆,以确定环境中表现出不同驾驶行为或者属性的车辆的数量或者百分比。来自日志数据550的车辆的示例组成可以包括20%高度攻击性的驾驶员、85%高度守法的驾驶员、45%高技能的驾驶员、70%使用公交车道超车的驾驶员等等。仿真系统532可以具有与不同位置和/或一天中的不同时间相关联的驾驶行为/属性的不同组成。例如,基于在一个区域中高峰时段期间收集的日志数据550确定的驾驶行为/属性的组成可以不同于基于在不同区域中周末下午期间收集的日志数据550确定的驾驶行为/属性的组成。仿真系统532可以选择与时间和区域相关联的驾驶行为/属性的特定组成,并且可以在仿真中配置一组仿真车辆以匹配所选择的组成,从而允许仿真系统532更现实地对在不同区域中和不同时间的驾驶员个性类型组进行建模。
另外地,虽然本文的某些示例指代车辆和驾驶仿真,但如所指出的,相似或者相同的技术可以被用于映射日志数据550中的非机动车辆(例如,行人、自行车等)和仿真中对应的非机动车对象之间的行为/属性。
图6是根据本文描述的各种系统和技术的用于在驾驶仿真期间将回放代理转换为智能代理的示例过程600的流程图。在一些示例中,过程600的操作可以由仿真系统532的一个或多个组件单独执行或者与一个或多个车辆502结合执行。例如,本文描述的用于分析与回放代理相关联的日志数据、确定针对回放代理的目的地和/或驾驶行为/属性、以及确定和应用规划组件参数来控制智能代理的决策(例如,路径和行为)的技术,可以由规划组件546和/或回放代理分析器548来执行,如上所述。
在操作602处,仿真系统532可以接收并且分析与仿真中的回放代理相关联的日志数据。例如,仿真系统532可以从车辆502接收日志数据550,包括在穿越环境时由车辆502观察到和/或感知的各种数据。具体地,在操作602处接收的日志数据可以包括与在车辆502的附近检测到的特定代理(例如,其他车辆、行人、自行车等)相关联的数据,例如,属性或者特性(例如,代理分类、大小、形状、位置、偏航、速度、轨迹等)。在某些实例中,日志数据还可以包括代理的操作和/或行为,例如,事故或者接近事故、交通违规、行人、骑自行车的人或者动物的过马路或者乱穿马路、天气异常、施工区域、绕道、学校区域等。在操作602中接收的日志数据550可以包括原始传感器数据和/或基于在车辆502处捕获的传感器数据的数据。
在操作604处,仿真系统532可以基于在操作602中接收到的日志数据来确定仿真内的针对回放代理的目的地。针对回放代理的目的地可以由仿真系统532基于日志数据内对应代理行进的路线/路径来确定和/或推断。在某些情况下,确定针对回放代理的目的地可以包括分析在与基于日志的驾驶仿真相关联的时间段之前或者之后的时间期间捕获的针对对应代理的附加的日志数据。
在操作606处,仿真系统532可以基于在操作602中接收到的日志数据来确定与回放代理相关联的一个或多个驾驶和/或个性属性。例如,回放代理分析器548可以检测并且分析日志数据内的对应代理执行的一个或多个驾驶行为和/或操作,以确定针对回放代理的一个或多个驾驶风格和/或驾驶员个性类型。作为示例,回放代理分析器548可以分析与特定代理相关联的日志数据以确定针对该代理的一个或多个攻击性度量、驾驶技能度量、反应时间度量、守法度量等。
在操作608处,仿真系统532可以确定回放代理是否将在驾驶仿真期间的某个点处转换为智能代理。如上所述,在基于日志的驾驶仿真的过程期间,代理最初可以作为回放代理进行操作,并且可以基于日志数据内的对应代理的行为在仿真内表现。响应于确定在仿真中在回放代理和偏离的非回放代理(例如,智能代理或者仿真车辆)之间可能发生交互,仿真系统532可以将回放代理转换成智能代理。并非所有回放代理都可以被转换为智能代理,并且在各种驾驶仿真期间,仿真系统532可以将回放代理中的一些、全部转换为智能代理,或者不将回放代理转换为智能代理。在该示例中,当在操作602-606中分析的特定回放代理没有被转换为智能代理时(608:否),过程600可以返回到操作602以在仿真继续时继续监视回放代理的行为。
然而,当仿真系统532在仿真期间确定特定回放代理将要被转换为智能代理时(608:是),则在操作610处,仿真系统532基于在操作604中确定的回放代理的目的地和/或基于在操作606中确定的针对回放代理的驾驶/个性属性来确定一个或多个规划组件参数。这样的参数可以包括但不限于确定智能代理在确定路线时是否将使用自行车道的参数、确定智能代理是否将使用车道分割的参数、确定智能代理是否将使用车道共享的参数、表示智能代理的期望速度的参数(基于代理类型)、表示智能代理的最大可能速度和加速度的参数(基于代理类型)、表示智能代理与仿真环境中其他代理的期望距离的参数(基于代理类型)、表示智能代理将如何响应交通灯、停车标志、让行标志、停车线、学校区域、施工区域的参数、以及表示智能代理何时使用转向灯、打开/关闭灯和/或启用其他车辆控件的参数。
在操作612处,仿真系统532然后可以通过启动规划组件来将回放代理转换为智能代理,以在仿真期间控制智能代理的导航和/或驾驶决策行为。在一些示例中,启动规划组件可以包括基于在操作610处确定的规划组件参数来实例化、执行和/或配置规划组件过程,从而配置规划组件以更准确地反映回放代理所表现出的驾驶风格和/或驾驶员个性的方式来控制智能代理的导航和/或驾驶决策行为。
图7是根据本文描述的各种系统和技术的用于在驾驶仿真期间将回放代理转换为智能代理的另一示例过程700的流程图。在一些示例中,过程700的操作可以由仿真系统532的一个或多个组件单独执行或者与一个或多个车辆502结合执行。例如,本文描述的用于确定驾驶仿真中的代理之间的交互、以及将回放代理转换为智能代理的技术,可以由上面讨论的代理交互监视器542和/或代理转换器544来执行。
在操作702处,仿真系统532可以确定基于日志的驾驶仿真内的针对一个或多个车辆/代理的轨迹。驾驶仿真可以包括在仿真环境内操作的多个不同代理,包括回放代理和智能代理。仿真内回放代理的轨迹可以基于日志数据内对应代理的位置来确定。因此,针对回放代理,仿真系统532可以基于日志数据在任何时间确定针对回放代理在仿真的持续时间内的完整轨迹。相反,驾驶仿真中的仿真车辆和/或任何其他智能代理可以由规划组件控制,而不是完全基于日志数据。因此,针对仿真车辆和智能代理的轨迹在执行仿真之前可能是未知的,并且代理交互监视器542可以包括跟踪和监视仿真中的每个智能代理的位置、姿态、速度、加速度和偏航的功能,以确定当前和预测的轨迹。
在操作704处,仿真系统532可以确定在驾驶仿真内在回放代理和非回放代理之间的交互。在一些示例中,代理交互监视器542可以基于确定与驾驶仿真中的代理相关联的位置、轨迹、大小和/或空间区域来确定回放代理和非回放代理(例如,智能代理或者仿真车辆)之间的交互,并使用大小和/或空间区域以及代理轨迹来确定代理之间交互的概率或者可能性。在某些情况下,代理交互监视器542可以确定与仿真中的每个回放代理和非回放代理相关联的边界框的集合,其中边界框可以基于代理的维度和定向。在某些情况下,边界框可以包括附加的安全缓冲区,其可以基于代理类型、速度、脆弱性和/或各种其他代理属性。
在一些示例中,仿真系统532可以比较与驾驶仿真中的回放代理和非回放代理相关联的边界框的集合,并且在每个时间间隔处可以确定是否存在任何重叠。当在仿真中的特定时间处,针对回放代理的边界框和针对不同的非回放代理的边界框之间存在重叠时,代理交互监视器542可以确定代理之间存在交互。
在操作706处,仿真系统532可以确定与回放代理(例如,智能代理或者仿真车辆)交互的代理是否是具有满足或者超过偏离距离阈值的偏离距离的偏离代理。在一些示例中,代理交互监视器542可以基于在操作704中确定的交互的时间处的非回放代理与在日志数据内在相同相对时间处的对应代理的位置之间的位置差异,来确定非回放代理的偏离距离。代理交互监视器542然后可以将非回放代理的偏离距离与偏离距离阈值进行比较。当非回放代理的偏离距离未满足或者未超过偏离距离阈值时(706:否),过程700返回到操作702以继续监视驾驶仿真内的代理。然而,如果与智能代理或者仿真车辆相关联的偏离距离满足或者超过偏离距离阈值(706:是),则在操作708处,仿真系统532可以将回放代理转换为智能代理。
如上所述,在某些情况下,偏离距离阈值可以被设置为零,在这种情况下不需要执行操作706。然而,在其他情况下,偏离距离阈值可以是非零值,例如,0.1米、0.2米、0.3米、……、1米等。在一些示例中,偏差距离阈值的值可以是可配置的,并且可以向上或者向下调整以在仿真期间产生不同数量和不同时序的回放代理转换。
另外地,虽然该示例使用偏离距离来确定是否将回放代理转换为智能代理,但是在其他示例中,仿真系统532可以使用针对非回放代理的偏航偏离值,其可以与偏航偏离阈值进行比较。在各种其他示例中,代理交互监视器542可以应用针对代理的距离、偏航和/或其他属性(例如,速度、轨迹等)的偏离阈值。这样的阈值可以是预先确定的值,或者代理交互监视器542可以基于回放代理的类型、非回放代理的类型、代理中的一个或者两者的速度等来确定和应用不同的偏离阈值。
在操作708处,基于回放代理在仿真期间已经与偏离的非回放代理交互(或者将要交互)的确定,仿真系统532可以将回放代理转换为智能代理。在一些示例中,代理转换器544可以通过执行和/或配置规划组件546来将回放代理转换为智能代理,以在驾驶仿真的持续时间内控制智能代理的导航和/或驾驶决策行为。如上面参考过程600所讨论的,在某些情况下,可以基于针对特定智能代理确定的一个或多个规划组件参数来实例化、执行和/或配置规划组件546,其可以控制智能代理的导航和/或驾驶决策行为,以更准确地反映回放代理的驾驶风格和/或驾驶员个性。
在操作710处,仿真系统532可以继续执行驾驶仿真,同时确定仿真是否完成。仿真的完成对应于仿真的结束,和/或对应于在仿真执行期间确定仿真车辆的执行与预先确定的结果一致,或者确定仿真车辆的执行与预先确定的结果不一致,并且因此,操作仿真车辆的车辆控制器要么通过了仿真,要么未通过仿真。当基于日志的仿真正在进行并且尚未完成时(710:否),过程700可以返回到操作702以继续监视仿真并且根据需要执行附加的回放代理到智能代理的转换。然而,当仿真完成时(710:是),则在操作712处,仿真系统532可以终止该仿真过程并且输出或者存储用于操作仿真车辆的车辆控制器的仿真结果。如上所述,仿真结果可以识别驾驶仿真期间仿真车辆的行为和/或性能,其可以对应于被评估的车辆控制器的行为和/或性能。
过程600和700各自被示为逻辑流程图中的框的集合,其表示操作的序列,其中一些或者全部可以以硬件、软件或者其组合来实现。在软件的上下文中,框表示存储在一个或多个计算机可读介质上的计算机可执行指令,该计算机可执行指令当由一个或多个处理器执行时,执行所引述的操作。总体上,计算机可执行指令包括执行特定功能或者实现特定抽象数据类型的例程、程序、对象、组件、加密、解密、压缩、记录、数据结构等。描述操作的次序不应被解释为限制。任何数量的所描述的框可以以任何次序和/或并行地组合以实现该过程或者替代过程,并且不是所有的框都需要被执行。出于讨论的目的,参考本文示例中描述的框架、架构和环境来描述本文的过程,尽管这些过程可以在各种各样的其他框架、架构或环境中被实现。
示例条款
A.一种系统,包括:一个或多个处理器;以及存储计算机可执行指令的一个或多个计算机可读介质,该计算机可执行指令当被执行时,使得一个或多个处理器执行包括以下各项的操作:执行包括由自主车辆控制器控制的仿真自主车辆的驾驶仿真,其中,该驾驶仿真至少部分地基于与穿越环境的车辆相关联的日志数据,其中,该日志数据包括与环境中的第一对象相关联的第一日志数据和与环境中的第二对象相关联的第二日志数据;在驾驶仿真的第一时间段期间,至少部分地基于第一日志数据控制第一仿真对象,并且至少部分地基于第二日志数据控制第二仿真对象;确定在驾驶仿真中在仿真自主车辆与第一仿真对象之间的第一交互;至少部分地基于确定第一交互,在驾驶仿真中在第一时间段之后的第二时间段期间,使用第一规划组件控制第一仿真对象;确定在驾驶仿真中的第二时间段期间在第一仿真对象与第二仿真对象之间的第二交互;至少部分地基于确定第二交互,在驾驶仿真中在第二时间段之后的第三时间段期间,使用第二规划组件控制第二仿真对象;以及确定自主车辆控制器对驾驶仿真的响应。
B.段落A的系统,其中:在驾驶仿真中的第一时间段期间,至少部分地基于规划组件来控制仿真自主车辆,并且基于日志数据来控制第一仿真对象和第二仿真对象,以分别对应于环境中的第一对象和环境中的第二对象;在驾驶仿真中的第二时间段期间,至少部分地基于规划组件来控制仿真自主车辆和第一仿真对象,并且基于日志数据来控制第二仿真对象以对应于环境中的第二对象;以及在驾驶仿真中的第三时间段期间,至少部分地基于规划组件来控制仿真自主车辆、第一仿真对象和第二仿真对象。
C.段落A的系统,该操作还包括:确定仿真自主车辆在与第一交互相关联的时间处的偏离距离,其中,偏离距离基于在日志数据内的车辆的位置与驾驶仿真期间的仿真自主车辆的对应位置之间的距离,其中,使用第一规划组件来控制第一仿真对象是至少部分地基于偏离距离的。
D.段落A的系统,该操作还包括:至少部分地基于第一日志数据来确定与第一对象相关联的驾驶属性,其中,使用第一规划组件来控制第一仿真对象是至少部分地基于驾驶属性的。
E.段落A的系统,该操作还包括:在驾驶仿真期间至少部分地基于与环境中的第三对象相关联的第三日志数据来控制第三仿真对象;以及确定在驾驶仿真中在仿真自主车辆与第三仿真对象之间的第三交互,其包括确定仿真自主车辆在与第三交互相关联的时间处的位置和在第三日志数据中的第三对象的对应位置之间的距离,其中,在确定第三交互之后控制第三仿真对象是至少部分地基于对应于环境中的第三对象的第三日志数据的。
F.一种方法,包括:执行驾驶仿真,其中,驾驶仿真至少部分地基于与环境中的车辆相关联的日志数据,其中,日志数据包括与该环境中的第一对象相关联的第一日志数据;在第一时间段期间控制第一仿真对象,以与环境内的第一对象相对应;确定在驾驶仿真中在第一仿真对象和第二仿真对象之间的交互;以及在驾驶仿真中在第一时间段之后的第二时间段期间使用规划组件来控制第一仿真对象,其中,使用规划组件控制第一仿真对象是至少部分地基于确定交互的。
G.段落F的方法,其中,日志数据包括与环境中的第二对象相关联的第二日志数据,并且其中,该方法还包括:确定第二日志数据中的第二对象的位置与驾驶仿真中的第二仿真对象的对应的位置之间的距离;以及至少部分地基于确定距离满足或者超过阈值距离来启动规划组件以控制第一仿真对象。
H.段落F的方法,还包括:确定与第一仿真对象相关联的驾驶属性;确定针对第一仿真对象的目的地;以及向规划组件提供与驾驶属性相关联的第一参数和与目的地相关联的第二参数,其中,规划组件被配置为在驾驶仿真期间至少部分地基于第一参数和第二参数来控制第一仿真对象。
I.段落H的方法,其中,与第一仿真对象相关联的驾驶属性以及与第一仿真对象相关联的目的地是至少部分地基于第一日志数据确定的。
J.段落F的方法,还包括:在驾驶仿真中的第二时间段期间,至少部分地基于日志数据控制第三仿真对象;确定在驾驶仿真中在第一仿真对象和第三仿真对象之间的第二交互;以及在驾驶仿真中在第二时间段之后的第三时间段期间使用规划组件控制第三仿真对象,其中,使用规划组件控制第三仿真对象是至少部分地基于确定第二交互的。
K.段落F的方法,还包括:在驾驶仿真中的第二时间段期间,至少部分地基于日志数据来控制第三仿真对象;以及确定在驾驶仿真中在第一仿真对象和第三仿真对象之间的第二交互,其中,在确定第二交互之后来控制第三仿真对象是基于日志数据的。
L.段落F的方法,其中,确定交互包括:在驾驶仿真期间的一时间处,基于与第一仿真对象相关联的第一路径确定第一边界框;在驾驶仿真期间的该一时间处,基于与第二仿真对象相关联的第二路径确定第二边界框;以及确定第一边界框和第二边界框之间的重叠。
M.段落F的方法,其中,第一仿真对象包括仿真自行车或者仿真行人中的至少一个。
N.一个或多个非暂时性计算机可读介质,其存储可由处理器执行的指令,其中,指令在被执行时使处理器执行包括以下各项的操作:执行驾驶仿真,其中,驾驶仿真至少部分地基于与环境中的车辆相关联的日志数据,其中,日志数据包括与环境中的第一对象相关联的第一日志数据;在第一时间段期间控制第一仿真对象,以与环境内的第一对象相对应;确定在驾驶仿真中在第一仿真对象和第二仿真对象之间的交互;以及在驾驶仿真中在第一时间段之后的第二时间段期间使用规划组件控制第一仿真对象,其中,使用规划组件控制第一仿真对象是至少部分地基于确定交互的。
O.段落N的一个或多个非暂时性计算机可读介质,其中,日志数据包括与环境中的第二对象相关联的第二日志数据,并且其中,操作还包括:确定第二日志数据中的第二对象的位置与驾驶仿真中的第二仿真对象的对应位置之间的距离;以及至少部分地基于确定距离满足或者超过阈值距离来启动规划组件以控制第一仿真对象。
P.段落N的一个或多个非暂时性计算机可读介质,操作还包括:确定与第一仿真对象相关联的驾驶属性;确定针对第一仿真对象的目的地;以及向规划组件提供与驾驶属性相关联的第一参数和与目的地相关联的第二参数,其中,规划组件被配置为在驾驶仿真期间至少部分地基于第一参数和第二参数来控制第一仿真对象。
Q.段落P的一个或多个非暂时性计算机可读介质,其中,与第一仿真对象相关联的驾驶属性以及与第一仿真对象相关联的目的地是至少部分地基于第一日志数据确定的。
R.段落N的一个或多个非暂时性计算机可读介质,操作还包括:在驾驶仿真中的第二时间段期间至少部分地基于日志数据控制第三仿真对象;确定在驾驶仿真中在第一仿真对象和第三仿真对象之间的第二交互;以及在驾驶仿真中在第二时间段之后的第三时间段期间使用规划组件控制第三仿真对象,其中,使用规划组件控制第三仿真对象是至少部分地基于确定第二交互的。
S.段落N的一个或多个非暂时性计算机可读介质,操作还包括:在驾驶仿真中的第二时间段期间至少部分地基于日志数据控制第三仿真对象;以及确定在驾驶仿真中在第一仿真对象和第三仿真对象之间的第二交互,其中,在确定第二交互之后控制第三仿真对象是基于日志数据的。
T.段落N的一个或多个非暂时性计算机可读介质,其中,确定交互包括:在驾驶仿真期间的一时间处,基于与第一仿真对象相关联的第一路径确定第一边界框;在驾驶仿真期间的该一时间处,基于与第二仿真对象相关联的第二路径确定第二边界框;以及确定第一边界框和第二边界框之间的重叠。
U.一种系统,包括:一个或多个处理器;以及存储计算机可执行指令的一个或多个计算机可读介质,该计算机可执行指令当被执行时,使得一个或多个处理器执行包括以下各项的操作:接收与环境相关联的日志数据,其中,该日志数据包括与环境中的对象相关联的第一日志数据;将对象分类为车辆;将车辆识别为第一车辆;至少部分地基于第一日志数据来确定与日志数据中的第一车辆而非另一车辆相关联的第一驾驶属性;执行驾驶仿真,该驾驶仿真包括对应于环境的仿真环境以及对应于第一车辆的第一仿真车辆,其中,第一仿真车辆由规划组件控制;使用规划组件至少部分地基于与第一车辆相关联的第一驾驶属性来确定第一仿真车辆的驾驶决策;以及在驾驶仿真期间至少部分地基于驾驶决策来控制第一仿真车辆。
V.段落U的系统,操作还包括:至少部分地基于日志数据内的第二日志数据来确定与环境中的第二车辆相关联的第二驾驶属性,其中,第二驾驶属性不同于第一驾驶属性;以及在驾驶仿真期间至少部分地基于第二驾驶属性来控制第二仿真车辆。
W.段落U的系统,其中,确定与第一车辆相关联的第一驾驶属性包括:基于日志数据确定与第一车辆的驾驶行为的第一实例相关联的第一值,以及与第一车辆的驾驶行为的第二实例相关联的第二值;以及至少部分地基于第一值和第二值来确定与第一驾驶属性相关联的分布,其中,确定第一仿真车辆的驾驶决策包括从分布中采样第三值。
X.段落U的系统,其中,第一车辆穿过环境的第一驾驶路径不同于由规划组件确定的针对第一仿真车辆穿过仿真环境的第二驾驶路径。
Y.段落U的系统,其中,确定第一仿真车辆的驾驶决策包括:至少部分地基于第一日志数据确定与第一车辆相关联的第一驾驶属性的第一值;确定与驾驶决策相关联的第二驾驶属性;确定与第一驾驶属性和第二驾驶属性之间的相关性相关联的加权值;以及至少部分地基于第一驾驶属性的第一值和加权值来确定第二驾驶属性的第二值。
Z.一种方法,包括:接收与环境相关联的日志数据,其中,该日志数据包括与环境中的第一对象相关联的第一日志数据;至少部分地基于第一日志数据来确定与第一对象相关联的行为属性;执行包括由规划组件控制的第一仿真对象的仿真;以及使用规划组件在仿真期间确定第一仿真对象的决策,其中,该决策至少部分地基于与第一对象相关联的行为属性。
AA.段落Z的方法,还包括:至少部分地基于日志数据内的第二日志数据来确定与环境中的第二对象相关联的第二行为属性,其中,第二行为属性与行为属性不同;以及在仿真期间至少部分地基于第二行为属性来控制第二仿真对象。
AB.段落AA的方法,其中,第一仿真对象是仿真内的仿真机动车,并且第二仿真对象是仿真内的行人对象或者非机动车对象中的至少一个。
AC.段落Z的方法,其中,确定与第一对象相关联的行为属性包括:基于日志数据确定与第一对象的行为的第一实例相关联的第一值,以及与第一对象的行为的第二实例相关联的第二值;以及聚合第一值和第二值以确定与第一对象的行为属性相关联的值。
AD.段落Z的方法,还包括:基于日志数据确定与第一对象相关联的在环境中的目的地;以及基于日志数据确定仿真内的第一仿真对象的仿真目的地,其中,确定第一仿真对象的决策是至少部分地基于仿真目的地的。
AE.段落Z的方法,还包括:确定与环境中的第二对象相关联的第二日志数据,其中,第一对象和第二对象具有相同的对象分类;以及至少部分地基于第二日志数据来确定与第二对象相关联的第二行为属性,其中,确定第一仿真对象的决策是至少部分地基于与第二对象相关联的第二行为属性的。
AF.段落Z的方法,还包括:至少部分地基于第一日志数据来确定第一对象穿过环境的第一路径;以及由规划组件确定针对第一仿真对象穿过仿真的仿真环境的第二路径,其中,第一对象的第一路径不同于由规划组件确定的针对第一仿真对象的第二路径。
AG.段落Z的方法,其中,确定第一仿真对象的决策包括:至少部分地基于第一日志数据来确定与第一对象相关联的行为属性的第一值;确定与行为属性和第二行为属性之间的相关性相关联的加权值;至少部分地基于行为属性的第一值和加权值来确定第二行为属性的第二值;以及至少部分地基于第二行为属性的第二值来确定决策。
AH.一个或多个非暂时性计算机可读介质,其存储可由处理器执行的指令,其中,所述指令在被执行时使得处理器执行包括以下各项的操作:接收与环境相关联的日志数据,其中,该日志数据包括与环境中的第一对象相关联的第一日志数据;至少部分地基于第一日志数据来确定与第一对象相关联的行为属性;执行包括由规划组件控制的第一仿真对象的仿真;以及使用规划组件在仿真期间确定第一仿真对象的决策,其中,该决策至少部分地基于与第一对象相关联的行为属性。
AI.段落AH的一个或多个非暂时性计算机可读介质,操作还包括:至少部分地基于日志数据内的第二日志数据来确定与环境中的第二对象相关联的第二行为属性,其中,第二行为属性与行为属性不同;以及在仿真期间至少部分地基于第二行为属性来控制第二仿真对象。
AJ.段落AH的一个或多个非暂时性计算机可读介质,其中,确定与第一对象相关联的行为属性包括:基于日志数据确定与第一对象的行为的第一实例相关联的第一值,以及与第一对象的行为的第二实例相关联的第二值;以及聚合第一值和第二值以确定与第一对象的行为属性相关联的值。
AK.段落AH的一个或多个非暂时性计算机可读介质,该操作还包括:基于日志数据确定与第一对象相关联的在环境中的目的地;以及基于日志数据确定仿真内第一仿真对象的仿真目的地,其中,确定第一仿真对象的决策是至少部分地基于仿真目的地的。
AL.段落AH的一个或多个非暂时性计算机可读介质,该操作还包括:确定与环境中的第二对象相关联的第二日志数据,其中,第一对象和第二对象具有相同的对象分类;以及至少部分地基于第二日志数据来确定与第二对象相关联的第二行为属性,其中,确定第一仿真对象的决策是至少部分地基于与第二对象相关联的第二行为属性的。
AM.段落AH的一个或多个非暂时性计算机可读介质,该操作还包括:至少部分地基于第一日志数据来确定第一对象穿过环境的第一路径;以及由规划组件确定针对第一仿真对象穿过仿真的仿真环境的第二路径,其中,第一对象的第一路径不同于由规划组件确定的针对第一仿真对象的第二路径。
AN.段落AH的一个或多个非暂时性计算机可读介质,其中,确定第一仿真对象的决策包括:至少部分地基于第一日志数据来确定与第一对象相关联的行为属性的第一值;确定与行为属性和第二行为属性之间的相关性相关联的加权值;至少部分地基于行为属性的第一值和加权值来确定第二行为属性的第二值;以及至少部分地基于第二行为属性的第二值来确定决策。
虽然上面描述的示例条款是相对于特定实现来描述的,但是应当理解,在本文档的上下文中,示例条款的内容可以经由方法、设备、系统、计算机可读介质和/或另一实现方式来实现。另外地,示例A-AN中的任何一个示例可以单独被实现或者与示例A-AN中的任何其他一个或多个组合实现。
结论
虽然已经描述了本文描述的技术的一个或多个示例,但是其各种改变、添加、排列及其等同物包括在本文描述的技术的范围内。
在示例的描述中,参考了形成其一部分的附图,附图通过说明的方式示出了所要求保护的主题的具体示例。应当理解,可以使用其他示例并且可以进行改变或者更改,例如,结构改变。这样的示例、改变或更改不一定偏离旨在要求保护的主题的范围。虽然本文中的步骤可以按特定次序呈现,但在某些情况下,可以改变次序,使得在不同时间或以不同次序提供特定输入,而不改变所描述的系统和方法的功能。所公开的过程也可以以不同的次序被执行。另外地,本文中的各种计算不需要按照所公开的次序来执行,并且可以容易地实现使用计算的替代的次序的其他示例。除了重新排序之外,计算还可以被分解为具有相同结果的子计算。
尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,在所附权利要求中限定的主题不一定限于所描述的特定特征或者动作。而是,具体的特征和动作被公开为实现权利要求的示例形式。
本文描述的组件表示可以存储在任何类型的计算机可读介质中并且可以以软件和/或硬件实现的指令。上述所有方法和过程可以体现在由一个或多个计算机或者处理器、硬件或其某种组合执行的软件代码模块和/或计算机可执行指令中,并且经由其完全自动化。方法中的一些或者所有可以可替代地体现在专门的计算机硬件中。
除非另有明确说明,否则诸如“可以”、“能够”、“可以”或者“可能”以及其他之类的条件性语言在上下文中被理解为表示某些示例包括,而其他示例不包括某些特征、元素和/或步骤。因此,这样的条件性语言总体上不旨在暗示某些特征、元素和/或步骤以任何方式对于一个或多个示例是所要求的、或者一个或多个示例必须包括用于在有或者没有用户输入或者提示的情况下做出决定的逻辑、在任何特定示例中是否包括或将要执行某些特征、元素和/或步骤。
除非另有明确说明,否则诸如短语“X,Y或者Z中的至少一个”之类的连词语言应理解为表示项目、术语等可以是X,Y,或者Z,或者其任何组合,包括每个元素的多个。除非明确描述为单数,否则“一”表示单数和复数。
在本文描述和/或在附图中描绘的流程图中的任何例程描述、元素或者框应被理解为潜在地表示模块、段或者代码部分,其包括用于实现例程中的特定逻辑功能或者元素的一个或多个计算机可执行指令。替代实现方式包括在本文描述的示例的范围内,其中元素或功能可以被删除,或者以与所示出的或讨论的次序不同的次序执行,包括实质上同步地执行、以相反的次序执行、具有附加的操作或者省略操作,这取决于本领域技术人员将理解的所涉及的功能。
可以对上述示例进行许多变化和修改,其中的元素将被理解为在其他可接受的示例中。所有这样的修改和变化都旨在包括在本公开的范围内并且受所附权利要求保护。
Claims (15)
1.一种系统,包括:
一个或多个处理器;以及
存储计算机可执行指令的一个或多个计算机可读介质,所述计算机可执行指令当被执行时,使所述一个或多个处理器执行包括以下各项的操作:
执行驾驶仿真,其中,所述驾驶仿真至少部分地基于与环境中的车辆相关联的日志数据,其中,所述日志数据包括与所述环境中的第一对象相关联的第一日志数据;
在第一时间段期间控制第一仿真对象,以与所述环境内的所述第一对象相对应;
确定在所述驾驶仿真中在所述第一仿真对象和第二仿真对象之间的交互;以及
在所述驾驶仿真中在所述第一时间段之后的第二时间段期间使用规划组件控制所述第一仿真对象,其中,使用所述规划组件控制所述第一仿真对象是至少部分地基于确定所述交互的。
2.根据权利要求1所述的系统,其中,所述日志数据包括与所述环境中的第二对象相关联的第二日志数据,并且其中,所述方法还包括:
确定所述第二日志数据中的所述第二对象的位置与所述驾驶仿真中的所述第二仿真对象的对应的位置之间的距离;以及
至少部分地基于确定所述距离满足或者超过阈值距离来启动所述规划组件以控制所述第一仿真对象。
3.根据权利要求1或2所述的系统,所述操作还包括:
确定与所述第一仿真对象相关联的驾驶属性;
确定针对所述第一仿真对象的目的地;以及
向所述规划组件提供与所述驾驶属性相关联的第一参数和与所述目的地相关联的第二参数,其中,所述规划组件被配置为在所述驾驶仿真期间至少部分地基于所述第一参数和所述第二参数来控制所述第一仿真对象。
4.根据权利要求3所述的系统,其中,与所述第一仿真对象相关联的所述驾驶属性以及与所述第一仿真对象相关联的所述目的地是至少部分地基于所述第一日志数据确定的。
5.根据权利要求1至4中任一项所述的系统,所述操作还包括:
在所述驾驶仿真中的所述第二时间段期间,至少部分地基于所述日志数据控制第三仿真对象;
确定在所述驾驶仿真中在所述第一仿真对象和所述第三仿真对象之间的第二交互;以及
在所述驾驶仿真中在所述第二时间段之后的第三时间段期间使用所述规划组件控制所述第三仿真对象,其中,使用所述规划组件控制所述第三仿真对象是至少部分地基于确定所述第二交互的。
6.根据权利要求1至4中任一项所述的系统,所述操作还包括:
在所述驾驶仿真中的所述第二时间段期间,至少部分地基于所述日志数据控制第三仿真对象;以及
确定在所述驾驶仿真中在所述第一仿真对象和所述第三仿真对象之间的第二交互,
其中,在确定所述第二交互之后控制所述第三仿真对象是基于所述日志数据的。
7.根据权利要求1至6中任一项所述的系统,其中,确定所述交互包括:
在所述驾驶仿真期间的一时间处,基于与所述第一仿真对象相关联的第一路径确定第一边界框;
在所述驾驶仿真期间的所述一时间处,基于与所述第二仿真对象相关联的第二路径确定第二边界框;以及
确定所述第一边界框和所述第二边界框之间的重叠。
8.一种方法,包括:
执行驾驶仿真,其中,所述驾驶仿真至少部分地基于与环境中的车辆相关联的日志数据,其中,所述日志数据包括与所述环境中的第一对象相关联的第一日志数据;
在第一时间段期间控制第一仿真对象,以与所述环境内的所述第一对象相对应;
确定在所述驾驶仿真中在所述第一仿真对象和第二仿真对象之间的交互;以及
在所述驾驶仿真中在所述第一时间段之后的第二时间段期间使用规划组件控制所述第一仿真对象,其中,使用所述规划组件控制所述第一仿真对象是至少部分地基于确定所述交互的。
9.根据权利要求8所述的方法,其中,所述日志数据包括与所述环境中的第二对象相关联的第二日志数据,并且其中,所述方法还包括:
确定所述第二日志数据中的所述第二对象的位置与所述驾驶仿真中的所述第二仿真对象的对应的位置之间的距离;以及
至少部分地基于确定所述距离满足或者超过阈值距离来启动所述规划组件以控制所述第一仿真对象。
10.根据权利要求8或9所述的方法,还包括:
确定与所述第一仿真对象相关联的驾驶属性;
确定针对所述第一仿真对象的目的地;以及
向所述规划组件提供与所述驾驶属性相关联的第一参数和与所述目的地相关联的第二参数,其中,所述规划组件被配置为在所述驾驶仿真期间至少部分地基于所述第一参数和所述第二参数来控制所述第一仿真对象。
11.根据权利要求10所述的方法,其中,与所述第一仿真对象相关联的所述驾驶属性以及与所述第一仿真对象相关联的所述目的地是至少部分地基于所述第一日志数据确定的。
12.根据权利要求8至11中任一项所述的方法,还包括:
在所述驾驶仿真中的所述第二时间段期间,至少部分地基于所述日志数据控制第三仿真对象;
确定在所述驾驶仿真中在所述第一仿真对象和所述第三仿真对象之间的第二交互;以及
在所述驾驶仿真中在所述第二时间段之后的第三时间段期间使用所述规划组件控制所述第三仿真对象,其中,使用所述规划组件控制所述第三仿真对象是至少部分地基于确定所述第二交互的。
13.根据权利要求8至11中任一项所述的方法,还包括:
在所述驾驶仿真中的所述第二时间段期间,至少部分地基于所述日志数据控制第三仿真对象;以及
确定在所述驾驶仿真中在所述第一仿真对象和所述第三仿真对象之间的第二交互,
其中,在确定所述第二交互之后控制所述第三仿真对象是基于所述日志数据的。
14.根据权利要求8至13中任一项所述的方法,其中,确定所述交互包括:
在所述驾驶仿真期间的一时间处,基于与所述第一仿真对象相关联的第一路径确定第一边界框;
在所述驾驶仿真期间的所述一时间处,基于与所述第二仿真对象相关联的第二路径确定第二边界框;以及
确定所述第一边界框和所述第二边界框之间的重叠。
15.一种存储处理器可执行指令的一个或多个非暂时性计算机可读介质,所述处理器可执行指令当由一个或多个处理器执行时,使所述一个或多个处理器执行根据权利要求8-14中任一项所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/184,169 | 2021-02-24 | ||
US17/184,128 US12061847B2 (en) | 2021-02-24 | 2021-02-24 | Agent conversions in driving simulations |
US17/184,128 | 2021-02-24 | ||
PCT/US2022/016746 WO2022182561A1 (en) | 2021-02-24 | 2022-02-17 | Agent conversions in driving simulations |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116917827A true CN116917827A (zh) | 2023-10-20 |
Family
ID=82900761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280016650.8A Pending CN116917827A (zh) | 2021-02-24 | 2022-02-17 | 驾驶仿真中的代理转换 |
Country Status (2)
Country | Link |
---|---|
US (1) | US12061847B2 (zh) |
CN (1) | CN116917827A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7552449B2 (ja) * | 2021-03-11 | 2024-09-18 | トヨタ自動車株式会社 | 交差点管制システム、交差点管制方法、及び、プログラム |
US11834070B2 (en) * | 2021-07-08 | 2023-12-05 | Waymo Llc | Probabilistic simulation sampling from agent data |
US12084088B2 (en) * | 2021-07-29 | 2024-09-10 | Waymo Llc | Pedestrian intent yielding |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2377658C1 (ru) | 2008-11-14 | 2009-12-27 | Андрей Валентинович Сабайдаш | Способ определения оптимального маршрута движения транспортного средства |
US9836895B1 (en) | 2015-06-19 | 2017-12-05 | Waymo Llc | Simulating virtual objects |
US20180157770A1 (en) * | 2016-12-05 | 2018-06-07 | Toyota Jidosha Kabushiki Kaisha | Geometric proximity-based logging for vehicle simulation application |
US20180267538A1 (en) * | 2017-03-15 | 2018-09-20 | Toyota Jidosha Kabushiki Kaisha | Log-Based Vehicle Control System Verification |
US10831202B1 (en) | 2017-09-01 | 2020-11-10 | Zoox, Inc. | Onboard use of scenario description language |
US10755007B2 (en) * | 2018-05-17 | 2020-08-25 | Toyota Jidosha Kabushiki Kaisha | Mixed reality simulation system for testing vehicle control system designs |
US10713148B2 (en) * | 2018-08-07 | 2020-07-14 | Waymo Llc | Using divergence to conduct log-based simulations |
US10795804B1 (en) | 2018-08-21 | 2020-10-06 | Waymo Llc | Collision evaluation for log-based simulations |
US20200249674A1 (en) | 2019-02-05 | 2020-08-06 | Nvidia Corporation | Combined prediction and path planning for autonomous objects using neural networks |
US11465626B2 (en) * | 2019-02-06 | 2022-10-11 | Toyota Jidosha Kabushiki Kaisha | Virtualized driver assistance |
US11565709B1 (en) * | 2019-08-29 | 2023-01-31 | Zoox, Inc. | Vehicle controller simulations |
US20200130709A1 (en) | 2019-12-24 | 2020-04-30 | Intel Corporation | Method and device for determining a configuration for an autonomous vehicle |
US20220204009A1 (en) * | 2020-12-29 | 2022-06-30 | Waymo Llc | Simulations of sensor behavior in an autonomous vehicle |
-
2021
- 2021-02-24 US US17/184,128 patent/US12061847B2/en active Active
-
2022
- 2022-02-17 CN CN202280016650.8A patent/CN116917827A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US12061847B2 (en) | 2024-08-13 |
US20220269836A1 (en) | 2022-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11574089B2 (en) | Synthetic scenario generator based on attributes | |
US11150660B1 (en) | Scenario editor and simulator | |
US11568100B2 (en) | Synthetic scenario simulator based on events | |
CN112204634B (zh) | 驱动包络确定 | |
US12097844B2 (en) | Constraining vehicle operation based on uncertainty in perception and/or prediction | |
CN112789481B (zh) | 对自上而下场景的轨迹预测 | |
CN112839853B (zh) | 响应式车辆控制 | |
JP2022539245A (ja) | アクションデータに基づくトップダウンシーンの予測 | |
US11526721B1 (en) | Synthetic scenario generator using distance-biased confidences for sensor data | |
KR20190013689A (ko) | 자율 주행 차량 교통 예측에서 예측되는 궤적에 대한 평가 프레임 워크 | |
US11415997B1 (en) | Autonomous driving simulations based on virtual simulation log data | |
US20220266859A1 (en) | Simulated agents based on driving log data | |
US12061847B2 (en) | Agent conversions in driving simulations | |
WO2021225861A1 (en) | System for generating generalized simulation scenarios | |
JP2023547988A (ja) | 衝突回避計画システム | |
US20230150549A1 (en) | Hybrid log simulated driving | |
CN114430722A (zh) | 安全分析框架 | |
US11767030B1 (en) | Scenario simulation execution within a truncated parameter space | |
WO2020264276A1 (en) | Synthetic scenario generator based on attributes | |
WO2023076343A1 (en) | Autonomous vehicle trajectory determination based on state transition model | |
WO2024006115A1 (en) | Determining right of way | |
CN116917828A (zh) | 基于日志数据在仿真环境中实例化对象 | |
WO2024137822A1 (en) | Predictive models for autonomous vehicles based on object interactions | |
CN114787894A (zh) | 感知误差模型 | |
US11814070B1 (en) | Simulated driving error models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |