掌桥专利:专业的专利平台
掌桥专利
首页

基于连通性的区域判定方法、芯片及机器人

文献发布时间:2023-06-19 11:49:09


基于连通性的区域判定方法、芯片及机器人

技术领域

本发明涉及机器人地图搜索的技术领域,涉及基于连通性的区域判定方法、芯片及机器人。

背景技术

现有技术中,为了让机器人在被搬到一个新的位置重新启动或是在开机启动时能够自身定位,采用的技术称为SLAM(simultaneous localization and mapping,同步定位与建图)技术,实现移动装置自身在未知环境中的位置定位,机器人移动过程中根据位置估计和地图进行自身定位。

但是机器人在陌生的环境中,常常需探索未知区域,有些室内环境比较复杂,使得预先建立的地图和当前构建的地图相对离散分布,因此机器人在陌生环境中全面地搜索出支持实际通行的区域是目前亟需解决的技术问题。

发明内容

为了解决上述技术缺陷,本发明技术方案一种基于连通性的区域判定方法、芯片及机器人,适用于导航移动之前的机器人,帮助机器人判定当前位置或自身构建的局部地图是否与其它的已知区域相连通。具体的技术方案包括:

一种基于连通性的区域判定方法,所述区域判定方法包括:步骤1、通过在邻域搜索最近的已知栅格的方式来进行连通域搜索,直到判断到最新搜索出的已知栅格满足第一区域通行条件,确定机器人的当前位置与预设已知栅格区域相连通,其中,机器人在其当前位置处构建出的局部地图与预设已知栅格区域没有重叠;步骤2、通过步骤1所述的连通域搜索完成机器人可达的最远距离以内的所有的已知栅格的搜索后,若判断到最新搜索出的已知栅格不满足第一区域通行条件,则进入步骤3;步骤3、通过在邻域搜索最近的栅格的方式来进行连通域搜索,直到判断到最新搜索出的已知栅格满足第二区域通行条件,确定机器人的当前位置没有与预设已知栅格区域相连通;步骤4、通过步骤3所述的连通域搜索完成机器人可搜索的最远距离以内的所有的栅格的搜索后,若判断到最新搜索出的已知栅格不满足第二区域通行条件,则确定机器人的当前位置与预设已知栅格区域相连通,其中,机器人在其当前位置处构建出的局部地图与预设已知栅格区域重叠;其中,预设已知栅格区域是在执行所述区域判定方法之前,机器人在同一运动区域内构建并存储过的地图区域。

与现有技术相比,所述区域判定方法从机器人的可达性的角度去控制机器人对邻域的已知栅格进行连通域搜索,通过连通域搜索的方式,由近及远地在已知栅格区域内识别连通性,再由近及远地在所有类型的栅格区域内识别连通性,包括机器人当前位置处构建的局部地图与已知地图区域邻接连通、机器人当前位置处构建的局部地图与已知地图区域重叠、机器人当前位置处构建的局部地图与已知地图区域互不连通,从而全面地判定出机器人的当前位置是否与相应距离处的已知地图区域相连通,进而判定机器人的当前位置是否处于已知地图区域内。

进一步地,机器人在其当前位置处构建出局部地图,这个局部地图具体为:以机器人的当前位置为圆心,以预设探测长度为半径的区域内的栅格都被标记为已知栅格;其中,预设探测长度小于或等于所述机器人的机身直径;其中,已知栅格包括无障碍栅格和障碍物栅格。该技术方案控制机器人在以其机身中心为圆心建立起半径小于或等于所述机器人的机身直径的机器人实时有效建图区域,形成机器人的机身附近的最小有效探测区域且都是用于支持机器人通行的已知栅格。

进一步地,满足所述第一区域通行条件是指机器人的当前位置与所述步骤1最新搜索出的已知栅格之间的线段长度大于机器人的机身直径。使得机器人的当前位置与所述步骤1最新搜索出的已知栅格之间的线段长度大于机器人的机身直径或机器人的机身直径时,才满足所述第一区域通行条件,说明机器人的可探测距离范围或可达的距离范围已经超出机器人的机身直径或机器人的机身直径,机器人自身构建的地图区域与外部预先构建的预设已知栅格区域相连通。

进一步地,在所述步骤1中,所述通过在邻域搜索最近的已知栅格的方式来进行连通域搜索的方法步骤具体包括:步骤11、在预先创建的第一存储空间中,筛选出距离机器人的当前搜索位置最近的一个栅格,并将这个筛选出的栅格确定为步骤1或步骤2所述的最新搜索出的已知栅格,然后进入步骤12;其中,预先创建的第一存储空间存储有机器人的当前搜索位置的已知邻域栅格,机器人的当前搜索位置的已知邻域栅格是机器人的当前搜索位置的邻域栅格中的已知栅格;步骤12、将机器人的当前搜索位置的栅格信息存入预先创建的第二存储空间以存储为已搜索的目标栅格;并在步骤11筛选出的栅格的邻域栅格中,将已知栅格的栅格信息存入预先创建的第一存储空间以存储为待搜索的目标栅格;同时,将机器人的搜索半径更新为机器人的当前位置与步骤S11最新筛选出的栅格之间的线段长度;其中,机器人的当前搜索位置的邻域栅格是以机器人的当前搜索位置为中心,在机器人即时构建的栅格地图上对应相邻的8个栅格,这8个栅格中的已知栅格是已知邻域栅格;步骤11筛选出的栅格不属于重复筛选的栅格。该技术方案在以机器人的当前搜索位置为中心的八邻域中寻找已知栅格,寻找出具备最短路径特征的已知栅格作为待搜索的目标栅格并拓展机器人的可达距离信息,同时保存已搜索的已知栅格以区分机器人的已搜索区域和未搜索区域,实现在局部区域内快速地搜索由已知栅格连通形成的连通域,加快判定机器人的当前位置是否直达所述预设已知栅格区域。

