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

移动路径的生成方法、装置、可读介质及电子设备

文献发布时间:2023-06-19 16:08:01



技术领域

本申请属于图像处理技术领域,具体涉及一种移动路径的生成方法、装置、可读介质及电子设备。

背景技术

随着人工智能技术的发展,越来越多的场合可以用到基于人工智能技术开发的产品,如通过机器人来进行草坪的维护作业、通过扫地机器人进行工作区域的卫生清洁、通过巡航机器人对工作区域进行巡逻检查等。传统的机器人可以在工作区域中心地带高效地运行,但并不能很好地识别工作区域边界,这就导致机器人难以对工作区域边界进行维护。目前,通过在工作区域边界的地下布设可感应的边界线来通知机器人达到了工作区域边界,并使机器人沿着布线路径移动,完成对工作区域边界的维护工作。然而,这种方式需要机器人能够正常感应布设的边界线,当感应出现异常时,机器人对工作区域边界的识别准确性下降,进而导致机器人无法准确生成边界移动路径,机器人移动路径的生成稳定性较差;同时,由于每个工作区域边界都需要布设相应长度的边界线,极大地提高了工作区域维护的成本。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

本申请的目的在于提供一种移动路径的生成方法、装置、可读介质及电子设备,以解决相关技术中移动路径的生成稳定性较差,工作区域边界识别不够准确且工作区域边界维护成本较高的问题。

本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。

根据本申请实施例的一个方面,提供一种移动路径的生成方法,包括:

获取机器人移动时的边界图像,其中,所述边界图像包括至少一个边界,每个所述边界包括多个边界像素点;

以每个所述边界像素点为中心点构建第一像素矩阵,得到各个边界对应的多个第一像素矩阵;

在任一边界中的所有边界像素点中,当任一边界像素点对应的第一像素矩阵中包括至多两个边界像素点时,确定所述边界为目标边界;

根据所述目标边界对应的多个边界像素点生成移动路径。

根据本申请实施例的一个方面,提供一种移动路径的生成装置,包括:

边界图像获取模块,用于获取机器人移动时的边界图像,其中,所述边界图像包括至少一个边界,每个所述边界包括多个边界像素点;

像素矩阵构建模块,用于以每个所述边界像素点为中心点构建第一像素矩阵,得到各个边界对应的多个第一像素矩阵,其中,所述第一像素矩阵中包围所述中心点且与所述中心点相邻的像素点为第一包围点集;

目标边界确定模块,用于在任一边界中的所有边界像素点中,当任一边界像素点对应的第一像素矩阵中包括至多两个边界像素点时,确定所述边界为目标边界;

移动路径生成模块,用于根据所述目标边界对应的多个边界像素点生成移动路径。

根据本申请实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器执行所述可执行指令使得所述电子设备执行如以上技术方案中的移动路径的生成方法。

根据本申请实施例的一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上技术方案中的移动路径的生成方法。

在本申请实施例提供的技术方案中,通过在边界图像中构建以边界像素点为中心的第一像素矩阵,那么根据第一像素矩阵中的边界像素点数量可以确定该第一像素矩阵的中心是否为封闭边界中的边界点,在任一边界中的所有边界像素点中,当任一边界像素点对应的第一像素矩阵中包括至多两个边界像素点时,该第一像素矩阵的中心实际上是非封闭边界中的边界像素点,从而将非封闭边界作为目标边界,进而根据识别出的目标边界上的边界像素点生成移动路径。通过本申请技术方案可以精确识别出边界图像中的非封闭边界,而非封闭边界通常就是机器人移动过程中所获取的边界图像中的边界,如此,在工作区域边界处没有布设边界感应线的情况下,机器人也可以精确识别出工作区域与非工作区域之间的边界,并基于识别出的边界进行沿边工作。这样不仅降低了边界识别对硬件设备的依赖,提高边界识别的精确性,而且使得机器人在边界没有布设边界感应线的情况下也能够正常进行沿边工作,提高了机器人移动路径生成的稳定性,降低了传统机器人沿边界工作所需的布线成本。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示意性地示出了应用本申请技术方案的示例性系统架构框图。

