用于将一个或多个锚点添加到环境的地图的方法与流程

文档序号:36922234发布日期:2024-02-02 21:48阅读:20来源:国知局
用于将一个或多个锚点添加到环境的地图的方法与流程

本发明涉及一种用于将一个或多个锚点添加到环境的地图的方法,其中该地图基于slam图,而且其中给所述一个或多个锚点尤其是分配描述,以及涉及一种用于执行该方法的数据处理系统、一种用于执行该方法的移动设备和一种用于执行该方法的计算机程序。


背景技术:

1、诸如至少部分自动化移动的车辆或者机器人等移动设备通常在环境、尤其是待处理的环境或工作区域中、诸如在居所中、在花园中、在工厂厂房中或者在街道上、在空中中或在水中移动。这种移动设备或者还有其它移动设备的基本问题之一在于:定向、即知道该环境看起来是什么样子,即尤其是障碍物或其它对象在哪里,以及该移动设备(绝对)位于哪里。为此,该移动设备例如可以配备各种传感器,诸如摄像机、激光雷达传感器或者还有惯性传感器,借助于这些传感器,例如二维地或三维地检测该环境和该移动设备的移动。这使得该移动设备能够在本地移动、及时识别障碍物并且绕过这些障碍物。

2、在机器人技术中的如下方法称为slam(“simultaneous localization andmapping”,大意为:同步定位和绘图),在该方法中,如机器人等移动设备可以或必须同时创建其环境的地图并且估计其在该地图内的空间方位。借此,该方法用于识别障碍物并且因此支持自主导航。在slam的情况下,通常不需要诸如来自gps传感器的绝对位置。


技术实现思路

1、按照本发明,提出了具有专利独立权利要求的特征的一种用于将一个或多个锚点添加到环境的地图的方法以及一种用于执行该方法的数据处理系统、一种用于执行该方法的移动设备和一种用于执行该方法的计算机程序。有利的设计方案是从属权利要求以及随后的描述的主题。

2、本发明涉及slam主题以及尤其是其在移动设备中的应用。这种移动设备(或者还有移动工作设备)的示例例如是机器人和/或无人机和/或还有(在陆地、水或空中)部分自动化或(完全)自动化移动的车辆。例如,可以考虑如吸尘和/或擦地机器人等家用机器人、地面或街道清洁设备或者割草机器人作为机器人,但是同样也可以考虑其它所谓的服务机器人,作为至少部分自动化移动的车辆,诸如客运车辆或货运车辆(还有所谓的陆地运输车,例如在仓库中),但是还有诸如无人机等飞行器,或者船舶。

3、这种移动设备尤其具有控制或调节单元和用于使该移动设备移动的驱动单元,使得该移动设备可以在该环境中并且例如沿着轨迹被移动。此外,移动设备例如具有一个或多个传感器,借助于所述一个或多个传感器,可以检测在该环境中的信息和/或对象(在该环境中,尤其是障碍物)的信息和/或该移动设备本身的信息。这种传感器的示例是激光雷达传感器或者用于确定距离的其它传感器、摄像机以及惯性传感器。借助于激光雷达传感器,例如可以检测或获得所谓的点云。例如,同样可以考虑(该移动设备的)所谓的里程计。

4、在slam的情况下,有不同方法来呈现地图和位置。用于slam的常规方法通常依赖于几何信息,这些几何信息通常通过节点和边来表示。节点和边是slam图的典型组成部分。slam图中的节点和边可以以不同方式来设计并且包括不同信息;传统上,这些节点例如对应于移动设备或某些环境特征在特定时间点的姿态(位置和取向),而这些边表示这些节点之间的相对测量。slam图例如在“giorgio grisetti,rainer k ü mmerle,cyrillstachniss,wolfram burgard,a tutorial on graph-based slam,ieee intelligenttransportation systems magazine,第2(4)卷,第31-42页,2010年”中更详尽地被描述。

5、基于这种slam图,可以确定移动设备在其中移动的环境的地图。为此,该地图可以包括一个或多个所谓的地标(英文:“landmarks”)。为此,可以使用具有位置和/或取向(姿态)的所谓的锚或锚点,这些锚或锚点存在于该地图中或者与之相关联,并且给这些锚或锚点分配信息或者描述(或注释或英文“annotations”)。由此,例如在该环境中的如障碍物等特定物体或对象可以在该地图中被规定并且由此被识别并且被用于导航。一般来说,由此不仅可以定义对象,而且例如可以定义该环境的特定区域,这些区域例如不允许被移动对象驶过或者这些区域具有特定地面质地。在此,在该环境中并不总是必须存在物理特征,因为例如一个房间可以被用户任意划分成两个区域。同样,由此可以定义特定事件,例如移动设备与障碍物的碰撞。同样,由此例如可以定义坞站或充电站。

