首页 / 专利库 / 软件 / 软件模块 / 具有实时在线自我运动估计的激光扫描仪

具有实时在线自我运动估计的激光扫描仪

阅读:643发布:2024-02-12

专利汇可以提供具有实时在线自我运动估计的激光扫描仪专利检索,专利查询,专利分析的服务。并且一种测绘系统,包括:惯性测量单元;摄像机单元;激光扫描单元;以及与惯性测量单元、摄像机单元和激光扫描单元进行通信的计算系统,其中计算系统基于来自惯性测量单元的惯性测量数据以第一 频率 来计算第一测量预测、基于第一测量预测和来自摄像机单元的视觉测量数据以第二频率来计算第二测量预测、以及基于第二测量预测和来自激光扫描单元的激光测距数据以第三频率来计算第三测量预测。,下面是具有实时在线自我运动估计的激光扫描仪专利的具体信息内容。

1.一种测绘系统,包括:
惯性测量单元;
摄像机单元;
激光扫描单元;以及
与所述惯性测量单元、所述摄像机单元、和所述激光扫描单元进行通信的计算系统,其中所述计算系统包括至少一个处理器、至少一个主存储器单元、和至少一个辅助存储器单元,
其中所述主存储器单元存储由所述至少一个处理器所运行的软件,其中所述软件包括:
第一计算模,所述第一计算模块在由所述至少一个处理器运行时使所述至少一个处理器至少部分基于来自所述惯性测量单元的惯性测量数据以第一频率来计算至少一个第一测量预测;
第二计算模块,所述第二计算模块在由所述至少一个处理器运行时使所述至少一个处理器至少部分基于所述至少一个第一测量预测和来自所述摄像机单元的视觉测量数据以第二频率来计算至少一个第二测量预测;以及
第三计算模块,所述第三计算模块在由所述至少一个处理器运行时使所述至少一个处理器基于所述至少一个第二测量预测和来自所述激光扫描单元的激光测距数据以第三频率来计算至少一个第三测量预测。
2.如权利要求1所述的测绘系统,其中,所述第一计算模块还包括软件,所述软件在由所述至少一个处理器运行时使所述至少一个处理器至少部分基于所述至少一个第二测量预测和所述至少一个第三测量预测来校正所述至少一个第一测量预测中的偏差误差。
3.如权利要求1所述的测绘系统,其中,所述第一频率大于所述第二频率,并且所述第二频率大于所述第三频率。
4. 如权利要求1所述的测绘系统,其中,所述第二计算模块还包括其它软件,所述其它软件在由所述至少一个处理器运行时使所述至少一个处理器:
确定所述视觉测量数据在第一测量时间期期间是否被降级;以及
在确定所述视觉测量数据在所述第一测量时间期期间被降级时,计算与在所述第一测量时间期期间的所述至少一个第一测量预测相等的在所述第一测量时间期期间的所述至少一个第二测量预测。
5. 如权利要求4所述的测绘系统,其中,所述第三计算模块包括其它软件,所述其它软件在由所述至少一个处理器运行时使所述至少一个处理器:
确定所述激光测距数据在第二测量时间期期间是否被降级;以及
在确定所述激光测距数据在所述第二测量时间期期间被降级时,计算与在所述第二测量时间期期间的所述至少一个第二测量预测相等的在所述第二测量时间期期间的所述至少一个第三测量预测。
6.如权利要求1所述的测绘系统,其中:
所述主存储器装置存储体素的第一集合和体素的第二集合;
体素的所述第一集合和体素的所述第二集合基于所述至少一个第三预测测量;
体素的所述第一集合中的每个体素对应于空间的第一体积;
体素的所述第二集合中的每个体素对应于空间的第二体积;
空间的所述第二体积小于空间的所述第一体积;以及
体素的所述第一集合中的每个体素对体素的所述第二集合中的多个体素是可映射的。
7.如权利要求1所述的测绘系统,其中,所述辅助存储器单元存储根据所述至少一个第三预测测量所生成的点数据。
8.如权利要求1所述的测绘系统,还包括移动单元,其中:
所述惯性测量单元形成所述移动单元的一部分,
所述摄像机单元形成所述移动单元的一部分,
所述激光扫描单元形成所述移动单元的一部分,以及
所述计算系统形成所述移动单元的一部分。
9. 如权利要求8所述的测绘系统,其中:
所述移动单元包括用于引导所述移动单元的导航系统;以及
所述导航系统使用所述至少一个第三测量预测来引导自主移动单元。
10.如权利要求1所述的测绘系统,其中:
所述第三计算模块使用扫描匹配算法来计算所述至少一个第三测量预测;
所述至少一个处理器包括多个处理线程;
所述主存储器装置存储软件,所述软件在由所述至少一个处理器运行时管理由所述多个线程对所述激光测距数据的扫描的处理,使得:
指配第一线程以对所述激光测距数据的第一扫描进行扫描匹配;
从所述第一扫描之后的时间点指配所述第一线程以对所述激光测距数据的第二扫描进行扫描匹配,由此所述第一线程在所述第二扫描的到达之前处理所述第一扫描;以及当所述第一线程不能在所述第二扫描的所述到达之前处理所述第一扫描时,指配第二线程以对所述激光测距数据的所述第二扫描进行扫描匹配。
11.如权利要求1所述的测绘系统,其中:
所述至少一个第一测量预测包括对包含多个自由度位姿的至少一个自由度的预测;
所述至少一个第二测量预测包括对包含多个自由度的所述位姿的至少一个自由度的预测;以及
所述至少一个第三测量预测包括对包含多个自由度的所述位姿的至少一个自由度的预测。
12. 如权利要求11所述的测绘系统,其中,所述第二计算模块包括其它软件,所述其它软件在由所述至少一个处理器运行时使所述至少一个处理器:
确定所述视觉测量数据中的任一个在第一测量时间期期间是否被降级;以及在确定所述视觉测量数据中的任一个在所述第一测量时间期期间被降级时,计算非降级视觉测量数据的所述至少一个第二测量预测的多个自由度。
13. 如权利要求11所述的测绘系统,其中,所述第三计算模块包括其它软件,所述其它软件在由所述至少一个处理器运行时使所述至少一个处理器:
确定所述激光测距数据中的任一个在第二测量时间期期间是否被降级;以及在确定所述激光测距数据中的任一个在所述第二测量时间期期间被降级时,计算非降级激光测距数据的所述至少一个第三测量预测的多个自由度。
14.如权利要求11所述的测绘系统,其中,所述第一计算模块包括其它软件,所述其它软件在由所述至少一个处理器运行时使所述至少一个处理器至少部分基于所述至少一个第一测量预测的所述至少一个自由度、所述至少一个第二测量预测的所述至少一个自由度、和所述至少一个第三测量预测的所述至少一个自由度来校正所述位姿的偏差误差。
15.如权利要求11所述的测绘系统,其中:
所述第二计算模块包括其它软件,所述其它软件在由所述至少一个处理器运行时使所述至少一个处理器:
确定所述视觉测量数据中的任一个在第一测量时间期期间是否被降级;以及在确定所述视觉测量数据中的任一个在所述第一测量时间期期间被降级时,计算非降级视觉测量数据的所述至少一个第二测量预测的多个自由度;以及
所述第三计算模块包括其它软件,所述其它软件在由所述至少一个处理器运行时使所述至少一个处理器:
确定所述激光测距数据中的任一个在第二测量时间期期间是否被降级;以及在确定所述激光测距数据中的任一个在所述第二测量时间期期间被降级时,计算非降级激光测距数据的所述至少一个第三测量预测的多个自由度。
16.如权利要求15所述的测绘系统,其中,所述第一计算模块包括其它软件,所述其它软件在由所述至少一个处理器运行时使所述至少一个处理器基于所述第一测量预测的所述至少一个自由度、所述至少一个第二测量预测的所述至少一个自由度、和不是所述至少一个第二测量预测的自由度的所述第三测量预测的所述至少一个自由度来校正所述位姿的偏差误差。

说明书全文

具有实时在线自我运动估计的激光扫描仪

[0001] 优先权声明
[0002] 本申请要求美国临时专利申请序列号为62/307061、2016年3月11日提交的标题为“具有实时在线自我运动估计的激光扫描仪(LASER SCANNER WITH REAL-TIME,ONLINE EGO-MOTION ESTIMATION)”的权益,通过引用以其公开的整体并出于所有目的将其公开结合在本文中。

背景技术

