首页 / 专利库 / 人工智能 / 即时定位与地图构建 / 信息处理方法和装置

信息处理方法和装置

阅读:146发布:2020-08-23

专利汇可以提供信息处理方法和装置专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种信息处理方法和装置。所述信息处理方法应用于一个或者多个可移动 电子 设备,所述可移动电子设备被用于未知环境的即时 定位 与地图构建。所述方法包括:在所述未知环境的 即时定位与地图构建 时创建n个级别,其中n≥2;在第i级别中过滤多个 节点 所包含的重复的特征信息,其中1≤i≤n;将所述多个节点规约为单一节点。因此,在本发明中,这种多级别SLAM的 算法 结构使得SLAM的流程可以在多个级别之间被分布式地处理,大大 加速 了全局地图的融合速度。,下面是信息处理方法和装置专利的具体信息内容。

1.一种信息处理方法,应用于一个或者多个可移动电子设备,所述可移动电子设备被用于未知环境的即时定位与地图构建,其特征在于,所述方法包括:
在所述未知环境的即时定位与地图构建时创建n个级别,其中n≥2;
在第i级别中过滤多个节点所包含的重复的特征信息,其中1≤i≤n;
将所述多个节点规约为单一节点。
2.根据权利要求1的方法,其特征在于,在所述将所述多个节点规约为单一节点的步骤之后,所述方法还包括:
将当前的单一节点作为第一场景节点并且将先前的单一节点作为第二场景节点;
判断所述第一场景节点和所述第二场景节点是否是在空间上连续的节点;
如果是,则利用第一阈值来对所述第一场景节点和所述第二场景节点进行局部地图构建;
否则,则利用第二阈值来对所述第一场景节点和所述第二场景节点进行局部地图构建,
其中所述第一阈值低于所述第二阈值。
3.根据权利要求2的方法,其特征在于,所述在第i级别中过滤多个节点所包含的重复的特征信息的步骤包括:
当1提取在所述第一场景中包括的所有节点的特征信息;
计算所述特征信息的局部坐标和全局坐标;
将所述特征信息和相应的局部坐标放置在局部集合中;
将所述特征信息和相应的全局坐标放置在全局集合中;
通过根据空间坐标去除重复的特征信息来对所述全局集合中的特征信息进行过滤;以及
根据过滤后的所述全局集合中的特征信息,来相应地更新所述局部集合中的特征信息。
4.根据权利要求3的方法,其特征在于,所述将所述多个节点规约为单一节点的步骤包括:
生成包括过滤后的特征信息的单一节点。
5.根据权利要求4的方法,其特征在于,所述方法还包括:
从所述局部集合中提取在所述第一场景中最初的预定数目个节点的特征信息;
将所述最初的预定数目个节点的特征信息放置在首部集合中;
从所述局部集合中提取在所述第一场景中最后的预定数目个节点的特征信息;
将所述最后的预定数目个节点的特征信息放置在尾部集合中。
6.根据权利要求5的方法,其特征在于,所述将当前的单一节点作为第一场景节点并且将先前的单一节点作为第二场景节点的步骤包括:
在所述生成包括过滤后的特征信息的单一节点的步骤之后,将所述单一节点加入到场景图形中,作为所述第一场景节点;
将所述场景图形中的在所述第一场景节点之前加入的单一节点作为所述第二场景节点。
7.根据权利要求6的方法,其特征在于,所述利用第一阈值来对所述第一场景节点和所述第二场景节点进行局部地图构建的步骤包括:
利用所述第一场景节点的首部集合与所述第二场景节点的尾部集合进行配准;
计算第一转换矩阵;
通过所述第一转换矩阵来对所述第一场景节点和所述第二场景节点进行局部地图构建。
8.根据权利要求6的方法,其特征在于,所述利用第二阈值来对所述第一场景节点和所述第二场景节点进行局部地图构建的步骤包括:
利用所述第一场景节点的局部集合与所述第二场景节点的局部集合进行配准;
计算第二转换矩阵;
通过所述第二转换矩阵来对所述第一场景节点和所述第二场景节点进行局部地图构建。
9.一种信息处理装置,应用于一个或者多个可移动电子设备,所述可移动电子设备被用于未知环境的即时定位与地图构建,其特征在于,所述装置包括:
级别创建单元,用于在所述未知环境的即时定位与地图构建时创建n个级别,其中n≥2;
特征过滤单元,用于在第i级别中过滤多个节点所包含的重复的特征信息,其中
1≤i≤n;
节点规约单元,用于将所述多个节点规约为单一节点。
10.根据权利要求9的装置,其特征在于,所述装置还包括:
地图构建单元,用于在所述节点规约单元将所述多个节点规约为单一节点之后,将当前的单一节点作为第一场景节点并且将先前的单一节点作为第二场景节点;判断所述第一场景节点和所述第二场景节点是否是在空间上连续的节点;如果是,则利用第一阈值来对所述第一场景节点和所述第二场景节点进行局部地图构建;否则,则利用第二阈值来对所述第一场景节点和所述第二场景节点进行局部地图构建,
其中所述第一阈值低于所述第二阈值。
11.根据权利要求10的装置,其特征在于,当112.根据权利要求11的装置,其特征在于,所述节点规约单元生成包括所述特征过滤单元过滤后的特征信息的单一节点。
13.根据权利要求12的装置,其特征在于,所述装置还包括:
首尾集合生成单元,用于从所述局部集合中提取在所述第一场景中最初的预定数目个节点的特征信息;将所述最初的预定数目个节点的特征信息放置在首部集合中;从所述局部集合中提取在所述第一场景中最后的预定数目个节点的特征信息;将所述最后的预定数目个节点的特征信息放置在尾部集合中。
14.根据权利要求13的装置,其特征在于,在所述节点规约单元生成包括所述特征过滤单元过滤后的特征信息的单一节点之后,所述地图构建单元将所述单一节点加入到场景图形中,作为所述第一场景节点;将所述场景图形中的在所述第一场景节点之前加入的单一节点作为所述第二场景节点。
15.根据权利要求14的装置,其特征在于,所述地图构建单元利用所述第一场景节点的首部集合与所述第二场景节点的尾部集合进行配准;计算第一转换矩阵;通过所述第一转换矩阵来对所述第一场景节点和所述第二场景节点进行局部地图构建。
16.根据权利要求14的装置,其特征在于,所述地图构建单元利用所述第一场景节点的局部集合与所述第二场景节点的局部集合进行配准;计算第二转换矩阵;通过所述第二转换矩阵来对所述第一场景节点和所述第二场景节点进行局部地图构建。

说明书全文

信息处理方法和装置

技术领域

[0001] 本发明涉及计算机技术领域,更具体地,本发明涉及一种信息处理方法和装置。

背景技术