6、slam图通常总是被重新更新,例如在所谓的循环闭合(loop-closure)之后。在此,可能发生:在slam图中的节点和/或边被改变(更新或调整)。一般来说,可以改变地图,并且由此也不仅可以改变slam图,而且可以改变在该地图中的信息或描述,例如在更新的情况下。也可以将多个地图融合成一个新的地图。在这种情况下,也可以说是动态地图。

7、在这种更新的情况下,有利的是同样更新锚点(或地标)的位置和/或取向。为此,提出了一种将锚点添加到基于slam图的地图的可能性,其中,在slam图的更新的情况下,这些锚点也自动地被更新。此外,可以将针对这些锚点的描述添加到地图,那么,该地图尤其是与一个或多个锚点相关联。在此,例如可以在执行的数据处理系统、例如移动设备的处理器或控制单元中提供锚模块以及一个或多个地图处理模块,其中地图处理模块经由接口与锚模块进行通信(用于数据交换)。在此可以涉及分开的软件模块,这些软件模块在相同的控制单元上被执行,但是同样可以使用分开的数据处理系统。

8、为了现在将锚点添加到地图,针对要被添加到地图的多个锚点中的该锚点或每个锚点,提供位置和/或取向,亦即例如用于锚模块。例如,可以由想要添加锚点的地图处理模块向锚模块提出请求,接着,为此提供或传送位置和/或取向。锚点的位置和/或取向例如可以从外部被任意指定,要不然例如可以在移动设备的某些活动的范围内被确定。这样,例如在将移动设备、例如真空吸尘机器人与先前仍未知的坞站对接时,可以由相对应的地图处理模块(自动)添加用于该坞站的锚点,其中该位置和/或取向依据在该对接时的移动设备的位置和/或取向来被确定。

9、接着,将锚点分配到在slam图中的节点,亦即尤其是离锚点最近的节点。最近的节点例如可以通过度量来被确定,例如被确定为具有关于锚点和节点的位置的最小距离的节点。即,锚点、也就是说至少其位置和/或取向因此与存在于slam图中的节点相关联;接着,例如可以存储相对应的(关于该关联的)信息。优选地,也确定在该锚点的位置和/或取向与该节点(其确实存在或保存在slam图中)的位置和/或取向之间的相对位置和/或取向。

10、接着,将锚点添加到该环境的地图,必要时还有关于该锚点的相对位置和/或取向的信息。如所提及的那样,同样可以提供该锚点的描述(“注释(annotation)”)、尤其是语义描述,接着将该描述添加到该环境的地图。但是,该描述本身可以与位置和/或取向分开地被处理,而且例如可以根据所希望的应用来被使用。例如当通过多个锚点来定义某个区域时,描述也可以共同适用于多个锚点。

11、因此,以这种方式来获得带有锚点的地图,在该地图中,由于锚点到节点本身的分配被保留,所以底层slam图的更新、即例如在slam图中的节点的位置和/或取向的改变或调整自动引起锚点的更新。接着,依据在更新之前的锚点相对于节点的相对位置和/或取向,也可以在更新之后再次推断出锚点的正确位置和/或取向,接着从节点的新的位置和/或取向开始。应当提到的是:锚点不是或者不会成为slam图中的节点,而是原则上与slam图分开,但是通过到节点的分配来与该节点相关联。还应当注意的是:在此,锚点与节点之间的相对位置和/或取向不会改变,使得虽然锚点在整个地图内可能有所改变,例如被移动和/或移位,但是保持在本地。稍后参考附图描述还更详尽地阐述这一点。

12、优选地,还为锚点确定并且接着提供标识符、尤其是唯一标识符。这例如同样可以通过锚模块来实现。由此,每个锚点都能唯一地被标识。这样,例如可能存在多个不同的地图,但是这些锚点能跨这些地图地被区分。由此,例如在融合这些地图时没有出现锚点的碰撞。接着,在多个地图的情况下,针对锚点也可以提供该锚点包含在哪个地图中的信息。

13、也可设想的是:执行对所要添加的锚点究竟是否可以被添加到该地图的检查。如果例如锚点的位置离最近的节点太远,则可以阻止该添加。即,这可能会导致在更新slam图时的问题。

14、接着,基于slam图或者以该slam图为基础的地图,尤其是也为移动设备提供导航信息。这允许该移动设备在该环境中导航或者在那里移动。