进一步地,在执行所述步骤11之前还包括:在创建所述第一存储空间存储之后,先将机器人的当前位置的栅格信息存入所述第一存储空间,并将机器人的当前位置配置为机器人的当前搜索位置;再从所述第一存储空间中筛选出距离机器人的当前搜索位置最近的栅格,使得机器人的当前位置从所述第一存储空间中筛选出来并成为距离机器人的当前搜索位置最近的栅格;然后将机器人的当前位置的栅格信息存入所述第二存储空间,并将机器人的当前位置的邻域栅格中的已知栅格的栅格信息存入所述第一存储空间;其中,预先创建的第一存储空间是支持按照先进先出顺序缓存栅格信息的内存空间。该技术方案优先将机器人的当前位置作为连通域的搜索起点,当然也是最后出来的一个栅格信息,提高搜索临近的连通域的有效性和有序性。

进一步地,所述步骤1具体包括:重复执行所述步骤11和步骤12,直到机器人的当前位置与所述步骤11最新搜索出的已知栅格之间的线段长度大于机器人的机身直径;其中,重新执行步骤11之前,将上一次执行的所述步骤11筛选出的距离机器人的当前搜索位置最近的且没被重复搜索的栅格更新机器人的当前搜索位置;其中,当检测到所述步骤11筛选出的栅格的栅格信息没有出现在所述第二存储空间时,这个参与检测的栅格是没被重复搜索的栅格;当检测到所述步骤11筛选出的栅格的栅格信息出现在所述第二存储空间时,这个参与检测的栅格是被重复搜索的栅格。

本技术方案以机器人的当前搜索位置为中心的八邻域中寻找新的已知栅格(没被重复搜索的已知栅格)并更新机器人的当前搜索位置,通过重复执行所述步骤11和步骤12来更新机器人的当前搜索位置,来搜索出由具备最短路径特征的已知栅格连通形成的可达区域,并逐个已知栅格地拓展机器人的可达距离信息,直到满足第一区域通行条件时才获得机器人可达的最远区域内所有的已知栅格,实现近距离区域内快速地识别出机器人的当前位置与所述预设已知栅格区域的连通关系。

进一步地,在所述步骤1中,还包括:重复执行所述步骤11和步骤12,直到最新搜索出的已知栅格保持不满足第一区域通行条件的情况下,且预先创建的第一存储空间为空时,确定完成机器人可达的最远距离内所有的已知栅格的搜索;其中,机器人可达的最远距离是执行步骤12的过程中更新获得的最大的所述搜索半径。该技术方案在重复执行所述步骤11和步骤12的过程中,确立机器人可达的最远区域内所有的已知栅格搜索结束的条件。

进一步地,在结束执行步骤2后,开始执行步骤3之前,先清空所述第一存储空间和所述第二存储空间。由于机器人需执行步骤3去进一步地搜索邻域上的所有标记类型栅格并在此基础上引导判断是否搜索到所述预设已知栅格区域,所以对前述步骤中只搜索已知栅格而存储的栅格信息进行清空,以避免因出现重复搜索而影响搜索范围。

进一步地,满足所述第二区域通行条件是指机器人的当前位置与所述步骤3最新搜索出的已知栅格之间的线段长度大于机器人的机身直径。用于表示机器人在其当前位置构建的地图区域没有与预设已知栅格区域相连通,两种区域是相对分离的。

进一步地,在所述步骤3中,所述通过在邻域搜索最近的栅格的方式来进行连通域搜索的方法步骤具体包括:步骤31、在预先创建的第一存储空间中,从机器人的当前搜索位置的邻域栅格中筛选出距离机器人的当前搜索位置最近的一个栅格,然后进入步骤32;步骤32、将机器人的当前搜索位置的栅格信息存入预先创建的第二存储空间以存储为已搜索的目标栅格,并将步骤31筛选出的栅格的邻域栅格的栅格信息存入预先创建的第一存储空间以存储为待搜索的目标栅格,使得所述第一存储空间存储有机器人的当前位置的邻域中无障碍栅格、未知栅格和/或障碍物栅格;当步骤31筛选出的栅格是已知栅格时,将步骤31筛选出的栅格确定为步骤3或步骤4所述的最新搜索出的已知栅格;其中,机器人的当前搜索位置的邻域栅格是以机器人的当前搜索位置为中心,在机器人即时构建的栅格地图上对应相邻的8个栅格,这8个栅格中的已知栅格分别与机器人的当前搜索位置组成搜索到的连通域;步骤31筛选出的栅格不是被重复筛选的栅格。