图2示意性地示出了本申请一个实施例提供的移动路径的生成方法的流程图。

图3示意性地示出了本申请一个实施例提供的确定边界像素点的流程图。

图4示意性地示出了本申请一个实施例提供的对原始图像进行分割区域后的图像。

图5示意性地示出了本申请一个实施例提供的模糊处理过程示意图。

图6示意性地示出了本申请一个实施例提供的模糊图像。

图7示意性地示出了本申请一个实施例提供的预处理图像。

图8示意性地示出了本申请一个实施例提供的边界图像。

图9示意性地示出了本申请一个实施例提供的目标边界的图像。

图10示意性地示出了本申请实施例提供的移动路径的生成装置的结构框图。

图11示意性示出了适于用来实现本申请实施例的电子设备的计算机系统结构框图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

图1示意性地示出了应用本申请技术方案的示例性系统架构框图。

如图1所示,系统架构100可以包括终端设备110、网络120和服务器130。终端设备110可以包括智能手机、平板电脑、笔记本电脑、智能语音交互设备、智能家电、车载终端、机器人等等。服务器130可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。网络120可以是能够在终端设备110和服务器130之间提供通信链路的各种连接类型的通信介质,例如可以是有线通信链路或者无线通信链路。

根据实现需要,本申请实施例中的系统架构可以具有任意数目的终端设备、网络和服务器。例如,服务器130可以是由多个服务器设备组成的服务器群组。另外,本申请实施例提供的技术方案可以应用于终端设备110,也可以应用于服务器130,或者可以由终端设备110和服务器130共同实施,本申请对此不做特殊限定。

举例而言,本申请实施例提供的移动路径的生成方法由服务器130实施。服务器130获取机器人移动时的边界图像,其中,边界图像包括至少一个边界,边界包括多个边界像素点。边界图像可以由终端设备110(如机器人)通过拍摄获取,然后再通过网络120传输至服务器130。服务器130以每个边界像素点为中心点构建第一像素矩阵,得到各个边界对应的多个第一像素矩阵。当在同一个边界对应的多个第一像素矩阵中,任一第一像素矩阵中包括至多两个边界像素点时,服务器130确定该边界为目标边界。最后,服务器130根据目标边界对应的多个边界像素点生成移动路径。服务器130在生成移动路径之后,可以通过网络120将移动路径发送至终端设备110,终端设备110可以将该移动路径展示给用户,也可以根据该移动路径进行移动。

下面结合具体实施方式对本申请提供的移动路径的生成方法做出详细说明。

图2示意性地示出了本申请一个实施例提供的移动路径的生成方法的流程图。该方法可以由服务器实施,如图1所示的服务器130。该方法也可以由终端设备实施例,如图1所示的终端设备110。如图2所示,本申请实施例提供的移动路径的生成方法包括步骤210至步骤240,具体如下:

步骤210、获取机器人移动时的边界图像,其中,边界图像包括至少一个边界,每个边界包括多个边界像素点。

具体的,边界是指图像中不同区域之间的分界线,图像中构成该分界线的像素点称为边界像素点。例如,图像中具有一物体,表示该物体的图像区域与该物体之外的图像区域之间具有一边界,在这种情况下,边界实际上就是物体的轮廓线。在本申请实施例中,边界图像是指包括至少一个边界的图像。机器人移动时的边界图像可以由机器人自身携带的摄像装置获取,也可以通过设置在特定位置的摄像装置获取。

在本申请的一个实施例中,边界是指图像中具有不同属性的区域之间的分界线,图像区域的属性相当于图像区域的类型,例如,图像中具有道路属性的区域和具有草地属性的区域之间具有边界,图像中的一辆汽车所在区域与其周围环境区域之间具有边界。由此可知,图像区域的属性通过对图像区域进行分类得到,而图像区域的分类可以通过图像分割实现。图像分割是指将图像分成若干具有相似性质的图像区域的过程,且分割后的各个图像区域互不相交,那么不同图像区域之间具有边界。因此,可以通过对未经处理的原始图像进行图像分割来确定边界,进而得到边界图像。图像分割可以是图像二值化、语义分割、k-means聚类分割等处理方式,此处不做限定。