[0003] 自主移动装置可要求与它操作所处的地形有关的信息。这种装置可依靠呈现地形以及可在其中发现的任何障碍的预定义地图。备选地,装置可具有在处于静止或运动中的同时测绘其地形的能,所述装置包括具有一个或多个传感器以提供实时数据的基于计算机的测绘系统。移动的基于计算机的测绘系统可估计其位置随时间的变化(测距仪)、和/或生成三维空间的三维地图表示(例如点)。
[0004] 示范性测绘系统可包括用于提供数据(可根据其来构建地图)的多种传感器。一些测绘系统可使用立体摄像机系统作为一个此类传感器。这些系统受益于两个摄像机之间作为用于确定运动估计的标度的参考的基线。双目系统比单目系统优选,因为单目系统可能在没有从附加传感器接收数据或进行关于装置的运动的假设的情况下不能够解析图像的标度。近年来,RGB-D摄像机在研究团体中已得到普及。这类摄像机可提供与各个像素关联的深度信息,并且因此能够帮助确定标度。但是,一些方法(包括RGB-D摄像机)可能仅使用具有深度信息的覆盖的图像区域,这可能导致大图像区域被浪费,特别是在深度只能够稀疏可用的开放环境中。
[0005] 在测绘系统的其它示例中,IMU可与一个或多个摄像机耦合,使得可从IMU加速来提供标度约束。在一些示例中,单目摄像机可借助于卡尔曼滤波器而被紧密或宽松地耦合到IMU。其它测绘系统可使用优化方法来求出移动系统的运动。
[0006] 测绘系统的备选示例可包括将激光扫描仪用于运动估计。但是,这种数据的使用的困难可产生于激光的扫描速率。当系统正移动时,激光点(不像固定位置激光扫描仪)受扫描仪的相对移动所影响。因此,这个移动的影响可以是激光点在不同时间到达系统的因素。因此,当扫描速率相对于测绘系统的运动是慢的时,可能由于激光的外部运动而存在扫描失真。运动效应能够通过激光其本身来补偿,但是补偿可能要求独立运动模型以提供所要求的校正。作为一个示例,运动可被建模为恒定速度或被建模为高斯过程。在某个示例中,IMU可提供运动模型。这种方法匹配由激光点云所形成的空间-时间片(spatio-temporal patch)以估计传感器运动,并且在离线批量优化中校正IMU偏差。
[0007] 可在滚动快摄像机的使用中发现运动失真的相似问题。具体来说,图像像素可随时间被连续接收,从而导致由摄像机的外在运动所引起的图像失真。在一些示例中,在给定像素的读出时间的情况下,视觉测距法方法可使用IMU来补偿滚动快门影响。
[0008] 在一些示例中,GPS/INS技术可用来确定移动测绘装置的位置。但是,高精度GPS/INS解决方案在应用是GPS拒绝、轻量、或成本敏感时可能是不实用的。认识到的是,精确GPS测绘要求GPS接收器与至少四个GPS卫星(但五个可以是优选的)之间的视线通信。在一些环境中,可能难以从四个卫星接收未失真信号,例如在可能包括立交桥和其它障碍物的城市环境中。
[0009] 因此可领会,存在与合并来自具有其它运动测量装置的光学装置的数据以便生成自主测绘装置周围的地形的稳健地图关联的若干技术挑战,特别是在测绘装置处于运动中时。下面所公开的是能够获取光学测绘信息并产生具有缩减失真的稳健地图的测绘装置的方法和系统。发明内容
[0010] 这一小节中的示例只表示一些可能实施例,而不是反映本申请中所公开的所有可能实施例、元件的组合、或发明。在示例中,一种测绘系统可包括惯性测量单元,摄像机单元,激光扫描单元,以及与惯性测量单元、摄像机单元、和激光扫描单元进行通信的计算系统。计算系统可由至少一个处理器、至少一个主存储器单元、和至少一个辅助存储器单元所组成。主存储器单元可存储由至少一个处理器所运行的软件,其中软件可包括:第一计算模,所述第一计算模块在由至少一个处理器运行时使至少一个处理器基于来自惯性测量单元的惯性测量数据以第一频率来计算第一测量预测;第二计算模块,所述第二计算模块在由至少一个处理器运行时使至少一个处理器基于第一测量预测和来自摄像机单元的视觉测量数据以第二频率来计算第二测量预测;以及第三计算模块,所述第三计算模块在由至少一个处理器运行时使至少一个处理器基于第二测量预测和来自激光扫描单元的激光测距数据以第三频率来计算第三测量预测。
[0011] 在测绘系统的示例中,第一计算模块可还包括软件,所述软件在由至少一个处理器运行时使至少一个处理器基于第二测量预测和第三测量预测来校正第一测量预测中的偏差误差。
[0012] 在测绘系统的示例中,第一频率大于第二频率,并且第二频率大于第三频率。
[0013] 在测绘系统的示例中,第二计算模块可还包括软件,所述软件在由至少一个处理器运行时使至少一个处理器:确定视觉测量数据在第一测量时间期期间是否被降级;以及在确定视觉测量数据在第一测量时间期期间被降级时,计算与在第一测量时间期期间的第一测量预测相等的在第一测量时间期期间的第二测量预测。
[0014] 在测绘系统的示例中,第三计算模块可还包括软件,所述软件在由至少一个处理器运行时使至少一个处理器:确定激光测距数据在第二测量时间期期间是否被降级;以及在确定激光测距数据在第二测量时间期期间被降级时,计算与在第二测量时间期期间的第二测量预测相等的在第二测量时间期期间的第三测量预测。
[0015] 在测绘系统的示例中,主存储器装置可存储体素的第一和第二集合,其中体素的第一和第二集合基于第三预测测量。体素的第一集合中的每个体素可对应于空间的第一体积,并且体素的第二集合中的每个体素可对应于空间的第二体积。空间的第二体积可小于空间的第一体积,并且体素的第一集合中的每个体素对体素的第二集合中的多个体素可以是可映射的。
[0016] 在测绘系统的示例中,辅助存储器单元可存储根据第三预测测量所生成的点云数据。
[0017] 在示例中,测绘系统可还包括移动单元,其中惯性测量单元在移动单元上,摄像机单元在移动单元上,激光扫描单元在移动单元上,并且计算系统在移动单元上。
[0018] 在测绘系统的示例中,移动单元可包括用于引导移动单元的导航系统,并且导航系统可使用第三测量预测来引导自主移动单元。
[0019] 在测绘系统的示例中,第三计算模块可使用扫描匹配算法来计算第三测量预测。至少一个处理器可包括多个处理线程。主存储器装置可存储软件,所述软件在由至少一个处理器运行时可管理由多个线程对激光测距数据的扫描的处理,使得指配第一线程以对激光测距数据的第一扫描进行扫描匹配。当第一线程能在第二扫描的到达之前处理第一扫描时,从第一扫描之后的时间点可指配第一线程以对激光测距数据的第二扫描进行扫描匹配。当第一线程不能在第二扫描的到达之前处理第一扫描时,可指配第二线程以对激光测距数据的第二扫描进行扫描匹配。
[0020] 在测绘系统的示例中,惯性测量单元、摄像机单元和激光扫描单元可经由具有交互式显示器(其上按照三维表示来呈现扫描数据的向下取样版本)的计算系统进行接口
[0021] 按照示范性而非限制性实施例,测绘系统包括惯性测量单元;摄像机单元;激光扫描单元;以及与惯性测量单元、摄像机单元、和激光扫描单元进行通信的计算系统,其中计算系统包括至少一个处理器、至少一个主存储器单元、和至少一个辅助存储器单元,其中主存储器单元存储由至少一个处理器所运行的软件,其中软件包括:第一计算模块,所述第一计算模块在由至少一个处理器运行时使至少一个处理器至少部分基于来自惯性测量单元的惯性测量数据以第一频率来计算至少一个第一测量预测;第二计算模块,所述第二计算模块在由至少一个处理器运行时使至少一个处理器至少部分基于至少一个第一测量预测和来自摄像机单元的视觉测量数据以第二频率来计算至少一个第二测量预测;以及第三计算模块,所述第三计算模块在由至少一个处理器运行时使至少一个处理器基于至少一个第二测量预测和来自激光扫描单元的激光测距数据以第三频率来计算至少一个第三测量预测。
[0022] 按照示范性而非限制性实施例,测绘系统由模块化系统结构所组成,其用于解决双向信息流的问题。具体来说,三个模块从粗略到精细数据逐步地解决问题。数据处理流程可从IMU预测模块进行到视觉-惯性测距法模块到扫描匹配细分模块,同时反馈流程按照相反顺序发生以校正IMU的偏差。
[0023] 按照示范性而非限制性实施例,测绘系统是动态可重新配置的。例如,如果视觉特征对视觉-惯性测距法是不充分的,则IMU预测模块(部分)绕过视觉-惯性测距法模块以本地配准激光点。另一方面,如果环境结构对扫描匹配是不充分的,则视觉-惯性测距法输出(部分)绕过扫描匹配细分模块以配准地图上的激光点。
[0024] 按照示范性而非限制性实施例,测绘系统采用优先级反馈以用于IMU偏差校正。例如,视觉-惯性测距法模块和扫描匹配细分模块两者可向IMU预测模块提供反馈,以校正IMU偏差。反馈可被组合,从而对视觉-惯性测距法模块给定优先级。换言之,来自扫描匹配细分模块的反馈沿其中视觉-惯性测距法模块被降级的方向来补偿视觉-惯性测距法模块。
[0025] 按照示范性而非限制性实施例,测绘系统采用地图的两层体素表示。第一层由大体素所组成。这层用于地图存储。对于靠近传感器的每个大体素,体素包含小体素的第二层,以便准确检索地图以用于扫描匹配。
[0026] 按照示范性而非限制性实施例,测绘系统采用扫描匹配的多线程处理。扫描匹配可利用KD树构建、点查询、非线性优化的矩阵逆等。标准并行处理(例如openMP)只能够加速点查询,而没有用来大体上减少总体时间。相比之下,本系统在各线程上处理不同扫描。换言之,四个线程处理四个连续扫描而不是一个扫描。附图说明
[0027] 图1示出测绘系统的实施例的框图
[0028] 图2示出图1的测绘系统的三个计算模块及其相应反馈特征的实施例框图。
[0029] 图3示出用于将位置信息细分为地图的卡尔曼滤波器模型的实施例。
[0030] 图4示出用于将位置信息细分为地图的因子图形优化模型的实施例。
[0031] 图5示出视觉-惯性测距法子系统的实施例。
[0032] 图6示出扫描匹配子系统的实施例。
[0033] 图7A示出具有粗略细节解析度的大区域地图的实施例。
[0034] 图7B示出具有精细细节解析度的小区域地图的实施例。
[0035] 图8A示出多线程扫描匹配的实施例。
[0036] 图8B示出单线程扫描匹配的实施例。
[0037] 图9A示出三个计算模块的框图的实施例,其中来自视觉-惯性测距法单元的反馈数据由于数据降级而被抑制(suppress)。
[0038] 图9B示出三个计算模块的实施例,其中来自扫描匹配单元的反馈数据由于数据降级而被抑制。
[0039] 图10示出三个计算模块的实施例,其中来自视觉-惯性测距法单元和扫描匹配单元的反馈数据由于数据降级而被部分抑制。
[0040] 图11示出移动测绘装置的估计轨迹的实施例。
[0041] 图12示出按照示范性而非限制性实施例的双向信息流。
[0042] 图13a和图13b示出按照示范性而非限制性实施例的动态可重新配置系统。
[0043] 图14示出按照示范性而非限制性实施例的IMU偏差校正的优先级反馈。
[0044] 图15a和图15b示出按照示范性而非限制性实施例的地图的二层体素表示。
[0045] 图16a和图16b示出按照示范性而非限制性实施例的扫描匹配的多线程处理。

具体实施方式