相对于前述技术方案中的步骤11至步骤12,该技术方案确定利用在以机器人的当前搜索位置为中心的八邻域中搜索新的已知栅格的连通域搜索方式是无法寻找到与机器人的当前位置相连通的预设已知栅格区域后,改为在以机器人的当前搜索位置为中心的八邻域中寻找出具备最短路径特征的栅格作为待搜索的目标栅格并拓展机器人的可达距离信息,实现在各个方向快速地搜索不连通的预设已知栅格区域和搜索小范围内相连通的预设已知栅格区域,执行步骤31至步骤32的过程中不受已知栅格和未知栅格的约束,有利于实现更大范围区域的栅格搜索,即不局限于栅格的标记属性。

进一步地,在清空所述第一存储空间和所述第二存储空间之后,执行所述步骤31之前,还包括:先将机器人的当前位置的栅格信息存入所述第一存储空间,并将机器人的当前位置配置为机器人的当前搜索位置;再从所述第一存储空间中筛选出距离机器人的当前搜索位置最近的栅格,使得机器人的当前位置成为筛选出距离机器人的当前搜索位置最近的栅格;然后将机器人的当前位置的栅格信息存入所述第二存储空间,并将机器人的当前位置的邻域栅格的栅格信息全部存入所述第一存储空间。该技术方案优先将机器人的当前位置作为邻域栅格的搜索起点,提高搜索以机器人的当前位置为中心的多个方向邻域栅格的有效性和有序性。

进一步地,所述步骤3具体包括:重复执行所述步骤31和步骤32,直到机器人的当前位置与最新筛选出的已知栅格之间的线段长度大于机器人的机身直径;其中,重新执行步骤31之前,将上一次执行的所述步骤31筛选出的距离机器人的当前搜索位置最近的且没被重复搜索的栅格更新机器人的当前搜索位置;其中,当检测到所述步骤31筛选出的栅格的栅格信息没有出现在所述第二存储空间时,这个参与检测的栅格是没被重复搜索的栅格;当检测到所述步骤31筛选出的栅格的栅格信息出现在所述第二存储空间时,这个参与检测的栅格是被重复搜索的栅格。

本技术方案以机器人的当前搜索位置为中心的八邻域中寻找新的栅格(没被重复搜索的栅格)并更新机器人的当前搜索位置,通过重复执行所述步骤31和步骤32,来搜索出由具备最短路径特征的栅格组成的可搜索区域,同时拓展机器人的可达距离信息用于作为停止搜索未知区域的判断条件,直到获得机器人不可达的预设已知栅格区域内的已知栅格,从而实现更大范围区域内快速地识别出机器人的当前位置与预设已知栅格区域的连通关系。

进一步地,在所述步骤3中,还包括:重复执行所述步骤31和步骤32,直到最新搜索出的已知栅格保持不满足第二区域通行条件的情况下,预先创建的第一存储空间为空,确定完成机器人可搜索的最远距离以内的所有的栅格的搜索;其中,机器人可搜索的最远距离是由机器人在其所处的运动区域的尺寸大小决定的、或者是机器人的传感器的可探测距离决定的。该技术方案在重复执行所述步骤31和步骤32的过程中,确立机器人可搜索的最远区域内所有的栅格搜索结束的条件。

进一步地,在重复执行所述步骤31和步骤32的过程中,所述步骤31筛选出的距离机器人的当前搜索位置最近的已知栅格与机器人的当前搜索位置属于同一连通域,所述步骤31筛选出的距离机器人的当前搜索位置最近的未知栅格与机器人的当前搜索位置不属于同一连通域;当最新搜索出的已知栅格满足第二区域通行条件时,搜索出的连通域没有与所述预设已知栅格区域相连通,使得机器人的当前位置相对于所述预设已知栅格区域位于孤岛区域中。从而为机器人搜集离散的地图区域信息。

一种芯片,该芯片存储有所述的区域判定方法对应的程序代码。与现有技术相比,利用最短的搜索路径距离,高效地判定出与机器人的当前位置具备连通关系的区域,节省计算负载。

一种机器人,机器人内置所述的芯片。增强机器人在搜索未知环境中的路径规划能力。

进一步地,该机器人装配有视觉传感器,用于探测未知的环境区域以构建地图,并在实时构建的地图上标记出已知栅格。减少机器人重定位的误差积累。

附图说明

图1是本发明一实施例公开基于连通性的区域判定方法的流程图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步说明。应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