在本申请的一个实施例中,边界是指机器人的工作区域与非工作区域之间的分界线,获取边界图像的过程包括:获取机器人移动时的原始图像,原始图像中包括机器人的工作区域与非工作区域;确定原始图像中工作区域和非工作区域之间的多个边界像素点;根据多个边界像素点确定至少一个边界;根据至少一个边界生成机器人移动时的边界图像。

具体的,机器人移动时的原始图像是指机器人在移动过程中实时拍摄得到的图像,该原始图像中包括机器人的工作区域和非工作区域,工作区域是指机器人的移动范围(也就是作业范围)所覆盖的区域,非工作区域则是除工作区域以外的区域。例如,对于割草机器人来说,草地为工作区域,草地以外的区域为非工作区域,例如非工作区域可以是小道、花圃和宠物房子等。将原始图像中的工作区域和非工作区域区分开来,工作区域和非工作区域交界处的像素点就是边界像素点,由多个边界像素点即可确定至少一条边界,进而得到机器人移动时的边界图像。

在本申请的一个实施例中,如图3所示,确定边界像素点的过程包括步骤310至步骤330,具体为:

步骤310、对原始图像进行预处理,得到预处理图像,其中,预处理图像中,工作区域的像素点和非工作区域的像素点具有不同的像素值。

具体而言,对原始图像进行预处理,是为了将原始图像中的工作区域和非工作区域区分开来。一般的,可以将工作区域和非工作区域中的像素点设置不同的像素值来进行区分工作区域和非工作区域,那么在预处理图像中,属于工作区域的像素点的像素值,和属于非工作区域的像素点的像素值是不同的。

在本申请的一个实施例中,对原始图像的预处理过程包括:遍历原始图像中的像素点,并获取所原始图像中像素点之间的相似度;根据相似度将原始图像划分为多个分割区域,分割区域包括工作区域和非工作区域;对分割区域中的各像素点进行模糊处理,得到包括多个模糊像素点的模糊区域;对模糊区域中的各个模糊像素点进行阈值处理,以得到预处理图像。

本申请实施例通过像素点之间的相似度对原始图像进行分割,将原始图像划分为多个分割区域,这多个分割区域的类型有两种:工作区域和非工作区域。可以理解,本申请技术方案是对机器人移动时的边界图像进行处理,故而多个分割区域包括至少一个工作区域和至少一个非工作区域。当多个分割区域均属于工作区域或均属于非工作区域时,表明原始图像中并不包含边界,或者说机器人并未移动到边界范围内,此时无需进行边界图像的处理。

在对原始图像进行分割时,首先计算各个像素点之间的相似度,当两个像素点之间的相似度大于预设阈值时,则表明两个像素点之间具有一定相似性,属于同一个分割区域(可能是工作区域,也可能是非工作区域)。当两个像素点之间的相似度小于预设阈值时,则认为二者不属于同一分割区域。通过这种方式遍历原始图像中的像素点,实现对原始图像的分割处理,得到多个分割区域。在多个分割区域中,属于同一分割区域的像素点之间的相似度将大于不同分割区域的像素点之间的相似度。

在本申请的一个实施例中,对原始图像进行分割处理的过程还可以是:首先从原始图像的像素点中随机选择一个像素点作为分割区域中心,然后计算原始图像中每个像素点与该分割区域中心的相似度,基于该相似度选择下一个分割区域中心,选择方式为:与该分割区域中心的相似度越低的像素点,被选择为下一个分割区域中心的概率越大。然后重复计算相似度及根据相似度确定下一分割区域中心的步骤,直至选择出的分割区域中心的数量不再变化,一个分割区域中心及与其相似度大于阈值的多个像素点就形成了一个分割区域,从而将原始图像划分为多个分割区域。

