移动机器人全覆盖路径规划方法、芯片和机器人与流程

文档序号:23272725发布日期:2020-12-11 19:05阅读:219来源:国知局
移动机器人全覆盖路径规划方法、芯片和机器人与流程

本发明涉及智能机器人领域,具体涉及一种移动机器人全覆盖路径规划方法、芯片和机器人。



背景技术:

目前对于全覆盖机器人来说,如扫地机、割草机、擦窗机、排雷机器人等,需要以最短的路径去覆盖机器人能到达的所有地方。而全覆盖方法一般为旅行商(np-hard)问题,其要解决的是,给定一系列城市和每对城市之间的距离,求解访问每一座城市一次并回到起始城市的最短回路。当问题的维度增加时,会出现解决问题所需的计算时间急剧增加的情况,这导致了机器人需要花更多的时间进行路径规划,影响工作效率,而且还显得不那么智能,降低了用户的使用体验。基于此,有必要开发一种新的路径覆盖方法,以提高智能机器人的路径覆盖效率。



技术实现要素:

为解决上述问题,本发明提供了一种移动机器人全覆盖路径规划方法、芯片和机器人,可以较大的降低计算复杂度,提高机器人的覆盖效率。本发明的具体技术方案如下:

一种移动机器人全覆盖路径规划方法,所述方法包括以下步骤:s1、机器人检测清扫区域内的障碍物并生成包含障碍物信息的地图,同时将地图分割成若干个子区块;s2、机器人规划子区块内的清扫路径;s3、机器人确定起始子区块并进行清扫,然后计算子区块间的路径代价,根据路径代价来选择下一清扫子区块并循环此步骤直至完成所有子区块的清扫。本发明所涉及的一种新的全覆盖路径规划方法可以降低计算复杂度,提高机器人的覆盖效率。

进一步地,所述步骤s1具体包含如下步骤:机器人通过视觉系统检测清扫区域内的障碍物并生成地图,同时读取地图和障碍物的边界;机器人根据地图和障碍物的边界在地图上设置若干条互相平行的清扫线,相邻清扫线之间的距离相等;机器人将两端分别位于地图两侧边界并与障碍物相距至少一个机器人半径的清扫线作为子区块分割线;机器人以子区块分割线和障碍物两侧边界为分界,将地图分割成若干个子区块。本发明通过对清扫线的设置,可以为后续分割线的定位提供准确有效的参考依据;以分割线和障碍物两侧边界作为分界,可以将清扫区域分割成若干个易于清扫的规则几何图形。

进一步地,所述清扫线为水平方向或竖直方向。

进一步地,所述地图的分割过程中,机器人将所述子区块分割线所在的区域视为一个子区块,该子区块中仅包含所述子区块分割线这一条清扫线。本发明将所述子区块分割线视为一个子区块,以此作为过渡,让机器人能够以更高的效率在子区块间移动。

进一步地,所述机器人通过a*算法来规划子区块内的清扫路径,使机器人在子区块中采用弓字形行走。本发明通过a*算法进行子区块内清扫路径的规划,能够以一种高效的方式求解出清扫路径。

进一步地,所述步骤s3具体包含如下步骤:机器人读取子区块的分布情况;机器人以自身所处子区块为起始子区块;机器人遍历所有与起始子区块连通的未清扫的子区块,如果仅有唯一的子区块,则该子区块作为下一个清扫区域;如果有两个或两个以上的子区块,则分别计算每一条分支去和回的路径代价总和,选择路径代价总和最小的那条分支上的子区块进行清扫;如果为子区块回环,则只需比较在起始子区块去往下一个子区块的路径代价大小即可,选择路径代价小的子区块进行清扫。

进一步地,所述子区块回环的判断方法为,从一子区块出发,在路径不重复的情况下,如果能够找到一条返回该子区块的路径,则该路径上的所有子区块构成一个子区块回环。

进一步地,所述机器人在遍历与起始子区块连通的未清扫的子区块时,如果起始子区块已无下一连通的未清扫的子区块,则返回上一子区块,并继续遍历所有连通的未清扫的子区块直至所有子区块完成清扫。