本实施例中,在机器人启动之后、或者被触发重定位之后、重定位成功后或实时导航定位的过程中,机器人在启动位置附近标记无障碍栅格或障碍物栅格以构建起局部地图,具体是以机器人的当前位置为圆心,以预设探测长度为半径的区域内的栅格都被标记为已知栅格;其中,预设探测长度小于或等于所述机器人的机身直径。已知栅格包括无障碍栅格和障碍物栅格。对于本领域技术人员可理解:局部地图中标记有机器人的当前位置周围的环境信息,环境信息包括机器人构建的地图区域内的栅格,这些栅格包括标记为空闲(free)、占用(occupied) 和未知(unknown)三种状态;空闲状态的栅格是指未被障碍所占用的栅格,是机器人可到达的栅格位置点,是所述无障碍栅格,可以组成未占用区域;占用状态的栅格是指被障碍物所占用的栅格,是所述障碍栅格,可以组成占用区域;未知栅格是指机器人构建地图过程中的不清楚具体情况的栅格区域,其位置点处往往被障碍物所遮挡,可以组成未知区域。

需要说明的是,以扫地机器人为例,可以基于单线激光雷达建立局部概率栅格,或基于视觉传感器建立局部栅格地图。而全局地图,是该扫地机器人第一次使用时,利用其自身携带的各种传感器(例如:加速度传感器、陀螺仪、超声波测距仪、摄像头、单线激光雷达、等等)对每个房间运动区域进行搜索,感应每个房间的位置、形状和大小,以及遇到的障碍物的位置、形状和大小,并据此绘制出一张环境边界地图,通过在室内边行走边记录的方式绘制的整个室内的地图,该地图上包括占用区域、未占用区域和未知区域,其中,占用区域和未占用区域都可以归属于已清扫区域。

本发明一实施例公开一种基于连通性的区域判定方法,所述区域判定方法包括:

步骤1、通过在邻域搜索最近的已知栅格的方式来进行连通域搜索,直到最新搜索出的已知栅格满足第一区域通行条件,确定机器人的当前位置与预设已知栅格区域相连通,但是,机器人在其当前位置处构建出的所述局部地图与预设已知栅格区域没有重叠;该步骤1中,机器人在运动区域内移动并遍历生成的局部地图,局部地图包括机器人的当前位置,以机器人的当前位置为搜索中心在八邻域内进行连通域搜索,当搜索中心被搜索出来的位置更替后,继续以新的搜索中心进行邻域搜索,实现360度方向所有的已知栅格及其邻域的搜索,直到最新搜索出的已知栅格满足第一区域通行条件,才停止连通域搜索,并确认机器人的当前位置与所述预设已知栅格区域相连通,即机器人的当前位置处构建的局部地图与所述预设已知栅格区域邻接连通,或者机器人的当前位置处构建的局部地图位于所述预设已知栅格区域的覆盖范围内且这两种区域重叠在一起。

步骤2、在执行步骤1的过程中,若通过步骤1所述的连通域搜索完成机器人可达的最远距离以内的所有的已知栅格的搜索后,仍判断到最新搜索出的已知栅格保持不满足第一区域通行条件,则进入步骤3。该步骤2将机器人在当前位置处构建的局部地图范围内的已知栅格遍历完,但还不足以确认这个构建的局部地图的外部不存在已知栅格,因为步骤1没有针对这个局部地图内的未知栅格及其对应的邻域进行连通域搜索。使得步骤1至步骤2的搜索判定操作不够全面,所以需要进入步骤3继续新的连通域搜索。

步骤3、通过在邻域搜索最近的栅格的方式来进行连通域搜索,直到判断到最新搜索出的已知栅格满足第二区域通行条件,确定机器人的当前位置没有与预设已知栅格区域相连通;该步骤3中,以机器人的当前位置为搜索中心在八邻域内进行连通域搜索,同时进行栅格标记,当搜索中心被搜索出来的位置更替后,继续以新的搜索中心进行邻域搜索,实现360度方向所有的栅格及其邻域的搜索,直到最新搜索出的已知栅格满足第二区域通行条件,才停止搜索,即停止连通域搜索,并确认机器人的当前位置与所述预设已知栅格区域没有连通,即机器人的当前位置处构建的局部地图位于所述预设已知栅格区域的外部且没有邻接。

步骤4、在执行步骤3的过程中,通过步骤3所述的连通域搜索完成机器人可搜索的最远距离以内的所有的栅格的搜索后,若判断到最新搜索出的已知栅格不满足第二区域通行条件,则确定机器人的当前位置与预设已知栅格区域相连通,其中,机器人在其当前位置处构建出的所述局部地图与预设已知栅格区域重叠;在步骤4中,将机器人在当前位置处构建的局部地图范围内的栅格遍历完,且确认这个构建的局部地图的外部不存在已知栅格,或者认为这个构建的局部地图与所述预设已知栅格区域重叠,使得步骤3至步骤4的搜索范围更加全面。

其中,预设已知栅格区域是在执行所述区域判定方法之前,机器人在同一运动区域内构建并存储过的地图区域。本实施例可以是机器人预先到达的已知地图区域、已遍历区域,但机器人被强制挪移出这个已遍历区域,被挪移至所述机器人的当前位置后开始触发重定位,可以确定机器人的当前位置的栅格信息,并确定机器人在当前位置处构建的半径为所述预设探测长度的圆形区域,其覆盖的范围包括圆周、圆周以内至机器人的当前位置之间的已知栅格区域。