[0046] 在一个一般方面,本发明针对移动的基于计算机的测绘系统,其估计位置随时间的变化(测距仪),和/或生成三维空间的三维地图表示(例如点云)。测绘系统可包括但不限于多个传感器(包括惯性测量单元(IMU))、摄像机和/或3D激光扫描仪。它还可包括计算机系统,其具有与多个传感器进行通信的至少一个处理器,所述至少一个处理器配置成处理来自传感器的输出,以便估计系统的位置随时间的变化和/或生成周围环境的地图表示。测绘系统可能够实现高频率、低等待时间、在线、实时的自我运动估计,连同密集、精确的3D地图配准。本公开的实施例可包括同时定位和测绘(SLAM)系统。SLAM系统可包括多维(例如3D)激光扫描和距离测量系统,其是GPS无关的,并且其提供实时的同时定位和测绘。SLAM系统可生成和管理极精确点云的数据,其产生于激光扫描从环境中的物体的反射。点云中的任一点的移动被精确地随时间跟踪,使得SLAM系统能够维持对其定位和取向的准确了解,因为它使用点云中的点作为用于定位的参考点而穿过环境。
[0047] 在一个实施例中,移动测绘系统的位置和运动的解析度可在一系列粗略到精细更新中顺序地细分。在非限制性示例中,分立计算模块可用来将移动测绘系统的位置和运动从具有快速更新速率的粗略解析度更新到具有较慢更新速率的精细解析度。例如,IMU装置可向第一计算模块提供数据,以便以高更新速率来预测测绘系统的运动或位置。视觉-惯性测距法系统可向第二计算模块提供数据,以便以较低更新速率来改进测绘系统的运动或位置解析度。另外,激光扫描仪可向第三计算扫描匹配模块提供数据,以便以更低更新速率进一步细分运动估计并配准地图。在一个非限制性示例中,来自配置成处理精细位置和/或运动解析度数据的计算模块的数据可被反馈到配置成处理更粗略位置和/或运动解析度数据的计算模块。在另一个非限制性示例中,计算模块可结合故障容差以通过自动绕过与产生(sourcing)有故障、错误、不完整或者不存在的数据的传感器关联的计算模块来解决传感器降级的问题。因此,测绘系统可在高度动态运动存在的情况下以及在昏暗、无纹理和无结构的环境中操作。
[0048] 与现有地图生成技术(其主要是离线批量系统)形成对照,本文所公开的测绘系统能够在处于运动中的同时实时操作并生成地图。这个能力提供两个实际优点。首先,用户不局限于固定在三架或另一非静止座架上。而是,本文所公开的测绘系统可与移动装置关联,由此增加可实时测绘的环境的范围。其次,实时特征能够在收集数据的同时对用户给予当前所测绘区域的反馈。在线生成的地图还能够帮助机器人或其它装置以进行自主导航和障碍回避。在一些非限制性实施例中,这类导航能力可被结合到测绘系统其本身中。在备选非限制性实施例中,地图数据可被提供给具有导航能力的附加机器人,其可能要求外部产生的地图。
[0049] 存在传感器的若干潜在应用,例如3D建模、场景测绘和环境推理。测绘系统能够为采取点云作为输入以用于进一步处理的其它算法提供点云地图。此外,测绘系统在室内和室外都能工作。这类实施例不要求外部照明,并且能够在黑暗中操作。具有摄像机的实施例能够处置快速运动,并且能够利用来自摄像机的图像来色化激光点云,但是可能要求外部照明。SLAM系统能够在用户正移动通过环境时(例如当行走、骑行、驾车、飞行及其组合时)实时构建和维持点云。在测绘器前进通过环境时实时地构成地图。SLAM系统能够跟踪作为点的数千个特征。当测绘器移动时,跟踪点以允许对运动的估计。因此,SLAM系统实时地并且在没有与外部定位技术(例如GPS)的相关性的情况下进行操作。在实施例中,环境的多个(在大多数情况下为非常大量的)特征(例如物体)被用作用于三角测量的点,以及系统实时地执行和更新许多定位和取向运算,以便在SLAM系统移动通过环境时维持位置和取向的精确当前估计。在实施例中,环境内的特征的相对移动能够用来区分固定特征(例如墙壁、门、窗户、家具、固定设备等)与移动特征(例如人、交通工具和其它移动项),使得固定特征能够用于位置和取向运算。下SLAM系统可使用蓝绿激光来减少衰减。
[0050] 测绘系统设计遵循如下观察结论:自我运动估计中的漂移具有比模块自己的频率更低的频率。因此,三个计算模块按照频率的降序来布置。高频率模块被专用来处置剧烈运动,而低频率模块消除先前模块的漂移。顺序处理还有利于计算:前面的模块进行较少计算并且以高频率执行,从而对后面的模块给予充分时间以供全面处理。因此,测绘系统能够在实时在线运行的同时取得高等级的精度。
[0051] 此外,系统可配置成处置传感器降级。如果摄像机是不起作用的(例如由于黑暗、急剧照明变化或者无纹理环境)或者如果激光是不起作用的(例如由于无结构环境),则对应模块可被绕过,并且系统的其余部分可被交错以可靠地起作用。系统通过了大量实验来测试,并且结果表明它能够产生针对若干千米的导航的高精度以及相对于环境降级和剧烈运动的稳健性。
[0052] 下面所公开的模块化测绘系统配置成通过使用多层优化结构来处理来自距离、视觉和惯性传感器的数据以用于运动估计和测绘。模块化测绘系统可通过结合特征来取得高精度、稳健性和低漂移,所述特征可包括以下项:
[0053] 用于动态重新配置计算模块的能力;
[0054] 用于完全或部分绕过计算模块中的故障模式并且按照处置传感器和/或传感器数据降级的方式来组合来自其余模块的数据,由此解决移动测绘系统的剧烈运动和环境引起的数据降级的能力;以及
[0055] 用于协作地集成计算模块以提供实时性能的能力。
[0056] 本文所公开的是用于利用来自3D激光器、摄像机和IMU的数据的在线自我运动估计的测绘系统。所估计的运动还配准激光点,以构建所穿过的环境的地图。在许多现实世界应用中,自我运动估计和测绘必须实时地进行。在自主导航系统中,地图对于运动规划和障碍回避可能是至关重要的,同时运动估计对于交通工具控制和操纵是重要的。
[0057] 图1描绘了按照本发明的一个实施例的测绘系统100的简化框图。虽然下面公开了特定组件,但是这类组件只作为示例来呈现,并不是针对其它等效或相似组件进行限制。所示系统包括IMU系统102(例如 MTi-30IMU)、摄像机系统104(例如 UI-1220SE单色摄像机)和激光扫描仪106(例如Velodyne PUCKTMVLP-16激光扫描仪)。IMU 102可提供从x-y-z加速计、转动-倾斜-偏航(roll-pitch-yaw)陀螺仪和磁力计中的一个或多个所得出的惯性运动数据,并且以第一频率提供惯性数据。在一些非限制性示例中,第一频率可以为大约200Hz。摄像机系统104可具有大约752×480像素的解析度、76°水平视场(FOV)以及以第二频率的捕获速率。在一些非限制性示例中,帧捕获速率可以大约50Hz的第二频率进行操作。激光扫描仪106可具有360°水平FOV、30°垂直FOV,并且以表示激光器自旋速率的第三频率来接收0.3百万点/秒。在一些非限制性示例中,第三频率可以为大约
5Hz。如图1中所描绘的,激光扫描仪106可被连接到达108,其结合编码器109以测量马达旋转角。在一个非限制性示例中,激光器马达编码器109可采用大约0.25°的解析度进行操作。
[0058] IMU 102、摄像机104、激光扫描仪106和激光扫描仪马达编码器109可与计算机系统110进行数据通信,计算机系统110可以是任何计算装置,其具有一个或多个处理器134和关联存储器120、160(其具有充分处理能力以及用于执行预期测距法和/或测绘的存储器)。例如,可使用具有2.6GHz i7quad-core处理器(每个核心上2个线程以及总共8个线程)和集成GPU存储器的膝上型计算机。另外,计算机系统可具有一种或多种类型的主或动态存储器
120(例如RAM)以及一种或多种类型的辅或存储存储器160(例如硬盘或闪速ROM)。虽然以上公开了特定计算模块(IMU模块122、视觉-惯性测距法模块126和激光扫描模块132),但是应当认识到,这类模块只是具有上述功能的示范性模块,而不是限制性的。类似地,以上所公开的计算装置110的类型只是可与这类传感器配合使用并为了如本文所公开的目的的计算装置的类型的示例,而决不是限制性的。
[0059] 如图1中所示,测绘系统100结合包括以粗略到精细方式而顺序恢复运动的单独计算模块(还参见图2)的计算模型。开始于来自IMU102(IMU预测模块122)的运动预测,视觉-惯性紧密耦合的方法(视觉-惯性测距法模块126)估计运动并且本地配准激光点。然后,扫描匹配方法(扫描匹配细分模块132)进一步细分所估计的运动。扫描匹配细分模块132还配准点云数据165,以构建地图(体素图134)。地图还可由作为可选导航系统136的一部分的测绘系统来使用。可认识到,导航系统136可作为计算模块而被包含在板载计算机系统、主存储器内,或者可包括完全独立系统。
[0060] 可认识到,每个计算模块可处理来自每个传感器系统中的一个的数据。因此,IMU预测模块122根据从IMU系统102所得出的数据来产生粗略地图,视觉-惯性测距法模块126处理来自摄像机系统104的更细分数据,以及扫描匹配细分模块132处理来自激光扫描仪106和马达编码器109的最精细粒度解析度数据。另外,更精细粒度解析度模块的每个进一步处理从更粗略粒度模块所呈现的数据。视觉-惯性测距法模块126细分从IMU预测模块122所接收并且由IMU预测模块122所运算的测绘数据。类似地,扫描匹配细分模块132进一步处理由视觉惯性测距法模块126所呈现的数据。如上所公开的,传感器系统的每个以不同速率来获取数据。在一个非限制性示例中,IMU 102可以大约200Hz的速率来更新其数据获取,摄像机104可以大约50Hz的速率来更新其数据获取,以及激光扫描仪106可以大约5Hz的速率来更新其数据获取。这些速率是非限制性的,并且例如可反映相应传感器的数据获取速率。
可认识到,粗略粒度数据可以比更精细粒度数据更快的速率来获取,以及粗略粒度数据还可以比精细粒度数据更快的速率来处理。虽然以上公开了用于由各种计算模块所进行的数据获取和处理的特定频率值,但是绝对频率或者其相对频率均不是限制性的。
[0061] 测绘和/或导航数据还可被考虑为包括粗略等级数据和精细等级数据。因此,在主存储器(动态存储器120)中,粗略位置数据可被存储在体素图134(其可由计算模块122、126、132中的任一个是可访问的)中。作为可由扫描匹配细分模块132所产生的点云数据165的文件详细测绘数据可经由处理器150来存储在辅存储器160(例如硬驱动器、闪存驱动器或其它更永久存储器)中。
[0062] 不仅粗略粒度数据由计算模块用于更精细粒度计算,而且视觉-惯性测距法模块126和扫描匹配细分模块132(精细级别位置信息和测绘)能够经由相应反馈路径128和138向IMU预测模块122反馈其更细分测绘数据,作为更新IMU位置预测的基础。按照这种方式,粗略位置和测绘数据可按解析度来顺序细分,以及细分解析度数据用作更粗略解析度计算的反馈参考。
[0063] 图2描绘了三个计算模块连同其相应数据路径的框图。IMU预测模块122可接收来自IMU(102,图1)的IMU位置数据223。视觉-惯性测距法模块126可接收来自IMU预测模块122的模型数据以及来自一个或多个单独被跟踪视觉特征227a、227b(来自摄像机(104,图1))的视觉数据。激光扫描仪(106,图1)可产生与激光确定界标233a、233b相关的数据,其可被供应给扫描匹配细分模块132(除了由视觉-惯性测距法模块126所供应的位置数据外)。来自视觉-惯性测距法模块126的位置估计模型可被反馈128,以细分由IMU预测模块122所运算的位置模型。类似地,来自扫描匹配细分模块132的细分地图数据可被反馈138,以提供对由IMU预测模块122所运算的位置模型的附加校正。
[0064] 如图2中所描绘并如上所公开的,模块化测绘系统可按照粗略到细分方式来顺序恢复和细分运动相关数据。另外,每个模块的数据处理可通过向模块产生数据的每个装置的数据获取和处理速率来确定。开始于来自IMU的运动预测,视觉-惯性紧密耦合方法估计运动并且本地配准激光点。然后,扫描匹配方法进一步细分所估计运动。扫描匹配细分模块还可配准点云以构建地图。因此,测绘系统是时间优化的,以便在数据变得可用时处理每个细分阶段。
[0065] 图3示出基于从如图1中所描绘的相同传感器类型所得出的数据的标准卡尔曼滤波器模型。如图3中所示,卡尔曼滤波器模型在接收到来自传感器中的任一个的任何数据时更新位置和/或测绘数据,而不管数据的解析度能力。因此,例如,位置信息可在这种数据变得可用的任何时间使用视觉-惯性测距法数据来更新,而不管基于IMU数据的位置信息估计的状态。因此,卡尔曼滤波器模型没有利用每种类型的测量的相对解析度。图3描绘了基于用于优化位置数据的方法的标准卡尔曼滤波器的框图。卡尔曼滤波器在数据被呈现时顺序更新位置模型322a-322n。因此,开始于初始位置预测模型322a,卡尔曼滤波器可预测324a后续位置模型322b,其可基于接收IMU机械化数据323来细分。在预测步骤324a(之后接着是以单独视觉特征或激光界标为基础的更新步骤)中,位置预测模型可响应于IMU机械化数据323而被更新。
[0066] 图4描绘了基于因子图形方法的位置优化。在这种方法中,移动测绘系统在第一时间410的位姿可接收数据时被更新成在第二时间420的位姿。因子图形优化模型在每个细分运算期间组合来自所有传感器的约束。因此,IMU数据323,特征数据327a、327b,和来自摄像机的类似数据,以及激光界标数据333a、333b,以及类似数据所有用于每个更新步骤。可领会的是,这种方法由于所要求的大量数据而增加每个位置细分步骤的计算复杂度。此外,由于传感器可以独立速率(其可相差若干量级)来提供数据,所以整个细分步骤被时间界定于最慢传感器的数据获取时间。因此,这种模型可能不适合于快速实时测绘。图1和图2中所描绘的模块化系统按照粗略到精细方式来顺序恢复运动。按照这种方式,运动细分的程度通过每种类型的数据的可用性来确定。
[0067] 假设、坐标、和问题
[0068] 假设和坐标系
[0069] 如以上在图1中所描绘的,移动测绘系统的传感器系统可包括激光器106、摄像机104和IMU 102。摄像机可被建模为针孔摄像机模型,其本征参数是已知的。可校准所有三个传感器之间的外在参数。摄像机与激光器之间的相对位姿以及激光器与IMU之间的相对位姿可按照本领域已知的方法来确定。单个坐标系可用于摄像机和激光器。在一个非限制性示例中,可使用摄像机坐标系,并且所有激光点可在预处理中投射到摄像机坐标系中。在一个非限制性示例中,IMU坐标系可与摄像机坐标系平行,并且因此IMU测量可在获取时被旋转校正。坐标系可被定义如下:
[0070] 摄像机坐标系{C}可以以摄像机光学中心为原点,其中x轴指向左侧,y轴向上指,以及z轴向前指,与摄像机主轴重合;
[0071] IMU坐标系{I}可以以IMU测量中心为原点,其中x、y和z轴与{C}平行并且沿相同方向指;以及
[0072] 世界坐标系{W}可以是在起始位姿与{C}重合的坐标系。
[0073] MAP估计问题
[0074] 状态估计问题能被公式化为最大后验(MAP)估计问题。我们可定义χ={xi},i∈{1;2;...,m}作为系统状态的集合,U={ui},i∈{1;2;...,m}作为控制输入的集合,以及Z={zk},k∈{1;2;...,n}作为界标测量的集合。给定所提议的系统,Z可由视觉特征和激光界标所组成。系统的联合概率被定义如下,
[0075] 等式1
[0076] 其中,P(x0)是第一系统状态的先验,P(xi|xi-1,ui)表示运动模型,以及P(zk|xik)表示界标测量模型。对于公式化为(1)的每个问题,存在问题的对应贝叶斯信念网络表示。MAP估计将使等式1最大化。在零平均高斯噪声的假设下,问题相当于最小平方问题,[0077] 等式2
[0078] 在这里,rxi和rzk是分别与运动模型和界标测量模型关联的残差。
[0079] 求解等式2的标准方式是将所有传感器数据(例如视觉特征、激光界标和IMU测量)组合为大因子图形优化问题。所提议的数据处理流水线转而公式化多个小优化问题,并且按照粗略到精细方式来求解问题。优化问题可被重述为:
[0080] 问题:给定来自激光器、摄像机和IMU的数据,作为(2)来公式化并且求解问题以确定{C}相对于{W}的位姿,然后使用所估计的位姿来配准激光点并且在{W}中构建所穿过的环境的地图。
[0081] IMU预测子系统
[0082] IMU机械化
[0083] 这小节描述IMU预测子系统。由于系统将{C}看作是基础传感器坐标系,所以IMU还可相对于{C}来表征。如以上在标题为“假设和坐标系”的小节中所公开的,{I}和{C}是平行坐标系。ω(t)和a(t)可以是分别指示在时间t的{C}的角速率和加速度的两个3×1矢量。对应偏差可被表示为bω(t)和ba(t),以及nω(t)和na(t)是对应噪声。矢量、偏差和噪声项在{C}中被定义。另外,g可被表示为{W}中的恒定重力矢量。IMU测量项为:
[0084] 等式3
[0085] 等式4
[0086] 其中, 是从{W}到{C}的旋转矩阵,以及 是{C}与{I}之间的平移矢量。
[0087] 要注意,项 表示由于旋转中心({C}的原点)与{I}的原点不同的事实所引起的离心力。视觉-惯性导航方法的一些示例对{I}中的运动进行建模,以消除这个离心力项。在本文所公开的计算方法(其中使用具有和没有深度信息的视觉特征)中,将没有深度的特征从{C}转换到{I}不是直接的(参见下文)。因此,本文所公开的系统而是对{C}中的所有运动进行建模。实际上,摄像机和IMU相互靠近地安装,以最大地减少该项的影响。
[0088] IMU偏差可以是缓慢变化的变量。因此,最近更新的偏差用于运动整合。首先,等式3关于时间被整合。然后,结果的取向与等式4用于两次关于时间的整合,以获得从加速度数据的平移。
[0089] 偏差校正
[0090] IMU偏差校正可通过来自摄像机或者激光器的反馈(分别参见图1和图2中的128、138)来进行。每个反馈项包含对短时间量的估计的增量运动。偏差可被建模为在增量运动期间是恒定的。开始于等式3,bω(t)可通过将估计的取向与IMU整合进行比较来运算。所更新的bω(t)在又一轮整合中用来重新计算平移,其与估计的平移相比较以运算ba(t)。
[0091] 为了减少高频噪声的影响,采用保持已知数量的偏差的滑动窗口。滑动窗口中使用的偏差数量的非限制性示例可包括200至1000个偏差,其中基于200Hz IMU速率的推荐数量为400个偏差。IMU速率为100Hz的滑动窗口中的偏差数量的非限制性示例为100至500,其中典型值为200个偏差。使用来自滑动窗口的平均偏差。在这个实现中,滑动窗口的长度用作用于确定偏差的更新速率的参数。虽然用于对偏差进行建模的备选方法是本领域已知的,但是使用所公开的实现以便将IMU处理模块保持为独立且不同的模块。滑动窗口方法还可允许系统的动态重新配置。按照这种方式,IMU能够根据需要与摄像机、激光器、或者摄像机以及激光器两者所耦合。例如,如果摄像机是不起作用的,则IMU偏差可代替地仅由激光器来校正。
[0092] 视觉-惯性测距法子系统
[0093] 图5中描绘了视觉-惯性测距法子系统的系统框图。优化模块510将来自IMU预测模块520的位姿约束512连同基于具有或缺少深度信息的光学特征数据的摄像机约束515用于运动估计550。深度图配准模块545可包括具有从激光点540所获得的深度信息的被跟踪摄像机特征530的深度图配准和深度关联。深度图配准模块545还可结合从先前运算所获得的运动估计550。该方法将视觉与IMU紧密耦合。其各自分别向估计增量运动550的优化模块510提供约束512、515。同时,该方法将深度信息关联到视觉特征,作为深度图配准模块545的一部分。如果特征被定位于激光范围测量是可用的区域中,则深度从激光点来获得。否则,使用先前估计的运动序列根据三角测量来运算深度。作为最后选项,该方法还能够通过按照不同方式而公式化约束来使用没有任何深度的特征。这对没有激光范围覆盖或者不能被三角测量的那些特征成立,因为它们没有被跟踪足够长或者沿摄像机运动的方向来定位。
[0094] 摄像机约束
[0095] 视觉-惯性测距法是基于关键帧的方法。如果多于某个数量的特征丢失跟踪或者图像重叠低于某个比率,则确定535新关键帧。在这里,右上标l(l∈Z+)可指示最后的关键帧,以及c(c∈Z+并且c>k)可指示当前帧。如以上所公开的,该方法组合具有或没有深度的T特征。与在关键帧l与深度关联的特征可被表示为{Cl}中的Xl=[xl,yl,zl]。对应地,没有深度的特征而是使用归一化坐标而被表示为 要注意, 和 与等
式1中的χ和x(其表示系统状态)是不同的。在关键帧的特征可因两个原因而与深度关联:1)深度关联花费某个处理量,以及仅在关键帧计算深度关联可减少计算强度;以及2)深度图在帧c可能不可用,并且因此激光点可能没有被配准,因为配准取决于所建立的深度图。
{Cc}中的归一化特征可被表示为
[0096] 设 和 是3×3旋转矩阵以及帧1与c之间的3×1平移矢量,其中并且 和 形成SE(3)变换。帧1与c之间的运动函数可被写作
[0097] 等式5
[0098] Xc具有未知深度。设dc为深度,其中 用 代替Xc并且将等式5中的第1和第2行与第3行组合以消除dc,产生
[0099] 等式6
[0100] 等式7
[0101] R(h)和t(h)(h∈{1,2,3})是 和 的第h行。在深度对于特征是不可用的情况下,设dl是在关键帧l的未知深度。分别用 和 代替Xl和Xc,并且组合等式5中的所有三行以消除dk和dc,产生另一个约束,
[0102] 等式8
[0103] 运动估计
[0104] 要求运动估计过程510以求解组合约束的三个集合的优化问题:1)来自如在等式6-7中具有已知深度的特征;2)来自如在等式8中具有未知深度的特征;以及3)来自IMU预测
520。 可被定义为帧a与b之间的4×4变换矩阵,
[0105] 等式9
[0106] 其中, 和 是对应旋转矩阵和平移矢量。此外,设 是通过指数映射与 对应的3×1矢量,其中 归一化项θ/||θ||表示旋转的方向,并且||θ||是旋转角。每个 对应于包含摄像机的6-DOF运动的 和 的集合。
[0107] 帧1与c-1之间的所求解的运动变换(即, )可用来公式化IMU位姿约束。最后两个帧c-1与c之间的预测变换(表示为 )可从IMU机械化来获得。在帧c的预测变换被运算为,
[0108] 等式10
[0109] 设 和 是与 对应的6-DOF运动。可理解,IMU预测平移 取决于取向。作为示例,取向可确定重力矢量通过等式4中的旋转矩阵 的投影,并且因此确定所整合的加速度。 可被公式化为 的函数,并且可被改写为 可理解,由IMU预测模块122(图1和图2)所提供的200Hz位姿以及由视觉-惯性测距法模块126(图1和图2)所提供的
50Hz位姿均是位姿函数。运算 可在帧c开始,并且加速度可针对时间而被逆向整合。设 是与等式5中的 对应的旋转矢量,以及 和 是待求解的运动。约束可被表达为,
[0110] 等式11
[0111] 其中, 是相对于摄像机约束适当缩放位姿约束的相对方差矩阵。
[0112] 在视觉-惯性测距法子系统中,位姿约束满足运动模型,以及摄像机约束满足等式2中的界标测量模型。优化问题可通过使用顿梯度下降方法(其适配于离群值特征移除的稳健拟合框架)来求解。在这个问题中,状态空间包含 和 因此,全尺度MAP估计(full-scale MAP estimation)没有被执行,而是仅用来求解边缘化问题。界标位置没有被优化,并且因而仅使用状态空间中的六个未知数,由此使计算强度保持低。因此,该方法涉及激光范围测量,以便对特征提供准确深度信息,从而保证运动估计精度。因此,可能不必要通过光束平差法来进一步优化特征的深度。
[0113] 深度关联
[0114] 深度图配准模块545使用先前估计运动来配准深度图上的激光点。摄像机视场内的激光点540被保持某个时间量。深度图被向下取样以保持恒定密度,并且被存储在2D KD树中以供快速索引。在KD树中,所有激光点被投射到摄像机中心周围的单位球面上。点通过其两个角坐标来表示。在将深度关联到特征时,特征可被投射到球面上。对于每个特征,在球面上发现三个最接近的激光点。然后,其有效性可通过运算笛卡尔空间中的三个点之间的距离。如果距离大于阈值,则点来自不同物体(例如墙壁以及墙壁前面的物体)的机会较高,并且有效性校验失败。最后,假定笛卡尔空间中的局部平面片,深度从三个点来内插。
[0115] 没有激光范围覆盖的那些特征在它们被跟踪了某个距离而没有沿摄像机运动的方向被定位时可使用图像序列(其中特征被跟踪)来三角测量。在这种过程中,深度可基于贝叶斯概率模式在每帧被更新。
[0116] 扫描匹配子系统
[0117] 这个子系统还通过激光扫描匹配来细分来自先前模块的运动估计。图6描绘了扫描匹配子系统的框图。子系统接收局部点云中的激光点540,并且使用所提供的测距法估计550来配准它们620。然后,从点云来检测640几何特征并且与地图匹配。与本领域已知的许多方法相似,扫描匹配使特征到地图距离最小化。但是,测距法估计550还在优化610中提供位姿约束612。优化包括处理具有特征对应性615的位姿约束,其被发现并用激光约束617来进一步处理以产生装置位姿650。这个位姿650通过地图配准过程655来处理,其促进发现特征对应性615。实现使用地图的体素表示。此外,它能够动态配置成并行运行于一个至多个CPU线程上。
[0118] 激光约束
[0119] 当接收激光扫描时,该方法首先将来自扫描620的点配准到公共坐标系中。m,m∈Z+可被用来指示扫描数。要理解,摄像机坐标系可被用于摄像机和激光器。扫描m可在扫描开始时与摄像机坐标系关联,表示为{Cm}。为了本地配准620激光点540,来自视觉-惯性测距法的测距法估计550可被看作是关键点,并且IMU测量可被用来在关键点之间进行内插。
[0120] 设Pm是来自扫描m的本地配准的点云。来自Pm的几何特征的两个集合可被提取:锐边上的一个,即,边缘点,并被表示为εm,以及局部平坦表面上的另一个,即,平面点,并被表示为 。这通过局部扫描中的曲率的计算来进行。避免其相邻点已经被选择的点,例如被遮断区域的边界上的点以及其局部表面接近与激光束平行的点。这些点可能包含大噪声或者在传感器移动时随时间而改变位置。
[0121] 几何特征然后与所构建的当前地图匹配。设Qm-1是处理最后一个扫描之后的地图点云,Qm-1在{W}中定义。Qm-1中的点被分离为两个集合,其分别包含边缘点和平面点。体素可被用来存储在传感器周围的某个距离所截取的地图。对于每个体素,可构成两个3D KD树,一个用于边缘点而另一个用于平面点。将KD树用于单独体素加速点搜索,因为在给定查询点的情况下,与单个体素关联的特定KD树需要被搜索(参见下文)。
[0122] 当匹配扫描时,到{W}中的εm和 首先使用可用运动的最佳猜测来投射,然后对于εm和 中的每个点,从地图上的对应集合来发现最接近点的群集。为了检验点群集的几何分布,可检查关联本征值和本征矢量。具体来说,一个大本征值和两个小本征值指示边缘线段,并且两个大本征值和一个小本征值指示局部平面片。如果匹配是有效的,则公式化与从点到对应点群集的距离有关的等式,
[0123] 等式12f(Xm,θm,tm)=d,
[0124] 其中,Xm是εm或 中的点,θm、θm∈so(3)和 指示{W}中的{Cm}的6-DOF位姿。
[0125] 运动估计
[0126] 扫描匹配被公式化为优化问题610,其使通过等式12所述的总距离最小化。优化还涉及来自先前运动的位姿约束612。设Tm-1是与{W}中的{Cm-1}的位姿有关的4×4变换矩阵,Tm-1通过处理最后一个扫描来生成。设 是从{Cm-1}到{Cm}的位姿变换,如由测距法估计所提供的。与等式10相似,{W}中的{Cm}的预测位姿变换为,
[0127] 等式13
[0128] 设 和 是与 对应的6-DOF位姿,并且设∑m是相对方差矩阵。约束为,
[0129] 等式14
[0130] 等式14表示先前运动来自视觉-惯性测距法的情况,假定摄像机是起作用的。否则,约束来自IMU预测。 以及 可通过IMU机械化而被用来表示相同项。是θm的函数,因为加速度的整合取决于取向(与等式11中的 相同)。IMU位
姿约束为,
[0131] 等式15
[0132] 其中,∑′m是对应相对方差矩阵。在优化问题中,等式14和15被线性组合为约束的一个集合。线性组合通过视觉-惯性测距法的工作模式来确定。优化问题细分θm和tm,其通过适配于稳健拟合框架的牛顿梯度下降方法来求解。
[0133] 体素中的地图
[0134] 地图上的点被保持在体素中。2级体素实现如图7A和图7B中所示。Mm-1表示处理最后一个扫描之后的第一级地图700上的体素702、704的集合。传感器706周围的体素704形成子集Mm-1,表示为Sm-1。给定6-DOF传感器位姿 和 存在对应Sm-1,其随传感器在地图上移动。当传感器接近地图的边界时,边界的相对侧725上的体素被移开,以扩展地图边界730。所移动的体素中的点被清除,从而引起地图的截取。
[0135] 如图7B中所示,第二级地图750的每个体素j,jε∈Sm-1通过比第一级地图700的体素要小某个量级的体素集合(表示为 )来形成。在匹配扫描之前,εm和 中的点使用运动的最佳猜测来投射到地图上,并且将它们填充到 中。由来自εm和 的点所占用的体素708被提取以形成Qm-1,并且被存储在3D KD树中以用于扫描匹配。体素710是没有被来自εm或 的点所占用的那些体素。在扫描匹配完成时,通过地图将扫描合并到体素708中。此后,地图点被小型化以维持恒定密度。可认识到,第一级地图
700的每个体素对应于比第二级地图750的子体素更大的空间的体积。因此,第一级地图700的每个体素包括第二级地图750中的多个子体素,并且能被绘制到第二级地图750中的多个子体素上。
[0136] 如以上针对图7A和图7B所述,体素的两个级别(第一级地图700和第二级地图750)用来存储地图信息。与Mm-1对应的体素用来维持第一级地图700,并且与第二级地图750中的对应的体素用来检索传感器周围的地图以供扫描匹配。地图仅在传感器接近地图边界时被截取。因此,如果传感器在地图内部导航,则不需要截取。另一个考虑因素在于,两个KD树被用于Sm-1中的每个单独体素-一个用于边缘点而另一个用于平面点。如上所述,这种数据结构可加速点搜索。按照这种方式,避免多个KD树之间的搜索,如与将两个KD树用于 中的每个单独体素相反。后者要求更多资源以用
于KD树构建和维持。
[0137] 表1比较使用不同体素和KD树配置的CPU处理时间。时间根据从覆盖受限和开放、结构化和植被(vegetated)区域的不同类型的环境所收集的多个数据集来求平均。我们看到,仅使用一级体素Mm-1引起KD树构建和查询的大约两倍的处理时间。这是因为第二级体素帮助准确地检索地图。没有这些体素,更多点被包含在Qm-1中并被构建到KD树中。另外,通过将KD树用于每个体素,与将KD树用于Mm-1中的所有体素相比,处理时间被略微减少。
[0138] 表1.关于KD树操作的平均CPU处理时间的比较
[0139]
[0140] 并行处理
[0141] 扫描匹配涉及构建KD树和反复查找特征对应性。该过程是费时的,并且花费系统中的主要计算。虽然一个CPU线程不能保证预期的更新频率,但是多线程实现可解决复杂处理的问题。图8A示出其中两个匹配器程序812、815并行运行的情况。在接收扫描时,管理器程序810将它布置成与可用的最近地图进行匹配。在由具有多个结构和多个视觉特征的群集化环境所组成的一个示例中,匹配是慢的,并且可能在下一扫描到达之前没有完成。备选地调用两个匹配器812和815。在一个匹配器812中,Pm(813a)、Pm-2(813b)和附加Pm-k(对于k=偶数整数)(813n)分别与Qm-2(813a)、Qm-4(813a)和附加Qm-k(对于k=偶数整数)(813n)进行匹配。类似地,在第二匹配器815中,Pm+1(816a)、Pm-1(816b)和附加Pm-k(对于k=奇数整数)(816n)分别与Qm-1(816a)、Qm-3(816a)和附加Qm-k(对于k=奇数整数)(816n)进行匹配。这个交织过程的使用可提供用于处理的时间量的两倍。在由具有少数结构或视觉特征的清洁环境所组成的备选示例中,计算是轻的。在这种示例(图8B)中,可以仅调用单个匹配器820。因为不要求交织,所以Pm、Pm-1、...分别与Qm-1、Qm-2、...顺序进行匹配(参见827a、827b、827n)。实现可配置成使用最多四个线程,但是通常可能仅需要两个线程。
[0142] 变换整合
[0143] 最终运动估计是来自图2中所描绘的三个模块的输出的整合。5Hz扫描匹配输出产生最精确地图,而50Hz视觉-惯性测距法输出和200Hz IMU预测被整合以用于高频运动估计。
[0144] 关于稳健性
[0145] 系统的稳健性通过其处置传感器降级的能力来确定。IMU始终被假定为可靠的,用作系统中的主干。摄像机对急剧照明变化是敏感的,并且在昏暗/无纹理环境中或者当存在显著运动模糊时还可能故障(由此引起视觉特征跟踪的丢失)。激光器不能处置无结构环境(例如由单个平面所主导的场景)。备选地,激光数据降级由于剧烈运动而能够由数据的稀疏性所引起。
[0146] 视觉-惯性测距法和扫描匹配模块按照等式2来公式化并求解优化问题。当故障发生时,它对应于降级优化问题,即,问题的一些方向中的约束是病态的,并且噪声在确定解时主导。在一种非限制性方法中,可计算与问题关联的本征值(表示为λ1、λ2、...、λ6)和本征矢量(表示为v1、v2、...、v6)。存在六个本征值/本征矢量,因为传感器的状态空间包含6-DOF(6个自由度)。在不失一般性的情况下,v1、v2、...、v6可按照降序来分类。每个本征值描述沿其对应本征矢量的方向来调节解的良好程度。通过将本征值与阈值进行比较,良态方向可在状态空间中与降级方向分离。设h,h=0;1,...,6,是良态方向的数量。两个矩阵可被定义为:
[0147] 等式16
[0148] 当求解优化问题时,非线性迭代可开始于初始猜测。通过图2中所描绘的顺序流水线,IMU预测提供视觉-惯性测距法的初始猜测,其输出被当作是扫描匹配的初始猜测。对于附加两个模块(视觉-惯性测距法和扫描匹配模块),设x为解,以及Δx是在非线性迭代中的x的更新,其中Δx通过求解线性化系统等式来运算。在优化过程期间,不是沿所有方向来更新x,而是仅沿良态方向来更新x,从而沿降级方向保持初始猜测,
[0149] 等式17
[0150] 在等式17中,系统按照粗略到精细顺序来求出运动,开始于IMU预测,附加两个模块还尽可能多地求解/细分运动。如果问题是良态的,则细分可包括所有6-DOF。否则,如果问题仅是部分良态的,则细分可包括0至5-DOF。如果问题被完全降级,则 变为零矩阵,并且保持先前模块的输出。
[0151] 返回到等式14和15中所述的位姿约束,可理解,两个等式在扫描匹配问题中被线性组合。如等式16中所定义的,Vv和 表示包含来自视觉-惯性测距法模块的本征矢量的矩阵, 表示子系统中的良态方向,并且 表示降级方向。所组合的约束为,
[0152]
[0153] 等式18
[0154] 在摄像机起作用的正常情况下, 和等式18由如等式14中来自视觉-惯性测距法的位姿约束所组成。但是,如果摄像机数据被完全降级,则 是零矩阵,并且等式18由按照等式15来自IMU预测的位姿约束所组成。
[0155] 摄像机降级的案例研究
[0156] 如图9A中所描绘的,如果视觉特征不足以可用于视觉-惯性测距法,则IMU预测122取决于视觉-惯性测距法问题中的良态方向的数量完全或部分绕过视觉-惯性测距法模块126(924)—由虚线所表示。扫描匹配模块132则可本地配准激光点以用于扫描匹配。绕过IMU预测服从漂移。激光器反馈138仅沿摄像机反馈128不可用的方向来补偿摄像机反馈
128,从而校正IMU的速度漂移和偏差。因此,摄像机反馈由于更高频率而具有更高优先级,从而使得其在摄像机数据没有被降级时更适合。当发现充分视觉特征时,不使用激光器反馈。
[0157] 激光器降级的案例研究
[0158] 如图9B中所示,如果环境结构不足以用于扫描匹配132以细分运动估计,则视觉-惯性测距法模块126输出完全或部分绕过扫描匹配模块,以便在地图930上配准激光点,如由虚线所示。如果良态方向在扫描匹配问题中存在,则激光器反馈沿那些方向包含细分的运动估计。否则,激光器反馈变空138。
[0159] 摄像机和激光器降级的案例研究
[0160] 在更复杂的示例中,摄像机和激光器都至少在某种程度上被降级。图10描绘了这种示例。具有六行的竖条表示6-DOF位姿,其中每行是与等式16中的本征矢量对应的DOF(自由度)。在这个示例中,视觉-惯性测距法和扫描匹配各自更新运动的3-DOF,从而使另一3-DOF中的运动保持不变。IMU预测1022a-f可包括初始IMU预测值1002。视觉-惯性测距法更新1004某个3-DOF(1026c、1026e、1026f),从而产生细分的预测1026a-1026f。扫描匹配更新
1006某个3-DOF(1032b、1032d、1032f),从而产生进一步细分的预测1032a-1032f。相应地,摄像机反馈128包含摄像机更新1028a-1028f,并且激光器反馈138包含激光器更新1038a-
1038f。参照图10,没有阴影的单元(1028a、1028b、1028d、1038a、1038c、1038e)不包含来自相应模块的任何更新信息。对IMU预测模块的总更新1080a-1080f是来自摄像机反馈128的更新1028a-1028f以及来自激光器反馈138的更新1038a-1038f的组合。在其中反馈从摄像机(例如1028f)和激光器(例如1038f)可用的一个或多个自由度中,摄像机更新(例如
1028f)可优先于激光器更新(例如1038f)。
[0161] 但是,实际上,视觉-惯性测距法模块和扫描匹配模块可在不同频率运行,并且各自可具有其自己的降级方向。IMU消息可用来在来自扫描匹配输出的位姿之间进行内插。按照这种方式,可创建与视觉-惯性测距法输出进行时间对齐的增量运动。设 和 是通过帧c-1与c之间的视觉-惯性测距法所估计的6-DOF运动,其中 并且设 和 是通过时间内插之后的扫描匹配所估计的对应项。Vv和 可
以是等式16中定义的包含来自视觉-惯性测距法模块的本征矢量的矩阵,其中 表示良态方向,以及 表示降级方向。设Vs和 是来自扫描匹配模块的相同矩阵。以下等式运算所组合的反馈fC,
[0162] 等式19
[0163] 其中,fV和fs表示摄像机和激光器反馈,
[0164] 等式20
[0165] 等式21
[0166] 注意,fC仅包含状态空间的子空间中的所求解的运动。来自IMU预测的运动(即,和 )可被投射到fC的零空间,
[0167] 等式22
[0168] 和 可用来表示IMU预测运动,其通过等式3和4的整合来公式化为bω(t)和ba(t)的函数。取向 仅与bω(t)相关,但是平移
取决于bω(t)和ba(t)两者。偏差能够通过求解以下等式来运算,
[0169] 等式23
[0170] 当系统正常起作用时,fC跨越状态空间,以及等式22中的 和 为零矩阵。对应地,bω(t)和ba(t)从fC来计算。在降级情况下,IMU预测运动 和 用于运动不可求解的方向(例如图10中的所组合的反馈的白色行1080a)中。结果是,在这些方向中保持先前运算的偏差。
[0171] 实验
[0172] 采用扫描仪的测试
[0173] 测距法和测绘软件系统对两个传感器套件来进行确认。在第一传感器套件中,Velodyne LIDARTMHDL-32E激光扫描仪被附连到UI-1220SE单色摄像机和 MTi-30IMU。激光扫描仪具有360°水平FOV、40°垂直FOV,并且以5Hz自旋速率来接收0.7百万点/秒。摄像机以752×480像素的解析度、76°水平FOV和50Hz帧率来配置。IMU频率被设置在
200Hz。在第二传感器套件中,Velodyne LIDARTMVLP-16激光扫描仪被附连到相同摄像机和IMU。这个激光扫描仪具有360°水平FOV、30°垂直FOV,并且以5Hz自旋速率来接收0.3百万点/秒。两种传感器套件均被附连到交通工具(其分别在街道和越野地形行驶)以用于数据收集。
[0174] 对于两种传感器套件,跟踪了最多300个Harris角。为了均匀分布视觉特征,图像被分为5×6个相同子区域,每个子区域提供多至10个特征。当特征丢失跟踪时,生成新特征,以维持每个子区域中的特征数。
[0175] 软件在具有2.6GHz i7quad-core处理器(每个核心上2个线程并且总共8个线程)和集成GPU的膝上型计算机上、在机器人操作系统(ROS)的 系统中运行。软件的两个版本采用分别在GPU和CPU上运行的视觉特征跟踪来实现。处理时间在表2中被示出。由视觉-惯性测距法(图2中的126)所使用的时间相对于环境或传感器配置没有太多改变。对于GPU版本,它消耗以50Hz运行的CPU线程的大约25%。对于CPU版本,它花费线程的大约75%。传感器第一套件比第二传感器套件引起略多的处理时间。这是因为扫描仪接收更多点,并且程序需要更多时间来维持深度图并将深度与视觉特征关联。
[0176] 扫描匹配(图2中的132)消耗更多处理时间,其还相对于环境和传感器配置而改变。通过第一传感器套件,扫描匹配当在结构化环境中操作时花费以5Hz运行的线程的大约75%。但是在植被环境中,更多点在地图上被配准,并且程序通常消耗线程的大约135%。通过第二传感器套件,扫描仪接收更少点。扫描匹配模块132使用线程的大约50-95%,这取决于环境。与另外两个模块相比,由IMU预测(图2中的132)所使用的时间是可忽略的。
[0177] 精度测试
[0178] 进行了测试以评估所提议的系统的精度。在这些测试中,使用了第一传感器套件。传感器被安装在围绕大学校园行驶的越野交通工具上。在16分钟内行驶2.7km之后,构建了校园地图。关于测试的平均速度为2.8m/s。
[0179] 表2.使用第一和第二传感器套件的平均CPU处理时间
[0180]
[0181] 为了评估关于测试的运动估计漂移,所估计的轨迹和配准的激光点在卫星图像上被对齐。在这里,手动移除地面上的激光点。通过将轨迹与卫星图像上的街道进行匹配,确定了水平误差的上限为<1:0m。通过比较同一层的建筑,还确定了垂直误差为<2:0m。这在结束时给出总相对位置漂移为所行驶距离的<0:09%。可理解,对测量不能保证准确性,因此仅运算了位置漂移的上限。
[0182] 此外,进行了更综合的测试:将相同传感器安装在客车上。客车在结构化道路上行驶9.3km行程。路径穿过植被环境、桥梁、丘陵地形、以及具有繁忙交通的街道,并且最后返回到起始位置。海拔沿路径改变超过70m。除了等待交通灯之外,交通工具速度在测试期间处于9-18m/s之间。确定了在路径开始和结束两者处发现的建筑被配准成两个。两个配准因关于路径长度的运动估计漂移而发生。因此,第一配准对应于测试开始时的交通工具,并且第二配准对应于测试结束时的交通工具。间隙被测量为<20m,从而在结束时产生所行驶距离的<0:22%的相对位置误差。
[0183] 系统中的每个模块促成总体精度。图11描绘了精度测试中的估计轨迹,由视觉-惯性测距法系统所生成的移动传感器的轨迹的第一轨迹图绘1102使用IMU模块122和视觉-惯性测距法模块126(参见图2)。第一轨迹图绘1102中使用的配置与图9B中所描绘的相似。第二轨迹图绘1104基于将IMU预测从IMU模块122直接转发到扫描匹配模块132(参见图2),从而绕过视觉-惯性测距法。这个配置与图9A中所描绘的相似。完整流水线的第三轨迹图绘1108基于IMU模块122、视觉惯性测距法模块126和扫描匹配模块132的组合(参见图2),其具有最小漂移量。前两个配置(轨迹图绘1102和1104)的位置误差大约分别大三倍和一倍。
[0184] 第一轨迹图绘1102和第二轨迹图绘1104能够被看作是遭遇单独传感器降级时的预计系统性能。如果扫描匹配被降级(参见图9B),则系统减少到由第一轨迹图绘1102所指示的模式。如果视觉被降级(参见图9A),则系统减少到由第二轨迹图绘1104所指示的模式。如果没有传感器被降级(参见图2),则系统结合所有优化函数,从而产生轨迹图绘1108。在另一个示例中,系统可将IMU预测看作是初始猜测,但是以激光器频率(5Hz)运行。系统产生第四轨迹图绘1106。与使用与激光器直接耦合的IMU从而通过视觉-惯性测距法的第二轨迹图绘1104相比,结果的精度仅好一点。结果指示,如果用叠加在一起的所有约束来求解问题,则摄像机的功能性没有充分利用。
[0185] 系统的另一个精度测试包括以原始1x速度和加速2x速度来运行移动传感器。在以2x速度运行时,所有三个传感器的每隔一个数据帧被省略,从而引起通过测试的更剧烈运动。结果在表3中列示。在每个速度,评估了三个配置。在2x速度,与在1x速度的精度相比,视觉-惯性测距法和IMU+扫描匹配配置的精度显著减少了行驶距离的0.54%和0.38%。但是,完整流水线极少减少精度,仅减少了0.04%。结果指示摄像机和激光器相互补偿,从而保持总体精度。当运动剧烈时尤其是这样。
[0186] 表3.作为行驶距离的百分比的相对位置误差
[0187] (在1x速度的误差对应于图11中的轨迹)
[0188]配置 1x速度 2x速度
     
