具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,以下说明和附图对于本发明是示例性的,并且不应被理解为限制本发明。以下说明描述了众多具体细节以方便对本发明理解。然而,在某些实例中,熟知的或常规的细节并未说明,以满足说明书简洁的要求。
本发明Android设备测试方法及测试装置可以通过java语言进行编写,同理也可以使用C#,VB,C++/C等其他编程语言进行实现。
如图1所示,根据本发明的一个实施例,一种机器人工作区域的排序方法,包括如下步骤:
S10根据获取到的机器人工作区域地图,如图9所示,图中实线和灰色区域表示障碍物,由实线包围的白色区域表示空闲区域,所述工作区域地图是指:利用激光雷达建立的二维栅格地图,将所述工作区域分割成若干块工作子区域,如图10所示,图中将工作区域划分成标号为1~7的7块工作子区域,其划分方法可参照申请号为:201510629819.9的一种基于清洁机器人的区域分割方法;
S20根据若干块工作子区域之间的相邻关系,计算出相邻工作子区域之间的距离;
S30根据所述机器人当前所处的工作子区域、若干块工作子区域之间的相邻关系、相邻工作子区域之间的距离,排列所述机器人工作子区域的先后顺序。
如图2、图3所示,根据本发明的另一个实施例,一种机器人工作区域的排序方法,包括如下步骤:
S10根据获取到的机器人工作区域地图,如图9所示,图中实线和灰色区域表示障碍物,由实线包围的白色区域表示空闲区域,所述工作区域地图是指:利用激光雷达建立的二维栅格地图,将所述工作区域分割成若干块工作子区域,如图10所示,图中将工作区域划分成标号为1~7的7块工作子区域,其划分方法可参照申请号为:201510629819.9的一种基于清洁机器人的区域分割方法;
S21根据分割后的若干块工作子区域,分别计算出每块工作子区域的质心,如图11所示,图中以小圆圈表示工作子区域的质心,优选的,其计算步骤如下;
S211将每块工作子区域内所有栅格点的横坐标和加权相加后,除以栅格点数目,得到所述工作子区域内质心的横坐标其计算公式如下:
S212将每块工作子区域内所有栅格点的纵坐标和加权相加后,除以栅格点数目,得到所述工作子区域内质心的纵坐标其计算公式如下:
其中,xi表示每块工作子区域中第i个栅格点的横坐标,yi表示每块工作子区域中第i个栅格点的纵坐标;ρi表示对每块工作子区域中第i个栅格点坐标的加权,N表示每块工作子区域所包含的栅格点数目;
优选的,还包括S22判断所述工作子区域内的质心是否被障碍物占据;
优选的,还包括S23若所述工作子区域的质心被所述障碍物占据,则计算出所述工作子区域中距离所述质心最近的一个空白点,该空白点作为质心;
S24根据若干块工作子区域之间的相邻关系,计算出相邻工作子区域内质心之间的规划路径;计算出相邻工作子区域内质心之间的规划路径是指:利用Dijkstra算法计算出相邻工作子区域内质心之间的规划路径,如图12所示,线段13、线段23、线段36、线段34、线段45、线段56、线段57、线段71为规划路径,图中仅起到示意的作用,绘图过程中可能会存在误差;
S25计算出每条规划路径(线段13、线段23、线段36、线段34、线段45、线段56、线段57、线段71)的长度,该长度作为相邻工作子区域之间的距离;计算出每条规划路径的长度是指:根据每条规划路径上所有栅格点的横坐标和栅格点坐标的加权相加,计算出每条规划路径的长度;
S30根据所述机器人当前所处的工作子区域、若干块工作子区域之间的相邻关系、相邻工作子区域之间的距离,排列所述机器人工作子区域的先后顺序。
如图4所示,根据本发明的再一个实施例,一种机器人工作区域的排序方法,包括如下步骤:
S10根据获取到的机器人工作区域地图,如图9所示,图中实线和灰色区域表示障碍物,由实线包围的白色区域表示空闲区域,所述工作区域地图是指:利用激光雷达建立的二维栅格地图,将所述工作区域分割成若干块工作子区域,如图10所示,图中将工作区域划分成标号为1~7的7块工作子区域,其划分方法可参照申请号为:201510629819.9的一种基于清洁机器人的区域分割方法;
S21根据分割后的若干块工作子区域,分别计算出每块工作子区域的质心,如图11所示,图中以小圆圈表示工作子区域的质心,优选的,其计算步骤如下;
S211将每块工作子区域内所有栅格点的横坐标和加权相加后,除以栅格点数目,得到所述工作子区域内质心的横坐标其计算公式如下:
S212将每块工作子区域内所有栅格点的纵坐标和加权相加后,除以栅格点数目,得到所述工作子区域内质心的纵坐标其计算公式如下:
其中,xi表示每块工作子区域中第i个栅格点的横坐标,yi表示每块工作子区域中第i个栅格点的纵坐标;ρi表示对每块工作子区域中第i个栅格点坐标的加权,N表示每块工作子区域所包含的栅格点数目;
优选的,还包括S22判断所述工作子区域内的质心是否被障碍物占据;
优选的,还包括S23若所述工作子区域的质心被所述障碍物占据,则计算出所述工作子区域中距离所述质心最近的一个空白点,该空白点作为质心;
S24根据若干块工作子区域之间的相邻关系,计算出相邻工作子区域内质心之间的规划路径;计算出相邻工作子区域内质心之间的规划路径是指:利用Dijkstra算法计算出相邻工作子区域内质心之间的规划路径,如图12所示,线段13、线段23、线段36、线段34、线段45、线段56、线段57、线段71为规划路径,图中仅起到示意的作用,绘图过程中可能会存在误差;
S25计算出每条规划路径(线段13、线段23、线段36、线段34、线段45、线段56、线段57、线段71)的长度,该长度作为相邻工作子区域之间的距离;计算出每条规划路径的长度是指:根据每条规划路径上所有栅格点的横坐标和栅格点坐标的加权相加,计算出每条规划路径的长度;
S31根据所述机器人当前所处的工作子区域、若干块工作子区域之间的相邻关系、相邻工作子区域之间的距离,用无向图表示若干块工作子区域之间的关系,如图13所示;无向图包括节点以及连线,无向图中的节点表示一块工作子区域,节点上的数字为工作子区域的编号,例如无向图中节点上的1表示第一工作子区域;两个节点之间的连线表示两块工作子区域相邻;连线旁边的数字表示两块工作子区域之间的距离(规划路径的长度),也即两块工作子区域内质心之间的距离;
S32遍历所述无向图中的每块工作子区域,得到所述机器人工作子区域的先后顺序,如图15、图17所示。
如图5、图14、图15所示,根据本发明的又一个实施例,一种机器人工作区域的排序方法,包括如下步骤:
S10根据获取到的机器人工作区域地图,如图9所示,图中实线和灰色区域表示障碍物,由实线包围的白色区域表示空闲区域,所述工作区域地图是指:利用激光雷达建立的二维栅格地图,将所述工作区域分割成若干块工作子区域,如图10所示,图中将工作区域划分成标号为1~7的7块工作子区域,其划分方法可参照申请号为:201510629819.9的一种基于清洁机器人的区域分割方法;
S20根据若干块工作子区域之间的相邻关系,计算出相邻工作子区域之间的距离;
S31根据所述机器人当前所处的工作子区域、若干块工作子区域之间的相邻关系、相邻工作子区域之间的距离,用无向图表示若干块工作子区域之间的关系,如图13所示;无向图包括节点以及连线,无向图中的节点表示一块工作子区域,节点上的数字为工作子区域的编号,例如无向图中节点上的1表示第一工作子区域;两个节点之间的连线表示两块工作子区域相邻;连线旁边的数字表示两块工作子区域之间的距离(规划路径的长度),也即两块工作子区域内质心之间的距离;
S32遍历所述无向图中的每块工作子区域,得到所述机器人工作子区域的先后顺序,如图15、图17所示;
S321将所述机器人所处的初始工作子区域(1)作为当前工作子区域(1),并记录所述初始工作子区域(1);
S322根据所述机器人所处的当前工作子区域(1),判断所述当前工作子区域(1)是否存在未被访问的邻居工作子区域;
S323若所述当前工作子区域(1)存在未被访问的邻居工作子区域,则找出所有未被访问的邻居工作子区域(3、7)后,判断未被访问的相邻工作子区域的块数是否大于1;
S324若未被访问的相邻工作子区域的块数大于1,则比较所有未被访问的邻居工作子区域(3、7),得到距离所述当前工作子区域(1)最近的邻居工作子区域(7)后;
S325记录所述邻居工作子区域(7)及该邻居工作子区域的访问编号(01),所述访问编号(01)为所述机器人工作子区域的排列序号(01),将该邻居工作子区域(7)作为所述机器人所处的当前工作子区域(7);
S322根据所述机器人所处的当前工作子区域(7),判断所述当前工作子区域(7)是否存在未被访问的邻居工作子区域;
S323若所述当前工作子区域(7)存在未被访问的邻居工作子区域,则找出所有未被访问的邻居工作子区域(5)后,判断未被访问的相邻工作子区域的块数是否大于1;
S325若未被访问的相邻工作子区域的块数不大于1,则记录所述邻居工作子区域(5)及该邻居工作子区域的访问编号(02),所述访问编号(02)为所述机器人工作子区域的排列序号(02),将该邻居工作子区域(5)作为所述机器人所处的当前工作子区域(5);
S322根据所述机器人所处的当前工作子区域(5),判断所述当前工作子区域(5)是否存在未被访问的邻居工作子区域;
S323若所述当前工作子区域(5)存在未被访问的邻居工作子区域,则找出所有未被访问的邻居工作子区域(4、6)后,判断未被访问的相邻工作子区域的块数是否大于1;
S324若未被访问的相邻工作子区域的块数大于1,则比较所有未被访问的邻居工作子区域(4、6),得到距离所述当前工作子区域(5)最近的邻居工作子区域(6)后;
S325记录所述邻居工作子区域(6)及该邻居工作子区域的访问编号(03),所述访问编号(03)为所述机器人工作子区域的排列序号(03),将该邻居工作子区域(6)作为所述机器人所处的当前工作子区域(6);
S322根据所述机器人所处的当前工作子区域(6),判断所述当前工作子区域(6)是否存在未被访问的邻居工作子区域;
S323若所述当前工作子区域(6)存在未被访问的邻居工作子区域,则找出所有未被访问的邻居工作子区域(3)后,判断未被访问的相邻工作子区域的块数是否大于1;
S325若未被访问的相邻工作子区域的块数不大于1,则记录所述邻居工作子区域(3)及该邻居工作子区域的访问编号(04),所述访问编号(04)为所述机器人工作子区域的排列序号(04),将该邻居工作子区域(3)作为所述机器人所处的当前工作子区域(3);
S322根据所述机器人所处的当前工作子区域(3),判断所述当前工作子区域(3)是否存在未被访问的邻居工作子区域;
S323若所述当前工作子区域(3)存在未被访问的邻居工作子区域,则找出所有未被访问的邻居工作子区域(2、4)后,判断未被访问的相邻工作子区域的块数是否大于1;
S324若未被访问的相邻工作子区域的块数大于1,则比较所有未被访问的邻居工作子区域(2、4),得到距离所述当前工作子区域(3)最近的邻居工作子区域(2)后;
S325记录所述邻居工作子区域(2)及该邻居工作子区域的访问编号(05),所述访问编号(05)为所述机器人工作子区域的排列序号(05),将该邻居工作子区域(2)作为所述机器人所处的当前工作子区域(2);
S322根据所述机器人所处的当前工作子区域(2),判断所述当前工作子区域(2)是否存在未被访问的邻居工作子区域;
S326判断所述无向图中是否存在未被访问的工作子区域;
S327若所述无向图中存在未被访问的工作子区域(4),则所述机器人回溯到上一工作子区域(3),将所述上一工作子区域(3)作为所述机器人所处的当前工作子区域(3);
S322根据所述机器人所处的当前工作子区域(3),判断所述当前工作子区域(3)是否存在未被访问的邻居工作子区域;
S325若所述当前工作子区域(3)存在未被访问的邻居工作子区域(4),则记录所述邻居工作子区域(4)及该邻居工作子区域的访问编号(06),所述访问编号(06)为所述机器人工作子区域的排列序号(06),将该邻居工作子区域(4)作为所述机器人所处的当前工作子区域(4);
S322根据所述机器人所处的当前工作子区域(4),判断所述当前工作子区域(4)是否存在未被访问的邻居工作子区域;
S326若所述当前工作子区域(4)不存在未被访问的邻居工作子区域,判断所述无向图中是否存在未被访问的工作子区域;
优选的,还包括S328所述无向图中不存在未被访问的工作子区域,则判断所述机器人是否处于所述初始工作子区域;
优选的,还包括S329若所述机器人不是处于所述初始工作子区域,则根据所述机器人所处的当前工作子区域,计算出所述机器人回到所述起初始工作子区域的回归路径;
S40若所述机器人处于所述初始工作子区域,则结束所述机器人工作区域的排序过程。
如图5、图16、图17所示,根据本发明的又又一个实施例,一种机器人工作区域的排序方法,包括如下步骤:
S10根据获取到的机器人工作区域地图,如图9所示,图中实线和灰色区域表示障碍物,由实线包围的白色区域表示空闲区域,所述工作区域地图是指:利用激光雷达建立的二维栅格地图,将所述工作区域分割成若干块工作子区域,如图10所示,图中将工作区域划分成标号为1~7的7块工作子区域,其划分方法可参照申请号为:201510629819.9的一种基于清洁机器人的区域分割方法;
S20根据若干块工作子区域之间的相邻关系,计算出相邻工作子区域之间的距离;
S31根据所述机器人当前所处的工作子区域、若干块工作子区域之间的相邻关系、相邻工作子区域之间的距离,用无向图表示若干块工作子区域之间的关系,如图13所示;无向图包括节点以及连线,无向图中的节点表示一块工作子区域,节点上的数字为工作子区域的编号,例如无向图中节点上的1表示第一工作子区域;两个节点之间的连线表示两块工作子区域相邻;连线旁边的数字表示两块工作子区域之间的距离(规划路径的长度),也即两块工作子区域内质心之间的距离;
S32遍历所述无向图中的每块工作子区域,得到所述机器人工作子区域的先后顺序,如图15、图17所示;
所述机器人所处的初始工作子区域为3时,其排序步骤如下,详细步骤可参照上述初始工作子区域为1的实施例;
S321将所述机器人所处的初始工作子区域作为当前工作子区域,并记录所述初始工作子区域;
S322根据所述机器人所处的当前工作子区域,判断所述当前工作子区域是否存在未被访问的邻居工作子区域;
S323若所述当前工作子区域存在未被访问的邻居工作子区域,则找出所有未被访问的邻居工作子区域后,判断未被访问的相邻工作子区域的块数是否大于1;否则,跳转至步骤S326;
S324若未被访问的相邻工作子区域的块数大于1,则比较所有未被访问的邻居工作子区域,得到距离所述当前工作子区域最近的邻居工作子区域后,跳转至步骤S325;否则,直接跳转至步骤S325;
S325记录所述邻居工作子区域及该邻居工作子区域的访问编号,所述访问编号为所述机器人工作子区域的排列序号,将该邻居工作子区域作为所述机器人所处的当前工作子区域后,跳转至步骤S322;
S326判断所述无向图中是否存在未被访问的工作子区域;
S327若所述无向图中存在未被访问的工作子区域,则所述机器人回溯到上一工作子区域,将所述上一工作子区域作为所述机器人所处的当前工作子区域后,跳转至步骤S322;
优选的,还包括S328若所述无向图中不存在未被访问的工作子区域,则判断所述机器人是否处于所述初始工作子区域;
优选的,还包括S329若所述机器人不是处于所述初始工作子区域,则根据所述机器人所处的当前工作子区域,计算出所述机器人回到所述起初始工作子区域的回归路径;
S40若所述机器人处于所述初始工作子区域,则结束所述机器人工作区域的排序过程。
如图7所示,根据本发明的一个实施例,一种机器人工作区域的排序系统,包括:
分割模块10,所述分割模块10根据获取到的机器人工作区域地图,将所述工作区域分割成若干块工作子区域;
计算模块20,所述计算模块20与所述分割模块10电连接,所述计算模块20根据若干块工作子区域之间的相邻关系,计算出相邻工作子区域之间的距离;
排序模块30,所述排序模块30与所述计算模块20电连接,所述排序模块30根据所述机器人当前所处的工作子区域、若干块工作子区域之间的相邻关系、相邻工作子区域之间的距离,排列所述机器人工作子区域的先后顺序。
如图8所示,根据本发明的另一个实施例,一种机器人工作区域的排序系统,包括:
分割模块10,用于根据获取到的机器人工作区域地图,如图9所示,图中实线和灰色区域表示障碍物,由实线包围的白色区域表示空闲区域,所述工作区域地图是指:利用激光雷达建立的二维栅格地图,将所述工作区域分割成若干块工作子区域,如图10所示,图中将工作区域划分成标号为1~7的7块工作子区域,其划分方法可参照申请号为:201510629819.9的一种基于清洁机器人的区域分割方法;
计算模块20,用于根据分割模块10分割后的若干块工作子区域,分别计算出每块工作子区域的质心,如图11所示,图中以小圆圈表示工作子区域的质心,优选的,其计算步骤如下;
将每块工作子区域内所有栅格点的横坐标和加权相加后,除以栅格点数目,得到所述工作子区域内质心的横坐标其计算公式如下:
将每块工作子区域内所有栅格点的纵坐标和加权相加后,除以栅格点数目,得到所述工作子区域内质心的纵坐标其计算公式如下:
其中,xi表示每块工作子区域中第i个栅格点的横坐标,yi表示每块工作子区域中第i个栅格点的纵坐标;ρi表示对每块工作子区域中第i个栅格点坐标的加权,N表示每块工作子区域所包含的栅格点数目;
优选的,还包括判断模块21,用于判断所述计算模块20计算出的所述工作子区域内的质心是否被障碍物占据;
优选的,若所述工作子区域的质心被所述障碍物占据,则所述计算模块20还用于计算出所述工作子区域中距离所述质心最近的一个空白点,该空白点作为质心;
所述计算模块20还用于根据若干块工作子区域之间的相邻关系,计算出相邻工作子区域内质心之间的规划路径;计算出相邻工作子区域内质心之间的规划路径是指:利用Dijkstra算法计算出相邻工作子区域内质心之间的规划路径,如图12所示,线段13、线段23、线段36、线段34、线段45、线段56、线段57、线段71为规划路径,图中仅起到示意的作用,绘图过程中可能会存在误差;
所述计算模块20还用于计算出每条规划路径(线段13、线段23、线段36、线段34、线段45、线段56、线段57、线段71)的长度,该长度作为相邻工作子区域之间的距离;计算出每条规划路径的长度是指:根据每条规划路径上所有栅格点的横坐标和栅格点坐标的加权相加,计算出每条规划路径的长度;
关系图生成模块31,用于根据所述机器人当前所处的工作子区域、若干块工作子区域之间的相邻关系、相邻工作子区域之间的距离,用无向图表示若干块工作子区域之间的关系,如图13所示;无向图包括节点以及连线,无向图中的节点表示一块工作子区域,节点上的数字为工作子区域的编号,例如无向图中节点上的1表示第一工作子区域;两个节点之间的连线表示两块工作子区域相邻;连线旁边的数字表示两块工作子区域之间的距离(规划路径的长度),也即两块工作子区域内质心之间的距离;
排序模块30,用于遍历所述无向图中的每块工作子区域,得到所述机器人工作子区域的先后顺序,如图15、图17所示;
记录模块32,用于将所述机器人所处的初始工作子区域作为当前工作子区域,并记录所述初始工作子区域;
所述判断模块21还用于根据所述机器人所处的当前工作子区域,判断所述当前工作子区域是否存在未被访问的邻居工作子区域;
若所述当前工作子区域存在未被访问的邻居工作子区域,则找出所有未被访问的邻居工作子区域后,所述判断模块21还判断未被访问的相邻工作子区域的块数是否大于1;
若未被访问的相邻工作子区域的块数大于1,则所述判断模块21还用于比较所有未被访问的邻居工作子区域,得到距离所述当前工作子区域最近的邻居工作子区域;
若所述当前工作子区域不存在未被访问的邻居工作子区域,或得到距离所述当前工作子区域最近的邻居工作子区域,则所述记录模块32还用于记录所述邻居工作子区域及该邻居工作子区域的访问编号,所述访问编号为所述机器人工作子区域的排列序号,将该邻居工作子区域作为所述机器人所处的当前工作子区域;
所述判断模块21还用于判断所述无向图中是否存在未被访问的工作子区域;
若所述无向图中存在未被访问的工作子区域,则所述排序模块30控制所述机器人回溯到上一工作子区域。将所述上一工作子区域作为所述机器人所处的当前工作子区域;
优选的,若所述无向图中不存在未被访问的工作子区域,则所述判断模块21还用于判断所述机器人是否处于所述初始工作子区域;
优选的,若所述机器人不是处于所述初始工作子区域,则所述计算模块20还用于根据所述机器人所处的当前工作子区域,计算出所述机器人回到所述起初始工作子区域的回归路径;
若所述机器人处于所述初始工作子区域,则所述排序模块30还用于结束所述机器人工作区域的排序过程。
如图6所示,根据本发明的又又又一个实施例,一种机器人工作区域的排序方法,包括:
S100机器人建图,得到清洁区域的地图,所述地图是一种由激光雷达建立的二维栅格地图;地图中实线和灰色的区域表示障碍物,由实线包围的白色区域表示空闲区域,从图中可以看出空闲区域并不规整,在清洁时,直接计算路线并对区域进行作业时,将很困难;
S110对清洁区域进行分割,得到若干个子区域;对作业区域进行分割,得到若干个规整的子区域,子区域间用虚线隔开,此时规划路线将变的容易,假设这里分割得到7个子区域;
S120计算机器人当前所在的子区域编号;
S200判别子区域间的邻居关系;
S210分别计算每个子区域的质心,如果质心位于障碍物中,调整质心;每个子区域内的质心在图中用小圆圈表示;
计算每个子区域的质心,具体包括以下步骤:
S211对于每个子区域,将区域内所有栅格的横坐标和纵坐标分别加权相加再除以栅格数目,得到的横纵坐标的平均值即为每个子区域的质心;其计算公式如下:
其中,表示每个子区域质心的横坐标,表示每个子区域质心的纵坐标;xi表示子区域中第i个栅格点的横坐标,yi表示子区域中第i个栅格点的纵坐标;ρi表示对子区域中第i个栅格点坐标的加权,N表示子区域包含的栅格点的数目;
S212对质心进行判断,如果质心为障碍物点,则在当前子区域中寻找一个离质心最近的空闲栅格,用其坐标代表质心坐标;
S220利用Dijkstra算法计算邻居子区域质心间的最短路径;
S230根据最短路径上点的坐标和个数计算邻居子区域质心间的距离,用其代表两个相邻子区域间的距离;
S300根据子区域间的邻居关系和邻居子区域质心间的距离,将子区域间的关系用图表示;图是一种数据结构,这里采用无向图,每个子区域对应图中的一个节点,例如图中圆圈中的数字1~7分别对应子区域1~7,邻居子区域质心间的距离对应图中边的权重,权重越大,代表距离越远;
S310对图进行遍历,得到清洁时机器人子区域转移路线;
步骤S310中对图进行遍历,具体包括以下步骤:
S311选择机器人当前所在的子区域对应的图中节点作为遍历开始的节点,记录该节点;
S312在机器人所在节点的邻居节点中寻找一个离机器人最近的且未访问过的节点,然后记录该节点为机器人即将访问的节点编号,再让机器人转移到该节点;
如果机器人所在节点的邻居中不存在未访问的节点,采用回溯的方法,即逆着之前访问过的节点,寻找到第一个存在未访问邻居节点的节点,然后让机器人转移到该节点,不断重复S312直至所有的节点都被访问到;
S313当图中的所有节点都被访问完毕,此时机器人不处于开始的节点,此时可采用Dijkstra算法直接规划出一条最短路径使得机器人回到清洁起点,此时记录起始节点为机器人即将访问的节点编号;
S314依次保存S312,S313中被记录的节点编号,即得到了排序好的子区域序号。
机器人可以在扫地前对这些子区域进行排序,决定先扫哪个区域再扫哪个区域,相比而言,这种先建图,再分割,最后对子区域排序的方式,清洁效率更高。
具体的,分别假设机器人起始位于节点1和节点3,然后分别遍历图得到子区域排序的过程图,由排序图中我们可以得到作业时机器人子区域转移路线,分别对应图14和图17中所示;
下面结合图15和图16,详细说明图的遍历过程,此时机器人从节点3开始遍历,先记录节点3,从图中可以看出节点2距节点3最近,于是记录节点2,此时节点2再无未访问过的邻居节点,于是回溯到节点3,此时在未访问过的邻居节点中发现节点6距机器人最近,于是再记录节点6,接着在节点6的未访问过的邻居节点中寻找到节点5距机器人最近,再记录节点5,然后在节点5的未访问过的邻居节点中寻找到节点4距机器人最近,再记录节点4,此时节点4再无未访问过的邻居节点,于是回溯到节点5,此时在未访问过的邻居节点中发现节点7距机器人最近,再记录节点7,然后在节点7的未访问过的邻居节点中寻找到节点1距机器人最近,再记录节点1,此时所有的节点都被访问到了,最后使用Dijkstra算法规划一条到达起始节点3的路径,并记录节点3,整个过程得到的区域排序为如图10中所示,机器人沿着图10中的区域排序进行清洁,清洁效率将大幅度增加。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。