与现有技术相比,前述步骤从机器人的可达性的角度去控制机器人对邻域的已知栅格进行连通域搜索,通过连通域搜索的方式,由近及远地在已知栅格区域内识别连通性,再由近及远地在所有类型的栅格区域内识别连通性,包括机器人当前位置处构建的局部地图与已知地图区域邻接连通、机器人当前位置处构建的局部地图与已知地图区域重叠、机器人当前位置处构建的局部地图与已知地图区域互不连通,从而全面地判定出机器人的当前位置是否与相应距离处的已知地图区域相连通,进而判定机器人的当前位置是否处于已知地图区域内。

作为一种实施例,如图1所示,所述区域判定方法具体包括:

步骤S1、在预先创建的第一存储空间中,从机器人的当前搜索位置的已知邻域栅格中筛选出距离机器人的当前搜索位置最近的一个栅格,并将这个筛选出的栅格确定为:前述步骤1通过在邻域搜索最近的已知栅格的方式执行的连通域搜索的过程中最新搜索出的已知栅格。然后进入步骤S2。需要说明的是,预先创建的第一存储空间存储有机器人的当前搜索位置的已知邻域栅格,机器人的当前搜索位置的已知邻域栅格是机器人的当前搜索位置的邻域栅格中的已知栅格;该步骤S1中,距离机器人的当前搜索位置最近的一个栅格,表示这个栅格与机器人的当前搜索位置的直线距离最小,至少相对于机器人的当前搜索位置的其他邻域栅格的直线距离都小。

具体地,在步骤S1,以机器人的当前搜索位置为搜索起点,对应机器人的当前搜索位置的上、左上、下、左下、右、右上、右下的邻接位置都与机器人的当前搜索位置属于同一个连通域,即八邻域栅格,然后从八邻域栅格中筛选出距离机器人的当前搜索位置最近的一个已知栅格,是距离机器人的当前搜索位置最近的一个标记为无障碍栅格或障碍物栅格,若存在两个以上距离最近的已知栅格则随机选择其中一个作为所述最新搜索出的已知栅格,剩余的距离最近的已知栅格配置为未遍历的,有利于后续搜索出与机器人的当前位置连通相邻的所有已知栅格。一般而言,当前搜索位置的上、下、左、右的邻接位置相对于机器人的当前搜索位置都是最近的。

步骤S2、将机器人的当前位置与步骤S1筛选出的栅格之间的线段长度更新机器人的搜索半径,以描述机器人当前可达(可以直接到达)的距离;同时将机器人的当前搜索位置的栅格信息存入预先创建的第二存储空间以使得第二存储空间存储有机器人已搜索的栅格位置,即配置为下一个搜索起点的栅格信息,优选地,第二存储空间存储还包括当前搜索位置的栅格信息,用于区别地图区域上的已搜索遍历栅格位置;同时将步骤S1筛选出的栅格的邻域栅格中的已知栅格的栅格信息存入预先创建的第一存储空间,用于存储为待搜索的目标栅格,优选地,若存在两个以上已知栅格与机器人的当前搜索位置的距离相等且都是距离机器人的当前搜索位置最近的,所述第一存储空间还用于存储:机器人的当前搜索位置的邻域栅格中,除了步骤S1筛选出的栅格之外,距离机器人的当前搜索位置最近的多个已知栅格;使得所述第一存储空间只存储有机器人的当前位置的邻域中无障碍栅格和/或障碍物栅格对应的栅格信息。然后进入步骤S3。

本实施例通过执行前述步骤S1和步骤S2在以机器人的当前搜索位置为中心的八邻域中寻找已知栅格,寻找出具备最短路径特征的已知栅格作为待搜索的目标栅格并拓展机器人的可达距离信息,同时保存已搜索的已知栅格以区分机器人的已搜索区域和未搜索区域,实现在局部区域内快速地搜索由已知栅格连通形成的连通域,加快判定机器人的当前位置是否直达所述预设已知栅格区域。

步骤S3、判断步骤S2更新的机器人的搜索半径是否大于所述机器人的机身直径,是则进入步骤S4,否则进入步骤S5。即判断到最新搜索出的已知栅格满足第一区域通行条件时进入步骤S4,否则在确定是否遍历完前述构建的局部地图区域内的所有已知栅格后,再选择重复执行前述步骤S1和步骤S2。实现通过在邻域搜索最近的已知栅格的方式来进行连通域搜索。

步骤S5、判断预先创建的第一存储空间是否为空,是则停止执行前述步骤S1至步骤S5,停止执行局部地图范围只搜索已知栅格,再进入步骤S6;否则返回步骤S1以开始重复执行前述步骤S1和步骤S2,即继续采用前述的八邻域的连通域搜索的方式搜索地图查找下一个由已知栅格邻接成的连通域。具体地,由步骤S5返回执行步骤S1之前,将上一次执行的所述步骤S1筛选出的距离机器人的当前搜索位置最近的且没被重复搜索的栅格更新机器人的当前搜索位置;当检测到所述步骤S1筛选出的栅格的栅格信息没有出现在所述第二存储空间时,这个参与检测的栅格是没被重复搜索的栅格;当检测到所述步骤S1筛选出的栅格的栅格信息已经出现在所述第二存储空间时,这个参与检测的栅格是被重复搜索的栅格。

步骤S4、确定机器人的当前位置与预设已知栅格区域相连通,其中,机器人在其当前位置处构建出的所述局部地图与预设已知栅格区域没有重叠,即机器人的当前位置所处的局部地图区域(配置为已知栅格组成的)与预设已知栅格区域相邻接,或机器人的当前位置所处的局部地图区域(配置为已知栅格组成的相对小的区域范围)位于所述预设已知栅格区域(相对大的区域范围)的覆盖范围内,从而方便机器人在重定位后返回所述预设已知栅格区域的一目标点(重定位前的正常工作位置),同时结束执行所述区域判定方法。本实施例以机器人的当前搜索位置为中心的八邻域中寻找新的已知栅格(没被重复搜索的已知栅格)并更新机器人的当前搜索位置,通过重复执行所述步骤S1和步骤S2来更新机器人的当前搜索位置,来搜索出由具备最短路径特征的已知栅格连通形成的可达区域,并逐个已知栅格地拓展机器人的可达距离信息,直到满足第一区域通行条件时才获得机器人可达的最远区域内所有的已知栅格,实现近距离区域内快速地识别出机器人的当前位置与所述预设已知栅格区域的连通关系。需要说明的是,在重复执行所述步骤S1和步骤S2的过程中,所述步骤S1筛选出的距离机器人的当前搜索位置最近的已知栅格与机器人的当前搜索位置属于同一连通域,当最新搜索出的已知栅格满足第一区域通行条件时,机器人的当前位置通过这一连通域与所述预设已知栅格区域相连通,使得机器人的当前位置、这一连通域与所述预设已知栅格区域成为支持机器人规划可行路径的连通域。

需要说明的是,判断到预先创建的第一存储空间是空时,即第一存储空间内部存储的已知栅格的栅格信息已经全部被读取出来以参与连通域搜索,具体是在最新搜索出的已知栅格保持不满足第一区域通行条件的情况下,预先创建的第一存储空间为空时,已经使用步骤1所述的连通域搜索完成机器人可达的最远距离以内的所有的已知栅格的搜索后,确定机器人可达的最远距离内没有存在用于存储为待搜索的目标栅格的已知栅格以存入所述第一存储空间,同时确定从所述第一存储空间筛选出的所有已知栅格都存储为已搜索的目标栅格;其中,机器人可达的最远距离是执行步骤S1至步骤S5的过程中更新获得的最大的搜索半径。本实施例在重复执行所述步骤S1和步骤S2的过程中,确立机器人可达的最远区域内所有的已知栅格搜索结束的条件。

在前述实施例的基础上,在执行所述步骤S1之前,还包括:在创建所述第一存储空间和所述第二存储空间后,分别对所述第一存储空间和所述第二存储空间进行初始化;然后将机器人的当前位置的栅格信息存入所述第一存储空间,并将机器人的当前位置配置为机器人的当前搜索位置;再从所述第一存储空间中筛选出距离机器人的当前搜索位置最近的栅格,机器人可达的最远距离是执行步骤12的过程中更新获得的最大的所述搜索半径,此时让所述机器人的搜索半径更新为0;然后将机器人的当前位置的栅格信息存入所述第二存储空间,并将机器人的当前位置的邻域栅格中的已知栅格的栅格信息存入所述第一存储空间,使得所述第一存储空间只存储有机器人的当前位置的邻域中已探测的无障碍栅格和/或已探测的障碍物栅格;其中,预先创建的第一存储空间是支持按照先进先出顺序缓存栅格信息的内存空间。第一存储空间设置为优先队列时,所述步骤S5判断到第一存储空间为空时,可能是机器人当前位置节点由优先队列中出队。本实施例优先将机器人的当前位置作为连通域的搜索起点,提高搜索临近的连通域的有效性和有序性。所述第二存储空间优选地设置为列表结构。

值得注意的是,步骤S5预先创建的第一存储空间为空,且判断到最新搜索出的已知栅格不满足第一区域通行条件时,进入步骤S6。在步骤S6中先清空所述第一存储空间以避免前述实施例存储的待搜索的目标栅格的影响,并清空所述第二存储空间以避免前述实施例存储的已搜索的目标栅格的影响,因此完成所述第一存储空间的初始化和所述第二存储空间的初始化,然后进入步骤S7。

在本实施例中,若最新搜索出的已知栅格与机器人的当前位置之间的线段长度小于或等于所述机器人的机身直径时,表示最新搜索出的已知栅格的邻域中不存在新的已知栅格,表示最新搜索出的已知栅格的相邻区域搜索不出可通行路径。当机器人在一个新的位置建图定位时,若从当前搜索位置的周围邻域中只能搜索出未知栅格,则机器人已经搜索完距离机器人的当前位置一个机身直径以内的区域所有的已知栅格,剩余的是集中于距离机器人的当前位置一个机身直径之外的未知栅格,表示机器人已经遍历完自身构建的地图区域。由于机器人需执行步骤3去进一步地搜索邻域上的所有标记类型栅格并在此基础上引导判断是否搜索到所述预设已知栅格区域,所以对前述步骤中只搜索已知栅格而存储的栅格信息进行清空,以避免因出现重复搜索而影响搜索范围。

步骤S7、在预先创建的第一存储空间中,从机器人的当前搜索位置的邻域栅格中筛选出距离机器人的当前搜索位置最近的一个栅格,但是这个筛选出的栅格不一定为:前述步骤3通过在邻域搜索最近的栅格的方式执行的连通域搜索的过程中最新搜索出的已知栅格。然后进入步骤S8。需要说明的是,预先创建的第一存储空间存储有机器人的当前搜索位置的邻域栅格,机器人的当前搜索位置的邻域栅格包括机器人的当前搜索位置的邻域栅格中的已知栅格和未知栅格。具体地,在步骤S7,以机器人的当前搜索位置为搜索起点,对应机器人的当前搜索位置的上、左上、下、左下、右、右上、右下的邻接位置都与机器人的当前搜索位置属于同一个连通域,即八邻域栅格,然后从八邻域栅格中筛选出距离机器人的当前搜索位置最近的一个栅格,若存在两个以上距离最近的栅格则随机选择其中一个作为所述最新搜索出的栅格,剩余的距离最近的栅格配置为未遍历的,作为候选的搜索目标点,同样留给以所述最新搜索出的栅格为搜索起点的新一轮连通域搜索,相对于前述步骤S1有利于在更广的范围内搜索出与机器人的当前位置连通相邻的所有栅格,而不仅仅是搜索离散的已知栅格。

步骤S8、将机器人的当前搜索位置的栅格信息存入预先创建的第二存储空间以使得第二存储空间存储有机器人已搜索的栅格位置,即配置为下一个搜索起点的栅格信息,用于区别地图区域上的已搜索遍历栅格位置;同时将步骤S7筛选出的栅格的邻域栅格的栅格信息存入预先创建的第一存储空间以存储为待搜索的目标栅格,使得所述第一存储空间存储有机器人的当前位置的邻域中无障碍栅格、未知栅格和/或障碍物栅格;优选地,若存在两个以上距离机器人的当前搜索位置最近的栅格,所述第一存储空间还用于存储:机器人的当前搜索位置的邻域栅格中,除了步骤S7筛选出的栅格之外,距离机器人的当前搜索位置最近的栅格。当步骤S7筛选出的栅格是已知栅格时,将步骤S7筛选出的栅格确定为所述步骤3或所述步骤4最新搜索出的已知栅格,再将机器人的当前位置与最新搜索出(最新筛选出)的已知栅格之间的线段长度更新所述机器人的搜索半径,以所述搜索半径为探索长度的射线搜索地图区域,以描述机器人当前可搜索的距离,但不一定是机器人的可达距离,因为可能覆盖到未知栅格。值得注意的是,步骤S7筛选出的栅格不是被重复筛选的栅格。

相对于前述实施例中的步骤S1至步骤S2,步骤S7至步骤S8确定利用在以机器人的当前搜索位置为中心的八邻域中搜索新的已知栅格的连通域搜索方式是无法寻找到与机器人的当前位置相连通的预设已知栅格区域后,改为在以机器人的当前搜索位置为中心的八邻域中寻找出具备最短路径特征的栅格作为待搜索的目标栅格并拓展机器人的可达距离信息,实现在各个方向快速地搜索不连通的预设已知栅格区域和搜索小范围内相连通的预设已知栅格区域,执行步骤S7至步骤S8的过程中不受已知栅格和未知栅格的约束,有利于实现更大范围区域的栅格(不拘束于可能离散分布的已知栅格)搜索。

步骤S9、判断步骤S8更新的机器人的搜索半径是否大于所述机器人的机身直径,是则进入步骤S11,否则进入步骤S10。

步骤S10、判断所述第一存储空间是否为空,是则停止执行前述步骤S6至步骤S10,停止在局部地图范围搜索栅格,再进入步骤S12,否则返回步骤S7以开始重复执行前述步骤S7和步骤S8,即继续采用前述的八邻域的连通域搜索的方式搜索地图查找下一个相邻接的连通域。具体地,由步骤S10返回执行步骤S7之前,将上一次执行的所述步骤S7筛选出的距离机器人的当前搜索位置最近的且没被重复搜索的栅格更新机器人的当前搜索位置;当检测到所述步骤S7筛选出的栅格的栅格信息没有出现在所述第二存储空间时,这个参与检测的栅格是没被重复搜索的栅格;当检测到所述步骤S7筛选出的栅格的栅格信息已经出现在所述第二存储空间时,这个参与检测的栅格是被重复搜索的栅格。

步骤S11、确定机器人的当前位置没有与预设已知栅格区域相连通,即机器人的当前位置所处的局部地图区域(配置为已知栅格组成的)没有与预设已知栅格区域相连通。需要说明的是,所述步骤S8筛选出的距离机器人的当前搜索位置最近的已知栅格与机器人的当前搜索位置属于同一连通域,所述步骤S8筛选出的距离机器人的当前搜索位置最近的未知栅格与机器人的当前搜索位置不属于同一连通域;当最新搜索出的已知栅格满足第二区域通行条件时,搜索出的连通域没有与所述预设已知栅格区域相连通,确定机器人的当前位置相对于所述预设已知栅格区域位于孤岛区域中。从而为机器人搜集离散的地图区域信息,但增大机器人重定位后导航回所述预设已知栅格区域的一目标点的难度。

步骤S12、确定机器人的当前位置与预设已知栅格区域相连通,其中,机器人在其当前位置处构建出的所述局部地图与预设已知栅格区域重叠。具体地,步骤S10判断到所述第一存储空间是空时,即第一存储空间内部存储的栅格(所有类型的栅格)的栅格信息已经全部被读取出来以参与连通域搜索,具体是在最新搜索出的已知栅格保持不满足所述第二区域通行条件的情况下,预先创建的第一存储空间为空时,已经使用步骤3所述的连通域搜索完成机器人可探索的最远距离以内的所有栅格的搜索后,确定完成机器人可搜索的最远距离内所有栅格的搜索后,更新的机器人的搜索半径保持小于所述机器人的机身直径,即机器人可搜索的最远距离内搜索的已知栅格都在机器人在其当前位置构建的局部地图的覆盖范围内,则判定机器人在其当前位置构建的局部地图与所述预设已知栅格区域重叠在一起。其中,机器人可搜索的最远距离是由机器人在其所处的运动区域的尺寸大小决定的、或者是机器人的传感器的可探测距离决定的。当机器人的传感器的可探测距离大于所处的运动区域的最大长度,则机器人可搜索的最远距离是等于所处的运动区域的最大长度;当机器人的传感器的可探测距离小于或等于所处的运动区域的最大长度,则机器人可搜索的最远距离是等于机器人的传感器的可探测距离。

步骤S10判断到所述第一存储空间是空时,也确定机器人可搜索的最远距离内没有存在用于存储为待搜索的目标栅格的已知栅格以存入所述第一存储空间,同时确定从所述第一存储空间筛选出的所有栅格都存储为已搜索的目标栅格。本实施例在重复执行所述步骤S7和步骤S8的过程中,确立机器人可搜索的最远区域内所有的已知栅格搜索结束的条件。

综上步骤,本发明实施例以机器人的当前搜索位置为中心的八邻域中寻找新的栅格(没被重复搜索的栅格)并更新机器人的当前搜索位置,通过重复执行所述步骤S7和步骤S8,来搜索出由具备最短路径特征的栅格组成的可搜索区域,同时拓展机器人的可达距离信息用于作为停止搜索未知区域的判断条件,直到获得机器人不可达的预设已知栅格区域内的已知栅格,从而实现更大范围区域内快速地识别出机器人的当前位置与预设已知栅格区域的连通关系。

在前述步骤S7至步骤S12的基础上,在清空所述第一存储空间和所述第二存储空间之后,执行所述步骤S7之前,还包括:先将机器人的当前位置的栅格信息存入所述第一存储空间,并将机器人的当前位置配置为机器人的当前搜索位置;再从所述第一存储空间中筛选出距离机器人的当前搜索位置最近的栅格,使得机器人的当前位置成为筛选出距离机器人的当前搜索位置最近的栅格,并在筛选出已知栅格时让所述机器人的搜索半径更新为0;然后将机器人的当前位置的栅格信息存入所述第二存储空间,并将机器人的当前位置的邻域栅格的栅格信息全部存入所述第一存储空间,使得所述第一存储空间存储有机器人的当前位置的邻域中已探测的无障碍栅格、未知栅格和/或已探测的障碍物栅格。该技术方案优先将机器人的当前位置作为邻域栅格的搜索起点,提高搜索以机器人的当前位置为中心的多个方向邻域栅格的有效性和有序性。

一种芯片,该芯片存储有前述实施例的区域判定方法对应的程序代码。与现有技术相比,该实施例基于芯片装配的机器人,利用最短的搜索路径距离,高效地判定出与机器人的当前位置具备连通关系的区域,节省计算负载。

一种机器人,机器人内置所述的芯片。增强机器人在搜索未知环境中的路径规划能力。优选地,该机器人装配有视觉传感器,用于探测未知的环境区域以构建地图,并在实时构建的地图上标记出已知栅格。减少机器人重定位的误差积累。需要说明的是,机器人为扫地机器人时,扫地机器人在当前位置处旋转一周,将摄像头所能看到的最远距离即为该扫地机器人可达的最远距离,以当前位置为圆心,以该可达的最远距离为半径确定的圆周以及圆周内的视场区域确定为扫地机器人的可达区域,可用于更新及时构建的局部地图和更新已搜索区域信息,但不一定代表机器人当前可搜索区域,当前可搜索区域主要用于评估各个方向上是否存在可通行的导航点。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。 而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅是本发明的较佳实施例而己,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

相关技术
  • 基于连通性的区域判定方法、芯片及机器人
  • 一种基于边界的机器人区域划分方法、芯片及机器人
技术分类

06120113067432