在本申请的一个实施例中,将原始图像划分为多个分割区域之后,为了更加高效地区分工作区域与非工作区域,可以进一步进行二值化处理,即将工作区域中的像素点设置为相同的第一像素值,将非工作区域中的像素点设置为相同的第二像素值。示例性的,如图4所示,将工作区域中的像素点的像素值均设为255,如图4示出的白色区域,将非工作区域中的像素点的像素值均为0,如图4示出的黑色区域。

在区分原始图像中的工作区域与非工作区域之后,对分割区域中的各像素点进行模糊处理,得到包括多个模糊像素点的模糊区域。模糊处理是为了消除图像中的噪点,以防止后续将不是边界上的像素点误识别为边界像素点,排除非边界的像素点干扰,同时减少非边界的像素点的计算量,进而提高边界识别的精度和效率。

在本申请的一个实施例中,模糊处理的过程包括:以分割区域中的各个像素点为中心点构建多个第三像素矩阵;根据第三像素矩阵中的中心点相邻的各个像素点的像素值,更新第三像素矩阵中的中心点的像素值;将更新像素值后的中心点作为模糊像素点,基于各个模糊像素点得到模糊区域。

具体的,以分割区域中的像素点为中心构建像素矩阵,为便于区分,将该像素矩阵记为第三像素矩阵,同时,在本申请实施例中可以将第三像素矩阵的中心点记为第三中心点。在第三像素矩阵中,除第三中心点以外的像素点构成第三包围点集,该第三包围点集中的像素点是包围第三中心点,且与第三中心点相邻的像素点,该第三包围点集中的像素点又称为第三包围点。与第三中心点相邻的像素点是指在第三中心点的特定邻域内的像素点,特定领域可以是四邻域、八邻域或D邻域等,以一个像素点为中心的九宫格内,中心像素点的上下左右四个方向的像素点为该中心像素点的四邻域像素点,九宫格对角线上的像素点为中心像素点的D邻域像素点,四邻域像素点和D邻域像素点之和为中心像素点的八邻域像素点,即九宫格内除中心像素点以外的像素点为该中心像素点的八邻域像素点。示例性的,第三像素矩阵的形式为九宫格形式(即第三像素矩阵为3*3矩阵),该九宫格的中心即为第三中心点,围绕中心的其余8个像素点构成第三包围点集。

根据第三像素矩阵中第三包围点集的像素值更新对应第三中心点的像素值,就是对第三像素矩阵的中心点进行了模糊处理,模糊处理后的第三像素矩阵的中心点记为模糊像素点,那么遍历各个分割区域中的像素点,对每个像素点进行模糊处理之后,就得到了由多个模糊像素点构成的模糊区域的图像。

在本申请的一个实施例中,更新第三像素矩阵的中心点的像素值,可以是先对第三包围点集中各个像素点的像素值进行统计处理,然后基于统计像素值更新对应的第三像素矩阵的中心点的像素值。例如,将第三包围点集中各个像素点的平均像素值、中位像素值、最大像素值等作为第三像素矩阵的中心点更新后的像素值。示例性的,如图5所示,图5示意性地示出了本申请一个实施例提供的模糊处理过程示意图,图5所示的第三像素矩阵的中心点A更新后的像素值为:(0+0+255+255+255+255+255+255)/8=191.25,为了方便计算,可以取整得到像素值191,该像素值表现为灰色。对于图4所示的二值化图像,经过模糊处理后得到的模糊图像如图6所示。由图4和图6的对比可以看出,模糊处理消除了图像中的噪声,使得图像更加平滑。

在本申请的一个实施例中,对分割区域进行模糊处理得到模糊区域,多个模糊区域则构成模糊图像。在得到模糊图像之后,继续对各个模糊像素点进行阈值处理,得到最终所需的预处理图像。

在本申请的一个实施例中,对模糊像素点进行阈值处理的过程具体包括:若模糊像素点的像素值大于预设像素阈值,则将模糊像素点的像素值设为第一像素值;若模糊像素点的像素值小于预设像素阈值,则将模糊像素点的像素值设为第二像素值;遍历模糊区域中的各模糊像素点,完成模糊像素点的像素值设置后得到预处理图像。

具体而言,对模糊像素点进行阈值处理,就是根据预设像素阈值进一步更新模糊像素点的像素值。当像素值大于预设像素阈值时,将该模糊像素点的像素值设置为第一像素值;否则,将模糊像素点的像素值设置为第二像素值。遍历各个模糊像素点,当所有模糊像素点都更新像素值之后,得到预处理图像。示例性的,对于图6所示的模糊图像,将该模糊图像中像素值大于预设像素阈值的像素点(如像素值大于127),重新设置像素值为0(表现为黑色);将模糊图像中像素值小于或等于预设像素阈值的像素点,重新设置像素值为255(表现为白色),得到的预处理图像如图7所示。

继续参考图3,步骤320、以预处理图像中的各个像素点为中心点构建多个第二像素矩阵。

继续参考图3,步骤330、根据各个第二像素矩阵中像素点的像素值,确定工作区域和非工作区域之间的多个边界像素点。

具体的,得到预处理图像之后,在预处理图像中构建第二像素矩阵,然后根据第二像素矩阵中的像素点情况来确定边界像素点。

第二像素矩阵是以预处理图像中的各个像素点为中心的像素矩阵,为便于区分,在本申请实施例中可以将第二像素矩阵的中心点记为第二中心点,第二像素矩阵中包围第二中心点的像素点构成第二包围点集,即与第二像素矩阵的中心点相邻的像素点为第二包围点集中的像素点,也可以称为第二包围点。在预处理图像中,工作区域的像素点具有相同的第一像素值,非工作区域的像素点具有相同的第二像素值,而边界像素点位于工作区域与非工作区域之间的交界处,故而边界像素点周围可能既存在工作区域像素点,又存在非工作区域像素点,即边界像素点周围应存在两种不同的像素值。因此,可以通过第二像素矩阵中第二包围点集的像素值来确定对应第二中心点是否为边界像素点,其中,第二包围点集的像素值是指第二包围点集中各像素点的像素值。那么,当第二包围点集的像素值中同时存在第一像素值和第二像素值时,就说明对应的第二中心点周围既存在工作区域像素点,又存在非工作区域像素点,故而可以认为该第二中心点为边界像素点。显然,当第二包围点集的像素值仅为第一像素值和第二像素值中的一个时,对应的第二中心点不是边界像素点。

如此,遍历预处理图像中的像素点,对每一个像素点对应的第二像素矩阵进行判断,就可以确定出预处理图像中的多个边界像素点。根据这多个边界像素点,就可以确定至少一个边界,进而得到边界图像。示例性的,对于图7所示的预处理图像,经过识别边界像素点之后,得到的边界图像如图8所示,在该边界图像中,包括边界1和边界2。

继续参考图2,步骤220、以每个边界像素点为中心点构建第一像素矩阵,得到各个边界对应的多个第一像素矩阵。

具体的,在边界图像中,以边界像素点为中心构建第一像素矩阵,为便于区分,在本申请实施例中可以将该边界像素点也称为第一中心点,第一像素矩阵中包围第一中心点且与第一中心点相邻的像素点构成第一包围点集,第一包围点集中的像素点也称为第一包围点。与第一中心点相邻的像素点是指在第一中心点的特定邻域内的像素点,例如四邻域像素点、八邻域像素点、D邻域像素点等。

继续参考图2,步骤230、在任一边界中的所有边界像素点中,当任一边界像素点对应的第一像素矩阵中包括至多两个边界像素点时,确定边界为目标边界。

具体的,边界图像中可能有多条边界,但是并非每个边界都属于最终需要生成移动路径的目标边界。在本申请实施例中,边界图像是机器人在靠近工作区域与非工作区域的边界范围内运行时获取的图像,工作区域与非工作区域之间的边界应是一条非封闭的边界,因此,本申请中的目标边界是指非封闭边界。

如果一个边界是封闭边界,那么对于边界上的任意一个边界像素点来说,该边界像素点至少有一个相连的出点,也至少有一个入点,加上边界像素点自身,以其为中心的第一像素矩阵内至少有三个边界像素点,即对应的第一包围点集中边界像素点的个数大于1。入点与出点的理解如下:假设边界上有3个像素点:A、B、C,A点连接B点,B点连接C点,则对于B点来说,A点为入点,C点为出点。当然,若看成是C点连接B点,B点连接A点,那么对于B点来说,C点为入点,A点为出点。一般的,封闭边界大多是障碍物的轮廓线,而不是工作区域与非工作区域之间的边界。

在本申请的一个实施例中,如果一个边界是封闭边界,则在以边界像素点为第一中心点第一像素矩阵中,对应的第一包围点集中边界像素点的个数大于1,再加上第一中心点自身,第一像素矩阵中的像素点个数应大于2。因此,当确定一个边界的各个边界像素点对应的第一像素矩阵中,任意第一像素矩阵中的边界像素点个数大于2时,可以认为该边界是封闭边界。

由封闭边界的特性可以推测出非封闭边界的特性,即,若边界上存在一个边界像素点,以该边界像素点为中心的第一像素矩阵的第一包围点集中,边界像素点的个数小于或等于1,则该边界为非封闭边界。因此,当第一像素矩阵的第一包围点集中包括至多一个边界像素点时,相当于中心点周围没有边界像素点或只有一个边界像素点,或者说第一像素矩阵内至多有两个边界像素点,说明在该中心点之后,未连接边界上的其他边界像素点,也就表明该边界不是封闭边界,那么该边界就是目标边界。

示例性的,对于图8所示的边界图像,在边界1的边界像素点A处,该边界像素点A仅与前一边界像素点A’连接,那么在根据边界1中的各边界像素点构建的第一像素矩阵中,该边界像素点A对应的第一像素矩阵的第一包围点集中的边界像素点的个数为1,从而确定边界1为非封闭边界,即边界1为目标边界。在边界2的任一边界像素点处,以边界像素点B为例,该边界像素点B前后都连接有其他边界像素点,即该边界像素点B对应的第一像素矩阵的第一包围点集中,边界像素点的个数至少为2;那么在根据边界2中的各个边界像素点构建的第一像素矩阵中,任意第一像素矩阵的第一包围点集中的边界像素点的个数大于1,从而确定边界2为封闭边界,那么边界2不是目标边界。此时可以将边界2从边界图像中删除,得到如图9所示的仅包含目标边界的图像。

在本申请的一个实施例中,在识别出属于目标边界的多个边界像素点之后,计算各个边界像素点所形成的边界的长度,选择最长边界作为目标边界。这是为了使确定的目标边界是一条完整边界,而不是边界中的一段。

继续参考图2,步骤240、根据目标边界对应的多个边界像素点生成移动路径。

具体的,在确定目标边界之后,就可以根据目标边界生成移动路径,该移动路径又称为机器人的沿边路径。目标边界上的各个边界像素点就可以看成是机器人移动路径上的各个点,基于各个边界像素点的连线就可以生成移动路径。

在本申请的一个实施例中,生成移动路径的过程包括:获取目标边界中各个边界像素点对应的深度信息;根据目标边界中各个边界像素点对应的深度信息和各个边界像素点在边界图像中的像素坐标,确定目标边界中各个边界像素点在机器人坐标系下的空间坐标;根据目标边界中各个边界像素点对应的空间坐标生成移动路径。

具体的,边界像素点的深度信息是指由深度相机获取的深度图像中,该边界像素点对应的深度值,像素点的深度值表示该像素点对应的实际物体到深度相机之间的距离。一般的,边界图像由RGB相机获取,深度图像由深度相机获取,为了使各像素点的像素坐标和深度信息保持一致,需要先对RGB相机和深度相机进行对齐标定,常见的标定方法有棋盘标定法。标定对齐后的RGB相机和深度相机可以简称为RGB-D相机,通过RGB-D相机可以同步获取到边界像素点的像素坐标(u,v)和深度信息d。

