CN114343490A - 机器人清扫方法、机器人及存储介质 - Google Patents
机器人清扫方法、机器人及存储介质 Download PDFInfo
- Publication number
- CN114343490A CN114343490A CN202111629049.XA CN202111629049A CN114343490A CN 114343490 A CN114343490 A CN 114343490A CN 202111629049 A CN202111629049 A CN 202111629049A CN 114343490 A CN114343490 A CN 114343490A
- Authority
- CN
- China
- Prior art keywords
- point
- navigation
- robot
- target
- blank grid
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Manipulator (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
本发明涉及机器人路径规划技术领域,提供一种机器人清扫方法、机器人及存储介质,通过距离算法从待清扫的目标区域中找出最近的导航目标点,然后以导航目标点作为始点,可经行已清扫区域且使得机器人不碰撞障碍物的最短路径,基于最短路径控制机器人到目标区域进行清扫,实现了动态选择最近导航点以构建最短路径,从而可以更有效更智能更快速的控制机器人到达目标区域,以提高了清扫效率。
Description
技术领域
本发明涉及机器人路径规划技术领域,尤其涉及一种机器人清扫方法、机器人及存储介质。
背景技术
在扫地机器人运动过程中,需要对周边环境的信息进行感知和分析,在感知和分析的结果下确定未清扫区域,并规划扫地机器人的当前位置到未清扫区域的移动路径。
目前对于移动路径的规划,主要是基于障碍物避障,以及惯性导航或者激光雷达导航的方式实现,而惯性导航或者激光雷达导航是静态的路径规划,虽然说障碍物避障可以实现动态规划,但是该避障方法所选择出来的导航点并不是相对于未清扫区域的最近导航点,从而导致移动路径较长,使得扫地机器人移动耗时长,影响清扫效率。
发明内容
本发明提供一种机器人清扫方法、机器人及存储介质,用于解决现有技术中在清扫路径规划过程中无法查找最近导航点,导致规划的路径不是最短路径的问题。
本发明第一方面提供了一种机器人清扫方法,所述机器人清扫方法包括:获取机器人所在的区域的栅格地图、机器人的当前位置和待清扫的目标区域;基于曼哈顿距离算法从所述目标区域中筛选出至少一个导航目标点,生成导航目标点序列;以所述导航目标点序列中各导航目标点作为终点,利用预设的路径规划算法搜索所述栅格地图中满足预设条件的导航空白栅格点构建所述当前位置到所述终点的初始路径;基于所述导航目标点序列,对所述初始路径中位于所述目标区域中的导航空白栅格点进行优化,得到最短路径;基于所述最短路径,控制所述机器人移动至所述目标区域进行清扫。
在一种可行的实施方式中,所述基于曼哈顿距离算法从所述目标区域中筛选出至少一个导航目标点,生成导航目标点序列,包括:搜索所述目标区域中满足预设条件的所有目标空白栅格点;利用曼哈顿距离算法计算所述当前位置到各所述目标空白栅格点之间的曼哈顿距离,并基于所述曼哈顿距离确定至少一个目标空白栅格点,生成导航目标点序列。
在一种可行的实施方式中,所述利用曼哈顿距离算法计算所述当前位置到各所述目标空白栅格点之间的曼哈顿距离,并基于所述曼哈顿距离确定至少一个目标空白栅格点,生成导航目标点序列,包括:设置曼哈顿距离最小值和用于存储导航目标点的第一容器;从所有目标空白栅格点中选择一个作为第一导航目标点,并利用曼哈顿距离算法计算所述当前位置到所述第一导航目标点的第一曼哈顿距离;判断所述第一曼哈顿距离是否大于所述曼哈顿距离最小值;若不大于所述曼哈顿距离最小值,则将所述第一导航目标点存储于所述第一容器中;选择下一个导航目标点计算曼哈顿距离,直到遍历完所有目标空白栅格点,生成导航目标点序列。
在一种可行的实施方式中,所述选择下一个导航目标点计算曼哈顿距离,直到遍历完所有目标空白栅格点,生成导航目标点序列,包括:将所述曼哈顿距离最小值更新为第一曼哈顿距离;从所有目标空白栅格点中选择第二导航目标点,利用曼哈顿距离算法计算所述当前位置到所述第二导航目标点的第二曼哈顿距离;判断所述第二曼哈顿距离是否大于所述第一曼哈顿距离;若不大于所述第一曼哈顿距离,则将所述第一导航目标点存储于所述第一容器中,并将所述曼哈顿距离最小值更新为第二曼哈顿距离,直到遍历完所有目标空白栅格点,生成导航目标点序列。
在一种可行的实施方式中,所述以所述导航目标点序列中各导航目标点作为终点,利用预设的路径规划算法搜索所述栅格地图中满足预设条件的导航空白栅格点构建所述当前位置到所述终点的初始路径,包括:按照曼哈顿距离从小到大的顺序,选择所述导航目标点序列中导航目标点作为终点,以所述机器人的当前位置为始点;利用预设的路径规划算法搜索所述始点到所述终点之间的空白栅格点中满足预设条件的栅格点作为导航空白栅格点;基于所述导航空白栅格点构建所述当前位置到所述终点的第一路径;直到遍历完所述导航目标点序列中的所有导航目标点后,从所有第一路径中选择路径最短的一个作为初始路径,并将所述初始路径存储于预设的第二容器中。
在一种可行的实施方式中,所述路径规划算法为移动代价评估策略,所述利用预设的路径规划算法搜索所述始点到所述终点之间的空白栅格点中满足预设条件的栅格点作为导航空白栅格点,包括:基于预设条件搜索位于所述始点到所述终点之间且所述机器人可到达的所有空白栅格点,并利用所述移动代价评估策略,从所有所述空白栅格点中选择移动代价最小的栅格点作为导航空白栅格点。
在一种可行的实施方式中,所述基于预设条件搜索位于所述始点到所述终点之间且所述机器人可到达的所有空白栅格点,并利用所述移动代价评估策略,从所有所述空白栅格点中选择移动代价最小的栅格点作为导航空白栅格点,包括:构建第一栅格列表;基于预设条件搜索所述始点周边的且所述机器人可到达的所有第一空白栅格点,并将所述始点和所有第一空白栅格点加入所述第一栅格列表中;以所述始点为父节点,利用所述移动代价评估策略,计算所述父节点到各所述第一空白栅格点的第一移动代价和各所述第一空白栅格点到所述终点的第一估算成本;基于所述第一移动代价和所述第一估算成本,计算各所述第一空白栅格点的第一最终得分;基于所述第一最终得分从所有第一空白栅格点选择得分最小的一个作为第一导航空白栅格点;构建第二栅格列表,将所述始点和所述第一导航空白栅格点加入所述第二栅格列表中;基于预设条件搜索所述第一导航空白栅格点周边的且所述机器人可到达的所有第二空白栅格点,并将所述第一导航空白栅格点和所有第二空白栅格点更新所述第一栅格列表中;以所述第一导航空白栅格点为父节点,利用所述移动代价评估策略,计算所述父节点到各所述第二空白栅格点的第二移动代价和各所述第二空白栅格点到所述终点的第二估算成本;基于所述第二移动代价和所述第二估算成本,计算各所述第二空白栅格点的第二最终得分;基于所述第二最终得分从所有第二空白栅格点选择得分最小的一个作为第二导航空白栅格点,并加入至所述第二栅格列表中;直到下一个导航空白栅格点为所述终点时,得到所述始点到所述终点之间且所述机器人可到达的所有导航空白栅格点。
在一种可行的实施方式中,所述利用所述移动代价评估策略,计算所述父节点到各所述第二空白栅格点的第二移动代价和各所述第二空白栅格点到所述终点的第二估算成本包括:从所有第二空白栅格点中选择一个作为下一个导航点;利用所述移动代价评估策略,计算所述父节点到所述导航点的第二移动代价和所述导航点到所述终点的第二估算成本;判断所述第二空白栅格点是否存在更新前的第一栅格列表中;若存在,则比较所述第二移动代价是否小于所述第一移动代价;若小于,则以所述导航点替换所述第一导航空白栅格点作为父节点,并搜索所述导航点周边的且所述机器人可到达的所有第三空白栅格点,并将所述导航点和所有第三空白栅格点更新所述第一栅格列表中;若不小于,则从剩余的第二空白栅格点中选择下一个导航点计算移动代价和估算成本。
在一种可行的实施方式中,在所述基于所述导航空白栅格点构建所述当前位置到所述终点的第一路径之后,还包括:将所述终点对应的导航目标点存储于预先设置的第三容器中;
所述基于所述导航目标点序列,对所述初始路径中位于所述目标区域中的导航空白栅格点进行优化,得到最短路径,包括:将所述初始路径中的导航空白栅格点与所述导航目标点序列中的导航目标点进行匹配,筛选出位于所述目标区域中的导航空白栅格点;判断筛选出的导航空白栅格点是否满足预设条件;若满足,则检测所述第三容器中是否存在导航目标点;若存在,则将所述导航空白栅格点作为所述目标区域的最近导航目标点,并基于所述最近导航目标点调整所述初始路径,得到最短路径;若不存在,则判断所述导航目标点序列中是否存在未构建初始路径的导航目标点;若存在未构建初始路径的导航目标点,则根据未构建初始路径的导航目标点构建初始路径。
本发明的第二方面提供了一种机器人,包括:数据采集模块,用于获取机器人所在的区域的栅格地图、机器人的当前位置和待清扫的目标区域;距离计算模块,用于基于曼哈顿距离算法从所述目标区域中筛选出至少一个导航目标点,生成导航目标点序列;路径构建模块,用于以所述导航目标点序列中各导航目标点作为终点,利用预设的路径规划算法搜索所述栅格地图中满足预设条件的导航空白栅格点构建所述当前位置到所述终点的初始路径;路径优化模块,用于基于所述导航目标点序列,对所述初始路径中位于所述目标区域中的导航空白栅格点进行优化,得到最短路径;清扫模块,用于基于所述最短路径,控制所述机器人移动至所述目标区域进行清扫。
本发明的第三方面提供了一种机器人,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述智能设备执行上述的机器人清扫方法的各个步骤。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述的机器人清扫方法的各个步骤。
本发明提供的技术方案中,通过曼哈顿距离算法从待清扫的目标区域中筛选至少一个导航目标点,然后分别以导航目标点作为始点,利用路径规划算法搜索栅格地图中满足预设条件的导航空白栅格点构建机器人的当前位置到终点的初始路径,在对初始路径中位于目标区域中的导航空白栅格点进行优化,得到最短路径,基于最短路径控制机器人到目标区域进行清扫,实现了动态选择最近导航点以构建最短路径,从而可以更有效更智能更快速的控制机器人到达目标区域,以提高了清扫效率。
附图说明
图1为本发明实施例中机器人清扫方法的第一种实施例示意图;
图2为本发明实施例中机器人清扫方法的第二种实施例示意图;
图3为无障碍物的场景中机器人选择导航点展示图;
图4为有障碍物的场景中机器人选择导航点展示图;
图5为曼哈顿距离计算原理图;
图6为本发明实施例中机器人的结构示意图;
图7为本发明实施例中机器人清扫方法的第三种实施例示意图;
图8为容器A操作过程图;
图9为容器B操作过程图;
图10为容器B到容器C操作过程图;
图11为有障碍物的场景中栅格地图案例仿真结果图;
图12为无障碍物的场景中栅格地图案例仿真结果图;
图13为区域1最近导航点动态选择示意图;
图14为区域2最近导航点动态选择示意图;
图15为区域3最近导航点动态选择示意图;
图16为区域4最近导航点动态选择示意图;
图17为区域5最近导航点动态选择示意图;
图18为未清扫区域最近导航点动态选择示意图;
图19为本发明实施例中机器人的一个结构示意图;
图20为本发明实施例中机器人的另一个结构示意图;
图21为本发明实施例中机器人的一个实施例示意图。
具体实施方式
本发明实施例提供了一种机器人清扫方法、机器人及存储介质,用于解决无法搜索机器人相对于目标区域的最近导航点,以构建移动路径的问题。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
可以理解的是,本发明可以应用在移动机器人上,作为示例而非限定的是,移动机器人可为扫地机器人,本申请以到底机器人为例进行说明。其中,该扫地机器人可以是扫拖一体式机器人、擦地机器人或洗地机器人等的任意一种。本发明应用的扫地机器人的导航类型不限制,可以是纯惯导扫地机或其他采用导航设备的扫地机。对路径规划要求不高的清扫方法、路径规划方法、设备均可应用本发明。作为示例而非限定的是,本发明以扫地机器人为例进行说明。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,图1是本发明实施例提供的一种机器人清扫方法的第一种实现流程示意图,该方法包括以下步骤:
S101、获取机器人所在的区域的栅格地图、机器人的当前位置和待清扫的目标区域。
该步骤中,机器人获取到的栅格地图可以是开发人员通过其他绘图软件绘制得到的栅格地图,然后通过程序下载的方式烧录进机器人的存储单元中,机器人通过处理器直接从存储单元中读取即可获得,对于通过这种方式录入的栅格地图信息需要不定时烧录更新。
此外,该栅格地图还可以是通过机器人自身的环境感知模块来获取,例如惯导或者激光雷达传感器、定位模块等,在机器人在开始工作时,通过惯导或者激光雷达传感器获取机器人所能覆盖的区域范围内的地图信息和机器坐标,并通过将整个区域的地图信息划分成多个区域块,并对每个区域块进行标号,同时还识别各区域块中已清扫的区域,并进行已清扫标记,例如通过机器人上的智能分区模块将栅格地图划分成为4m*4m的区域,得到带标记的栅格地图。
本实施例中,对于机器人的当前位置具体是通过定位模块来获取;对于待清扫的目标区域,则通过用户的输入选择,具体是通过远程APP的方式选择,也可以是在机器人上的显示界面来选择,显示界面中显示有栅格地图。当然,也可以是机器人通过定位模块定位到自身的位置后,同时识别栅格地图中的标记确定未清扫区域,并通过纵横坐标计算出其所在的位置到各未清扫区域的距离,选择距离做小的一个作为目标区域。
S102、利用预设的距离算法寻找目标区域中最近的导航目标点,并根据当前位置和导航目标点规划最短路径。
本实施例中,所述距离算法为曼哈顿算法,在寻找导航目标点包括至少一个,具体的:
基于曼哈顿距离算法从目标区域中筛选出至少一个导航目标点,生成导航目标点序列;
以所述导航目标点序列中各导航目标点作为终点,利用预设的路径规划算法搜索所述栅格地图中满足预设条件的导航空白栅格点构建所述当前位置到所述终点的初始路径;
基于所述导航目标点序列,对所述初始路径中位于所述目标区域中的导航空白栅格点进行优化,得到最短路径。
在确定目标区域后,利用曼哈顿距离算法计算机器人的当前位置到目标区域中的每个导航目标点的曼哈顿距离,这里的目标区域实际上是由多个栅格点构成的栅格地图区域,通过比较每个导航目标点的曼哈顿距离来选择较小的若干个作为相对于当前位置的最近导航目标点,然后对选择的最近导航目标点按照由大到小的顺序排序,得到导航目标点序列。
在实际应用中,该导航目标点序列可以理解为是一个容器,该容器中按照由大到小的顺序存储选择的最近导航目标点。同时,除了曼哈顿距离算法之外,还可以是欧氏距离算法。
具体的,该预设条件可以理解为是机器人的占地面积,而在搜索导航空包栅格点时,是以机器人的占地面积为基准,搜索目标区域中每个栅格点和该栅格点的相邻栅格点的总面积不小于占地面积的栅格点作为构建初始路径的导航点,然后基于该导航点、导航目标点和当前位置构建初始路径。
在本实施例中,在基于占地面积筛选出导航点后,利用路径搜索算法以当前位置为始点,搜索始点周围的满足预设条件的相邻栅格点,从该搜索到的相邻栅格点中选择一个最优的最为下一个导航点,基于该下一个导航点再按照始点相同的搜索方式找再下一个导航点,循环执行该过程,直到下一个导航点是导航目标点为止,得到初始路径。
进一步的,在对导航目标点序列中的一个导航目标点构建完初始路径后,继续从导航目标点序列中剩下的导航目标点中选择一个继续构建初始路径,并将该初始路径与上一个导航目标点的初始路径进行比较,选择较短的一个作为下一个导航目标点初始路径构建的标准,直到导航目标点序列中所有导航目标点构建初始路径完成为止,跳转至下一个步骤。
该步骤中,通过提取初始路径中在目标区域中的导航空白栅格点(即是导航点),判断初始路径中是否存在多个在目标区域中的导航点,若存在,则从多个导航点中选择一个距离当前位置最近的导航点作为终点,以优化初始路径,得到最短路径。
在本实施例中,还可以是通过将初始路径与导航目标点序列取交集,若交集中存在多个导航目标点时,从多个导航目标点中选择曼哈顿距离最小一个作为终点,以优化初始路径,得到最短路径。
S103、基于最短路径,控制机器人移动至目标区域进行清扫。
在该步骤中,在基于最短路径控制机器人移动至目标区域时,实际上是控制机器人移动到导航目标点,然后机器人基于该导航目标点进入目标区域对目标区域进行清扫。
在本实施例中,在机器人按照最短路径移动过程中,还包括:机器人每移动到一个导航点后,判断其所在的导航点到下一个导航点之间是否存在障碍物,若存在,则执行上述提供的选择避开障碍物的最近导航点,并对最短路径进行更新。当然在遇到障碍物时还可以通过A*算法的方式来搜索最近导航点。
本发明实施例中,通过曼哈顿距离算法选择待清扫的目标区域中距离机器人的当前位置最近的导航目标点,基于该导航目标点利用预设的路径规划算法搜索满足机器人的占地面积的导航空白栅格点最为构建路径的导航点,从而实现最短路径的构建,基于最短路径控制机器人到目标区域进行清扫,实现了动态选择最近导航点以构建最短路径,从而可以更有效更智能更快速的控制机器人到达目标区域,以提高了清扫效率。
请参阅图2,本发明提供的机器人清扫方法的第二种实现流程,同样该流程以扫地机器人作为执行主体进行说明,该机器人清扫方法包括以下步骤:
S201、通过惯导或者激光雷达传感器获取地图信息和机器人的当前位置,并通过智能分区模块将地图信息进行栅格化,划分成为多个区域。
具体的,扫地机器人获取信息过程包括:通过激光雷达传感器或者摄像头基于扫地机器人的信号覆盖范围采集该范围内的信息;基于采集到的信息兵役米制坐标系为标准,绘制该范围的地图信息;对地图信息进行栅格化,得到栅格地图,并对栅格地图按照一定的长宽比例进行划分,分出多个区域,以及对各区域中进行是否已清扫的识别,基于识别的结果利用已清扫和未清扫的标记进行标记,以便于后续路径规划时使用;对于机器人的当前位置则基于机器人上的定位模块来实现;对于未清扫区域的确定则基于机器人中的标记模块从栅格地图中识别出来,当然优选是用户自己选择输入至机器人,机器人通过输入的信息确定选择的未清扫区域在栅格地图中的具体位置。
在实际应用中,在获取栅格地图过程中,不仅是获取场景信息,还包括获取障碍物的信息和位置,对于无障碍物的场景来说,机器人在获取到场景信息后,直接对场景信息绘制栅格地图,然后基于设定的坐标系机制和区域划分规则将栅格地图划分为多个相等的区域,并识别各区域的已清扫区域和未清扫区域,并对已清扫区域通过小圆圈或者清扫轨迹或者填黑来标记,而对于未清扫区域则保持空白即可,具体如图3所示,虚线表示机器进行弓字清扫的轨迹,当前区域1已经清扫完成,其中圆圈1表示扫地机器人当前所在位置1,黑色的边框表示分区的边界,分区边界机器可以自由通行,带剪头的线条表示机器到达导航点的路径。
对于有障碍物的场景,分别采集场景信息和障碍物的位置和轮廓,具体如图4所示,未清扫区域3中,黑色部分表示障碍物,机器不可通行,斜线填充区域表示已清扫区域,机器可以通行,空白部分均表示未清扫区域,虚线表示机器进行弓字清扫的轨迹,当前区域1已经清扫完成,其中圆圈1表示扫地机器人当前所在位置,黑色边框表示分区的边界,分区边界机器可以自由通行,带剪头的线条表示机器到达导航点的路径。
S202、搜索目标区域中满足预设条件的所有目标空白栅格点;
该步骤中,该预设条件为机器人的占地面积,以该占地面积为标准,搜索目标区域中的每个栅格点,并以栅格点为中心采集四周的空白栅格点,计算总面积,总面积满足占地面积的栅格点记为目标空白栅格点,直到遍历完目标区域的所有栅格点后,输出一个目标空白栅格点集合。
S203、利用曼哈顿距离算法计算当前位置到各目标空白栅格点之间的曼哈顿距离,并基于曼哈顿距离确定至少一个目标空白栅格点,生成导航目标点序列。
具体的,该步骤在计算当前位置与各目标空白栅格点之间的曼哈顿距离时,是采用逐个计算比较的方式计算,也即是遍历所有目标空白栅格点逐一比对替换的方式筛选出至少一个目标空白栅格点作为导航目标点,得到导航目标点序列,该序列可以采用容器的方式来实现,该导航目标点筛选的具体实现为:
设置曼哈顿距离最小值和用于存储导航目标点的第一容器,记为容器A,该第一容器实际上是存储导航目标点的栅格坐标;
具体的,该曼哈顿距离最小值实际上选择的是一个无限大的数值,每次比对后都是选择最大的值压入第一容器中,符合由大到小的存储规律。
从所有目标空白栅格点中选择一个作为第一导航目标点,并利用曼哈顿距离算法计算所述当前位置到所述第一导航目标点的第一曼哈顿距离;
该曼哈顿距离算法为abs(|x1-x0|+|y1-y0|),而计算第一导航目标到始点的第一曼哈顿距离:假设机器当前位置坐标为(x0,y0),第一个满足要求的空白栅格坐标为(x1,y1),则当前的曼哈顿距离为abs(|x1-x0|+|y1-y0|),如图5所示。
判断所述第一曼哈顿距离是否大于所述曼哈顿距离最小值;
若不大于所述曼哈顿距离最小值,则将所述第一导航目标点存储于所述第一容器中;
选择下一个导航目标点计算曼哈顿距离,直到遍历完所有目标空白栅格点,生成导航目标点序列。
在实际应用中,在筛选出至少一个导航目标点后,还包括对至少一个导航目标点按照曼哈顿距离从大到小进行排序,然后依次压入到第一容器中,从而得到导航目标点序列。
进一步的,对于第一容器来说其存储的数量有限或者是存储的数量达到预设的数量后,若还存在曼哈顿距离比第一容器中已存储的导航目标点的曼哈顿距离更小的,则将更小的导航目标点替换掉第一容器中对应的导航目标点,具体的,从第一容器中选择曼哈顿距离相近的导航目标点进行替换。
在本实施例中,选择下一个导航目标点计算曼哈顿距离过程,具体包括:
将所述曼哈顿距离最小值更新为第一曼哈顿距离;
从所有目标空白栅格点中选择第二导航目标点,利用曼哈顿距离算法计算所述当前位置到所述第二导航目标点的第二曼哈顿距离;
判断所述第二曼哈顿距离是否大于所述第一曼哈顿距离;
若不大于所述第一曼哈顿距离,则将所述第一导航目标点存储于所述第一容器中,并将所述曼哈顿距离最小值更新为第二曼哈顿距离,直到遍历完所有目标空白栅格点,生成导航目标点序列。
S204、以导航目标点序列中各导航目标点作为终点,利用预设的路径规划算法搜索栅格地图中满足预设条件的导航空白栅格点构建当前位置到终点的初始路径。
该步骤,在选择终点时,是从导航目标点序列中按照从小到大的顺序,依次选择,具体的:
按照曼哈顿距离从小到大的顺序,选择所述导航目标点序列中导航目标点作为终点,以所述机器人的当前位置为始点;
在实际应用中,是通过从第一容器中选择一个曼哈顿距离最小的导航目标点作为终点,以机器人的当前位置作为始点,然后采用A*算法所有始点之后的下一个导航点。
利用预设的路径规划算法搜索所述始点到所述终点之间的空白栅格点中满足预设条件的栅格点作为导航空白栅格点;
该步骤实际上是选择始点与终点之间的导航点,具体是从始点开始,基于该始点先以机器人的占地面积为约束条件搜索始点周边的空白栅格点,然后计算各空白栅格点相对于始点和终点的移动代价和估算成本,选择一个最小的空白栅格点作为下一个导航点,再以下一个导航点为始点计算再下一个导航点,直到达到终点,得到路径的所有导航点。
基于所述导航空白栅格点构建所述当前位置到所述终点的第一路径;
直到遍历完所述导航目标点序列中的所有导航目标点后,从所有第一路径中选择路径最短的一个作为初始路径,并将所述初始路径存储于预设的第二容器中,该第二容器记为容器B。
在本实施例中,所述路径规划算法为移动代价评估策略,所述利用预设的路径规划算法搜索所述始点到所述终点之间的空白栅格点中满足预设条件的栅格点作为导航空白栅格点,包括:
基于预设条件搜索位于所述始点到所述终点之间且所述机器人可到达的所有空白栅格点,并利用所述移动代价评估策略,从所有所述空白栅格点中选择移动代价最小的栅格点作为导航空白栅格点。
具体的,基于预设条件搜索位于所述始点到所述终点之间且所述机器人可到达的所有空白栅格点;
利用所述移动代价评估策略,对于所有空白栅格点分别到所述始点和所述终点的代价得分;
基于所述代价得分从所有所述空白栅格点中选择代价得分最小的栅格点作为导航空白栅格点。
在实际应用中,所述基于预设条件搜索位于所述始点到所述终点之间且所述机器人可到达的所有空白栅格点,并利用所述移动代价评估策略,从所有所述空白栅格点中选择移动代价最小的栅格点作为导航空白栅格点,包括:
构建第一栅格列表,记为open list;
基于预设条件搜索所述始点周边的且所述机器人可到达的所有第一空白栅格点,并将所述始点和所有第一空白栅格点加入所述第一栅格列表中;
以所述始点为父节点,利用所述移动代价评估策略,计算所述父节点到各所述第一空白栅格点的第一移动代价和各所述第一空白栅格点到所述终点的第一估算成本;
具体的,计算第一空白栅格点到终点的第一估算成本的过程包括:基于第一空白栅格点和终点确定机器人的移动方向矢量,基于移动方向矢量,从栅格地图中确定第一空白栅格点和终点之间的区域,识别该区域中是否存在障碍物,若存在,则计算第一空白栅格点是否需要避障,若需要,则计算避障的路径,基于避障的路径确定第一空白栅格点到终点的代价,得到第一估算成本,直到计算完所有第一空白栅格点后,选择出一个得分最小的第一栅格Ian作为第一导航空白栅格点,即是始点之后的导航点。
基于所述第一移动代价和所述第一估算成本,计算各所述第一空白栅格点的第一最终得分;
基于所述第一最终得分从所有第一空白栅格点选择得分最小的一个作为第一导航空白栅格点;
构建第二栅格列表,将所述始点和所述第一导航空白栅格点加入所述第二栅格列表中,该第二栅格列表记为close list;
基于预设条件搜索所述第一导航空白栅格点周边的且所述机器人可到达的所有第二空白栅格点,并将所述第一导航空白栅格点和所有第二空白栅格点更新所述第一栅格列表中;
以所述第一导航空白栅格点为父节点,利用所述移动代价评估策略,计算所述父节点到各所述第二空白栅格点的第二移动代价和各所述第二空白栅格点到所述终点的第二估算成本;
基于所述第二移动代价和所述第二估算成本,计算各所述第二空白栅格点的第二最终得分;
基于所述第二最终得分从所有第二空白栅格点选择得分最小的一个作为第二导航空白栅格点,并加入至所述第二栅格列表中;
直到下一个导航空白栅格点为所述终点时,得到所述始点到所述终点之间且所述机器人可到达的所有导航空白栅格点。
在实际应用中,对于上述的实现具体是以逐个栅格点进行搜索实现,即是从所有第二空白栅格点中选择一个作为下一个导航点;
利用所述移动代价评估策略,计算所述父节点到所述导航点的第二移动代价和所述导航点到所述终点的第二估算成本;
判断所述第二空白栅格点是否存在更新前的第一栅格列表中;
若存在,则比较所述第二移动代价是否小于所述第一移动代价;
若小于,则以所述导航点替换所述第一导航空白栅格点作为父节点,并搜索所述导航点周边的且所述机器人可到达的所有第三空白栅格点,并将所述导航点和所有第三空白栅格点更新所述第一栅格列表中;
若不小于,则从剩余的第二空白栅格点中选择下一个导航点计算移动代价和估算成本。直到下一个导航点选择为终点时,结束。
S205、基于导航目标点序列,对初始路径中位于目标区域中的导航空白栅格点进行优化,得到最短路径。
本实施例中,在每次构建出一个初始路径后,都记录该初始路径对应的导航目标点,具体的,先定义一个第三容器,记为容器C,将所述终点对应的导航目标点存储于预先设置的第三容器中;在记录完成后,跳转至步骤S204从导航目标点序列中选择下一个导航目标点作为终点继续构建初始路径,并在构建完初始路径后,检测第三容器中是否为空,若为空,则判断导航目标点中是否还存在未规划初始路径的导航目标点,若是,则继续选择导航目标点构建初始路径,直到选择初始路径最小的一个导航目标点对应的路径作为初始路径。
具体的,将所述初始路径中的导航空白栅格点与所述导航目标点序列中的导航目标点进行匹配,筛选出位于所述目标区域中的导航空白栅格点;
判断筛选出的导航空白栅格点是否满足预设条件;
若满足,则检测所述第三容器中是否存在导航目标点;
若存在,则将所述导航空白栅格点作为所述目标区域的最近导航目标点,并基于所述最近导航目标点调整所述初始路径,得到最短路径;
若不存在,则判断所述导航目标点序列中是否存在未构建初始路径的导航目标点;
若存在未构建初始路径的导航目标点,则根据未构建初始路径的导航目标点构建初始路径。
S206、基于最短路径,控制机器人移动至目标区域进行清扫。
该步骤中,在基于最短路径控制机器人移动到目标区域过程中,具体包括识别每次移动的导航点后是否有障碍物,若是,则利用上述的搜索方式找出最近导航点,以实现动态导航,避免机器人被困,提高移动效率,保证后续的清扫效率。
本发明实施例中,通过已知的机器当前位置采用曼哈顿距离对未清扫框中搜索空白且满足一定阈值的栅格点进行计算,并以第一次通过曼哈顿距离计算得到的距离作为最短距离放入容器中,后面的栅格点的曼哈顿距离若小于最短距离,则将其作为最短距离并依次压入容器中,最终得到一个与栅格坐标相对应的由大到小依次排列曼哈顿距离容器,提高了搜索未清扫框内的未清扫区域的准确性;同时,通过改进后的方法,去掉了大部分冗余的空白栅格,为后面的算法极大的减少了计算时间。
同时,还设置了第三容器,对得到的一个与栅格坐标相对应的由大到小依次排列曼哈顿距离容器中,依次将曼哈顿距离从小到大所对应的栅格坐标作为A*算法的导航目标点,并将A*算法搜索得到的路径上的第一个在未清扫框内,且满足一定阈值的空白栅格点放入空白容器中,若空白容器有值则直接退出,将空白容器中的坐标点作为这个未清扫区域最近的导航点。改进后的方法,在复杂的环境中,能进行动态的选择最近导航点。
下面以具体的场景对上述提供的机器人清扫方法进行详细说明,该实施例的流程是基于图6中机器人的结构提出的,该机器人包括:惯导或者激光雷达传感器601、红外传感器602、碰撞传感模块603、智能分区模块604、定位模块605、清扫标记模块606、未清扫标记模块607、导航模块608和运动模块609;
机器在开始工作时,通过惯导或者激光雷达传感器601获取地图信息和机器坐标,并通过智能分区模块604将栅格地图划分成为4m*4m的区域;
通过机器人的清扫标记模块606和未清扫标记模块607的标记确定区域1已经被清扫,并采用定位模块605定位获得机器位于已清扫区域1中的位置1;
若通过未清扫标记判断区域2、3其中的一块区域未清扫,并同时采用定位模块605分别获得未清扫区域2、3其中一块未清扫区域的拓展边界;
通过上述的曼哈顿距离算法,可分别选出对应未清扫区域的最近导航点位置2、3;
通过导航模块608、红外传感器602及碰撞传感模块603可以避开障碍物,快速确定从起点到未清扫区域最近导航点的路线,即是根据最近导航点即障碍物位置规划最短路径;
最后通过运动模块609控制机器从起点快速到达未清扫区域。使得机器人可以在复杂环境下选择最近导航点到达目标区域。
请参考图7所示,为本实施例提供的一种机器人清扫方法,包括以下步骤:
S701、输入栅格地图信息、机器当前位置和目的区域的米制坐标系下的边界坐标。
S702、根据最新的地图与机器位置信息更新相关数据,并标记障碍物。
该步骤中,具体是将米制坐标系下的未清扫框的边界转换未栅格坐标系下的边界。膨胀更新后的栅格地图中的障碍物,膨胀障碍物周围一定范围内的栅格(一般情况为2个栅格)。
将机器人周围一定范围内的膨胀栅格点设置为空白点(一般情况为半个机身所占据的栅格),防止地图因不准确的膨胀将机器所在的位置包围,从而导致无法搜索到有效路径。
S703、遍历目的区域,将满足要求的空白栅格依次计算与机器人位置之间的曼哈顿距离,并将其由大到小依次压入容器A中。
具体的,遍历容器A中的导航目标点计算曼哈顿距离时,具体包括:
6.1、首先定义一个曼哈顿距离最小值,这个最小值取一个无限大的数值。
6.2、接着定义一个A,用于存放曼哈顿距离所对应的栅格坐标。
6.3、在遍历目的区域时,将第一个满足要求的空白栅格坐标存入容器A中,并将其与机器当前位置的栅格坐标进行曼哈顿距离计算。
6.4、曼哈顿距离计算:假设机器当前位置坐标为(x0,y0),第一个满足要求的空白栅格坐标为(x1,y1),则当前的曼哈顿距离为abs(|x1-x0|+|y1-y0|),如图5所示。
6.5、将第一个满足要求的空白栅格计算得来的曼哈顿距离与定义的曼哈顿最小值进行大小比较,将较小的曼哈顿距离当作曼哈顿距离最小值,并同时将其所对应的栅格坐标存放在曼哈顿容器A中。
6.6、重复步骤6.3到步骤6.5的过程,最终得到曼哈顿距离由大到小依次排列所对应的栅格坐标存放的容器A,该容器A中存储的导航目标点如图8所示。
S704、判断容器A是否为空。
若为空,则表示目的区域没有满足要求的空白栅格,程序终止,若不为空,则进行下一步。
S705、对容器A中,从尾部进行迭代,将曼哈顿距离由小到大所对应的栅格坐标作为A*算法的终点,并构建最短路径。
具体的,构建容器A中的导航目标点的最短路径时,具体包括:
8.1、首先将机器人当前位置作为A*算法的起点S,从容器A取出的最小的曼哈顿距离所对应的栅格坐标作为A*算法的终点Q。
8.2、将起点S加入到由栅格组成的列表中,命名为open list,把起点S周围可达的栅格也加入open list中,将起点S设置为父节点。
8.3、将起点S从open list中移除,加入到另一个由栅格组成的列表中,命名为close list中,close list中的栅格不需要在进行其他操作。
8.4、对open list中的栅格,通过F=G+H公式进行判断;F表示最终得分,G表示由起点S移动到指定栅格的移动代价,横纵坐标的移动代价设置为1,对角线的移动代价设置为1.4,H表示从指定栅格到终点Q的估算成本,H的计算使用的曼哈顿距离,具体操作可以参考步骤6.5;选择最小的F值所对应的栅格坐标加入close list中。
8.5、将F值所对应的栅格坐标作为父节点,将其周围可达的栅格点加入open list中,若某个相邻的栅格P已经在open list中,则检查这条路径是否更优,通过比较它们的G值,若栅格P的G值较大,则不做处理,若栅格P的G值较小,则将栅格P设置为父节点,将栅格P周围的可达栅格加入open list中。
8.6、重复步骤8.4到步骤8.5的过程,最终得到在close list中由父节点组成的最短路径,具体如图9所示。
S706、将A*算法搜索到的路径压入容器B中,取出第一个满足要求且在目的区域的空白栅格坐标,将其坐标点输出。
具体的,将采用A*算法计算得到的路径放入容器B中,S表示A*算法搜寻的起点,Q表示A*算法搜寻的终点,从起点到终点依次判断满足要求的空白点,第一个满足要求且在目的区域的空白点1放入容器C中,具体如图10所示。
S707、设置一个空白容器C,将取出的坐标加入容器C中。
S708、判断容器C是否为空;
S709、若容器C为空,则判断容器A是否全部搜索完成。
若容器A还未全部搜索完成,说明A*算法没有搜索到路径,则调回至步骤S705;当容器A全部搜索完成且容器C仍然为空,则说明容器A中没有满足要求的可达点,程序终止;
S710、当容器C不为空,则直接输出容器C中的坐标点。
这个坐标则是到目的区域的最近的导航目标点。得到栅格坐标系下的导航目标点,转为米制坐标系下的导航目标点,输出结果。
下面以栅格地图为图11和12为例进行说明,图11和12为栅格地图,数字3表示清扫完成,数字1表示障碍物,数字8表示膨胀障碍物的范围,数字2表示未知区域,数字0表示空白区域,数字9表示从起点S到终点Q的路径轨迹,黑色方框表示目的区域。
从图11中可以看出,在存在众多障碍物的情况下,通过本发明提出的方法可以找到目的区域最近的导航目标点;从图12可以看出,若起点S到目的区域之间没有障碍物,则直接选择最近的栅格点Q作为导航目标点。
如图13-18所示,通过上述处理对机器人所在的区域的栅格地图中的各未清扫区域进行路径规划后,其路径和栅格地图一起在机器人的显示界面上显示。
图13-17中,依次为区域①、②、③、④、⑤可清扫区域的最近导航点的选择图,其中黑色部分表示障碍物,白色部分表示未清扫区域,黑圈点表示起点,星点表示通过上述方法最终选择的导航点,标号为X的线条表示从起点到导航点的最短路径,通过小圆圈围成的区域表示目标区域,其中图13-17中的(b)表示在图13-17中的(a)的基础上将其选择的最近导航点放置障碍物后的结果图,可以看出当选择的最近导航点被挡住后,本发明的方法可以动态选择次近的导航点。
为了进一步验证本发明的可行性及有效性,随机选择目标区域进行验证,如图18所示,黑色表示障碍物,白色表示空白区域,通过小圆圈围成的区域为目的区域,黑圈点为起点,星点表示通过上述方法最终选择的导航点,图18中(a)表示从起点到目的区域选择的最近导航点;添加未清扫区域与清扫区域混合,如图18中(b)所示,将目的区域采用小圆圈进行随机填充,其中填充的小圆圈表示已清扫区域,可以看出,本发明的方法可以准确选择最近导航点。
本实施例中,通过曼哈顿距离算法从待清扫的目标区域中筛选至少一个导航目标点,然后分别以导航目标点作为始点,利用路径规划算法搜索栅格地图中满足预设条件的导航空白栅格点构建机器人的当前位置到终点的初始路径,在对初始路径中位于目标区域中的导航空白栅格点进行优化,得到最短路径,基于最短路径控制机器人到目标区域进行清扫,实现了动态选择最近导航点以构建最短路径,从而可以更有效更智能更快速的控制机器人到达目标区域,以提高了清扫效率。
上面对本发明实施例中机器人清扫方法进行了描述,下面对本发明实施例中机器人进行描述,请参阅图19,本发明实施例中机器人一个实施例包括:
数据采集模块901,用于获取机器人所在的区域的栅格地图、机器人的当前位置和待清扫的目标区域;
路径构建模块902,用于利用预设的距离算法寻找所述目标区域中最近的导航目标点,并根据所述当前位置和所述导航目标点规划最短路径,其中所述最短路径可经行已清扫区域且使得所述机器人不碰撞障碍物;
清扫模块903,用于基于所述最短路径,控制所述机器人移动至所述目标区域进行清扫。
上述机器人中各个模块的功能实现与上述机器人清扫方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
本发明实施例中,通过曼哈顿距离算法选择待清扫的目标区域中距离机器人的当前位置最近的导航目标点,基于该导航目标点利用预设的路径规划算法搜索满足机器人的占地面积的导航空白栅格点最为构建路径的导航点,从而实现最短路径的构建,基于最短路径控制机器人到目标区域进行清扫,实现了动态选择最近导航点以构建最短路径,从而可以更有效更智能更快速的控制机器人到达目标区域,以提高了清扫效率。
请参阅图20,本发明实施例中机器人的另一个实施例包括:
数据采集模块901,用于获取机器人所在的区域的栅格地图、机器人的当前位置和待清扫的目标区域;
路径构建模块902,用于利用预设的距离算法寻找所述目标区域中最近的导航目标点,并根据所述当前位置和所述导航目标点规划最短路径,其中所述最短路径可经行已清扫区域且使得所述机器人不碰撞障碍物;
清扫模块903,用于基于所述最短路径,控制所述机器人移动至所述目标区域进行清扫。
可选的,所述路距离计算模块902包括:
距离计算单元9021,用于基于曼哈顿距离算法从所述目标区域中筛选出至少一个导航目标点,生成导航目标点序列;
路径搜索单元9022,用于以所述导航目标点序列中各导航目标点作为终点,利用预设的路径规划算法搜索所述栅格地图中满足预设条件的导航空白栅格点构建所述当前位置到所述终点的初始路径;
路径构建单元9023,用于基于所述导航目标点序列,对所述初始路径中位于所述目标区域中的导航空白栅格点进行优化,得到最短路径;
可选的,所述距离计算单元9021具体用于:
搜索所述目标区域中满足预设条件的所有目标空白栅格点;
用于利用曼哈顿距离算法计算所述当前位置到各所述目标空白栅格点之间的曼哈顿距离,并基于所述曼哈顿距离确定至少一个目标空白栅格点,生成导航目标点序列。
可选的,所述距离计算单元9021具体用于:
设置曼哈顿距离最小值和用于存储导航目标点的第一容器;
从所有目标空白栅格点中选择一个作为第一导航目标点,并利用曼哈顿距离算法计算所述当前位置到所述第一导航目标点的第一曼哈顿距离;
判断所述第一曼哈顿距离是否大于所述曼哈顿距离最小值;
若不大于所述曼哈顿距离最小值,则将所述第一导航目标点存储于所述第一容器中;
选择下一个导航目标点计算曼哈顿距离,直到遍历完所有目标空白栅格点,生成导航目标点序列。
可选的,所述距离计算单元9021具体还用于:
将所述曼哈顿距离最小值更新为第一曼哈顿距离;
从所有目标空白栅格点中选择第二导航目标点,利用曼哈顿距离算法计算所述当前位置到所述第二导航目标点的第二曼哈顿距离;
判断所述第二曼哈顿距离是否大于所述第一曼哈顿距离;
若不大于所述第一曼哈顿距离,则将所述第一导航目标点存储于所述第一容器中,并将所述曼哈顿距离最小值更新为第二曼哈顿距离,直到遍历完所有目标空白栅格点,生成导航目标点序列。
可选的,所述路径搜索单元9022具体用于:
按照曼哈顿距离从小到大的顺序,选择所述导航目标点序列中导航目标点作为终点,以所述机器人的当前位置为始点;
利用预设的路径规划算法搜索所述始点到所述终点之间的空白栅格点中满足预设条件的栅格点作为导航空白栅格点;
基于所述导航空白栅格点构建所述当前位置到所述终点的第一路径;直到遍历完所述导航目标点序列中的所有导航目标点后,从所有第一路径中选择路径最短的一个作为初始路径,并将所述初始路径存储于预设的第二容器中。
可选的,所述路径规划算法为移动代价评估策略,所述路径搜索单元9022具体用于:
基于预设条件搜索位于所述始点到所述终点之间且所述机器人可到达的所有空白栅格点,并利用所述移动代价评估策略,从所有所述空白栅格点中选择移动代价最小的栅格点作为导航空白栅格点。
可选的,所述路径搜索单元9022具体用于:
构建第一栅格列表;
基于预设条件搜索所述始点周边的且所述机器人可到达的所有第一空白栅格点,并将所述始点和所有第一空白栅格点加入所述第一栅格列表中;
以所述始点为父节点,利用所述移动代价评估策略,计算所述父节点到各所述第一空白栅格点的第一移动代价和各所述第一空白栅格点到所述终点的第一估算成本;
基于所述第一移动代价和所述第一估算成本,计算各所述第一空白栅格点的第一最终得分;
基于所述第一最终得分从所有第一空白栅格点选择得分最小的一个作为第一导航空白栅格点;
构建第二栅格列表,将所述始点和所述第一导航空白栅格点加入所述第二栅格列表中;
基于预设条件搜索所述第一导航空白栅格点周边的且所述机器人可到达的所有第二空白栅格点,并将所述第一导航空白栅格点和所有第二空白栅格点更新所述第一栅格列表中;
以所述第一导航空白栅格点为父节点,利用所述移动代价评估策略,计算所述父节点到各所述第二空白栅格点的第二移动代价和各所述第二空白栅格点到所述终点的第二估算成本;
基于所述第二移动代价和所述第二估算成本,计算各所述第二空白栅格点的第二最终得分;
基于所述第二最终得分从所有第二空白栅格点选择得分最小的一个作为第二导航空白栅格点,并加入至所述第二栅格列表中;
直到下一个导航空白栅格点为所述终点时,得到所述始点到所述终点之间且所述机器人可到达的所有导航空白栅格点。
可选的,所述路径搜索单元9022具体还用于:
从所有第二空白栅格点中选择一个作为下一个导航点;
利用所述移动代价评估策略,计算所述父节点到所述导航点的第二移动代价和所述导航点到所述终点的第二估算成本;
判断所述第二空白栅格点是否存在更新前的第一栅格列表中;
若存在,则比较所述第二移动代价是否小于所述第一移动代价;
若小于,则以所述导航点替换所述第一导航空白栅格点作为父节点,并搜索所述导航点周边的且所述机器人可到达的所有第三空白栅格点,并将所述导航点和所有第三空白栅格点更新所述第一栅格列表中;
若不小于,则从剩余的第二空白栅格点中选择下一个导航点计算移动代价和估算成本。
可选的,所述机器人还包括配置模块904,其具体用于:将所述终点对应的导航目标点存储于预先设置的第三容器中;
所述路径构建单元9023包括:
将所述初始路径中的导航空白栅格点与所述导航目标点序列中的导航目标点进行匹配,筛选出位于所述目标区域中的导航空白栅格点;
判断筛选出的导航空白栅格点是否满足预设条件;
在判断为满足时,检测所述第三容器中是否存在导航目标点;
在检测存在时,将所述导航空白栅格点作为所述目标区域的最近导航目标点,并基于所述最近导航目标点调整所述初始路径,得到最短路径;以及在检测不存在时,判断所述导航目标点序列中是否存在未构建初始路径的导航目标点;若存在未构建初始路径的导航目标点,则根据未构建初始路径的导航目标点构建初始路径。
本发明实施例中,通过已知的机器当前位置采用曼哈顿距离对未清扫框中搜索空白且满足一定阈值的栅格点进行计算,并以第一次通过曼哈顿距离计算得到的距离作为最短距离放入容器中,后面的栅格点的曼哈顿距离若小于最短距离,则将其作为最短距离并依次压入容器中,最终得到一个与栅格坐标相对应的由大到小依次排列曼哈顿距离容器,提高了搜索未清扫框内的未清扫区域的准确性;同时,通过改进后的方法,去掉了大部分冗余的空白栅格,为后面的算法极大的减少了计算时间。
上面图19和图20从模块化功能实体的角度对本发明实施例中的机器人进行详细描述,下面从硬件处理的角度对本发明实施例中基于单元分解的机器人进行详细描述。
图21是本发明实施例提供的一种机器人的结构示意图,该机器人1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU)1110(例如,一个或一个以上处理器)和存储器1120,一个或一个以上存储应用程序1133或数据1132的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1120和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对机器人1100中的一系列指令操作。更进一步地,处理器1110可以设置为与存储介质1130通信,在智能设备1100上执行存储介质1130中的一系列指令操作。
机器人1100还可以包括一个或一个以上电源1140,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1160,和/或,一个或一个以上操作系统1131,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图11示出的机器人结构并不构成对智能设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当计算机程序在计算机上运行时,使得计算机执行机器人清扫方法的各个步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干计算机程序用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (13)
1.一种机器人清扫方法,其特征在于,所述机器人清扫方法包括:
获取机器人所在的区域的栅格地图、机器人的当前位置和待清扫的目标区域;
利用预设的距离算法寻找所述目标区域中最近的导航目标点,并根据所述当前位置和所述导航目标点规划最短路径,其中所述最短路径可经行已清扫区域且使得所述机器人不碰撞障碍物;
基于所述最短路径控制所述机器人移动至所述目标区域进行清扫。
2.根据权利要求1所述的机器人清扫方法,其特征在于,所述利用预设的距离算法寻找所述目标区域中最近的导航目标点,并根据所述当前位置和所述导航目标点规划最短路径,包括:
基于曼哈顿距离算法从所述目标区域中筛选出至少一个导航目标点,生成导航目标点序列;
以所述导航目标点序列中各导航目标点作为终点,利用预设的路径规划算法搜索所述栅格地图中满足预设条件的导航空白栅格点构建所述当前位置到所述终点的初始路径;
基于所述导航目标点序列,对所述初始路径中位于所述目标区域中的导航空白栅格点进行优化,得到最短路径。
3.根据权利要求2所述的机器人清扫方法,其特征在于,所述基于曼哈顿距离算法从所述目标区域中筛选出至少一个导航目标点,生成导航目标点序列,包括:
搜索所述目标区域中满足预设条件的所有目标空白栅格点;
利用曼哈顿距离算法计算所述当前位置到各所述目标空白栅格点之间的曼哈顿距离,并基于所述曼哈顿距离确定至少一个目标空白栅格点,生成导航目标点序列。
4.根据权利要求3所述的机器人清扫方法,其特征在于,所述利用曼哈顿距离算法计算所述当前位置到各所述目标空白栅格点之间的曼哈顿距离,并基于所述曼哈顿距离确定至少一个目标空白栅格点,生成导航目标点序列,包括:
设置曼哈顿距离最小值和用于存储导航目标点的第一容器;
从所有目标空白栅格点中选择一个作为第一导航目标点,并利用曼哈顿距离算法计算所述当前位置到所述第一导航目标点的第一曼哈顿距离;
判断所述第一曼哈顿距离是否大于所述曼哈顿距离最小值;
若不大于所述曼哈顿距离最小值,则将所述第一导航目标点存储于所述第一容器中;
选择下一个导航目标点计算曼哈顿距离,直到遍历完所有目标空白栅格点,生成导航目标点序列。
5.根据权利要求4所述的机器人清扫方法,其特征在于,所述选择下一个导航目标点计算曼哈顿距离,直到遍历完所有目标空白栅格点,生成导航目标点序列,包括:
将所述曼哈顿距离最小值更新为第一曼哈顿距离;
从所有目标空白栅格点中选择第二导航目标点,利用曼哈顿距离算法计算所述当前位置到所述第二导航目标点的第二曼哈顿距离;
判断所述第二曼哈顿距离是否大于所述第一曼哈顿距离;
若不大于所述第一曼哈顿距离,则将所述第一导航目标点存储于所述第一容器中,并将所述曼哈顿距离最小值更新为第二曼哈顿距离,直到遍历完所有目标空白栅格点,生成导航目标点序列。
6.根据权利要求2所述的机器人清扫方法,其特征在于,所述以所述导航目标点序列中各导航目标点作为终点,利用预设的路径规划算法搜索所述栅格地图中满足预设条件的导航空白栅格点构建所述当前位置到所述终点的初始路径,包括:
按照曼哈顿距离从小到大的顺序,选择所述导航目标点序列中导航目标点作为终点,以所述机器人的当前位置为始点;
利用预设的路径规划算法搜索所述始点到所述终点之间的空白栅格点中满足预设条件的栅格点作为导航空白栅格点;
基于所述导航空白栅格点构建所述当前位置到所述终点的第一路径;
直到遍历完所述导航目标点序列中的所有导航目标点后,从所有第一路径中选择路径最短的一个作为初始路径,并将所述初始路径存储于预设的第二容器中。
7.根据权利要求6所述的机器人清扫方法,其特征在于,所述路径规划算法为移动代价评估策略,所述利用预设的路径规划算法搜索所述始点到所述终点之间的空白栅格点中满足预设条件的栅格点作为导航空白栅格点,包括:
基于预设条件搜索位于所述始点到所述终点之间且所述机器人可到达的所有空白栅格点,并利用所述移动代价评估策略,从所有所述空白栅格点中选择移动代价最小的栅格点作为导航空白栅格点。
8.根据权利要求7所述的机器人清扫方法,其特征在于,所述基于预设条件搜索位于所述始点到所述终点之间且所述机器人可到达的所有空白栅格点,并利用所述移动代价评估策略,从所有所述空白栅格点中选择移动代价最小的栅格点作为导航空白栅格点,包括:
构建第一栅格列表;
基于预设条件搜索所述始点周边的且所述机器人可到达的所有第一空白栅格点,并将所述始点和所有第一空白栅格点加入所述第一栅格列表中;
以所述始点为父节点,利用所述移动代价评估策略,计算所述父节点到各所述第一空白栅格点的第一移动代价和各所述第一空白栅格点到所述终点的第一估算成本;
基于所述第一移动代价和所述第一估算成本,计算各所述第一空白栅格点的第一最终得分;
基于所述第一最终得分从所有第一空白栅格点选择得分最小的一个作为第一导航空白栅格点;
构建第二栅格列表,将所述始点和所述第一导航空白栅格点加入所述第二栅格列表中;
基于预设条件搜索所述第一导航空白栅格点周边的且所述机器人可到达的所有第二空白栅格点,并将所述第一导航空白栅格点和所有第二空白栅格点更新所述第一栅格列表中;
以所述第一导航空白栅格点为父节点,利用所述移动代价评估策略,计算所述父节点到各所述第二空白栅格点的第二移动代价和各所述第二空白栅格点到所述终点的第二估算成本;
基于所述第二移动代价和所述第二估算成本,计算各所述第二空白栅格点的第二最终得分;
基于所述第二最终得分从所有第二空白栅格点选择得分最小的一个作为第二导航空白栅格点,并加入至所述第二栅格列表中;
直到下一个导航空白栅格点为所述终点时,得到所述始点到所述终点之间且所述机器人可到达的所有导航空白栅格点。
9.根据权利要求8所述的机器人清扫方法,其特征在于,所述利用所述移动代价评估策略,计算所述父节点到各所述第二空白栅格点的第二移动代价和各所述第二空白栅格点到所述终点的第二估算成本包括:
从所有第二空白栅格点中选择一个作为下一个导航点;
利用所述移动代价评估策略,计算所述父节点到所述导航点的第二移动代价和所述导航点到所述终点的第二估算成本;
判断所述第二空白栅格点是否存在更新前的第一栅格列表中;
若存在,则比较所述第二移动代价是否小于所述第一移动代价;
若小于,则以所述导航点替换所述第一导航空白栅格点作为父节点,并搜索所述导航点周边的且所述机器人可到达的所有第三空白栅格点,并将所述导航点和所有第三空白栅格点更新所述第一栅格列表中;
若不小于,则从剩余的第二空白栅格点中选择下一个导航点计算移动代价和估算成本。
10.根据权利要求6所述的机器人清扫方法,其特征在于,在所述基于所述导航空白栅格点构建所述当前位置到所述终点的第一路径之后,还包括:
将所述终点对应的导航目标点存储于预先设置的第三容器中;
所述基于所述导航目标点序列,对所述初始路径中位于所述目标区域中的导航空白栅格点进行优化,得到最短路径,包括:
将所述初始路径中的导航空白栅格点与所述导航目标点序列中的导航目标点进行匹配,筛选出位于所述目标区域中的导航空白栅格点;
判断筛选出的导航空白栅格点是否满足预设条件;
若满足,则检测所述第三容器中是否存在导航目标点;
若存在,则将所述导航空白栅格点作为所述目标区域的最近导航目标点,并基于所述最近导航目标点调整所述初始路径,得到最短路径;
若不存在,则判断所述导航目标点序列中是否存在未构建初始路径的导航目标点;
若存在未构建初始路径的导航目标点,则根据未构建初始路径的导航目标点构建初始路径。
11.一种机器人,其特征在于,所述机器人包括:
数据采集模块,用于获取机器人所在的区域的栅格地图、机器人的当前位置和待清扫的目标区域;
路径构建模块,用于利用预设的距离算法寻找所述目标区域中最近的导航目标点,并根据所述当前位置和所述导航目标点规划最短路径,其中所述最短路径可经行已清扫区域且使得所述机器人不碰撞障碍物;
清扫模块,用于基于所述最短路径,控制所述机器人移动至所述目标区域进行清扫。
12.一种机器人,其特征在于,所述机器人包括:存储器和至少一个处理器,所述存储器中存储有计算机程序;
所述至少一个处理器调用所述存储器中的所述计算机程序,以使得所述机器人执行如权利要求1-10中任意一项所述的机器人清扫方法的各个步骤。
13.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-10中任意一项所述的机器人清扫方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111629049.XA CN114343490B (zh) | 2021-12-28 | 2021-12-28 | 机器人清扫方法、机器人及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111629049.XA CN114343490B (zh) | 2021-12-28 | 2021-12-28 | 机器人清扫方法、机器人及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114343490A true CN114343490A (zh) | 2022-04-15 |
CN114343490B CN114343490B (zh) | 2023-01-17 |
Family
ID=81102419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111629049.XA Active CN114343490B (zh) | 2021-12-28 | 2021-12-28 | 机器人清扫方法、机器人及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114343490B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115211765A (zh) * | 2022-07-19 | 2022-10-21 | 深圳胡杨智能创新有限公司 | 清洁机器人控制方法、清洁机器人及存储介质 |
CN116611602A (zh) * | 2023-07-17 | 2023-08-18 | 国家电投集团江西电力有限公司 | 一种光伏板清扫路径规划方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017041730A1 (zh) * | 2015-09-09 | 2017-03-16 | 北京进化者机器人科技有限公司 | 一种移动机器人避障导航的方法和系统 |
CN108037758A (zh) * | 2017-11-30 | 2018-05-15 | 重庆邮电大学 | 一种基于改进afsa的移动机器人路径规划方法 |
CN109298717A (zh) * | 2018-11-24 | 2019-02-01 | 珠海市微半导体有限公司 | 智能机器人的清扫方法和芯片以及智能清洁机器人 |
CN111857133A (zh) * | 2020-06-24 | 2020-10-30 | 湖南格兰博智能科技有限责任公司 | 一种用于扫地机器人寻找未清扫区域的宽度优先搜索算法 |
CN111930111A (zh) * | 2020-06-23 | 2020-11-13 | 深圳拓邦股份有限公司 | 一种清洁机器人路径规划方法及清洁机器人 |
CN112161629A (zh) * | 2020-09-30 | 2021-01-01 | 深圳市银星智能科技股份有限公司 | 清洁机器人的路径规划方法、装置、清洁机器人及介质 |
-
2021
- 2021-12-28 CN CN202111629049.XA patent/CN114343490B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017041730A1 (zh) * | 2015-09-09 | 2017-03-16 | 北京进化者机器人科技有限公司 | 一种移动机器人避障导航的方法和系统 |
CN108037758A (zh) * | 2017-11-30 | 2018-05-15 | 重庆邮电大学 | 一种基于改进afsa的移动机器人路径规划方法 |
CN109298717A (zh) * | 2018-11-24 | 2019-02-01 | 珠海市微半导体有限公司 | 智能机器人的清扫方法和芯片以及智能清洁机器人 |
CN111930111A (zh) * | 2020-06-23 | 2020-11-13 | 深圳拓邦股份有限公司 | 一种清洁机器人路径规划方法及清洁机器人 |
CN111857133A (zh) * | 2020-06-24 | 2020-10-30 | 湖南格兰博智能科技有限责任公司 | 一种用于扫地机器人寻找未清扫区域的宽度优先搜索算法 |
CN112161629A (zh) * | 2020-09-30 | 2021-01-01 | 深圳市银星智能科技股份有限公司 | 清洁机器人的路径规划方法、装置、清洁机器人及介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115211765A (zh) * | 2022-07-19 | 2022-10-21 | 深圳胡杨智能创新有限公司 | 清洁机器人控制方法、清洁机器人及存储介质 |
CN115211765B (zh) * | 2022-07-19 | 2024-06-07 | 深圳胡杨智能创新有限公司 | 清洁机器人控制方法、清洁机器人及存储介质 |
CN116611602A (zh) * | 2023-07-17 | 2023-08-18 | 国家电投集团江西电力有限公司 | 一种光伏板清扫路径规划方法及系统 |
CN116611602B (zh) * | 2023-07-17 | 2023-11-03 | 国家电投集团江西电力有限公司 | 一种光伏板清扫路径规划方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114343490B (zh) | 2023-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112000754B (zh) | 地图构建方法、装置、存储介质及计算机设备 | |
CN114343490B (zh) | 机器人清扫方法、机器人及存储介质 | |
CN108763287B (zh) | 大规模可通行区域驾驶地图的构建方法及其无人驾驶应用方法 | |
CN109363585B (zh) | 分区遍历方法、清扫方法及其扫地机器人 | |
CN113110457B (zh) | 在室内复杂动态环境中智能机器人的自主覆盖巡检方法 | |
CN107436148B (zh) | 一种基于多地图的机器人导航方法及装置 | |
CN112161629B (zh) | 清洁机器人的路径规划方法、装置、清洁机器人及介质 | |
CN113050632B (zh) | 用于机器人探索未知区域的地图探索方法、芯片及机器人 | |
KR100611328B1 (ko) | 세선화 기반 위상지도의 작성방법 및 그 장치, 이동로봇의탐사를 통한 세선화 기반 위상지도 작성방법 및 그 장치 | |
US20240192702A1 (en) | Navigation method of robot, chip and robot | |
CN111966097A (zh) | 基于栅格地图区域化探索的建图方法、系统以及终端 | |
CN111080786B (zh) | 基于bim的室内地图模型构建方法及装置 | |
CN111694356A (zh) | 一种行驶控制方法、装置、电子设备及存储介质 | |
CN115268443A (zh) | 一种机器人避障路径规划方法 | |
CN113219992A (zh) | 一种路径规划方法及清洁机器人 | |
CN112716401B (zh) | 绕障清扫方法、装置、设备及计算机可读存储介质 | |
CN109341698B (zh) | 一种移动机器人的路径选择方法及装置 | |
CN111427341B (zh) | 一种基于概率地图的机器人最短预期时间目标搜索方法 | |
CN114625162A (zh) | 基于混合算法的无人机最优路径规划方法、系统及介质 | |
KR102230362B1 (ko) | 직사각형 맵 분해 기반의 청소 로봇 장치 및 이를 이용한 커버리지 경로 계획 방법 | |
Xu et al. | An efficient algorithm for environmental coverage with multiple robots | |
CN112084853A (zh) | 一种脚印预测方法、脚印预测装置及人形机器人 | |
JP2022012820A (ja) | 自走式掃除機、サーバ、自走式掃除機の制御方法、および、自走式掃除機の制御プログラム | |
CN113317733B (zh) | 一种路径规划方法及清洁机器人 | |
CN114397893B (zh) | 路径规划方法、机器人清扫方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 518110 1701, building 2, Yinxing Zhijie, No. 1301-72, sightseeing Road, Xinlan community, Guanlan street, Longhua District, Shenzhen, Guangdong Province Applicant after: Shenzhen Yinxing Intelligent Group Co.,Ltd. Address before: 518110 Building A1, Yinxing Hi-tech Industrial Park, Guanlan Street Sightseeing Road, Longhua District, Shenzhen City, Guangdong Province Applicant before: Shenzhen Silver Star Intelligent Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |