用于构建用于移动机器人的地图的方法和设备的制作方法
【专利摘要】公开了一种用于构建用于移动机器人的地图的方法和设备。一种可以减少数据量并增加接近速度的构建用于移动机器人的方法和设备。所述方法包括:通过扫描移动机器人的周围环境来搜索占据任意空间的多条特征数据;对所述多条特征数据的第一特征数据执行四叉树分割以产生多条第一节点信息作为四叉树分割的结果;确定所述多条特征数据中的第二特征数据针对第一特征数据的位置;执行邻域移动算法,以通过使用所述多条第一节点信息来根据第二特征数据的位置产生第二特征数据的多条第二节点信息。
【专利说明】用于构建用于移动机器人的地图的方法和设备
[0001] 本申请要求于2013年5月7日在韩国知识产权局提交的第10-2013-0051497号 韩国专利申请的优先权,该申请的公开通过引用整个包含于此。
【技术领域】
[0002] 与示例性实施例一致的设备和方法涉及构建用于移动机器人的地图以减少数据 量并增加接近速度。
【背景技术】
[0003] 移动机器人应该不仅察觉在给定环境中的自身位置,还应在进入先前未探索过的 新环境时构建周围环境的地图。构建用于移动机器人的地图的操作包括以下任务:识别附 近障碍物或对象的位置、移动机器人可以自由移动的开阔空间等,以及按照适当的方法记 录通过识别获得的信息。
[0004] 构建用于移动机器人的地图的方法可被大致分类为二维(2D)基于网格环境地图 构建方法和基于四叉树环境地图构建方法。基于网格环境地图构建方法允许机器人将周围 环境分割为2D网格,并记录在机器人的当前位置的任意网格中是否存在障碍物。然而,基 于网格环境地图构建方法的问题在于,由于随着移动机器人的行驶距离增加或者将移动到 的空间的大小增加数据量也增加,因此需要大存储器容量。作为比较,由于基于四叉树环境 地图构建方法通过将存在障碍物的区域分割为微小区域来将信息分配给节点,但是仅显示 与表示不存在障碍物的区域的一个大空间的节点相关的信息,因此可有效地使用存储器。 然而,由于基于四叉树环境地图构建方法不具有空间指数信息,因此需要长接近时间来接 近任意节点,并且搜索存储的数据的位置是复杂的,因而基于四叉树环境地图构建方法不 适合于路径计划。
【发明内容】
[0005] -个或多个示例性实施例提供用于构建用于移动机器人的地图的方法和设备,以 减少数据量并增加接近速度从而移动机器人可以在广范围内操作。
[0006] 根据示例性实施例的一方面,提供一种构建用于移动机器人的地图的方法,所述 方法包括:通过扫描移动机器人的周围环境来搜索占据任意空间的多条特征数据;对所述 多条特征数据的第一特征数据执行四叉树分割以产生多条第一节点信息;确定所述多条特 征数据中的第二特征数据针对第一特征数据的位置;执行邻域移动算法,以通过使用所述 多条第一节点信息来根据第二特征数据的位置产生第二特征数据的多条第二节点信息。
[0007] 所述确定位置的步骤可包括:确定第二特征数据位于第一位置、第二位置、第三位 置和第四位置中的一个位置,其中,第一位置、第二位置、第三位置和第四位置彼此成直角。
[0008] 所述执行邻域移动算法的步骤可包括:执行第一邻域移动算法、第二邻域移动算 法、第三邻域移动算法和第四邻域移动算法中的一个算法,以根据第二特征数据的确定的 位置产生第二特征数据的多条第二节点信息。
[0009] 执行第一邻域移动算法、第二邻域移动算法、第三邻域移动算法和第四邻域移动 算法中的一个的步骤包括:响应于确定的位置是第一位置,执行第一邻域移动算法,以产生 第二特征数据的多条第二节点信息;响应于确定的位置是第二位置,执行第二邻域移动算 法,以产生第二特征数据的多条第二节点信息;响应于确定的位置是第三位置,执行第三邻 域移动算法,以产生第二特征数据的多条第二节点信息;响应于确定的位置是第四位置,执 行第四邻域移动算法,以产生第二特征数据的多条第二节点信息。
[0010] 执行第一邻域移动算法、第二邻域移动算法、第三邻域移动算法和第四邻域移动 算法中的一个的步骤可包括:确定第一特征数据的多条第一节点信息中的底节点是否包括 与从第一特征数据到第二特征数据的确定的位置延伸的方向相反的确定方向。
[0011] 执行第一邻域移动算法、第二邻域移动算法、第三邻域移动算法和第四邻域移动 算法中的一个的步骤还可包括:响应于第一特征数据的多条第一节点信息中的底节点具有 所述确定方向,产生第二特征数据的第一多条第二节点信息。
[0012] 执行第一邻域移动算法、第二邻域移动算法、第三邻域移动算法和第四邻域移动 算法中的一个的步骤还可包括:响应于第一特征数据的多条第一节点信息中的底节点具有 从第一特征数据到第二特征数据的确定的位置的方向,产生第二特征数据的第二多条第二 节点信息。
[0013] 产生第二特征数据的第一多条第二节点信息的步骤可包括:将第一特征数据的多 条第一节点信息中的底节点的确定方向改变为从第一特征数据到第二特征数据的确定的 位置的方向;作为将第一节点信息的改变的底节点与第一节点信息的剩余节点组合的结 果,产生第二特征数据的第一多条第二节点信息。
[0014] 产生第二特征数据的第二多条第二节点信息的步骤可包括:将从第一特征数据到 第一特征数据的多条第一节点信息中的底节点的第二特征数据的确定的位置的方向改变 为所述确定方向并移动到底节点的父节点;将父节点的所述确定方向改变为从第一特征 数据到第二特征数据的确定的位置的方向;作为将第一节点信息的改变的底节点和改变的 父节点与第一节点信息的剩余节点组合的结果,产生第二特征数据的第二多条第二节点信 肩、。
[0015] 根据另一示例性实施例的一方面,提供一种用于构建用于移动机器人的地图的设 备,所述设备包括:环境识别单元,被构造为通过扫描移动机器人的周围环境来搜索占据任 意空间的多条特征数据;四叉树信息产生单元,被构造为对所述多条特征数据的第一特征 数据执行四叉树分割以产生多条第一节点信息;搜索单元,被构造为确定所述多条特征数 据中的第二特征数据针对第一特征数据的位置;邻域移动信息产生单元,被构造为执行邻 域移动算法,用于通过使用所述多条第一节点信息来根据第二特征数据的位置产生第二特 征数据的多条第二节点信息。
[0016] 搜索单元可确定第二特征数据位于第一位置、第二位置、第三位置和第四位置中 的一个位置,其中,第一位置、第二位置、第三位置和第四位置可以彼此成直角。
[0017] 邻域移动信息产生单元可执行第一邻域移动算法、第二邻域移动算法、第三邻域 移动算法和第四邻域移动算法中的一个算法,以根据第二特征数据的位置产生第二特征数 据的多条第二节点信息。
[0018] 邻域移动信息产生单元可执行以下操作:响应于确定的位置是第一位置,执行第 一邻域移动算法,以产生第二特征数据的多条第二节点信息;响应于确定的位置是第二位 置,执行第二邻域移动算法,以产生第二特征数据的多条第二节点信息;响应于确定的位置 是第三位置,执行第三邻域移动算法,以产生第二特征数据的多条第二节点信息;响应于确 定的位置是第四位置,执行第四邻域移动算法,以产生第二特征数据的多条第二节点信息。
[0019] 邻域移动信息产生单元可确定第一特征数据的多条第一节点信息中的底节点是 否包括与从第一特征数据到第二特征数据的确定的位置延伸的方向相反的确定方向。
[0020] 邻域移动信息产生单元可响应于第一特征数据的多条第一节点信息中的底节点 具有所述确定方向,产生第二特征数据的第一多条第二节点信息。
[0021] 邻域移动信息产生单元可响应于第一特征数据的多条第一节点信息中的底节点 具有从第一特征数据到第二特征数据的确定的位置的方向,产生第二特征数据的第二多条 第二节点信息。
[0022] 邻域移动信息产生单元可执行以下操作:将第一特征数据的多条第一节点信息中 的底节点的确定方向改变为从第一特征数据到第二特征数据的确定的位置的方向;作为将 第一节点信息的改变的底节点与第一节点信息的剩余节点组合的结果,产生第二特征数据 的第一多条第二节点信息。
[0023] 邻域移动信息产生单元可执行以下操作:将从第一特征数据到第一特征数据的多 条第一节点信息中的底节点的第二特征数据的确定的位置的方向改变为所述确定方向并 移动到底节点的父节点;将所述确定方向改变为从第一特征数据到第二特征数据的确定的 位置的方向;作为将第一节点信息的改变的底节点和改变的父节点与第一节点信息的剩余 节点组合的结果,产生第二特征数据的第二多条第二节点信息。
【专利附图】
【附图说明】
[0024] 通过参照附图详细描述本公开的示例性实施例,本公开的以上和/或其他特征和 优点将变得更清楚,其中:
[0025] 图1是根据示例性实施例的构建用于移动机器人的地图的设备的框图;
[0026] 图2示出作为图1的移动机器人的环境识别的结果而获得的多条特征数据;
[0027] 图3示出根据示例性实施例的设置的地图区域;
[0028] 图4A和图4B示出根据示例性实施例的图1的第一特征数据的四叉树分割和第一 节点信息的产生;
[0029] 图5A至图8B示出根据示例性实施例的图1的第一邻域移动信息、第二邻域移动 信息、第三邻域移动信息和第四邻域移动信息的产生;
[0030] 图9是示出根据示例性实施例的构建用于移动机器人的地图的方法的流程图;
[0031] 图10是示出根据示例性实施例的图9的邻域移动算法的操作的流程图;
[0032] 图11至图14是分别示出根据示例性实施例的图10的第一邻域移动算法至第四 邻域移动算法的操作的流程图。
【具体实施方式】
[0033] 如在此所使用的,术语"和/或"包括一个或多个相关联列表项的任何和所有组 合。
[0034] 本发明构思可允许各种类型的改变或修改,并具有多个实施例,并且将在附图中 示出特定的示例性实施例,并将在以下的详细描述中详细描述这些实施例。然而,应理解, 特定的实施例不将本发明构思限制为特定的公开形式,而是包括在本发明构思的精神和技 术范围中的各种修改、等同或者替代物。在以下的描述中,不会详细描述公知技术,以免用 不必要的细节使示例性实施例模糊。
[0035] 虽然诸如"第一"和"第二"的术语可被用于描述各种实施例,元素不会被术语限 制。术语可被用于将特定元素与另一元素分类。
[0036] 在本申请中使用的术语仅用于描述特定示例性实施例,而不具有任何限制本发明 构思的目的。单数形式的表述包括复数形式的表述,除非在上下文中它们明显彼此不同。在 本申请中,应理解诸如"包括"和"具有"的术语被用于指示实现的特征、数量、步骤、操作、 元素、部件或者它们的组合的存在,而不是预先排除一个或多个其他的特征、数量、步骤、操 作、元素、部件或者它们的组合的存在或添加的可能性。
[0037] 可以以功能块和各种处理步骤来表示本发明构思。这些功能块可由用于执行特定 功能的各种数量的硬件和/或软件构造来实现。例如,示例性实施例可采用在一个或多个 处理器或其它控制装置的控制下执行各种功能的直接电路构造,诸如,存储器、处理逻辑、 查找表。与能够利用软件编程或软件元件执行各种功能的示例性实施例的组件类似,可通 过利用由数据结构、处理、线程或其它编程组件的组合实现的各种算法由编程或脚本语言 (诸如C、C++、Java、汇编等)来实现示例性实施例。可利用在一个或多个处理器中执行的算 法实现功能性方面。此外,示例性实施例可采用用于电子环境设置、信号处理和/或数据处 理的现有技术。诸如"机械"、"元件"、"装置"和"构造"被广泛使用并且不限于机械或物理 构造。术语可包括与处理器相关联的一系列软件线程的意义。
[0038] 在本说明书中使用的术语"特征数据"指示占据任意空间的障碍物,该障碍物由移 动机器人针对任意空间通过环境识别(传感器扫描或捕捉图像)来识别,并且特征数据可包 括指示障碍物的位置信息或地址信息。此外,在本说明书中使用的"第一特征数据"指示由 移动机器人发现的任意特征数据,并可包括例如由移动机器人第一次发现的特征数据。此 外,"第二特征数据"可包括由移动机器人在发现第一特征数据之后发现的特征数据。
[0039] 在本说明书中,"第一方向"可指示东,"第二方向"可指示西,"第三方向"可指示 南,"第四方向"可指示北。
[0040] 现在将参照附图详细描述示例性实施例。附图中的相同标号表示相同元件,因此 将不再重复其描述。
[0041] 图1是示出根据示例性实施例的用于构建用于移动机器人100的地图(如图2中 所示)的设备10的框图。
[0042] 参照图1,设备10包括在移动机器人100中,并可包括控制单元110、驱动单元 120、用户接口单元130、存储单元140和地图构建单元150。
[0043] 控制单元110包括微处理器(未示出)并控制设备10的总体操作。控制单元110 通过配备有设备10的移动机器人100的位置识别来控制移动机器人100在任意空间sa中 沿任意方向的移动,通过收集根据移动机器人100的移动产生的数据来控制地图构建,并 控制将产生的所有数据写入(存储)在存储单元140中或从存储单元140读取数据。
[0044] 驱动单元120包括例如驱动电机(未示出)并移动配备有设备10的移动机器人 100。具体地说,驱动单元120根据从控制单元110接收到的控制信号在任意空间Sa中移 动移动机器人100。
[0045] 用户接口单元130可接收开始点和目标点的坐标以使得移动机器人100移动,并 且用户接口单元130还可接收用于使用户将工作命令输入移动机器人100的切换操纵信号 或语音信号。此外,用户接口单元130可设置将被移动机器人100构建的地图的尺寸。地 图可以是比例地图,其中,移动机器人100的实际行驶区域根据预定比例缩小,并且可通过 用户接口单元130设置地图的尺寸。图2示出作为移动机器人100在任意空间S a (例如, 32Km长32Km宽)中行驶的同时获得的环境识别结果的多条特征数据。图3示出显示移动 机器人100的实际行驶空间的设置的地图区域,其中,每个小格(cell) 30的尺寸被设置为 lKm长乘lKm宽。
[0046] 地图构建单元150通过扫描移动机器人100的周围环境来搜索多条特征数据,并 使用通过对发现的特征数据执行四叉树分割和邻域移动算法而产生的位置信息来构建地 图。
[0047] 在当前示例性实施例中,地图构建单元150可包括环境识别单元151、四叉树信息 产生单元152、搜索单元153和邻域移动信息产生单元154。
[0048] 环境识别单元151收集通过由移动机器人100在控制单元110的控制下使用距离 测量传感器(未示出)扫描(也已知为执行环境识别)任意空间&而搜索到的多条特征数据, 其中,距离测量传感器包括例如超声传感器、红外传感器、激光传感器等。此外,环境识别单 元151收集在使用图像捕捉单元(未示出)捕捉到的图像中搜索到的多条特征数据,其中, 图像捕捉单元包括例如相机、立体相机等。图2示出由标号1至12表示的多条特征数据, 作为在移动机器人100在任意空间S a中移动的同时获得的环境识别结果,并且移动机器人 100可检测通过环境识别搜索到的多条特征数据的大致位置。
[0049] 四叉树信息产生单元152通过对移动机器人100发现的多条特征数据中的第一特 征数据执行四叉树分割来产生多条第一节点信息。例如,如果第一特征数据是图2中的1, 则当对第一特征数据执行四叉树分割时,第一特征数据可如图3中所示。
[0050] 作为四叉树分割的结果,在除了顶节点(也被称为ROOT (根))之外的包括第一特 征数据的所有子节点中产生节点信息,并且每个节点信息包括第一方向(东:E)和第二方向 (西:W)中的任何一个以及第三方向(南:S)和第四方向(北:N)中的任何一个。以下,为了描 述的方便,由E表不第一方向,由W表不第二方向,由S表不第三方向,由N表不第四方向。
[0051] 现在将描述图3中示出的第一特征数据"1"的四叉树分割。四叉树信息产生单元 152在图3中设置的整个地图区域中从顶节点(ROOT)开始,并将整个地图区域分割为四个 空间NW、NE、SW和SE作为第一父节点NP1,其中,第一特征数据位于第一父节点NP1的空间 NW中。接下来,四叉树信息产生单元152将第一父节点NP1的空间NW分割为四个空间NW、 NE、SW和SE作为第二父节点NP2,其中,第一特征数据位于第二父节点NP2的空间SW中。接 下来,四叉树信息产生单元152将第二父节点NP2的空间SW分割为四个空间NW、NE、SW和 SE作为第三父节点NP3,其中,第一特征数据位于第三父节点NP3的空间SE中。接下来,四 叉树信息产生单元152将第三父节点NP3的空间SE分割为四个空间NW、NE、SW和SE作为 第四父节点NP4,其中,第一特征数据位于第四父节点NP4的空间NW中。接下来,四叉树信 息产生单元152将第四父节点NP4的空间NW分割为四个空间NW、NE、SW和SE,其中,第一 特征数据位于指示底节点的空间NW中。如上所述,作为第一特征数据的四叉树分割的结果 产生的多条第一节点信息是R00T、NW、SW、SE、NW和NW。图4A示出第一特征数据的四叉树 分割,图4B示出存储在存储单元140中的第一特征数据的多条第一节点信息。
[0052] 搜索单元153针对第一特征数据的位置确定第二特征数据的位置。搜索单元153 可确定由图2中的移动机器人100发现的多条特征数据中的最接近第一特征数据的第二特 征数据或者在发现第一特征数据之后接续发现的第二特征数据的位置。搜索单元153可将 第二特征数据的位置确定为针对第一特征数据的位置的第一位置至第四位置之一。这里, 由于将在下面描述的邻域移动算法的操作根据由搜索单元153确定的第二特征数据针对 第一特征数据的位置而不同,因此针对第一特征数据的位置确定是重要的。
[0053] 在当前示例性实施例中,为了描述的方便,以图2中示出的顺序描述多条特征数 据。参照图2,第二特征数据是"2",第三特征数据是"3",推而广之,第十二特征数据是 "12"。如图2中所示,第二特征数据、第三特征数据和第四特征数据位于针对第一特征数据 的第一位置,即,右侧。第五特征数据、第六特征数据和第七特征数据位于针对第四特征数 据的第三位置,即,下侧。第八特征数据、第九特征数据和第十特征数据位于针对第七特征 数据的第二位置,即,左侧。第十一特征数据和第十二特征数据位于针对第十特征数据的第 四位置,即,上侧。
[0054] 邻域移动信息产生单元154基于第一特征数据的多条第一节点信息,通过对第二 特征数据的每个位置执行不同的邻域移动算法来产生第二特征数据的多条第二节点信息, 其中,第二特征数据的每个位置由搜索单元153确定。
[0055] 邻域移动算法是用于基于第一特征数据的多条第一节点信息产生第二特征数据 的多条第二节点信息的算法。在现有技术中,由于对第一特征数据执行的相同四叉树分割 需要被再次执行以产生第二特征数据的多条第二节点信息,因此需要长接近时间,并且位 置确定复杂。然而,通过执行根据当前示例性实施例的邻域移动算法,可解决上述缺点。
[0056] 此外,根据当前示例性实施例的邻域移动算法可被分类为第一邻域移动算法至第 四邻域移动算法。响应于第二特征数据位于针对搜索单元153的确定结果的第一位置(即, 右侧)而执行第一邻域移动算法;响应于第二特征数据位于针对搜索单元153的确定结果 的第二位置(即,左侧)而执行第二邻域移动算法;响应于第二特征数据位于针对搜索单元 153的确定结果的第三位置(S卩,下侧)而执行第三邻域移动算法;响应于第二特征数据位于 针对搜索单元153的确定结果的第四位置(S卩,上侧)而执行第四邻域移动算法。
[0057] 现在将描述在邻域移动信息产生单元154中通过执行第一邻域移动算法和第二 邻域移动算法来产生第二特征数据的多条第二节点信息的处理。
[0058] 首先,现在将参照图5A至图5C描述在邻域移动信息产生单元154中执行第一邻 域移动算法的处理。
[0059] 邻域移动信息产生单元154确定第一特征数据"1"的多条第一节点信息中的底 节点N B是否包括W。参照图5A,由于第一特征数据" 1"的底节点由NW指示,因此第一特征 数据" 1"的底节点NB包括W。在此情况下,邻域移动信息产生单元154将底节点NB中的W 改变为E(①)并移动至父节点直到发现包括W的节点(②)。在图5A中,由于第四父节 点NP4由NW指示并包括W,因此邻域移动信息产生单元154从底节点N B移动到第四父节点 NP4,结束第一邻域移动算法,并作为将顶节点ROOT到第四父节点NP4的现有节点信息与改 变的底节点队信息组合的结果(③),产生第二特征数据"2"的多条第二节点信息。因此, 产生的第二特征数据"2"的多条第二节点信息是ROOT、NW、SW、SE、NW和NE。如果即使在移 动过父节点时邻域移动信息产生单元154也不能发现包括W的节点信息,S卩,如果W没有被 包括在第四父节点NP4至顶节点ROOT中的任何节点中,则通过将从当前节点(顶节点ROOT) 到改变的底节点N B的搜索结果设置为多条第二节点信息来完成搜索。由于通过排除改变 的底节点NB而剩余的节点(第四父节点NP4至顶节点ROOT)已经被产生,因此快速完成对 多条第二节点信息的搜索,从而花费的时间比现有技术的四叉树分割更少。
[0060] 当完成第二特征数据"2"的多条第二节点信息的产生时,第二特征数据"2"变成 第一特征数据,并且产生位于针对第一特征数据"2"的第一位置(S卩,右侧)的第二特征数 据"3"的多条第二节点信息。邻域移动信息产生单元154确定第一特征数据"2"的多条第 一节点信息中的底节点N B是否包括W,如果第一特征数据"2"的底节点NB不包括W,则邻域 移动信息产生单元154确定第一特征数据"2"的底节点N B是否包括E。参照图5B,由于第 一特征数据"2"的底节点信息是NE,因此第一特征数据"2"的底节点NB包括E。在此情况 下,邻域移动信息产生单元154将底节点N B中的E改变为W并移动至父节点(①)。之后, 邻域移动信息产生单元154确定父节点是否包括W。如果父节点包括W,则邻域移动信息产 生单元154将W改为E (②)。之后,邻域移动信息产生单元154移动至父节点直到发现包 括W的节点(③)。在图5B中,由于第二父节点NP2由SW指示并包括W,因此邻域移动信 息产生单元154从底节点N B移动到第二父节点NP2。之后,邻域移动信息产生单元154结 束第一邻域移动算法,并且作为将顶节点ROOT到第三父节点NP3的现有节点信息与改变的 第四父节点信息(②)、改变的底节点信息组合的结果(④),产生第二特征数据"3"的多 条第二节点信息。因此,产生的第二特征数据"3"的多条第二节点信息是R00T、NW、SW、SE、 NE和NW。如果即使在移动到父节点时邻域移动信息产生单元154也不能发现包括W的节 点信息,即,如果W没有被包括在第三父节点NP3至顶节点ROOT中的任何节点中,则通过将 从当前节点(顶节点ROOT)到改变的节点(底节点N B和第四父节点NP4)的搜索结果设置为 多条第二节点信息来完成搜索。由于通过排除改变的底节点NB和改变的第四父节点NP4而 剩余的节点(第三父节点NP3至顶节点ROOT)已经被产生,因此快速完成对多条第二节点信 息的搜索,从而花费的时间比现有技术的四叉树分割更少。
[0061] 当完成第二特征数据"3"的多条第二节点信息的产生时,第二特征数据"3"变成 第一特征数据,并且产生位于针对第一特征数据"3"的第一位置(S卩,右侧)的第二特征数据 "4"的多条第二节点信息。邻域移动信息产生单元154确定第一特征数据"3"的多条第一 节点信息中的底节点队是否包括W。参照图5C,由于第一特征数据"3"的底节点信息是NW, 因此第一特征数据"3"的底节点N B包括W。在此情况下,邻域移动信息产生单元154将底 节点NB中的W改变为E (①)并移动至父节点直到发现包括W的节点(②)。在图5C中, 由于第二父节点NP2由SW指示并包括W,因此邻域移动信息产生单元154从底节点队移 动到第二父节点,结束第一邻域移动算法,并且作为将顶节点ROOT到第四父节点NP4的现 有节点信息与改变的底节点信息组合的结果,产生第二特征数据"4"的多条第二节点信息 (③)。因此,产生的第二特征数据"4"的多条第二节点信息是ROOT、NW、SW、SE、NE和NE。 如果即使在移动过父节点时邻域移动信息产生单元154也不能发现包括W的节点信息,即, 如果W没有被包括在第四父节点NP4至顶节点ROOT中的任何节点中,则通过将从当前节点 (顶节点ROOT)到改变的底节点的搜索结果设置为多条第二节点信息来完成搜索。由于通 过排除改变的底节点而剩余的节点(第四父节点NP4至顶节点ROOT)已经被产生,因此快速 完成对多条第二节点信息的搜索,从而花费的时间比现有技术的四叉树分割更少。
[0062] 如上所述,对于第一特征数据的多条第一节点信息中的底节点NB包括W的情况和 底节点包括E的情况,可分别执行第一邻域移动算法。当底节点包括W时,通过仅将底节点 中的W改变为E来产生第二特征数据的多条第二节点信息。同时,当底节点包括E时,通过 将底节点中的E改变为W、移动到父节点并将父节点中的W改变为E,来产生第二特征数据 的多条第二节点信息。
[0063] 接下来,现在将参照图6A至图6C描述在邻域移动信息产生单元154中执行第二 邻域移动算法的处理。
[0064] 邻域移动信息产生单元154确定第一特征数据"7"的多条第一节点信息中的底节 点N B是否包括E。参照图6A,由于第一特征数据"7"的底节点信息是SE,因此第一特征数 据"7"的底节点包括E。在此情况下,邻域移动信息产生单元154将底节点N B中的E改变 为W(①)并移动至父节点直到发现包括E的节点(②)。在图6A中,由于第四父节点NP4 由SE指示并包括E,因此邻域移动信息产生单元154从底节点N B移动到第四父节点NP4, 结束第二邻域移动算法,并且作为将顶节点ROOT到第四父节点NP4的现有节点信息与改变 的底节点信息组合的结果(③),产生第二特征数据"8"的多条第二节点信息。因此,产生 的第二特征数据"8"的多条第二节点信息是R00T、NW、SW、SE、SE和SW。如果即使在移动到 父节点时邻域移动信息产生单元154也不能发现包括E的节点信息,S卩,如果E没有被包括 在第四父节点NP4至顶节点ROOT中的任何节点中,则通过将从当前节点(顶节点ROOT)到 改变的底节点N B的搜索结果设置为多条第二节点信息来完成搜索。由于通过排除改变的 底节点NB而剩余的节点(第四父节点NP4至顶节点ROOT)已经被产生,因此快速完成对多 条第二节点信息的搜索,从而花费的时间比现有技术的四叉树分割更少。
[0065] 当完成第二特征数据"8"的多条第二节点信息的产生时,第二特征数据"8"变成 第一特征数据,并且产生位于针对第一特征数据"8"的第二位置(S卩,左侧)的第二特征数 据"9"的多条第二节点信息。邻域移动信息产生单元154确定第一特征数据"8"的多条第 一节点信息中的底节点NB是否包括E,如果第一特征数据"8"的底节点N B不包括E,则邻域 移动信息产生单元154确定第一特征数据"8"的底节点NB是否包括W。参照图6B,由于第 一特征数据"8"的底节点信息是SW,因此第一特征数据"8"的底节点N B包括W。在此情况 下,邻域移动信息产生单元154将底节点NB中的W改变为E并移动至父节点(①)。之后, 邻域移动信息产生单元154确定父节点是否包括E。如果父节点包括E,则邻域移动信息产 生单元154将E改为W (②)。之后,邻域移动信息产生单元154移动至父节点直到发现包 括E的节点(③)。在图6B中,由于第三父节点NP3由SE指示并包括E,因此邻域移动信 息产生单元154从底节点N B移动到第三父节点NP3。之后,邻域移动信息产生单元154结 束第二邻域移动算法,并且作为将顶节点ROOT到第三父节点NP3的现有节点信息与改变的 第四父节点信息(②)、改变的底节点信息组合的结果(④),产生第二特征数据"9"的多 条第二节点信息。因此,产生的第二特征数据"9"的多条第二节点信息是R00T、NW、SW、SE、 SW和SE。如果即使在移动到父节点时邻域移动信息产生单元154也不能发现包括E的节 点信息,即,如果E没有被包括在第三父节点NP3至顶节点ROOT中的任何节点中,则通过将 从当前节点(顶节点ROOT)到改变的节点(底节点NB和第四父节点NP4)的搜索结果设置为 多条第二节点信息来完成搜索。由于通过排除改变的底节点NB和改变的第四父节点NP4而 剩余的节点(第三父节点NP3至顶节点ROOT)已经被产生,因此快速完成对多条第二节点信 息的搜索,从而花费的时间比现有技术的四叉树分割更少。
[0066] 当完成第二特征数据"9"的多条第二节点信息的产生时,第二特征数据"9"变成 第一特征数据,并且产生位于针对第一特征数据"9"的第二位置(S卩,左侧)的第二特征数据 "10"的多条第二节点信息。邻域移动信息产生单元154确定第一特征数据"9"的多条第一 节点信息中的底节点NB是否包括E。参照图6C,由于第一特征数据"9"的底节点信息是SE, 因此第一特征数据"9"的底节点N B包括E。在此情况下,邻域移动信息产生单元154将底 节点NB中的E改变为W(①)并移动至父节点直到发现包括E的节点(②)。在图6C中, 由于第三父节点NP3由SE指示并包括E,因此邻域移动信息产生单元154从底节点N B移动 到第三父节点,结束第二邻域移动算法,并且作为将顶节点ROOT到第四父节点NP4的现有 节点信息与改变的底节点信息组合的结果(③),产生第二特征数据" 10"的多条第二节点 信息。因此,产生的第二特征数据" 10"的多条第二节点信息是ROOT、NW、SW、SE、SW和SW。 如果即使在移动过父节点时邻域移动信息产生单元154也不能发现包括E的节点信息,即, 如果E没有被包括在第四父节点NP4至顶节点ROOT中的任何节点中,则通过将从当前节点 (顶节点ROOT)到改变的底节点N B的搜索结果设置为多条第二节点信息来完成搜索。由于 通过排除改变的底节点NB而剩余的节点(第四父节点NP4至顶节点ROOT)已经被产生,因 此快速完成对多条第二节点信息的搜索,从而花费的时间比现有技术的四叉树分割更少。 [0067] 如上所述,对于第一特征数据的多条第一节点信息中的底节点NB包括E的情况和 底节点包括W的情况,可分别执行第二邻域移动算法。当底节点NB包括E时,仅通过将底节 点中的E改变为W来产生第二特征数据的多条第二节点信息。同时,当底节点NB包括W时, 通过将底节点N B中的W改变为E、移动到父节点并将父节点中的E改变为W,来产生第二特 征数据的多条第二节点信息。
[0068] 接下来,现在将参照图7A至图7C描述邻域移动信息产生单元154中执行第三邻 域移动算法的处理。
[0069] 邻域移动信息产生单元154确定第一特征数据"4"的多条第一节点信息中的底节 点NB是否包括N。参照图7A,由于第一特征数据"4"的底节点信息是NE,因此第一特征数 据"4"的底节点包括N。在此情况下,邻域移动信息产生单元154将底节点NB中的N改变 为S(①)并移动至父节点直到发现包括N的节点(②)。在图7A中,由于第四父节点NP4 由NE指示并包括N,因此邻域移动信息产生单元154从底节点N B移动到第四父节点NP4, 结束第三邻域移动算法,并且作为将顶节点ROOT到第四父节点NP4的现有节点信息与改变 的底节点信息组合的结果(③),产生第二特征数据"5"的多条第二节点信息。因此,产生 的第二特征数据"5"的多条第二节点信息是R00T、NW、SW、SE、NE和SE。如果即使在移动到 父节点时邻域移动信息产生单元154也不能发现包括N的节点信息,S卩,如果N没有被包括 在第四父节点NP4至顶节点ROOT中的任何节点中,则通过将从当前节点(顶节点ROOT)到 改变的底节点N B的搜索结果设置为多条第二节点信息来完成搜索。由于通过排除改变的 底节点NB而剩余的节点(第四父节点NP4至顶节点ROOT)已经被产生,因此快速完成对多 条第二节点信息的搜索,从而花费的时间比传统的四叉树分割更少。
[0070] 当完成第二特征数据"5"的多条第二节点信息的产生时,第二特征数据"5"变成 第一特征数据,并且产生位于针对第一特征数据"5"的第三位置(S卩,下侧)的第二特征数 据"6"的多条第二节点信息。邻域移动信息产生单元154确定第一特征数据"5"的多条第 一节点信息中的底节点N B是否包括N,如果第一特征数据"5"的底节点NB不包括N,则邻域 移动信息产生单元154确定第一特征数据"5"的底节点N B是否包括S。参照图7B,由于第 一特征数据"5"的底节点信息是SE,因此第一特征数据"5"的底节点NB包括S。在此情况 下,邻域移动信息产生单元154将底节点N B中的S改变为N并移动至父节点(①)。之后, 邻域移动信息产生单元154确定父节点是否包括N。如果父节点包括N,则邻域移动信息产 生单元154将N改为S (②)。之后,邻域移动信息产生单元154移动至父节点直到发现包 括N的节点(③)。在图7B中,由于第一父节点NP1由NW指示并包括N,因此邻域移动信 息产生单元154从底节点N B移动到第一父节点NP1。之后,邻域移动信息产生单元154结 束第三邻域移动算法,并且作为将顶节点ROOT到第三父节点NP3的现有节点信息与改变的 第四父节点信息(②)、改变的底节点信息组合的结果(④),产生第二特征数据"6"的多 条第二节点信息。因此,产生的第二特征数据"6"的多条第二节点信息是R00T、NW、SW、SE、 SE和NE。如果即使在移动到父节点时邻域移动信息产生单元154也不能发现包括N的节 点信息,即,如果N没有被包括在第三父节点至顶节点ROOT中的任何节点中,则通过将从当 前节点(顶节点ROOT)到改变的节点(底节点N B和第四父节点NP4)的搜索结果设置为多条 第二节点信息来完成搜索。由于通过排除改变的底节点NB和改变的第四父节点NP4而剩 余的节点(第三父节点NP3至顶节点ROOT)已经被产生,因此快速完成对多条第二节点信息 的搜索,从而花费的时间比现有技术的四叉树分割更少。
[0071] 当完成第二特征数据"6"的多条第二节点信息的产生时,第二特征数据"6"变成 第一特征数据,并且产生位于针对第一特征数据"6"的第三位置(S卩,下侧)的第二特征数据 "7"的多条第二节点信息。邻域移动信息产生单元154确定第一特征数据"6"的多条第一 节点信息中的底节点N B是否包括N。参照图7C,由于第一特征数据"6"的底节点信息是NE, 因此第一特征数据"6"的底节点NB包括N。在此情况下,邻域移动信息产生单元154将底 节点N B中的N改变为S(①)并移动至父节点直到发现包括N的节点(②)。在图7C中, 由于第一父节点NP1由NE指示并包括N,因此邻域移动信息产生单元154从底节点N B移动 到第一父节点,结束第三邻域移动算法,并且作为将顶节点ROOT到第四父节点NP4的现有 节点信息与改变的底节点信息组合的结果(③),产生第二特征数据"7"的多条第二节点 信息。因此,产生的第二特征数据"7"的多条第二节点信息是ROOT、NW、SW、SE、SE和SE。 如果即使在移动过父节点时邻域移动信息产生单元154也不能发现包括N的节点信息,即, 如果N没有被包括在第四父节点NP4至顶节点ROOT中的任何节点中,则通过将从当前节点 (顶节点ROOT)到改变的底节点N B的搜索结果设置为多条第二节点信息来完成搜索。由于 通过排除改变的底节点NB而剩余的节点(第四父节点NP4至顶节点ROOT)已经被产生,因 此快速完成对多条第二节点信息的搜索,从而花费的时间比传统的四叉树分割更少。
[0072] 如上所述,对于第一特征数据的多条第一节点信息中的底节点NB包括N的情况和 底节点N B包括S的情况,可分别执行第三邻域移动算法。当底节点NB包括N时,仅通过将 底节点N B中的N改变为S来产生第二特征数据的多条第二节点信息。同时,当底节点NB包 括S时,通过将底节点N B中的S改变为N、移动到父节点并将父节点中的N改变为S,来产 生第二特征数据的多条第二节点信息。
[0073] 接下来,现在将参照图8A至图8B描述在邻域移动信息产生单元154中执行第四 邻域移动算法的处理。
[0074] 邻域移动信息产生单元154确定第一特征数据"10"的多条第一节点信息中的底 节点N B是否包括S。参照图8A,由于第一特征数据"10"的底节点信息是SW,因此第一特 征数据"10"的底节点包括S。在此情况下,邻域移动信息产生单元154将底节点N B中的S 改变为N(①)并移动至父节点直到发现包括S的节点(②)。在图8A中,由于第四父节 点NP4由SW指示并包括S,因此邻域移动信息产生单元154从底节点N B移动到第四父节点 NP4,结束第四邻域移动算法,并且作为将顶节点ROOT到第四父节点NP4的现有节点信息与 改变的底节点信息组合的结果(③),产生第二特征数据"11"的多条第二节点信息。因此, 产生的第二特征数据"11"的多条第二节点信息是ROOT、NW、SW、SE、SW和NW。如果即使在 移动到父节点时邻域移动信息产生单元154也不能发现包括S的节点信息,S卩,如果S没 有被包括在第四父节点NP4至顶节点ROOT中的任何节点中,则通过将从当前节点(顶节点 ROOT)到改变的底节点N B的搜索结果设置为多条第二节点信息来完成搜索。由于通过排除 改变的底节点NB而剩余的节点(第四父节点NP4至顶节点ROOT)已经被产生,因此快速完 成对多条第二节点信息的搜索,从而花费的时间比传统的四叉树分割更少。
[0075] 当完成第二特征数据"11"的多条第二节点信息的产生时,第二特征数据"11"变 成第一特征数据,并且产生位于针对第一特征数据" 11"的第四位置(即,上侧)的第二特征 数据"12"的多条第二节点信息。邻域移动信息产生单元154确定第一特征数据"11"的多 条第一节点信息中的底节点N B是否包括S,如果第一特征数据" 11"的底节点NB不包括S,则 邻域移动信息产生单元154确定第一特征数据" 11"的底节点NB是否包括N。参照图8B,由 于第一特征数据" 11"的底节点信息是NW,因此第一特征数据" 11"的底节点NB包括N。在 此情况下,邻域移动信息产生单元154将底节点NB中的N改变为S并移动至父节点(①)。 之后,邻域移动信息产生单元154确定父节点是否包括S。如果父节点包括S,则邻域移动 信息产生单元154将S改为N (②)。之后,邻域移动信息产生单元154移动至父节点直到 发现包括S的节点(③)。在图8B中,由于第三父节点NP1由SE指示并包括S,因此邻域 移动信息产生单元154从底节点N B移动到第三父节点。之后,邻域移动信息产生单元154 结束第四邻域移动算法,并且作为将顶节点ROOT到第三父节点NP3的现有节点信息与改变 的第四父节点信息(②)、改变的底节点信息组合的结果(④),产生第二特征数据"12"的 多条第二节点信息。因此,产生的第二特征数据"12"的多条第二节点信息是ROOT、NW、SW、 SE、NW和SW。如果即使在移动到父节点时邻域移动信息产生单元154也不能发现包括S的 节点信息,即,如果S没有被包括在第三父节点NP3至顶节点ROOT中的任何节点中,则通过 将从当前节点(顶节点ROOT)到改变的节点(底节点N B和第四父节点NP4)的搜索结果设置 为多条第二节点信息来完成搜索。由于通过排除改变的底节点NB和改变的第四父节点NP4 而剩余的节点(第三父节点NP3至顶节点ROOT)已经被产生,因此快速完成对多条第二节点 信息的搜索,从而花费的时间比现有技术的四叉树分割更少。
[0076] 如上所述,对于第一特征数据的多条第一节点信息中的底节点NB包括S的情况和 底节点N B包括N的情况,可分别执行第四邻域移动算法。当底节点NB包括S时,仅通过将 底节点N B中的S改变为N来产生第二特征数据的多条第二节点信息。同时,当底节点队包 括N时,通过将底节点NB中的N改变为S、移动到父节点并将父节点中的S改变为N,来产 生第二特征数据的多条第二节点信息。
[0077] 如上所述,地图构建单元150通过使用基于第一特征数据的第二特征数据的位置 确定结果并使用第一特征数据的多条第一节点信息,来产生第二特征数据的多条第二节点 信息,并通过使用多条第一节点信息和多条第二节点信息来构建地图。
[0078] 现在将参照图9至图14描述根据示例性实施例的构建用于移动机器人100的方 法。可由地图构建单元150与图1中示出的移动机器人100的其他组件一起执行该方法。 在下面的描述中,将不重复参照图1至图8B的描述。
[0079] 图9是示出根据示例性实施例的构建用于移动机器人100的地图的方法的流程 图。
[0080] 参照图9,在操作S100,地图构建单元150通过扫描移动机器人100的周围环境来 搜索占据任意空间s a的多条特征数据。地图构建单元150可通过由移动机器人100使用距 离测量传感器扫描(也已知为执行环境识别)任意空间S a来搜索多条特征数据,其中,距离 测量传感器包括例如超声传感器、红外传感器、激光传感器等。此外,地图构建单元150可 在使用图像捕捉单元(未示出)捕捉到的图像中搜索多条特征数据,其中,图像捕捉单元包 括例如相机、立体相机等。地图构建单元150可检测通过执行的环境识别搜索到的多条特 征数据的大致位置。
[0081] 在完成多条特征数据的搜索之后,在操作S200,地图构建单元150对第一特征数 据执行四叉树分割并产生多条第一节点信息作为四叉树分割的结果。作为四叉树分割的结 果,在除了顶节点ROOT之外的包括第一特征数据的所有子节点中产生节点信息,并且每个 节点信息包括S和N中的任何一个方向以及E和W中的任何一个方向。例如,参照图2和 图3,作为第一特征数据" 1"的四叉树分割的结果的多条第一节点信息是ROOT、NW、SW、SE、 NW 和 NW。
[0082] 在第一特征数据的多条第一节点信息的产生之后,在操作S300,地图构建单元 150针对第一特征数据的位置确定第二特征数据的位置。地图构建单元150可确定由移动 机器人100发现的多条特征数据中的最接近第一特征数据的第二特征数据的位置,或者确 定在第一特征数据之后接续发现的第二特征数据。搜索单元153可将第二特征数据的位 置确定为针对第一特征数据的位置的第一位置至第四位置(即,右侧、左侧、上侧和下侧)之 一。这里,由于将在下面描述的邻域移动算法的操作根据搜索单元153搜索的第二特征数 据的位置而不同,因此位置搜索是重要的。
[0083] 在完成针对第一特征数据的位置确定第二特征数据的位置之后,在操作S400,地 图构建单元150执行邻域移动算法,用于基于第一特征数据的多条第一节点信息来针对第 二特征数据的每个发现的位置产生第二特征数据的多条第二节点信息。根据现有技术,由 于对第一特征数据执行的相同四叉树分割需要被执行以产生第二特征数据的多条第二节 点信息,因此需要长接近时间,并且位置搜索复杂。然而,通过执行根据当前示例性实施例 的邻域移动算法,可解决上述缺点。
[0084] 图10是示出图9的邻域移动算法的操作的流程图。
[0085] 参照图10,在操作S410,当第二特征数据位于第一特征数据的第一位置(右侧)时, 地图构建单元150执行第一邻域移动算法,用于使用第一特征数据的多条第一节点信息产 生第一位置处的第二特征数据的多条第二节点信息。
[0086] 在操作S420,当第二特征数据位于第一特征数据的第二位置(左侧)时,地图构建 单元150执行第二邻域移动算法,用于使用第一特征数据的多条第一节点信息产生第二位 置处的第二特征数据的多条第二节点信息。
[0087] 在操作S430,当第二特征数据位于第一特征数据的第三位置(下侧)时,地图构建 单元150执行第三邻域移动算法,用于使用第一特征数据的多条第一节点信息产生第三位 置处的第二特征数据的多条第二节点信息。
[0088] 在操作S440,当第二特征数据位于第一特征数据的第四位置(上侧)时,地图构建 单元150执行第四邻域移动算法,用于使用第一特征数据的多条第一节点信息产生第二位 置处的第二特征数据的多条第二节点信息。
[0089] 第一邻域移动算法至第四邻域移动算法不必要按上述顺序执行,并且可根据第二 特征数据的位置执行第一邻域移动算法至第四邻域移动算法中的任何一个。
[0090] 图11是示出图10的第一邻域移动算法S410的操作的流程图。
[0091] 参照图11,在操作S411,地图构建单元150确定第一特征数据的多条第一节点信 息中的底节点N B是否包括第二方向(W)。
[0092] 作为确定的结果,如果第一特征数据的多条第一节点信息中的底节点队包括第二 方向(W),则在操作S412,地图构建单元150将第二方向(W)改变为第一方向(E)。
[0093] 当完成改变之后,在操作S413,地图构建单元150移动至父节点直到发现包括第 二方向(W)的节点。
[0094] 在操作S414,如果发现包括第二方向(W)的节点,则地图构建单元150结束第一邻 域移动算法,并且作为将顶节点ROOT至第四父节点NP4的现有节点信息与改变的底节点信 息组合的结果,产生第二特征数据的多条第二节点信息。
[0095] 作为确定的结果,如果第一特征数据的多条第一节点信息中的底节点队不包括第 二方向(W),则地图构建单元150在操作S415确定第一特征数据的多条第一节点信息中的 底节点NB是否包括第一方向(E)。
[0096] 作为操作S415的确定的结果,如果第一特征数据的多条第一节点信息中的底节 点队包括第一方向(E),则在操作S416,地图构建单元150将第一方向(E)改变为第二方向 (W)并移动到父节点。
[0097] 在完成移动到父节点之后,在操作S417,地图构建单元150将包括第二方向(W)的 父节点的第二方向(W)改变为第一方向(E)。
[0098] 在完成操作S417的改变之后,在操作S418,地图构建单元150移动到父节点直到 发现包括第二方向(W)的节点。
[0099] 在操作S419,如果发现包括第二方向(W)的节点,则地图构建单元150结束第一邻 域移动算法,并且作为将顶节点ROOT至第三父节点NP3的现有节点信息与改变的第四父节 点信息、改变的底节点信息组合的结果,产生第二特征数据的多条第二节点信息。
[0100] 如果即使执行了操作S413和S418也没有发现包括第二方向(W)的节点信息,则通 过将直至当前的节点改变结果(仅改变底节点的结果或仅改变底节点N B和第四父节点NP4 的结果)设置为多条第二节点信息来完成搜索。
[0101] 如上所述,对于第一特征数据的多条第一节点信息中的底节点NB包括W的情况和 底节点NB包括E的情况,可分别执行第一邻域移动算法。当底节点NB包括W时,仅通过将 底节点中的W改变为E来产生第二特征数据的多条第二节点信息。同时,当底节点NB包括 E时,通过将底节点NB中的E改变为W、移动到父节点并将父节点中的W改变为E,来产生第 二特征数据的多条第二节点信息。
[0102] 图12是示出图10的第二邻域移动算法的操作的流程图。
[0103] 参照图12,在操作S421,地图构建单元150确定第一特征数据的多条第一节点信 息中的底节点N B是否包括第一方向(E)。
[0104] 作为确定的结果,如果第一特征数据的多条第一节点信息中的底节点队包括第一 方向(E),则在操作S422,地图构建单元150将第一方向(E)改变为第二方向(W)。
[0105] 当完成改变之后,在操作S423,地图构建单元150移动至父节点直到发现包括第 一方向(E)的节点。
[0106] 在操作S424,如果发现包括第一方向(E)的节点,则地图构建单元150结束第二邻 域移动算法,并且作为将顶节点ROOT至第四父节点NP4的现有节点信息与改变的底节点信 息组合的结果,产生第二特征数据的多条第二节点信息。
[0107] 作为确定的结果,如果第一特征数据的多条第一节点信息中的底节点队不包括第 一方向(E),则地图构建单元150在操作S425确定第一特征数据的多条第一节点信息中的 底节点是否包括第二方向(W)。
[0108] 作为操作S425的确定的结果,如果第一特征数据的多条第一节点信息中的底节 点NB包括第二方向(W),则在操作S426,地图构建单元150将第二方向(W)改变为第一方向 (E)并移动到父节点。
[0109] 在完成移动到父节点之后,在操作S427,地图构建单元150将包括第一方向(E)的 父节点的第一方向(E)改变为第二方向(W)。
[0110] 在完成操作S427的改变之后,在操作S428,地图构建单元150移动到父节点直到 发现包括第一方向(E)的节点。
[0111] 在操作S429,如果发现包括第一方向(E)的节点,则地图构建单元150结束第二邻 域移动算法,并且作为将顶节点ROOT至第三父节点NP3的现有节点信息与改变的第四父节 点信息、改变的底节点信息组合的结果,产生第二特征数据的多条第二节点信息。
[0112] 如果即使执行了操作S423和S428也没有发现包括第一方向(E)的节点信息,则 通过将直至当前的节点改变结果(仅改变底节点N B的结果或仅改变底节点NB和第四父节点 NP4的结果)设置为多条第二节点信息来完成搜索。
[0113] 如上所述,对于第一特征数据的多条第一节点信息中的底节点NB包括E的情况和 底节点N B包括W的情况,可分别执行第二邻域移动算法。当底节点NB包括E时,仅通过将 底节点中的E改变为W来产生第二特征数据的多条第二节点信息。同时,当底节点N B包括 W时,通过将底节点中的W改变为E、移动到父节点并将父节点中的E改变为W,来产生第二 特征数据的多条第二节点信息。
[0114] 图13是示出图10的第三邻域移动算法的操作的流程图。
[0115] 参照图13,在操作S431,地图构建单元150确定第一特征数据的多条第一节点信 息中的底节点N B是否包括第四方向(N)。
[0116] 作为确定的结果,如果第一特征数据的多条第一节点信息中的底节点队包括第四 方向(N),则在操作S432,地图构建单元150将第四方向(N)改变为第三方向(S)。
[0117] 当完成改变之后,在操作S433,地图构建单元150移动至父节点直到发现包括第 四方向(N)的节点。
[0118] 在操作S434,如果发现包括第四方向(N)的节点,则地图构建单元150结束第三邻 域移动算法,并且作为将顶节点ROOT至第四父节点NP4的现有节点信息与改变的底节点信 息组合的结果,产生第二特征数据的多条第二节点信息。
[0119] 作为确定的结果,如果第一特征数据的多条第一节点信息中的底节点队不包括第 四方向(N),则地图构建单元150在操作S435确定第一特征数据的多条第一节点信息中的 底节点是否包括第三方向(S)。
[0120] 作为操作S435的确定的结果,如果第一特征数据的多条第一节点信息中的底节 点队包括第三方向(S),则在操作S436,地图构建单元150将第三方向(S)改变为第四方向 (N)并移动到父节点。
[0121] 在完成移动到父节点之后,在操作S437,地图构建单元150将包括第四方向(N)的 父节点的第四方向(N)改变为第三方向(S)。
[0122] 在完成操作S437的改变之后,在操作S438,地图构建单元150移动到父节点直到 发现包括第四方向(N)的节点。
[0123] 在操作S439,如果发现包括第四方向(N)的节点,则地图构建单元150结束第三邻 域移动算法,并且作为将顶节点ROOT至第三父节点NP3的现有节点信息与改变的第四父节 点信息、改变的底节点信息组合的结果,产生第二特征数据的多条第二节点信息。
[0124] 如果即使执行了操作S433和S438也没有发现包括第四方向(N)的节点信息,则 通过将直至当前的节点改变结果(仅改变底节点N B的结果或仅改变底节点NB和第四父节点 NP4的结果)设置为多条第二节点信息来完成搜索。
[0125] 如上所述,对于第一特征数据的多条第一节点信息中的底节点NB包括N的情况和 底节点N B包括S的情况,可分别执行第三邻域移动算法。当底节点NB包括N时,仅通过将 底节点中的N改变为S来产生第二特征数据的多条第二节点信息。同时,当底节点N B包括 S时,通过将底节点NB中的S改变为N、移动到父节点并将父节点中的N改变为S,来产生第 二特征数据的多条第二节点信息。
[0126] 图14是示出图10的第四邻域移动算法的操作的流程图。
[0127] 参照图14,在操作S441,地图构建单元150确定第一特征数据的多条第一节点信 息中的底节点N B是否包括第三方向(S)。
[0128] 作为确定的结果,如果第一特征数据的多条第一节点信息中的底节点队包括第三 方向(S),则在操作S442,地图构建单元150将第三方向(S)改变为第四方向(N)。
[0129] 当完成改变之后,在操作S443,地图构建单元150移动至父节点直到发现包括第 三方向(S)的节点。
[0130] 在操作S444,如果发现包括第三方向(S)的节点,则地图构建单元150结束第四邻 域移动算法,并且作为将顶节点ROOT至第四父节点NP4的现有节点信息与改变的底节点信 息组合的结果,产生第二特征数据的多条第二节点信息。
[0131] 作为确定的结果,如果第一特征数据的多条第一节点信息中的底节点队不包括第 三方向(S),则地图构建单元150在操作S445确定第一特征数据的多条第一节点信息中的 底节点NB是否包括第四方向(N)。
[0132] 作为操作S445的确定的结果,如果第一特征数据的多条第一节点信息中的底节 点NB包括第四方向(N),则在操作S446,地图构建单元150将第四方向(N)改变为第三方向 (S)并移动到父节点。
[0133] 在完成移动到父节点之后,在操作S447,地图构建单元150将包括第三方向(S)的 父节点的第三方向(S)改变为第四方向(N)。
[0134] 在完成操作S447的改变之后,在操作S448,地图构建单元150移动到父节点直到 发现包括第三方向(S)的节点。
[0135] 在操作S449,如果发现包括第三方向(S)的节点,则地图构建单元150结束第四邻 域移动算法,并且作为将顶节点ROOT至第三父节点NP3的现有节点信息与改变的第四父节 点信息、改变的底节点信息组合的结果,产生第二特征数据的多条第二节点信息。
[0136] 如果即使执行了操作S443和S448也没有发现包括第三方向(S)的节点信息,则 通过将直至当前的节点改变结果(仅改变底节点N B的结果或仅改变底节点NB和第四父节点 NP4的结果)设置为多条第二节点信息来完成搜索。
[0137] 如上所述,对于第一特征数据的多条第一节点信息中的底节点NB包括S的情况和 底节点N B包括N的情况,可分别执行第四邻域移动算法。当底节点NB包括S时,仅通过将 底节点中的S改变为N来产生第二特征数据的多条第二节点信息。同时,当底节点N B包括 N时,通过将底节点中的N改变为S、移动到父节点并将父节点中的S改变为N,来产生第二 特征数据的多条第二节点信息。
[0138] 返回参照图9,在操作S500,地图构建单元150通过使用第一特征数据的多条第一 节点信息和第二特征数据的多条第二节点信息来构建地图。在当前示例性实施例中,第一 特征数据和第二特征数据被定义为多条特征数据,并且使用从第一特征数据产生的多条第 一节点信息和从第二特征数据产生的多条第二节点信息来构建地图。
[0139] 如上所述,根据示例性实施例,可减少数据量,并可增加接近速度,从而移动机器 人可在广范围操作。
[0140] 本发明构思还可被实施为计算机可读记录介质上的计算机可读代码。计算机可读 记录介质是可存储稍后可被计算机系统读取的数据的任何数据存储装置。计算机可读记录 介质包括只读存储器(ROM)、随机存取存储器(RAM)、⑶-ROM、磁带、软盘、光学数据存储装 置和以载波形式实施的介质(例如,通过互联网的数据传输)。计算机可读记录介质还可被 分布在联网的计算机系统上,从而计算机可读代码以分布方式被存储和执行。此外,用于完 成本发明构思的功能程序、代码和代码段可由本领域程序员容易地构建。
[0141] 尽管在上面已经具体示出和描述了示例性实施例,但是本领域的普通技术人员将 理解,在不脱离由权利要求限定的本发明构思的精神的范围的情况下,可以对示例性实施 例进行形式和细节的各种改变。示例性实施例应仅被视为描述性的意义,而不是限制的目 的。因此,限定的本发明构思的范围不是由本公开的详细描述限定,而是由权利要求限定, 并且在该范围内的所有不同将被解释为包括在示例性实施例中。
【权利要求】
1. 一种构建用于移动机器人的地图的方法,所述方法包括: 通过扫描移动机器人的周围环境来搜索占据任意空间的多条特征数据; 对所述多条特征数据的第一特征数据执行四叉树分割以产生多条第一节点信息; 确定所述多条特征数据中的第二特征数据针对第一特征数据的位置; 执行邻域移动算法,以通过使用所述多条第一节点信息来根据第二特征数据的位置产 生第二特征数据的多条第二节点信息。
2. 如权利要求1所述的方法,其中,所述确定位置的步骤包括:确定第二特征数据位于 第一位置、第二位置、第三位置和第四位置中的一个位置,其中,第一位置、第二位置、第三 位置和第四位置彼此成直角。
3. 如权利要求2所述的方法,其中,所述执行邻域移动算法的步骤包括:执行第一邻域 移动算法、第二邻域移动算法、第三邻域移动算法和第四邻域移动算法中的一个算法,以根 据第二特征数据的确定的位置产生第二特征数据的所述多条第二节点信息。
4. 如权利要求3所述的方法,其中,执行第一邻域移动算法、第二邻域移动算法、第三 邻域移动算法和第四邻域移动算法中的一个的步骤包括: 响应于确定的位置是第一位置,执行第一邻域移动算法,以产生第二特征数据的所述 多条第二节点信息; 响应于确定的位置是第二位置,执行第二邻域移动算法,以产生第二特征数据的所述 多条第二节点信息; 响应于确定的位置是第三位置,执行第三邻域移动算法,以产生第二特征数据的所述 多条第二节点信息; 响应于确定的位置是第四位置,执行第四邻域移动算法,以产生第二特征数据的所述 多条第二节点信息。
5. 如权利要求3所述的方法,其中,执行第一邻域移动算法、第二邻域移动算法、第三 邻域移动算法和第四邻域移动算法中的一个的步骤包括:确定第一特征数据的所述多条第 一节点信息中的底节点是否包括与从第一特征数据到第二特征数据的确定的位置延伸的 方向相反的确定方向。
6. 如权利要求5所述的方法,其中,执行第一邻域移动算法、第二邻域移动算法、第三 邻域移动算法和第四邻域移动算法中的一个的步骤还包括:响应于第一特征数据的所述多 条第一节点信息中的底节点具有所述确定方向,产生第二特征数据的第一多条第二节点信 肩、。
7. 如权利要求6所述的方法,其中,执行第一邻域移动算法、第二邻域移动算法、第三 邻域移动算法和第四邻域移动算法中的一个的步骤还包括:响应于第一特征数据的所述多 条第一节点信息中的底节点具有从第一特征数据到第二特征数据的确定的位置的方向,产 生第二特征数据的第二多条第二节点信息。
8. 如权利要求7所述的方法,其中,产生第二特征数据的第一多条第二节点信息的步 骤包括: 将第一特征数据的所述多条第一节点信息中的底节点的确定方向改变为从第一特征 数据到第二特征数据的确定的位置的方向; 作为将第一节点信息的改变的底节点与第一节点信息的剩余节点组合的结果,产生第 二特征数据的第一多条第二节点信息。
9. 如权利要求7所述的方法,其中,产生第二特征数据的第二多条第二节点信息的步 骤包括: 将从第一特征数据到第一特征数据的所述多条第一节点信息中的底节点的第二特征 数据的确定的位置的方向改变为所述确定方向,并移动到底节点的父节点; 将父节点的所述确定方向改变为从第一特征数据到第二特征数据的确定的位置的方 向; 作为将第一节点信息的改变的底节点和改变的父节点与第一节点信息的剩余节点组 合的结果,产生第二特征数据的第二多条第二节点信息。
10. -种用于构建用于移动机器人的地图的设备,所述设备包括: 环境识别单元,被构造为通过扫描移动机器人的周围环境来搜索占据任意空间的多条 特征数据; 四叉树信息产生单元,被构造为对所述多条特征数据的第一特征数据执行四叉树分割 以产生多条第一节点信息; 搜索单元,被构造为确定所述多条特征数据中的第二特征数据针对第一特征数据的位 置; 邻域移动信息产生单元,被构造为执行邻域移动算法,用于通过使用所述多条第一节 点信息来根据第二特征数据的位置产生第二特征数据的多条第二节点信息。
11. 如权利要求10所述的设备,其中,搜索单元确定第二特征数据位于第一位置、第二 位置、第三位置和第四位置中的一个位置,其中,第一位置、第二位置、第三位置和第四位置 彼此成直角。
12. 如权利要求11所述的设备,其中,邻域移动信息产生单元执行第一邻域移动算法、 第二邻域移动算法、第三邻域移动算法和第四邻域移动算法中的一个算法,用于根据第二 特征数据的位置产生第二特征数据的所述多条第二节点信息。
13. 如权利要求12所述的设备,其中,邻域移动信息产生单元执行以下操作: 响应于确定的位置是第一位置,执行第一邻域移动算法,以产生第二特征数据的所述 多条第二节点信息; 响应于确定的位置是第二位置,执行第二邻域移动算法,以产生第二特征数据的所述 多条第二节点信息; 响应于确定的位置是第三位置,执行第三邻域移动算法,以产生第二特征数据的所述 多条第二节点信息; 响应于确定的位置是第四位置,执行第四邻域移动算法,以产生第二特征数据的所述 多条第二节点信息。
14. 如权利要求12所述的设备,其中,邻域移动信息产生单元确定第一特征数据的所 述多条第一节点信息中的底节点是否包括与从第一特征数据到第二特征数据的确定的位 置延伸的方向相反的确定方向。
15. 如权利要求14所述的设备,其中,邻域移动信息产生单元响应于第一特征数据的 所述多条第一节点信息中的底节点具有所述确定方向,产生第二特征数据的第一多条第二 节点信息。
16. 如权利要求15所述的设备,其中,邻域移动信息产生单元响应于第一特征数据的 所述多条第一节点信息中的底节点具有从第一特征数据到第二特征数据的确定的位置的 方向,产生第二特征数据的第二多条第二节点信息。
17. 如权利要求16所述的设备,其中,邻域移动信息产生单元执行以下操作: 将第一特征数据的所述多条第一节点信息中的底节点的确定方向改变为从第一特征 数据到第二特征数据的确定的位置的方向; 作为将第一节点信息的改变的底节点与第一节点信息的剩余节点组合的结果,产生第 二特征数据的第一多条第二节点信息。
18. 如权利要求16所述的设备,其中,邻域移动信息产生单元执行以下操作: 将从第一特征数据到第一特征数据的所述多条第一节点信息中的底节点的第二特征 数据的确定的位置的方向改变为所述确定方向并移动到底节点的父节点; 将所述确定方向改变为从第一特征数据到第二特征数据的确定的位置的方向; 作为将第一节点信息的改变的底节点和改变的父节点与第一节点信息的剩余节点组 合的结果,产生第二特征数据的第二多条第二节点信息。
【文档编号】G09B29/00GK104142971SQ201310700706
【公开日】2014年11月12日 申请日期:2013年12月18日 优先权日:2013年5月7日
【发明者】金东信 申请人:三星泰科威株式会社