在得到边界像素点的像素坐标(u,v)和深度信息d后,通过坐标系转换,就可以确定边界像素点在机器人坐标系下的空间坐标,该坐标系转换包括像素坐标系和相机坐标系之间的转换,以及相机坐标系和机器人坐标系之间的转换。首先,通过像素坐标系和相机坐标系之间的转换得到边界像素点在相机坐标系下的三维坐标。将边界像素点在相机坐标系下的三维坐标记为(x,y,z),则三维坐标(x,y,z)的计算方式如下:

其中,f

然后基于相机坐标系和机器人坐标系之间的转换关系,将边界像素点的三维坐标转换为机器人坐标系下的空间坐标。最后,根据边界像素点的空间坐标对各边界像素点进行排序,生成机器人的移动路径。当然,也可以先将各边界像素点排序后再将三维坐标转换为空间坐标。在对边界像素点排序时,依据机器人运行方向的坐标进行排序即可。示例性的,相机坐标系下,x轴为相机正前方(也是机器人正前方),y轴为机器人运行方向,则根据三维坐标中的y轴坐标从小到大的顺序对各个边界像素点排序,最后将排序后的边界像素点映射至机器人坐标系下,得到机器人的沿边路径。

在本申请实施例提供的技术方案中,通过在边界图像中构建以边界像素点为中心的第一像素矩阵,那么根据第一像素矩阵的第一包围点中的边界像素点数量可以确定该第一像素矩阵的中心是否为封闭边界中的边界点,当第一像素矩阵的第一包围点中包括至多一个同一边界的边界像素点时,该第一像素矩阵的中心实际上是非封闭边界中的边界像素点,从而将非封闭边界作为目标边界,进而根据识别出的目标边界上的边界像素点生成移动路径;通过本申请技术方案可以精确识别出边界图像中的非封闭边界,而非封闭边界通常就是机器人移动过程中所获取的边界图像中的边界,如此,使得机器人在工作区域边界处没有布设边界感应线的情况下,也可以精确识别出工作区域与非工作区域之间的边界,并基于识别出的边界进行沿边工作。这样不仅降低了边界识别对硬件设备的依赖,提高边界识别的精确性,而且使得机器人在边界没有布设边界感应线的情况下也能够正常进行沿边工作,提高了机器人移动路径生成的稳定性,也降低了传统机器人沿边界工作所需的布线成本。

应当注尽管在附图中以特定顺序描述了本申请中方法的各步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。

以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的移动路径的生成方法。图10示意性地示出了本申请实施例提供的移动路径的生成装置的结构框图。如图10所示,该移动路径的生成装置包括:

边界图像获取模块1010,用于获取机器人移动时的边界图像,其中,所述边界图像包括至少一个边界,每个所述边界包括多个边界像素点;

像素矩阵构建模块1020,用于以每个所述边界像素点为中心点构建第一像素矩阵,得到各个边界对应的多个第一像素矩阵,其中,所述第一像素矩阵中包围所述中心点且与所述中心点相邻的像素点为第一包围点集;

目标边界确定模块1030,用于在任一边界中的所有边界像素点中,当任一边界像素点对应的第一像素矩阵中包括至多两个边界像素点时,确定所述边界为目标边界;

移动路径生成模块1040,用于根据所述目标边界对应的多个边界像素点生成移动路径。

在本申请的一个实施例中,边界图像获取模块1010包括:

原始图像获取单元,用于获取机器人移动时的原始图像,所述原始图像中包括所述机器人的工作区域与非工作区域;

边界像素点确定单元,用于确定所述原始图像中所述工作区域和所述非工作区域之间的多个边界像素点;

边界确定单元,用于根据所述多个边界像素点确定至少一个边界;

边界图像生成单元,用于根据所述至少一个边界生成所述机器人移动时的边界图像。

在本申请的一个实施例中,所述边界像素点确定单元包括:

预处理单元,用于对所述原始图像进行预处理,得到预处理图像,其中,所述预处理图像中,所述工作区域的像素点和所述非工作区域的像素点具有不同的像素值;

第二像素矩阵构建单元,用于以所述预处理图像中的各个像素点为中心点构建多个第二像素矩阵;

边界像素点确定子单元,用于根据各个所述第二像素矩阵中像素点的像素值确定所述工作区域和所述非工作区域之间的多个边界像素点。

在本申请的一个实施例中,在所述预处理图像中,所述工作区域的像素点具有相同的第一像素值,所述非工作区域的像素点具有相同的第二像素值;

所述边界像素点确定子单元具体用于:在所述第二像素矩阵中,与第二像素矩阵的中心点相邻的像素点的的像素值中若同时存在第一像素值和第二像素值,则确定所述第二像素矩阵的中心点为所述工作区域和所述非工作区域之间的边界像素点。

在本申请的一个实施例中,所述预处理单元包括:

相似度确定子单元,用于遍历所述原始图像中的像素点,并获取所原始图像中像素点之间的相似度;

图像分割子单元,用于根据所述相似度将所述原始图像划分为多个分割区域,所述分割区域包括工作区域和非工作区域;

模糊处理子单元,用于对所述分割区域中的各像素点进行模糊处理,得到包括多个模糊像素点的模糊区域;

阈值处理子单元,用于对所述模糊区域中的各个模糊像素点进行阈值处理,以得到预处理图像。

在本申请的一个实施例中,所述阈值处理子单元具体用于:

若所述模糊像素点的像素值大于预设像素阈值,则将所述模糊像素点的像素值设为第一像素值;

若所述模糊像素点的像素值小于预设像素阈值,则将所述模糊像素点的像素值设为第二像素值;

遍历所述模糊区域中的各模糊像素点,完成所述模糊像素点的像素值设置后得到所述预处理图像。

在本申请的一个实施例中,所述模糊处理子单元具体用于:

以所述分割区域中的各个像素点为中心点构建多个第三像素矩阵;

根据所述第三像素矩阵中的中心点相邻的各个像素点的像素值,更新所述第三像素矩阵中的中心点的像素值;

将更新像素值后的中心点作为模糊像素点,基于各个模糊像素点得到模糊区域。

在本申请的一个实施例中,移动路径生成模块1040包括:

深度信息获取单元,用于获取所述目标边界中各个边界像素点对应的深度信息;

坐标转换单元,用于根据所述目标边界中各个边界像素点对应的深度信息和各个边界像素点在所述边界图像中的像素坐标,确定所述目标边界中各个边界像素点在机器人坐标系下的空间坐标;

移动路径生成单元,用于根据所述目标边界中各个边界像素点对应的空间坐标生成移动路径。

本申请各实施例中提供的移动路径的生成装置的具体细节已经在对应的方法实施例中进行了详细的描述,此处不再赘述。

图11示意性地示出了用于实现本申请实施例的电子设备的计算机系统结构框图。

需要说明的是,图11示出的电子设备的计算机系统1100仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图11所示,计算机系统1100包括中央处理器1101(Central Processing Unit,CPU),其可以根据存储在只读存储器1102(Read-Only Memory,ROM)中的程序或者从存储部分1108加载到随机访问存储器1103(Random Access Memory,RAM)中的程序而执行各种适当的动作和处理。在随机访问存储器1103中,还存储有系统操作所需的各种程序和数据。中央处理器1101、在只读存储器1102以及随机访问存储器1103通过总线1104彼此相连。输入/输出接口1105(Input/Output接口,即I/O接口)也连接至总线1104。

以下部件连接至输入/输出接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至输入/输出接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。

特别地,根据本申请的实施例,各方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被中央处理器1101执行时,执行本申请的系统中限定的各种功能。

需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

相关技术
  • 移动路径的生成方法、装置、可读介质及电子设备
  • 分流路径生成方法、装置、电子设备和计算机可读介质
技术分类

06120114718331