一种芯片,内置控制程序,所述控制程序用于控制机器人执行上述的全覆盖路径规划方法。使用本发明所述的芯片,可以降低机器人在规划全覆盖路径时的计算复杂度,提高路径覆盖效率。

一种机器人,装配有主控芯片,所述主控芯片是上述的芯片。使用本发明所述的机器人,可以提高路径覆盖的效率,减少机器人在完成任务的过程中耗费的规划时间,提高用户体验。

本发明的有益效果在于:机器人将清扫区域中的障碍物作为参考,根据障碍物和分割线进行子区块的分割,可以较大地降低计算复杂度;机器人根据子区块间的路径代价判断子区块的清扫顺序,较大地降低了计算复杂度,能够以较小的代价完成房间的清扫,提高机器人覆盖效率。如此一来,机器人进行全覆盖路径的规划更高效、更智能,计算所需的时间大幅减少,可以提高用户体验。

附图说明

图1为本发明一种实施例中移动机器人全覆盖路径规划方法的流程示意图。

图2为本发明一种实施例中移动机器人进行全覆盖路径规划工作的示意图。

图3为本发明一种实施例中移动机器人进行路径代价计算的示意图。

图4为本发明另一种实施例中移动机器人进行全覆盖路径规划工作的示意图。

图5为本发明另一种实施例中移动机器人进行路径代价计算的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细描述。应当理解,下面所描述的具体实施例仅用于解释本发明,并不用于限定本发明。

在下面的描述中,给出具体细节以提供对实施例的透彻理解。然而,本领域的普通技术人员将理解,可以在没有这些具体细节的情况下实施实施例。例如,电路可以在框图中显示,以便不在不必要的细节中使实施例模糊。在其他情况下,为了不混淆实施例,可以不详细显示公知的电路、结构和技术。

本发明实施例所述机器人可以为扫地机器人、割草机器人、擦窗机器人、排雷机器人等智能移动机器人,该机器人可以包含机器主体、感知系统、控制系统、驱动系统、清洁系统、能源系统和人机交互系统等。

如图1所示,一种移动机器人全覆盖路径规划方法,包括如下步骤:s1、机器人检测清扫区域内的障碍物并生成包含障碍物信息的地图,同时将地图分割成若干个子区块;s2、机器人规划子区块内的清扫路径;s3、机器人确定起始子区块并进行清扫,然后计算子区块间的路径代价,根据路径代价来选择下一清扫子区块并循环此步骤直至完成所有子区块的清扫。本实施例所述的一种新的全覆盖路径规划方法在清扫线的基础上设置分割线以及使用路径代价规划子区块顺序,简化了子区块的分割和顺序规划流程,降低了计算复杂度,节约了计算时间,从而提高了机器人的覆盖效率。

作为其中一种实施方式,所述步骤s1具体包含如下步骤:首先,机器人通过视觉系统检测清扫区域内的障碍物并生成地图,同时读取地图和障碍物的边界;然后,机器人根据地图和障碍物的边界在地图上设置若干条互相平行的清扫线,清扫线从地图的一侧边界出发,当检测到地图的另一侧边界或障碍物的一侧边界时停止,当遇到障碍物的一侧边界时,随即从障碍物的另一侧边界出发直至检测到地图的另一侧边界,所述清扫线之间的距离相等;紧接着,机器人将两端分别位于地图两侧边界并与障碍物相距至少一个机器人半径的清扫线作为子区块分割线,如果分割线处于两个障碍物(包括墙壁)之间且距离小于一个机器人直径,则将两个障碍物视为一个整体,此清扫线不作为分割线;最后,机器人以子区块分割线和障碍物两侧边界为分界,将地图分割成若干个子区块。本实施例所述的方法,通过对清扫线的设置,可以为后续分割线的定位提供准确有效的参考依据;以分割线和障碍物两侧边界作为分界,可以将清扫区域分割成若干个易于清扫的规则几何图形。