[0002] 即时定位与地图构建(Simultaneous Localization and Mapping,SLAM)是目前在机器人定位方面的热研究课题。所谓SLAM就是将可移动电子设备(例如,移动机器人)定位与环境地图创建融为一体,即机器人在运动过程中根据自身位姿估计和传感器对环境的感知构建增量式环境地图,同时利用该地图实现自身的定位。
[0003] 当机器人长时间运行以进行SLAM时,所经历的场景规模不断扩大,SLAM的执行开销将会变得不可接受,最终不能满足实时SLAM的要求,其核心问题是在大规模场景中如何实现实时SLAM的问题。
[0004] 现有的第一解决方案根据地理空间将大规模场景划分为多个小规模子场景,对每个子场景进行实时SLAM,最终将SLAM生成的多个子场景合并为全局大规模场景。
[0005] 然而,在这种方式中,随着子场景的切换,SLAM将完全重新开始,两个相续的SLAM所构建出的子场景地图会产生较大的偏差,严重影响最终全局地图的准确度。
[0006] 因而,人们进一步想到可以通过将上述第一解决方案与进行多场景切换的方式相结合的第二解决方案来实现实时SLAM。
[0007] 然而,由于大量冗余(overlapping)的特征信息与地图信息,导致了匹配大量包含重复信息的小规模场景也变得非常困难且缓慢。而且,当在环境地图中出现环路的时候,需要快速的识别并且与之前的场景进行配准,从而得到一致的全局地图。
[0008] 针对以上问题,现有技术中,进一步的第三解决方案是在现有的SLAM流程上再增加一个级别(level)的SLAM流程,即两个级别的SLAM流程,用来实现全局地图的环路检测和地图融合。
[0009] 但是,随着高级别(high level)SLAM过程中节点信息不断增加,必然也会导致其冗余的特征信息与地图信息增多,从而使高级别的融合过程匹配误差增多,速度缓慢,进而严重影响最终全局地图的准确度。

发明内容

[0010] 为了解决上述技术问题,根据本发明的一个方面,提供了一种信息处理方法,应用于一个或者多个可移动电子设备,所述可移动电子设备被用于未知环境的即时定位与地图构建,其特征在于,所述方法包括:在所述未知环境的即时定位与地图构建时创建n个级别,其中n≥2;在第i级别中过滤多个节点所包含的重复的特征信息,其中1≤i≤n;将所述多个节点规约为单一节点。
[0011] 此外,根据本发明的另一方面,提供了一种信息处理装置,应用于一个或者多个可移动电子设备,所述可移动电子设备被用于未知环境的即时定位与地图构建,其特征在于,所述装置包括:级别创建单元,用于在所述未知环境的即时定位与地图构建时创建n个级别,其中n≥2;特征过滤单元,用于在第i级别中过滤多个节点所包含的重复的特征信息,其中1≤i≤n;节点规约单元,用于将所述多个节点规约为单一节点。
[0012] 与现有技术相比,采用根据本发明的信息处理方法和装置,在机器人对未知环境执行即时定位与地图构建时,创建多个级别(level)的SLAM算法结构,在每一个级别中对其中各个节点所包含的冗余的特征点信息和地图信息进行过滤,并将过滤后的多个节点规约为单一节点。因此,在本发明中,这种多级别SLAM的算法结构使得SLAM的流程可以在多个级别之间被分布式地处理,大大加速了全局地图的融合速度。
[0013] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

[0014] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0015] 图1a和1b图示了根据现有技术的解决方案的原理。
[0016] 图2图示了根据本发明的信息处理方法。
[0017] 图3图示了根据本发明的信息处理装置。
[0018] 图4图示了根据本发明实施例的信息处理方法的原理。
[0019] 图5图示了根据本发明实施例的信息处理装置。
[0020] 图6图示了根据本发明实施例的第1级别中的信息处理方法。
[0021] 图7图示了根据本发明实施例的中间级别中的信息处理方法。
[0022] 图8图示了根据本发明实施例的第n级别中的信息处理方法。
[0023] 图9图示了根据本发明另一实施例的信息处理方法。
[0024] 图10图示了根据本发明另一实施例的信息处理装置。
[0025] 图11图示了根据现有技术的第三解决方案所生成的地图的效果模型。
[0026] 图12图示了根据本发明实施例所生成的地图的效果模型。
[0027] 图13图示了根据本发明另一实施例的信息处理方法所生成的地图的效果模型。

具体实施方式

