自动驾驶车辆的相对图集及其生成
背景技术
随着计算技术和车辆技术的不断发展,与自动驾驶有关的特征变得更加强大和广泛可用,并能够在更广泛的情况下控制车辆。例如,对于汽车,汽车行业通常采用SAE国际标准J3016,该标准指定了6个自动驾驶级别。无自动驾驶的车辆被指定为0级,而具有1级自动驾驶的车辆则控制转向或速度(但不能同时控制两者),从而使操作员能够执行大多数车辆功能。具有2级自动驾驶,车辆能够在有限的情况下(例如,在高速公路上行驶时)控制转向、速度和制动,但是仍然需要操作员保持警觉并随时准备接管操作,以及处理任何诸如变道或转弯等动作。从3级自动驾驶开始,车辆可以管理大多数运行变量,包括监视周围环境,但是仍然需要操作员保持警惕,并在遇到车辆无法处理的情况时接管车辆。4级自动驾驶提供了无需操作员输入即可操作的能力,但仅在特定条件下(诸如,仅某些类型的道路(例如,高速公路)或仅某些地理区域(诸如,存在适当地图数据的特定城市)可操作。最后,5级自动驾驶表示下述自动驾驶水平:在人类操作员也可以操作的任何情况下,车辆都可以不受操作员控制地进行操作。
任何与自动驾驶相关的技术的基本挑战都涉及到收集和解释有关车辆周围环境的信息,以及在给定当前车辆操作环境的情况下制定和实施决策来适当地控制车辆。因此,人们一直在努力改善这些方面中的每一个,并且通过这样做,自动驾驶车辆越来越能够可靠地处理各种情况,并适应环境中的预期和意外情况。
发明内容
本公开部分地涉及一种相对图集图的生成,以存储在自动驾驶车辆的控制中使用的地图数据。可以基于从地理区域收集的观察结果为地理区域生成相对图集图,并且相对图集图可以包括与从观察结果中检测到的元素相对应的元素节点,以及连接元素节点对并定义连接的元素节点对的元素之间的相对姿态的边。
因此,根据本发明的一个方面,一种生成自动驾驶车辆使用的地图数据的方法可以包括:接收地理区域的多个观察结果;以及基于所述地理区域的多个观察结果,为所述地理区域生成相对图集图。生成相对图集图可以包括:为从所述多个观察结果中检测到的多个元素生成多个元素节点,每个元素节点具有所述多个元素当中的关联元素;生成多个边,每个边连接所述多个元素节点中的一对元素节点,并定义所述对元素节点的所述关联元素之间的相对姿态,以及在所述相对图集图中存储所述多个元素节点和所述多个边。
在一些实施方式中,每个边包括变换字段,所述变换字段定义所连接的一对元素节点的关联元素之间的相对姿态。而且,在一些实施方式中,在所述相对图集图中存储所述多个元素节点和所述多个边包括:将所述多个元素节点作为记录存储在节点表格中以及将所述多个边作为记录存储在边表格中。
此外,在一些实施方式中,所述节点表格和所述边表格被维护在关系数据库中。
在一些实施方式中,所述多个元素节点中的每个包括标识符字段,所述标识符字段包括用于其关联元素的标识符,所述多个边中的每个包括第一标识符字段和第二标识符字段,所述第一标识符字段和所述第二标识符字段包括用于由此连接的一对元素节点的关联元素的标识符。另外,在一些实施方式中,所述多个元素节点中的每个包括类型字段,所述类型字段指定表征各个元素节点的类型,所述多个边中的每个包括类型字段,所述类型字段指定表征各个边的类型。
在一些实施方式中,所述多个元素节点中的每个包括包含元素特定数据的有效载荷字段,并且,所述多个边中的每个包括包含边特定数据的有效载荷字段。另外,在一些实施方式中,基于在所述第一元素节点的类型字段中指定的类型来构造所述多个节点当中的第一元素节点的有效载荷字段中的所述元素特定数据,以及基于在所述第一边的类型字段中指定的类型来构造所述多个边当中的第一边的有效载荷字段中的边特定数据。
此外,在一些实施方式中,生成所述相对图集图进一步包括生成用于所述地理区域的多个图块节点,每个图块节点表示所述地理区域的区域,以及生成第二多个边,所述第二多个边中的每个边将所述多个元素节点当中的元素节点连接到所述多个图块节点当中的图块节点,并在连接图块节点的参考系内定义连接元素节点的关联元素的相对姿态。
在一些实施方式中,所述第二多个边包括第一边和第二边,所述第一边将所述多个元素节点当中的第一元素节点连接到所述多个图块节点当中的第一图块节点并在所述第一图块节点的参考系内定义第一元素节点的关联元素的相对姿态,以及所述第二边将第一元素节点连接到所述多个图块节点当中的第二图块节点并在所述第二图块节点的参考系内定义第一元素节点的关联元素的相对姿态。一些实施方式还可以包括生成连接所述第一图块节点和所述第二图块节点的图块和图块边,并且定义所述第一图块和所述第二图块之间的相对姿态。
一些实施方式可以进一步包括:生成定义固定参考点的固定参考节点;以及生成分别将所述第一图块节点和所述第二图块节点连接到所述固定参考节点并分别定义所述第一图块和所述第二图块与固定参考点之间的相对姿态的第一固定参考边和第二固定参考边。在一些实施方式中,所述固定参考点是以地球为中心的地球固定(ECEF)参考点。另外,在一些实施方式中,所述多个元素节点不通过边直接连接到所述固定参考节点,使得在所述多个元素和所述固定参考点之间没有定义相对姿态。
一些实施方式还可以包括在所述第一图块节点中存储几何数据,所述几何数据定义用于由所述第一图块节点表示的所述地理区域的区域的至少一部分的表面模型。此外,在一些实施方式中,所述多个元素节点包括多个门节点,每个门节点定义表示在地理区域内的允许的车辆姿态的门。同样,在一些实施方式中,生成所述多个元素节点包括:基于由一个或多个遍历所述地理区域的车辆收集的一个或多个车辆日志中的一个或多个遍历路径来生成所述多个门节点。
在一些实施方式中,所述多个边包括连接所述多个门节点中的一对门节点的多个门和门边,每个门和门边定义由各个对门节点对定义的一对门之间的许可车辆路径。另外,在一些实施方式中,所述多个门和门边当中的第一门和门边连接表示道路的相同车道的所述多个门节点当中的第一门节点和第二门节点。而且,在一些实施方式中,所述多个门和门边当中的第一门和门边连接表示一个或多个道路的不同车道的所述多个门节点当中的第一门节点和第二门节点。
此外,在一些实施方式中,所述多个元素节点进一步包括多个边界节点,每个边界节点定义限制在地理区域内的车辆移动的物理或虚拟边界。此外,在一些实施方式中,生成所述多个元素节点包括:基于由遍历所述地理区域的一个或多个车辆收集的一个或多个车辆日志中的观察结果来生成所述多个边界节点。而且,在一些实施方式中,所述多个边进一步包括连接所述多个边界节点当中的边界节点对的多个边界和边界边,每个边界和边界边定义由各个边界节点对定义的一对边界之间的相对姿态。此外,在一些实施方式中,所述多个边进一步包括多个边界和门边,每个边界和门边连接所述多个门节点当中的门节点与所述多个边界节点当中的边界节点,并定义分别由由此连接的门节点和边界节点定义的门和边界之间的相对姿态。
在一些实施方式中,所述多个节点包括多个交通节点,每个交通节点与地理区域内的交通控制相关联。而且,在一些实施方式中,生成所述多个元素节点包括:基于由遍历所述地理区域的一个或多个车辆收集的一个或多个车辆日志的观察结果来生成所述多个交通节点。在一些实施方式中,生成包围在所述地理区域的图像中检测到的交通设备的包围框,对在所述地理区域内被所述包围框包围的交通设备的位置进行三角测量,以及存储连接到一个或多个交通节点的边中与所述交通设备的三角测量的位置相对应的相对姿态。
此外,在一些实施方式中,多个交通节点包括:定义用于管制地理区域的交通控制的控制节点,多个交通设备节点,每个交通设备节点定义所述管制地理区域中的交通设备,以及多个通道节点,所述多个通道节点定义通过所述管制地理区域的通道,并且,所述多个边包括将所述多个交通设备节点连接至所述控制节点的交通设备和控制边,以及将所述多个通道节点连接至所述控制节点的控制和通道边。在一些实施方式中,所述多个边进一步包括:交通设备和图块边,所述交通设备和图块边将所述多个交通设备节点当中的交通设备节点连接到所述多个节点当中的一个或多个图块节点,并分别定义由相应交通节点定义的交通设备与由相应一个或多个图块节点定义的一个或多个图块之间的相对姿态。此外,在一些实施方式中,所述多个边进一步包括通道和门边,所述通道和门边将所述多个通道节点当中的通道节点连接到所述多个元素节点当中的一个或多个门节点,以定义由交通控制控制的门。
另外,一些实施方式可以进一步包括将所生成的相对图集图与第二地理区域的另一相对图集图合并。另外,一些实施方式可以还包括:基于所述多个观察结果当中的一个或多个观察结果来检测所述地理区域中的第一元素;确定所述多个元素节点当中的第一元素节点用于所述第一元素;以及基于所述多个观察结果当中的一个或多个观察结果,修改由将所述第一元素节点连接到用于所述第二元素的第二元素节点的第一边定义的相对姿态,以相对于所述第二元素重新放置所述第一元素。在一些实施方式中,所述第二元素节点通过第二边连接到用于第三元素的第三元素节点,在不修改由所述第二边定义的相对姿态的情况下执行修改由所述第一边定义的相对姿态,使得在不修改由所述第二边定义的相对姿态的情况下修改由所述第一边定义的相对姿态将所述第一元素相对于所述第三元素重新放置。
一些实施方式可以还包括在一个或多个自动驾驶车辆内收集多个观察结果。另外,在一些实施方式中,生成所述相对图集图由自动驾驶车辆执行。而且,在一些实施方式中,生成所述相对图集图由远离一个或多个自动驾驶车辆并与所述一个或多个自动驾驶车辆通信的计算机系统执行。另外,一些实施方式可以还包括通过无线通信网络将所述相对图集图的至少一部分部署到所述一个或多个自动驾驶车辆中的至少一个。
一些实施方式可以还包括响应于一个或多个观察结果修改所述相对图集图,以及将所修改的相对图集图中的一个或多个改变传播到所述多个自动驾驶车辆中的一个或多个。
一些实施方式可以进一步包括通过以下步骤将外部数据导入所述相对图集图中:将所述外部数据转换为固定的参考系,识别所述相对图集图中的一个或多个图块节点,所述一个或多个图块节点分别定义在所述固定参考系中邻近所述外部数据的一个或多个图块,将所述外部数据投影到所述一个或多个图块中的每个的参考系中,为所述外部数据表示的一个或多个元素生成一个或多个元素节点,生成将所述一个或多个元素节点连接到所述一个或多个图块节点的一个或多个边,所述一个或多个边中的每一个定义一个或多个元素当中的元素在所述一个或多个图块当中的图块的参考系中的元素定义相对姿态,并将所生成的一个或多个元素节点和一个或多个边添加到所述相对图集图。另外,在一些实施方式中,导入所述外部数据进一步包括:基于所述外部数据与在所述相对图集图中定义的一个或多个现有元素之间的稀疏对应,执行所述外部数据的校正翘曲。
根据本发明的另一方面,一种装置可以包括存储器,耦合到所述存储器的一个或多个处理器,以及计算机指令,其可由一个或多个处理器执行以生成自动驾驶车辆使用的地图数据,所述计算机指令被配置为基于所述地理区域的多个观察结果,通过以下步骤为所述存储器中的地理区域生成相对图集图:为从所述多个观察结果中检测到的多个元素生成多个元素节点,每个元素节点具有所述多个元素当中的关联元素,生成多个边,每个边连接所述多个元素节点中的一对元素节点,并定义所述对元素节点的所述关联元素之间的相对姿态,并将所述多个元素节点和所述多个边存储在所述存储器中的相对图集图中。
此外,在一些实施方式中,该装置包括自动驾驶车辆。此外,在一些实施方式中,该装置包括计算机系统,所述计算机系统远离一个或多个自动驾驶车辆并与所述一个或多个自动驾驶车辆通信。
根据本发明的另一方面,一种生成自动驾驶车辆使用的地图数据的方法可以包括:接收地理区域的多个观察结果;以及基于所述地理区域的多个观察结果,为所述地理区域生成相对图集图,包括为从所述多个观察结果中检测到的多个元素生成多个元素节点,每个元素节点具有所述多个元素当中的关联元素,生成多个边,每个边连接所述多个元素节点中的一对元素节点,并定义所述一对元素节点的所述关联元素之间的相对姿态,以及将所述多个元素节点和所述多个边存储在所述相对图集图中。
根据本发明的另一方面,一种将地图数据改变传播到自动驾驶车辆的方法可以包括:接收地理区域的多个观察结果;基于所述地理区域的多个观察结果来修改所述地理区域的相对图集图,所述相对图集图包括多个元素的多个元素节点和多个边,每个边连接所述多个元素节点当中的一对元素节点,并定义所述一对元素节点的所述关联元素之间的相对姿态,修改所述相对图集图包括:从所述多个观察结果中检测所述地理区域中的改变元素;以及修改由将所述改变元素的第一元素节点连接到所述相对图集图中的另一元素的第二元素节点的第一边定义的相对姿态,以相对于所述另一元素重新放置所述改变元素,以及将所述相对姿态的修改传播到所述自动驾驶车辆。
此外,在一些实施方式中,修改相对图集图进一步包括:从所述多个观察结果中检测所述地理区域中的新元素;为所述新元素生成新元素节点;生成将所述新元素节点连接到所述相对图集图中的现有元素节点的第二边,所述第二边定义所述新元素与由所述现有元素节点定义的现有元素之间的相对姿态;将所述新元素节点和第二边存储在所述相对图集图中;以及将所述新元素节点和第二边传播到所述自动驾驶车辆。
根据本发明的另一方面,一种生成自动驾驶车辆使用的地图数据的方法可以包括:接收地理区域的车辆日志;确定围绕所述车辆日志中的多个感兴趣元素的包围框;使用所确定的包围框对在所述多个感兴趣元素中的每个感兴趣元素的位置进行三角测量;在相对图集图中生成定义所述多个感兴趣元素的多个元素节点;以及在所述相对图集图中生成多个边,每个边连接到所述多个元素节点中的元素节点,并定义基于三角测量的其位置由此定义的感兴趣元素的相对姿态。
在一些实施方式中,确定所述包围框自动地或在人工协助下手动地执行。此外,在一些实施方式中,感兴趣的元素是交通设备。一些实施方式可以进一步包括在所述相对图集图中生成定义表示所述地理区域的区域的图块的多个图块节点,其中,生成所述多个边包括生成分别将第一交通设备的第一元素节点连接到所述多个图块节点当中的第一图块节点和第二图块节点的第一边和第二边,所述第一边和所述第二边分别定义所述第一交通设备的第一相对姿态和第二相对姿态。
根据本发明的另一方面,可以提供一种将地图数据部署到自动驾驶车辆的方法。地图数据存储在相对图集图中,所述相对图集图包括:多个元素的多个元素节点;第一多个边,所述多个边当中的每个边连接所述多个元素节点当中的一对元素节点,并定义所述一对元素节点的关联元素之间的相对姿态;地理区域的多个图块节点,每个图块节点表示对应于所述地理区域的区域的图块;第二多个边,所述第二多个边当中的每个边将所述多个元素节点当中的元素节点连接到所述多个图块节点中的图块节点,并在所连接图块节点的参考系内定义所连接元素节点的关联元素的相对姿态;以及第三多个边,所述第三多个边当中的每个边连接所述多个图块节点当中的一对图块节点,并定义所述一对图块节点的关联图块之间的相对姿态。该方法可以包括:确定所述自动驾驶车辆的位置;访问所述相对图集图,以在由所述多个图块节点表示的图块中识别出与所述自动驾驶车辆的位置接近的根图块;通过访问所述第三多个当边中的一个或多个边来识别接近所述根图块的一个或多个附加图块;提取所述相对图集图的一部分,所述部分包括:所述根图块的根图块节点;所述一个或多个附加图块的一个或多个附加图块节点;所述多个元素节点当中的元素节点的子集,每个元素节点是通过从所述第二多个边到所述根图块或一个或多个附加图块节点之一的边连接的子集;连接到所述根图块节点中的任何一个的所述第一多个边、所述第二多个边和所述第三多个边当中的每个边;一个或多个附加图块节点以及元素节点的子集;以及将所述相关图集图的一部分传送给所述自动驾驶车辆。
根据本发明的另一方面,可以提供一种将外部数据导入到自动驾驶车辆使用的相对图集图中的方法,其中所述相对图集图包括:多个元素的多个元素节点;多个第一边,所述多个边当中的每个边连接所述多个元素节点中的一对元素节点,并定义所述一对元素节点的关联元素之间的相对姿态;地理区域的多个图块节点,每个图块节点表示与所述地理区域的区域相对应的图块;以及第二多个边,所述第二多个边当中的每个边将所述多个元素节点当中的元素节点连接到所述多个图块节点当中的图块节点,并在连接图块节点的参考系内定义连接元素节点的关联元素的相对姿态。该方法可以包括:将所述外部数据转换为固定参考系;识别所述相对图集图中的所述多个图块节点当中的、表示在所述固定参考系中接近所述外部数据的一个或多个图块的一个或多个图块节点;将所述外部数据投影到所述一个或多个图块中的每个的参考系中;为所述外部数据表示的一个或多个元素生成一个或多个元素节点;生成将所述一个或多个元素节点连接到所述一个或多个图块节点的一个或多个边,所述一个或多个边中的每个在所述一个或多个图块当中的图块的参考系中定义一个或多个元素当中的元素的相对位置;以及将所生成的一个或多个元素节点和一个或多个边添加到所述相对图集图。
应当理解,本文中更详细描述的前述概念和附加概念的所有组合被认为是本文公开的主题的一部分。例如,出现在本公开的结尾处的要求保护的主题的所有组合被认为是本文公开的主题的一部分。
附图说明
图1示出了用于自动驾驶车辆的示例硬件和软件环境。
图2是示出图1中引用的主车辆控制系统的示例实施方式的框图。
图3是示出图2中引用的相对图集系统的示例实施方式的框图。
图4是示出将来自图3的相对图集系统的两个节点链接在一起的边的框图。
图5是示出适用于定义图3的相对图集系统中的图块的示例节点和边类型的框图。
图6是示出适用于定义图3的相对图集系统中的门和边界的示例节点和边类型的框图。
图7是示出适用于定义图3的相对图集系统中的交通设备的示例节点和边类型的框图。
图8是示出由图3的相对图集系统定义的图块的示例集合的功能视图。
图9是示出适用于表示图8的图块的示例集合内的关系的示例节点和边的框图。
图10是示出由图3的相对图集系统定义的门和边界的示例集合的功能俯视图。
图11是示出适用于表示图10的门和边界的示例集合内的关系的示例节点和边的框图。
图12是示出由图3的相对图集系统定义的门和交通设备的示例集合的功能俯视图。
图13是示出适用于表示图12的门和交通设备的示例集合内的关系的示例节点和边的框图。
图14是示出两个相邻图块内的交通设备的相对姿态的功能透视图。
图15是示出用于在图3的相对图集系统中生成用于地理区域的子图的示例操作序列的流程图。
图16是示出用于将观察结果合并到现有图形中以与图3的相对图集系统一起使用的另一示例操作序列的流程图。
图17是示出用于将元素导入到图中以与图3的相对图集系统一起使用的操作的示例操作序列的流程图。
图18是示出用于部署子图以与图3的相对图集系统一起使用的操作的示例序列的流程图。
图19是示出用于将外部数据导入到图中以与图3的相对图集系统一起使用的操作的示例操作序列的流程图。
图20是示出用于利用图3的相对图集系统来计划车辆轨迹的示例操作序列的流程图。
图21是由图3的相对图集系统生成的示例数字地图的一部分的功能俯视图。
图22是示出用于引导图2中引用的定位子系统的示例操作序列的流程图。
图23是示出利用图3的相对图集系统来确定车辆姿态的示例操作序列的流程图。
图24是示出用于利用图3的相对图集系统确定车辆姿态的另一示例操作序列的流程图。
图25是示出用于利用图3的相对图集系统来确定交通控制状态的示例操作序列的流程图。
具体实施方式
在下文中讨论的各种实施方式通常针对自动驾驶车辆的相对图集系统的生成和使用。然而,在讨论这些实施方式之前,将讨论可以在其中实现本文公开的各种技术的示例硬件和软件环境。
硬件和软件环境
转向附图,其中贯穿若干视图,相同的数字表示相同的部分。图1示出了示例自动驾驶车辆100,在其中可以实施本文公开的各种技术。例如,车辆100被示为在道路101上行驶,并且车辆100可以包括动力总成102以及控制系统110,该动力总成102包括由能量源106供电并且能够向传动系统108提供电力的原动机104,控制系统110包括方向控制112、动力传动系统控制114和制动控制116。车辆100可以实现为任何数量的不同类型的车辆,包括能够运输人员和/或货物,并能够在陆路、海上、空中、地下、海底和/或太空行驶的交通工具,并且可以理解上述组件102-116可以基于利用这些组件的车辆的类型而广泛地改变。
下文中讨论的实施方式例如将集中于轮式陆地车辆,诸如小汽车、货车、卡车、公共汽车等。在这样的实施方式中,原动机104可包括一个或多个电动机和/或内燃发动机(等等),而能量源106可以包括燃料系统(例如,提供汽油、柴油、氢气等)、电池系统、太阳能电池板或其他可再生能源、燃料电池系统等,传动系统108可包括车轮和/或轮胎,以及适于将原动机104的输出转换成车辆运动的变速器和/或任何其他机械驱动部件,以及被配置为可控制地停止或减速车辆的一个或多个制动器以及适合于控制车辆轨迹的方向或转向组件(例如,齿条和小齿轮转向联动装置,使车辆100的一个或多个车轮能够围绕大体垂直的轴线枢转以改变车轮的旋转平面相对于车辆纵轴的角度)。在一些实施方式中,例如在电动/燃气混合动力车辆的情况下,可以使用动力总成和能量源的组合,并且在某些情况下,可以将多个电动机(例如,专用于单个车轮或轮轴)用作原动机。在氢燃料电池实施方式的情况下,原动机可以包括一个或多个电动机,并且能量源可以包括由氢燃料提供动力的燃料电池系统。
方向控制112可以包括一个或多个致动器和/或传感器,用于控制和接收来自方向或转向部件的反馈,以使车辆能够遵循期望的轨迹。动力总成控制114可以被配置为控制动力总成102的输出,例如以控制原动机104的输出功率,以控制动力总成108中的变速器的齿轮等,从而控制车辆的速度和/或方向。制动器控制116可以被配置为控制使车辆100减速或停止的一个或多个制动器,例如,联接至车辆的车轮的盘式或鼓式制动器。
如受益于本公开的本领域普通技术人员将理解的,其他车辆类型,包括但不限于飞机、太空飞行器、直升机、无人机、军用车辆、全地形或履带车辆、轮船、潜艇、建筑设备等,将必然利用不同的动力总成、动力传动系统、能量源、方向控制、动力传动系统控制和制动控制。此外,在一些实施方式中,例如在其中通过改变一个或多个原动机的输出主要处理车辆的方向控制的情况下,可以组合一些组件。因此,本发明不限于本文所述技术在自动轮式陆地车辆中的特定应用。
在所示的实施方式中,主要在主车辆控制系统120中实施对车辆100的自动驾驶控制(其可以包括各种程度的自动驾驶以及选择性地自动驾驶功能),该主车辆控制系统120可以包括一个或多个处理器122以及一个或多个存储器124,每个处理器122被配置为执行存储在存储器124中的程序代码指令126。
主传感器系统130可以包括适合于从车辆周围环境收集信息以用于控制车辆的操作的各种传感器。例如,卫星导航(SATNAV)传感器132(例如与诸如GPS、GLONASS、伽利略、指南针等各种卫星导航系统中的任何一个兼容)可用于使用卫星信号确定车辆在地球上的位置。无线电检测和测距(RADAR)传感器和光检测和测距(LIDAR)传感器134、136以及数字相机138(其可以包括能够捕获静止和/或视频图像的各种类型的图像捕获设备)可以用于感测车辆紧邻区域内的静止和移动物体。惯性测量单元(IMU)140可以包括能够检测车辆在三个方向上的线性和旋转运动的多个陀螺仪和加速计,而一个或多个车轮编码器142可以用于监视车辆100的一个或多个车轮的旋转。
传感器132-142的输出可以被提供给一组主控制子系统150,该主控制子系统包括定位子系统152、规划子系统154、感知子系统156和控制子系统158。定位子系统152主要是负责精确确定车辆100在其周围环境内并且通常在某个参考系内的位置和定向(有时也称为“姿态”,在某些情况下还可能包括一个或多个速度和/或加速度)。规划子系统154主要负责在给定期望目的地以及环境中的静态和移动物体的情况下,在某个时间范围内规划车辆100的运动路径,而感知子系统156主要负责检测、跟踪和/或识别在车辆100周围的环境中的元素。控制子系统158主要负责生成适当的控制信号,用于控制控制系统110中的各种控制,以实现车辆的规划路径。
另外,可以在所示实施方式中提供相对图集子系统(Relative Atlas Subsystem:RAS)160,以描述环境内的元素及其之间的关系。如将在下面更详细地讨论的,RAS 160可以被定位、规划和感知子系统152-156中的每一个访问,以获得关于环境的各种信息以用于执行它们各自的功能。
将理解的是,用于主车辆控制系统120的图1中所示的组件的集合本质上仅是示例性的。在一些实施方式中,可以省略各个传感器,图1中所示类型的多个传感器可以用于冗余和/或覆盖车辆周围的不同区域,并且可以使用其他类型的传感器。同样,在其他实施方式中可以使用不同控制子系统的类型和/或组合。此外,尽管子系统152-160被示为与处理器122和存储器124分离,但是应当理解,在一些实施方式中,子系统152-160的一些或全部功能可以利用驻留在一个或多个存储器124中的程序代码指令126来实现并由一个或多个处理器122执行,并且这些子系统152-160在某些情况下可以使用相同的处理器和/或存储器来实现。在一些实施方式中的子系统可以至少部分地使用各种专用电路逻辑、各种处理器、各种现场可编程门阵列(“FPGA”)、各种专用集成电路(“ASIC”)、各种实时控制器和/或子系统等来实现,并且如上所述,多个子系统可以利用公共电路、处理器、传感器和/或其他组件。此外,主车辆控制系统120中的各种组件可以以各种方式联网。
在一些实施方式中,车辆100还可以包括辅助车辆控制系统170,其可以用作车辆100的冗余或备用控制系统。在一些实施方式中,辅助车辆控制系统170可以能够在主车辆控制系统120中发生不利事件的情况下完全自动驾驶车辆100,而在其他实施方式中,辅助车辆控制系统170仅具有有限的功能,例如响应于在主车辆控制系统120中检测到的不利事件而执行车辆100的受控停车。在其他实施方式中,可以省略辅助车辆控制系统170。
通常,可以使用无数个不同的体系结构,包括软件、硬件、电路逻辑、传感器、网络等的各种组合,来实现图1所示的各种组件。每个处理器可以例如被实现为微处理器,并且每个存储器可以表示包括主存储器的随机存取存储器(RAM)设备以及任何补充级别的存储器,例如,高速缓冲存储器、非易失性或备份存储器(例如可编程存储器或闪存)、只读存储器等。另外,每个存储器可以被认为包括物理上位于车辆100中其他地方的存储器,例如处理器中的任何高速缓冲存储器,以及用作虚拟存储器的任何其他存储器容量,例如存储在大容量存储设备或另一台计算机或控制器上。图1中所示的一个或多个处理器,或完全独立的处理器可用于实现自动驾驶控制目的之外的车辆100中的其他功能,例如控制娱乐系统,以操作门、灯、便利功能等。
另外,对于额外的存储,车辆100还可以包括一个或多个大容量存储设备,例如,软盘或其他可移动磁盘驱动器、硬盘驱动器、直接存取存储设备(DASD)、光驱(例如CD驱动器、DVD驱动器等)、固态存储驱动器(SSD)、网络附加存储、存储区域网络和/或磁带驱动器等。此外,车辆100可以包括用户界面172,以使车辆100能够从用户或操作者接收多个输入并生成用于用户或操作者的输出,例如一个或多个显示器、触摸屏、语音和/或手势界面、按钮和其他触觉控制等。否则,可以通过另一台计算机或电子设备(例如,通过移动设备上的应用或通过Web界面)(例如,从远程操作员)接收用户输入。
此外,车辆100可以包括一个或多个网络接口,例如网络接口174,其适于与一个或多个网络176(例如,LAN、WAN、无线网络和/或互联网)进行通信以允许与其他车辆、计算机和/或电子设备进行信息通信,包括例如中央服务(诸如云服务),车辆100从其中接收环境和其他数据以用于其自动驾驶控制。在所示的实施方式中,例如,车辆100可以与基于云的远程车辆服务178通信,该云服务至少出于实现本文所述的各种功能的目的而包括相对图集服务180和日志收集服务182。例如,相对图集服务180可用于维护描述世界的一个或多个地理区域的全球存储库,以及将全球存储库的一部分部署到一个或多个自动驾驶车辆,以基于从一个或多个自动驾驶车辆接收的信息更新全球存储库,并以其他方式管理全局存储库。日志服务182可以例如用于收集和/或分析在操作期间由一个或多个自动驾驶车辆获得的观察结果,从而使得能够对全局储存库进行更新以及用于其他目的。
图1所示的每个处理器以及这里公开的各种附加控制器和子系统通常将在操作系统的控制下运行,并且将执行或以其他方式依赖于各种计算机软件应用、组件、程序、对象、模块、数据结构等,如在下面更详细地描述的。此外,各种应用、组件、程序、对象、模块等也可以在例如分布式的基于云或客户端-服务器的计算环境中,在经由网络连接到车辆100的另一台计算机中的一个或多个处理器上执行,从而可以通过网络将实现计算机程序的功能所需的处理分配给多个计算机和/或服务。此外,在一些实施方式中,可以手动取回由车辆记录或收集的数据,并将其上传到另一台计算机或服务以进行分析。
通常,无论是作为操作系统的一部分还是作为特定的应用、组件、程序、对象、模块或指令序列,甚至是其子集的一部分实施,执行以实施本文所述的各种实施方式的例程将是在本文中称为“程序代码”。程序代码通常包括一个或多个指令,这些指令在不同时间驻留在各种存储器和存储设备中,并且在由一个或多个处理器读取和执行时,执行实现本发明各个方面的步骤或元素所必需的步骤。此外,尽管本发明已经并且在下文中将在功能全面的计算机和系统的场境中进行描述,但是应当理解,本文描述的各种实现能够以各种形式作为程序产品分发,并且不论实际用于进行分发的计算机可读介质的特定类型如何,本发明都同样适用。计算机可读介质的示例包括有形的非暂时性介质,诸如易失性和非易失性存储设备、软盘和其他可移动磁盘、固态驱动器、硬盘驱动器、磁带和光盘(例如CD-ROM、DVD等)。
另外,可以基于在特定实施方式中在其内实现的应用来识别以下描述的各种程序代码。然而,应当理解,以下使用的任何特定程序术语仅是为了方便起见,因此本发明不应限于仅在由这种术语标识和/或暗示的任何特定应用中使用。此外,给定计算机程序可以被组织为例程、过程、方法、模块、对象等的通常无数种方式,以及可以在驻留在典型计算机中的各种软件层(例如,操作系统、库、API、应用、小程序等)之间分配程序功能的各种方式,则应当理解,本发明不限于本文描述的程序功能的特定组织和分配。
本领域的技术人员将认识到,图1所示的示例性环境可以非旨在限制本发明。实际上,本领域技术人员将认识到,在不脱离本发明的范围的情况下,可以使用其他替代的硬件和/或软件环境。
相对图集系统
在下文讨论的实施方式中,相对图集系统用于将地图数据提供给自动驾驶车辆控制系统。地图数据可以用于自动驾驶车辆中的各种目的,包括定位、规划和感知等。应当理解,对于不同类型的自动驾驶车辆,例如,公路陆地车辆、越野陆地车辆、飞机、水上车辆、水下车辆、航天器等,可以基于此类车辆的特殊要求而采用合适的不同类型的地图数据。下文中的讨论将集中于将相对图集系统与诸如汽车、货车、卡车、公共汽车等公路轮式陆地车辆一起使用;然而,应当理解,本文描述的技术与其他类型的自动驾驶车辆的应用将完全在受益于本公开的普通技术人员的能力范围内。
在公路陆地车辆的场境中,地图数据可以用于例如在特定地理区域内布局或放置元素,该特定地理区域在某些情况下可能包括整个世界,或者在其他情况下可能仅限于整个世界的子集。在一些实施方式中,元素可以包括表示现实世界对象的元素,诸如道路、边界(例如,障碍、车道分隔线、中间带等)、建筑物、交通设备(例如,交通标志、交通灯等)以及环境中的静态或固定障碍物。此外,在一些实施方式中,元素可以包括本质上更逻辑或虚拟的元素,例如,表示车辆在环境中可能采取的有效路径的元素(以下称为“门(gate)”)、诸如车道标记的“虚拟”边界、或表示逻辑集合或其他元素集合的元素。
在不同实施方式中的数据地图还可以包括表征或以其他方式描述环境中的元素的数据。对于表示现实世界对象的元素,例如,可以包括描述此类对象的几何图形、尺寸、形状等的数据。此外,描述环境中元素的类型、功能、操作、目的等的数据可以包括在一些实施方式中。例如,在一些实施方式中,描述速度限制、车道限制、交通设备操作或逻辑等的数据可以作为地图数据被包括。简而言之,能够描述可以在其中操作自动驾驶车辆的环境的某些方面以使该自动驾驶车辆能够在该环境中操作的任何数据都可以作为地图数据被并入,因此本发明不限于本文所描述的特定类型的地图数据。
如上所述,地图数据可以用于在地理区域中布局或放置元素,并且因此,进一步包括适合于在数字地图内定位元素的位置数据。在这方面,数字地图可以被认为包括车辆可以位于其中的地理区域的任何数字表示,并且在许多情况下包括定义该地理区域中各种元素的位置和/或定向的信息以及描述这些元素的其他信息。将理解的是,自动驾驶车辆控制系统可以在控制自动驾驶车辆的过程中动态地生成多种类型的数字地图,并且在一些实施方式中,与本发明一致的相对图集系统可以用于生成这种数字地图。
常规地,数字地图中元素的定位(在本文中也可称为元素的布局或放置的过程)已经依赖于绝对定位,由此例如基于地球角度的全球坐标系,将元素定义在某些特定区域或体积参考系内的绝对坐标处。在某些情况下,也可以定义图块(也可以称为网格)来表示地球的特定地理区域,并且每个图块可以定义将图块中的特定坐标映射到全球坐标系的特定参考系。因此,将元素放置在图块内通常涉及在图块中查找映射到元素绝对坐标的坐标。为了帮助进行此类放置,图块可能具有关联的变换函数或变换,该变换函数或变换可用于根据元素的绝对坐标在数学上计算图块参考系中的坐标,反之亦然。结果,放置在图块中的多个元素通常在图块的参考系内相对于彼此放置在绝对位置处。
然而,与基于从现实世界捕获的测量值的任何系统一样,一定程度的误差将总是被合并到位置数据中。尽管在某些情况下某些系统可能达到亚米级精度,但某些卫星导航系统的精度可能低至10-20米。而且,即使用于从地理区域收集观察结果的传感器可能具有明显更高的分辨率,但是这些传感器通常安装在行驶的车辆上,因此固有地受到用于定位车辆自身的传感器的精度的限制。
常规方法试图通过使用元素的这种绝对定位在地图内表示的元素之间提供全球一致性。但是,已经发现,全球一致性通常以牺牲本地保真度为代价。特别是对于在相对短的时间跨度(例如,接下来的几秒钟内)以及在具有静态和移动障碍物的动态环境中的车辆的低水平自动驾驶控制方面,准确地知道车辆的位置以及在距离车辆数十米的半径范围内的静态和移动障碍物的位置比知道车辆与可能距车辆数公里或更远的地标的距离具有更大的重要性。
另一方面,在与本发明一致的实施方式中,利用相对图集系统以以下格式提供地图数据:在该格式中,主要基于元素之间的相对位置而不是在全球坐标系中的绝对定位来定义地理区域中元素的位置。换句话说,在与本发明一致的相对图集系统中,地理区域中的两个元素可以通过相对姿态来相互关联,该相对姿态至少定义一个元素相对于另一个元素的位置,并且在某些情况下,无需考虑通用或全球参考系。因此,例如,给定一个元素在数字地图中的位置,就可以使用在该元素与另一个元素之间建立的相对姿态来确定另一个元素在数字地图中应布局的位置,并且在某些情况下,无需依赖于在其中可以定义两个元素的位置的通用或全球参考系。还应当理解,在一些实施方式中,除了相对位置之外,相对姿态还可以定义两个元素之间的相对定向、相对速度和/或相对加速度中的一个或多个。
如将在下面变得更加明显的,相对姿态可以由与一对元素相关联的变换函数来定义,并且该变换函数允许在各个元素的参考系之间进行单向或双向变换。在一些实施方式中,变换函数可以是刚性变换(即,保持形状和大小的变换)。在这方面,参考系可以被认为是例如由两个或多个轴定义的任何任意坐标系,在该坐标系内可以描述在该参考系中定义的对象的位置和之间的距离。
因此,例如,变换函数可以定义两个元素之间的相对姿态,其中一个元素在与另一元素成4.34度的方向上为1.323米,并且其定向偏移0.87度。结果,无论在数字地图中将元素中的一个放置在什么位置,都可以通过变换函数中定义的值将另一个元素放置在相对于第一个元素的位置。因此,即使第一元素的位置相对于某个全球参考系有所偏移(例如,由于传感器错误、地图错误等导致),另一个元素相对于该第一元素的位置仍然相对于第一元素一致。
如以下将变得更加明显的,通过在地理区域内的元素之间建立相对姿态,可以改善自动驾驶车辆紧邻处的本地保真度,从而提供对自动驾驶车辆周围环境及该环境中的车辆的位置和定向的更精确和准确的表示。此外,由于通常不需要在整个相对图集系统中传播对某些元素的位置的改变或校正的事实,通过不强调全球一致性,可以以较低的处理开销来实现相对图集系统中元素的添加和修改。
例如,图2示出了图1的主车辆控制系统120以及能够利用与本发明一致的相对图集系统的示例性实施方式。图2特别示出了各个子系统152-158的职责以及它们彼此之间以及与相对图集系统160之间的交互。
定位子系统152通常负责提供适合于在其环境内定位车辆的定位数据。定位子系统152例如可以确定自动驾驶车辆在其周围环境内的地图姿态200(通常是位置,并且在某些情况下是定向和/或速度)。如下面将变得更加明显的,地图姿态200可以部分地通过使用LIDAR136以及使用由相对图集系统160提供的地图数据来确定。此外,地图姿态200可以部分地由定位子系统152确定的附加姿态来确定。例如,通过使用IMU 140和车轮编码器142,可以确定车辆的本地姿态202(通常包括在一定时间范围内车辆的速度、加速度/减速度和行驶方向),但无需全球坐标系中的任何位置。可以例如使用SATNAV 132来确定世界姿态204,以提供车辆在全球坐标系内的一般位置。定位子系统152还可以包括引导功能206,以例如在基于车辆的最后已知位置和定向并且在某些情况下独立于任何本地或世界姿态确定启动时车辆的初始姿态,从而提供起点,从该起点可以确定未来的姿态。
定位数据由定位子系统152提供给感知、规划和控制子系统154、156、158中的每个。例如,感知子系统154主要负责感知动态对象,诸如环境中的行人和其他车辆,并可以利用LIDAR跟踪功能208、RADAR跟踪功能210和相机跟踪功能212以分别使用LIDAR 136、RADAR134和相机138识别和跟踪动态对象。如上所述,可以在相对图集系统160中表示环境中的静态对象,因此,感知子系统154可以访问相对图集系统160,以便确定感测到的对象是静态还是动态。此外,感知子系统154还可以包括交通设备估计功能214,其可以处理由相机138捕获的图像以确定在相对图集系统160中表示的交通设备的当前状态(例如,确定交通灯是绿色、琥珀色还是红色)。
规划子系统156主要负责规划某个时间范围(例如,几秒钟)内的车辆轨迹,并且可以从定位子系统152和感知子系统154接收输入。路线规划功能216可用于基于即时环境和所需目的地中的静态和动态对象为车辆规划高水平路线,而中级优化功能218可用于基于交通控制和场景中其他参与者的可能动作做出决策,两者都可以利用来自相关图集系统160的地图数据来执行其功能。轨迹规划功能220可以在某个时间段(例如,几秒钟)内生成车辆的轨迹,然后将其传递到控制子系统158,以将期望的轨迹转换成适合于在控制系统110中控制各种车辆控制112-116的轨迹命令222,定位数据还提供给控制子系统158,以使控制子系统能够在车辆位置随时间改变时发出适当的命令以实现所需的轨迹。
现在转向图3,更详细地示出了相对图集系统160的示例实施方式。在该实施方式中,地图数据在逻辑上被组织成由边互连的节点图。数据存储在数据库230中,该数据库230包括存储多个节点记录的节点表格232和存储多个边记录的边表格234,并且相对图集图层236可用于访问数据库230并提供查询和更新功能,例如通过使用查询和更新API 238、240。相对图集图层236实现相对图集图的数据模型,并实现适当的数据库调用以在其中创建、修改、查询、检索、存储数据,以及以其他方式访问相对图集图。
在一些实施方式中,数据库230可以被实现为SQL或关系数据库;然而,在相对的图集系统160中使用的特定类型的数据库可以在不同的实施方式中改变。其他类型的数据库,例如,面向对象或非关系数据库,可以在其他实施方式中使用。
在图4中更详细地示出了用于数据库230的一种合适的数据库模式,其中来自节点表格232的节点记录250合并标识符(ID)字段252、类型字段254和有效载荷字段256,并且来自边表格234的边记录260包括第一节点标识符(节点1ID)字段262、第二节点标识符(节点2ID)字段264、类型字段266、变换字段268和有效载荷字段270。将理解的是,所示出的数据库230的模式仅是示例,因此,本发明不限于此特定模式。
每个节点记录250包括唯一标识符字段252,以唯一地标识相应的节点,使得每个边记录260可以将由对应边连接的各个节点的节点标识符存储在字段262和264中。通过这样做,使用将节点彼此连接的边从节点“行走(walking)”到节点来遍历图。
每个类型字段254、266定义相应节点或边的类型。在不同的实施方式中,可以为节点和/或边定义各种类型,并且下面结合图5至图7讨论适合在一种实施方式中使用的类型的非限制性示例。节点类型可以被定义为例如表示相对图集图中表示的不同类型元素,以及相对图集图中表示的不同类型的其他实体,包括定义地理区域的实体和/或逻辑相关元素组合在一起的实体,而边类型可以定义为表示节点之间建立的不同类型的关系。类型的粒度在不同的实施方式中可能有所不同,并且在一些实施方式中可以使用多级类型定义(例如,定义类型和子类型等)。
每个有效载荷字段256、270通常包括适合于各个节点/边的特定类型的附加数据。在一些实施方式中,存储在有效载荷字段256、270中的数据的结构或模式可以由分配给节点或边的关联类型来定义,而在其他实施方式中,存储在有效载荷字段中的数据可以是非结构化的,或者该结构或模式例如可以使用XML格式在有效载荷字段本身中定义。如以下将变得更加明显的,有效载荷字段可以包括最少的数据,例如,少到标志或数据值,或者可以包括大量的数据(例如,整个地理区域的点云表面模型),因此,本发明不限于在节点或边的有效载荷字段内存储任何特定类型或数量的数据。
如上所述,每个边记录260还包括变换字段268,该变换字段用于存储定义由关联边连接的节点之间的相对姿态的变换。该变换可以例如用于确定由连接的节点表示的元素之间的距离和方向,或者可替代地,确定由节点表示的元素在连接到其的另一个节点的参考系或坐标系内的位置。在某些情况下,变换可能是单向的,但在许多情况下,变换可能是双向的,以便确定从任一节点开始的相对姿态。如果合适的话(例如,在参考系之间的缩放是合适的情况下),变换可以在一些实施方式中合并数学函数,尽管在许多情况下,可以使用描述由两个节点表示的元素之间的距离和方向的矢量来实现变换,例如使用极坐标或笛卡尔坐标。此外,变换可以定义由两个节点表示的元素之间的相对定向。实际上,适合于定义由一个节点表示的实体相对于由另一节点表示的另一实体的相对姿态的任何表示可以在其他实施方式中使用。
应当理解,在节点或边上提供类型字段有助于数据库检索特定类型的节点和/或边的子集。尽管如此,在一些实施方式中可以省略类型字段,并且可以将类型编码为有效载荷,或者可以通过针对不同类型的节点和/或边使用不同的对象类型和/或数据库表来表示不同的类型。此外,关于变换字段268,在一些实施方式中,这些字段类似地可以被省略,其中变换在有效载荷字段270中定义,或者对于不需要变换的边被完全省略。
通常,存在无数种不同的方式,用于编码地理区域中的元素之间的相对姿态,以及用于编码适合于描述和/或归类元素以及适合由自动驾驶车辆控制系统用作地图数据的其他实体的其他数据。因此,本发明不限于本文描述和示出的相对图集系统160的特定数据库模式和基于图的组织。
现在转向图5至图7,如上所述,根据本发明的相对图集系统可以用来表示与自动驾驶车辆的控制及其之间的关系有关的各种实体和其他地图数据。在这些图中示出了节点和边类型的非限制性表示性集合,其中各种节点类型300、304、310、312、330、334和338表示为矩形,并且各种边类型302、306、314、316、318、320、322、324、326、332、336、340和342表示为圆角矩形。将理解,在其他实施方式中可以使用其他节点和/或边类型,因此本发明不限于节点和边类型的该表示性集合。
例如,图5示出了可能适合由定位子系统152使用的许多不同的节点和边类型。图块节点300可以用于表示地理区域的区域或一部分(即图块)。因此,代替表示地理区域中的元素,图块节点可以被认为是在本文中称为空间节点的一种节点,其表示区域或体积本身,因此,在所示的实施方式中,图块节点可以被认为是与元素节点不同类型的节点。此外,图块节点可以为特定区域或体积定义公共参考系或坐标系,以便在图块节点与各种元素节点之间的边中定义的变换函数可以用于在图块的公共参考系内的位置和/或定向上定位由连接元素表示的元素。在一些实施方式中,例如,图块节点可以具有尺寸约为200平方米的正方形表面,尽管在其他实施方式中可以使用更大或更小的图块尺寸以及其他形状。
图块节点300可以通过图块和图块边302彼此连接,图块和图块边302可以用于将相邻图块和/或不相邻但近邻的图块连接在一起。边302定义图块之间的相对姿态,使得可以确定图块之间的相对距离和图块相对于彼此的相对定向。在一些实施方式中,相邻图块可重叠(例如,约25%)以在图块边界处提供更大的覆盖范围和更少的不连续性。
另外,图块节点300可以通过图块和以地球为中心的地球固定(Earth-CenteredEarth-Fixed:ECEF)边306连接到固定参考节点,诸如ECEF节点304。ECEF节点304表示具有正交的X、Y和Z轴(其在地球的质心处交叉)的笛卡尔坐标系中的点,其中Z轴穿过正北,X轴穿过0度经度(本初子午线)和0度纬度(赤道)。在一些实施方式中,仅支持单个ECEF节点304,使得可以相对于共同的固定参考点定义所有图块节点的位置和定向。因此,每个图块和ECEF边306包括定义连接的图块到ECEF参考点的位置和定向的变换。如将在下文中变得更加明显的,定义图块和单个参考点之间的相对姿态可以使靠近特定SATNAV位置的一个或多个图块能够被识别出来以进行定位,并且还可以辅助将外部地图数据导入到相对图集图中。此外,在一些实施方式中,ECEF节点304可以使路径能够在原本未连接的地理区域之间遍历。因此,例如,如果将地图数据合并到佛罗里达州某地理区域的相对图集图中,而其他地图数据已合并到亚利桑那州某地理区域的相对图集图中,则即使直接连接两个相对图集图的任何图块节点和/或元素节点的边可能不存在,将两个相对图集图的图块节点连接到共同ECEF节点的边也可以确定两个相对图集图的图块以及在这些相应图中定义的任何元素之间的相对姿态。还应当理解,在其他实施方式中可以使用其他固定参考点,并且术语ECEF节点也可以被认为用于描述这些其他参考点。
作为图块可以在相对图集系统160中表示的方式的进一步说明,图8示出了示例地理区域350,该地理区域350被划分为相对于诸如ECEF参考点354的固定参考点布置的九个图块352的集合(为了便于理解,交替图块被示出为带有阴影线)。图块352以规则阵列布局,并且如图所示彼此重叠约25%,并且图块352和ECEF参考点354之间的相对姿态由虚线表示。
图9又示出了示例相对图集图或子图356,其包括与图8的图块352和ECEF参考点354相对应的九个图块节点358和一个ECEF节点360。在这方面,术语“子图”可用于指代较大的相对图集图的一部分;然而,应该理解的是,子图本身可以被认为是一个图,尽管它仅覆盖了维护在从中提取了子图的相对图集图中的地图数据的子集。
为了简化示例,仅示出了连接到中心图块节点358(被指定为图块(0,0),并且对应于图8的中心中的图块352的边。具体地,图9包括八个图块和图块边362,其将用于图块(0,0)的图块节点358连接到表示与图块(0,0)相邻的图块的其他图块节点358中的每一个,其索引为图块(-1,-1)、图块(0,-1),图块(1,-1)、图块(-1,0)、图块(1,0)、图块(-1,1)、图块(0,1)和图块(1,1)。此外,图块和ECEF边364将图块(0,0)的图块节点358连接到ECEF节点360。在每个边362、364中,存储变换函数Tr()以表示对应于边362中的已连接图块节点358的图块之间的相对姿态(变换函数Tr(x,y)描述了图块(0,0)和图块(x,y)之间的相对姿态)以及图块(0,0)和边364中的ECEF参考点之间的相对姿态(通过变换函数Tr(ECEF))。
将理解,附加边可将其他相邻图块节点358彼此连接并与ECEF节点360连接。此外,在一些实施方式中,如果合适,边可用于将非相邻图块的图块节点连接在一起。
现在回到图6,该图示出了可能适合于规划子系统156使用的许多不同的节点和边类型。规划系统156尤其可以依赖门节点310和边界节点312以确定适合于自动驾驶车辆使用的潜在路径并从这些潜在路径中选择合适的路径。
门节点310尤其可以用于表示地理区域内的允许的车辆姿态,即该地理区域内自动驾驶车辆的有效或允许的姿态或位置,并且在某些情况下可以类似于在下坡滑雪中使用的门,以便可以使用一系列门来定义车辆可能经过地理区域的路径。在某些情况下,门节点仅可以定义位置,而在其他情况下,定向也可以定义为表示车辆通过门时将行驶的方向。如果需要的话,门节点还可以在一些实施方式中定义门的尺寸(例如,宽度),尽管所示出的实施方式中不包括尺寸。在一些实施方式中,门节点(或与其连接的边)还可以编码时间或其他条件信息,例如,以在诸如一天的不同时间、一周的不同天等不同情况下改变这种门的性质。
边界节点312可用于表示限制车辆移动的地理区域内的任何物理或虚拟边界。物理边界可以包括,例如,道路边缘、路缘、中间带、障碍、栅栏、墙壁、路障、护栏等,以及限制车辆移动的任何其他物理对象,而虚拟边界可以包括,例如,在多车道高速公路中分隔车道,分隔行车道与路肩,分隔行车道与转弯车道或迎面驶来的车辆的车道边界或分隔带等。因此,与定义地理区域内允许的车辆位置的门节点相比,边界节点通常定义由于物理障碍或虚拟障碍(例如,通常禁止跨过双黄线)可能不允许车辆通过的位置或区域。在一些实施方式中,边界节点(或与其连接的边)还可以对时间或其他条件信息进行编码,例如,以在不同情况(诸如一天中的不同时间、一周中的不同天等)下改变此类边界的性质。
可以定义许多不同的边类型以用于门和边界节点。例如,图块和门的边314以及图块和边界的边316可以用于将门节点310和边界节点312分别连接到图块节点300,在这些边中包括变换以定义每一个门和边与连接图块的相对姿态。。
门节点310可以通过门和门(关节)边318和门和门(车道改变)边320连接到其他门节点。门和门(关节)边318用于例如将沿着道路的车道延伸的门节点310链接在一起,以表示沿着道路的车道的连续路径。这些类型的关系在本文中称为关节类型关系。例如,门和门(车道改变)边320可用于将门的门节点310链接在一起,这些门不在同一车道中并因此表示一个或多个道路上的不同车道但仍允许自动驾驶车辆在门之间行驶,至少在某些情况下,例如在车道之间改变时,通过时,转入另一条道路时,进入或退出道路时,进入或退出行车圈等时。这些后者类型的关系在本文中称为非关节类型关系。在所示的实施方式中,单个门与门(车道改变)边类型用于表示这些类型的允许的非关节车辆路径中的每一种,尽管在其他实施方式中,可以使用不同的边类型来定义不同类型的非关节门之间的关系(例如,同一车道中的相邻车道,转弯至不同道路,用于入口或出口坡道等)。在其他实施方式中,单个门与门的边类型可以用来表示所有门到门的连接,包括所有关节类型关系和所有非关节类型关系,并且数据保持在定义了连接的门之间的特定关系的边的有效载荷中。但是,通过定义不同的边类型,可以在一些实施方式中简化对相关图集系统的查询,例如,仅检索与车辆正在行驶的当前车道相对应的门列表,以检索与靠近特定车辆位置的出口坡道相对应的门列表等。
边界节点312可以通过边界和边界(接合)边322和边界和边界(邻近)边324连接到其他边界节点312。例如,边界和边界(接合)边322可以用来将表示连续边界的边界节点312链接在一起。边界和边界(邻近)边324可用于将彼此相距一定距离内但是以其他方式表示不同的边界的边界节点312链接在一起,从而使得在某些情况下能够通过在相对图集图中各个连接的边界节点之间行走来确定车辆的一定半径内的所有边界。边界节点312和门节点310还可以通过边界和门边326彼此连接,边界和门边326定义边界和门之间的相对姿态,从而使得能够识别给定门邻近的边界和给定边界邻近的门。
在一些实施方式中,门节点310和/或边界节点312可以包括几何信息(例如,在其有效载荷内编码),该几何信息定义了相关门或边界的尺寸、体积、面积、位置、定向等,而在一些实施方式中,门和/或边界可以是无尺寸的,并且可以基于存储在连接边中的信息和/或简单地基于在连接边中定义的相对姿态来生成尺寸。例如,在一些实施方式中,对于由边界和边界(接合)边322连接的多个边界节点312,曲线拟合可用于基于由连接的边界节点表示的边界的位置和定向来生成连续的边界曲线。
作为在相对图集系统160中可以表示门和边界的方式的进一步说明,图10示出了示例地理区域370,该地理区域370由单个图块372覆盖并且包括四车道划分的道路,该四车道划分的道路在每个方向上包括两个车道374,并由中间带376隔开,并且路肩378沿着每对车道374的两侧延伸。所示的是单车道出口坡道380,其路肩沿其两侧延伸。为了表示该地理区域中的路径和障碍,可以定义多个门382和边界384,其中前者由虚线互连的粗体箭头表示,而后者由具有菱形端点的线段表示。在图10中示出了仅与地理区域370的一部分相对应的门和边界以简化该图,并且应当理解,可以定义额外的门和边界以类似地覆盖地理区域370的其余部分。可以看出,可以沿着每个车道374以及沿着出口坡道380来定义门,并且还可以在车道之间,在每个车道与路肩之间,在每个路肩的边缘,沿着中间带以及沿着地理区域内可能存在的任何其他物理障碍物来定义边界。
图11又示出了表示图10的地理区域370的一部分的示例相对图集图或子图400,在图中具体覆盖了以粗体示出的与门G和边界B连接的边界和门。子图400包括多个门节点402(包括示为门G的轮廓粗线的门节点402)和边界节点404(包括示为边界B的轮廓线粗线的边界节点404),并且对于门G,示出了门和门(接合)边406连接到与图10中标记为GN和GP的下一个和先前的接合门相对应的门节点402。类似地示出了门和门(车道改变)边408连接到与图10的车道改变门GC和车道改变(出口)门GE相对应的门节点402。用于门G的门节点402还经由图块和门边410连接到对应于图10的图块372的图块节点412,边界和门边414将用于门G的门节点402连接到对应于边界B的边界节点404。
边界B的边界节点404同样经由图块和边界边416连接到图块节点412。边界和边界(接合)边418将边界B的边界节点404连接到与在图10中标记为BN和BP的下一个和先前边界相对应的边界节点404,而边界和边界(邻近)边420将边界B的边界节点404连接到与图10的车道边界BL和路肩边界BS相对应的边界节点404。
值得注意的是,每个边406、408、410、414、416、418、420包括适当的变换函数Tr(),该变换函数Tr()定义了由连接的节点表示的实体之间的相对姿态。对于门和门(接合)边406,分别定义变换Tr(NJG)和Tr(PJG)以表示门G与下一和先前的接合门GN和GP之间的变换函数。对于门和门(车道改变)边408,分别定义变换Tr(LCGC)和Tr(LCGE)以表示门G和车道改变门GC和车道改变(出口)门GE之间的变换函数。对于图块和门边410,定义变换函数Tr(图块G)以表示图块和门G之间的变换函数。对于边界和门边414,定义变换函数Tr(G2B)以表示门G与边界B之间的变换函数,而对于图块和边界边416,定义变换函数Tr(图块B)来表示图块和边界B之间的变换函数。对于边界和边界(接合)边418,分别定义变换Tr(NJB)和Tr(PJB)来表示边界B与下一个和先前的接合边界BN和BP之间的变换函数。对于边界和边界(邻近)边420,分别定义变换Tr(B2L)和Tr(B2S)以表示边界B与车道边界BL和路肩边界BS之间的变换函数。
另外,将理解的是,附加边可以将其他相邻的门节点和边界节点连接到图11所示的任何节点。然而,为了简化图11,已经省略了许多这些边。
现在回到图7,该图示出了可能适合于定义例如由感知子系统154使用的交通控制的许多不同的节点和边类型。在所示出的实施方式中,例如,交通设备节点330、控制节点332和通道节点334可以用于定义交通控制以及由此控制的周围环境,因此可以被认为是不同类型的交通节点的示例。在一种实施方式中,例如,交通设备节点330可以表示交通设备,诸如交通信号的面(例如,控制道路中特定车道的交通信号上的所有灯)、交通标志、铁路道口或任何其他能够指示交通流量的交通指示器。交通设备节点330可以定义关联交通设备的可变状态,或者可以定义可以从中感知关联交通设备的可变状态的条件,并且可以进一步包括以其他方式表征该设备的数据,包括例如,由交通设备实现的逻辑,交通设备支持的可用灯光组合/状态,可用于可靠地感知交通设备状态的任何上下文(例如,来自标称形状或面布局的任何改变)等。交通设备节点330还可以通过定义交通设备相对于图块的相对姿态的图块和交通设备边336连接到图块节点300。如以下将变得更加明显的,交通设备的相对姿态还可以包括高度或海拔信息,并且边或交通设备节点可以包括几何信息(例如,包围框的尺寸和/或位置)来提供指导以帮助在自动驾驶车辆的相机捕获的图像数据中定位交通设备,以便当自动驾驶车辆在交通设备附近时可以监视交通设备的状态。
每个交通设备节点330还可通过交通设备和控制边338连接到控制节点332。控制节点332可用于表示将多个交通设备分组在一起以调节进入地理区域的交通流量,例如与进入给定交叉路口的给定引道相关联的交通设备,从而可以为管制地理区域定义通用的“状态”,从而使自动驾驶车辆能够在自动驾驶车辆接近管制地理区域时基于自动驾驶车辆附近的交通控制的当前状态来规划轨迹。换句话说,控制节点332可以被认为是通知相同变量状态的一个或多个交通设备的逻辑聚合点。这样的节点可以连接到例如在任何一个通往交叉路口或其他管制地理区域的引道中的所有可见交通设备,因为所有此类交通设备都会通知该位置的假设驾驶员。在所示的实施方式中,控制节点未连接到对向车道或交叉车道或进入相同管制地理区域的其他引道的交通设备。替代地,这些其他交通设备可以连接到它们自己的关联控制节点以用于其他引道。然而,在其他实施方式中,控制节点可以用于表示与进入交叉路口的多个引道相关联的交通设备。
控制节点332还可以通过控制和通道边340连接到一个或多个通道节点334。就这一点而言,通道可以指通过由特定控制(以及相关的交通设备)管制地理区域的给定路径。例如,对于一对两车道道路的相当标准的交叉路口,对于进入交叉路口的四个引道中的每一个,可以定义单独的通道来表示直行穿过交叉路口,在交叉路口左转或在交叉路口右转,使得可以为与该交叉路口关联的特定控制定义总共十二个通道。
每个通道节点334也可以通过通道和门边342链接到一个或多个顺序门节点310,从而将通道链接到特定门序列,这些特定门序列定义了在由交通控制管制地理区域内车辆的可接受姿态。
交通设备节点、控制节点、通道节点和门节点之间的关系可以参考图12至图13进一步解释。特别地,图12示出了示例管制地理区域430(此处为交叉路口),该区域由单个图块432覆盖,并包括由交通控制438管制的一对两车道道路434、436,交通控制438包括一对悬挂的交通信号灯单元440,442,每个都具有表示相对图集系统160中不同交通设备的多个面。例如,交通灯单元442以放大的透视图示为具有在两个面446、448上布置的多个指示器444。面446(控制北向交通(北在图12的顶部))包括红色、琥珀色和绿色指示器444,因此定义了三种状态:停止、警告和行驶。但是,如面448所示,交通设备在其他实施方式中可以采用多种其他形式,例如,以支持转弯、行人、自行车和受益于即时公开的普通技术人员将理解的其他特定于交叉路口的情况。
另外,如上所述,可以定义多个通道以解决通过管制地理区域430的每条可能路径。例如,对于北向交通,可以定义三个通道450、452和454,分别表示通过交叉路口的直路径、右转和左转。此外,如上所述,每个通道可以在逻辑上连接到各种门456,这些门定义通过交叉路口的允许路径中的车辆姿态。
图13又示出了表示图12的地理区域430的一部分的示例相对图集图或子图460,具体覆盖管制地理区域的交通设备。子图460包括表示交通控制438的控制节点462,其通过交通设备和控制边446连接到表示逻辑链接的交通设备(例如,交通信号灯单元440的面446和448)的多个交通设备节点464。每个交通设备节点464通过图块和交通设备边470连接到图块节点468(例如,对应于图12的图块432),并且如从图中可以理解的,每个边470定义与图块节点468相关联的图块内的交通设备的相对姿态。
控制节点462还被示为通过控制和通道边474(例如,表示图12的通道450)连接到通道节点472,又通过相应的通道和门边478连接到多个门节点476。值得注意的是,边466、474或478均不包括有意义的变换功能,如本文所述的示例图模式中那样,不需要在控制和交通设备、控制和通道或通道和门之间定义相对姿态(尽管在每个边中仍可能存在变换字段)。门节点476可以以上述方式连接到其他门、边界和/或图块,以使门能够适当地放置在数字地图内,而在图块和交通设备边470中定义的变换可用于将交通设备放置在数字地图中。然而,在其他实施方式中,可以定义交通设备、控制、通道和/或门之间的相对姿态。
图13还示出了在一些实施方式中一些元素节点可以如何连接到多个图块节点,即,元素节点如何可以不限于相对于单个图块的放置。特别地,一个交通设备节点464被示为进一步通过图块和交通设备边482连接到相邻图块节点480,该图块和交通设备边482定义了在相邻图块内交通设备的不同变换或相对姿态。因此,相对于多个图块,以不同的相对姿态来定义相同的元素,即交通设备。图14还示出了这样的关系,其中交通设备490被示出在图块492(图块T1)内的固定位置处,另一个图块494(图块T2)与之相邻。交通设备490的包围框496可以具有为图块T1和T2定义的两个不同的相对姿态,并且取决于自动驾驶车辆的当前位置(例如,在图块T1的边界内,诸如在位置P1处,或者在图块T2的边界内,诸如在位置T2处),只有那些相对姿态之一可以用于布局交通设备。
在交通设备的上下文中,定义相对于多个图块的相对姿态可以例如有助于在自动驾驶车辆控制系统中识别具有交通信号估计功能的交通设备。应当理解,交通设备可以在一定距离之外可见,因此,试图确定交通设备状态的自动驾驶车辆以及为了生成或更新相对图集的目的而在地理区域内捕获观察结果的车辆可能会在交通设备与车辆所在的图块隔开一个或多个图块时尝试定位交通设备。通过为交通设备确定单独的相对姿态以定义交通设备与从中可见交通设备的多个不同图块之间的位置关系,当自动驾驶车辆位于该图块中时,可以使用专用于特定图块的相对姿态,并且这样做可以促进在该自动驾驶车辆捕获的图像数据中识别该交通设备,因为在捕获图像数据时自动驾驶车辆的位置和定向可能与最初捕获与交通设备相对应的观察结果的车辆的位置和定向相似。换句话说,如果第一辆汽车在行驶于第一图块时正在捕获图像数据,并且该图像数据包括特定的交通设备,该交通设备在第一图块中可见,但实际上位于相距三个图块的第二图块中,则在一些实施方式中,期望使用针对交通设备计算的相对于第一图块的相对姿态以在第二车辆捕获的图像数据中识别交通设备,该第二车辆随后行进通过第一图块。
将理解,其他类型的元素节点也可以具有相对于多个图块节点以及相对于多个其他元素节点定义的相对姿态,使得在许多实施方式中,在相对图集内表示的给定元素将通过具有多个变换的多个边连接,这些变换定义了相对于同一相对图集图中表示的多个图块和/或元素的多个相对姿态。此外,将理解的是,提供多个边可以使得能够采用多种布局策略以便在数字地图内布局元素,并且因此,可以将最适合一个目的的布局策略用于出于该目的而布局元素,而更适合于另一个目的的不同的布局策略可以用于出于另一个目的而布局元素。例如,某些布局策略可以从特定元素的元素节点开始,然后从元素节点步行到元素节点,执行在每个连接边中定义的转换,以确定不同元素相对于起始元素的姿态,而其他布局策略可以使用在将元素节点连接到图块节点的边中定义的转换来布局元素,使得所有元素都基于它们相对于给定图块参考系的相对姿态来定位。还有其他策略可以使用在将图块节点连接到ECEF节点的边中定义的变换来布局元素,使得所有元素都基于它们相对于全球参考系的相对姿态来定位。还有其他布局策略可以利用如元素之间、元素与图块之间和/或图块与全球参考点之间的方法的组合。因此,本文所述的相对图集图体系结构所提供的灵活性可以在不同的实施方式中支持多种布局方法。
相对图集的生成和管理
在一些实施方式中,与自动驾驶车辆一起使用的相对图集的生成可以基于从地理区域收集的观察结果。观察结果可以由一个或多个车辆收集,并且在一些实施方式中,车辆可以是自动驾驶的,尽管在其他实施方式中,可以使用人类引导的车辆来收集观察结果。在其他实施方式中,也可以以其他方式收集观察结果,并且如将在下面更详细地讨论的,在一些实施方式中,地图数据可以从外部源导入相对图集。
在这方面,观察结果可以被认为包括从地理区域感测到的数据,例如,使用从车载相机捕获的图像数据、LIDAR数据、RADAR数据、SATNAV数据、IMU数据、编码器数据等,以及从感测到的数据中得出的数据,例如,车辆经过地理区域时的路径、位置和/或定向。观察结果还可以包括从高空卫星、飞机、无人机、布置在地理区域内的固定传感器或者实际上是可以从中收集有关地理区域的信息的任何其他类型的传感器等接收的数据。
在所示的实施方式中,观察结果可以用于生成表示地理区域中的元素的元素节点,然后可以通过定义所连接的元素节点的元素之间的相对姿态的边来连接它们。这些元素节点和边可以存储在相对图集中,例如,在相对图集图内,以供以后在试图在由相对图集表示的地理区域的至少一部分内布局元素时进行检索。
例如,图15示出了用于基于由单个车辆在新地理区域(即,尚未被合并到相对图集的地理区域)中收集的观察结果来生成或更新相对图集的示例操作序列500。该操作序列可以由收集观察结果的车辆(自动驾驶或以其他方式)、自动驾驶车辆(无论该自动驾驶车辆是否收集了观察结果),与任何车辆分离的另一计算机系统(例如基于云的服务,诸如图1的远程车辆服务178)或它们的某种组合执行。而且,该序列可以“在线”执行(即,当收集观察结果时),或者可以在不同的实施方式中作为离线或批处理执行。此外,尽管在一些实施方式中,操作序列可以是完全自动化的,但是在其他实施方式中,可以通过人工干预来执行和/或指导一些步骤。此外,将理解,可以改变序列中的操作顺序,并且在一些实施方式中,可以并行和/或迭代地执行一些操作,因此,图15中所示的序列仅是说明性示例。
在框502中,该序列开始于接收车辆日志,该日志包括车辆在通过新地理区域行驶期间收集的观察结果。就这一点而言,可以认为车辆日志表示在相同或不同时间从一个或多个车辆和/或其他数据源收集的任何观察结果集合。车辆日志可以合并多个文件、数据结构等,并且在一些实施方式中可以分布在多个位置上。
框504接下来例如通过初始化将用于存储和组织将基于车辆日志中的观察结果而创建的子图的节点和边的数据结构来初始化子图。接下来,框506创建一个或多个图块来表示地理区域。如上所述,在一些实施方式中,图块可以重叠,并且在一些实施方式中,图块可以以标准尺寸来定义,使得要创建的图块的数量取决于地理区域的大小,而图块的布局是根据一些规则的间距预定义的。
在框506中创建图块时,可以构建对应的图块节点并将其合并到子图,并且可以构建适当的图块和ECEF边并将其合并到子图以定义每个新图块与全球参考点之间的相对姿态。
另外,在一些实施方式中,可基于所收集的观察结果或基于其他信息将有效载荷数据添加到每个图块节点以合并关于由每个图块表示的地理区域的知识。例如,在一些实施方式中可能期望将由图块表示的地理区域的表面模型合并为相应图块节点的有效载荷。如下面将变得更加明显的,定位系统可以使用表面模型来确定车辆在图块内的当前姿态,例如,通过将来自车辆的传感器观察结果的点云与图块的存储表面模型进行比较。表面模型可以从车辆日志中的传感器数据(例如,LIDAR、RADAR和/或图像数据)导出和/或可以从高空卫星观察结果或其他地图数据源导出,并且可以以如受益于即时公开的普通技术人员将理解的多种方式来表示。
接下来,在框508中,在收集观察结果期间基于车辆的遍历路径为地理区域创建门,并确定附近的门之间以及门与图块之间的变换。例如,当车辆行进通过地理区域时,可以沿车辆遵循的路径以预定间隔确定门。构造与新门对应的门节点并将其合并到子图中,并构建门与门以及图块和门的边并将其合并到子图中,并将确定的变换存储在边的变换字段中。有效载荷数据也可以适当地合并到门节点和/或边中,例如,以增加速度限制,定义允许门到门转换的条件等。
接下来,在框510中,基于车辆日志中的观察结果(例如,基于相机、LIDAR和/或RADAR数据的图像处理)为地理区域创建边界,并且确定附近的门和边界之间以及边界和图块之间的转换。构造与新边界相对应的边界节点并将其合并到子图中,并且构造边界和边界边、边界和门边以及图块和边界边并合并到子图中,并将确定的变换存储在边的变换字段中。有效载荷数据也可以适当地合并到边界节点和/或边中,例如,以定义边界的类型,可以跨越边界的条件(如果有的话)等。
接下来,在框512和514中,交通控制规定一个或多个道路并合并到子图中。在框512中,基于车辆日志中的观察结果,例如基于相机、LIDAR和/或RADAR数据的图像处理,为地理区域创建交通设备,并且确定定义交通设备与一个或多个图块之间的相对姿态的变换。构造与新交通设备相对应的交通设备节点并将其合并到子图中,并且构造图块和交通设备边并合并到子图中,并将确定的变换存储在边的变换字段中。有效载荷数据还可以适当地合并到交通设备节点和/或边中,例如,以定义在确定交通设备状态时要分析的包围框,以对交通设备的类型和/或操作(例如,标志或灯、灯的配置、灯顺序等)进行分类。
接下来,在框514中,可以创建控制和通道,以将交通设备链接在一起,形成逻辑交通控制,并建立定义通过管制区域的各种通道的门集合,以及建立用于表示交通控制的操作的逻辑。可以构造关联的控制和通过节点,并与适当的交通设备和控制边、控制和通道边以及通道和门边一起合并到子图中。有效载荷数据也可以适当地合并到控制和通道节点以及关联的边中,例如,以定义每个交通控制的逻辑。
接下来,在框516中,可以将新创建的子图并入现有的相对图集图中,例如,并入到全球相对图集图中。此外,在框518中,在一些实施方式中,可能希望将改变传播到相对图集系统(例如,新的子图),传播到使用相对图集系统的车辆群体。在某些情况下,可以通过部署相对图集的新版本来实现传播,而在其他情况下,可以将更新作为差异进行传播,以减少所需的数据量。在某些情况下,传播可能是自动的,而在其他情况下,传播可能是按需的。如受益于即时公开的普通技术人员将理解的,将改变传播到诸如相对图集的共享地图资源的多种方式可以被用于不同的实施方式中。
在不同的实施例中,可以根据观察数据确定门、边界、交通设备和其他元素的方式可以改变。例如,各个元素可以在众多观察结果中表示,因此这些元素的标识和定位可以包括对多个观察结果的处理。例如,考虑从遍历地理区域的车辆捕获的视频。当车辆行驶通过地理区域时,可能会在捕获的视频的每个帧中观察到诸如边界和交通设备的元素,因此可以基于多个观察结果执行处理以定位每个元素,例如,通过对每个观察结果的元素位置进行三角测量,并平均或以其他方式组合多个三角测量的位置。此外,可以将重点放在元素与进行与该元素有关的观察的位置之间的接近度上,例如,使得与从更远的地方收集的观察结果相比,对来自近的观察结果的元素进行的位置计算的权重更大。应当注意,在一些实施方式中,这样的强调可以改善在自动驾驶车辆周围布局的元素的本地保真度,因为在布局这些元素时,将优先考虑从更可能接近自动驾驶车辆的当前位置的位置收集的观察结果来确定元素的相对姿态。
此外,将理解,可以以各种方式将不同元素之间和/或各种元素与图块之间的相对姿态编码为图。如上所述,例如,某些元素可以从其他图块中的观察结果可见,因此,由于这些和其他原因,可以创建边以将某些元素的元素节点链接到多个图块节点,以定义某些元素以及元素附近的多个图块之间的相对姿态。此外,可以在相同附近内的所有或某些元素之间确定相对姿态,并将其编码为边,使得在一些实施方式中可以通过遍历图中的节点和边的不同组合,以多种方式获得任意两个元素之间的相对姿态。因此,例如,门节点不仅可以通过边连接到用于紧邻的门的门节点,而且可以通过边连接到不直接相邻但仍在彼此的某个半径内的附加门的门节点。同样,边界节点可以通过边连接到与某个半径内的其他边界和/或门相对应的节点。
此外,将理解,在一些实施方式中,可能希望组合来自多个车辆和/或来自一个或多个车辆通过特定地理区域的多次通过的观察结果。此外,将理解的是,可以重复地更新和改进对地理区域执行的地图以适应地理区域的改变或以其他方式更好地将相对图集与最近的观察结果匹配。因此,虽然图15的操作序列500的重点是建立以前未合并到相对图集的地理区域的子图,但是可以执行更一般化的操作序列来处理将新的地图数据合并到相对图集以及改进现有地图数据以合并更多最近的观察结果。
例如,图16示出了用于将新观察结果合并到现有相对图集图中的操作序列530。该序列可以在框532中通过从多个车辆接收车辆日志开始。框534可以从车辆日志中提取观察结果,并且框536可以基于观察结果所表示的遍历地理区域,例如基于遍历地理区域的图块节点是否已经存在,根据需要创建一个或多个图块。
接下来,类似于上面结合图15的框508-512所述的相应操作,框538可以基于来自车辆日志的遍历路径来创建门,框540和542可以基于来自车辆日志的观察结果来创建边界和交通设备。在一些实施方式中,可以创建子图以对应于所创建的门、边界和交通设备,而在其他实施方式中,可以以其他合适的方式来维护所创建的门、边界和交通设备以及为此确定的相对位置。
接下来,框544-548将在框538-542中创建的门、边界和交通设备合并到现有的相对图集中。例如,框544将任何新的门与相对图集图中的现有门合并,并且可以在相对图集图中创建新的门节点和边,或者可以适当地修改现有的门节点和边。例如,在一些实施方式中,可以查询现有的相对图集图,以找到可能与每个创建的门匹配的门节点,如果找不到这样的门节点,可以将新的门节点,以及将该门节点连接到一个或多个图块节点和/或一个或多个相邻的门节点和/或边界节点的边添加到相对图集图。
另一方面,如果找到匹配的门节点,则可以修改该门节点和/或定义相应门与其他元素和/或图块之间的相对姿态的任何边以反映最近的观察结果。如受益于即时公开的普通技术人员将理解的,可以在不同的实施方式中使用改进地图元素的各种地图技术以适当地遵从编码到现有节点和边中的先前观察结果,同时当新的观察结果与先前观察结果不匹配时仍能够进行改进。
然而,应当理解,在与本发明一致的相对图集图中,先前观察结果和较新观察结果之间的失配通常不需要进行图宽调整。因此,例如,在绝对定位方法中,如果确定先前的定位不正确,则可能需要将位置更新传播到整个地理区域中的所有地图元素,与绝对定位方法相比,在所示实施方式中,对各个元素的位置调整可能只需要在直接连接到任何已调整元素的元素节点的边的相对姿态变换中进行更新。
框546和548采用与框544相关的以上讨论的类似技术,以便将新边界和交通设备合并到现有相对图集图中,从而创建新边界和交通设备节点和边和/或适当修改现有边界和交通设备的节点和边。接下来,框550通过创建新的和/或修改现有的控制和通道节点并创建新的和/或修改现有的交通设备和门的边来创建和/或修改控制和通道。此后,在框552中,在一些实施方式中可能期望将改变传播到相对图集系统(例如,新的子图),传播到使用相对图集系统的车辆群体。然后,操作序列完成。
现在转向图17,如上所述,可以从从地理区域收集的观察结果中检测元素,并将其用于在相对图集图中生成元素节点和边。图17示出了示例通用操作序列560,其可以用于将各种类型的感兴趣的元素导入到相对图集图中,例如,如以上讨论的在序列500、530中通常执行的那样。在序列560中,在框562中可以从车辆日志中提取期望具有感兴趣元素的车辆日志的片段,并且在框564中可以在传感器数据中的感兴趣元素周围建立包围框。在一些实施方式中,可以例如基于传感器数据的图像处理来自动建立包围框,或者可以例如基于通过查看传感器数据的人对包围框的手动输入在人工协助下来执行。接下来,在框566中,例如基于传感器数据中的多个观察结果(例如,基于在多个帧中并且从多个有利位置捕获的距离),对每个关注元素的位置进行三角测量。然后,在框568中,确定与周围元素和图块的相对姿态,并为每个感兴趣的元素适当地创建和/或修改关联的元素节点和边。
操作序列560的实际但非限制性示例涉及从来自车载相机的图像捕获中获取交通设备。在操作序列560的一种实施方式中,可以提取预期在车辆日志中包括交通信号灯的视频文件的片段,并且可以在每个交通设备(其在每个图像中可见)周围手动或自动(例如,使用模式识别)生成包围框。关于当捕获每个快照图像时车辆位置的位置数据以及到每个交通设备的相对距离,可以以一种很好地在受益于即时公开的普通技术人员的能力范围内的方式被编译并用于对交通设备的位置(包括路面上方的高度)进行三角测量。例如,相机校准数据和日志定位数据可以用于确定包围框在某个公共参考系(例如,图块)内的位置。然后可以修改(如果发现与现有交通设备节点匹配)或者创建(如果未找到匹配项)与每个交通设备相对应的节点,并且可以根据需要创建或修改边以建立与附近的图块和其他元素的相对姿态。
受益于即时公开的普通技术人员将理解操作序列560的其他应用和变型,因此,本发明不限于本文所讨论的特定序列。
现在转向图18,该图示出了用于将子图部署到自动驾驶车辆的示例操作序列580。操作序列580可以例如在自动驾驶车辆的初始启动时执行,或者可替代地,当确定自动驾驶车辆已经进入了超出缓存在自动驾驶车辆中的相对图集的本地副本的范围的地理区域时执行。当更新相对图集图的一部分时,也可以执行操作序列580。
该序列在框582中通过接收车辆的SATNAV坐标开始,其提供了车辆当前位置的粗略估计。可替代地,在其他实施方式中,当前位置可以基于人类操作员的手动输入(例如,输入邮政编码、纬度/经度、城市和州和/或街道地址等),或者其他适当的方式。然后,在框584中,例如,基于哪个图块最接近车辆的当前位置,确定车辆的根图块。可以例如通过从ECEF节点行走相对图集图,或通过从一个图块节点行走到另一个图块节点以定位与车辆当前位置重叠的图块来确定根图块。然后,在框586中,将根图块用作中心位置,并且可以将相对图集图从中心位置沿每个方向走出预定数量的图块,以确定要部署到车辆的图块集合。例如,在一些实施方式中,可以将距根图块X公里以内的所有图块合并到图块集合中。然后,在框588中,可以从相对图集图中提取子图并将其部署到车辆,例如,下载为不同的文件或完整的数据结构。在一些实施方式中,子图可以包括所有图块节点和将图块节点连接到ECEF节点的边,以及所有元素节点和连接到图块节点的边,或者至少预定数目的节点内的元素节点或从所选图块节点开始的步骤。值得注意的是,在所示的实施方式中,可以使用数据库查询来从相对图集的主关系数据库中的节点和边表格中检索节点记录和边记录的集合,从而实现该提取,并且部署可以包括简单地将所提取的记录添加到车辆中的本地关系数据库中的本地节点和边表格。
现在转向图19,该图示出了用于将外部数据导入相对图集图中的操作600的示例序列。外部数据例如可以包括从外部数据源收集的地图数据,例如卫星图像、施工进度表和/或道路改变、街道地址的位置(“前门”)、拥堵模型、感兴趣的命名位置、关闭时间表等。可以例如使用SATNAV坐标来定位外部数据,这样,操作序列可以在框602中通过将外部数据的坐标转换为ECEF坐标以生成与用于相对图集图参考系的粗略对应来开始。然后,框604识别坐标的预定半径内的一个或多个图块,然后,框606可将由外部数据表示的一个或多个元素投影到预定半径内的每个识别的图块的参考系中。投影可以基于,例如,应用从图块和ECEF边到外部数据中的一个或多个元素的基于ECEF的坐标的变换。
框606还可适当地为外部数据中的元素创建一个或多个节点和/或边,或者可替代地添加或修改一个或多个现有节点和/或边中的数据。从相对图集系统的角度来看,在外部数据中的元素表示新元素的情况下,例如,可以添加新元素节点,并可以添加新边以将新元素节点连接到现有相对图集图。另一方面,在外部数据中的元素对应于相对图集图中已经存在的元素的情况下,可以适当地修改现有元素节点和/或与其连接的边。例如,在外部数据提供有关某个地理区域的与建筑相关的信息的情况下,可以修改现有门的节点,以合并描述了建筑如何改变车辆通过门行驶(例如,降低的速度限制、车道关闭等)的有效载荷数据,因此通常不需要新的节点或边。
接下来,如框608所示,在某些情况下可以执行校正翘曲(corrective warp),以更准确地将外部数据放置到相对图集图中,尽管在其他情况下,可以不执行校正翘曲。考虑到其是在相对图集系统之外生成的,来自外部数据的本质上为空间的元素可能会包含某种程度的定位和/或缩放错误,因此,可能希望将元素集合覆盖到相对图集图中,并尝试与相对图集中的现有元素建立稀疏对应关系。然后,稀疏对应关系可用于为整个新元素集合生成非刚性变换,并对该元素集合应用校正扭曲,从而调整元素在元素集合中的相对位置以更好地适合相对图集图的参考系。
应当理解,通常,相对图集系统可以合并来自包括自动驾驶车辆、非自动驾驶车辆和各种外部数据源的各种来源的数据,并建立相对图集图,该相对图集图定义了一个或多个地理区域中的元素之间的相对姿态以及其他地图数据,该其他地图数据可帮助执行与控制自动驾驶车辆相关的许多操作功能。此外,考虑到现实世界的动态性质以及在地理区域内运行的自动驾驶车辆可能能够连续提供与该地理区域相关联的新地图数据这一事实,相对图集系统可能会随着时间的推移不断改进和调整以反映地理区域内发生的改变。此外,借助于在元素之间建立相对姿态,可以将本地保真度优化为彼此邻近的元素之间以及邻近确定相对姿态的传感器(例如,车载传感器)的元素之间的相对姿态。
用于生成和更新相对图集的其他变型可以在其他实施方式中使用,并且受益于即时公开的普通技术人员将会理解该其他变型。因此,本发明不限于本文讨论的特定操作序列。
相对图集用法
如上所述,相对图集系统可以结合控制其操作由自动驾驶车辆的多个控制子系统来利用。特别地,通过使用在相对图集系统中表示的元素之间定义的相对姿态,可以将各种元素布局在适合用于控制自动驾驶车辆的各种类型的数字地图中,并且通常以强调邻近车辆的本地保真度的方式来布局。一般而言,可以通过以下方式将元素布局在数字地图中:访问相对图集以识别邻近车辆的地理区域中的元素,访问相对图集以确定所识别的元素之间的相对姿态,然后使用确定的相对姿态将识别的元素布局在数字地图中。
此外,在许多情况下,在使用数字图集图的情况下,可以通过以下方式将元素布局在数字地图中:在元素节点之间行走,并基于在连接元素节点的边中定义的相对姿态或变换函数来对元素进行布局。因此,例如,给定在数字地图中布局的一个元素的位置或姿态,则可以使用由将与两个元素相对应的两个元素节点连接到一起的边定义的相对姿态从前一个元素的位置或姿态确定另一个元素的位置或姿态。
如上所述,本文描述的技术可以用于生成数字地图,该数字地图适合于与自动驾驶车辆的控制相关联的各种类型的操作结合使用。例如,图20示出了用于例如使用图2的主车辆控制系统120来规划车辆轨迹的操作620的示例序列,其利用数字地图绘制出在规划车辆的轨迹时车辆可能采取的潜在路径。应当理解,序列620中执行的至少一些操作可以从自动驾驶车辆远程执行(例如,在诸如图1的远程车辆服务178的远程车辆服务中),尽管在许多实施方式中可以期望将序列620中的操作定位到自动驾驶车辆,使得对自动驾驶车辆的控制不取决于与自动驾驶车辆外部的任何系统的连接。
序列620例如可以用作自动驾驶车辆的主控制回路,并且可以每秒执行多次(例如,每秒5-10次或更多次),以便连续刷新在将来的某个时间范围内(例如,在接下来的20秒内)用于车辆的规划轨迹。在一些实施方式中,还可以连续地生成和刷新受控的停止轨迹,以便在自动驾驶车辆或其任何控制系统发生不利事件时能够执行受控的停止。
在框622中序列620可以通过确定活动图块中的车辆姿态开始。特别地,在该实施方式中,假设在任何给定的情况下,存在被指定为活动图块的单个图块,该单个图块开始作为基准参考系,从该基准参考系创建自动驾驶车辆紧邻的数字地图并从该基准参考系建立该车辆在该数字地图内的位置和定向(即,姿态)。当车辆在整个地理区域中移动时,活动图块可以改变,并且可以将逻辑用于在序列620内动态切换到不同的活动图块,可以将其合并到一些实施方式中,这将在下面变得更加显而易见。
一旦建立了活动图块的参考系中的车辆姿态(在下面将结合图22-23更详细描述的过程中),在框624中相对图集就被“行走”(即,遍历节点之间的边以从一个节点移动到另一个节点),以例如基于具有与图块内的车辆的相对姿态最接近匹配的相对姿态的门来定位最接近当前车辆姿态的门。在一些实施方式中,例如,可以分析用于连接到活动图块的所有门节点的变换(即,如存储在连接到图块的图块和门边中那样)以找到引用最接近当前的车辆姿态的位置的变换。
一旦定位了最近的门,则框626可随后从最近的门向外走过门节点和一些或所有相邻门的门到门边,以绘制出车辆的潜在路径。应当注意,在绘制潜在路径时,由将门节点连接在一起的边中的变换定义的相对姿态可用于将每个门放置在围绕车辆姿态的地图内,并且在许多实施方式中无需考虑活动图块的参考系或任何全球参考系。
例如,图21示出了示例二维数字地图640的一部分,该示例二维数字地图640可以使用图20的框622-626来构造。使用二维数字地图仅仅是为了简化说明,并且应当理解,在许多实施方式中,可以构造三维数字地图。在该图中,示出了图块T的参考系的原点642以及各个门644(分别表示为门G0-G4)和边界646(分别表示为边界B0和B1)。例如,假定在框622中,将图块T标识为活动图块,并且在位置648处所识别的位置处确定具有变换函数Tr(T,V)的车辆姿态V。框624可以行走相对图集图以例如通过分析连接到图块的门的相对姿态来识别各个门中的哪个最接近车辆姿态。通过这样做,可以将具有变换函数Tr(T,G0)的门G0确定为最接近车辆姿态,并且可以确定变换函数Tr(V,G0)以确定门G0的参考系内车辆的相对姿态。
在一些实施方式中,例如,最近的门(这里为门G0)可以用作从相对图集图(如图21所示的x和y轴表示)创建的数字地图的参考系,使得所有元素都在数字地图中相对于最近的门进行布局。然而,在其他实施方式中,车辆姿态可以用作参考系,由此在数字地图中相对于车辆姿态布局所有元素。在其他实施方式中,可以使用其他参考系。
一旦建立参考系,框626就可以从最近的门向外走,以布局与最近的门接近的其他元素。因此,例如,下一个关节门G1可以通过应用存储在连接门G0和G1的节点的门到门(接合)边中的变换Tr(G0,G1)来定位在数字地图中。假设门G1连接到门G2和G4,可以通过应用存储在将门G2和G4的节点连接到门G1的节点的边中的变换Tr(G1,G2)和Tr(G1,G4)来将这些门定位在数字地图中。可以从为门G1计算的位置应用变换,或者可替代地,通过将应用每个变换与将变换Tr(G0,G1)应用于门G0的原点位置(功能等效)相结合来应用变换。
类似地,门G1连接到边界B0,边界B0又连接到边界B1,而门G2也连接到另一个门G3。对于这些其他元素中的每个元素,将变换存储在连接其对应节点的边中,使得例如可以通过应用变换Tr(G0,G1)和Tr(G1,B0)来定位边界B0,可以通过应用变换Tr(G0,G1)、Tr(G1,B0)和Tr(B0,B1)来定位边界B1,可以通过应用变换Tr(G0,G1)、Tr(G1,G2)和Tr(G2,G3)来定位门G3。
应当注意,每个门和边界还可以具有连接到图块T的图块和门边或图块和边界边,并且每个这样的边可以包括定义图块参考系内的相应门或边的相对姿态的适当变换(例如,如图21中为门G4所示的变换Tr(T,G4)的情况)。尽管在一些实施方式和/或实例中元素和图块之间的变换可用于布局元素,但是将理解的是,本文描述的实施方式可以主要基于元素本身之间的相对姿态和变换来布局元素,而不是基于任何公共或绝对参考系。通过这样做,可以优化本地保真度,因为只要相对于彼此准确地定位相邻的元素,则彼此最接近的元素之间的相对姿态就不必全球一致。事实上,相对于任何全球参考系或绝对参考系而言,在定位紧密的元素集合中可能存在一些错误对自动驾驶车辆控制的许多方面或多或少无关紧要,因为这些方面最关注的是在相对较短的时间内元素相对于车辆本身的位置。此外,即使在不直接相互连接但通过其他元素链连接的元素之间执行多次变换时,相对姿态的错误可能会累积,但这些错误通常会影响相对远离车辆的元素的相对位置,因此对自动驾驶车辆控制系统的重要性较小。用外行人的话来说,与另一个物理边界是否距车辆200或202米相比,确保已知一个物理边界距汽车的精确距离为0.4576米通常与自动驾驶车辆的控制更为相关。
尽管如此,还将理解,本文描述的相对图集图架构支持多种布局方式。由于门、边界、图块和其他节点的高度互连的性质,可以使用变换的多个不同组合来确定一些元素的相对姿态,因此,本文描述的架构可以结合许多不同的布局策略来使用。例如,所有元素最终都连接到单个参考系(例如ECEF节点),因此不同的布局策略可以通过图块与ECEF节点之间,不同图块之间,元素和图块之间,相同类型元素和/或不同类型的元素之间以及它们之间的任何组合的变换来确定姿态。因此,本发明不限于本文讨论的特定布局策略。
现在返回图20的框626,在绘制潜在路径时,也可以考虑在数字地图中布局的边界以确保所有潜在路径不违反任何物理或逻辑限制。此外,门之间的不同类型的边可以用于在例如沿着相同车道延伸的路径与表示车道改变、转弯、坡道出口、坡道入口等的路径之间进行区分。在框626中绘制的潜在路径可以因此表示车辆可以被允许在特定时间范围内遵循的轨迹集合。
在一些实施方式中,每个门可以包括表示当通过门时的允许的车辆位置和定向的位置和定向。然而,在一些实施方式中,门可以彼此隔开约3至约10米,以适当地限制表示地理区域内的路径所需的门的数量。因此,一旦潜在路径集合已被绘制,就可以执行框628以对路径进行上采样,从而提高路径的分辨率。在一些实施方式中,例如,可以绘制门的位置和定向,可以在相邻门之间拟合曲线以匹配门的位置和定向,并且可以沿着每个曲线添加附加点(包括相关联的位置和定向)。然而,在其他实施方式中,可以不执行上采样。
接下来,框630基于可用路径以及诸如车辆的期望目的地、交通信息、交通控制的状态以及在车辆附近(例如,可以由感知子系统跟踪)的各种动态对象的附加信息,为自动驾驶车辆规划轨迹。在一些实施方式中,例如,不同的路径可以被指配权重或成本,以使得例如,在同一车道内的行驶相对于车道改变而有偏差,在同一街道或道路上的行驶相对于转向不同的街道或道路而有偏差,沿较短和/或较快路径行驶相对于沿较长和/或较慢路径行驶偏而有偏差等。此外,控制车速,例如在停车标志或红色交通信号灯处停车,对迎面而来的车辆让行,避免行人或其他车辆等,也可以适当地合并到该轨迹中。因此,在框630完成后,确定车辆在不久的将来的轨迹,并且例如可以将其作为轨迹命令的序列传递给图1的控制子系统158以使控制子系统能够使用车辆控制来实现轨迹。
现在转向图22-23,这些图示出了可用于确定车辆姿态的两个操作序列660、680,例如,如以上结合图20的框622所讨论的。特别地,序列660执行引导操作以从中选择活动图块以确定车辆姿态。这样,序列660可以不在重复计算车辆轨迹的主控制循环内执行,而是可以在车辆启动时或在车辆尚未定位到特定图块的任何时间执行。序列660例如可以对应于图2的定位子系统152的引导功能206。
序列660可以通过例如基于图1的SATNAV传感器132确定车辆的SATNAV坐标而在框662中开始。接下来,在框664中,从ECEF节点转换SATNAV坐标以识别相对图集图中的一个或多个附近的图块。然后,框666从所识别的图块中选择图块之一作为活动图块,针对其可以做出车辆姿态确定。例如,可以选择活动图块,因为图块的中心距车辆的SATNAV坐标最近,尽管其他因素,例如,基于连接到的相邻图块的元素,车辆是否更可能在另一个相邻图块中,(例如,如果最接近的图块在与车辆坐标相对应的区域中不包括任何门而相邻的图块包括),可在其他实施方式中用于选择活动图块。
图23的序列680例如在图20的框622中可以在用于车辆的主控制循环中执行,并且可以大致对应于图2的定位子系统152的地图姿态功能200。在该实施方式中,假定每个图块节点包括由图块表示的地理区域的表面模型作为有效载荷数据。可以例如通过从车辆日志中收集传感器数据(例如,LIDAR数据)并将当车辆行进通过图块时从不同姿态收集的测量结果组装在一起来生成表面模型。可以在不同的实施方式中使用存储表示表面模型的几何数据的各种方式,并且可以使存储空间与分辨率保持平衡,从而使得所得到的表面模型具有足够的描述性,以使车辆能够在图块中的特定位置内对准。另外,在一些实施方式中,表示表面模型的几何数据可以被表示为相对图集图中的不同节点,而不是在图块节点的有效载荷内,从而可以至少部分地基于在相对图集图中的多个节点之间分布的几何数据来构造图块的表面模型。
因此图23的序列680在框682中通过将传感器数据(例如,LIDAR数据)组装到点云中以表示车辆当前可见的表面开始。接下来,框684选择用于对准的图块。例如,在许多情况下,从图22的序列660中选择的活动图块可以被选择。然而,在其他情况下,可能希望合并基于车辆的移动和位置(例如,当车辆接近图块边界时)将活动图块动态地切换到不同图块的逻辑。
接下来,框686例如通过访问来自与活动图块相对应的图块节点中的有效载荷数据的几何数据,从相对图集图中为场景建立表面模型。然后,框688将点云投影到表面模型中,并且框690将点云与表面模型对准,例如,以识别最接近使点云与表面模型对准的车辆的位置和定向。应当理解,由于场景中存在动态或移动对象,因此点云的最佳拟合可能与表面模型不完全相同;然而,即使在这种情况下,通常也可以确定场景内车辆的单个姿态。
接下来,可选地执行框692,以基于来自框690的最佳对准来“微调”相对图集图中的一个或多个元素。因此,例如,如果在相对图集图中表示的物理边界被感测为比预期的近2.3厘米,则可以修改对应于该物理边界的边界节点的变换,以调整边界的相对姿态,以更准确地反映传感器数据,例如,通过更新连接到边界节点的一个或多个边的相对姿态。对图做出的改变还可以传播到远程/云服务(例如,图1的服务178)或以其他方式传播到其他自动驾驶车辆,使得图基于感测到的自动驾驶车辆的观察结果随时间演进。应当理解,可以实施各种控制来平衡相对图集图的改变与稳定性,例如,使得仅当多个车辆感测到改变和/或在经过同一地理区域的多次旅程之后才改变元素姿态。
然后,框694例如通过确定与点云与表面模型的最佳对准相对应的车辆的位置和定向,来确定活动(选定)图块的参考系内的车辆姿态。这样就完成了序列。值得注意的是,在所示的实施方式中,SATNAV数据通常不在主控制回路中用于定位,以使得主控制回路不会因车辆的SATNAV衍生位置的任何不可用而受到损害。
图24示出了用于确定车辆姿态的另一示例操作序列700。在序列700中,可以为多个图块确定表面模型,并且可以针对那些多个表面模型执行对准以确定用作活动对象的最优图块,而不是选择图块并针对该单个图块执行针对该表面模型的对准。因此,序列700可以通过例如基于先前的活动图块和与该图块相邻的任何图块来选择针对其执行对准的图块集合而在框702中开始。接下来,类似于图23的框682,框704可以将传感器数据组装到点云中,并且框706可以例如使用存储在与该图块集合相对应的每个图块节点的有效载荷中的几何数据来为该集合中的每个图块建立表面模型。然后,框708将点云投影到每个图块的表面模型中,并且框710将点云与每个图块的表面模型对准,例如,以识别最接近对准点云与表面模型的车辆的位置和定向,与图23的框688和690相似。然后,框712选择发生点云和表面模型的最佳对准的图块,即找到点云和表面模型之间的最匹配的地方。
接下来,类似于图23的框692,可以基于来自框714的最佳对准,可选地执行框714,以“微调”相对图集图中的一个或多个元素。然后,框716例如通过确定与点云与表面模型的最佳对准相对应的车辆的位置和定向,来确定活动(选定)图块的参考系内的车辆姿态。这样就完成了序列。
在其他实施方式中可以使用确定车辆姿态的其他方式。因此,本发明不限于本文讨论的特定操作序列。
应当理解,可以与控制自动驾驶车辆的其他方面结合使用与本发明一致的相对图集图。在一些实施方式中,例如,边界可以被绘制并用于车辆定位和/或规划。另外,图2的感知子系统154例如包括可以使用相对图集图来识别和/或预测环境内动态对象的移动。例如,感知系统可以利用相对图集图中的几何数据和/或其他地图数据,基于感测到的数据与相对图集图中的静态对象的轮廓之间的差异,在移动物体或暂时物体(诸如车辆和行人)之间进行区分,而不是在环境中的静态物体之间进行区分。感知系统还可以利用地理区域内的门和边界的知识来预测环境内其他车辆的移动。
进一步地,如图25的操作序列720所示的,感知子系统(例如,图2所示的交通设备估计功能214)也可以利用相对图集图来估计地理区域中的交通控制的状态。例如,序列720可以在框722中通过走动相对图集图以识别在当前车辆姿态的预定距离(例如,半径)内的交通设备而开始。如以上结合图14所述,将理解,在一些实施方式中,交通设备可以从数个图块远处可见,因此,如果可能的话,可能期望在构成数个图块的相对较大的区域内评估交通设备。
接下来,框724尝试在传感器数据中预测每个交通设备的位置,例如,在诸如相机的传感器的视场中的位置。该预测可以基于例如当前车辆姿态,存储在将用于各个交通设备的节点连接至图块的图块和交通设备边中的变换以及用于收集传感器数据的传感器的与校准有关的变换。图块和交通设备边中的变换还可以指定交通设备的高度,并且在某些情况下,可以定义包围框,在其中交通设备应在传感器数据中可见。如先前所讨论的,在一些实施方式中,可能期望利用在将交通设备的节点连接到车辆当前所在的图块的节点的图块和交通设备边中的变换。相信通过这样做,车辆的当前姿态以及因此将收集传感器数据的角度可以更紧密地匹配最初确定交通设备的位置的角度,从而更可能在传感器数据中定位交通设备。
然后,框726捕获图像。例如,在一些实施方式中,可以根据从相机捕获的图像来确定交通设备的状态,因此在一些实施方式中,框726可以用相机捕获静止帧图像。
接下来,框728从捕获的图像中提取各种交通设备的预测位置的包围框,并且框730例如使用图像分类器处理提取的图像数据,以确定每个交通设备的当前状态。该状态例如可以指定多个灯中的哪个灯被点亮,或者可以从适合于在交通设备节点中编码的交通设备类型的多个状态中选择。例如,对于图12的交通设备444,在不同的实施方式中,所确定的状态可以对应于“顶灯被点亮”、“红灯被点亮”或“交通停止”。
如上所述,链接在一起作为单个交通控制的多个交通设备通常将定义交通控制的总体状态,因此,框732可以为每个控制组合所有交通设备的单独状态,并且从而为每个交通控制确定相应的状态。然后可以在框734中返回状态,并且完成序列720。
对受益于本公开的普通技术人员来说,相对图集图中存储的地图数据的其他用途是显而易见的。因此,本发明不限于本文描述的特定用途。
因此,应当理解,相对图集图可以维护适用于与自动驾驶车辆的控制相关联的许多不同操作的地图数据。例如,如图2的本地化子系统152所表示的本地化可以结合确定车辆姿态来利用图块节点和存储在其有效载荷中的表面几何形状。例如如通过图2的规划子系统156表示的规划可结合规划车辆的轨迹来利用诸如门和/或边界节点的元素节点。相似地,图2的感知子系统154可以使用门节点和/或边界节点来跟踪环境内的车辆,并且可以使用交通节点来确定环境中各种交通控制的状态。
此外,在一些情况下,由规划子系统154和/或感知子系统156执行的一些或全部操作可以基于环境中的元素定位,该环境基于编码到不同元素节点之间的边中的相对姿态,并且不依赖于元素相对于图块的任何定位。换句话说,在一些实施方式中,图块节点以及编码为图块节点与元素节点之间的边的变换可能不用于在数字地图内定位元素。
本文所述的相对图集图架构还在布局以及识别环境方面提供了很大的灵活性。例如,节点和边图架构的双向特性使诸如“给定门,什么交通控制会影响该门”以及“给定交通控制,什么交通控制会影响该交通控制效果”的查询成为可能。
其他变型对普通技术人员将是显而易见的。因此,本发明存在于以下所附的权利要求书中。