作为其中一种实施方式,所述清扫线为水平方向或竖直方向。

作为其中一种实施方式,所述地图的分割过程中,机器人将所述子区块分割线所在的区域视为一个子区块,该子区块中仅包含所述子区块分割线这一条清扫线。本发明将所述子区块分割线视为一个子区块,以此作为过渡,让机器人能够以更高的效率在子区块间移动。

作为其中一种实施方式,所述机器人通过a*算法来规划子区块内的清扫路径,使机器人在子区块中采用弓字形行走。所述a*算法是经典的求解最优路径的方法,可以用于规划地图上两点的运动轨迹,因其高效性被广泛应用于寻路和图的遍历。本实施例所述的方法,通过a*算法进行子区块内清扫路径的规划,能够以一种高效的方式求解出清扫路径。

作为其中一种实施方式,所述步骤s3具体包含如下步骤:首先,机器人读取子区块的分布情况;然后,机器人以自身所处子区块为起始子区块;最后,机器人遍历所有与起始子区块连通的未清扫的子区块,如果仅有唯一的子区块,则该子区块作为下一个清扫区域;如果有两个或两个以上的子区块,则分别计算每一条分支去和回的路径代价总和,所述路径代价总和包括机器人从起始子区块出发直至回到起始子区块所经过的所有路径之和,选择路径代价总和最小的那条分支上的子区块进行清扫;如果为子区块回环,则只需比较在起始子区块去往下一个子区块的路径代价大小即可,选择路径代价小的子区块进行清扫。所述遍历的含义为,机器人对地图上所有子区块的信息的访问。所述子区块回环的判断方法为,从一子区块出发,在路径不重复的情况下,如果能够找到一条返回该子区块的路径,则该路径上的所有子区块构成一个子区块回环。本实施例所述的方法,通过路径代价来判断子区块间的清扫顺序,较大地降低了计算复杂度,提高了路径覆盖的效率。

作为其中一种实施方式,所述机器人在遍历与起始子区块连通的未清扫的子区块时,如果起始子区块已无下一连通的未清扫的子区块,则返回上一子区块,并继续遍历所有连通的未清扫的子区块直至所有子区块完成清扫。

本发明实施例还提供一种芯片,内置控制程序,所述控制程序用于控制机器人执行上述的全覆盖路径规划方法。使用本发明所述的芯片,可以降低机器人在规划全覆盖路径时的计算复杂度,提高路径覆盖效率。所述芯片可以装配在诸如扫地机器人、割草机器人、擦窗机器人、排雷机器人等智能移动机器人上。

本发明实施例还提供一种机器人,装配有主控芯片,所述主控芯片是上述的芯片。装配有该芯片的机器人可以执行上述全覆盖路径规划方法,具有与上述全覆盖路径规划方法相同的技术效果,在此不再赘述。

下面以扫地机器人清扫房间为例进行说明:

如图2所示,假设扫地机器人对一房间进行清扫,房间内靠墙位置有一张床和一张桌子,均视为障碍物。当扫地机器人通过视觉系统检测到障碍物时,会生成包含障碍物信息的房间地图。然后,机器人读取障碍物和地图的边界,在障碍物和地图的边界之间设置若干条互相平行且距离相等的清扫线,图2左上角图片显示了所述清扫线。紧接着,机器人将两端分别位于地图两侧边界并与障碍物相邻的清扫线作为子区块分割线,分割线的数量由障碍物的数量和位置决定,如图2所示,房间里存在两个障碍物并且靠墙,因此只取两条分割线,分别位于图中序号为3和5的子区块。随后,以分割线和障碍物边界为分界,整个房间被分割成为7个子区块,包括床和桌子两边序号分别为1、2、6、7的子区块,床和桌子中间序号为4的子区块以及两条分割线所在的序号为3、5的子区块。接下来,采用a*算法对各个子区块内的清扫路径进行弓字形规划,结果如图2右下角图片所示。最后根据子区块间的路径代价进行子区块的顺序排序,如图3所示,圆圈代表子区块,数字对应图2的子区块序号,箭头代表子区块间的路径代价。设a=5,b=6,c=7,d=6,e=2,f=1,g=10,h=15,i=13,j=12,k=4,l=5。假设机器人在子区块1,即床的左边进行清扫,在清扫完成后会遍历所有与子区块1连通的子区块,发现仅有唯一的连通子区块3,于是扫地机器人移动到子区块3进行打扫。清扫完成后继续遍历所有与子区块3连通的子区块,发现有两个子区块,则分别计算两条不同分支去和回的路径代价总和。其中,往子区块2方向的路径代价总和为c+d=13;往子区块4方向的路径代价总和为f+g+k+l+j+i+h+e=62,根据结果,机器人会选择子区块2去清扫。清扫完子区块2之后,机器人发现已无下一未清扫的连通子区块,于是返回上一子区块3。这时仅有子区块4可供选择,于是前往清扫。完成后,继续遍历所有与子区块4连通的子区块,发现仅有唯一连通的子区块5,前往清扫。完成后,继续遍历与子区块5连通的子区块,发现有子区块6和子区块7,开始计算路径代价总和:往子区块6方向的路径代价总和为i+j=25;往子区块7方向的路径代价总和为k+l=9,根据结果,选择子区块7去清扫。完成后,因子区块7已无下一未清扫的连通子区块,于是返回上一子区块5。这时仅有子区块6可供选择,于是前往清扫。完成后,因子区块6已无下一未清扫的连通子区块,于是返回上一子区块5,继续遍历与子区块5连通的未清扫子区块,发现不存在这样的子区块,清扫结束。

作为另一实施例,下面对扫地机器人清扫餐厅进行说明:

如图4所示,假设餐厅正中间有一餐桌,同样的,首先机器人生成包含障碍物信息的餐厅地图,然后设置清扫线和子区块分割线。此例中,虽然只有一个障碍物,但由于障碍物在正中间,因此需要在障碍物的上边界和下边界处各取一条分割线,如图中序号2和5所示。然后,以分割线和障碍物边界为分界,将餐厅分割成6个子区块,包括障碍物上方的子区块1和下方的子区块6,左边的子区块3和右边的子区块4,以及两条分割线所在的子区块2和子区块5。随后对各个子区块内的清扫路径进行弓字形规划,结果如图4右下角图片所示。最后根据子区块间的路径代价进行子区块的顺序排序,如图5所示,设a=5,b=6,c=7,d=6,e=2,f=1,g=10,h=15,i=13,j=12,k=4,l=5。假设机器人在子区块1进行清扫,在清扫完成后会遍历所有与子区块1连通的子区块,发现仅有唯一的连通子区块2,于是扫地机器人移动到子区块2进行打扫。完成后,遍历所有与子区块2连通的未清扫子区块,发现有子区块3和子区块4,且判断到它们属同一子区块回环,此时计算方式不再是两条不同分支去和回的路径代价总和,而是比较在子区块2去往下一子区块的路径代价大小。如图5所示,子区块2去往子区块3的路径代价为e=2,子区块2去往子区块4的路径代价为d=6,根据结果,机器人选择去往路径代价较小的子区块3进行清扫。完成后,遍历所有与子区块3连通的未清扫子区块,发现仅有唯一连通的子区块5,于是清扫子区块5。清扫完成后继续遍历所有与子区块5连通的子区块,发现有两个子区块,则分别计算两条不同分支去和回的路径代价总和。其中,往子区块4方向的路径代价总和为i+j=25;往子区块6方向的路径代价总和为k+l=9,根据结果,选择子区块6去清扫。完成后,发现已无下一未清扫的连通子区块,于是返回上一子区块5,这时仅有子区块4可供选择,于是前往清扫。完成后,因子区块4已无下一未清扫的连通子区块,于是返回上一子区块5,继续遍历与子区块5连通的未清扫子区块,发现不存在这样的子区块,清扫结束。

本领域技术人员可以理解实现上述实施方式方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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