15、除了这种添加锚点的请求之外,也可以例如由所提及的地图处理模块中的一个或多个地图处理模块实现对提供关于一个或多个特定锚点或者关于该地图的所有锚点的信息的请求。接着,可以例如由锚模块提供关于一个或多个特定锚点(如果存在的话,即当所请求的锚点根本就存在时;这些锚点例如可能通过所提及的标识符来被标识)或者关于该地图的所有锚点的信息。在这种情况下,关于锚点的信息可能包括位置和/或取向,但是同样也可能包括所提及的标识符和/或描述。同样,也可以例如由所提及的地图处理模块中的一个或多个地图处理模块实现对从该地图中移除一个或多个特定锚点的请求。接着,可以例如由锚模块(如果存在的话,即当所请求的锚点根本就存在时;这些锚点例如可能通过所提及的标识符来被标识)移除相关的锚点。

16、在下文旨在简要阐述可以如何正确地在slam图中添加锚点。为此,可以假设slam图g=(v,e),其具有一组节点v和一组边e。每个节点都具有经优化的姿态(位置和取向),该姿态可以是二维的(2d)或者三维的(3d);这例如可以取决于应用或移动设备的类型。该姿态可以随着时间而改变,例如当添加新信息时(例如在循环闭合的情况下)。

17、如果现在请求或要求添加具有特定姿态pmap的锚点,则搜索其位置例如最接近pmap的位置的那个节点为此,例如可以动用欧几里得度量,使得适用:

18、

19、接着,可以确定或计算并且例如存储锚点相对于的相对姿态prel:

20、

21、如果请求锚点的当前姿态pcurrent,则可以确定该当前姿态,其方式是将所存储的相对姿态prel应用于节点的当前姿态,该当前姿态自从添加该锚点以来可能会已经被改变(由于更新):

22、

23、在slam图的情况下,存在使其稀疏化、即从中移除节点和/或边并且这样减少数据量的可能性。如果在这种稀疏化的框架内或者出于其它原因,从slam图中移除或者应该移除一个或多个节点,则可能会发生:给一个或多个所要移除的节点分配锚点。那么,在这种情况下,优选的是:给这种锚点分配另一节点(在slam图中所保留的节点)。接着,这里再次使用最近的节点。在此,基于所要移除的节点的位置和/或取向以及锚点的位置和/或取向,可以确定在该锚点与所分配的新节点之间的新的相对位置和/或取向。

24、同样适宜的是:阻止移除分配有锚点的节点。由此,虽然slam图略微更少地被稀疏化,但是为此保留了锚点的精确位置。原则上,针对不同锚点,也可以区分是否允许移除所分配的节点,并且接着必要时必须分配新节点。这例如可以取决于诸如锚点的重要性那样的标准。

25、按照本发明的数据处理系统——例如机器人、无人机或车辆等等的控制单元——被设立为、尤其是以程序技术方式被设立为执行按照本发明的方法。

26、尽管在移动设备中的计算或控制单元中执行所提及的方法步骤是特别有利的,但是某些或者所有方法步骤也可以在其它计算单元或诸如服务器(关键词:云)等计算机上被执行;为此,相对应地需要计算单元之间的优选地无线的数据或通信连接。由此,存在用于执行这些方法步骤的计算系统。

27、本发明同样涉及一种移动设备,该移动设备被设立为:获得如上所述的导航信息并且基于导航信息来进行导航。该移动设备例如可以是:客运车辆或货运车辆;机器人,尤其是家用机器人、例如吸尘和/或擦地机器人、地面或街道清洁设备或者割草机器人;无人机;或者还有它们的组合。此外,该移动设备可以具有用于检测对象和/或环境信息的一个或多个传感器。此外,该移动设备尤其可以具有控制或调节单元以及用于移动该移动设备的驱动单元。

28、尤其是当执行的控制设备还被用于其它任务并且因而总归存在时,按照本发明的方法的以具有用于执行所有方法步骤的程序代码的计算机程序或计算机程序产品的形式的实现方案也是有利的,因为这引起了特别低的成本。最后,提供了一种机器可读存储介质,在其上存储有如上所述的计算机程序。尤其是,适合于提供该计算机程序的存储介质或数据载体是磁存储器、光存储器和电存储器,诸如硬盘、闪速存储器、eeprom、dvd以及其它等等。通过计算机网络(因特网、内联网等等)来下载程序也是可行的。在此,这种下载可以以有线方式或以线缆方式或者以无线方式(例如经由wlan网络,3g、4g、5g或6g连接,等等)实现。

29、本发明的其它优点和设计方案从说明书以及随附的附图中得出。

30、本发明依据实施例在附图中示意性示出并且在下文参考附图予以描述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1