[0028] 将参照附图详细描述根据本发明的各个实施例。这里,需要注意的是,在附图中,将相同的附图标记赋予基本上具有相同或类似结构和功能的组成部分,并且将省略关于它们的重复描述。
[0029] 首先,将参考图1a和1b来描述根据现有技术的解决方案的原理。
[0030] 图1a和1b图示了根据现有技术的解决方案的原理。
[0031] 在现有技术中,为了构建未知环境的环境地图,可移动电子设备(例如,移动机器人)在未知环境中不断进行运动,获得各个位置点#1、#2、#2’、#3、#3’、#4和#4’等的图像观测数据、位置信息和姿态信息,判断这些数据信息是否对于描述该未知环境是否是有效的,并且利用有效的数据信息(例如,#1、#2、#3和#4等)来进行SLAM,从而获得机器人所经过的轨迹x1、x2和x3等,并最终获得该环境地图。
[0032] 当未知环境具有大规模场景时,为了减少在大规模场景中的执行开销,第一解决方案提出将整个大规模场景划分为多个小规模子场景M1、M2和M3等,在机器人上对每个子场景独立进行SLAM,例如,在关于第一个子场景的SLAM操作执行完毕之后,将关于该第一子场景的子地图上传到服务器上,并且从机器人上删除相关的数据信息,然后在机器人上重新开始第二个子场景的SLAM操作,并最终在服务器上将多个子地图拼凑为关于未知环境的全局地图,如图1a所图示的。
[0033] 为了减小第一解决方案导致的两个连续子场景地图之间的偏差问题,第二解决方案提出在第一个子场景的SLAM操作尚未结束时,便开始启动第二个子场景的SLAM操作,从而生成包含冗余数据(例如,在子场景M1和M2之间冗余的位置点#2处的数据信息、在子场景M2和M3之间冗余的位置点#3处的数据信息等)的子地图,这些冗余数据能够提高子地图的精度,有效降低子场景切换所带来的地图误差,同时将减少合并全局地图的偏差。
[0034] 进一步地,为了解决在第二解决方案中由于大量包含重复信息而导致匹配小规模场景也变得非常困难的难题,并且为了识别环境地图中出现的环路,第三解决方案(也称为混合级别SLAM原理(Hybrid level SLAM Principal))提出:在该移动机器人执行未知环境的SLAM时创建两个级别,即局部级别(local level)和全局级别(global level),在低级别(即,局部级别)中实现第二解决方案,并且在高级别(即,全局级别)中实现全局地图的环路检测和地图融合,如图1a和1b所图示的。
[0035] 尽管第三解决方案解决了现有技术中的很多问题,但是随着SLAM过程的不断延续,全局级别SLAM过程中的节点信息也会不断增加,从而必然导致视觉引导的(Visual-Guided)SLAM将会生成大量相同的特征,并最终造成大量的误匹配。
[0036] 对此,本发明人提出了一种新型的信息处理方法和装置。
[0037] 在下文中,将参考图2和3来描述根据本发明的信息处理方法和装置。
[0038] 图2图示了根据本发明的信息处理方法,而图3图示了根据本发明的信息处理装置。
[0039] 图2所图示的信息处理方法应用于一个或者多个可移动电子设备,所述可移动电子设备被用于未知环境的即时定位与地图构建。并且,所述信息处理方法通过图3所图示的信息处理装置来实现。具体地,所述信息处理装置100包括:级别创建单元110、特征过滤单元120和节点规约单元130。
[0040] 如图2所图示的,所述信息处理方法包括:
[0041] 在步骤S110中,级别创建单元110在所述未知环境的即时定位与地图构建时创建n个级别,其中n≥2;
[0042] 在步骤S120中,特征过滤单元120在第i级别中过滤多个节点所包含的重复的特征信息,其中1≤i≤n;
[0043] 在步骤S130中,节点规约单元130将所述多个节点规约为单一节点。
[0044] 由此可见,采用根据本发明的信息处理方法和装置,在机器人对未知环境执行即时定位与地图构建时,创建多个级别(level)的SLAM算法结构,在每一个级别中对其中各个节点所包含的冗余的特征点信息和地图信息进行过滤,并将过滤后的多个节点规约为单一节点。因此,在本发明中,这种多级别SLAM的算法结构使得SLAM的流程可以在多个级别之间被分布式地处理,大大加速了全局地图的融合速度。
[0045] 在下文中,将参考图4到图5来描述根据本发明实施例的信息处理方法和装置。
[0046] 图4图示了根据本发明实施例的信息处理方法的原理,而图5图示了根据本发明实施例的信息处理装置。
[0047] 图4所图示的根据本发明实施例的信息处理方法可以应用于图5所图示的信息处理装置100。如图5所图示的,该信息处理装置100包括:级别创建单元110、特征过滤单元120和节点规约单元130。此外,优选地,该信息处理装置100还包括:场景创建单元140、节点获取单元150、地图构建单元160、节点添加单元170和处理单元180。
[0048] 如图2、图4和图5所图示的,在根据本发明实施例的信息处理方法中,当可移动电子设备(例如,移动机器人)被用于未知环境的即时定位与地图构建时,级别创建单元110首先根据用户设置来创建n个级别,其中n≥2。
[0049] 对于第i级别而言,其中1≤i≤n,场景创建单元140在第i级别中创建第i场景,节点获取单元150从第i-1级别中或者通过在机器人上装备的摄像头来逐一地获得特征点信息和地图信息,地图构建单元160根据这些信息来进行SLAM矫正,创建关于该场景的局部地图。并且,当判断出当前节点有效时,节点添加单元170将其添加为有效的历史节点。然后,当在第i级别中节点获取单元150所获得的节点增加到一定的个数时,即当第i级别中的节点包含的特征的信息和地图信息过多时,特征过滤单元120对所述节点中相同的特征点信息和地图信息进行过滤,并且节点规约单元130将过滤后的多个节点规约为单一节点。最后,处理单元180将该单一节点传送到第i+1级别,并且在第i级别中的过滤后的所述多个节点之中,仅仅保留最后预定数目个节点,删除其他节点,以便继续进行第i级别的即时定位与地图构建。
[0050] 递推地,在与第i级别并行进行的第i+1级别中,节点获取单元150不断地从第i级别中获得规约后的单一节点,并且创建关于第i+1级别的局部地图。同理,当其中的节点信息超过一定阈值时,将特征过滤单元120和节点规约单元130对其进行过滤并规约到第i+2级别的节点信息中,如此反复,直到最终在第n级别中的节点将保存着不带任何冗余数据的全部特征信息和地图信息,即形成了包含关于整个未知环境信息的最终节点。
[0051] 下面,将参考图5以及图6到图8来详细地描述根据本发明实施例的第i级别中的信息处理方法,其中1≤i≤n。
[0052] 首先,将参考图6来描述根据本发明实施例的第1级别中的信息处理方法。
[0053] 图6图示了根据本发明实施例的第1级别中的信息处理方法。
[0054] 如图6所图示的,根据本发明实施例的第1级别(即,i=1)中的信息处理方法利用双图形结构的SLAM方法来实现,该双图形结构的SLAM方法的原理在于:在一个场景SLAM尚未结束时便开始启动下一个场景SLAM,即,执行双图形SLAM(Duo-Graph SLAM)。因此,在基于场景的SLAM进行切换的过渡期,将会有两个相互独立的场景同时在进行SLAM。
[0055] 具体地,第1级别中的信息处理方法包括:
[0056] 在步骤S200中,该方法开始执行。
[0057] 当人们需要对一未知环境构建地图时,移动机器人被用于进行未知环境的SLAM。这时,级别创建单元110首先根据用户设置来创建n个级别,其中n是自然数,并且n≥2。
然后,级别创建单元110通知场景创建单元140开始在第1级别中创建该未知环境的SLAM图形结构,即第1场景。
[0058] 在步骤S205中,获取一观测数据。
[0059] 具体地,场景创建单元140在第1级别中创建第1场景。由于在第1级别中使用双图形SLAM的技术方案,即,第1场景实际上包括两个连续的场景,所以为了区分,将在第1场景中包括的两个场景分别称为第一子场景和第二子场景。
[0060] 故此,场景创建单元140首先创建第1场景的第一子场景。然后,随着移动机器人在未知环境中进行移动和拍摄,信息处理装置100获得在各个位置点的图像观测数据、机器人自身位置信息和姿态信息。具体地,节点获取单元150在所创建的第1级别的第一子场景中逐帧地获取上述数据信息。例如,它首先获取第一帧观测数据,作为第一子场景的第一节点N101。该第一帧观测数据可以包括移动机器人在第一位置点的图像观测数据、机器人自身位置信息和姿态信息等等。
[0061] 在步骤S210中,根据当前帧和第一子场景的有效历史帧进行局部地图构建。
[0062] 具体地,在节点获取单元150获取到第一帧观测数据之后,地图构建单元160执行操作,以便对在第一子场景中包括的当前节点和历史节点进行局部地图构建。由于此时在第一子场景中仅仅包括第一节点N101,所以地图构建单元160对该第一节点N101单独地进行局部地图构建。
[0063] 在步骤S215中,判断是否满足第一预定条件。
[0064] 具体地,节点添加单元170在地图构建单元160对在第一子场景中包括的当前节点和历史节点进行局部地图构建之后,判断当前是否满足第一预定条件。例如,这里的第一预定条件是指当前帧的特征点足够多,并且根据当前帧和第一子场景的有效历史帧进行的局部地图构建成功。
[0065] 当节点添加单元170判断出所述当前节点的特征信息足够多、并且对在第一子场景中包括的当前节点和历史节点进行局部地图构建成功时,该方法进行到步骤S220。另一方面,如果在步骤S215中确定当前帧不满足第一预定条件,则该方法返回到步骤S205,以重新获取一帧观测数据,例如第二帧观测数据。
[0066] 在步骤S220中,将当前帧加为第一子场景的有效历史帧。
[0067] 具体地,节点添加单元170将节点获取单元150获取到的第一帧观测数据,即第一节点N101,添加为有效的历史节点。
[0068] 在步骤S225中,判断是否满足第二预定条件。
[0069] 接下来,场景创建单元140判断第一子场景是否满足第二预定条件。这里的第二预定条件为由于所述可移动电子设备的硬件配置限制,除非清空所述数据,否则所述可移动电子设备无法再继续进行SLAM。
[0070] 具体地,场景创建单元140例如可以判断在第一子场景中包括的当前节点和历史节点的总数目是否大于或等于第一阈值。如果满足此判断条件,则该方法进行到步骤S230;否则,该方法返回到步骤S205。
[0071] 这里,假设第一阈值是6。由于此时在第一子场景中包括的节点仅仅是第一节点N101,即节点的总数目仅仅为1,所以并不满足第二预定条件,于是该方法返回到步骤S205,以重新获取一帧观测数据,例如第二帧观测数据。
[0072] 如此反复,一直到节点获取单元150获取到第六帧观测数据,作为第一子场景的第六节点N106。这时,地图构建单元160对在第一子场景中包括的当前节点(即,第六节点N106)和历史节点(即,第一节点N101到第五节点N105)进行局部地图构建。如果满足第一预定条件,则节点添加单元170将第六节点N106添加到为第一子场景的有效历史节点。然后,当场景创建单元140判断在第一子场景中包括的当前节点和历史节点的总数目是否大于或等于第一阈值时,它会发现总数目6已经等于第一阈值6,于是该方法进行到步骤S230。
[0073] 在步骤S230中,判断是否存在第二子场景。
[0074] 场景创建单元140进一步判断当前在第1级别中是否存在第二子场景。如果是,则该方法进行到步骤S235;否则,该方法前进到步骤S240。
[0075] 在步骤S235中,将当前帧加为第二子场景的有效历史帧。
[0076] 具体地,如果发现当前已经创建了第二子场景,则场景创建单元140通知节点添加单元170将当前节点N106进一步添加为第二子场景的历史节点。
[0077] 在步骤S240中,创建第二子场景,并且将当前帧加为第二子场景的有效历史帧。
[0078] 具体地,如果发现当前不存在第二子场景,则场景创建单元140创建第1场景的第二子场景,以便在第1级别中执行双图形SLAM操作,并且通知节点添加单元170将当前节点N106进一步添加为第二子场景的有效历史帧。
[0079] 在步骤S245中,判断是否满足第三预定条件。
[0080] 特征过滤单元120判断第二子场景是否满足第三预定条件。例如,这里的第三预定条件为第二子场景已经与第一子场景具备足够高的一致性,并且第二子场景已经存在足够多的节点,从而能够仅以第二子场景进行局部地图构建。
[0081] 具体地,第三预定条件是否满足可以通过特征过滤单元120判断在第二子场景中包括的当前节点和历史节点的总数目是否大于或等于第二阈值来实现。如果满足第三预定条件,则该方法前进到步骤S250;否则该方法返回到步骤S205,以重新获取新的一帧观测数据。
[0082] 这里,为了方便,假设第二阈值是2。于是,当节点获取单元150获取到第七帧观测数据,作为第一子场景的第七节点N107时,特征过滤单元120判断出在第二子场景中包括的当前节点和历史节点为N106和N107,即总数目为2,已经等于第二阈值,于是该方法进行到步骤S250。
[0083] 在步骤S250中,过滤重复信息,规约传送单一节点,将第二子场景切换为第一子场景,删除第二子场景。
[0084] 当判断出在第二子场景中包括的当前节点和历史节点的总数目达到第二阈值时,特征过滤单元120过滤在第一子场景中包括的当前节点和历史节点(即,N101到N107)所包含的重复的特征信息。
[0085] 具体地,特征过滤单元120从第一节点N101到第七节点N107的观测数据(observation)中提取特征信息(feature)和地图信息,判断这些信息之间是否存在重复信息。如果是,则特征过滤单元120对重复的特征信息和地图信息进行过滤,从而减少了在第1级别执行SLAM时的开销以及冗余信息。
[0086] 在特征过滤单元120在第1级别中过滤掉当前节点和历史节点所包含的重复的特征信息之后,节点规约单元130将过滤后的多个节点规约为单一节点。优选地,在进行特征过滤的过程中,节点规约单元130还对各个特征信息进行增强地图识别操作,以便减少在特征信息中可能存在的误差,并且提高地图识别的精度。
[0087] 具体地,节点规约单元130向当前节点和历史节点所包含的重复的特征信息分别赋予权重值,例如,权重值的分配规则可以是:如果机器人距离该特征点的距离越近,则权重值越大。这里,假设该特征点是机器人在行进过程中拍摄到的一盘花,并且机器人在第一节点中距离这盘花9米,在第二节点中距离这盘花6米,在第三节点中距离这盘花3米,则可以向第一节点赋予权重值5,向第二节点赋予权重值6,向第三节点赋予权重值7。然后,节点规约单元130根据所述权重值来对多个节点所包含的重复的特征信息进行加权平均,并且生成包括加权平均后的特征信息的单一节点,并最终删除所述多个节点。
[0088] 接下来,处理单元180在节点规约单元130将所述多个节点规约为单一节点之后,丢弃在第一子场景中包括的所有节点(即,第一节点N101到第七节点N107),并且以第二子场景继续进行第1级别中的SLAM。例如,处理单元180将第二子场景作为第一子场景,同时撤销所述第二子场景,以便继续进行第1级别的即时定位与地图构建。
[0089] 最后,该处理单元180将节点规约单元130所生成的单一节点从当前级别(即,第1级别)传送到更高级别(即,第2级别),以便进行第2级别的即时定位与地图构建。
[0090] 例如,在第1级别中的SLAM的新一轮迭代中,从第二子场景切换过来的新的第一子场景中当前仅仅包含第六节点N106和第七节点N107。节点获取单元150获取继续逐帧地获取观测数据,当节点获取单元150获取到第十一帧观测数据作为第一子场景的第十一节点N111时,第一子场景中包括的节点的总数目又一次等于第一阈值6。于是,场景创建单元140再次创建第二子场景,并且将有效的第十一节点N111添加为第二子场景的有效历史节点。接下来,当节点获取单元150获取到第十二帧观测数据,作为第一子场景的第十二节点N112时,特征过滤单元120判断出在第二子场景中包括的当前节点和历史节点为N111和N112,即总数目为2,已经等于第二阈值,于是该方法重新过滤第一子场景中所有节点的重复信息,规约并向第2级别传送单一节点,将第二子场景切换为第一子场景,并且删除第二子场景。如此循环反复,直到机器人停止工作为止。
[0091] 需要说明的是,第1级别的SLAM操作优选地可以在机器人上完成。此外,可以当在机器人端丢弃第一场景的数据的同时,将丢弃的数据保存在远程的宿主端(例如,服务器),以用于后续操作。
[0092] 由此可见,采用根据本发明实施例的第1级别中的信息处理方法,即Duo-Graph SLAM的工作方式,可以生成包含冗余数据的子地图,这些冗余数据能够提高子地图的精度,有效降低基于子场景的SLAM的切换所带来的地图误差,同时将减少合并全局地图的偏差。此外,这种Duo-Graph SLAM的工作方式还可以连续地进行SLAM,而无需永久地丢失所发现的地图。另外,机器人可以重复使用其自身的SLAM结果和其他机器人在不同会话中获取的SLAM结果。在此基础之上,建立大规模的三维(3D)地图变得可行。最终,当第1级别中的节点信息超过一定阈值时,可以将其过滤并规约到第2级别的节点信息中,从而使得第2级别节点将保存着不带有第1级别中的任何冗余数据的全部特征信息和地图信息。
[0093] 接下来,将参考图7来继续描述根据本发明实施例的中间级别中的信息处理方法。
[0094] 图7图示了根据本发明实施例的中间级别中的信息处理方法。
[0095] 如图7所图示的,根据本发明实施例的中间级别(即,1
[0096] 下面,以i=2为例来详细地说明根据本发明实施例的中间级别中的信息处理方法。具体地,第2级别中的信息处理方法包括:
[0097] 在步骤S300中,该方法开始执行。
[0098] 当在步骤S200中级别创建单元110根据用户设置而创建n个级别之后,级别创建单元110通知场景创建单元140开始与前i-1个级别并行地,在第i级别中创建该未知环境的SLAM图形结构,即第i场景。在本示例中,由于下面以i=2为例进行描述,所以第i场景实际上为第2场景。
[0099] 在步骤S305中,判断是否获取到第i-1级别的新节点。
[0100] 具体地,场景创建单元140在第2级别中创建第2场景。然后,节点获取单元150判断是否从第1级别中获取到新的节点数据。如果是,则节点获取单元150将该新的节点数据作为第2场景的第一节点N201。该节点可以包括已经在第1级别中过滤并规约后的图像观测数据、机器人自身位置信息和姿态信息等等。如果没有获取到新的节点数据,则该方法返回到步骤S305,直到获取到从第1级别中传上来的新的节点数据。
[0101] 在步骤S310中,根据当前节点和第i场景的有效历史节点进行局部地图构建。
[0102] 与步骤S210相似地,在节点获取单元150获取到第一节点数据之后,地图构建单元160执行操作,以便对在第2场景中包括的当前节点和历史节点进行局部地图构建。由于此时在第2场景中仅仅包括第一节点N201,所以地图构建单元160对该第一节点N201单独地进行局部地图构建。
[0103] 在步骤S315中,判断是否满足第一预定条件。
[0104] 节点添加单元170判断当前当前节点是否满足第一预定条件。例如,节点添加单元170判断所述当前节点的特征信息是否足够多,并且判断对在第2场景中包括的当前节点和历史节点进行局部地图构建是否成功。如果是,则该方法进行到步骤S320;否则,该方法前进到步骤S330,以过滤掉第2场景中所有节点包含的重复信息,将第2场景规约为单一节点,并且将该单一节点传送到第3级别,以便进行第3级别的即时定位与地图构建。
[0105] 这里,当判断出当前当前节点不满足第一预定条件时,该方法不是返回到步骤S305、而是直接进行过滤规约的原因在于:由于在第2级别中机器人往往不会进入错误路径,所以导致当前节点无效的原因很可能是该机器人出现被劫持状况或者被操作员人为关断并移动到与当前未知环境相异的另一未知环境中继续操作,所以此时,一般需要对之前构建的环境地图进行生成和显示。
[0106] 显然的是,在实践中,也可以根据操作员的具体需求而使得当判断出当前当前节点不满足第一预定条件时,该方法返回到步骤S305,并重新获取节点。
[0107] 在步骤S320中,将当前节点加为第i场景的有效历史节点。
[0108] 具体地,节点添加单元170将节点获取单元150获取到的第一节点数据,即第一节点N201,添加为第2场景中的有效的历史节点。
[0109] 在步骤S325中,判断是否满足第二预定条件。
[0110] 接下来,特征过滤单元120判断当前是否满足第二预定条件。例如,特征过滤单元120判断在第2场景中包括的当前节点和历史节点的总数目是否大于第三阈值。如果满足第二预定条件,则该方法前进到步骤S330;否则该方法返回到步骤S305。
[0111] 这里,为了方便,假设第三阈值是2。于是,当节点获取单元150获取到从第1级别中传送上来的第二个单一节点,作为第2场景的第二节点N202时,特征过滤单元120判断出在第2场景中包括的当前节点和历史节点为N201和N202,即总数目为2,已经等于第二阈值,于是该方法进行到步骤S330。
[0112] 在步骤S330中,过滤重复信息,规约传送第i场景为单一节点,保留预定节点,将第i场景其他节点清空。
[0113] 与步骤S250相似地,当判断出在第2场景中包括的当前节点和历史节点的总数目大于第三阈值时,特征过滤单元120和节点规约单元130通过对第2场景中的第一节点N201和第二节点N202的观测数据中的特征信息和地图信息执行去除冗余信息和增强地图识别操作,来过滤第2场景中所有节点所包含的重复特征信息,并且将第2场景中的所有节点规约为单一节点。
[0114] 处理单元180在所述节点规约单元130将所述多个节点规约为单一节点之后,在第2场景中保留最后预定数目的节点,以便继续进行第2级别的即时定位与地图构建,删除其余节点,并且将所述单一节点传送到第3级别,以便进行第3级别的即时定位与地图构建。
[0115] 具体地,在图4所图示的示例中,该预定数目是1。也就是说,处理单元180将第2场景中的第一节点N201删除,保留第二节点N202,并且重新返回到步骤S305,以便获取第三节点N203,从而继续进行第2级别的即时定位与地图构建。
[0116] 需要说明的是,中间级别的SLAM操作优选地可以在服务器上完成,以便利用服务器海量的存储空间和高速的计算能来方便快捷地构建局部地图数据。此外,上述第三阈值是第i级别的SLAM图形向下一次SLAM进行规约的上限阈值,由于不同的级别包含的数据量是不同的,所以每个级别中的第三阈值也可以不同。
[0117] 由此可见,采用根据本发明实施例的中间级别中的信息处理方法,即单图形SLAM的工作方式,仍然可以在第i级别中生成包含用于提高地图精度的冗余数据的子地图,并且最终,当第i级别中的节点信息超过一定阈值时,可以将其过滤并规约到第i+1级别的节点信息中,从而使得第i+1级别节点将保存着不带有第i级别中的任何冗余数据的全部特征信息和地图信息。
[0118] 最后,将参考图8来继续描述根据本发明实施例的最高级别中的信息处理方法。
[0119] 图8图示了根据本发明实施例的第n级别中的信息处理方法。
[0120] 如图8所图示的,根据本发明实施例的最高级别(即,i=n)中的信息处理方法的原理在于:在第n级别中仅仅维护并显示一个节点Nn01。
[0121] 具体地,第n级别中的信息处理方法包括:
[0122] 在步骤S400中,该方法开始执行。
[0123] 在步骤S405中,判断是否获取到第n-1级别的新节点。
[0124] 在步骤S410中,根据当前节点和第n场景的有效历史节点进行全局地图构建。
[0125] 在步骤S415中,判断是否满足第一预定条件,如果是,则该方法进行到步骤S420;否则,该方法返回执行步骤S405。
[0126] 在步骤S420中,将当前节点加为第i场景的有效历史节点。
[0127] 该步骤S400到S420与步骤S300到S320相似,为了简略,仅描述其不同之处:
[0128] 当在步骤S200中级别创建单元110根据用户设置而创建n个级别之后,级别创建单元110通知场景创建单元140开始与前n-1个级别并行地,在第n级别中创建该未知环境的SLAM图形结构,即第n场景。节点获取单元150将从第n-1级别中获取到新的节点数据作为第n场景的单一节点Nn01。地图构建单元160对该单一节点Nn01与历史节点进行全局地图构建。当判断出所述当前节点的特征信息足够多,并且判断出对在第n场景中包括的当前节点和历史节点进行全局地图构建成功时,节点添加单元170将第一节点Nn01添加为第n场景中的有效的历史节点。
[0129] 在步骤S425中,过滤重复信息,规约第n场景为单一节点。
[0130] 特征过滤单元120和节点规约单元130通过对第n场景中的第一节点Nn01的观测数据中的特征信息和地图信息执行去除冗余信息和增强地图识别操作,来过滤第n场景中所有节点所包含的重复特征信息,并且将第n场景中的节点规约为单一节点。
[0131] 在步骤S430中,显示单一节点。
[0132] 处理单元180在所述节点规约单元130将所述节点规约为单一节点之后,显示该单一节点,即向用户显示所构建的关于未知环境的环境地图。
[0133] 需要说明的是,最高级别的SLAM操作优选地可以在服务器上完成,以便利用服务器海量的存储空间和高速的计算能力来方便快捷地构建全局地图数据。
[0134] 由此可见,采用根据本发明实施例的最高级别中的信息处理方法,可以将不带有任何冗余数据的全部特征信息和地图信息规约为单一节点,并且向用户显示该单一节点所包含的全局地图图像。
[0135] 综上所述,采用根据本发明实施例的信息处理方法(即,多级别SLAM算法结构),可以在同一级别之间的节点信息进行SLAM矫正,每当一个级别的节点增加到一定的个数,即包含的特征的信息和地图信息过多时,就进行一次过滤,如图4所图示的,以便过滤掉相同的特征点信息和地图信息,第i级别的多个节点(图4所示的方框内)信息被规约到第i+1级别的单一节点信息中。同样,当第i+1级别中节点信息超过一定阈值时,也会将其规约到第i+2级别节点信息中,如此循环反复。故此,最终第n级别节点将保存着不带任何冗余数据的全部特征信息和地图信息。
[0136] 因此,这种多级别SLAM结构的算法不仅使得SLAM的流程可以被分布式地处理,大大加速全局地图融合速度,而且可以在任何级别中检测到环路,从而快速构建一致收敛的全局地图。
[0137] 需要注意的是,尽管在本发明的以上实施例中将用于过滤在第i级别的场景中包括的所有节点的重复信息以及将它们规约为单一节点的步骤例示为在第i级别中实现(例如,在步骤S250、S330和/或S425中实现),但是本发明不限于此。而是,可以相反地,将在第i级别的场景中包括的所有节点都传送到第i+1级别中,并且在第i+1级别中,首先对在第i级别的场景中包括的所有节点的重复信息进行过滤,并且将它们规约为单一节点(例如,在步骤S305和/或S405中实现上述步骤),然后再执行第i+1级别中的其余步骤。
[0138] 此外,需要注意的是,尽管在上文中将根据本发明的信息处理方法描述为:将第1级别中的信息处理方法在机器人上完成而将中间及最终的信息处理方法在服务器上完成,但是本发明不限于此,也可以将全部级别的信息处理方法都安排在机器人或者服务器上完成。
[0139] 然而,在实现本发明的过程中,本发明人进一步发现:尽管本发明能够降低SLAM的计算负载,并且保证机器人可以在一个高效稳定的状态下进行SLAM,但是根据本发明的信息处理方法和装置仍然可能存在以下问题,即由于在本发明中使用了将会生成大量相同特征的视觉引导的(Visual-Guided)SLAM,所以一方面,当使用相同的阈值来判断不同帧之间是否匹配时,如果所使用的阈值较低,则可能由于大量的误匹配而造成噪音,而如果单纯地提高阈值,则又可能过滤掉例如在识别环路时的正确匹配;另一方面,即使盲目地利用不同的阈值使得连续的子地图(submapping)能够配上,但是由于存在大量相似的视觉特征,也将造成大量的误匹配。
[0140] 显然的是,上述问题不但存在于本发明中,也普遍存在于诸如其他多级别SLAM或者多块子地图(Hybrid或Submapping)之类的解决方案中。
[0141] 对此,本发明人进一步提出了一种改善的信息处理方法和装置。
[0142] 在下文中,将参考图9到图10来描述根据本发明另一实施例的信息处理方法和装置。
[0143] 图9图示了根据本发明另一实施例的信息处理方法,而图10图示了根据本发明另一实施例的信息处理装置。
[0144] 图9所图示的根据本发明另一实施例的信息处理方法可以应用于图10所图示的信息处理装置100。如图10所图示的,该信息处理装置100包括:级别创建单元110、特征过滤单元120、节点规约单元130、场景创建单元140、节点获取单元150、地图构建单元160、节点添加单元170、和处理单元180。此外,优选地,该信息处理装置100还包括:首尾集合生成单元190。
[0145] 如图2、图4、图9和图10所图示的,在根据本发明另一实施例的信息处理方法中,如上所述,可以将用于过滤在第i-1级别的场景中包括的所有节点的重复信息以及将它们规约为单一节点的步骤从第i-1级别移动到第i级别中进行实现。
[0146] 具体地,当可移动电子设备被用于未知环境的即时定位与地图构建时,级别创建单元110首先根据用户设置来创建n个级别,其中n≥2。对于第i级别而言,其中1
[0147] 其中,在创建局部地图期间,地图构建单元160判断当前生成的单一节点与通过先前的过滤和规约步骤而得到的单一节点中的每一个是否是连续的节点,如果是,则利用第一阈值来对当前场景节点和先前场景节点进行局部地图构建;否则,则利用第二阈值来进行局部地图构建,其中所述第一阈值低于所述第二阈值。这样做的原理在于:在当前场景节点和先前场景节点连续时,将阈值保持很低以便两者一定能够匹配得上;而在当前场景节点和先前场景节点不连续时,将阈值保持很高以便两者不会出现误匹配,而是只有当由于在未知环境中出现环路而导致在两个节点之间存在大量相同的特征点时,才使得两者能够匹配得上。
[0148] 其后,当判断出当前生成的单一节点有效时,节点添加单元170将其添加为有效的历史节点。然后,当在第i级别的场景中所包括的节点增加到一定的个数时,即当第i级别中的节点包含的特征的信息和地图信息过多时,处理单元180将在第i级别的场景中包括的所有节点都传送到第i+1级别中,并且在第i级别中仅仅保留最后预定数目个节点,删除其他节点,以便继续进行第i级别的随后的即时定位与地图构建。
[0149] 递推地,在与第i级别并行进行的第i+1级别中,节点获取单元150不断地从第i级别中获得包括重复信息的各个节点,过滤和规约为本级别的单一节点,并且创建关于第i+1级别的局部地图。同理,当其中的节点信息超过一定阈值时,将所有节点信息上传到第i+2级别中,如此反复,直到最终在第n级别中的节点将保存着不带任何冗余数据的全部特征信息和地图信息,即形成了包含关于整个未知环境信息的最终节点。
[0150] 下面,将参考图9来详细地描述根据本发明另一实施例的第i级别中的信息处理方法,其中1
[0151] 如图9所图示的,具体地,该信息处理方法包括:
[0152] 在步骤S900中,该方法开始执行。
[0153] 在级别创建单元110根据用户设置创建n个级别之后,其中n是自然数,并且n≥2,场景创建单元140开始在第i级别中创建关于移动机器人所处的未知环境的第i场景,其中i是自然数,并且1
[0154] 在步骤S905中,判断是否获取到第一场景。
[0155] 具体地,当场景创建单元140在第2级别中创建第2场景之后,节点获取单元150判断是否自身已经从第1级别中获取到新的场景信息Si。该场景信息可以包括与从第1级别中传送上来的、在第1级别的第一子场景中包括的所有姿态节点(pose-node)相关的全部信息。
[0156] 如图4所图示的,例如,姿态节点可以是第1级别中的第一节点N101、第二节点N102、第三节点N103……中的每一个。当假设图6中的第一阈值是6并且第二阈值是2时,该第一场景信息Si可以包括姿态节点N101到N107的信息,并且类似地,在该第一场景信息Si之后的一个场景信息可以包括姿态节点N106到N112的信息,如此类推。
[0157] 如果节点获取单元150判断出已经获取到新的场景信息Si,则该方法进行到步骤S910。如果没有获取到新的场景信息,则该方法返回到步骤S905,直到获取到从第1级别中获取到新的场景信息为止。
[0158] 在步骤S910中,提取所有节点的特征信息,计算局部坐标和全局坐标,并放在局部集合和全局集合中。
[0159] 具体地,在已经获取到第一场景信息Si之后,节点获取单元150将它们发送到特征过滤单元120。特征过滤单元120提取在第一场景信息Si中包括的所有姿态节点(例如,第一节点N101到第七节点N107)的特征信息,该特征信息诸如是在未知环境中出现的花盆、桌椅、墙壁等位置固定的并且有特定形状结构的物体(特征点)。
[0160] 然后,特征过滤单元120计算所述特征信息的局部坐标和全局坐标。其中,某一特征信息的局部坐标是指:当将在第1级别的第一子场景中包括的所有姿态节点中的第一姿态节点的位置信息作为参考坐标系的原点时,与该一特征信息对应的物体的坐标值。例如,在第一场景信息中,某一特征信息的局部坐标是指与该一特征信息对应的物体相对于第一节点N101姿态的坐标值;而在第二场景信息中,某一特征信息的局部坐标是指与该一特征信息对应的物体相对于第六节点N106姿态的坐标值。
[0161] 另外,某一特征信息的全局坐标是指:当将在第1级别中包括的所有姿态节点中的第一姿态节点(即,第一节点N101)的位置信息作为参考坐标系的原点时,与该一特征信息对应的物体的坐标值。例如,在任一场景信息中,某一特征信息的全局坐标都是指与该一特征信息对应的物体相对于第一节点N101姿态的坐标值。
[0162] 然后,特征过滤单元120将所述特征信息和与所述特征信息相关联的局部坐标放置在局部集合F_LOC中,并且另外地,将所述特征信息和与所述特征信息相关联的全局坐标放置在全局集合F_GLO中,以供接下来的操作使用。
[0163] 在步骤S915中,提取局部集合中最初和最后预定数目节点的特征信息,分别放在首部集合和尾部集合中。
[0164] 具体地,在特征过滤单元120计算出在第一场景信息Si中包括的所有姿态节点中的所有特征信息的局部坐标和全局坐标之后,首尾集合生成单元190从所述局部集合F_LOC中提取在所述第一场景信息Si中最初的预定数目M个节点的特征信息,换言之,首尾集合生成单元190在第一场景信息Si中包括的所有姿态节点中,提取处于前面的M个节点的特征信息。在图4所图示的示例中,当目前处于第2级别(即,i=2)时,这个预定数目M可以是图6中的第二阈值,即2;当目前处于第3级别(即,i=3)时,这个预定数目M可以是图7中的预定节点的数目,即1。
[0165] 在本示例中,由于以i=2为例进行描述,所以假设首尾集合生成单元190从所述局部集合F_LOC中提取在所述第一场景信息Si中最初的2个节点(即,N101和N102)的特征信息。然后,首尾集合生成单元190将上述特征信息放置在一个首部集合F_PRE中。
[0166] 接下来,首尾集合生成单元190从所述局部集合F_LOC中提取在所述第一场景信息Si中最后的预定数目M个节点的特征信息,换言之,首尾集合生成单元190在第一场景信息Si中包括的所有姿态节点中,提取处于后面的2个节点(即,N106和N107)的特征信息,并然后,将它们放置在一个尾部集合F_POS中。
[0167] 在步骤S920中,根据空间坐标过滤全局集合中的特征信息,并相应地更新局部集合中的特征信息。
[0168] 具体地,在计算出在第一场景信息Si中包括的所有姿态节点中的所有特征信息的局部坐标和全局坐标之后,特征过滤单元120进一步通过根据空间坐标去除重复的特征信息来对所述全局集合中的特征信息进行过滤,并且根据过滤后的所述全局集合中的特征信息,来相应地更新所述局部集合中的特征信息。
[0169] 例如,假设在未知环境中包括一个花盆,并且机器人在三个节点(例如,N103、N104、N105)都拍摄到了这个花盆。这时,在第一场景信息Si中包括的三个姿态节点(N103、N104、N105)中将分别包括的一个花盆,即在第一场景信息Si中包括关于同一花盆的三个特征信息,从而导致了特征信息存在冗余。
[0170] 由于这个花盆在未知环境中的实际位置是固定的,所以它在三个姿态节点中的全局坐标也必然是固定的,例如为10,即关于此花盆的三个特征信息在全局集合F_GLO中的坐标都是10。此外,假设机器人在从第三节点N103向第五节点N105运动时、不断移动接近这个花盆,所以该花盆的局部坐标并不相同,假设关于此花盆的三个特征信息在局部集合F_LOC中的坐标分别是5、6、7。
[0171] 这时,特征过滤单元120在全局集合F_GLO中将会发现:由于三个特征信息的全局坐标都是10,所以该三个特征信息必然为同一特征信息。于是,特征过滤单元120确定出应该过滤掉三个特征信息中的两个特征信息,而仅仅保留一个全局坐标是10的特征信息。
[0172] 对此,为了减小局部坐标的误差,特征过滤单元120可以通过对局部集合F_LOC中的坐标5、6、7进行平均来确定出该花盆的局部坐标为6。因此,特征过滤单元120最终从在第一场景信息Si中包括的所有姿态节点中的所有特征信息中去除局部坐标为5且全局坐标为10的花盆,并且去除局部坐标为7且全局坐标为10的花盆,而仅仅保留局部坐标为6且全局坐标为10的花盆。
[0173] 尽管上面以对局部坐标进行求算术平均的方式来对本发明的另一实施例进行说明,但是本发明不限于此,而是,可以采用其他的数学运算方式来确定同一特征信息(特征点)的局部坐标。例如,还可以采用加权平均的方式来执行上述操作。例如,可以向在与花盆的位置距离较近的机器人的位置中呈现的特征信息赋予较高权重值,而向在与花盆的位置距离较远的机器人的位置中呈现的特征信息赋予较低权重值,从而可以更加准确地确定该特征点的局部位置坐标,这是由于与花盆距离越近,该机器人得到的该花盆的位置信息就越准确。
[0174] 在步骤S925中,将所有节点规约为单一节点。
[0175] 在特征过滤单元120过滤了第一场景信息Si的冗余特征信息之后,节点规约单元130将经过去除冗余信息的、在第1级别的第一子场景中包括的所有姿态节点(pose-node)规约为单一的场景节点(session-node)(又称作超级节点)。
[0176] 在步骤S930中,将单一节点和先前加入的单一节点作为第一场景节点和第二场景节点。
[0177] 在节点规约单元130生成包括特征过滤单元120过滤后的特征信息的单一节点之后,地图构建单元160将关于该第一场景信息的单一节点Si加入到场景图形(session-graph)中,例如作为第一场景节点,并且将所述场景图形中的在第一场景节点之前加入的单一节点作为所述第二场景节点Sj。然而,由于此时在场景图形中仅仅包括一个场景节点(例如,N201),并且在其之前并不存在任何单一节点,所以该处理重复执行步骤S905到S930,直到在第2级别中包括至少两个节点为止。
[0178] 于是,在单一节点N201之后,节点规约单元130相继地生成包括特征过滤单元120过滤后的特征信息的单一节点N202,并且地图构建单元160将所述单一节点N202加入到场景图形中,作为所述第一场景节点Si,并且将所述场景图形中的在所述第一场景节点N202之前加入的一个单一节点N201作为所述第二场景节点Sj。
[0179] 在步骤S935中,判断第一和第二场景节点是否连续。
[0180] 具体地,地图构建单元160判断在步骤S930中加入的第一场景节点Si与第二场景节点Sj是否是连续的场景节点。如果是,则该方法进行到步骤S940;否则,该方法前进到步骤S945。
[0181] 在步骤S940中,利用第一阈值来对所述第一场景节点和所述第二场景节点进行局部地图构建。
[0182] 由于第一场景节点N202与第二场景节点N201是连续的,所以地图构建单元160利用较低的第一阈值来对所述第一场景节点Si和所述第二场景节点Sj进行局部地图构建。例如,当在所述第一场景节点Si和所述第二场景节点Sj之间相同的特征大于或等于例如为50%的第一阈值时,判断两者之间存在匹配,并且将两个场景节点连接起来进行局部地图构建。
[0183] 例如,在具体实现的过程中,地图构建单元160可以利用所述第一场景节点Si的首部集合F_PRE与所述第二场景节点Sj的尾部集合F_POS进行配准,以寻找相同的特征点。然后,地图构建单元160根据上述配准结果来计算第一转换矩阵,并且通过所述第一转换矩阵来对所述第一场景节点和所述第二场景节点进行局部地图构建,从而将两者连接为连续的场景。
[0184] 在步骤S950中,判断是否存在未匹配的先前的单一节点。
[0185] 在进行局部地图构建之后,地图构建单元160进一步判断在第一场景节点N202之前是否还存在没有匹配过的单一节点。这时,由于在第一场景节点N202仅仅存在一个单一节点(即,N201)并且该单一节点已经进行过匹配,所以该方法进而前进到步骤S955。
[0186] 在步骤S955中,执行图形优化。
[0187] 具体地,地图构建单元160对构建完成的局部地图执行图形优化,以去除在地图中存在的噪声,让图像显示的更为准确。然后,该方法返回执行步骤S905,以开始下一次迭代。
[0188] 下面,将举例来描述步骤S935中的另一个分支S940的执行。
[0189] 随着本方法的不断迭代,在单一节点N202之后,节点规约单元130在步骤S925中,相继地生成包括特征过滤单元120过滤后的特征信息的单一节点N203,并且在步骤S930中,地图构建单元160将所述单一节点N203加入到场景图形中,作为所述第一场景节点Si,并且将所述场景图形中的在所述第一场景节点N203之前加入的一个单一节点N202作为所述第二场景节点Sj。
[0190] 为了便于说明,这里假设:如图4所图示的,在机器人从出发点经过未知环境中的环路而重新回到出发点之后,在第2级别中共产生三个单一节点,即N201、N202、和N203,其中N201与N202所表现的场景相邻,N202与N203所表现的场景相邻,而N203与N201所表现的场景由于存在环路,因此也相邻。
[0191] 此时,当在步骤S935中判断出第一场景节点N203与第二场景节点N202是连续的之后,地图构建单元160在步骤S940中,继续利用较低的第一阈值来对所述第一场景节点Si和所述第二场景节点Sj进行局部地图构建。
[0192] 然后,在步骤S950中地图构建单元160进一步判断在第一场景节点N202之前是否还存在没有匹配过的单一节点。这时,由于在第一场景节点N203还存在一个未匹配的单一节点(即,N201),所以该方法进而返回到步骤S930。
[0193] 在步骤S930中,地图构建单元160将所述单一节点N203继续作为所述第一场景节点Si,并且将所述场景图形中的在所述第一场景节点N203之前加入的另一个单一节点N201作为所述第二场景节点Sj。
[0194] 由于在步骤S940中判断出第一场景节点N203与第二场景节点N201是不连续的场景节点,所以该方法执行步骤S945。
[0195] 在步骤S945中,利用第二阈值来对所述第一场景节点和所述第二场景节点进行局部地图构建。
[0196] 由于第一场景节点N203与第二场景节点N201是不连续的,所以地图构建单元160利用较高的第二阈值来对所述第一场景节点Si和所述第二场景节点Sj进行局部地图构建。例如,当在所述第一场景节点Si和所述第二场景节点Sj之间相同的特征大于或等于例如为80%的第二阈值时,判断两者之间存在匹配,并且将两个场景节点连接起来进行局部地图构建。
[0197] 例如,在具体实现的过程中,地图构建单元160可以利用所述第一场景节点Si的局部集合F_LOC与所述第二场景节点Sj的局部集合F_LOC进行配准,以寻找相同的特征点。如果相同的特征点超过80%,地图构建单元160判断出两者之间存在正确的匹配,于是根据上述配准结果来计算第二转换矩阵,并且通过所述第二转换矩阵来对所述第一场景节点和所述第二场景节点进行局部地图构建,从而将两者连接为连续的场景。如果相同的特征点小于80%,则地图构建单元160判断出两者之间并非是连续的场景,并且不对两者执行局部地图构建。
[0198] 然后,该方法前进到步骤S950,并且继续执行。
[0199] 由此可见,采用根据本发明另一实施例的信息处理方法,在创建局部地图期间,当判断出当前场景节点和先前场景节点连续时,将阈值保持很低,以便保证两者即使具有少量的相同特征点(这种情况尤其可能出现在当两个场景中都存在大部分的不可识别的特征点(例如,白色墙壁)的情况下)也一定能够匹配得上;而当判断出当前场景节点和先前场景节点不连续时,将阈值保持很高,以便两者必须在具有大量的相同特征点时,即只有当环路发生时,才能够匹配得上,从而避免出现由于一定数量相似的视觉特征而导致的误匹配,并进一步防止机器人生成的地图出现误差。
[0200] 下面,将参考图11到图13来说明根据现有技术的解决方案或本发明实施例的信息处理方法所生成的地图、与根据本发明另一实施例的信息处理方法所生成的地图的效果比对。
[0201] 图11图示了根据现有技术的第三解决方案所生成的地图的效果模型,图12图示了根据本发明实施例所生成的地图的效果模型,而图13图示了根据本发明另一实施例的信息处理方法所生成的地图的效果模型。
[0202] 如图11和图12所图示的,在根据现有技术的第三解决方案或根据本发明前一实施例所生成的地图中都存在严重的匹配误差,其中墙壁(图中的白色粗线条)都出现歪曲,而与走廊区域产生交叉,或与走廊区域产生偏离。
[0203] 然而,如图13所图示的,当使用根据本发明另一实施例的信息处理方法时,可以看出最终生成的地图几乎没有产生任何匹配误差,其中墙壁(图中的白色粗线条)与走廊区域平行相邻,很好地反映了机器人所处环境中的实际情况。
[0204] 由此可见,采用根据本发明另一实施例的信息处理方法,可以在进行局部地图构建时,针对场景节点是否连续而采取两种不同的策略。第一种策略是充分利用根据本发明前一实施例的结构的优势,即在不同场景范围中总存在一定个数的重复节点,使得我们可以利用这些信息将连续的场景加入到同一个图结构中,保证一定能够将每一个场景连接起来,复现机器人的路径。第二种策略是首先计算存在于一个场景中特征点的全局坐标,然后利用绝对空间坐标将大量的特征点进行冗余过滤,那些空间坐标值相近的特征点将会被过滤,大量减少冗余匹配,提高匹配精确度,并且提高速度。
[0205] 因此,在本发明中同时使用这两种策略可以保证高速稳定地实时大规模地图的SLAM算法,一方面复现每个场景的相对位置,而且另一方面,当环路发生时,也能精确校准各个场景绝对位置。
[0206] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助于软件加必需的硬件平台的方式来实现,当然也可以全部通过软件、或硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁盘、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0207] 在上面详细描述了本发明的各个实施例。然而,本领域技术人员应该理解,在不脱离本发明的原理和精神的情况下,可对这些实施例进行各种修改,组合或子组合,并且这样的修改应落入本发明的范围内。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