视觉-惯性测距法 0.93% 1.47%
IMU+扫描匹配 0.51% 0.89%
完整流水线 0.22% 0.26%
[0189] 参照图12,示出了双向信息流的示范性而非限制性实施例。如所示,包括IMU预测模块、视觉-惯性测距法模块和扫描匹配细分模块的三个模块从粗略到精细逐步地求解问题。数据处理流程由左至右分别通过三个模块,而反馈流程由右至左以校正IMU的偏差。
[0190] 参照图13a和图13b,示出了动态可重新配置系统的示范性而非限制性实施例。如图13a中所示,如果视觉特征对于视觉-惯性测距法是不充分的,则IMU预测(部分)绕过视觉-惯性测距法模块以本地配准激光点。另一方面,如图13b中所示,如果环境结构对于扫描匹配是不充分的,则视觉-惯性测距法输出(部分)绕过扫描匹配细分模块以配准地图上的激光点。
[0191] 参照图14,示出IMU偏差校正的优先级反馈的示范性而非限制性实施例。如所示,竖条表示6-DOF位姿,并且每行都是DOF。在降级情况下,开始于左边的IMU预测(其中所表示的所有六行都是“IMU”),视觉-惯性测距法在3-DOF(其中行成为所表示的“摄像机”)中更新,然后扫描匹配在另一个3-DOF(其中行变为所表示的“激光器”)中更新。摄像机和激光器反馈被组合为左边的竖条。摄像机反馈具有更高优先级-来自激光器反馈的“激光器”行仅当来自摄像机反馈的“摄像机”行不存在时才被填充。
[0192] 参照图15a和图15b,示出了地图的二层体素表示的示范性而非限制性实施例。示出了地图Mm-1上的体素(图15a中的所有体素)以及传感器Sm-1周围的体素(点填充体素)。Sm-1是Mm-1的子集。如果传感器接近地图的边界,则边界(底行)的相对侧上的体素被移开,以扩展地图边界。被移动体素中的点被清除,并且地图被截取。如图15b中所示,每个体素j(j∈Sm-1)(图15a中的点填充体素)由量级更小的体素集合 ((图15b)中的所有体素)来形成。在扫描匹配之前,激光扫描可使用运动的最佳猜测而被投射到地图上。被来自扫描的点所占用的 中的体素通过交叉阴影来标记。然后,交叉阴影体
素中的地图点被提取,并被存储在3D KD树中以用于扫描匹配。
[0193] 参照图16,示出了扫描匹配的多线程处理的示范性而非限制性实施例。如所示,管理器程序调用在独立CPU线程上运行的多个匹配器程序,并且将扫描与可用的最近地图进行匹配。图16a示出两线程情况。扫描Pm、Pm-1、...与每个匹配器上的地图Qm、Qm-1、...进行匹配,从而给定两倍处理时间量。相比之下,图16b示出一线程情况,其中Pm、Pm-1、...与Qm、Qm-1、....进行匹配。该实现是使用多至四个线程而动态可配置的。
[0194] 虽然已经仅示出和描述了本公开的几个实施例,但是对本领域技术人员将显然的是,在没有背离如以下权利要求所述的本公开的精神和范畴的情况下,可对其进行许多变更和修改。(国外和本土两者的)所有专利申请和专利以及本文所引用的所有其它发表物在法规准许的最大程度上以其整体被结合于本文中。
[0195] 本文所述的方法和系统可部分或完全通过在处理器上运行计算机软件、程序代码和/或指令的机器来部署。本公开可被实现为机器上的方法、被实现为作为机器的一部分或与其有关的系统或设备、或被实现为在一个或多个机器上运行的计算机可读介质中实施的计算机程序产品。在实施例中,处理器可以是服务器、云服务器、客户端、网络基础设施、移动计算平台、固定计算平台、或其它计算平台的一部分。处理器可以是能够运行程序指令、代码、二进制指令等的任何种类的计算或处理装置。处理器可以是或者可包括信号处理器、数字处理器、嵌入式处理器、微处理器、或者任何变体,例如协处理器(数学协处理器、图形协处理器、通信协处理器等)等,其可直接或间接促进存储于其上的程序代码或程序指令的运行。另外,处理器可以能够实现多个程序、线程、和代码的运行。线程可被同时运行,以增强处理器的性能,并促进应用的同时操作。作为实现,本文所述的方法、程序代码、程序指令等可在一个或多个线程中实现。线程可产生其它线程(可具有与其关联的所指配优先级);处理器可基于优先级或者根据程序代码中提供的指令的任何其它顺序来运行这些线程。处理器或者利用处理器的任何机器可包括非暂态存储器,其存储如本文或其它地方所述的方法、代码、指令和程序。处理器可通过接口来访问非暂态存储介质,其可存储如本文和其它地方所述的方法、代码和指令。与处理器关联的用于存储方法、程序、代码、程序指令或其它类型的指令(其能够由计算或处理装置所运行)的存储介质可包括但不限于CD-ROM、DVD、存储器、硬盘、闪存驱动器、RAM、ROM、高速缓存等中的一个或多个。
[0196] 处理器可包括一个或多个核心,其可增强多处理器的速度和性能。在实施例中,处理器可以是双核处理器、四核处理器、其它芯片级多处理器等,其组合两个或更多单独核心(称作管芯)。
[0197] 本文所述的方法和系统可部分或完全通过机器(其在服务器、客户端、防火墙、网关、集线器、路由器或其它此类计算机和/或联网硬件上运行计算机软件)来部署。软件程序可与服务器(其可包括文件服务器、打印服务器、域服务器、互联网服务器、内联网服务器、云服务器和其它变体(例如辅助服务器、主机服务器、分布式服务器等))关联。服务器可包括存储器、处理器、计算机可读介质、存储介质、端口(物理和虚拟)、通信装置、和接口(其能够通过有线或无线介质来访问其它服务器、客户端、机器和装置)等中的一个或多个。如本文和其它地方所述的方法、程序或代码可由服务器来运行。另外,如本申请所述的对于方法的运行所要求的其它装置可被认为是与服务器关联的基础设施的一部分。
[0198] 服务器可提供到其它装置(非限制性地包括客户端、其它服务器、打印机数据库服务器、打印服务器、文件服务器、通信服务器、分布式服务器、社交网络等)的接口。另外,这个耦合和/或连接可促进程序跨网络的远程运行。在没有背离本公开的范畴的情况下,一些或所有这些装置的联网可促进程序或方法在一个或多个位置的并行处理。另外,通过接口而被附连到服务器的装置中的任一个可包括至少一个存储介质,其能够存储方法、程序、代码和/或指令。中央资料库可提供要在不同装置上运行的程序指令。在这个实现中,远程资料库可充当程序代码、指令和程序的存储介质。
[0199] 软件程序可与客户端(其可包括文件客户端、打印客户端、域客户端、互联网客户端、内联网客户端和其它变体(例如辅助客户端、主机客户端、分布式客户端等))关联。客户端可包括存储器、处理器、计算机可读介质、存储介质、端口(物理和虚拟)、通信装置、和接口(其能够通过有线或无线介质来访问其它客户端、服务器、机器和装置)等中的一个或多个。如本文和其它地方所述的方法、程序或代码可由客户端来运行。另外,如本申请所述的对于方法的运行所要求的其它装置可被认为是与客户端关联的基础设施的一部分。
[0200] 客户端可提供到其它装置(非限制性地包括服务器、其它客户端、打印机、数据库服务器、打印服务器、文件服务器、通信服务器、分布式服务器等)的接口。另外,这个耦合和/或连接可促进程序跨网络的远程执行。在没有背离本公开的范畴的情况下,一些或所有这些装置的联网可促进程序或方法在一个或多个位置的并行处理。另外,通过接口而被附连到客户端的装置中的任一个可包括至少一个存储介质,其能够存储方法、程序、应用、代码和/或指令。中央资料库可提供要在不同装置上运行的程序指令。在这个实现中,远程资料库可充当程序代码、指令和程序的存储介质。
[0201] 本文所述的方法和系统可部分或完全通过网络基础设施来部署。网络基础设施可包括元件,例如本领域已知的计算装置、服务器、路由器、集线器、防火墙、客户端、个人计算机、通信装置、路由装置以及其它有源和无源装置、模块和/或组件。除了其它组件之外,与网络基础设施关联的(一个或多个)计算和/或非计算装置还可包括存储介质,例如闪速存储器、缓冲器、栈、RAM、ROM等。本文和其它地方所述的过程、方法、程序代码、指令可由网络基础设施元件的一个或多个来运行。本文所述的方法和系统可被适配于与任何种类的私有、社区、或混合云计算网络或云计算环境(包括涉及软件即服务(SaaS)、平台即服务(PaaS)和/或基础设施即服务(IaaS)的特征的那些)配合使用。
[0202] 本文和其它地方所述的方法、程序代码和指令可在蜂窝网络(其具有发送方控制联络媒体内容项(haa sender-controlled contact media content item)多个小区)上实现。蜂窝网络可以是频分多址(FDMA)网络或码分多址(CDMA)网络。蜂窝网络可包括移动装置、小区站点、基站、转发器、天线、塔等。蜂窝网络可以是GSM、GPRS、3G、EVDO、网格或其它网络类型。
[0203] 本文和其它地方所述的方法、程序代码和指令可在移动装置上或者通过移动装置来实现。移动装置可包括导航装置、蜂窝电话、移动电话、移动个人数字助理、膝上型计算机、掌上型计算机、上网本、寻呼机、电子书阅读器、音乐播放器等。除了其它组件之外,这些装置还可包括存储介质,例如闪速存储器、缓冲器、RAM、ROM和一个或多个计算装置。可使得与移动装置关联的计算装置能够运行存储于其上的程序代码、方法和指令。备选地,移动装置可配置成与其它装置协作来运行指令。移动装置可与基站(其与服务器进行接口并配置成运行程序代码)进行通信。移动装置可在对等网络、网格网络或其它通信网络上进行通信。程序代码可被存储在与服务器关联的存储介质上,并且由嵌入在服务器内的计算装置来运行。基站可包括计算装置和存储介质。存储装置可存储由与基站关联的计算装置所运行的程序代码和指令。
[0204] 计算机软件、程序代码和/或指令可在机器可读介质上存储和/或访问,所述机器可读介质可包括:计算机组件、装置和记录介质,其在某个时间间隔内保留用于计算的数字数据;半导体存储装置,称作随机存取存储器(RAM);通常用于更永久存储的海量存储装置,例如光盘、磁存储装置形式(例如硬盘、磁带、磁鼓、卡和其它类型);处理器寄存器、高速缓冲存储器、易失性存储器、非易失性存储器;光学存储装置,例如CD、DVD;可移除介质,例如闪速存储器(例如USB棒或USB密钥)、软盘、磁带、纸带、穿孔卡、独立RAM盘、Zip驱动器,可移除海量存储装置、离线装置等;其它计算机存储器,例如动态存储器、静态存储器、读/写存储装置、可变存储装置、只读、随机存取、顺序访问、位置可寻址、文件可寻址、内容可寻址、网络附连存储装置、存储区域网络、条形码磁性墨水等。
[0205] 本文所述的方法和系统可将物理和/或无形项从一种状态变换成另一种状态。本文所述的方法和系统可将表示物理和/或无形项的数据从一种状态变换成另一种状态。
[0206] 本文所述和所描绘的元件(包括贯穿附图的流程图和框图)暗示元件之间的逻辑边界。但是,按照软件或硬件工程实践,所描绘的元件及其功能可在机器上通过计算机可执行介质(其具有发送方控制联络媒体内容项)、能够运行其上存储的程序指令的处理器来实现为单片软件结构、实现为独立软件模块、或者实现为采用外部例程、代码、服务等的模块、或者这些的任何组合,并且所有这类实现可在本公开的范畴之内。这类机器的示例可包括但不限于个人数字助理、膝上型计算机、个人计算机、移动电话、其它手持计算装置、医疗设备、有线或无线通信装置、换能器、芯片、计算器、卫星、平板PC、电子书、小配件、电子装置、具有发送方控制联络媒体内容项人工智能的装置、计算装置、网络设备、服务器、路由器等。此外,流程图和框图中所描绘的元件或者任何其它逻辑组件可在能够运行程序指令的机器上实现。因此,虽然以上附图和描述阐述所公开系统的功能方面,但是用于实现这些功能方面的软件的特定布置不应当从这些描述来推断,除非另加明确说明或者通过上下文显而易见。类似地,将会领会,以上所标识和描述的各种步骤可改变,并且步骤的顺序可被适配于本文所公开技术的特定应用。预计所有这类变更和修改落入本公开的范畴之内。因此,各种步骤的顺序的描绘和/或描述不应当被理解为要求那些步骤的特定运行顺序,除非被特定应用所要求或者另加明确说明或者通过上下文显而易见。
[0207] 上述方法和/或过程以及与其关联的步骤可采用适合于特定应用的硬件、软件或者硬件和软件的任何组合来实现。硬件可包括通用计算机和/或专用计算装置或特定计算装置或特定计算装置的具体方面或组件。过程可在一个或多个微处理器、微控制器、嵌入式微控制器、可编程数字信号处理器或其它可编程装置中连同内部和/或外部存储器来实现。或替代地,过程可还被实施在专用集成电路、可编程门阵列、可编程阵列逻辑或者可配置成处理电子信号的任何其它装置或者装置的组合中。还将会领会,过程的一个或多个可被实现为能够在机器可读介质上运行的计算机可执行代码。
[0208] 可使用结构化编程语言来创建计算机可执行代码,所述结构化编程语言是例如C、面向对象的编程语言(例如C++)或者任何其它高级或低级编程语言(包括汇编语言、硬件描述语言和数据库编程语言及技术),其可被存储、编译或解译以便在上述装置其中之一以及处理器、处理器架构或者不同硬件和软件的组合或者能够运行程序指令的任何其它机器的异构组合上运行。
[0209] 因此,在一个方面,上述方法及其组合可被实施在计算机可执行代码中,所述计算机可执行代码当在一个或多个计算装置上运行时执行其步骤。在另一方面,方法可被实施在执行其步骤的系统中,并且可按照多种方式跨装置来分布,或者所有功能性可被集成到专用独立装置或其它硬件中。在另一方面,用于执行与上述过程关联的步骤的部件可包括上述硬件和/或软件中的任一个。预计所有这类置换和组合落入本公开的范畴之内。
[0210] 虽然已结合详细示出和描述的优选实施例公开了本公开,但是对其的各种修改和改进将对本领域的技术人员变得显而易见。相应地,本公开的精神和范畴不是要被上述示例所限制,而是要在法规允许的最广泛意义上来理解。
[0211] 在描述本公开的上下文中(特别是在以下权利要求的上下文中)术语“一(a和an)”和“所述”和类似对象的使用将被直译为涵盖单数和复数两者,除非本文另加指示或者上下文明显矛盾。术语“包括”、“具有发送方控制联络媒体内容项”、“包含”和“含有”要被直译为开放式术语(即,表示“包括但不限于”),除非另加注释。本文中值的范围的叙述只是意在用作单独表示落入该范围之内的每个独立值的简写方法,除非本文中另加指示,并且将每个独立值结合到本说明书中,好像它本文中被单独叙述过一样。本文所述的所有方法能够按照任何适当顺序来执行,除非本文另加指示或者上下文明显矛盾。本文所提供的任一和所有示例或示范性语言(例如,“诸如”)的使用指示意在更好地阐释本公开,而不是对本公开的范畴施加限制,除非另加要求。本说明书中的语言不应当被直译为将任何未要求保护的元件指示为对本公开的实践是必要的。
[0212] 虽然以上书面描述使得技术人员能够利用和使用当前认为是其最佳模式的方面,但是技术人员将理解和领会本文中的具体实施例、方法和示例的变更、组合和等效方面的存在。因此,本公开不应当受到上述实施例、方法和示例所限制,而是通过本公开的范畴和精神之内的所有实施例和方法所限制。
[0213] 由此通过引用将本文所引用的所有文献结合于此。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