CN116917828A - 基于日志数据在仿真环境中实例化对象 - Google Patents
基于日志数据在仿真环境中实例化对象 Download PDFInfo
- Publication number
- CN116917828A CN116917828A CN202280018815.5A CN202280018815A CN116917828A CN 116917828 A CN116917828 A CN 116917828A CN 202280018815 A CN202280018815 A CN 202280018815A CN 116917828 A CN116917828 A CN 116917828A
- Authority
- CN
- China
- Prior art keywords
- vehicle
- environment
- simulated
- simulation
- location
- 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 304
- 238000000034 method Methods 0.000 claims abstract description 97
- 238000012360 testing method Methods 0.000 claims abstract description 26
- 230000003068 static effect Effects 0.000 claims description 25
- 230000008447 perception Effects 0.000 description 27
- 230000015654 memory Effects 0.000 description 22
- 238000004891 communication Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 6
- 230000001953 sensory effect Effects 0.000 description 6
- 241001465754 Metazoa Species 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 241000237519 Bivalvia Species 0.000 description 1
- UFHFLCQGNIYNRP-UHFFFAOYSA-N Hydrogen Chemical compound [H][H] UFHFLCQGNIYNRP-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 235000020639 clam Nutrition 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 229910052739 hydrogen Inorganic materials 0.000 description 1
- 239000001257 hydrogen Substances 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000004044 response Effects 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
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01M—TESTING STATIC OR DYNAMIC BALANCE OF MACHINES OR STRUCTURES; TESTING OF STRUCTURES OR APPARATUS, NOT OTHERWISE PROVIDED FOR
- G01M17/00—Testing of vehicles
- G01M17/007—Wheeled or endless-tracked vehicles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- 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/0011—Planning or execution of driving tasks involving control alternatives for a single driving scenario, e.g. planning several paths to avoid obstacles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- 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
-
- 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
-
- 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
- B60W2556/00—Input parameters relating to data
- B60W2556/10—Historical data
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Automation & Control Theory (AREA)
- Evolutionary Computation (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Traffic Control Systems (AREA)
- Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
Abstract
在本文中公开了基于日志数据在仿真环境中实例化对象的技术。其中一些技术可以包括接收表示真实世界车辆操作所处的环境的日志数据。使用日志数据,可以生成用于测试仿真车辆的仿真环境。仿真环境可以表示真实世界车辆操作所处的环境。该技术可以进一步包括在仿真车辆穿越仿真环境时确定该仿真车辆的地点。至少部分基于日志数据,可以确定真实世界车辆在环境中的先前地点,该先前地点最接近仿真车辆在仿真环境中的地点。这样,可以更新仿真环境以包括仿真对象,该仿真对象表示由车辆从先前地点感知到的环境中的对象。
Description
相关申请的交叉引用
本专利申请要求2021年3月5日提交的美国实用专利申请序列号17/193,826的优先权,该美国实用专利申请通过引用完全并入本文。
背景技术
仿真数据和仿真可以用于测试和验证车辆系统的功能,在其他情况下,该功能可能无法在真实世界中进行测试(例如,出于安全考虑、时间限制、可重复性等)。然而,创建既能准确反映真实世界场景又能验证车辆系统的功能的仿真是一项艰巨的挑战。例如,当仿真是基于由先前在真实世界中操作的车辆采集的数据时,经历仿真的受测车辆系统的反应可能与采集该数据的真实世界车辆不同。这就很难验证受测车辆系统是准确的。
附图说明
具体实施方式参照附图来描述。在附图中,附图标记最左边的数字表示该附图标记在其中首次出现的附图。在不同的附图中使用相同的附图标记指示相似或相同的部件或特征。
图1是图解流程图,展示示例数据流,在该示例数据流中,车辆生成与环境相关联的日志数据,并将日志数据传输到计算设备,该计算设备确定车辆的地点与在不同时刻由车辆采集的对象数据之间的关联。
图2展示示例环境,在该示例环境中,车辆在不同时刻感知到环境中的不同对象和不同对象的不同视角。
图3展示至少部分由车辆感知系统执行的示例数据转换。
图4是图解流程图,展示示例流程,在该示例流程中,对象基于仿真车辆相对于真实世界车辆的各种先前地点的不同地点而在仿真环境中被实例化。
图5是图解流程图,展示基于仿真车辆在仿真环境中保持静止而避免更新仿真环境的示例流程。
图6是方框图,展示用于实施在本文中描述的各种技术的示例系统。
图7是流程图,展示用于基于仿真车辆相对于真实世界车辆的先前地点的地点来更新仿真环境以包括对象的示例方法。
图8是流程图,展示用于基于仿真车辆相对于真实世界车辆的先前地点的地点来更新仿真环境以包括对象的另一个示例方法。
具体实施方式
基于日志数据在仿真环境中实例化对象的技术在本文中公开。如上所述,创建能准确地反映真实世界场景并验证车辆系统的功能的仿真是一项艰巨的挑战。例如,当仿真基于由在真实世界中操作的车辆采集的数据时,经历仿真的受测车辆系统的反应可能与采集该数据的真实世界车辆不同。这就很难验证受测车辆系统是否准确。例如,仿真的车辆的地点可能偏离生成日志的车辆的路径,但感知仍然基于正产生日志的车辆的地点。这种感知上的偏差可能降低仿真的准确性,甚至在偏差较大的情况下导致结果无效。
以用于测试和/或验证自动驾驶车辆控制器的仿真(例如,测试)环境为例。仿真环境可以基于由真实世界车辆采集的日志数据来生成。因此,仿真环境可以对应或以其他方式表示真实世界环境(例如,加利福尼亚州旧金山的Embarcadero公路)。因此,真实世界环境既可以包括长时间保持静止的静态对象(例如,建筑物、路灯、交通标志、长椅、停驻的车辆、树木、障碍物和栅栏等),也可以包括倾向于保持运动的动态对象(例如,行人、行驶中的车辆、骑自行车的人、建筑设备等)。因此,仿真环境可以包括静态对象和动态对象两者,以准确地反映真实世界环境。
然而,对于静态对象,在仿真环境中仿真这些对象可能会面临一些挑战。例如,尽管它们可以被归类为静态对象,但这些对象的外观可能随着时间而改变,如在车辆行驶时。作为另一个示例,在某些情况下,真实世界车辆的传感器系统可能会在一时间段中的某个时刻漏检静态对象。因此,车辆系统可能不会总是产生表示对应静态对象的恒定静态边界框输出。相反,表示静态对象的车辆系统输出可能会在给定时间段中发生改变、移动、出现、消失和/或类似情况。
此外,当真实世界车辆在整个环境中移动时,车辆的系统可能仅限于看到/感知其视界(horizon)内的对象。例如,在车辆处于那些对象的范围中之前,车辆的系统可能无法提前感知这些对象。因此,表示真实世界环境中的真实世界车辆的仿真可以向仿真车辆提供仿真对象数据,以模拟真实世界车辆在真实世界车辆的对应地点和时间在真实世界中所感知到的。然而,当仿真车辆偏离真实世界车辆时(例如,由于仿真车辆控制器的自动驾驶控制器发生改变),可能很难通过使用真实世界车辆日志来呈现由仿真车辆感知到的准确对象数据。
因此,本公开描述了用于通过确定日志车辆与当前仿真车辆地点的最接近地点、并在仿真环境中实例化日志车辆将会在该时间和/或从该地点感知到的静态对象来改进基于车辆日志的仿真的技术。例如,该技术可以包括接收表示车辆(例如,日志车辆)操作所处的环境的日志数据,并基于日志数据来生成用于测试车辆控制器的仿真场景。在某些情况下,仿真场景可以包括表示车辆操作所处的环境的一部分的仿真环境。该技术还可以包括将仿真场景输入到车辆控制器中,从而使车辆控制器引起仿真车辆穿越仿真环境。在运行仿真时,可以确定仿真车辆在仿真环境中的地点。因此,基于确定仿真车辆的地点,日志数据可以被检查以确定车辆在环境中的先前地点,该先前地点最接近仿真车辆在仿真环境中的地点。因此,该技术可以进一步包括更新仿真环境以包括仿真对象,该仿真对象表示由车辆从先前地点感知到的环境中的对象。
在本文中讨论的技术可以提高用于测试和/或验证车辆控制器的仿真的准确性。例如,通过确定日志车辆到仿真车辆的当前地点的最接近先前地点、并在仿真环境中实例化日志车辆将会从该先前地点感知到的静态对象,可以真实地仿真静态对象的动态方面。此外,利用在本文中描述的技术允许静态对象的外观随时间发生改变,如当仿真车辆移动时(例如,以仿真在真实世界场景中,对象的外观如何基于视角的改变而发生改变)。附加地,在本文中描述的技术允许在日志车辆将会在真实世界中感知到静态对象的时候,在仿真环境中实例化该静态对象。这可以通过向车辆控制器提供与真实世界车辆会感知到的相对应的更准确的数据和/或对象来改进仿真测试,从而复制更接近现实的场景,在该场景中,日志车辆不包括仿真中的车辆的特定时间或位置的此类信息。对于本领域的普通技术人员来说,利用所公开的技术进行其他改进也是显而易见的。
作为示例而非限制,根据本文所公开的各种技术的方法可以包括接收表示车辆操作所处的环境的日志数据。在某些情况下,车辆可以包括自动驾驶车辆。附加地,日志数据可以与车辆在环境中操作的时间段相关联。在某些实施例中,日志数据可以由车辆的感知系统至少部分基于由车辆的一个或多个传感器捕捉到的传感器数据来生成。在至少一个实施例中,日志数据包括表示车辆和/或另外的车辆在多个时间段中操作所处的环境的日志数据的多个实例。在更进一步的实施例中,日志数据可以包括表示真实车辆的感知系统在不同时间点的输出的多个图像。也就是说,日志数据可以包括例如表示第一时间的第一感知系统输出的第一日志数据图像、表示第一时间之后的第二时间的第二感知系统输出的第二日志数据图像、表示第二时间之后的第三时间的第三感知系统输出的第三日志数据图像等。在某些情况下,每个或不同的日志数据图像可能包括不同的对象和/或当时由真实车辆感知到的对象的不同透视图。
在某些实施例中,该方法可以包括使用日志数据来生成用于测试车辆控制器的仿真场景。仿真场景可以包括表示环境的至少一部分的仿真环境。在某些情况下,车辆控制器可以包括自动驾驶车辆的控制器。在各种示例中,仿真场景可以被输入到车辆控制器中,这样车辆控制器使得仿真车辆穿越仿真环境。在至少一个实施例中,仿真场景、仿真环境、仿真对象和/或类似物可以以仿真指令的形式被输入到车辆控制器中。也就是说,仿真指令可以表示仿真场景、仿真环境、仿真对象和/或类似物。
在某些情况下,该方法可以包括确定仿真车辆在仿真环境中的地点。例如,可以基于仿真车辆在仿真环境内的位置来从仿真车辆接收地理定位数据,并至少部分基于地理定位数据来确定仿真车辆的地点。
在各实施例中,该方法可以附加地或备选地包括确定车辆在环境中的先前地点,该先前地点与仿真车辆在仿真环境中的地点相关联。在各种实施例中,确定先前地点可以包括确定车辆的最接近仿真车辆当前地点的先前地点。附加地或备选地,至少部分基于确定先前地点,可以从日志数据中确定车辆定位在先前地点的时刻。例如,日志数据可以包括车辆在环境中的各自先前地点(例如,地理定位数据)与当车辆被定位在这些各自先前地点相关联的相应时刻(例如,时间戳)之间的关联。
在各种实施例中,至少部分基于确定先前地点和/或时刻中的至少一个,可从日志数据中获取对象数据。对象数据可以表示环境中的由车辆从先前地点中和/或在该时刻感知到的一个或多个对象。作为示例而非限制,对于车辆在环境中操作期间的任何给定时刻,日志数据可以存储相应时间戳(例如,指示时刻)、相应地理定位数据(例如,指示车辆在该时刻的地点)和相应对象数据(例如,指示由车辆在该时刻从该地点中感知到的一个或多个对象)中的一个或多个。在某些情况下,环境中的该一个或多个对象可以包括静态对象和/或动态对象。例如,环境中的该一个或多个对象可以包括建筑物、结构、障碍物、栅栏、障碍物、车辆、行人、骑车人、长椅、路灯、交通标志、树木和/或类似物。
在某些实施例中,该方法可以进一步包括更新仿真环境以包括表示环境中的对象的仿真对象。也就是说,仿真对象可以在仿真环境内被实例化。附加地,仿真对象可以在仿真环境中被定位在与对象在真实世界环境中被定位的地点相对应的地点。在各种实施例中,更新仿真环境可以包括更新仿真环境以包括表示环境中的多个对象的多个仿真对象。
在附加或备选实施例中,可以通过向仿真车辆的车辆控制器提供不同的日志数据图像来更新仿真场景和/或仿真环境,该日志数据图像表示当真实车辆被定位在与仿真车辆在仿真环境中的仿真地点最接近地对应的真实环境中的真实地点时,真实车辆的感知系统输出。日志数据图像可以包括由真实车辆从真实环境中的真实地点感知到的一个或多个真实对象的仿真表示。这样,当仿真车辆在仿真环境中移动时,可以基于仿真车辆在仿真环境中的当前仿真地点来向仿真车辆的车辆控制器呈现不同的日志数据图像。同样,当仿真车辆在仿真环境中停止时,可以向车辆控制器重复呈现相同或类似的日志数据图像,以对车辆保持静止进行仿真。
在至少一个实施例中,该方法可以包括确定仿真车辆的地点已经改变。也就是说,该方法可以包括确定仿真自动驾驶车辆被定位在仿真环境中的不同于原始地点的第二地点。因此,可以确定车辆在环境中的第二先前地点,该第二先前地点与仿真车辆的第二地点相关联。在各种实施例中,确定第二先前地点可以包括确定车辆的最接近仿真车辆第二地点的第二先前地点。附加地或备选地,至少部分基于确定第二先前地点,可以从日志数据中确定第二时刻,车辆在该第二时刻被定位在第二先前地点。在某些情况下,至少部分基于确定第二先前地点和/或第二时刻中的至少一个,可以从日志数据中获取第二对象数据。至少部分基于对象数据,在某些实施例中,该方法可以包括更新仿真对象相对于仿真车辆的外观或位置中的至少一个。附加地或备选地,该方法还可以包括更新仿真环境,以包括表示环境中的另外的对象的另外的仿真对象。
在某些实施例中,该方法可以附加地包括至少部分基于仿真对象来控制仿真车辆。例如,正在接受测试的车辆控制器可以感知仿真环境中的仿真对象,并至少部分基于感知到的仿真对象来改变仿真车辆的轨迹。
附加地,在某些实施例中,用户指定对象可以在仿真环境的不同地点进行仿真。因此,该方法可以包括接收指示用户指定地点的输入,仿真对象将会在仿真环境中被实例化在该用户指定地点内,并更新仿真环境以包括用户指定地点处的仿真对象。在更进一步的实施例中,仿真场景可以至少部分基于三维(3D)仿真、之前的仿真等生成。
本文所述技术可以通过多种方式实施。下文将参考下图提供示例实施方案。虽然是在自动驾驶车辆的背景下讨论的,但本文所述技术可应用于需要控制和/或与环境中的对象交互的各种系统,并不局限于自动驾驶车辆。在另外的实施例中,系统、方法和装置可以用于航空或航海领域。附加地,本文所述技术可以用于真实数据(例如,使用传感器采集的数据)、仿真数据(例如,由仿真器生成的数据)或其任意组合。
图1是展示示例数据流100的图解流程图,其中车辆102生成与环境106相关联的日志数据104并将日志数据传输到计算设备108,该计算设备用于确定车辆102的地点与由车辆102在不同时刻采集的对象数据之间的关联110。附加地,计算设备108还可以至少部分基于日志数据104来生成仿真指令112。在某些实施例中,日志数据104可以包括三维体素数据、图像数据、边界框、对象的二维和/或三维轮廓、分类数据、分割数据、遮挡数据等。
车辆102可以包括具有感知引擎和/或规划器部件的计算设备,以执行操作,如从在环境106中采集的传感器数据中检测、识别、分割、分类和/或跟踪对象。例如,与车辆102相关联的计算设备可以检测对象114(1)、114(2)、114(3)和114(4)。虽然对象114(1)、114(2)、114(3)和114(4)被描述为环境106中的停驻车辆、树木、建筑物和路灯,但对象114(1)、114(2)、114(3)和114(4)还可以包括骑车人、行人、动物、路标、标志牌、交通灯、邮箱、障碍物、栅栏、长凳和/或其他对象。
与车辆102相关联的计算设备可以包括一个或多个处理器以及通信耦合到该一个或多个处理器的存储器。例如,该一个或多个处理器可以包括一个或多个FPGA、SoC、ASIC和/或CPU。车辆102可以穿越环境106并确定和/或采集数据。例如,与车辆102相关联的计算设备可以确定车辆状态数据、车辆诊断数据、车辆指标数据和/或地图数据。在某些情况下,车辆102可以包括一个或多个传感器,其中该一个或多个传感器可以包括一个或多个飞行时间传感器、激光雷达传感器、雷达传感器、声纳传感器、图像传感器、音频传感器、红外传感器、地理地点传感器、车轮编码器、IMU等,或其任意组合,尽管也考虑到其他类型的传感器。
当车辆102穿越环境106时,传感器可以采集与环境106相关联的传感器数据。例如,如上所述,某些传感器数据可能与对象相关联,如对象114(1)、114(2)、114(3)和114(4)。虽然对象114(1)、114(2)、114(3)和114(4)可能表示静态对象,但在某些情况下,传感器数据也可能与动态对象相关联。如本文所述,“动态对象”可以是与环境106内的运动(例如,车辆、摩托车、骑车人、行人、动物等)或运动的能力(例如,停驻的车辆、站立的行人等)相关联的对象。相比之下,“静态对象”可以是与环境106相关联的对象,如建筑物/结构、路面、路标、标志牌、障碍物、树木、人行道、路灯、停驻的车辆等。在某些情况下,与车辆102相关联的计算设备可以确定环境中的对象的相关信息,如边界框、分类、分割信息等。
与车辆102相关联的计算设备可以生成日志数据104。例如,日志数据104可以包括由车辆计算设备生成的传感器数据、感知数据、规划数据、车辆状态数据、速度数据、意图数据和/或其他数据。在某些情况下,传感器数据可以包括飞行时间传感器、地点传感器(例如,GPS、指南针等)、惯性传感器(例如,惯性测量单元IMU、加速计、磁力计、陀螺仪等)、激光雷达传感器、雷达传感器、声纳传感器、红外传感器、摄像头(例如,RGB、IR、强度、深度等)、麦克风传感器、环境传感器(例如,温度传感器、湿度传感器、光传感器、压力传感器等)、超声换能器、车轮编码器等。传感器数据可以是由此类传感器采集的数据,如飞行时间数据、地点数据、激光雷达数据、雷达数据、声纳数据、图像数据、音频数据等。在某些情况下,日志数据104可以包括与由车辆计算设备生成的其他数据相关联的时间数据。
日志数据104可以沿时间轴表示环境106的各种状态。如图1所示,状态可以包括单个时间点或随时间改变的环境(真实环境、由采集的传感器数据表示的环境、基于采集的传感器数据(例如,边界框、对象分类、规划器决策和/或由仿真器表示的环境)的数据的各种表示。例如,日志数据104可以表示环境106在时间t0 118时的状态116。在某些情况下,状态116可能是环境106的与日志数据104的开始(或任意)部分相关联的初始状态。在某些情况下,状态116可以是环境106的与日志数据104的任意(例如,中间)部分相关联的状态。日志数据104可以表示环境106的在时间t0 118之后的时间t1 122时的状态120。如图1所示,日志数据104可以进一步表示环境106的在时间t2 126时(即t0 118和t1 122之后)的状态124。仅为说明目的,状态116可以表示在0秒的初始时间t0 118时的环境106,状态120可以表示在5秒的稍后时间t1 122时的环境106,状态124可以表示在15秒的稍后时间t2 126时的环境106。因此,在某些情况下,时间t0 118、t1 122和t2 126可以是非顺序的(例如,在时间t0118、t1 122和t2 126之间有经过的时间),或者时间t0 118、t1 122和t2 126可以是顺序的(例如,在时间t0 118、t1 122和t2 126之间没有经过的时间)。
车辆102可以经由一个或多个网络128向计算设备108发送部分或全部日志数据104。例如,车辆102可以向计算设备108发送包括时间数据、感知数据、对象数据、地点数据和/或地图数据在内的日志数据104,以存储日志数据104。这种传输可以是有线或无线,也可以是其他方式,详见本文所述。由车辆生成的可以被包括在日志数据104中的数据的实施例可以在以下专利中被找到:例如,2017年7月7日提交的标题为“Interactions BetweenVehicle and Teleoperations System”的第15/644,267号美国专利申请(部分描述了通信信号,该通信信号可以包括传感器数据和指示事件的发生的数据,以及可以从传感器和规划器接收的数据、对象数据计算器、对象分类器、碰撞预测系统、运动学计算器、安全系统致动器和驱动系统的控制操作中导出的车辆控制数据)、2017年9月1日提交的标题为“Occupant Protection System Including Expandable Curtain and/or ExpandableBladder”的第15/693,700号美国专利申请(部分描述了表示车辆的轨迹的数据、地点数据、对象数据和车辆控制数据)以及2018年11月21日提交的标题为“Executable ComponentInterface and Controller”的第16/198,653号美国专利申请(部分描述了日志数据的类型),这些专利申请的全部内容和所有目的均以引用方式并入。在某些情况下,计算设备108可以包括将日志数据104存储在数据库中的服务器。在某些情况下,计算设备108可以操作场景生成器,用于生成定义仿真场景和/或仿真环境的仿真指令112。
基于日志数据104,场景生成器可以识别被表示在日志数据104中的对象(例如,对象114(1)、114(2)、114(3)和114(4))。然后,场景生成器可以确定日志数据104中与对象相关联的部分。例如,场景生成器可以识别物体114(3),该物体是环境106中的建筑物,该建筑物在日志数据104中被表示在状态116处。场景生成器可以识别在日志数据104被表示在状态120和124中的对象114(3)。在某些情况下,日志数据104可以包括与对象114(3)相关联的感知数据,该数据可以识别例如对象114(3)的范围。在某些情况下,感知数据可以包括或基于来自车辆102的传感器或传感器组合的传感器数据。在某些情况下,日志数据104可以包括与对象114(3)相关联的地点数据,该地点数据识别对象114(3)在环境106中的地点。
使用感知数据,场景生成器可以确定一个或多个日志数据关联130,该一个或多个日志数据关联识别车辆102的各个地点、车辆102被定位在该各个地点的各个时间以及在车辆102在该各个时间被定位在该各个地点时由车辆102生成的各个对象数据之间的关联。例如,日志数据关联130的“地点1”可以包括指示车辆102感知环境106的具体地点的第一地理定位数据(例如,GPS坐标),如状态116中所示;日志数据关联130的“地点2”可以包括指示车辆102感知环境106的具体地点的第二地理定位数据,如状态120所示;日志数据关联130的“地点3”可以包括指示车辆102感知环境106的具体地点的第三地理定位数据,如状态124所示。附加地,日志数据关联130的“t0”可以包括指示车辆102被定位在地点1的具体时刻的第一时间戳;日志数据关联130的“t1”可以包括指示车辆102被定位在地点2的具体时刻的第二时间戳;日志数据关联130的“t2”可以包括指示车辆102被定位在地点3的具体时刻的第三时间戳,此外,日志数据关联130的“状态116对象数据”可以包括表示由车辆102在时间t0时从地点1在环境106中感知到的一个或多个对象的对象数据;日志数据关联130的“状态120对象数据”可以包括表示由车辆102在时间t1时从地点2在环境106中感知到的一个或多个对象的对象数据;日志数据关联130的“状态124对象数据”可以包括表示车辆102在时间t2时从地点3在环境106中感知到的一个或多个对象的对象数据。
在某些情况下,计算设备108可以确定与被包括在日志数据104中的对象相关联的实例化属性。实例化属性可以指示车辆102检测对象的方式和/或对对象的初始感知。仅为说明目的,对象114(2)可以通过车辆102接近对象114(2)和/或对象114(2)变得可见(例如,对象114(2)可能位于遮挡对象之后)而进入车辆102的检测范围(例如,如状态120所示)。在某些情况下,检测范围(也称为感知阈值)可以与车辆102的该一个或多个传感器的能力相关联。在某些情况下,检测范围可以与由车辆102的感知引擎确定的置信度值相关联。
在某些情况下,计算设备108可以附加地或备选地确定与被包括在日志数据104中的对象相关联的终止属性。终止属性可以指示车辆102可能不再检测到对象的方式和/或对对象的更新感知。仅为说明目的,对象114(1)可以通过车辆102远离对象114(1)移动和/或对象114(1)被遮挡而处于车辆102的检测范围之外的位置(例如,如状态120和124所示)。
基于日志数据104和/或日志数据关联130,场景生成器可以生成仿真指令112,该仿真指令描述包括仿真环境的仿真场景。例如,日志数据104可以包括指示环境106以及车辆102如何穿越环境106的地图数据和地点数据。附加地,日志数据104还可以包括车辆102在车辆102穿越环境106时的状态数据,包括但不限于加速度数据、转向角数据、指示器状态数据等。日志数据104可以包括将车辆102的行动和观察结果(例如,传感器数据)与一组时间戳相关联的时间数据。日志数据104可以由场景生成器使用以生成仿真指令112,该仿真指令在被执行时生成的仿真数据包括表示环境106的仿真环境,并包括处于不同状态(例如,状态116、120和124)的仿真对象。例如,仿真数据可以表示仿真环境在时间tx 134时的状态132、仿真环境在在时间tx 134之后的时间ty 138时的状态136以及仿真环境在在时间ty 138之后的时间tz 142时的状态140。
在某些情况下,场景生成器可以创建仿真指令112,该仿真指令表示仿真环境,该仿真环境包括比在图1中描绘的环境106更多或更少的细节(例如,通过过滤掉对象、通过用边界框表示对象和/或通过添加额外对象)。在某些情况下,场景生成器可将仿真指令112输入到与仿真车辆相关联的车辆控制器中,以确定仿真车辆在仿真场景中呈现的情况下如何响应。
图2展示示例环境200,在该示例环境中,车辆102在不同时刻感知到环境中的不同对象和不同对象的不同视角。
车辆102可以根据包括一个或多个路段(如路段202(1)、202(2)和202(3))的道路的网络来穿越环境(例如,以上在图1中描述的环境106)。路段202(1)、202(2)和202(3)中的每一个可以相互连接。也就是说,在某些实施例中,路段202(1)可以连接到路段202(2),路段202(2)可以连接到路段202(3),以此类推。附加地或备选地,路段202(1)、202(2)和202(3)还可以经由未示出的其他路段相互连接。
车辆102可以沿由时间线204指示的第一方向穿越路段202(1)、202(2)和202(3)。例如,车辆102可以在时间t0 118时被定位在第一地点206(1),在时间t0 118之后的时间t1122时被定位在第二地点206(2),在时间t1 122之后的时间t2 126时被定位在第三地点206(3)。因此,状态116、120和124可以分别表示由车辆102从地点206(1)、206(2)和206(3)并且在时间t0 118、t1 122和t2 126时感知到的车辆102操作所处的环境。也就是说,状态116、120和124可以表示由车辆102、车辆102的传感器系统、车辆102的感知系统、车辆102的控制器等感知到的环境。仅为说明目的,状态116可以表示0秒的初始时间t0 118时的环境106,状态120可以表示5秒的稍后时间t1 122时的环境106,状态124可以表示15秒的稍后时间t2126时的环境106。因此,在某些情况下,时间t0 118、t1 122和t2 126可以是非顺序的(例如,在时间t0 118、t1 122和t2 126之间有经过的时间),或者时间t0 118、t1 122和t2 126可以是顺序的(例如,在时间t0 118、t1 122和t2 126之间没有经过的时间)。
如图2所示,状态116、120和124可以包括由车辆102在不同时间t0118、t1 122和t2126时并且从不同地点206(1)、206(2)和206(3)感知到的不同对象。例如,在当车辆102处于第一地点206(1)的时间t0 118时,状态116包括如停驻的车辆、建筑物和路灯等对象(例如,图1中所示环境106中的对象114(1)、114(3)和114(4))。
然而,当车辆102穿越环境移动到第二地点206(2)时,车辆102可以感知到状态120中所示的对象,包括树木、建筑物和路灯(例如,图1中所示的环境106中分别为对象114(2)、114(3)和114(4))。附加地,从车辆102的视角看到的对象的外观可能基于车辆102的地点的改变以及某些对象(例如,停驻的车辆)的消失而在状态116和120之间而发生改变。此外,基于车辆102移动到第二地点206(2),该第二地点可能处于树木的范围中,对象(如树木)可能会出现在状态120中。也就是说,车辆102的传感器系统可能处于状态120中所示的树木的范围中,以便检测树木的存在。最后,当车辆102在时间t2 126时穿越环境移动到第三地点206(3)时,车辆102可以感知到状态124中所示的对象。
图3展示至少部分由车辆感知系统302执行的示例数据转换300。如本文所述,基于由车辆在不同时刻从不同地点感知到的环境的不同视角,车辆感知系统302可以输出车辆(例如,车辆102)操作所处的环境(例如,环境106)的不同表示。
例如,车辆感知系统302可以接收由车辆的传感器系统采集的传感器数据。传感器数据可以包括表示环境的各种状态,如状态116、120和124。状态116、120和124中的每个可以表示在特定时间从车辆的地点看到的环境。例如,时间轴204的时间t0 118、t1 122和t2126可以分别与状态116、120和124相关联。
作为示例而非限制,车辆感知系统302可接收表示t0 118时的环境的状态116的传感器数据,并输出状态132中所示的环境的仿真表示。状态132可以包括表示由车辆在状态116中看到的对象的一个或多个边界框。例如,车辆感知系统302可以对传感器数据应用一个或多个规则、启发式方法、转换和/或类似方法,以便输出状态132中所示的仿真表示。附加地或备选地,车辆感知系统302可以使用一个或多个机器学习模型来生成状态132的仿真表示。车辆感知系统302可以对表示状态120和124的传感器数据执行相同或类似的流程,以生成状态136和140中所示的仿真表示。在实施例中,本文所述日志数据可以包括与状态116、120和/或124中的任何一个以及状态132、136和/或140相关联的数据。
在各种实施例中,状态132、136和140可与各种时间tx 134、ty 138和tz 142相关联。这样,场景生成器可以生成仿真指令,仿真指令当由仿真器执行时,生成表示仿真环境的状态132、136和140的仿真数据,该状态与时间tx 134、ty 138和tz 142相关联。作为示例而非限制,当仿真车辆与在时间t0 118时采集状态116中所示的传感器数据的车辆处于相同或邻近地点时,由仿真车辆感知到的仿真环境可能与时间tx 134时的状态132相对应。
图4是展示示例流程400的图解流程图,在该示例流程中,基于仿真车辆408相对于车辆102的各种先前地点的不同地点,对象在仿真环境中被实例化。车辆102可能已经采集仿真环境410(1)、410(2)和410(3)所基于的日志数据。
在操作402中,流程400包括生成包括仿真环境410(1)的仿真场景。仿真场景可以使用日志数据来生成。在实施例中,仿真环境410(1)是否包括或不包括某些仿真对象可以至少部分基于仿真车辆408的当前地点和车辆102的先前地点206(1)。例如,由于仿真车辆408的地点最接近车辆102的先前地点206(1),而不是地点206(2)或206(3),因此仿真环境410(1)可以包括图4中所示的带有条纹的仿真对象。在某些实施例中,仿真环境410(1)中的该一个或多个仿真对象可以表示车辆102在t0 112时从先前地点206(1)感知到的实际对象。也就是说,仿真环境410(1)可以包括一个或多个仿真对象,该一个或多个仿真对象表示在t0 112时处于车辆102的传感器系统距地点206(1)范围中的对象。
在操作404处,流程400包括至少部分基于仿真车辆408的地点移动以最接近车辆102在t1 116时的先前地点206(2),更新仿真场景以包括仿真环境410(2)。至少部分基于仿真车辆408改变地点,仿真环境410(2)包括先前被包括在仿真环境410(1)中的对象的更新外观。附加地,基于仿真车辆408的地点的改变,仿真环境410(2)还包括未被包括在仿真环境410(1)中的附加对象,以及比仿真环境410(1)中所包括的更少的对象。例如,当车辆102从地点206(1)移动到地点206(2)时,附加的对象可以处于车辆102的传感器系统的范围中或以其他方式可被检测到。同样,曾经可由车辆102检测到的对象可能已经移出范围或以其他方式无法被检测到。因此,仿真环境410(2)可以被更新,以考虑到车辆102在时间t1 116时在真实世界中本应感知到的这些改变。
在操作406中,流程400包括至少部分基于仿真车辆408的地点移动以最接近车辆102在t2 120时的先前地点206(3),更新仿真场景以包括仿真环境410(3)。至少部分基于仿真车辆408改变地点,仿真环境410(3)包括先前被包括在仿真环境410(1)和/或410(2)中的对象的更新外观。附加地,基于仿真车辆408地点的改变,仿真环境410(3)包括比仿真环境410(1)和/或410(2)所包括的更少的对象。例如,当车辆102从地点206(2)移动到地点206(3)时,曾经可由车辆102检测到的对象可能已经移出范围或以其他方式无法被检测到。因此,仿真环境410(3)可以被更新,以考虑到车辆102在时间t2120时在真实世界中本应感知到的这些改变。
可以理解的是,可以使用比图4所示更多或更少的地点(例如,地点206(1)、206(2)和206(3))。例如,虽然图4包括三个地点和三个仿真环境,但可以使用任意数量的地点和/或仿真环境来创建逼真的仿真。
图5是图解流程图,展示基于仿真车辆508相对于车辆102的先前地点206(1)在仿真环境中保持静止而不更新仿真环境的示例流程500。车辆102可能已经采集到仿真环境510所基于的日志数据。
在操作502中,流程500包括生成包括仿真环境510的仿真场景。仿真场景可以使用日志数据来生成。在实施例中,仿真环境510是否包括或不包括某些仿真对象可以至少部分基于仿真车辆508的当前地点和车辆102的先前地点206(1)。例如,由于仿真车辆508的地点最接近车辆102的先前地点206(1),而不是地点206(2)或206(3),因此仿真环境510可以包括图5中所示的带有条纹的仿真对象。在某些实施例中,仿真环境510的该一个或多个仿真对象可以表示由车辆102在t0 112时从先前地点206(1)感知到的实际对象。也就是说,仿真环境510可以包括一个或多个仿真对象,该一个或多个仿真对象表示在t0 112时处于车辆102的传感器系统距地点206(1)的范围中的对象。
在操作504中,流程500包括不更新仿真场景的仿真环境510。在操作504中不更新仿真环境可以至少部分基于仿真车辆508的地点保持静止。也就是说,由于仿真车辆508在时间t0 112时仍然最接近车辆102的先前地点206(1),因此不将仿真环境更新为来自不同地点的视图。因此,仿真器不会将仿真环境510更新为与由车辆102在时间t1 116时从地点206(2)看到的视角相对应,而是可以重新循环仿真环境510,使得环境在仿真车辆看来是静止的。同样,在操作506中,流程500包括至少部分基于仿真车辆508的地点保持静止而不更新仿真场景的仿真环境510。
图6是框图,展示用于实施本文所述各种技术中的某些技术的示例系统600。在至少一个实施例中,示例系统600可以包括车辆602,该车辆可以类似于上文参考图1-5所述的车辆102。在图示的示例系统600中,车辆602是自动驾驶车辆;但是,车辆602也可以是任何其他类型的车辆。
车辆602可以是无人驾驶车辆,如根据美国国家公路交通安全管理局发布的5级分类来操作的自动驾驶车辆,该分类描述了能够在整个行程中执行所有安全关键功能的车辆,驾驶员(或乘员)在任何时候都不需要控制车辆。在这样的实施例中,由于车辆602可以被配置为控制行程从开始到结束的所有功能,包括所有停驻功能,因此其可以不包括驾驶员和/或驾驶车辆602的控制装置,例如方向盘、加速踏板和/或制动踏板。这只是实施例,本文所述的系统和方法可以被集成到任何地面、空中或水上交通工具中,包括从需要始终由驾驶员手动控制的交通工具到部分或完全自主控制的交通工具。
车辆602可以是任何结构的车辆,例如面包车、运动型多功能车、交叉车、卡车、公共车辆、农用车和/或工程车。车辆602可以由一个或多个内燃机、一个或多个电动机、氢动力、它们的任意组合和/或任何其他合适的动力源提供动力。虽然车辆602有四个车轮,但本文所述的系统和方法可以用于车轮和/或轮胎数量较少或较多的车辆。车辆602可以具有四轮转向功能,并且可以在所有方向上以相同或类似的性能特征运行,例如,使得当车辆602沿第一方向行驶时,车辆602的第一端是车辆602的前端,而当车辆602沿相反方向行驶时,第一端成为车辆602的后端。同样,车辆602的第二端在沿第二方向行驶时是车辆的前端,而在沿相反方向行驶时,第二端成为车辆602的后端。这些示例特征可能有助于提高可操作性,例如,在狭小空间或拥挤环境(如停车场和/或市区)中的可操作性。
车辆602可以包括计算设备604、一个或多个传感器系统606、一个或多个发射器608、一个或多个通信连接610(也称为通信设备和/或调制解调器)、至少一个直接连接612(例如,用于与车辆602物理耦合以交换数据和/或提供电力)以及一个或多个驱动系统614。该一个或多个传感器系统606可配置为采集与环境相关联的传感器数据。
传感器系统606可以包括飞行时间传感器、地点传感器(例如,GPS、指南针等)、惯性传感器(例如惯性测量单元IMU、加速度计、磁力计、陀螺仪等)、激光雷达传感器、雷达传感器、声纳传感器、红外传感器、摄像头(例如,RGB、红外、强度、深度等)、麦克风传感器、环境传感器(例如,温度传感器、湿度传感器、光传感器、压力传感器等)、超声换能器、车轮编码器等。传感器系统606可以包括上述每种传感器或其他类型传感器的多个实例。例如,飞行时间传感器可以包括位于车辆602的角落、前面、后面、侧面和/或顶部的单个飞行时间传感器。作为另外的实施例,摄像头传感器可以包括分别布置在车辆602外部和/或内部的不同地点的多个摄像头。传感器系统606可以向计算设备604提供输入。
车辆602还可以包括一个或多个发射器608,用于发射光和/或声音。本实施例中的该一个或多个发射器608包括车内音频和视频发射器,以与车辆602的乘客通信。作为示例而非限制,车内发射器可以包括扬声器、灯光、标志、显示屏、触摸屏、触觉发射器(例如,振动和/或力反馈)、机械致动器(例如,安全带张紧器、座椅定位器、头枕定位器等)等。本实施例中的该一个或多个发射器608还包括外部发射器。作为示例而非限制,本实施例中的外部发射器包括示意行驶方向的灯光(例如指示器、标志、灯光阵列等),或车辆行动的其他指示器,以及与行人或其他附近车辆进行声音交流的一个或多个音频发射器(例如,扬声器、扬声器阵列、喇叭等),其中该一个或多个音频发射器中的一个或多个可以包括声束转向技术。
车辆602还可以包括一个或多个通信连接610,该一个或多个通信连接实现车辆602与一个或多个其他本地或远程计算设备(例如远程远隔操作计算设备)或远程服务之间的通信。例如,通信连接610可以促进与车辆602上的其他本地计算设备和/或驱动系统614的通信。此外,通信连接610还可以允许车辆602与其他附近计算设备(例如,其他附近车辆、交通信号等)进行通信。
通信连接610可以包括物理和/或逻辑接口,用于将计算设备604连接到另外的计算设备或一个或多个外部网络616(例如,互联网)。例如,通信连接610可以实现基于Wi-Fi的通信(如经由通过IEEE 802.11标准定义的频率)、短距离无线频率(如蓝牙)、蜂窝通信(例如,2G、3G、4G、4GLTE、5G等)、卫星通信、专用短程通信(DSRC)或任何合适的有线或无线通信协议,从而使各个计算设备能够与其他计算设备连接。
在至少一个实施例中,车辆602可以包括一个或多个驱动系统614。在某些实施例中,车辆602可以具有单一驱动系统614。在至少一个实施例中,如果车辆602具有多个驱动系统614,则单个驱动系统614可以被定位在车辆602的相反两端(例如,前端和后端等)。在至少一个实施例中,驱动系统614可以包括一个或多个传感器系统606,以检测驱动系统614和/或车辆602周围环境的状况。作为示例而非限制,传感器系统606可以包括一个或多个车轮编码器(例如,旋转编码器)以感知驱动系统的车轮的旋转,惯性传感器(例如,惯性测量单元、加速度计、陀螺仪、磁力计等)以测量驱动系统的朝向和加速度,摄像头或其他图像传感器、超声传感器以声学检测驱动系统周围的对象,激光雷达传感器,雷达传感器等。某些传感器,如车轮编码器,可能是驱动系统614独有的。在某些情况下,驱动系统614上的传感器系统606可以与车辆602的对应系统(例如,传感器系统606)重叠或互补。
驱动系统614可以包括许多车辆系统,包括高压电池、用于推动车辆的电机、用于将电池中的直流电转换为交流电供其他车辆系统使用的逆变器、包括转向电机和转向齿条(可为电动)的转向系统、包括液压或电动致动器的制动系统、包括液压和/或气动部件的悬挂系统、用于分配制动力以减轻牵引力损失并保持控制的稳定性控制系统、HVAC系统、照明(例如,用于照亮车辆外部周围的头灯/尾灯等照明)以及一个或多个其他系统(例如,冷却系统、安全系统、车载充电系统、直流/交流等其他电气部件)、照明系统(如用于照亮车辆外部的头灯/尾灯),以及一个或多个其他系统(如冷却系统、安全系统、车载充电系统、其他电气部件,如直流/直流转换器、高压接头、高压电缆、充电系统、充电端口等)。此外,驱动系统614可以包括驱动系统控制器,该驱动系统控制器可以接收和预处理来自传感器系统606的数据,并控制各种车辆系统的操作。在某些实施例中,驱动系统控制器可以包括一个或多个处理器以及与该一个或多个处理器通信耦合的存储器。存储器可以存储一个或多个模块,以执行驱动系统614的各种功能。此外,驱动系统614还包括一个或多个通信连接,该一个或多个通信连接使各个驱动系统能够与一个或多个其他本地或远程计算设备进行通信。
计算设备604可以类似于上文参照图1描述的车辆计算设备。计算设备604可以包括一个或多个处理器618以及与该一个或多个处理器618通信耦合的存储器620。在所示实施例中,计算设备604的存储器620存储定位部件622、感知部件624、预测部件626、规划部件628和一个或多个系统控制器630。虽然为了说明的目的被描绘为驻留在存储器620中,但考虑到的是,定位部件622、感知部件624、预测部件626、规划部件628和该一个或多个系统控制器630可以附加地或备选地可供计算设备604访问(例如,存储在车辆602的不同部件中)和/或可以供车辆602访问(例如,远程存储)。
在计算设备604的存储器620中,定位部件622可以包括接收来自传感器系统606的数据以确定车辆602的位置的功能。例如,定位部件622可以包括和/或请求/接收环境的三维地图,并可以持续地确定自动驾驶车辆在地图内的地点。在某些情况下,定位部件622可以使用SLAM(同时定位和绘图)或CLAMS(同时校准、定位和绘图)来接收飞行时间数据、图像数据、激光雷达数据、雷达数据、声纳数据、IMU数据、GPS数据、车轮编码器数据或其任意组合等,以准确地确定自动驾驶车辆的地点。在某些情况下,如本文所述,定位部件622可以向车辆602的各种部件提供数据,以确定自动驾驶车辆的初始位置,从而生成轨迹。在至少一个实施例中,定位部件622可以确定仿真车辆在仿真环境内的地点,和/或确定记录仿真环境所基于的日志数据的车辆的最接近先前地点。
感知部件624可以包括执行对象检测、分割和/或分类的功能。在某些实施例中,感知部件624可以提供经过处理的传感器数据,该传感器数据指示存在靠近车辆602的实体和/或将实体分类为实体类型(例如,车辆、行人、骑自行车的人、建筑物、树、路面、路缘、人行道、未知等)。在附加和/或替代的实施例中,感知部件624可以提供经过处理的传感器数据,该传感器数据指示与检测到的实体和/或实体所处的环境相关联的一个或多个特征。在某些实施例中,与实体相关联的特征可以包括但不限于x位置(全局位置)、y位置(全局位置)、z位置(全局位置)、朝向、实体类型(例如,分类)、实体的速度、实体的范围(大小)等。与环境相关联的特征可以包括但不限于:环境中的另外的实体的存在、环境中的另外的实体的状态、一天中的时间、一周中的某一天、季节、天气状况、黑暗/光线的指示等。在至少一个实施例中,如本文所述,感知部件624可以生成与穿越环境的车辆相关联的日志数据。日志数据除其他外,可以用于生成仿真场景,该仿真场景包括用于测试车辆的仿真环境。
感知部件624可以包括存储由感知部件624生成的感知数据的功能。在某些情况下,感知部件624可以确定对应于已被分类为对象类型的对象的轨迹。仅为说明目的,感知部件624可以使用传感器系统606捕捉环境的一个或多个图像。传感器系统606可以捕捉包括对象(如建筑物、车辆、树木、路灯、行人等)的环境的图像。
在某些实施例中,存储的感知数据可以包括由车辆采集的融合感知数据。融合感知数据可以包括来自传感器系统606(如图像传感器、激光雷达传感器、雷达传感器、离散时间传感器、声纳传感器、全球定位系统传感器、内部传感器和/或这些传感器的任意组合)的传感器数据的融合或其他组合。存储的感知数据还可以附加地或备选地包括分类数据,该分类数据包括被表示在传感器数据中的对象(例如,行人、车辆、建筑物、路面等)的语义分类。
预测部件626可以生成一个或多个概率图,该一个或多个概率图表示环境中一个或多个对象的可能地点的预测概率。例如,预测部件626可以为距离车辆602阈值距离内的车辆、行人、动物等生成一个或多个概率图。在某些情况下,预测部件626可以测量对象的轨迹,并基于观察到的和预测到的行为来为对象生成离散预测概率图、热力图、概率分布、离散概率分布和/或轨迹。在某些情况下,该一个或多个概率图可以表示环境中的该一个或多个对象的意图。
规划部件628可以确定车辆602穿越环境所要遵循的路径。例如,规划部件628可以确定各种路线和路径以及各种详细程度。在某些情况下,规划部件628可以确定从第一地点(例如,当前地点)到第二地点(例如,目标地点)的行进路线。为了此讨论的目的,路线可以是在两个地点之间行驶的航点序列。作为非限制性示例,航点包括街道、交叉路口、全球定位系统(GPS)坐标等。此外,规划部件628可以生成指令,用于引导自动驾驶车辆沿着从第一地点到第二地点的路线的至少一部分行驶。在至少一个实施例中,规划部件628可以确定如何将自动驾驶车辆从航点序列中的第一航点引导到航点序列中的第二航点。在某些实施例中,指令可以是路径或路径的一部分。在某些实施例中,多条路径可以根据后退视界技术基本同时生成(即,在技术公差范围内)。后退数据视界中的该多条路径中的具有最高置信度的单一路径可以被选择以操作车辆。
在其他实施例中,规划部件628可以替代地或附加地使用来自感知部件624的数据来确定车辆602穿越环境所要遵循的路径。例如,规划部件628可以接收来自感知部件624的与环境相关联的对象的数据。利用该数据,规划部件628可以确定从第一地点(例如,当前地点)到第二地点(例如,目标地点)的行驶路线,以避开环境中的对象。至少在某些实施例中,这样的规划部件628可以确定不存在这样的无碰撞路径,继而提供一条路径,使车辆602安全停止,避免所有碰撞和/或以其他方式减轻损坏。
在至少一个实施例中,计算设备604可以包括一个或多个系统控制器630,该一个或多个系统控制器可以配置为控制车辆602的转向、推进、制动、安全、发射器、通信和其他系统。这些系统控制器630可以与驱动系统614和/或车辆602的其他部件的对应系统通信和/或控制该相应系统,该相应系统可以配置为根据从规划部件628提供的路径运行。
车辆602可以经由网络616连接到计算设备632,并可以包括一个或多个处理器634以及与该一个或多个处理器634通信耦合的存储器636。在至少一个实例中,该一个或多个处理器634可以类似于处理器618,并且存储器636可以类似于存储器620。在所示实施例中,计算设备632的存储器636存储日志数据部件638、对象部件640、场景部件642和仿真部件644。虽然为了说明的目的被描绘为驻留在存储器636中,但考虑到的是,日志数据部件638、对象部件640、场景部件642和仿真部件644可以附加地或备选地可供计算设备632访问(例如,存储在计算设备632的不同部件中)和/或可供计算设备632访问(例如,远程存储)。
在计算设备632的存储器636中,日志数据部件638可以确定用于生成仿真场景的日志数据。如上所述,数据库可以存储一个或多个日志数据。在某些情况下,计算设备632可以充当数据库以存储日志数据。在某些情况下,计算设备632可以连接到不同的计算设备以访问日志数据数据库。日志数据部件638可以扫描存储在数据库中的日志数据,并识别包含感兴趣的事件的日志数据。如上所述,在某些情况下,日志数据可以包括事件标记,该事件标记指示感兴趣的事件与特定日志数据相关联。在某些情况下,用户可以从一组日志数据中选择日志数据,用于生成仿真场景。
附加地,对象部件640还可以识别与日志数据相关联的一个或多个对象。例如,对象部件640可以确定日志数据中并被表示为仿真对象的对象,如车辆、行人、动物、骑车人、树木、建筑物、路灯、障碍物、栅栏等。在某些情况下,对象部件640可以确定和与日志数据相关联的车辆进行交互的对象。在某些实施例中,对象部件640可以确定与对象相关联的属性。例如,属性可以包括对象范围(也称为对象尺寸,其可以表示长度、宽度、高度和/或体积)、对象分类、对象姿态、对象轨迹、对象航点、对象实例化属性和/或对象终止属性。
对象范围可以指示对象的大小和/或体积(例如,长度为5米)。对象分类可以指示对象的分类和/或类型(例如,车辆、行人、骑自行车者等)。对象姿态可以指示对象在环境中的xyz坐标(例如,位置或位置数据),和/或可以包括与对象相关联的俯仰、翻滚和/或偏航。对象轨迹可以指示对象所遵循的轨迹。对象航点可以指示环境中的位置,该位置指示两个地点之间的路线。
对象实例化属性可以指示车辆是如何检测到该对象的。例如,对象可通过以下方式进入车辆的检测范围:(1)车辆接近对象,(2)对象接近车辆,和/或(3)对象变得可见(未遮挡)或对象的遮挡停止。对象终止属性可以指示车辆可能如何不再检测到对象。例如,对象可能通过以下方式处于车辆检测范围之外的位置:(1)车辆远离对象移动,(2)对象远离车辆移动,和/或(3)对象被遮挡或遮挡对象。
场景部件642可以使用由日志数据部件638识别的日志数据来生成仿真场景。仿真场景可以包括仿真环境(例如,道路、道路标记、建筑物等)和仿真对象(例如,其他车辆、建筑物、树木、路灯、障碍物、栅栏、行人、骑车人、动物等)。在某些情况下,场景部件642可以使用由感知部件624生成的感知数据来将仿真对象模型应用于仿真对象。例如,场景部件642可以识别仿真车辆模型,并将其应用于与车辆相关联的仿真对象。在某些情况下,场景部件642可以识别仿真建筑物模型,并将其应用于与建筑物相关的仿真对象。
作为示例而非限制,日志数据可以包括不同大小的对象,如邮箱、树木、建筑物和/或类似物。场景部件642可以使用基于体积的过滤器,使得与体积大于等于或大于三立方米阈值的体积相关联的对象(如建筑物)就会被表示在仿真场景中,而与小于三立方米的体积相关联的对象(如邮箱)则不会被表示在仿真场景中。在某些情况下,场景部件642可以使用基于运动的过滤器,使得与根据日志数据的运动或轨迹相关联的对象要么被表示在仿真场景中,要么被从仿真场景中移除。在某些情况下,过滤器可以组合使用,也可以相互专用。
在某些情况下,场景部件642可以过滤不符合或超过置信度阈值的对象。举例来说,但不限于此,日志数据可以指示对象与行人的分类属性相关联,与分类相关联的置信度值为5%。场景部件642可以具有75%的置信值阈值,并基于不满足或超过置信值阈值的置信值来过滤对象。在某些情况下,用户可以提供用户生成的过滤器,该用户生成的过滤器包括一个或多个属性阈值,使得场景部件642可以过滤不满足或超过由用户生成的过滤器指示的该一个或多个属性阈值的对象。
仿真部件644可将仿真场景作为一组仿真指令执行,并生成仿真数据。在某些情况下,仿真部件644可以同时和/或并行执行多个仿真场景。这可以让用户编辑仿真场景,并利用每个仿真场景之间的改变执行仿真场景的排列组合。在至少一个实施例中,仿真部件644通过仿真场景来测试车辆控制器。
附加地,仿真部件644还可以确定仿真场景的结果。例如,仿真部件644可以执行场景,以在用于测试和验证的仿真中使用。仿真部件644生成指示自动驾驶控制器如何执行(例如,响应)的仿真数据,并可将仿真数据与预定结果进行比较,和/或确定是否有任何预定规则/声明(assertion)被破坏/触发。
在某些情况下,预定规则/声明可以基于仿真场景(例如,针对人行横道的交通规则可以基于人行横道场景而被启用,或者关于穿越车道标记的交通规则可以针对停滞车辆场景而被禁用)。在某些情况下,随着仿真的进行,仿真部件644可以动态地启用和禁用规则/声明。例如,当仿真对象接近学校区域时,与学校区域相关的规则/声明可以被启用,当仿真对象离开学校区域时,与学校区域相关的规则/声明可以被禁用。在某些情况下,规则/声明可以包括舒适度指标,该舒适度指标与仿真场景下对象的加速度有关。
至少部分基于确定自动驾驶控制器的表现与预定结果一致(即自动驾驶控制器做了它应该做的一切)和/或确定规则未被破坏或声明未被触发,仿真部件644可以确定自动驾驶控制器成功。至少部分基于确定自动驾驶控制器的表现与预定结果不一致(即自动驾驶控制器做了它不应该做的事情)和/或确定规则被破坏或声明被触发,仿真部件644可以确定自动驾驶控制器失败。因此,至少部分基于执行仿真场景,仿真数据可以指示自动驾驶控制器如何响应每个仿真场景,如上所述,并至少部分基于仿真数据来确定成功结果或不成功结果。
计算设备604的处理器618和计算设备632的处理器634可以是能够执行指令以处理数据和执行本文所述操作的任何合适的处理器。作为示例而非限制,处理器618和634可以包括一个或多个中央处理器(CPU)、图形处理器(GPU),或处理电子数据以将电子数据转换为可以存储在寄存器和/或存储器中的其他电子数据的任何其他设备或设备的一部分。在一些实施例中,集成电路(例如,ASIC等)、门阵列(例如,FPGA等)和其他硬件设备也可以被视为处理器,因为它们被配置为实施编码指令。
计算设备604的存储器620和计算设备632的存储器636是非暂时性计算机可读介质的实施例。存储器620和636可以存储操作系统和一个或多个软件应用程序、指令、程序和/或数据,以实施本文所述的方法和各种系统的功能。在各种实施方案中,存储器620和636可以使用任何合适的存储器技术来实施,如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器或能够存储信息的任何其他类型的存储器。本文所述的架构、系统和单个元件可以包括许多其他逻辑、程序和物理部件,其中附图中所示的部件仅是与本文讨论相关的实施例。
在某些情况下,本文讨论的部件中的一些或全部的各方面可以包括任何模型、算法和/或机器学习算法。例如,在某些情况下,存储器620和636中的部件可以作为神经网络来实施。
图7和图8是示出基于日志数据在仿真环境中实例化对象的示例方法的流程图。图7和图8所示的方法参照在图1-6中描述的车辆和/或系统中的一个或多个进行描述,以便于理解。但是,图7和图8所示的方法并不限于使用在图1-6中描述的车辆、系统和/或技术来执行,也可以使用在本申请中描述的任何其他车辆、系统和技术以及本文描述以外的车辆、系统和技术来实施。此外,本文描述的车辆、系统和用户界面并不限于执行图7和图8所示的方法。
方法700和800以逻辑流程图中的区块的集合的形式展示,该区块的集合表示可以以硬件、软件或其组合实现的操作的序列。就软件而言,区块表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,该计算机可执行指令在被一个或多个处理器执行时,执行所述操作。一般来说,计算机可执行指令包括执行特定功能或实施特定抽象数据类型的例程、程序、对象、部件、数据结构等。所描述的操作的顺序并不意味着是限制,并且可以以任何顺序和/或并行方式组合所描述的任何数量的区块以实施流程。在某些实施例中,流程的一个或多个区块可以被完全省略。此外,方法700和800可以全部或部分地相互组合或与其他方法组合。
图7是示例方法700的流程图,该方法用于基于相对于真实世界车辆的先前地点的仿真车辆的地点来更新仿真环境以包括对象。
方法700从操作702开始,该操作包括接收表示真实车辆在一时间段中操作所处的真实环境的日志数据。例如,计算设备108可以通过一个或多个网络128从一个或多个车辆102接收日志数据。在某些实施例中,日志数据可以由车辆的感知系统至少部分基于由车辆的一个或多个传感器采集的传感器数据来生成。在至少一个实施例中,日志数据包括表示车辆和/或另外的车辆在多个时间段中操作所处的环境的日志数据的多个实例。
在操作704中,方法700包括使用日志数据来生成用于测试自动驾驶车辆控制器的仿真场景,仿真场景包括表示真实环境的至少一部分的仿真环境。例如,计算设备108可以生成包括仿真环境的仿真场景,该仿真环境表示环境106的一部分。
在操作706中,方法700包括通过自动驾驶车辆控制器使得仿真自动驾驶车辆穿越仿真环境。在各种实施例中,仿真自动驾驶车辆在仿真环境中/通过仿真环境的仿真路径可能偏离真实车辆在真实环境中/通过真实环境的真实路径。在至少一个实施例中,仿真场景、仿真环境、仿真对象和/或类似物可以以仿真指令的形式输入自动驾驶车辆控制器。也就是说,仿真指令可以表示仿真场景、仿真环境、仿真对象和/或类似物。
在操作708中,方法700包括确定仿真自动驾驶车辆在仿真环境中的仿真地点。例如,计算设备108可以基于仿真车辆在仿真环境内的位置来从仿真车辆接收地理定位数据,并且仿真车辆的仿真地点可以至少部分基于地理定位数据来确定。在操作710中,方法700包括至少部分基于日志数据来确定真实车辆在真实环境中的真实地点与仿真自动驾驶车辆在仿真环境中的仿真地点最接近地对应的该时间段中的第一时间。例如,计算设备108可以确定第一时间(例如,t0 112),车辆102的先前地点206(1)在该第一时间最接近仿真车辆508的地点。附加地或备选地,计算设备108可以至少部分基于日志数据关联130来确定第一时间。
在操作712中,方法700包括从日志数据中获取对象数据,该对象数据表示由真实车辆在第一时间感知到的真实环境中的真实对象。例如,计算设备108可以至少部分基于仿真车辆最接近车辆102的哪个先前地点来从日志数据关联130中获取对象数据。在操作716中,方法700包括在仿真环境中生成表示真实对象的仿真对象,使得仿真车辆感知到仿真对象。例如,计算设备108可以在仿真环境内、在车辆102感知到对象的地点实例化仿真对象。在某些实施例中,仿真对象是否在仿真环境中生成可以至少部分基于确定真实对象的分类。也就是说,如果真实对象是动态对象,则仿真对象可能不会被生成。但是,如果真实对象是静态对象,则仿真对象可以在仿真环境内被生成和/或实例化。
在操作716中,方法700包括确定是否结束仿真。例如,如果仿真处于仿真所基于的日志数据文件的末尾,则计算设备108可以确定结束仿真并进入操作718。但是,如果仿真尚未处于日志数据文件的末尾,或者如果要继续仿真,那么方法700可以循环回到操作708。这样,操作708-716可以继续进行,直到到达仿真的末尾,使得仿真环境将会基于仿真车辆的仿真地点继续更新。在操作718中,如果要终止仿真,则方法700可以包括确定自动驾驶车辆控制器是否成功通过仿真测试。例如,计算设备108可以确定仿真的仿真车辆是否安全、有效地穿越仿真环境等。
图8是另外的示例方法800的流程图,该方法用于基于仿真车辆相对于真实世界车辆的先前地点的地点来更新仿真环境以包括对象。
方法800可以从操作802开始,该操作包括接收表示真实车辆操作所处的真实环境的日志数据。例如,计算设备108可以通过一个或多个网络128从一个或多个车辆102接收日志数据。在某些实施例中,日志数据可以由真实车辆的感知系统至少部分基于由真实车辆的一个或多个传感器采集的传感器数据来生成。在至少一个实施例中,日志数据包括表示真实车辆和/或另外的真实车辆在多个时间段中操作所处的环境的日志数据的多个实例。
在操作804中,方法800可以包括使用日志数据来生成用于测试车辆控制器的仿真环境,仿真环境表示真实环境。例如,计算设备108可以生成包括仿真环境的仿真指令112。在操作806中,方法800可以包括在仿真车辆穿越仿真环境时确定该仿真车辆的仿真地点。仿真车辆可以通过车辆控制器控制。附加地,在一些实施例中,仿真车辆在仿真环境中的仿真姿态可能偏离真实车辆在真实环境中的真实姿态(例如,仿真车辆可能定向为朝向距离正北90度,而真实车辆朝向距离正北93度)。在一些实施例中,计算设备108可以基于仿真车辆在仿真环境内的位置来从仿真车辆接收地理定位数据,并且仿真车辆的仿真地点可以至少部分基于地理定位数据来确定。
在操作808中,方法800可以包括至少部分基于日志数据来确定真实车辆在真实环境中的真实地点,该真实地点与仿真车辆在仿真环境中的仿真地点相关联。例如,计算设备108可以确定真实车辆的真实地点。附加地,计算设备108还可以至少部分基于接收与仿真车辆在仿真环境中的仿真地点相关联的地理定位数据来确定真实车辆的真实地点。
在操作810中,方法800可以包括在仿真环境中生成仿真对象,该仿真对象表示由真实车辆从真实地点感知到的真实环境中的真实对象。例如,计算设备108可以在与真实对象在真实环境中的真实世界地点相对应的仿真环境中的仿真地点实例化仿真对象。
在操作812中,方法800可以包括确定是否结束仿真。例如,如果仿真处于仿真所基于的日志数据文件的末尾,则计算设备108可以确定结束仿真并进入操作814。但是,如果仿真尚未处于日志数据文件的末尾,或者如果要继续仿真,则方法800可以循环回到操作806。这样,操作806-812可以继续进行,直到到达仿真的末尾,使得仿真环境将会基于仿真车辆的仿真地点继续更新。在操作814中,如果要终止仿真,则方法800可以包括确定仿真车辆是否成功通过仿真测试。例如,计算设备108可以确定仿真的仿真车辆是否安全、有效地穿越仿真环境等。
示例条款
A.一种系统,包括:一个或多个处理器;以及一个或多个非暂时性计算机可读介质,其中存储有指令,该指令当由该一个或多个处理器执行时,使得该系统执行包括以下内容的操作:接收表示真实车辆在一时间段中操作所处的真实环境的日志数据;使用日志数据来生成用于测试自动驾驶车辆控制器的仿真场景,仿真场景包括表示真实环境的至少一部分的仿真环境;通过自动驾驶车辆控制器使得仿真自动驾驶车辆穿越仿真环境,其中仿真自动驾驶车辆在仿真环境中的路径偏离真实车辆在真实环境中的路径;确定仿真自动驾驶车辆在仿真环境中的仿真地点;至少部分基于日志数据,确定真实车辆在真实环境中的真实地点与已偏离的仿真自动驾驶车辆在仿真环境中的仿真地点最接近地对应的该时间段中的第一时间;从日志数据中获取对象数据,该对象数据表示在第一时间由真实车辆感知到的真实环境中的真实对象;以及在仿真环境中生成表示真实对象的仿真对象。
B.如A段所述的系统,其中仿真地点包括第一仿真地点,并且真实地点包括第一真实地点,该操作进一步包括:确定仿真自动驾驶车辆在仿真环境中的第二仿真地点,第二仿真地点不同于第一仿真地点;至少部分基于日志数据,确定真实车辆在真实环境中的第二真实地点与已偏离的仿真自动驾驶车辆在仿真环境中的第二仿真地点最接近地对应的该时间段中的第二时间;以及以下至少一项:更新仿真对象,以与真实车辆在第二时间感知到的真实环境中的真实对象相对应;或在仿真环境中生成第二仿真对象,该第二仿真对象表示由真实车辆在第二时间感知到的真实环境中的第二真实对象。
C.如A或B段中任一段所述的系统,其中仿真对象包括第一仿真对象,该操作进一步包括在仿真环境中并且至少部分基于仿真自动驾驶车辆的仿真地点或第一时间中的至少一个,避免生成第二仿真对象,该第二仿真对象表示由真实车辆在第一时间之后的第二时间感知到的真实环境中的第二真实对象。
D.如A-C段中任一段所述的系统,该操作进一步包括:确定表示真实对象的对象数据是与静态对象相关联还是与动态对象相关联;以及其中,生成表示真实对象的仿真对象至少部分基于确定对象数据与静态对象相关联。
E.如A-D段中任一段所述的系统,其中仿真自动驾驶车辆在仿真环境中的仿真姿态偏离真实车辆在真实环境中的真实姿态。
F.一种方法,包括:接收表示第一车辆操作所处的第一环境的日志数据;使用日志数据来生成用于测试车辆控制器的仿真环境,仿真环境表示真实第一环境;在第二车辆穿越仿真环境时确定该第二车辆的位置,第二车辆通过车辆控制器控制,其中第二车辆在仿真环境中的路径偏离第一车辆在第一环境中的路径;至少部分基于日志数据,确定第一车辆在第一环境中的地点,该地点与已偏离的第二车辆在仿真环境中的位置相关联;以及在仿真环境中生成仿真对象,该仿真对象表示由第一车辆从该地点感知到的第一环境中的第一对象。
G.如F段所述的方法,进一步包括:确定第二车辆已经在仿真环境中改变位置;更新仿真环境以包括另外的仿真对象,该另外的仿真对象表示由第一车辆从第二地点感知到的第一环境中的第二对象,该第二地点与第二车辆的已改变的位置相关联。
H.如F或G段中任一段所述的方法,其中日志数据与一时间段相关联,第一车辆该时间段中在第一环境中操作,该方法进一步包括:至少部分基于日志数据,确定该时间段中的第一时间,第一车辆在该第一时间被定位在该地点;以及从日志数据中获取对象数据,该对象数据表示由第一车辆在第一时间感知到的第一环境中的第一对象,其中仿真对象至少部分基于对象数据来生成。
I.如F-H段中任一段所述的方法,其中确定第一车辆的地点包括确定与第二车辆在仿真环境中的位置最接近地对应的第一车辆在第一环境中的地点。
J.如F-I段中任一段所述的方法,还包括:更新仿真指令,以包括仿真环境;以及将仿真指令输入到车辆控制器中,使得车辆控制器控制第二车辆以穿越仿真环境。
K.如F-J段中任一段所述的方法,其中日志数据包括仿真传感器数据或由第一车辆的传感器采集的实际传感器数据。
L.如F-K段中任一段所述的方法,还包括通过车辆控制器至少部分基于感知到仿真对象来控制第二车辆。
M.如F-L段中任一段所述的方法,还包括:接收指示用户指定地点的输入,另一个仿真对象将会在仿真环境中被包括在该用户指定地点内;以及在仿真环境中,在用户指定地点生成另一个仿真对象。
N.如F-M段中任一段所述的方法,其中日志数据包括表示第一车辆或第三车辆在多个时间段中操作所处的第一环境的日志数据的多个实例,并且其中确定第二车辆的位置至少部分基于日志数据的该多个实例。
O.如F-N段中任一段所述的方法,进一步包括确定第一环境中的第一对象是静态对象还是动态对象,以及其中,在仿真环境中生成仿真对象至少部分基于确定第一对象是静态对象。
P.一个或多个非暂时性计算机可读介质,其存储计算机可执行指令,该计算机可执行指令在被执行时,使得一个或多个处理器执行包括以下内容的操作:接收表示第一车辆操作所处的第一环境的日志数据;使用日志数据来生成用于测试车辆控制器的仿真环境,仿真环境表示第一环境;在第二车辆穿越仿真环境时确定该第二车辆的位置,第二车辆通过车辆控制器控制,其中第二车辆在仿真环境中的姿态偏离第一车辆在第一环境中的姿态;至少部分基于日志数据,确定第一车辆在第一环境中的地点,该地点与已偏离的第二车辆在仿真环境中的位置相关联;以及在仿真环境中生成仿真对象,该仿真对象表示由第一车辆从该地点感知到的第一环境中的第一对象。
Q.如P段所述的一个或多个非暂时性计算机可读介质,该操作进一步包括:确定第二车辆已经在仿真环境中改变位置;以及更新仿真环境以包括另外的仿真对象,该另外的仿真对象表示第二对象由第一车辆从第二地点感知到的第一环境中的第二对象,该第二地点与第一车辆的已改变的位置相关联。
R.如P或Q段中任一段所述的一个或多个非暂时性计算机可读介质,其中日志数据与一时间段相关联,第一车辆在该时间段中在第一环境中操作,该操作进一步包括:至少部分基于日志数据,确定该时间段中的第一时间,第一车辆在该第一时间被定位在该地点;以及从日志数据中获取对象数据,该对象数据表示由第一车辆在第一时间感知到的第一环境中第一对象。
S.如P-R段中任一段所述的一个或多个非暂时性计算机可读介质,其中确定第一车辆的地点包括确定与第二车辆在仿真环境中的位置最接近地对应的第一车辆在第一环境中的地点。
T.如P-S段中任一段所述的一个或多个非暂时性计算机可读介质,该操作进一步包括:接收指示用户指定地点的输入,另外的仿真对象将会在仿真环境中生成在该用户指定地点内;以及在仿真环境中,在用户指定地点生成另一个仿真对象。U.一种方法,包括:接收表示真实车辆在一时间段中操作所处的真实环境的多个日志数据文件,该多个日志数据文件表示由真实车辆从沿由真实车辆穿越的路径的不同地点并且在车辆穿越该路径的时间段中的不同时刻感知到的真实环境中的不同对象;向车辆控制器呈现该多个日志数据文件中的第一日志数据文件,以仿真用于测试车辆控制器的场景,第一日志数据文件表示由真实车辆从沿该路径的第一地点感知到的真实环境中的对象,真实车辆在第一时刻位于该第一地点;通过车辆控制器并至少部分基于第一日志数据文件,使得仿真车辆穿越表示真实环境的仿真环境;确定车辆控制器已经使得仿真车辆从仿真环境中的第一位置移动到仿真环境中的第二位置,第一位置与第一地点相对应;确定第二位置偏离由真实车辆穿越的路径;至少部分基于确定第二位置偏离该路径,确定沿该路径的第二地点,真实车辆在第二时时刻位于该第二地点,第二地点与第二位置最接近地对应;识别该多个日志数据文件中的第二日志数据文件,第二日志数据文件表示由真实车辆从沿该路径的第二地点感知到的真实环境中的对象,真实车辆在第二时刻位于该第二地点;以及向车辆控制器呈现第二个日志数据文件。
虽然上述示例条款是针对一种特定的实施方案进行描述的,但应理解的是,在本文的上下文中,示例条款的内容也可以通过方法、设备、系统、计算机可读介质和/或另一种实施方案来实现。附加地,实施例A-U中的任何一个都可以单独实施,也可以与示例A-U中的任何其他一个或多个结合实施。
结论
虽然本文所述技术的一个或多个实施例已被描述,但其各种改变、添加、排列和等价物都包含在本文所述技术的范围内。
在对示例的描述中,参考了构成本文一部分的附图,这些附图以图解的方式展示要求保护的主题的具体实施例。应当理解的是,可以使用其他示例,也可以进行更改或改动,例如结构更改。这些示例、改变或改动并不一定偏离预期要求保护的主题的范围。虽然本文中的步骤可以按照一定的顺序呈现,但在某些情况下,可以改变顺序,以便在不同的时间或以不同的顺序提供某些输入,而不改变所述系统和方法的功能。所公开的程序也可以按不同顺序执行。附加地,本文中的各种计算不一定按照所公开的顺序执行,使用其他计算顺序的其他示例也可以很容易地实现。除了重新排序外,还可以将计算分解为具有相同结果的子计算。
Claims (15)
1.一种系统,包括:
一个或多个处理器;以及
一个或多个非暂时性计算机可读介质,其存储指令,所述指令当由所述一个或多个处理器执行时,使得所述系统执行包括以下内容的操作:
接收表示真实车辆在一时间段中操作所处的真实环境的日志数据;
使用日志数据来生成用于测试自动驾驶车辆控制器的仿真场景,仿真场景包括表示真实环境的至少一部分的仿真环境;
通过自动驾驶车辆控制器,使得仿真自动驾驶车辆穿越仿真环境,其中仿真自动驾驶车辆在仿真环境中的路径偏离真实车辆在真实环境中的路径;
确定仿真自动驾驶车辆在仿真环境中的仿真地点;
至少部分基于日志数据,确定真实车辆在真实环境中的真实地点与已偏离的仿真自动驾驶车辆在仿真环境中的仿真地点最接近地对应的所述时间段中的第一时间;
从日志数据中获取对象数据,所述对象数据表示由真实车辆在第一时间感知到的真实环境中的真实对象;以及
在仿真环境中生成表示真实对象的仿真对象。
2.根据权利要求1所述的系统,其中仿真地点包括第一仿真地点,真实地点包括第一真实地点,所述操作进一步包括:
确定仿真自动驾驶车辆在仿真环境中的第二仿真地点,第二仿真地点不同于第一仿真地点;
至少部分基于日志数据,确定真实车辆在真实环境中的第二真实地点与已偏离的仿真自动驾驶车辆在仿真环境中的第二仿真地点最接近地对应的所述时间段中的第二时间;以及
以下至少一项:
更新仿真对象,以与由真实车辆在第二时间感知到的真实环境中的真实对象相对应;或
在仿真环境中生成第二仿真对象,所述第二仿真对象表示由真实车辆在第二时间感知到的真实环境中的第二真实对象。
3.根据权利要求1或2所述的系统,其中仿真对象包括第一仿真对象,所述操作进一步包括在仿真环境中并且至少部分基于仿真自动驾驶车辆的仿真地点或第一时间中的至少一个,避免生成第二仿真对象,所述第二仿真对象表示由真实车辆在第一时间之后的第二时间感知到的真实环境中的第二真实对象。
4.权利要求1-3中任一项所述的系统,所述操作还包括:
确定表示真实对象的对象数据是与静态对象相关联还是与动态对象相关联;以及
其中,生成表示真实对象的仿真对象至少部分基于确定对象数据与静态对象相关联。
5.根据权利要求1-4中任一项所述的系统,其中仿真自动驾驶车辆在仿真环境中的仿真姿态偏离真实车辆在真实环境中的真实姿态。
6.一种方法,包括:
接收表示第一车辆操作所处的第一环境的日志数据;
使用日志数据来生成用于测试车辆控制器的仿真环境,仿真环境表示真实第一环境;
在第二车辆穿越仿真环境时确定所述第二车辆的位置,第二车辆通过车辆控制器控制,其中第二车辆在仿真环境中的路径偏离第一车辆在第一环境中的路径;
至少部分基于日志数据,确定第一车辆在第一环境中的地点,所述地点与已偏离的第二车辆在仿真环境中的位置相关联;以及
在仿真环境中生成仿真对象,所述仿真对象表示由第一车辆从所述地点感知到的第一环境中的第一对象。
7.根据权利要求6所述的方法,还包括:
确定第二车辆已经在仿真环境中改变位置;以及
更新仿真环境以包括另外的仿真对象,所述另外的仿真对象表示由第一车辆从第二地点感知到的第一环境中的第二对象,所述第二地点与第二车辆的已改变的位置相关联。
8.根据权利要求6或7所述的方法,其中日志数据与一时间段相关联,在所述时间段中,第一车辆在第一环境中操作,所述方法进一步包括:
至少部分基于日志数据,确定所述时间段中的第一时间,第一车辆在所述第一时间被定位于所述地点;以及
从日志数据中获取对象数据,所述对象数据表示由第一车辆在第一时间感知到的第一环境中的第一对象,其中仿真对象至少部分基于对象数据来生成。
9.根据权利要求6所述的方法,其中确定第一车辆的地点包括确定与第二车辆在仿真环境中的位置最接近地对应的第一车辆在第一环境中的地点。
10.根据权利要求6-9中任一项所述的方法,还包括:
更新仿真指令,以包括仿真环境;以及
将仿真指令输入到车辆控制器中,使得车辆控制器控制第二车辆以穿越仿真环境。
11.根据权利要求6-10中任一项所述的方法,其中日志数据包括仿真传感器数据或由第一车辆的传感器采集的实际传感器数据。
12.根据权利要求6-11中任一项所述的方法,还包括通过车辆控制器至少部分基于感知仿真对象来控制第二车辆。
13.根据权利要求6-12中任一项所述的方法,还包括:
接收指示用户指定地点的输入,另外的仿真对象将会在仿真环境中被包括在所述用户指定地点内;以及
在仿真环境中,在用户指定地点生成另一个仿真对象。
14.根据权利要求6、权利要求8或权利要求11中任一项所述的方法,其中日志数据包括表示第一车辆或第三车辆在多个时间段中操作所处的第一环境的日志数据的多个实例,并且其中确定第二车辆的位置至少部分基于日志数据的所述多个实例。
15.一个或多个非暂时性计算机可读介质,其存储指令,所述指令在被处理器执行时,使处理器执行如权利要求6-14中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/193,826 US20220283055A1 (en) | 2021-03-05 | 2021-03-05 | Instantiating objects in a simulated environment based on log data |
US17/193,826 | 2021-03-05 | ||
PCT/US2022/016738 WO2022186990A1 (en) | 2021-03-05 | 2022-02-17 | Instantiating objects in a simulated environment based on log data |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116917828A true CN116917828A (zh) | 2023-10-20 |
Family
ID=83116072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280018815.5A Pending CN116917828A (zh) | 2021-03-05 | 2022-02-17 | 基于日志数据在仿真环境中实例化对象 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220283055A1 (zh) |
EP (1) | EP4302165A1 (zh) |
JP (1) | JP2024513666A (zh) |
CN (1) | CN116917828A (zh) |
WO (1) | WO2022186990A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11810225B2 (en) * | 2021-03-30 | 2023-11-07 | Zoox, Inc. | Top-down scene generation |
US11858514B2 (en) | 2021-03-30 | 2024-01-02 | Zoox, Inc. | Top-down scene discrimination |
Family Cites Families (3)
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 |
US10831202B1 (en) * | 2017-09-01 | 2020-11-10 | Zoox, Inc. | Onboard use of scenario description language |
-
2021
- 2021-03-05 US US17/193,826 patent/US20220283055A1/en active Pending
-
2022
- 2022-02-17 EP EP22763755.0A patent/EP4302165A1/en active Pending
- 2022-02-17 WO PCT/US2022/016738 patent/WO2022186990A1/en active Application Filing
- 2022-02-17 CN CN202280018815.5A patent/CN116917828A/zh active Pending
- 2022-02-17 JP JP2023553528A patent/JP2024513666A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4302165A1 (en) | 2024-01-10 |
US20220283055A1 (en) | 2022-09-08 |
JP2024513666A (ja) | 2024-03-27 |
WO2022186990A1 (en) | 2022-09-09 |
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 | |
JP7341864B2 (ja) | 3dデータを2d画像データに登録するためのシステム及び方法 | |
US20200134494A1 (en) | Systems and Methods for Generating Artificial Scenarios for an Autonomous Vehicle | |
JP2021524410A (ja) | ドライブエンベロープの決定 | |
US11526721B1 (en) | Synthetic scenario generator using distance-biased confidences for sensor data | |
US11079492B1 (en) | Condition dependent parameters for large-scale localization and/or mapping | |
US11628850B2 (en) | System for generating generalized simulation scenarios | |
US11513519B1 (en) | Sharing occlusion data | |
US11415997B1 (en) | Autonomous driving simulations based on virtual simulation log data | |
US20230150549A1 (en) | Hybrid log simulated driving | |
CN116917828A (zh) | 基于日志数据在仿真环境中实例化对象 | |
US11496707B1 (en) | Fleet dashcam system for event-based scenario generation | |
WO2020264276A1 (en) | Synthetic scenario generator based on attributes | |
CN114761298A (zh) | 使用传感器数据进行高度估计 | |
CN114430722A (zh) | 安全分析框架 | |
US20230311932A1 (en) | Merging object and background radar data for autonomous driving simulations | |
CN116917827A (zh) | 驾驶仿真中的代理转换 | |
US20220266859A1 (en) | Simulated agents based on driving log data | |
CN116466697A (zh) | 用于运载工具的方法、系统以及存储介质 | |
US11157756B2 (en) | System and method for detecting errors and improving reliability of perception systems using logical scaffolds | |
CN114787894A (zh) | 感知误差模型 | |
WO2024006115A1 (en) | Determining right of way | |
WO2023192397A1 (en) | Capturing and simulating radar data for autonomous driving systems |
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 |