CN113168403A - 设备消息框架 - Google Patents
设备消息框架 Download PDFInfo
- Publication number
- CN113168403A CN113168403A CN201980082575.3A CN201980082575A CN113168403A CN 113168403 A CN113168403 A CN 113168403A CN 201980082575 A CN201980082575 A CN 201980082575A CN 113168403 A CN113168403 A CN 113168403A
- Authority
- CN
- China
- Prior art keywords
- data
- files
- file
- subsystem
- request
- 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
- 238000000034 method Methods 0.000 claims abstract description 98
- 238000003860 storage Methods 0.000 claims description 42
- 230000015654 memory Effects 0.000 claims description 37
- 239000010410 layer Substances 0.000 description 96
- 238000004891 communication Methods 0.000 description 47
- 230000008569 process Effects 0.000 description 45
- 238000004422 calculation algorithm Methods 0.000 description 25
- 238000012545 processing Methods 0.000 description 25
- 238000004458 analytical method Methods 0.000 description 22
- 238000013507 mapping Methods 0.000 description 22
- 238000013500 data storage Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 14
- 230000000670 limiting effect Effects 0.000 description 11
- 238000013439 planning Methods 0.000 description 10
- 230000004044 response Effects 0.000 description 10
- 238000012360 testing method Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 230000004807 localization Effects 0.000 description 9
- 230000002123 temporal effect Effects 0.000 description 9
- 238000003891 environmental analysis Methods 0.000 description 8
- 230000000875 corresponding effect Effects 0.000 description 7
- 238000013527 convolutional neural network Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000011218 segmentation Effects 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 4
- 239000000872 buffer Substances 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000007613 environmental effect Effects 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 230000008447 perception Effects 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000010238 partial least squares regression Methods 0.000 description 2
- 238000000513 principal component analysis Methods 0.000 description 2
- 238000012628 principal component regression Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 238000002604 ultrasonography Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004378 air conditioning Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000005267 amalgamation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000011143 downstream manufacturing Methods 0.000 description 1
- 238000002592 echocardiography Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013488 ordinary least square regression Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 238000001454 recorded image Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000000344 soap Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 230000000699 topical effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000009423 ventilation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/185—Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Library & Information Science (AREA)
- Computational Linguistics (AREA)
- Traffic Control Systems (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种分层数据结构以及使用该分层数据结构的系统和技术。在一个实例中,可以接收第一设备数据,该第一设备数据包括多个文件并且对应于在一定时间段期间由设备的一个或多个部件生成的消息数据。第一多个文件可以根据分层数据结构被存储在一个或多个数据存储上和第一位置处,该分层数据结构至少部分地基于消息时间、数据标识符或设备标识符。可以获得与一定时间段相关联并且包括第二多个文件的第二设备数据。然后,第二设备数据可以根据分层数据结构被存储在一个或多个数据存储上的第二位置处。
Description
相关申请的引用
本申请要求于2018年12月13日提交的名称为“设备消息框架”的美国专利申请号16/219,623的优先权,出于所有的目的,其全部公开内容通过引用全文并入本文。
背景技术
许多设备,包括机器人、计算以及自主或半自主车辆,可以产生大量数据,这些数据典型地远离设备本身进行分析和存储。当登录到单个文件时,这样的数据可以创建非常大的文件,特别是给定长的时间跨度。这种大的文件大小可能会导致在传输到远程计算位置时长时间记录顺序消息以及离线操纵带来问题,因为它们通常需要在它们可以打开之前被本地复制。此外,很多时候,仅需要一小部分数据用于分析的目的,导致相对于需要的数据,大量的数据被传输和访问。这进而可能导致不必要使用带宽、存储和计算资源。
附图说明
具体实施方式参考附图进行说明。在附图中,附图标记的最左边的数字表示参考标号首次出现的附图。在不同附图中使用的相同参考标号表示相似或相同的部件和特征。
图1示出示例系统,其中,自主车辆数据服务系统从自主车辆接收数据,并且使用分层数据结构来存储、访问、以及执行对数据的分析。
图2示出在图1的分层数据结构中将数据分解成文件的方式的示例图。
图3示出示例系统,其中,自主车辆数据服务系统从自主车辆接收数据,并且使用分层数据结构来存储、访问、以及执行对数据的分析。
图4示出自主车辆服务(诸如,图3的服务)的不同方面之间的示例通信。
图5示出包括数据层的分层数据结构的实例。
图6示出图5的分层数据结构的文件的内容的实例。
图7示出可以如何从图5的分层数据结构的两个相关但不同的文件树或数据结构访问数据的实例。
图8示出图5的分层数据结构的两个相关但不同的文件树或数据结构的另一实例。
图9示出用于在分层数据结构中访问和存储机器人设备数据的示例过程。
图10示出用于使用分层数据结构访问和组合机器人设备数据的示例过程。
图11示出用于使用分层数据结构来接收、存储、访问、以及组合数据的示例过程。
图12示出向数据服务系统提供消息和数据的子系统的实例。
具体实施方式
本公开描述了使用目录或分层数据结构来对从设备(诸如,机器人设备或自主驾驶汽车)获得的数据进行有效地组织、访问、以及执行分析和操作的方法、装置和系统。设备(诸如,自主车辆)可以在正常操作过程中生成多个消息,包括日志数据、传感器数据和决策点。如本文所描述,设备本身或接收数据的服务可以将数据写入分层数据结构中以使得能够对数据执行更快速的访问和更高效且直观的分析和操作。分层数据结构可以将消息组织成不同的主题(数据标识符)。分层结构中的文件(其可以是数据结构中的最低级别)可以包括用于特定主题的一个或多个消息(例如,日志或其他数据)。每个文件可以与其记录或其所属的时间相关联,并且可以小于用作对文件大小的限制的阈值大小。时间值可以表示数据结构的第二级。在一些方面中,设备或自主车辆可以此方式组织由设备或自主车辆创建的数据,以使得能够向链接的服务或系统更快、更高效并更精确地报告某些数据。
在一些方面中,可以使用数据结构来修改和存储数据结构的一个或多个文件,例如,在数据结构的一个或多个层中。在一些实例中,将数据存储回到数据结构中,而在其他实例中,将数据存储到以相同方式组织数据的另一数据结构中。在一个实例中,这可以包括将来自相同的时间窗口的某些主题捆绑在一起、排除其他主题、改变一个或多个文件中的值等。然后,可以将这种经修改的数据存储在例如数据结构中的子目录或层(例如,变体层)中。以此方式,可以对不同文件执行分析或预处理,并且将其存储在同一数据结构中以增强下游处理且使访问经修改的数据更有效。
在一些方面,数据结构可以包括指定一个或多个文件所属的设备(诸如,车辆)的级别,诸如,在多车辆数据管理系统或服务的情况下。根层可以被实现来标识数据的一个或多个其他特性,诸如,存储位置、访问权限、或约束信息等。以此方式,可以智能且高效地组织、处理以及访问数据。
在一些方面中,尽管考虑了任何其他时间间隔(例如毫秒、秒、小时等),最低时间级别可以表示分钟,使得每个文件可以包括例如由设备生成的一分钟间隔的数据,例如在自主车辆上生成的一个或多个消息。如本文中所描述,文件包含少量(小于阈值量)的数据,并且因此可以提供优于当前系统的多个特定好处和优点。所描述的数据目录或分层数据结构可以解决先前使用的系统的一个或多个标识的问题,包括处理每个或多个文件的数据量过高、不灵活、任意的主题分组、扩展数据存储的困难、访问速度慢、依赖于特定操作系统的文件(例如,ROS)、缺乏统一的存储和访问位置、以及没有统一的API访问。
例如,使用一个日志记录系统的某些数据运行或时间跨度可以大于100GB,这需要1.5小时来以20MB/秒下载。通过将数据分离成更短的时间段并且由可定制的更多主题来组织,可以更快速地将数据下载或通信至另一系统,并且更快速地访问相关数据。所描述的数据目录可以提供易于定位和访问的小的粒度文件。数据目录可以直接通过名称提供主题访问,从而提供直观且高效的方式来在非常细粒度级别上访问数据。
所描述的分层数据结构可以存储针对某些主题以多个级别组织的文件,并且不需要裁剪或以其他方式从记录中排除数据,并且因此提供与现有方法相比可以更好地支持各种各样的设备的更完整的数据记录。在一些方面中,可以通过随机访问API来处理所描述的分层数据结构中的视频文件,以进一步减轻存储和访问大量数据的低效率。
所描述的数据目录可以与不同系统对接并且可以支持标准存储技术。
如下文更详细描述且贯穿全文使用,消息可以表示分层数据结构中的最低级别单元。在一些方面,消息可以表示在车辆(或其他设备)上发送的消息,并且可以包括相关联的时间戳和元数据。在一些方面,消息可以包括日志数据(例如,来自传感器、来自中间进程的数据、来自系统的设备/子系统的部件和/或子部件的响应等)。主题可以是在车辆或设备上发送的消息的类型。主题可以在自主车辆服务中被预定义,或者可以是可配置的。在一些方面,示例主题可以包括与机器人设备或自主车辆的特定子系统(诸如,激光雷达子系统、雷达子系统、物体确定子系统或各种其他子系统)有关或由其生成的数据。在一些其他实例中,主题可以包括例如响应于特定触发而做出的某些决定、来自多个子系统的用于做出一个或多个确定或决定的输入、来自一个或多个子系统的与关键字有关的数据等。
窗口可以指主题被分解成的时间段。例如,为了平衡文件大小和数据新鲜度,将主题分成一分钟窗口可能是有益的。文件可以表示与主题的窗口有关的数据。文件可以包含关于特定主题的一个或多个消息。在一些实例中,用于文件的一分钟窗口可以等于小于1MB的平均文件大小(其中较大文件在70至100MB的范围内),这对于响应于请求快速发送或流传输数据以及访问数据可能特别有益。层或子目录可以指具有根、变体标识符和相关联的数据或文件的数据的层或集合或组,其可以包括相关联的数据或文件被组织到其中的一个或多个附加子目录。不同层或子目录可以共享相同级别结构的部分或全部,包括时间级别、主题级别、设备标识符级别等,但可以含有不同数据或文件。变体或变体层可以是例如以某种方式根据从车辆收集的数据修改的替代消息集。这样的变体层可以提供附加功能(诸如但不限于关联与访问控制的多个级别中的一个相关联的数据集),提供某些部分在变化系统上的存储以用于更快的访问,提供已经被独立地更改(例如,通过测试算法)的数据集和/或来自其他层的数据的组合。在一些方面,变体可以被优化用于执行定制分析、更有效的数据预处理和/或离线使用。在一些方面中,自主车辆的操作可以假定以纳秒测量的时间。在从一个或多个数据存储取回数据期间,这样的变体和主题可以用于访问控制目的。作为非限制性实例,某些变体层可以被存储在一个数据存储上,而其他变体层可以被存储在另一数据存储中。至少部分地基于用户、变体、位置等,来自一个数据存储的数据可能仅对一个用户、位置等可用。进一步,当存储数据时,变体层和主题可以被选择性地存储在不同数据存储中以供最佳检索。作为非限制性实例,频繁访问的数据可以被存储在本地根中,而不频繁访问的相关联的变体和/或主题可以被存储在远离和/或具有较长访问时间的数据存储中。在一些情况下,可以基于对数据的访问的等待时间和/或频率来确定存储的位置不同的层。
图1示出示例系统100,其中,服务102从设备106接收数据,如所描绘的,该设备可以包括使用目录结构来存储、访问并且执行对数据的分析的自主车辆。应当理解,设备106作为自主车辆仅作为实例给出。所描述的技术适用于多种设备,包括具有机器人部件或特征的设备,从而使得多种其他设备可以有利地结合所描述的分层数据结构来利用。
设备106可以生成关于传感器读数的不同数据、来自设备106的多个子系统的数据、所做的决策点、处理步骤等。在一些情况下,数据可能非常大。如图所示,数据由可以包括激光雷达数据112和图像数据114的传感器数据110和可以包括不同其他数据(包括日志数据等)的决策数据108表示。如下所描述,图12详述自主或半自主车辆中的各个子系统,作为设备106的实例,其可以生成并报告可以在此统称为设备或车辆数据的这个或其他类型的数据。
在一些方面中,由设备106的不同子系统生成的数据可以呈消息或日志数据的形式。这些消息可以由子系统基于例如由设备106的一个或多个传感器获得的数据来生成。在一些情况下,设备106上的一个或多个计算系统可以封装消息或从原始或未封装的数据生成消息。在这些情况中的任一情况下,设备106或其计算系统可以根据消息或数据所属的不同主题来将消息分组成文件。在一些方面中,主题可以包括设备的不同操作参数、传感器读数、操作决策等。主题可以是针对服务102预定义的,可以是针对由服务102管理的设备106的子集预定义的,和/或可以是可定制的。
设备106可以将原始数据或消息封装成用于不同主题的文件。在一些方面中,设备106可以规则或可变间隔(例如,以一分钟间隔)将数据封装到文件中。设备106可以向服务102发送文件,服务102可以根据分层数据结构将数据存储到数据存储104中,该分层数据结构至少以主题和时间为索引。
服务102可以包括不同计算系统(诸如,一个或多个服务器、虚拟计算实例、数据存储区等及其组合),以促进从多个设备106收集包括决策数据108和传感器数据110的设备数据。在一些方面中,服务102可以包括存储装置、一个或多个处理器、存储器和操作系统。存储装置、处理器、存储器和操作系统可以通过通信基础设施通信地耦接。任选地,计算机系统可以经由输入/输出(I/O)设备以及一个或多个其他计算设备(诸如,网络上的设备106)经由通信基础设施与用户或环境交互。操作系统可以与其他部件交互以控制一个或多个应用。在一些情况下,计算机系统可以实现任何硬件和/或软件以实现本文所描述的不同子系统。
在一些情况下,数据存储104可以由服务102提供或与服务102相关联,或可以由单独的系统或服务来实现。
服务102可以经由键接至分层数据结构的索引系统来提供对数据的访问。在一些方面中,服务102、设备106或其组合可以将通过时间索引的文件附接或以其他方式组织成不同其他分层级别,诸如,车辆或设备标识符、根值和其他标识符。分层数据结构或目录可以由服务102用来通过根、设备、主题和时间存储并且提供对特定文件的访问。在一些情况下,服务102可以进一步使得能够修改分层数据结构中的一个或多个文件。服务102还可以例如通过添加或改变文件所属的层来将一个或多个经修改的文件存储回到分层数据结构中。以此方式,服务102可以促进对按照时间索引的主题的粒度上的设备数据的快速且高效的访问。
图2示出在所描述的目录或分层数据结构中将设备数据分解成文件的方式的示例图200。
在本文描述的由文件214表示的分层数据结构下,对于给定的时间段或窗口224,每个文件214表示多个不同的主题216、218、220、222中的一个。以此方式,每个主题被包含在一系列文件中,由时间间隔分开。在一些方面中,窗口大小224的一分钟时间间隔可以提供有用信息与可管理文件大小的平衡。
在一些方面,可以用比由另一数据组织方案212表示的包202的主题204、206、208、210更精确且窄的方式来定义一系列文件的主题216、218、220、222,诸如,包括自定义主题。在一些实例中,主题216、218、220、222可以被配置为对应于自主车辆的多个子系统中的任何一个、操作标准、与不同决策点有关的数据或消息的类型等。
图3示出另一示例系统300,其中,数据服务302使用目录结构从自主或半自主车辆318接收数据310以存储、访问数据并且对数据执行分析。系统300可以结合以上参考图1描述的一个或多个方面。例如,服务302可以合并服务102的一个或多个方面。如关于图1类似地描述的,服务302可以从一个或多个车辆318接收车辆数据310。服务302可以在分层数据结构中接收数据或将数据分类到分层数据结构中,该分层数据结构由主题、时间、车辆、根或其他值中的至少一个来组织。在一些情况下,来自多个设备或车辆318的数据可以使用分层数据结构组合或合并成单个数据结构,这将在下文更详细地描述。合并(Amalgamation)可以采取各种形式和形式的组合,诸如,通过添加或组合来自不同交通工具的数据集、执行计算(例如,统计计算、有待在设备上运行的附加/替代过程的测试(例如,所提出的用于感知、计划、预测等的新算法)等)以基于来自多个车辆的数据创建数据点,等等。在示出实例中,服务302还可以包括权限管理器304、存储管理器或构建器306以及数据接口或读取器308。权限管理器304、存储管理器306和数据接口308中的每一个可以是在服务302上运行的或由服务302提供的服务,和/或可以在组合的或不同的计算系统上操作,如服务302。还如示例系统300中所示,数据存储312可以与服务302分离并且由数据存储服务314或其他联网计算服务提供者或系统托管或提供。在该实例中,数据存储312(其可以是分开的或集成到服务302中)可以根据分层数据结构316来存储文件,该分层数据结构包括针对年/月/日、小时、分钟、秒、车辆、以及主题的不同级别。
根据数据结构316,存储管理器或构建器306可以接收车辆数据310并且将车辆数据310写入到数据存储312。在一些方面中,构建器306可以使用数据将被写入到例如数据存储312中的位置和车辆名称或标识符来将数据写入到数据存储312。在一些方面中,构建器306可以将车辆数据310与分层结构316的不同层和/或级别(诸如,多个时间级别和主题标识符)相关联。应当理解的是,车辆318和构建器306均可以分开或组合地执行将车辆数据310与待存储在数据存储312中的各个层相关联的操作。在一些情况下,构建器306可以维护将不同文件与数据存储312中的不同位置相关联的索引或其他数据结构,以使得能够访问车辆数据310的各种文件。在一些情况下,此索引可以包括所有根名称和层指示符的目录,以促进对车辆数据310的文件的容易访问。
为了促进预处理、再处理、添加、提供来自新中介物的输出(例如,测试新计划系统,诸如以下描述的计划系统1228或车辆318的其他系统)、分组或对数据的其他操作,构建器306还可以将相同或类似的数据写入不同层。这些不同的层在本文中称为变体层。这些变体层可以被优化用于定制分析或离线使用,如以下将更详细描述的。
在一些方面中,构建器306可以将不同文件存储在不同位置中,以优化对车辆数据310的各种访问要求。例如,构建器306可以将车辆数据310的一些文件存储到本地或容易访问的存储器位置或数据存储。这对于比其他文件更频繁地访问的文件可能是特别有用的。类似地,例如,构建器306可以将车辆数据310的一些文件存储在远程存储器位置中,以减少存储大量车辆数据310所需的成本和资源。在一些方面中,将车辆数据310的文件存储在不同位置中可以由数据存储服务314进一步促进或完全或部分执行。
数据接口/读取器308可以读取或访问存储在数据存储312中的车辆数据310。在一些方面中,读取器308可以根据存储位置和车辆名称来访问数据存储中的文件。在一些情况下,读取器308可以促进对存储在数据存储312中的数据运行查询和访问车辆数据310的特定文件。读取器可以例如经由自主车辆服务302提供的一个或多个接口接收指定获得什么文件的信息。在一些方面中,可以通过搜索数据范围来定位和检索车辆工具数据的文件。范围可以包括时间范围,例如开始和停止时间值,或具有开始或结束点的持续时间。范围信息还可以包括或伴随有车辆标识符和一个或多个主题。
在一些方面中,读取器308可以接收用以查询和获得例如由范围(包含时间值、车辆和主题)标识的某一文件集合的指令。在一些方面中,读取器308可以搜索例如由服务302保持的数据存储312中的存储数据的车辆数据310的索引,以标识对应于范围信息的文件集。在该实例中,索引可以包括根据分层数据结构中的各个层和/或存储数据的位置将什么数据存储在数据存储312中的库存。在其他情况下,数据存储服务314可以基于范围信息来标识所请求的文件。在任一情况下,读取器308或数据存储服务314可以从数据存储312获得所请求的车辆数据310。读取器308然后可以将所请求的文件提供给服务302以用于对初始请求作出响应。在一些方面中,例如当请求或查询指定包含在经选择以符合请求的文件中的数据的子集时,可以提供所选择文件中的数据的至少一部分。在一些情况下,响应于查询获得的文件内的消息可以以它们例如由设备或车辆记录的顺序来提供。这可以包括在文件中连续地流传输或以其他方式提供消息,以重新在第一实例中记录消息(例如,对设备或车辆发生的事件的回放)。
在一些方面中,可以创建变体或替代层或者将其存储回到数据结构316中。这些变体层可以包括组合来自数据结构的不同层的文件、从单个层移除一些文件、以及其他操作和修改。有利地,可以通过简单地在读取或写入指令中指定变体层名称(例如,使用URL)来读取和写入变体层,而不需要其他定义或参数。
在一些实例中,一个或多个文件可以由构建器306使用不同的变体层标识符来修改并存储回数据存储312。
在一些方面,数据结构316和数据存储312可以主要基于层和文件分层结构(例如,C++、Python、REST等)来支持不同编程语言。因为存在从时间、设备(例如,车辆)和主题到文件的直接映射以实现效率,所以与数据存储312和数据分层结构316接口连接可以相对容易地配置针对多种不同语言、使用不同API调用等进行配置。在一些实例中,数据结构316可以使用不同格式(包含SSTable格式)存储在数据存储312中,其可以提供经良好测试的API以进一步确保对数据的有效访问。在一些情况下,数据可以在存储于分层结构316中时被压缩,这可以改善经由有限带宽信道来通信数据。
在一些方面中,可以使用可以指定主题、变体、时间等的统一资源定位符(URL)或其他统一资源标识符(URI)来存储、访问或调用层。以此方式,由特定车辆或设备生成的来自特定时间段的特定文件可以被容易地定位并召回。在一些情况下,层本身或引用另一层的层可以指示存储在层中的数据涉及哪些文件主题、时间、设备等。
在一些情况下,如果接收到使用时间范围或者文件请求的起始和结束值来访问或再调用一个或多个文件的请求,并且指定时间在两个时间子目录之间,读取器可以选择在范围开始处的最早文件和在范围结束处的最晚文件以提供对请求的更完整的响应。
在一些情况下,服务302可以包括权限管理器304,其可以控制对车辆数据310的不同文件的访问,例如,在根级别、变体层级别、主题级别、时间级别、设备标识符级别或其组合上。权限管理器304可以将不同的权限与不同的文件相关联,以控制允许什么实体访问车辆数据310的某些文件。在一些情况下,权限管理器304可以通过主题、车辆或不同的变体层属性对文件进行分组。然后,权限管理器304可以基于谁可能需要访问车辆数据310的特定子集、或者限制对一个或多个组或账户的访问而将权限与不同的数据组相关联。例如,变体层可以定义对车辆数据执行的某些操作(例如,其可以包括不同文件或主题的组合),指示在自主车辆318上实现的一个或多个安全措施。可能期望限制谁可以访问安全数据,例如,如果数据是机密的,或者仅某个组可能曾经访问数据。
权限管理器304可以使一个或多个权限与一个或多个文件或层相关联,并且将信息通信至构建器306和/或数据存储服务314以实现限制或控制对数据的未来访问。
在一些方面中,权限管理器304可以具有或提供管理接口以使得管理员能够定义、配置或选择某些权限并且将那些权限与不同组的用户、实体、IP地址或其他特性相关联。在一些方面,某些数据可以与一个或多个变体层相关联,以进一步实现对分层数据结构中的不同数据的更精确和粒度的访问控制。例如,导航控制数据可以由车辆318生成。导航控制数据可以被拆分并且存储在不同的变体层中,以使得不同组能够更高效地访问导航控制数据的不同片段。例如,一个组可以负责监测并改进跟踪子系统,诸如下文参见图12描述的跟踪子系统1226,并且另一组可以负责监测以确保感知和预测子系统1212正确工作,而又一组可以负责对驱动控制器1270进行改进。导航控制数据可以根据对每一组有用的东西以及每一组的相关数据与不同的变体层相关联并且被存储在不同的变体层中。每个变体层可以与访问权限相关联,该访问权限以允许访问每个变体层中的数据的凭据的形式指定用户、组或其他标识信息。
访问权限可以通过限制对与不同组无关的数据的访问来使各组能够有效地访问导航控制数据的不同子集。在一些情况下,访问权限可以用于防止某些组或用户访问敏感数据,诸如,为了遵守由外部组织强加的一个或多个规定或规则、出于数据隐私的原因等。
图4示出自主车辆服务和自主车辆的不同方面之间的示例通信400,诸如上文参考图1和3所描述的。在一些方面,车辆传感器402和/或车载计算系统404可以是自主或半自主车辆(诸如,如以上参考图1和图3描述的车辆106、306)的一部分,和/或包括以下参考图12描述的车辆1200的一个或多个子系统。此外,车辆数据存储410可以包括以上参考图1和图3描述的车辆数据存储104和312的一个或多个方面。
车辆传感器402可以获得各种传感器数据,如下面参考图12更详细描述的。在操作412处,传感器数据可以被通信至一个或多个车载计算系统404。在一些情况下,如以下参考图12更详细描述的,车辆传感器402可以将传感器读数和数据412通信至一个或多个车辆子系统的一个或多个计算系统。在任一情况下,中央车载计算系统404或其一个或多个子系统可以在操作车辆的过程中在操作414处处理传感器数据。操作414可以以关于传感器数据和车辆的操作的各个方面的多个消息的形式生成操作数据,例如,该操作数据可以在车辆的各个子系统之间进行通信。在一些方面,消息可以包括日志数据。作为非限制性实例,此类车载计算系统404可以至少部分地基于来自一个或多个传感器的传感器数据来执行操作,诸如检测、分类、对象分段、车辆相对于地图的定位等。此类检测、分类、分段、定位、预测的对象运动等可以以一个或多个消息的形式输出。进而,在这样的实例中,其他过程可以消耗这种消息以创建更多消息(例如,以下描述的计划系统可以基于上述消息数据创建要由车辆控制器消耗的消息)。当然,任何数量的部件和子部件可以在彼此之间传送数据。在任何这样的实例中,消息可以具有如由中央计时服务器进程提供的对应时间戳。
在一些方面中,在操作416处,车载计算系统404或车辆的一个或多个子系统的一个或多个计算系统可以例如根据如上所描述的分层数据结构将传感器数据和操作数据封装到文件中。在一些方面,操作414和/或416可以包括计算系统404收集并且记录从自主车辆的多个子系统生成的消息。计算系统404可以将可以包括日志数据的消息分组到多个不同的主题中。分组可以许多不同的方式执行,包括由生成消息的子系统、所执行的任务或过程(其可以跨越一个或多个子系统)、通过关键字、或通过其他度量或方案来执行。消息数据可以被分解为时间段。在一些方面,时间段或窗口可以被预定义,诸如以一分钟间隔,但构想了任何其他时间段。在一些情况下,可以基于接收到的数据的频率和量来确定此类时间窗口,以便确保其中包含的数据量不超过阈值数据限制。操作412、414、416和/或418中的一个或多个可以在不同时间(诸如,以规则间隔、以可配置和/或可变间隔、或在一个或多个事件发生时)执行。一个或多个事件可以包括诸如由车辆的一个或多个传感器或子系统触发的车载事件。
在操作418处,车载计算系统404和/或自主车辆的其他部件可以例如通过一个或多个网络将传感器和操作数据通信至自主车辆服务408。在操作416处车辆计算系统封装数据的情况下,可以将数据以更小的文件(例如,大多数小于1MB,并且一些更大的文件高达约70至100MB)通信至自主车辆。在一些方面中,在较小的窗口中封装并通信由操作412、414、416和418表示的432处的数据可以减小车载计算系统404在向自主车辆服务408发送数据的过程中的压力。在一些方面中,在操作416处封装的文件可以足够小以使得不需要数据缓冲器,或替代地,可以使用不多或大容量的数据缓冲器。
在操作418处接收传感器和操作数据时,自主车辆服务408可以在操作420处将数据组织成分层数据结构,并且在操作422处将数据存储在车辆数据存储422中。在一些方面,操作420可以包括将车辆数据的文件(其可能已经与时间值和主题相关联)与数据分层结构中的附加级别(诸如,车辆标识符、根值和/或一个或多个变体层)相关联。不同主题的多个文件可以分组或组织到子目录或层中,按照时间值组织。
在一些方面中,在操作424处,自主车辆服务408可以接收一个或多个指令以访问和/或修改一些车辆数据。在一些方面,操作422可以包括接收修改数据的指令,包括创建由具有包括在其中的文件或主题的一个或多个特性的变体层表示的数据的新子集,该变体层可以从获得的原始数据改变或修改。作为响应,在操作426处,自主车辆服务408可以从车辆数据存储410请求并获取数据。在一些情况下,自主车辆服务408可以根据在操作424、在操作428处接收的指令修改数据,并且在操作430处将修改的数据存储至分层数据结构中的数据存储410。以此方式,通信400可以促进对车辆数据的容易访问和操纵。
在一些方面中,在操作424处接收到的用于修改数据的指令可以包括将对数据执行的多个不同过程,包括从分层数据结构的一个或多个子目录添加或移除某些文件以创建新的子目录。
图5示出文件结构的实例,其可以被称为目录数据结构中的子目录、树或层500,包括多个不同的数据级别。树500可以包括以分层方式组织的不同级别,以更有效地存储从一个或多个设备(诸如,自主或半自主车辆)接收的数据。树结构500是以关系术语来描述的,以便于理解。应当理解,这仅是出于解释的目的而给出的,并且不表示如何物理地存储数据的形式。
树可以具有根级别502,其指定树的一个或多个属性,包括与树相关联的一个或多个访问权限、树的数据存储或存储器位置等。作为非限制性实例,这样的根级别可以指定数据存在于远程的、基于云的本地的、压缩的、未压缩的、可经由特定协议访问的服务器中,等等。接下来,树500的文件所属的特定日期和时间可以包括一个或多个级别。在示出实例中,第一级别504表示年,下一级别506表示月,下一级别508表示日,并且下一级别510表示小时、分钟和秒。时间级别504、506、508和510中的每一个可以被扩展为包括任何时间段。如图所示,由新的最低级别时间512、520、524等表示每分钟的时间。应当理解,可以类似地使用其他数量的级别和其他时间划分。
在一个或多个时间级别以下,可以包括设备标识级别512。作为非限制性实例,从自主车辆车队中的第5自主车辆生成和收集的数据可以指定例如“AV_5”这样的级别。可以在每个设备的每个时间窗下包括多个不同的主题文件514、516、518等。在所示出的实例中,主题1 514作为文件514、522和526被包括在时间级别512、520和524中的每一个中。在一些实例中,当落入那些主题的数据(例如,一个或多个消息属于那个主题)由车辆在对应的时间间隔中生成时,表示相同主题的文件可以包括在不同时间间隔中或存在于不同时间间隔中。
以这种方式构造车辆或其他设备数据可以在粒度级别上提供对车辆数据的容易且高效的访问。此外,该数据结构支持读取器(诸如,上述读取器206),从多个分层的根读取。相同的结构或格式可以跨多个树使用,以帮助提供更有效的数据访问或再调用。
图6示出图5的目录数据结构的文件600的内容的实例。在一个实例中,主题文件600可以以表格格式(诸如,Google LevelDB的SSTable格式)存储,但设想了其他格式。表中的每一行602可以包括消息编号604/消息606对。在一个实例中,消息编号604在时间上可以是顺序的,使得2表示在1之后的时间,等等。消息可以是许多不同的格式(诸如,ROS、协议缓冲器、JSON、XML等),并且任何主题可以包含多个消息类型。每个消息606可以包括类型标识符608和数据字段610,该类型标识符可以标识消息的内容的类型(例如,ROS消息、协议缓冲器等)、起源或一个或多个属性。在一些方面中,空间可以由附加大小字段612保留用于消息中(例如,消息616中)的数据614的另一格式或字段。在一些方面,附加数据614可以包括时间戳618或其他时间标识符(其中时间可以按纳秒计,以Unix时间或UNIXEpcoh时间来报告)和帧标识符620(例如)以描述附加数据的源。
在一个实例中,文件600中的一行(如所示的最后一行)可以包括描述类型和其他元项的元数据记录622。如图所示,元数据记录622可以包括关于文件600的各种字段和多条信息,诸如,版本、名称、时间信息、以及与文件600中包括的任何数据格式有关的信息。
图7示出图5的目录数据结构的两个相关但不同的文件树或子目录的实例700。标记为根_1的第一树702包括关于特定车辆710在特定时间712、714、716的主题_1 704、706、708的文件。标记为根_2的第二树718可以存储关于相同车辆710的时间段或窗口710、714和716的主题_2 720、724和728以及主题_3 722、726和730的文件。以此方式,可以将用于车辆或其他机器人设备的不同主题的文件存储在单独的树或子目录中。
根据统一数据分层将机器人或车辆数据存储在单独的树或子目录中的能力可以是有益的,并且允许比其他文件更频繁地访问的某些文件的高效本地缓存。将某些主题存储在单独的树中也可以是有益的,例如,以促进对不同数据的同时访问,以及出于许多其他原因。在一些情况下,例如,如以上参考图2的权限管理器204所描述的,针对不同的主题,在不同的树中存储不同的文件可以用于将不同的权限方案关联到不同的数据。
应当理解,树702和718可以包括针对不同主题、针对时间长度的变体的任何数量的文件,并且包括不同大小的时间窗口。
在一些方面中,数据树702和718的级别可以具有定义的次序,并且对于每一文件,当请求时检索所发现的第一文件。因此,在所示出的施例中,尽管按照该实例访问方案,树2718可以具有与主题_1对应的数据,但是请求主题_1的文件,检索文件704、706和708。
图8示出图5的目录数据结构的两个相关但不同的文件树或数据结构的另一实例800。在图8的实例中,示出各自与根_2相关联的两个不同树802和804。对于时间段810和对于车辆812,树802包括与主题1相关联的文件814。对于时间段810和对于车辆812,树804包括与主题2和3相关联的文件816和818。树802具有指定树与变体层相关联的两个附加层806、808。变体层标识符806和808可以用于以一种方式或另一种方式修改存储在树中的文件,且将经修改的文件、或文件的不同组合、或新产生的文件保存到可单独寻址的树。应当理解,树802和804可以包括针对不同主题、针对时间长度的变体的任何数量的文件,并且包括不同大小的时间窗口。在一些方面,树804还可以存储与主题1相关联的文件814,其中可配置访问偏好(例如,访问来自树802的主题,首先,如果不存在,访问来自树804)。
这里描述的分层数据结构或目录部分地通过按照主题、时间和车辆来组织文件,使得能够容易且高效地修改、重新组织、比较和添加要执行的数据。变体层、或具有不同文件、外部数据、从其他文件导出的数据等形式的可定制内容的层可以经由所描述的目录容易地创建和访问。变体层可以通过多种方式来创建,包括通过经由将变体层标识符与新层相关联来组合不同层的文件以形成新层。可以通过根据分层数据结构组合在时间上对齐的不同主题的文件来形成层。这可以包括将与不同主题但相同时间段或窗口相关联的文件组合到具有一个或多个时间级别的层中。以此方式,数据可以几乎无限的方式组合,以能够更快地访问可能相关但来自不同来源(诸如,自主车辆的不同子系统)的数据。
在另一实例中,变体层可以通过将其他数据(包括外部数据和/或与设备有关的其他数据)相关联来创建。在一些实例中,数据可以从由设备生成的数据导出且接着与存储于分层数据结构中的文件组合。这可以包括访问设备数据的文件的第一集合、抽象或获得包含在那些文件中的信息的某个子集、并且然后将数据与设备数据的文件的第二集合进行组合、并且使用分层数据结构来存储新生成的数据集合。
例如,第一文件集可以包括不同传感器数据和与子系统(诸如,以下参考图12所描述的传感器校准子系统1230)相关的其他消息和/或日志数据。可能期望从由子系统1230生成的数据中提取一些信息,以便将所提取的信息与由另一子系统(诸如,道路导航系统1242)生成的数据相关联。与一个或多个传感器(诸如,相机、雷达、激光雷达等)的校准有关的数据或一些其他操作特性与由道路导航系统1242做出的某些导航决策相比较、在时间上相关时可能特别有用。在此场景中,可以经由分层数据结构访问一段时间内与传感器校准子系统(例如,第一主题)和特定车辆相关联的文件,如在此所描述的。可以从所访问的文件中的一些或全部(例如,如果数据被包含在文件中的每一个中)提取特征信息。还可以访问与道路导航系统1242相关联的文件达相同的时间段和特定车辆。抽象数据可以被组织成文件,然后与所访问的道路导航系统文件组合,并且被存储在分层数据结构的新层中,以供进一步分析和使用等。
在一些实例中,可以将抽象数据组织成与新主题和时间值相关联的新文件。然后,通过根据时间和车辆标识符(例如,在新层或现有层中)将两个不同的文件集合对齐,将这些新文件与道路导航系统文件的文件相关联,从而将这些新文件与道路导航系统文件的文件组合。通过使用所描述的分层数据结构,来自车辆或机器人设备的各个子系统的数据可以在时间上容易且高效地组合和对准。
在其他实例中,不同类型的信息可以通过计算值或对数据执行其他操作来从由设备或自主车辆生成的数据中导出。这些操作可以包括数学运算(计算平均值、加速度、特殊关系等)、布尔运算、语言运算(将某些关键字与值或与其他关键字相关联)、以及基本上以某种方式使用底层数据的任何定义的操作。在这方面,所描述的分层数据结构是分析、预处理、组织和存储用于宽范围的分析的数据的非常强大的工具。
在一些方面,可以汇总从车辆获得的数据,使得大量数据的大小可以通过出于特定目的提取或修改底层数据来减小,并且保存在变体层中。
在其他情况下,不是由设备或车辆生成的数据或设备外部的数据可以以类似的方式组合。例如,可以对应于车辆在特定时间的操作的其他数据(例如,外部传感器数据、天气数据、交通数据等)可以与车辆生成的数据相关联,以导出或推断环境因素对例如车辆的一个或多个子系统的操作或运行的影响。
类似地,可以通过从现有层中移除以一个或多个主题的文件的形式的数据来生成变体层。这在主题通常包含大量数据或文件的情况下可能是特别有益的,但是为了一些特定目的,仅需要数据或文件的小子集。通过创建仅包括相关数据的变体层,并且例如将变体层存储在可容易访问的数据存储位置中,数据可以被更快速地访问并使用更少的资源(例如,处理、存储器和网络资源)。
在一些情况下,变体层可以用于提供更可定制的访问方案,其中,具有不同主题的文件的某些变体层可以与由任何数量的不同特性分组或定义的访问权限相关联,包括通常将访问某些数据(仅允许某些实体看到的敏感数据)的实体,以符合数据隐私问题等。以此方式,可以以非常精确的方式控制对数据的各种细分的访问。
在一些使用描述数据分层的实例中,变体层可以用于对比其他数据更频繁地访问的数据进行分组,并且将其存储在提供对数据的快速访问的位置中。这既减少了所需的快速访问数据存储量,又通过最小化必须搜索的数据量减少了访问数据的时间。以这种方式使用变体层以更好地基于访问来组织数据还可以通过复制数据并且存储在第二位置中来增加容错性等来用于优化数据存储成本。
在又一些其他实例中,变体层可以用于记录和比较通过对设备或车辆或其子系统的操作运行模拟(或以其他方式测试关于先前记录的数据的新算法、过程等)而生成的数据。例如,可以使用不同的输入和/或不同的算法,以便在设备或车辆的一个或多个子系统中测试新设计或说明不同的情况、环境等。输出可以被组织成变体层,并且与使用其他输入和/或其他处理算法从设备或车辆获得的数据进行比较。作为非限制性实例,可以针对在驾驶车辆时获得的先前记录的图像来运行新的计算机视觉检测器(标识图像数据中的对象的处理)。在这样实例中,来自第一检测器算法的输出可以直接与来自原始检测器的检测进行比较。以此方式,变体层可以用于测试和有效地比较可以在设备或车辆、或其一个或多个子系统中实施的不同设计变化的结果。在更具体实例中,可以有利地测试车辆1200的计划子系统1228中使用的一个或多个决策点或算法(以下参考图12发现的),并且将结果输出至一个或多个变体层。然后,可以使用其他决策点或算法将这些新的变体层与从计划子系统1228输出的现有层有效比较,以帮助改进这些决策点或算法,并且优化子系统1228和/或车辆1200的性能。变体层的这种使用对于测试新的设计特征、用于执行车辆的一个或多个子系统的一个或多个方面的代码、用于做出用于操作车辆的决策的现有算法的新的或改变等可以是特别有用的。在一些情况下,数据可以从车辆生成的数据中导出、修改(例如,对其执行的一个或多个操作)并且然后存储在变体层中以实现对所导出的度量或数据的比较。
在另一实例中,一个或多个变体层可以用于存储对于第三方可能有用的特定传感器和其他数据。在这种情况下,可以容易地检索相机或其他传感器1250数据并且将其存储在一个或多个新的变体层中,用于通过这种必要的第三方仅高效地访问相关数据。类似地,不需要的其他数据(例如,判定消息等)可能不能被这样的第三方访问,因为它可以包含专有信息。在其他情况下,数据可以直接写入到新变体层。
在另一实例中,一个或多个部件可以被替换或添加到车辆上(诸如,一个或多个检测器、传感器等)。通过将从替换的或新的部件获得的新数据存储在一个或多个变体层中,可以访问新部件的性能并且与旧部件(例如,存储在另一个层中)容易地进行比较,以帮助修改优化车辆或设备的性能。
图9示出用于在分层数据结构中访问和存储机器人设备数据的示例过程900。过程900可以例如由机器人设备或自主车辆、或其子系统(诸如,车载车辆计算系统404)来执行,如以上参考图4所描述的。在其他实例中,过程900可以由机器人设备或自主车辆服务(诸如,以上参考图1和3描述的服务102、302)执行。在又一些情况下,过程900的不同操作可以由机器人设备或服务来执行。
过程可以开始于操作902,其中可以获得包括以分层数据结构组织的多个文件的第一机器人设备数据。在一些情况下,多个文件中的每个文件基于由机器人设备生成的至少一个相应消息。在又一些情况下,文件可以是顺序文件,和/或与第一主题和第一时间值相关联。在一些情况下,机器人设备服务可以获得第一机器人设备数据。在操作904处,服务还可以获得与机器人车辆的操作相关的附加机器人设备数据。
在操作906处,服务可以根据分层数据结构在附加文件集合中存储附加机器人设备数据。在一些方面,附加机器人设备数据可以包括组织在分层数据结构中的第二文件集、从存储在分层数据结构中的文件导出的数据、或机器人设备外部的数据中的至少一项,如以上参考图8更详细描述的。在一些方面,存储附加机器人信息可以包括将其与第一机器人数据的一些或所有文件组合。在又其他实例中,附加机器人设备数据可以以新的时间水平附加或添加到第一机器人设备数据,诸如,在第一机器人设备数据的文件之后。在一些方面,可以在第一层中组织第一机器人设备数据的多个文件,并且可以将附加文件集写入到新的变体层。
在一些方面中,可以通过根据与相应文件相关联的时间值在层中组织第一文件和附加文件来将第一文件与附加文件组合。在一些方面中,不同文件的时间值可以部分或完全重叠,使得来自第一组文件的一个或一个以上文件可以在与来自附加文件的偏移的一个或多个文件相同的时间级别中存储。
图10示出用于使用分层数据结构访问和组合机器人设备数据的示例过程1000。过程1000可以例如由机器人设备或自主车辆、或其子系统(诸如,车载车辆计算系统404)来执行,如以上参考图4所描述的。在其他实例中,过程1000可以由机器人设备或自主车辆服务(诸如,以上参考图1和3描述的服务102、302)执行。在又一些情况下,过程1000的不同操作可以由机器人设备或服务来执行。
过程1000可以开始于操作1002,其中,可以获得如通篇所描述的以分层数据结构中的文件组织的机器人设备数据。机器人设备数据可以从机器人设备或自主车辆106、318或相应的服务102、302获得,如以上参考图1和图3更详细描述的。在操作1004处,例如,响应于访问由自主车辆服务102、302或读取器308接收的数据的请求,可以访问来自分层数据结构的子目录或层的至少一个第一文件。类似地,在操作1006处,可以访问来自分层数据结构的第二子目录或层的至少一个第二文件。
接下来,在操作1008处,至少一个第一文件和至少一个第二文件可以被组合以生成新的或第三子目录或层。在操作1010处,第三层可以被存储在分层数据结构中。在一些方面,操作1008和1010可以由自主车辆服务102、302或构建器306执行。
图11示出用于使用分层数据结构接收、存储、访问、以及组合自主车辆数据的示例过程1100。过程1100可以例如由自主车辆服务来执行,诸如上文参考图1和3描述的服务102、302。
过程1100可以开始于操作1102,其中,自主车辆服务(诸如,服务102、302)可以从自主车辆获得或接收由自主车辆的一个或多个子系统生成的数据、时间戳、以及主题。接下来,在操作1104处,可以将包括多个文件的数据的一部分发送至一个或多个数据存储区,诸如,数据存储服务314的数据存储104或312。一个或多个数据存储可以被配置为至少部分地基于时间戳、主题、或自主车辆的标识符将文件存储在例如分层数据结构或目录316的一个或多个子目录或层中。
在操作1106处,可以例如由自主车辆服务接收对数据(诸如,包括第一主题、第二主题、开始时间和结束时间或时间范围)的请求。响应于请求,在操作1108处,可以根据至少第一主题并且在一些情况下,根据指定的时间范围来访问至少一个第一文件。类似地,在操作1110处,可以根据至少第二主题并且在一些情况下,根据指定的时间范围来访问至少一个第二文件。然后,在操作1112处,至少一个第一文件和至少一个第二文件可以被组合在新层或子目录中,并且响应于请求而提供。在一些方面中,可以使用分层数据结构来存储新层或子目录,如本发明通篇所描述。
在一些方面,请求或与请求相关联的账户可以与第一权限级别相关联。在一些情况下,服务(诸如,服务302和/或权限管理器304)可以确定与请求相关联的权限级别是否满足或超过与被请求的文件中的一个或多个文件相关联的权限级别。在与请求中指定的文件、主题、级别、根或层相关联的级别化的权限高于请求的权限级别的情况下,服务可以拒绝对一个或多个文件、级别、子目录等的访问。作为进一步实例,不同的变体层可以被限制为不同的用户团队和/或组。作为非限制性实例,可以使某些传感器数据对软件开发者可用,而关于(例如)个人可标识信息的信息可能不可用。照此,不同的用户组可以访问(根据不同变体层上设定的权限)。在至少一些实例中,简档可以与一个或多个计算系统相关联。这样的简档可以确定可以访问不同变体层和/或检索数据的优选顺序的任何一个或多个用户。作为非限制性实例,简档可以指定相对于变体“B”,优选变体“A”的数据。在这种实例中,当从多个源(例如,变体层“A”和“B”两者)请求数据时,对两者上可用的主题的请求将以优选顺序并且根据简档中指示的权限集来检索数据。
图12示出可以根据自主车辆的架构1200使用的元件的实例。自主车辆可以被表征为具有耦接至各种控制器的自主车辆操作系统1202,这些控制器进而耦接至自主车辆的各种部件以处理运动、电力管理等。自主车辆操作系统1202的元件提供用于实施对象标识和环境分析的计算系统,如本文所描述。这些元件可以用于自主车辆之外的其他应用。
架构1200可以指定包括不同硬件、软件、固件等的一个或多个计算机系统来实现本文描述的系统、方法和设备的各个方面。例如,自主车辆操作系统1202可以包括环境分析系统1203和可用于自主车辆的各个方面的其他部件。环境分析系统1203可以用于获取自主车辆操作系统1202可用于操作用于电动机、转向、对象躲避等的控制器的信息。
环境分析系统1203可以被组织为多个子系统以简化实现。在一些实例中,子系统被独立地实现,而在其他实例中,多于一个子系统被部分地或全部地集成在一起。子系统可以包括激光雷达子系统、相机子系统、雷达子系统、声纳子系统、感知和预测子系统1212、定位和映射子系统1214、跟踪子系统1226、规划子系统1228、传感器校准子系统1230、以及可能的其他子系统1234。感知和预测子系统1212从包括激光雷达、雷达和视觉图像的各种类型的传感器数据执行对象的对象检测、分段和分类。
给定子系统可以用程序代码或硬件来实现,以用于与其他子系统通信以接收输入并提供输出。一些输入可以来自传感器。在本文的一些描述中,为了可读性,子系统可以被描述为包括子系统从其获得数据或信号的传感器和/或子系统向其输出数据或信号的发射器。例如,声纳子系统可以被描述为具有超声传感器或可以被描述为从超声传感器接收信号。作为另一实例,相机子系统可以被描述为具有相机和显示器,或者可以被描述为从相机接收信号或数据并且将信号或数据发送至显示器。
尽管图12中未示出,但应当理解,子系统之间的通信可以根据需要来提供。给定子系统可以通过经由某一通道将数据直接发送至另一子系统来与另一子系统通信,或环境分析系统1203可以包括总线子系统或通信基础结构,其中,子系统可以经由总线子系统或通信基础结构经由其间传递数据和/或信号来进行通信。环境分析系统1203还可以被配置为接收外部数据并且将信息通信至环境分析系统1203外部。
给定子系统可以具有其自己的计算处理中的一些,该计算处理可以由专用于给定子系统的硬件来执行,或可以由被指派来执行子系统的计算的处理器或电路来执行,例如,子系统完全以软件实现并且由一个或多个处理器1236使用存储器1238(例如,程序代码存储器和数据存储存储器)执行的情况可能如此。存储器可以用于变量和数据的临时存储,例如RAM,以及用于永久存储的存储器(即,在一段时间周期内不需要刷新、供电等而持续存在的数据),并且即使未明确提及,在指示的地方也应当暗示。例如,当子系统被描述为在数据库上操作或存储数据时,将存在用于以电子可读形式存储数据的某种形式的存储器。在一些情况下,存储器中的数据库或数据存储不是一个子系统特定的和内部的。在这些情况下,存储器可以由多于一个子系统访问。例如,一个子系统可以基于由子系统获得的传感器数据来创建记录并且将那些记录写入到数据库或其他数据结构,并且进而,另一子系统可以读取并使用该数据。在子系统以软件实现的情况下,子系统可以包括耦接至专用于该子系统的处理器的程序代码或更通用的程序代码存储器和处理器。
在一些情况下,在自主车辆中采用环境分析系统1203。在一些情况下,环境分析系统1203可以为自主车辆提供感知和计划功能。一般而言,环境分析系统1203可以提供激光雷达感知、雷达感知、视觉(相机)感知、声学感知、分段和分类、跟踪和融合、以及预测/计划、以及与其他控制器(诸如,驱动控制器、功率控制器、环境控制器、以及通信控制器)的接口。
自主车辆操作系统1202可以包括道路导航系统1242、清单管理器1244和审计/故障记录器1246。自主车辆操作系统1202还可以包括不同传感器1250和发射器1252或与其接口连接。
自主车辆操作系统1202可以接合至与电动机1280、转向器1282、制动器1284和悬架1286相互作用的驱动控制器1270,与电池1288和逆变器/充电器1290相互作用的功率控制器1272、与加热、通风、空调(HVAC)部件1292和照明1294相互作用的环境控制器1274、以处理自主车辆与自主车辆一起使用的设备之间的通信的通信控制器1276、以及诸如经由网络、蜂窝信道、或Wi-Fi信道1296的外部设备。安装在自主车辆中的自主车辆操作系统1202、控制器和车辆部件的组合可以提供能够安全地导航而无需要持续人为干预的车辆。
自主车辆操作系统1202可以包括任何数量或类型的传感器,这些传感器适用于除了所示出的那些之外的自主车辆。各种传感器1250可以包含(但不限于)超声换能器、轮编码器、环境传感器、麦克风、惯性测量单元(IMU)、加速度计、陀螺仪、磁力计、温度传感器、湿度传感器、光传感器、全球定位系统(GPS)传感器、压力传感器、位置传感器等。
激光雷达子系统可以包括一个或多个激光雷达传感器以捕获激光雷达数据以供分段,如本文所描述,并且可以包括如本文详细描述的任何一个或多个深度传感器。在一些情况下,激光雷达子系统1204可以包括用于组合或合成来自多个激光雷达传感器的激光雷达数据以生成激光雷达数据的元自旋的功能,激光雷达数据的元自旋可以基于多个激光雷达传感器来指代激光雷达数据。在激光雷达数据的元自旋的情况下,激光雷达子系统可以包括确定元自旋数据的虚拟原点(例如,所有激光雷达传感器共用的坐标参考系)并且执行数据变换使得来自一个或多个激光雷达传感器中的每一个的激光雷达数据相对于虚拟原点被表达的功能。如可在本公开的上下文中理解的,激光雷达子系统可以捕捉数据并且可以将数据集传输至其他子系统以供后续处理。
相机子系统可以包括或接口连接至一个或多个相机传感器以捕获视觉数据以用于图像分段和/或分类。相机子系统可以包括任何数量和类型的相机传感器。例如,相机子系统可以包括任何彩色相机、单色相机、深度相机、RGB-D相机、立体相机、红外(IR)相机、紫外(UV)相机等。如可以在本公开的上下文中理解的,相机子系统可以捕捉数据并且可以将数据集传输至其他子系统以供后续处理。例如,来自相机子系统的数据可以作为多通道图像的一个或多个通道被包括,该多通道图像由此由另一子系统处理。
雷达子系统可以包括一个或多个雷达传感器以捕获环境中的物体的范围、角度和/或速度。如可以在本公开的上下文中理解的,雷达子系统可以捕获数据并且可以向其他子系统传输数据集以供后续处理。例如,来自雷达子系统的数据可以作为提供给另一子系统的多通道图像的一个或多个通道被包括。
声纳子系统可以包含或接口连接至一个或多个扬声器或声音发射器和一个或多个麦克风(诸如,麦克风阵列)以从环境中的对象捕获声学信息。附加地或替代地,这样的声纳子系统可以包括各种超声换能器。例如,声纳子系统可以使超声换能器发射声音脉冲并且可以收听回声以确定与环境中的对象相关联的位置和/或运动信息。如可以在本公开的上下文中理解的,声纳子系统可以捕获数据并且可以将数据集传输至其他子系统以供后续处理。例如,另一子系统可以将从声纳子系统获得的数据与从激光雷达子系统获得的数据融合,以便更准确地分段对象和/或确定关于对象的信息,或用于其他目的。
在一些情况下,激光雷达子系统、相机子系统、雷达子系统、和/或声纳子系统可以为环境分析系统的其他子系统提供一个或多个数据集以用于组合和/或合成数据。
环境分析系统1203还可以包括用于由计算机模拟算法生成的模拟数据的存储,用于部分地在测试中使用。在一些情况下,模拟数据可以包括任何类型的模拟数据,诸如,相机数据、激光雷达数据、雷达数据、声纳数据、惯性数据、GPS数据等。在一些实例中,环境分析系统1203可以对仿真的数据修改、变换和/或执行本文描述的转换操作以用于验证操作和/或用于训练机器学习算法,如本文所描述。例如,为了测试实验室环境中的一些功能,可以将模拟的传感器数据/信号提供给子系统,就好像它是实际的传感器数据一样,以测试一些子系统的性能。在一些实施方式中,模拟数据可以包括发送至自主车辆操作系统1202的消息、事件和系统警报。
定位和映射子系统1214可以包括将数据转换或映射到体素映射的功能。例如,定位和映射子系统1214可以接收激光雷达数据、相机数据、雷达数据、声纳数据等,并且将个体数据点映射、转换或关联至表示环境中的三维空间的体素映射。体素空间是被表示为离散小体积(例如,体素)的三维环境(诸如,自主车辆周围的空间)的逻辑表示。体素映射提供体素空间中的相应体素的数据或值。作为三维环境的表示,体素映射可以被存储在存储器中并且由处理器操纵。
在一些实例中,定位和映射子系统1214可以定义体素空间的维度,包括体素空间的长度、宽度和高度。进一步,定位和映射子系统1214可以确定个体体素的大小。在一些实例中,体素在整个体素空间中可以是均匀的大小和形状,而在一些实例中,体素的大小和/或密度可以基于体素空间中的相对位置而变化。例如,体素的大小可以与体素距体素空间的原点或中心的距离成比例地增大或减小。附加地或替代性地,这样的定位和映射子系统1214可以包括虚拟原点与体素空间的原点之间的变换。在一些实例中,定位和映射子系统1214可以包括用于生成稀疏体素空间的功能,其中,不包括数据或者包括低于数据阈值的数据量的体素不需要存在于体素映射中并且可以假设或忽略那些体素的值。在这样的实例中,体素映射可以被组织为八位体、体素散列等。在一些实例中,定位和映射子系统1214可以包括用于通过在数据被映射到体素空间并且存储在体素映射中时对数据进行过滤来减少体素映射的数据或用于生成体素映射的数据中的噪声量的功能。例如,过滤可以包括移除低于每个体素的阈值数据量(例如,与体素相关联的激光雷达数据点的数量)或超过预定数量的体素(例如,与邻近体素的数量相关联的激光雷达数据点的数量)的数据。在一些实例中,定位和映射子系统1214可以在随时间推移收集数据时和/或响应于在体素空间所对应的真实世界环境内导航的车辆工具来更新体素映射。例如,当自主车辆在环境中导航时,定位和映射子系统1214可以从体素映射添加数据和/或丢弃数据。
在一些情况下,定位和映射子系统1214可以初始化体素映射和其他体素空间参数(诸如,体素大小、取向和程度),将初始体素映射当作表示空白空间,并且定位和映射子系统1214可以构建对象的表示,因为激光雷达数据随时间被捕获。在其他实例中,定位和映射子系统1214可以使用全局映射数据初始化体素映射和体素空间参数。
跟踪子系统1226可以包含用以接收一个或多个动态对象的指示并且执行额外处理以便跟踪对象的功能性。例如,跟踪子系统1226可以确定动态对象的速度和/或可以确定并且存储动态对象随时间的轨迹。在一些情况下,跟踪子系统1226可以经编程以执行预测算法,该预测算法可以基于对象的先前运动来预测待跟踪对象的路径。在不同实例中,跟踪子系统1226执行一个对象与先前检测到的对象相同的数据关联。在一些实例中,跟踪子系统维持范围,计算速度,并且确定对象的定向。
计划子系统1228可以包括接收分段数据和/或地平面、静态对象和/或动态对象的指示以确定自主车辆的轨迹的功能。例如,计划子系统1228可以接收标识地平面的分段信息,并且可以生成自主车辆遵循的轨迹。
传感器校准子系统1230可以包含至少部分基于相对于环境确定的分段信息校准一个或多个传感器1250的功能性。例如,虽然来自激光雷达、相机、雷达和/或声纳传感器或子系统的传感器数据可以用于估计位置和/或方位(例如,使用同时定位和映射(SLAM)),自主车辆还可以包括附加传感器(诸如,惯性测量单元(IMU)和/或GPS单元),用于确定自主车辆在环境中的位置。在一些情况下,IMU可以指示自主车辆处于第一位置,而对本文所讨论的激光雷达数据的分析指示车辆处于不同于第一位置的第二位置。传感器校准子系统1230可以确定位置的差异并且可以调整或校准一个或多个传感器以更新自主车辆的位置或一个或多个传感器内在特性或外在特性。
例如,相机传感器的特性可以包含焦距、图像中心、失真参数、快门速度、分辨率和光谱。雷达的特性可以包括输出功率和输入灵敏度。激光雷达传感器的特性可以包括分辨率和采样率。示例性神经网络可以使输入数据通过一系列连接的层以产生输出。神经网络的一个实例可以包括卷积神经网络或CNN。CNN中的每一层也可以包括另一CNN,或可以包括多个层。如在本发明的上下文中可以理解的,神经网络可以利用机器学习,该机器学习可以指基于学习的参数生成输出的一大类这样的算法。
尽管在神经网络的上下文中进行讨论,但与本公开一致,可以使用许多类型的机器学习。例如,机器学习算法可以包括但不限于回归算法(例如,普通最小二乘回归(OLSR)、线性回归、逻辑回归、逐步回归、多元自适应回归样条(MARS)、局部估计散点图平滑(LOESS))、基于实例的算法(例如,脊回归、最小绝对收缩和选择运算符(LASSO)、弹性网、最小角度回归(LARS))、决策树算法(例如,分类和回归树(CART)、迭代二分法器3(ID3)、卡方自动交互检测(CHAID)、决策桩、条件决策树)、贝叶斯算法(例如,天然贝叶斯、高斯天然贝叶斯、多项式天然贝叶斯、平均单依赖性估算器(AODE)、贝叶斯置信网络(BNN)、贝叶斯网络)、聚类算法(例如,k-均值、k-中值、期望最大化(EM)、层级聚类)、关联规则学习算法(例如,感知器、反向传播、霍普菲尔德网络、径向基函数网络(RBFN))、深度学习算法(例如,深度玻尔兹曼机器(DBM)、深度贝利夫网络(DBN)、卷积神经网络(CNN)、堆叠式自动编码器)、降维算法(例如,主成分分析(PCA)、主成分回归(PCR)、偏最小二乘回归(PLSR)、Sammon映射、多维缩放(MDS)、投影普鲁斯(Projection Pursuit)、线性判别分析(LDA)、混合判别分析(MDA)、二次判别分析(QDA)、灵活判别分析(FDA))、总体算法(例如,Boosting、Bootstraped Aggregation(Bagging)、AdaBoost、堆叠泛化(混合)、梯度提升机器(GBM)、梯度提升回归树(GBRT)、随机森林)、SVM(支持向量机)、监督学习、无监督学习、半监督学习等。
图12中描绘的环境可以用包括存储装置、一个或多个处理器、存储器和可能的操作系统的一个或多个计算机系统来实现。
在此描述的系统和方法可以用软件或硬件或其任何组合来实现。在此描述的系统和方法可以使用一个或多个计算设备来实现,该一个或多个计算设备可以或可以不在物理上或逻辑上彼此分离。这些方法可以由被布置为本地硬件、本地虚拟系统或托管私有实例的部件来执行。另外,本文描述的方法的不同方面可以组合或合并到其他功能中。
用于实施系统和方法的示例性环境和计算机系统可以包含可以被配置以特别执行本文中所描述的方法中的一些或全部的处理器或计算机系统。在一些实例中,方法可以通过一个或一个以上计算机或处理器部分或完全自主化。本文中所描述的系统和方法可以使用硬件、固件和/或软件中的任一者的组合来实施。本文所描述的本系统和方法(或其任何部分或功能)可以使用硬件、软件、固件或其组合来实现,并且可以在一个或多个计算机系统或其他处理系统中实现。在一些实例中,所说明的系统元件可以组合到单个硬件设备中或分离到多个硬件设备中。如果使用多个硬件设备,则硬件设备可以在物理上位于彼此邻近或远离。所描述和示出的方法的实例旨在是说明性的而不是限制性的。例如,在不同的实例中,这些方法的一些或所有步骤可以组合、重新安排、和/或省略。
在一个实例中,本文所描述的系统和方法可以涉及能够执行本文所描述的功能的一个或多个计算机系统。示例计算设备可以是但不限于运行任何操作系统(诸如但不限于,OS XTM、iOSTM、LinuxTM、AndroidTM和MicrosoftTMWindowsTM)的个人计算机(PC)系统。然而,本文描述的系统和方法可以不限于这些平台。相反,本文所描述的系统和方法可以在运行任何合适的操作系统的任何合适的计算机系统上实现。本文描述的系统和方法的其他部件(诸如但不限于,计算设备、通信设备、移动电话、智能电话、电话设备、电话、个人数字助理(PDA)、个人计算机(PC)、手持PC、交互式电视(iTV)、数字视频记录器(DVD)、客户端工作站、瘦客户端、厚客户端、代理服务器、网络通信服务器、远程访问设备、客户端计算机、服务器计算机、路由器、网络服务器、数据、媒体、音频、视频、电话或流技术服务器等等),也可以使用计算设备来实现。可以使用例如但不限于交互式电视(iTV)、视频点播系统(VOD)和通过数字视频录像机(DVR)或其他点播观看系统按需提供服务。
系统可以包括一个或多个处理器。处理器可以连接至通信基础设施,诸如但不限于,通信总线、交叉条或网络等。过程和处理器不需要位于相同的物理位置。换句话说,可以在一个或多个地理上远离的处理器处通过例如LAN或WAN连接来执行过程。计算设备可以包括显示接口,该显示接口可以转发来自通信基础设施的图形、文本和其他数据用于在显示单元上显示。
计算机系统还可以包括但不限于主存储器、随机存取存储器(RAM)和辅助存储器等。辅助存储器可以包括例如硬盘驱动器和/或可移动存储驱动器,诸如,压缩盘驱动器CD-ROM等。可移除存储驱动器可以从可移除存储单元读取和/或写入到可移除存储单元。如可以被理解的,可移动存储单元可以包括其中存储有计算机软件和/或数据的计算机可用存储介质。在一些实例中,机器可存取介质可以指用于存储由计算机可访问的数据的任何存储设备。机器可访问介质的实例可以包括例如但不限于磁性硬盘;软盘;光盘,如致密盘只读存储器(CD-ROM)或数字通用盘(DVD);磁带;和/或存储芯片等。
处理器还可以包括用于存储数据的一个或多个数据存储设备或可操作地耦接成与其通信。作为非限制性实例,这样的数据存储设备可以包括磁盘(包括内部硬盘和可移动盘)、磁光盘、光盘、只读存储器、随机存取存储器和/或闪存。适合于有形地体现计算机程序指令和数据的存储设备还可以包括所有形式的非易失性存储器,包括例如半导体存储设备,诸如EPROM、EEPROM和闪存设备;磁盘,诸如,内部硬盘和可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由ASIC(专用集成电路)或FPGA(现场可编程门阵列)补充或并入其中。
处理系统可以与计算机化的数据存储系统通信。数据存储系统可以包括非关系或关系数据存储,诸如,MySQLTM或其他关系数据库。可以使用其他物理和逻辑数据库类型。数据存储可以是数据库服务器,诸如,MicrosoftSQLServerTM、OracleTM、IBMDB2TM、SQLITETM、或任何其他关系型或其他形式的数据库软件。数据存储区可以存储标识语法标签的信息和对语法标签操作所需的任何信息。在一些实例中,处理系统可以使用面向对象的编程并且可以将数据存储在对象中。在这些实例中,处理系统可以使用对象关系映射器(ORM)来将数据对象存储在关系数据库中。本文所描述的系统和方法可以使用任何数量的物理数据模型来实现。在一个实例中,可以使用关系数据库管理系统(RDBMS)。在那些实例中,RDBMS中的表可以包括表示坐标的列。表格可以具有它们之间的预定义关系。这些表还可以具有与坐标相关联的辅助物。
在替代实例中,辅助存储器可以包括用于允许计算机程序或其它指令加载到计算机系统中的其它类似设备。例如,这种设备可以包括可移动存储单元和接口。这样的实例可以包括程序盒和盒式接口(诸如但不限于,在视频游戏设备中发现的那些)、可移除存储器芯片(例如但不限于可擦除可编程只读存储器(EPROM)或可编程只读存储器(PROM)和相关联的插座)、以及可以允许软件和数据从可移除存储单元传输到计算机系统的其他可移除存储单元和接口。
计算设备还可以包括输入设备,诸如但不限于语音输入设备(诸如,话筒)、触摸屏、姿势识别设备(诸如,相机)、其他自然用户界面、鼠标或其他定点设备(诸如,数字化器)、以及键盘或其他数据输入设备。计算设备还可以包括输出设备,诸如但不限于显示器和显示接口。计算设备可以包括输入/输出(I/O)设备,诸如但不限于通信接口、电缆和通信路径等。这些设备可以包括但不限于网络接口卡和调制解调器。通信接口可以允许软件和数据在计算机系统和一个或多个外部设备之间传输。
在一个或多个实例中,计算设备可以可操作地耦接至汽车系统。这种汽车系统可以是手动操作的、半自主的、或完全自主的。在这样的实例中,输入和输出设备可以包括一个或多个图像捕捉设备、控制器、微控制器和/或其他处理器,以控制汽车功能(诸如但不限于加速、制动和转向)。进一步,此类实例中的通信基础设施还可以包括控制器局域网络(CAN)总线。
在一个或多个实例中,计算设备可以可操作地耦接至任何基于机器的视觉系统。例如,这种基于机器的视觉系统包括但不限于手动操作的、半自主的、或完全自主的工业或农业机器人、家用机器人、检查系统、安全系统等。也就是说,在此描述的实例不限于一个特定上下文并且可以适用于利用机器视觉的任何应用。
在一个或多个实例中,本实例可以在一个或多个计算机网络的环境中实践。网络可以包括专用网络、或公共网络(例如,如下所描述的互联网)、或两者的组合。网络可以包括硬件、软件或两者的组合。
从面向电信的观点来看,网络可以被描述为由通信设施互连的一组硬件节点,其中在每个这样的节点处运行一个或多个过程(硬件、软件或其组合)。这些进程可以使用进程间通信路径经由它们之间的通信路径彼此互通和交换信息。在这些路径上,使用适当的通信协议。系统经由蜂窝、红外、无线电或无线网络接收操作命令(远程操作)。
根据本实例的示例性计算机和/或电信网络环境可以包括节点,该节点可以包括硬件、软件或硬件和软件的组合。节点可以经由通信网络互连。每一节点可以包含由并入至节点中的处理器可执行的一个或一个以上过程。例如,单个进程可以由多个处理器运行,或多个进程可以由单个处理器运行。此外,每个节点可以提供网络与外部世界之间的接口点,并且可以合并子网络的集合。
在实例中,进程可以通过支持通过任何通信协议的通信的进程间通信路径彼此通信。这些途径可以顺序地或并行地、连续地或间歇地起作用。除了由许多计算机使用的标准并行指令集之外,路径可以使用本文中相对于通信网络描述的通信标准、协议或技术中的任一者。
节点可以包括能够执行处理功能的任何实体。可以与实例一起使用的这样的节点的实例包括计算机(诸如,个人计算机、工作站、服务器或大型机)、手持式无线设备和有线设备(诸如,个人数字助理(PDA)、具有处理能力的调制解调器蜂窝电话、包括BlackBerryTM设备的无线电子邮件设备)、文档处理设备(诸如,扫描仪、打印机、传真机或多功能文档机)或连接处理器集合的复杂实体(诸如,局域网或广域网),如所描述的。例如,在本公开的上下文中,节点本身可以是广域网(WAN)、局域网(LAN)、专用网(诸如,虚拟专用网(VPN))或网络的集合。
节点之间的通信可以通过通信网络来实现。节点可以连续地或间歇地与通信网络连接。例如,在本公开的上下文中,通信网络可以是提供足够的带宽和信息安全的数字通信基础设施。
通信网络可以包括有线通信能力、无线通信能力或两者的组合,在任何频率下,使用任何类型的标准、协议或技术。另外,在本实例中,通信网络可以是私有网络(例如,VPN)或公共网络(例如,互联网)。
通信网络所使用的示例性无线协议和技术的非包含性列表可以包括BluetoothTM、通用分组无线电服务(GPRS)、蜂窝数字分组数据(CDPD)、移动解决方案平台(MSP)、多媒体消息接发(MMS)、无线应用协议(WAP)、码分多址(CDMA)、短消息服务(SMS)、无线标记语言(WML)、手持式设备标记语言(HDML)、用于无线的二进制运行时环境(BREW)、无线电接入网络(RAN)、以及分组交换核心网络(PS-CN)。还包括不同代无线技术。由通信网络使用的主要有线协议和技术的示例性非包含性列表包括异步传输模式(ATM)、增强型内部网关路由协议(EIGRP)、帧中继(FR)、高级数据链路控制(HDLC)、互联网控制消息协议(ICMP)、内部网关路由协议(IGRP)、互联网分组交换(IPX)、ISDN、点对点协议(PPP)、传输控制协议/互联网协议(TCP/IP)、路由信息协议(RIP)、以及用户数据报协议(UDP)。如技术人员将认识到的,可以使用任何其他已知或预期的无线或有线协议和技术。
本公开的实例可以包括用于执行本文中的操作的设备。装置可以被特别构造用于期望的目的,或者它可以包括由存储在设备中的程序选择性地激活或重新配置的通用设备。
在一个或多个实例中,本实例被体现在机器可执行指令中。指令可以用于使编程有指令的处理设备(例如,通用或专用处理器)执行本公开的步骤。替代性地,本公开的步骤可以由包含用于执行步骤的硬连线逻辑的特定硬件部件来执行,或由编程的计算机部件和定制硬件部件的任何组合来执行。例如,如上所描述,本公开可以作为计算机程序产品来提供。在环境中,实例可以包括其上存储有指令的机器可读介质。指令可以用于对任何处理器或多个处理器(或其他电子设备)进行编程以执行根据本实例的过程或方法。此外,本公开还可以被下载并且存储在计算机程序产品上。在此,程序可以借助于体现在载波或其他传播介质中的数据信号经由通信链路(例如,调制解调器或网络连接)从远程计算机(例如,服务器)转移至请求计算机(例如,客户端),并且最终这样的信号可以存储在计算机系统上以供后续执行。
方法可以在从计算机可用或计算机可读存储媒质可访问的计算机程序产品中实现,该计算机可用或计算机可读存储介质提供用于由计算机或任何指令执行系统使用或结合计算机或任何指令执行系统使用的程序代码。计算机可用或计算机可读存储介质可以是可以含有或存储由指令执行系统、装置或设备使用或与计算机指令执行系统、装置或设备有关的程序的任何装置。
适于存储和/或执行相应程序代码的数据处理系统可以包括直接或间接地耦接至计算机化的数据存储设备(诸如,存储器元件)的至少一个处理器。输入/输出(I/O)设备(包括但不限于键盘、显示器、定点设备等)可以耦接至系统。网络适配器也可以耦接至系统,以使得数据处理系统能够通过居间的私有或公共网络变得耦接至其他数据处理系统或远程打印机或存储设备。为了提供与用户的交互,可以在具有显示设备(诸如,LCD(液晶显示器))或用于向用户显示信息的另一类型的监视器、以及用户可以通过其向计算机提供输入的键盘和的输入设备(诸如,鼠标或轨迹球)的计算机上实现这些特征。
计算机程序可以是可以直接或间接地在计算机中使用的指令集。本文中所描述的系统和方法可以使用编程语言(诸如,CUDA、OpenCL、FlashTM、JAVATM、C++、C、C#、Python、VisualBasicTM、JavaScriptTM PHP、XML、HTML等或编程语言的组合,包括编译或解释语言)来实施,并且可以任何形式部署,包括作为独立程序或作为子系统、部件、子例程或适于在计算环境中使用的其他单元。软件可以包括但不限于固件、常驻软件、微代码等。诸如SOAP/HTTP之类的协议可以用于实现编程子系统之间的接口。在此描述的部件和功能可以使用适合于软件开发的任何编程语言(包括但不限于不同版本的Microsoft WindowsTM、AppleTMMacTM、iOSTM、UnixTM/X-WindowsTM、LinuxTM、VMSTM、安卓、QNX等)在虚拟化或非虚拟化环境中执行的任何桌面操作系统上实现。系统可以使用诸如轨道上的Ruby之类的web应用框架来实现。
用于执行指令程序的合适处理器包括但不限于通用和专用微处理器,以及任何类型的计算机的唯一处理器或多个处理器或核中的一个。处理器可以从计算机化的数据存储设备(例如,只读存储器、随机存取存储器、两者或本文中所描述的数据存储设备的任何组合)接收并且存储指令和数据。处理器可以包括可操作以控制电子设备的操作和性能的任何处理电路或控制电路。
本文所描述的系统、子系统和方法可以使用软件或硬件元件的任何组合来实现。本文所描述的系统、子系统和方法可以使用单独操作或彼此组合的一个或多个虚拟机来实现。任何可适用的虚拟化解决方案可以用于将物理计算机平台封装到在硬件计算平台或主机上运行的虚拟化软件的控制下执行的虚拟机中。虚拟机可以具有虚拟系统硬件和客户操作系统软件两者。
本文描述的系统和方法可以在计算机系统中实现,该计算机系统包括诸如数据服务器的后端部件,或者包括诸如应用服务器或因特网服务器的中间件部件,或者包括前端部件(诸如,具有图形用户界面或因特网浏览器的客户端计算机,或它们的任意组合)。系统的部件可以由任何形式或介质的数字数据通信(诸如,通信网络)连接。通信网络的实例包括例如LAN、WAN以及形成互联网的计算机和网络。
本公开的一个或多个实例可以用其他计算机系统配置来实践,包括手持式设备、微处理器系统、基于微处理器的或可编程的消费电子产品、小型计算机、大型计算机等。本文描述的系统和方法还可以在其中任务由通过网络链接的远程处理设备执行的分布式计算环境中实践。
术语“计算机程序介质”和“计算机可读介质”可以用于泛指介质,诸如但不限于可移动存储驱动器、安装在硬盘驱动器中的硬盘。这些计算机程序产品可以向计算机系统提供软件。本文所描述的系统和方法可以针对此类计算机程序产品。
此处,“一种实施方式”、“实施方式”、“示例性实施方式”、“各种实施方式”等可以指示本公开的实施方式可以包括具体特征、结构、或特性,但不是每种实施方式都必须包括具体特征、结构、或特性。进一步地,短语“在一种实施方式中”或“在示例性实施方式中”的重复使用不一定指同一种实施方式,尽管它们可能是同一种。类似地,对“实例”的引用可以指示本公开的各种实例可以包括特定特征、结构或特性,但不是每个实例都必须包括特定特征、结构或特性。进一步地,短语“在一些实例中”的重复使用不一定指同一实例,尽管它可能。
算法通常可以被认为产生期望结果的动作或操作的前后一致的序列。这些包括物理量的物理操纵。通常,尽管不是必须的这些量采用能够被存储、传输、组合、比较,以及以其他方式操纵的电或磁信号的形式。它已证明有时,主要由于普遍使用的原因,将这些信号称为位、值、元素、符号、字符、术语、数字等。然而,应该理解的是,所有这些和类似的术语都将与适当的物理量相关联并且仅仅是应用于这些量的方便的标签。
除非另外明确说明,否则应了解,贯穿本说明书,术语(诸如,“处理”、“计算”、“估算”、“确定”等指计算机或计算系统或类似的电子计算设备的动作和/或过程,在计算系统的寄存器和/或存储器中操纵和/或将表示为物理量(诸如,电子量)的数据转换成在计算系统的存储器、寄存器或其他此类信息存储、传输或显示设备中类似地表示为物理量的其他数据。
以类似的方式,术语“处理器”可以指处理来自寄存器和/或存储器的电子数据并且将电子数据转换成可以存储在寄存器和/或存储器中的其它电子数据的任何设备或者设备的一部分。作为非限制性实例,“处理器”可以是中央处理单元(CPU)或图形处理单元(GPU)。“计算平台”可以包括一个或多个处理器。如在此使用的,“软件”过程可以包括例如随着时间执行工作的软件和/或硬件实体,诸如,任务、线程和智能代理。而且,每一过程可以指代用于循序或并行地、连续地或间歇地执行指令的多个过程。术语“系统”和“方法”在此可互换地使用,只要系统可以体现一种或多种方法并且这些方法可以被认为是系统。
在本文中,可以参考获得、获取、接收模拟或数字数据或将模拟或数字数据输入到子系统、计算机系统或计算机实现的机器中。获得、获取、接收或输入模拟数据和数字数据的过程可以以各种方式完成,例如通过接收作为函数调用的参数或对应用编程接口的调用的数据。在一些实现方式中,获得、获取、接收或输入模拟或数字数据的过程可以通过经由串行或并行接口传输数据来完成。在另一实现方式中,获得、获取、接收或输入模拟或数字数据的过程可以通过经由计算机网络从提供实体向获取实体传送数据来完成。还可以参考提供、输出、传输、发送或呈现模拟或数字数据。在各种实例中,提供、输出、传输、发送或呈现模拟或数字数据的过程可以通过将数据作为函数调用的输入或输出参数、应用编程接口的参数或进程间通信机制来传送来完成。
虽然已描述一个或多个实施方式,但其不同更改、添加、置换和等效物包含在本发明的范围内。
在实施方式的描述中,参考形成其一部分的附图,其通过图示的方式示出可以实施所要求保护主题的具体实施方式。应当理解,可以使用其他实施方式,并且可以做出改变或变更,诸如,结构改变。这样的实施方式、改变或变更不一定背离关于预期要求保护的主题的范围。虽然本文中的步骤可以按特定顺序呈现,但在一些情况下,可改变顺序以使得在不同时间或以不同次序提供特定输入而不改变所描述的系统和方法的功能。所公开的过程也可以按不同的顺序执行。此外,本文中不需要以所公开的顺序来执行不同计算,并且可以容易地实现使用计算的替代排序的其他实施方式。除了被重新排序之外,计算还可以被分解成具有相同结果的子计算。在一些实例中,可以并行地且大体上同时地执行所示出的操作。一般来说,虽然可以示出一连串块,但是并非可能需要所有步骤来执行所示出的过程。
虽然以上论述陈述所描述的技术的示例实现方式,但其他架构可以用以实施所描述的功能性,并且既定处于本发明的范围内。此外,尽管以上出于讨论的目的定义了职责的特定分布,但是取决于情况,可以以不同的方式分布和划分各种功能和职责。
并且,虽然通过结构特征和方法行为专用的语言描述了主题,但是要理解的是,在所附权利要求内限定的主题不必限于上面描述的特定特征或行为。相反,这些具体特征和动作是作为实现权利要求的示例性形式来公开的。
示例条款
可以鉴于以下条款来描述本公开的实施方式:
1.一种系统,包括:一个或多个处理器;以及存储指令的存储器,当通过一个或多个处理器执行指令时使系统:接收包括由自主车辆的一个或多个子系统生成的数据、时间戳和主题的消息;在一个或多个数据存储的第一目录中存储多个文件,该多个文件中的第一文件包括数据的至少一部分并且根据分层结构被存储在第一目录的第一子目录中,该分层结构至少部分地基于时间戳、主题或标识符;在一个或多个数据存储的第二目录中存储多个第二文件,该多个第二文件中的第二文件至少部分地基于数据的部分并且根据分层结构被存储在第二目录的第二子目录中;接收请求,该请求包括请求主题、开始时间或结束时间;并且至少部分地基于请求主题、开始时间或结束时间来提供第一文件或第二文件中的一个或多个。
2.如条款1所述的系统,其中,提供第一文件或第二文件中的一个或多个至少部分地基于第一文件或第二文件是否与请求主题和指示目录偏好的简档相关联。
3.如条款1或2所述的系统,其中,第一目录与第一访问权限相关联,并且第二目录与比第一权限更具限制性的第二访问权限相关联,其中,请求与请求权限级别相关联,并且其中,提供第一文件或第二文件中的一个或多个包括至少部分地基于第一访问权限、第二访问权限和请求权限级别来提供第一文件。
4.如条款1至3中任一项所述的系统,其中,第一主题与自主车辆的第一子系统相关,并且第二主题与自主车辆的第二子系统相关联,并且其中,请求包括对至少部分地基于在开始时间与结束时间之间的来自自主车辆的第一子系统的数据和来自自主车辆的第二子系统的数据确定的一组变化数据的请求。
5.如条款1至4中任一项所述的系统,其中,第一目录包括指示一个或多个数据存储上的第一存储位置的第一根目录,并且第二目录包括指示一个或多个数据存储上的第二存储位置的第二根目录,第一储存位置与第二储存位置不同。
6.如条款5所述的系统,其中,第一存储位置位于用于快速访问而优化的本地数据存储中。
7.如条款1至6中任一项所述的系统,其中,第一文件和第二文件小于阈值大小。
8.一种方法,包括:接收第一设备数据,该第一设备数据包括多个文件并且对应于在一定时间段期间由设备的一个或多个部件生成的消息数据;在一个或多个数据存储上并且在第一位置处根据分层数据结构存储第一多个文件,该分层数据结构至少部分地基于消息时间、数据标识符或设备标识符;获得包括第二多个文件的第二设备数据,该第二设备数据与时间段相关联;以及根据分层数据结构将第二设备数据存储在一个或多个数据存储上的第二位置处。
9.如条款8所述的方法,其中,第二设备数据包括从第一多个文件导出的数据。
10.如条款8或9所述的方法,其中,第一多个文件中的文件由消息数据的多个消息构成,文件小于阈值大小。
11.如条款10所述的方法,其中,多个消息中的消息包括:消息类型、创建消息的时间戳和消息编号。
12.如条款8至11中任一项所述的方法,其中,第一多个文件被存储在第一数据存储中,并且其中,第二多个文件基于第二多个文件的使用等待时间或频率被存储在第二数据存储器中。
13.如条款8至12中任一项所述的方法,其中,第一位置与第一访问权限相关联,并且第二位置与第二访问权限相关联,第二访问权限比第一访问权限更具限制性。
14.如条款13所述的方法,还包括:接收请求,所述请求包括请求数据标识符、开始时间、结束时间、以及请求权限级别;以及至少部分地基于请求、第一访问权限、第二访问权限以及简档来传输第一多个文件中的第一文件或第二多个文件中的第二文件,其中,简档提供用于至少部分地基于请求数据标识符来访问第一多个文件或第二多个文件的指令。
15.如条款8至14中任一项所述的方法,其中,从自主车辆的第一子系统获得第一设备数据,并且从所主车辆的第二子系统获得第二设备数据。
16.一种系统,包括:一个或多个处理器;以及存储指令的存储器,当通过一个或多个处理器执行指令时使系统:获得查询,查询包括第一数据标识符、第二数据标识符和查询访问级别;从第一位置并且至少部分地基于查询和简档检索第一多个文件,第一多个文件根据分层数据结构布置在第一位置处;从第二位置并且至少部分地基于查询和简档来检索根据分层数据结构布置在第二位置处的第二多个文件;以及传输第一多个文件和第二多个文件,其中,简档包括用于至少部分地基于第一数据标识符从第一位置检索第一多个文件的指令,以及用于至少部分地基于第二数据标识符从第二位置检索第二多个文件的指令,并且其中,第一多个文件和第二多个文件包括小于或等于阈值文件大小的文件。
17.如条款16所述的系统,其中,分层数据结构包括至少部分地基于多个时间戳、多个数据标识符、以及多个设备标识符的多个子目录,并且其中,多个时间戳中的时间戳满足或超过最小时间差。
18.如条款16或17所述的系统,其中,第一位置与第一访问级别相关联,并且第二位置与第二访问级别相关联,其中,检索第一多个文件至少部分地基于第一访问级别和查询访问级别,并且其中,检索第二多个文件至少部分地基于第二访问级别和查询访问级别。
19.如条款17或18所述的系统,其中,第一多个文件或第二多个文件中的文件包括多个消息,多个消息中的消息包括以下中的一个或多个:消息类型、消息大小或消息数据。
20.如条款17至19中任一项所述的系统,其中,第一位置是远程数据存储器上的位置,并且第二位置是本地数据存储器上的位置。
Claims (15)
1.一种系统,包括:
一个或多个处理器;以及
存储指令的存储器,当通过所述一个或多个处理器执行所述指令时使所述系统:
接收包括由自主车辆的一个或多个子系统生成的数据、时间戳和主题的消息;
在一个或多个数据存储的第一目录中存储多个文件,所述多个文件中的第一文件包括所述数据的至少一部分并且根据分层结构被存储在所述第一目录的第一子目录中,所述分层结构至少部分地基于所述时间戳、所述主题或标识符;
在所述一个或多个数据存储的第二目录中存储多个第二文件,所述多个第二文件中的第二文件至少部分地基于所述数据的所述部分并且根据所述分层结构被存储在所述第二目录的第二子目录中;
接收请求,所述请求包括请求主题、开始时间或结束时间;并且
至少部分地基于所述请求主题、所述开始时间或所述结束时间来提供所述第一文件或所述第二文件中的一个或多个。
2.根据权利要求1所述的系统,其中,提供所述第一文件或所述第二文件中的一个或多个至少部分地基于所述第一文件或所述第二文件是否与所述请求主题和指示目录偏好的简档相关联。
3.根据权利要求1或权利要求2所述的系统,其中,所述第一目录与第一访问权限相关联,并且所述第二目录与比所述第一权限更具限制性的第二访问权限相关联,
其中,所述请求与请求权限级别相关联,并且
其中,提供所述第一文件或所述第二文件中的一个或多个包括至少部分地基于所述第一访问权限、所述第二访问权限和所述请求权限级别来提供所述第一文件。
4.根据任一项前述权利要求所述的系统,其中,第一主题与所述自主车辆的第一子系统相关,并且第二主题与所述自主车辆的第二子系统相关联,并且其中,所述请求包括对至少部分地基于在所述开始时间与所述结束时间之间的来自所述自主车辆的所述第一子系统的数据和来自所述自主车辆的所述第二子系统的数据确定的变量数据集的请求。
5.根据任一项前述权利要求所述的系统,其中,所述第一目录包括指示所述一个或多个数据存储上的第一存储位置的第一根目录,并且所述第二目录包括指示所述一个或多个数据存储上的第二存储位置的第二根目录,所述第一存储位置与所述第二存储位置不同。
6.根据权利要求5所述的系统,其中,所述第一存储位置位于用于快速访问而优化的本地数据存储中。
7.一种方法,包括:
接收第一设备数据,所述第一设备数据包括多个文件并且对应于在一定时间段期间由设备的一个或多个部件生成的消息数据;
在一个或多个数据存储上并且在第一位置处根据分层数据结构存储所述第一多个文件,所述分层数据结构至少部分地基于消息时间、数据标识符或设备标识符;
获得包括第二多个文件的第二设备数据,所述第二设备数据与所述时间段相关联;以及
根据所述分层数据结构将所述第二设备数据存储在所述一个或多个数据存储上的第二位置处。
8.根据权利要求7所述的方法,其中,所述第二设备数据包括从所述第一多个文件导出的数据。
9.根据权利要求7或权利要求8的方法,其中,所述第一多个文件中的文件由所述消息数据的多个消息构成,所述文件小于阈值大小。
10.根据权利要求9所述的方法,其中,所述多个消息的消息包括:
消息类型,
创建所述消息的时间戳,以及
消息编号。
11.根据权利要求7至10中任一项的方法,其中,所述第一多个文件存储在第一数据存储中,并且其中,所述第二多个文件基于所述第二多个文件的使用等待时间或频率存储在第二数据存储中。
12.根据权利要求7至11中任一项的方法,其中,所述第一位置与第一访问权限相关联,并且所述第二位置与第二访问权限相关联,所述第二访问权限比所述第一访问权限更具限制性。
13.根据权利要求12所述的方法,还包括:
接收请求,所述请求包括请求数据标识符、开始时间、结束时间、以及请求权限级别;以及
至少部分地基于所述请求、所述第一访问权限、所述第二访问权限以及简档来传输所述第一多个文件中的第一文件或所述第二多个文件中的第二文件,
其中,所述简档提供指令以至少部分地基于所述请求数据标识符来访问所述第一多个文件或所述第二多个文件。
14.根据权利要求7至13中任一项所述的方法,其中,从自主车辆的第一子系统获得所述第一设备数据,并且从所述自主车辆的第二子系统获得所述第二设备数据。
15.一种或多种具有存储在其上的指令的非暂时性计算机可读介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行权利要求7至14中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/219,623 | 2018-12-13 | ||
US16/219,623 US20200192872A1 (en) | 2018-12-13 | 2018-12-13 | Device message framework |
PCT/US2019/065531 WO2020123544A1 (en) | 2018-12-13 | 2019-12-10 | Device message framework |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113168403A true CN113168403A (zh) | 2021-07-23 |
Family
ID=69165575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980082575.3A Pending CN113168403A (zh) | 2018-12-13 | 2019-12-10 | 设备消息框架 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20200192872A1 (zh) |
EP (1) | EP3895034A1 (zh) |
JP (1) | JP7367938B2 (zh) |
CN (1) | CN113168403A (zh) |
WO (1) | WO2020123544A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114401093A (zh) * | 2021-12-27 | 2022-04-26 | 浙江数秦科技有限公司 | 一种基于零知识证明的登录验证方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3847643A4 (en) | 2018-09-06 | 2022-04-20 | Coffing, Daniel L. | DIALOG GUIDANCE PROVIDING SYSTEM |
WO2020056409A1 (en) * | 2018-09-14 | 2020-03-19 | Coffing Daniel L | Fact management system |
EP4057585A4 (en) * | 2019-12-06 | 2022-12-28 | Huawei Cloud Computing Technologies Co., Ltd. | EDGE SYSTEM AND PROCEDURES FOR PROCESSING DATA OPERATION REQUESTS |
US11341299B2 (en) | 2020-01-29 | 2022-05-24 | Spirent Communications Plc | Flexible methods for generation of GNSS navigation data |
EP3881988A1 (en) * | 2020-03-20 | 2021-09-22 | Tata Consultancy Services Limited | Knowledge partitioning for task execution by conversational tele-presence robots in a geographically separated environment |
US20230024419A1 (en) * | 2021-07-23 | 2023-01-26 | GM Global Technology Operations LLC | System and method for dynamically configurable remote data collection from a vehicle |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070230270A1 (en) * | 2004-12-23 | 2007-10-04 | Calhoun Robert B | System and method for archiving data from a sensor array |
CN101443760A (zh) * | 2003-11-03 | 2009-05-27 | 网络装置公司 | 在单写多读存储系统中用于记录保留日期的系统和方法 |
US20100023563A1 (en) * | 2008-07-23 | 2010-01-28 | Nvidia Corporation | Copying Files From One Directory To Another |
US20110187861A1 (en) * | 2010-02-01 | 2011-08-04 | Beat-Sonic Co., Ltd. | Vehicle-mounted surveillance device |
CN102934094A (zh) * | 2010-06-16 | 2013-02-13 | 微软公司 | 用于文件系统存储设备的分层分配 |
CN103150394A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高性能计算的分布式文件系统元数据管理方法 |
US8595237B1 (en) * | 2010-02-17 | 2013-11-26 | Netapp, Inc. | Method and system for managing metadata in a storage environment |
CN104781793A (zh) * | 2012-12-14 | 2015-07-15 | 雪佛龙美国公司 | 用于集成存储使用情况信息的系统和方法 |
CN106202367A (zh) * | 2016-07-07 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 一种对象信息的处理方法及装置 |
CN111566635A (zh) * | 2017-10-28 | 2020-08-21 | 图森有限公司 | 用于异构多媒体数据的存储架构 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002312384A (ja) * | 2001-04-17 | 2002-10-25 | Nippon Telegr & Teleph Corp <Ntt> | 情報提供装置および方法、情報提供プログラム並びにそのプログラムを記録した記録媒体 |
US8140474B2 (en) * | 2007-09-13 | 2012-03-20 | Intel Corporation | Aggregation of file/directory structures |
US20130091266A1 (en) * | 2011-10-05 | 2013-04-11 | Ajit Bhave | System for organizing and fast searching of massive amounts of data |
US9092920B2 (en) * | 2012-03-27 | 2015-07-28 | United Technologies Corporation | System and method for managing a vehicle and a fleet of vehicles |
JP5846314B2 (ja) * | 2012-10-09 | 2016-01-20 | 富士通株式会社 | 情報探索支援方法及び情報処理装置 |
US9456190B2 (en) * | 2013-11-11 | 2016-09-27 | Viakoo, Inc. | Systems and methods of determining retention of video surveillance data |
US20220005291A1 (en) * | 2014-05-20 | 2022-01-06 | State Farm Mutual Automobile Insurance Company | Autonomous vehicle operation feature monitoring and evaluation of effectiveness |
US9747297B2 (en) * | 2014-09-23 | 2017-08-29 | Amazon Technologies, Inc. | Synchronization of shared folders and files |
US10845353B2 (en) * | 2015-06-15 | 2020-11-24 | Commonwealth Scientific And Industrial Research Organisation | Soil condition analysis system and process |
US20180089324A1 (en) * | 2016-09-26 | 2018-03-29 | Splunk Inc. | Dynamic resource allocation for real-time search |
JP2018120429A (ja) * | 2017-01-25 | 2018-08-02 | 株式会社デンソーテン | 記録制御装置、車両情報記憶システム、記録制御方法およびプログラム |
JP7074125B2 (ja) * | 2017-03-30 | 2022-05-24 | ソニーグループ株式会社 | 情報処理装置と情報処理方法 |
US10474916B2 (en) * | 2017-11-20 | 2019-11-12 | Ashok Krishnan | Training of vehicles to improve autonomous capabilities |
-
2018
- 2018-12-13 US US16/219,623 patent/US20200192872A1/en active Pending
-
2019
- 2019-12-10 EP EP19836726.0A patent/EP3895034A1/en active Pending
- 2019-12-10 JP JP2021532188A patent/JP7367938B2/ja active Active
- 2019-12-10 WO PCT/US2019/065531 patent/WO2020123544A1/en unknown
- 2019-12-10 CN CN201980082575.3A patent/CN113168403A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101443760A (zh) * | 2003-11-03 | 2009-05-27 | 网络装置公司 | 在单写多读存储系统中用于记录保留日期的系统和方法 |
US20070230270A1 (en) * | 2004-12-23 | 2007-10-04 | Calhoun Robert B | System and method for archiving data from a sensor array |
US20100023563A1 (en) * | 2008-07-23 | 2010-01-28 | Nvidia Corporation | Copying Files From One Directory To Another |
US20110187861A1 (en) * | 2010-02-01 | 2011-08-04 | Beat-Sonic Co., Ltd. | Vehicle-mounted surveillance device |
US8595237B1 (en) * | 2010-02-17 | 2013-11-26 | Netapp, Inc. | Method and system for managing metadata in a storage environment |
CN102934094A (zh) * | 2010-06-16 | 2013-02-13 | 微软公司 | 用于文件系统存储设备的分层分配 |
CN104781793A (zh) * | 2012-12-14 | 2015-07-15 | 雪佛龙美国公司 | 用于集成存储使用情况信息的系统和方法 |
CN103150394A (zh) * | 2013-03-25 | 2013-06-12 | 中国人民解放军国防科学技术大学 | 面向高性能计算的分布式文件系统元数据管理方法 |
CN106202367A (zh) * | 2016-07-07 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 一种对象信息的处理方法及装置 |
CN111566635A (zh) * | 2017-10-28 | 2020-08-21 | 图森有限公司 | 用于异构多媒体数据的存储架构 |
Non-Patent Citations (3)
Title |
---|
SANTOSH PATTAR等: "Searching for the IoT Resources: Fundamentals, Requirements, Comprehensive Review, and Future Directions", 《IEEE COMMUNICATIONS SURVEYS & TUTORIALS》, vol. 20, no. 3, 10 April 2018 (2018-04-10), pages 2101 - 2132, XP055672641, DOI: 10.1109/COMST.2018.2825231 * |
刘科;秦磊华;周敬利;聂雪军;曾东;: "内容感知存储系统中的两阶段检索策略", 计算机科学, no. 05, 15 May 2011 (2011-05-15), pages 20 - 23 * |
魏东琦;李容;高婷;牛千;杨军录;: "非标准化地质数据存储模式研究", 西北地质, no. 02, 5 June 2012 (2012-06-05), pages 146 - 150 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114401093A (zh) * | 2021-12-27 | 2022-04-26 | 浙江数秦科技有限公司 | 一种基于零知识证明的登录验证方法 |
CN114401093B (zh) * | 2021-12-27 | 2024-04-05 | 浙江数秦科技有限公司 | 一种基于零知识证明的登录验证方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3895034A1 (en) | 2021-10-20 |
WO2020123544A1 (en) | 2020-06-18 |
US20200192872A1 (en) | 2020-06-18 |
JP2022511093A (ja) | 2022-01-28 |
JP7367938B2 (ja) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7367938B2 (ja) | デバイスメッセージフレームワーク | |
JP7203769B2 (ja) | ボクセルベースのグランド平面推定およびオブジェクト区分化 | |
US20200364953A1 (en) | Systems and methods for managing vehicle data | |
US11669714B1 (en) | Models for stop sign database creation | |
US20200184027A1 (en) | System and method for modeling physical objects in a simulation | |
US10101244B2 (en) | Self-learning simulation environments | |
US11875551B2 (en) | Collecting and processing data from vehicles | |
CN111860872A (zh) | 用于异常检测的系统和方法 | |
JP7200694B2 (ja) | センサノード、サーバ装置、識別システム、方法及びプログラム | |
Balakrishnan et al. | PerceMon: online monitoring for perception systems | |
US11892835B2 (en) | System and method for controlling an autonomous vehicle | |
US11544173B1 (en) | Detecting performance regressions in software for controlling autonomous vehicles | |
US11782496B2 (en) | Smart context subsampling on-device system | |
US20160259869A1 (en) | Self-learning simulation environments | |
CN116257663A (zh) | 面向无人地面车辆的异常检测与关联分析方法及相关设备 | |
Rintoul et al. | PANTHER. Trajectory Analysis | |
US20240087319A1 (en) | Systems and methods for generating a video summary of video data | |
US20220317301A1 (en) | Modeling foliage in a synthetic environment | |
US20220318450A1 (en) | Lidar Atmospheric Effects in Simulation | |
Milardo et al. | An unsupervised approach for driving behavior analysis of professional truck drivers | |
Andersen | Spatial Data Science: Applications and Implementations in Learning Human Mobility Patterns | |
Gazdag et al. | Vehicular Communications |
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 |