本发明涉及机器人领域,特别是涉及一种机器人的移动控制方法及机器人。
背景技术:
机器人作为为人类服务的智能设备,使用者通常会在机器人执行某些任务时控制机器人的移动。比如,机器人在某区域执行任务,在任务未完成时,机器人不能跨越执行区域。目前,市场上通常利用虚拟墙生成装置产生的阻碍信号来限制机器人的执行区域,或者采用某种机器人可识别的图纹形成虚拟障碍物边界,限制机器人跨域。
然而,若机器人需要移动覆盖的移动区域很大,则需要使用者采用多个虚拟墙生成装置或图纹,将机器人的移动区域进划分为多个子区域,导致成本升高。
技术实现要素:
本发明主要解决的技术问题是提供一种,能够解决现有技术中需要采用虚拟墙生成装置或者图纹产生虚拟障碍物边界的问题。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种机器人的移动控制方法,包括:沿机器人的移动方向或者沿移动方向的垂直方向获取位于机器人两侧的两个相邻障碍物的位置信息,并计算两个相邻障碍物之间的距离;判断两个相邻障碍物之间的距离是否不大于第一预设距离;若两个相邻障碍物之间的距离不大于第一预设距离,则在两个相邻障碍物之间设置虚拟障碍物边界;以虚拟障碍物边界控制机器人的移动路径。
其中,以虚拟障碍物边界控制机器人的移动路径的步骤包括:在机器人后续移动到虚拟障碍物边界时,以虚拟障碍物边界存在障碍物的方式控制机器人进行移动。
其中,沿机器人的移动方向或者沿移动方向的垂直方向获取位于机器人两侧的两个相邻障碍物的位置信息,并计算两个相邻障碍物之间的距离的步骤之前,进一步包括:获取对应于机器人的待作业区域的虚拟地图,其中虚拟地图划分为阵列式排布的多个栅格;在机器人的移动过程中,沿移动方向和垂直方向对机器人所处栅格的相邻栅格进行状态检测,并在虚拟地图上对栅格的状态进行标记,其中将机器人已经过的栅格标记为已作业栅格,将检测到存在障碍物的栅格标记为障碍物栅格,将检测到不存在障碍物且机器人未经过的栅格标记为待作业栅格,将机器人未经过且未进行状态检测的栅格标记为未知栅格。
其中,沿机器人的移动方向或者沿移动方向的垂直方向获取位于机器人两侧的两个相邻障碍物的位置信息,并计算两个相邻障碍物之间的距离的步骤包括:沿移动方向或者垂直方向获取机器人两侧的两个相邻障碍物栅格,并根据两个相邻障碍物栅格在虚拟地图上的位置信息计算两个相邻障碍物栅格之间的距离。
其中,判断两个相邻障碍物之间的距离是否不大于第一预设距离的步骤进一步包括:判断在两个相邻障碍物栅格之间的栅格的至少一侧是否存在相邻设置且与未知栅格连接的待作业栅格;若两个相邻障碍物之间的距离不大于第一预设距离,则在两个相邻障碍物之间设置虚拟障碍物边界的步骤包括:若两个相邻障碍物栅格之间的距离不大于第一预设距离,且在两个相邻障碍物栅格之间的栅格的至少一侧存在相邻设置且与未知栅格连接的待作业栅格,则在两个相邻障碍物栅格之间设置虚拟障碍物边界。
其中,若两个相邻障碍物之间的距离不大于第一预设距离,则在两个相邻障碍物之间设置虚拟障碍物边界的步骤包括:控制机器人继续移动以使得机器人移出虚拟障碍物边界的所在位置后设置虚拟障碍物边界。
其中,若两个相邻障碍物之间的距离不大于第一预设距离,则在两个相邻障碍物之间设置虚拟障碍物边界的步骤进一步包括:若存在两条以上虚拟障碍物边界,则判断两条以上虚拟障碍物边界在相互垂直的第一方向和第二方向中的任意一者上的距离是否小于第二预设距离,且在第一方向和第二方向的另一者上是否存在重叠区域;若小于第二预设距离且存在重叠区域,则对两条以上虚拟障碍物边界进行选择性删除。
其中,若小于第二预设距离且存在重叠区域,则对两条以上虚拟障碍物边界进行选择性删除的步骤包括:删除设置时间相对较晚的虚拟障碍物边界。
其中,以虚拟障碍物边界控制机器人的移动路径的步骤包括:利用虚拟障碍物边界将待作业区域划分成由虚拟障碍物边界分隔的至少两个子区域;控制机器人在对其中一个子区域内的待作业栅格和未知栅格完成遍历后,删除虚拟障碍物边界,再对另一个子区域内的待作业栅格和未知栅格进行遍历。
其中,以虚拟障碍物边界控制机器人的移动路径的步骤进一步包括:若在机器人的移动过程中,发现存在连通至少两个子区域的已作业栅格和/或待作业栅格,则删除虚拟障碍物边界。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种机器人,包括:位置获取模块,用于沿机器人的移动方向或者沿移动方向的垂直方向获取位于机器人两侧的两个相邻障碍物的位置信息,并计算两个相邻障碍物之间的距离;距离判断模块,用于判断两个相邻障碍物之间的距离是否不大于第一预设距离;边界设置模块,用于在两个相邻障碍物之间的距离不大于第一预设距离时,在两个相邻障碍物之间设置虚拟障碍物边界;移动控制模块,用于以虚拟障碍物边界控制机器人的移动路径。
为解决上述技术问题,本发明采用的又一个技术方案是:提供一种机器人,包括:相互连接的传感器和处理器;传感器用于沿机器人的移动方向或者沿移动方向的垂直方向获取位于机器人两侧的两个相邻障碍物的位置信息;处理器用于计算两个相邻障碍物之间的距离,判断两个相邻障碍物之间的距离是否不大于第一预设距离,在两个相邻障碍物之间的距离不大于第一预设距离时,在两个相邻障碍物之间设置虚拟障碍物边界,并以虚拟障碍物边界控制机器人的移动路径。
本发明的有益效果是:区别于现有技术的情况,本发明通过沿机器人的移动方向或者沿移动方向的垂直方向获取位于机器人两侧的两个相邻障碍物的位置信息,并计算两个相邻障碍物之间的距离,在两个相邻障碍物之间的距离不大于第一预设距离时,在两个相邻障碍物之间设置虚拟障碍物边界,并以虚拟障碍物边界控制机器人的移动路径,不需要采用外部的虚拟墙生成装置,机器人自身即可以完成虚拟障碍物边界的设置,有效节省成本。
附图说明
图1是本发明机器人的移动控制方法一实施方式的流程图;
图2是图1所示的方法中机器人所采用的虚拟地图的示意图;
图3是图1所示的方法中机器人沿行方向移动设置行方向的虚拟障碍物边界的示意图;
图4是图1所示的方法中机器人沿行方向移动设置列方向的虚拟障碍物边界的示意图;
图5是图1所示的方法中机器人沿列方向移动设置行方向的虚拟障碍物边界的示意图;
图6是图3所示的虚拟障碍物边界的示意图;
图7是图4所示的虚拟障碍物边界的示意图;
图8是图5所示的虚拟障碍物边界的示意图;
图9是图1所示的方法中机器人设置的行方向上的两个虚拟障碍物边界距离过近的示意图;
图10是图1所示的方法中机器人设置的列方向上的两个虚拟障碍物边界距离过近的示意图;
图11是图1所示的方法中机器人设置的行方向上的虚拟障碍物边界与列方向上的虚拟障碍物边界存在重叠区域的示意图;
图12是图1所示的方法中机器人在待工作区域中存在单一虚拟障碍物边界时的移动路径示意图;
图13是图1所示的方法中待工作区域存在多个虚拟障碍物边界的示意图;
图14是现有技术中机器人在待工作区域中的移动路径示意图;
图15是图1所示的方法中机器人移动过程中发现两个子区域通过已作业栅格和/或待作业栅格连通的示意图;
图16是本发明机器人第一实施方式的结构示意图;
图17是本发明机器人第二实施方式的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1是本发明机器人的移动控制方法一实施方式的流程图。如图1所示,本发明机器人的移动控制方法包括:
步骤S11:沿机器人的移动方向或者沿移动方向的垂直方向获取位于机器人两侧的两个相邻障碍物的位置信息,并计算两个相邻障碍物之间的距离;
其中,步骤S11之前,进一步包括:
步骤S101:获取对应于机器人的待作业区域的虚拟地图,其中虚拟地图划分为阵列式排布的多个栅格;
具体地,如图2所示,在一个应用例中,机器人开始工作时,首先以阵列式排布的多个栅格存储对应于机器人的待作业区域的虚拟地图,其中,机器人至少设置有一个传感器,该传感器存在检测范围,机器人通过传感器获取检测范围中各栅格的状态并在虚拟地图中做相应标记,而超出该检测范围的栅格状态则标记为未知。
步骤S102:在机器人的移动过程中,沿移动方向和垂直方向对机器人所处栅格的相邻栅格进行状态检测,并在虚拟地图上对栅格的状态进行标记,其中将机器人已经过的栅格标记为已作业栅格,将检测到存在障碍物的栅格标记为障碍物栅格,将检测到不存在障碍物且机器人未经过的栅格标记为待作业栅格,将机器人未经过且未进行状态检测的栅格标记为未知栅格。
具体地,在上述应用例中,机器人的移动方式有逐行移动和逐列移动两种。其中,进一步参阅图2,逐行移动方式是机器人首先沿虚拟地图中的行方向移动,在遇到障碍物时,则沿垂直于行方向的列方向移动到下一行,再继续沿与上一行移动方向相反的行方向移动;例如,机器人首先在虚拟地图的n行中从n行m列位置201向n行m+4列位置202移动,由于n行m+5列位置203存在一障碍物,机器人沿垂直于行方向的列方向从n行m+4列位置202向n+1行m+4列位置204移动,再继续沿n+1行从n+1行m+4列位置204向n+1行m列位置205移动;逐列移动方式则是机器人首先沿虚拟地图中的列方向移动,在遇到障碍物时,则沿垂直于列方向的行方向移动到下一列,再继续沿与上一列移动方向相反的列方向移动。
以机器人逐行移动为例,在机器人移动过程中,沿移动方向(行方向)和垂直方向(列方向)对机器人所处栅格的相邻栅格进行状态检测,并在虚拟地图上对栅格的状态进行标记,机器人移动过程中,会对栅格状态进行更新。如图2所示,将机器人已经过的栅格,包括当前所处的栅格标记为已作业栅格,即图2中“已”字标记的栅格;将检测到存在障碍物的栅格标记为障碍物栅格,即图2中斜线标记的栅格;将检测到不存在障碍物且机器人未经过的栅格标记为待作业栅格,即图2中“待”字标记的栅格;将机器人未经过且未进行状态检测的栅格标记为未知栅格,即图2中“未”字标记的栅格。
当然,在其他应用例中,机器人也可以沿其他方向移动,虚拟地图也可以通过其它方式存储,此处不做具体限定。
进一步地,步骤S11包括:
步骤S111:沿移动方向或者垂直方向获取机器人两侧的两个相邻障碍物栅格,并根据两个相邻障碍物栅格在虚拟地图上的位置信息计算两个相邻障碍物栅格之间的距离。
具体地,在一个应用例中,如图3所示,机器人在n行中沿行方向移动时,获取机器人两侧的两个相邻障碍物栅格,即虚拟地图中n行m+1列位置301和n行m-j列302位置的障碍物栅格,由此计算出这两个相邻障碍物栅格之间的距离,即j+1个栅格。
步骤S12:判断两个相邻障碍物之间的距离是否不大于第一预设距离;
具体地,第一预设距离是机器人预先设置的第一距离阈值,在上述应用例中,第一预设距离以栅格为单位,其具体取值可以根据实际需求而定,此处不做具体限定。
其中,步骤S12进一步包括:
步骤S121:判断在两个相邻障碍物栅格之间的栅格的至少一侧是否存在相邻设置且与未知栅格连接的待作业栅格;
具体地,在上述应用例中,如图3所示,机器人处于虚拟地图的n行m列位置300,虚拟地图中n行m+1列位置301和n行m-j列位置302均是障碍物栅格,若两个障碍物栅格之间的栅格的一侧(n+1行中)存在相邻设置且与未知栅格连接的待作业栅格,如存在与n+1行m+1列位置303的未知栅格相邻设置且连接的n+1行m列位置304的待作业栅格,则后续设置的虚拟障碍物边界是在机器人是从已作业区域向未作业区域移动过程中设置的。
步骤S13:若两个相邻障碍物之间的距离不大于第一预设距离,则在两个相邻障碍物之间设置虚拟障碍物边界;
进一步地,步骤S13包括:
步骤S131:若两个相邻障碍物栅格之间的距离不大于第一预设距离,且在两个相邻障碍物栅格之间的栅格的至少一侧存在相邻设置且与未知栅格连接的待作业栅格,则在两个相邻障碍物栅格之间设置虚拟障碍物边界。
具体地,在上述应用例中,如图3所示,若两个相邻障碍物栅格301和302之间的距离(j+1个栅格)小于或等于第一预设距离(例如10个栅格),且在两个相邻障碍物栅格301和302之间的栅格的至少一侧存在相邻设置且与未知栅格连接的待作业栅格,如存在与未知栅格303相邻设置且连接的待作业栅格304,则在两个相邻障碍物栅格301和302之间设置虚拟障碍物边界。
在另一个应用例中,如图4所示,机器人沿虚拟地图的行方向移动,当前机器人处于虚拟地图的n行m列位置300,若机器人两侧的两个相邻障碍物305和306之间的距离(i+j个栅格)小于或等于第一预设距离(例如10个栅格),且在两个相邻障碍物栅格之间305和306的栅格的至少一侧存在相邻设置且与未知栅格连接的待作业栅格,如n行m+1列位置307存在相邻设置且与n行m+2列位置308的未知栅格连接的待作业栅格,则在两个相邻障碍物栅格305和306之间设置虚拟障碍物边界。
如图5所示,机器人在虚拟地图中沿列方向移动,当前机器人处于虚拟地图的n行m列位置300,若机器人两侧的两个相邻障碍物309和310之间的距离(i+j个栅格)小于或等于第一预设距离(例如10个栅格),且在两个相邻障碍物栅格309和310之间的栅格的至少一侧存在相邻设置且与未知栅格连接的待作业栅格,如n+1行m列位置311存在相邻设置且与n+2行m列位置312的未知栅格连接的待作业栅格,则可以在两个相邻障碍物栅格309和310之间设置虚拟障碍物边界。
步骤S132:控制机器人继续移动以使得机器人移出虚拟障碍物边界的所在位置后设置虚拟障碍物边界。
具体地,结合图3和图6所示,机器人沿列方向继续移动到下一行(n+1行)时,机器人移出虚拟障碍物边界31所在的位置后,设置虚拟障碍物边界31,即该虚拟障碍物边界31生效,如图6中标记所示栅格。
结合图4和图7所示,机器人沿行方向继续移动到下一列(m+1列)时,机器人移出虚拟障碍物边界32所在的位置后,设置虚拟障碍物边界32,即该虚拟障碍物边界32生效,如图7中标记所示栅格。
结合图5和图8所示,机器人沿列方向继续移动到下一行(n+1行),机器人移出虚拟障碍物边界33所在的位置后,设置虚拟障碍物边界33,即该虚拟障碍物边界33生效,如图8中标记所示栅格。
进一步地,步骤S13进一步包括:
步骤S133:若存在两条以上虚拟障碍物边界,则判断两条以上虚拟障碍物边界在相互垂直的第一方向和第二方向中的任意一者上的距离是否小于第二预设距离,且在第一方向和第二方向的另一者上是否存在重叠区域;
其中,第二预设距离是机器人预先设置的第二距离阈值,其具体取值可以视实际需求而定,此处不做具体限定。在一个应用例中,虚拟地图上第一方向是行方向,第二方向是列方向,判断虚拟地图上两条虚拟障碍物边界在行方向和列方向其中一个方向上的距离是否小于第二预设距离,且在另一个方向上是否存在重叠区域,以判断两条虚拟障碍物边界是否距离过近。
步骤S134:若小于第二预设距离且存在重叠区域,则对两条以上虚拟障碍物边界进行选择性删除。
具体地,在一个应用例中,如图9所示,虚拟地图中,行方向上的两条相邻的虚拟障碍物边界41和42之间的距离(i个栅格)小于第二预设距离(例如5个栅格),且该虚拟障碍物边界41和42在列方向上的投影存在重叠区域401,则表明两条相邻的虚拟障碍物边界41和42距离过近,选择其中一条虚拟障碍物边界进行删除。
如图10所示,虚拟地图中,列方向上的两条相邻的虚拟障碍物边界43和44之间的距离(j个栅格)小于第二预设距离(例如5个栅格),且该虚拟障碍物边界43和44在列方向上的投影存在重叠区域402,则表明两条相邻的虚拟障碍物边界43和44距离过近,选择其中一条虚拟障碍物边界进行删除。
如图11所示,虚拟地图中,行方向上的虚拟障碍物边界45和列方向上的虚拟障碍物边界46之间的距离定义为0,小于第二预设距离(例如5个栅格),且虚拟障碍物边界45和46存在重叠区域403,则表明两条虚拟障碍物边界45和46距离过近,选择其中一条虚拟障碍物边界进行删除。
进一步地,步骤S134包括:
步骤S1341:删除设置时间相对较晚的虚拟障碍物边界。
具体地,在上述应用例中,如图9所示,虚拟障碍物边界42设置时间晚于虚拟障碍物边界41,则删除虚拟障碍物边界42;如图10所示,虚拟障碍物边界44设置时间晚于虚拟障碍物边界43,则删除虚拟障碍物边界44;如图11所示,虚拟障碍物边界46设置时间晚于虚拟障碍物边界45,则删除虚拟障碍物边界46。
步骤S14:以虚拟障碍物边界控制机器人的移动路径。
其中,步骤S14包括:
步骤S141:在机器人后续移动到虚拟障碍物边界时,以虚拟障碍物边界存在障碍物的方式控制机器人进行移动。
具体地,虚拟障碍物边界生效后,机器人将虚拟障碍物边界所在位置视为存在障碍物,机器人在后续移动过程中,无法跨越虚拟障碍物边界所在位置的栅格,直至虚拟障碍物边界删除。
进一步地,步骤141包括:
步骤S1411:利用虚拟障碍物边界将待作业区域划分成由虚拟障碍物边界分隔的至少两个子区域;
具体地,如图12所示,虚拟障碍物边界51将待作业区域划分为两个子区域501和502;如图13所示,虚拟障碍物边界52、53和54将待作业区域划分为四个子区域503、504、505和506。
步骤S1412:控制机器人在对其中一个子区域内的待作业栅格和未知栅格完成遍历后,删除虚拟障碍物边界,再对另一个子区域内的待作业栅格和未知栅格进行遍历。
具体地,如图12所示,机器人逐行移动,从子区域501向子区域502移动过程中,在子区域501和子区域502之间设置虚拟障碍物边界51,具体设置方法可以参考步骤S11至步骤S13,此处不再重复;虚拟障碍物边界51生效后,机器人即将虚拟障碍物边界51所在位置视为存在障碍物,机器人在后续移动过程中,无法跨越虚拟障碍物边界51从子区域502移动子区域501,直至虚拟障碍物边界51删除。因此,机器人首先对子区域502内的待作业栅格和未知栅格完成遍历后,删除虚拟障碍物边界51,此时,虚拟障碍物边界51所在位置不存在障碍物,机器人可以从子区域502移动子区域501,继续对子区域501内的待作业栅格和未知栅格进行遍历。
如图13所示,机器人先后设置的虚拟障碍物边界53、54和55将待工作区域划分为四个子区域503、504、505和506。机器人在后续的移动过程中,首先对子区域506内的待作业栅格和未知栅格完成遍历后,删除设置时间最晚的虚拟障碍物边界55,此时,虚拟障碍物边界55所在位置不存在障碍物,机器人可以从子区域506移动子区域505,继续对子区域505内的待作业栅格和未知栅格进行遍历,遍历完成后,依次删除虚拟障碍物边界54和53,依次完成子区域504、503内的待作业栅格和未知栅格的遍历。
现有技术中,如图14所示,机器人从子区域501向子区域502移动过程中,由于没有设置虚拟障碍物边界,机器人后续移动中,没有遍历子区域502内的待作业栅格和未知栅格,即从子区域502中移动回子区域501中,导致在对子区域501内的待作业栅格和未知栅格完成遍历后,机器人还需要返回子区域502内重新进行工作,工作效率低,且耗时长。
相对于如图14中的现有技术,本发明机器人的移动控制方法设置的虚拟障碍物边界将待工作区域划分为至少两个子区域,控制机器人在对其中一个子区域内的待作业栅格和未知栅格完成遍历后,再对另一个子区域内的待作业栅格和未知栅格进行遍历,有效提高机器人的工作效率,节省工作时间。
步骤S1413:若在机器人的移动过程中,发现存在连通至少两个子区域的已作业栅格和/或待作业栅格,则删除虚拟障碍物边界。
具体地,由步骤S11至S13可知,虚拟障碍物边界是在机器人是从已作业区域向未作业区域移动过程中设置的,即在初始设置虚拟障碍物边界时,该虚拟障碍物边界两侧的子区域之间无法通过已作业栅格和/或待作业栅格连通,而在机器人的移动过程中,栅格状态变化,如图15所示,出现两个子区域507、508之间通过已作业栅格和/或待作业栅格连通,此时,该虚拟障碍物边界56失效,机器人删除该虚拟障碍物边界56,从而可以节省存储空间。
上述实施例中,通过沿机器人的移动方向或者沿移动方向的垂直方向获取位于机器人两侧的两个相邻障碍物的位置信息,并计算两个相邻障碍物之间的距离,在两个相邻障碍物之间的距离不大于第一预设距离时,在两个相邻障碍物之间设置虚拟障碍物边界,并以虚拟障碍物边界控制机器人的移动路径,不需要采用外部的虚拟墙生成装置,机器人自身即可以完成虚拟障碍物边界的设置,有效节省成本;而且设置的虚拟障碍物边界将待工作区域划分为至少两个子区域,使得机器人在对其中一个子区域内的待作业栅格和未知栅格完成遍历后,再对另一个子区域内的待作业栅格和未知栅格进行遍历,有效提高机器人的工作效率,节省工作时间。
请参阅图16,图16是本发明机器人第一实施方式的结构示意图。如图16所示,本发明机器人60包括:依次连接的位置获取模块601、距离判断模块602、边界设置模块603和移动控制模块604。
其中,机器人60可以是扫地机器人,也可以是其他类型的机器人,此处不做具体限定。
位置获取模块601,用于沿机器人60的移动方向或者沿移动方向的垂直方向获取位于机器人60两侧的两个相邻障碍物的位置信息,并计算两个相邻障碍物之间的距离;
具体地,在一个应用例中,机器人60通过传感器获取其移动方向或者移动方向的垂直方向上位于机器人60两侧的两个相邻障碍物的位置信息,并计算两个相邻障碍物之间的距离,再将该距离传输给距离判断模块602。
距离判断模块602,用于判断两个相邻障碍物之间的距离是否不大于第一预设距离;
具体地,第一预设距离是机器人60预先设置的第一距离阈值,其取值可以视具体需求而定,此处不做具体限定。距离判断模块602接收到位置获取模块601传输的两个相邻障碍物之间的距离,判断该距离是否小于或等于第一预设距离,并将判断结果传输给边界设置模块603。
边界设置模块603,用于在两个相邻障碍物之间的距离不大于第一预设距离时,在两个相邻障碍物之间设置虚拟障碍物边界;
具体地,边界设置模块603接收到距离判断模块602的判断结果,若判断结果是该距离小于或等于第一预设距离,则机器人60通过边界设置模块603在该两个相邻障碍物之间设置虚拟障碍物边界。
移动控制模块604,用于以虚拟障碍物边界控制机器人60的移动路径。
具体地,在一个应用例中,虚拟障碍物边界设置后,机器人60在后续的移动中,将虚拟障碍物边界所在位置判定为存在障碍物,机器人60无法跨越该虚拟障碍物边界,以此控制机器人60的移动路径。
上述实施例中,机器人通过沿机器人的移动方向或者沿移动方向的垂直方向获取位于机器人两侧的两个相邻障碍物的位置信息,并计算两个相邻障碍物之间的距离,在两个相邻障碍物之间的距离不大于第一预设距离时,在两个相邻障碍物之间设置虚拟障碍物边界,并以虚拟障碍物边界控制机器人的移动路径,不需要采用外部的虚拟墙生成装置,机器人自身即可以完成虚拟障碍物边界的设置,有效节省成本。
请参阅图17,图17是本发明机器人第二实施方式的结构示意图。如图17所示,本发明机器人70包括:传感器701和处理器702,二者通过总线连接。
其中,机器人60可以是扫地机器人,也可以是其他类型的机器人,此处不做具体限定。
传感器701用于沿机器人的移动方向或者沿移动方向的垂直方向获取位于机器人两侧的两个相邻障碍物的位置信息;
具体地,传感器701可以是距离传感器,机器人70通过传感器701可以获取其移动方向或者移动方向的垂直方向上位于机器人70两侧的两个相邻障碍物的位置信息。其中,传感器701也可以是其他类型的传感器,只要可以获取机器人70两侧的两个相邻障碍物的位置信息即可,此处不做具体限定。
处理器702控制机器人的移动,处理器702还可以称为CPU(Central Processing Unit,中央处理单元)。处理器702可能是一种集成电路芯片,具有信号的处理能力。处理器702还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
机器人70可以进一步包括存储器(图中未画出),存储器用于存储处理器702工作所必需的指令及数据,例如机器人70两侧的两个相邻障碍物的位置信息和设置的虚拟障碍物边界的位置信息等。
处理器702用于计算两个相邻障碍物之间的距离,判断两个相邻障碍物之间的距离是否不大于第一预设距离,在两个相邻障碍物之间的距离不大于第一预设距离时,在两个相邻障碍物之间设置虚拟障碍物边界,并以虚拟障碍物边界控制机器人的移动路径。
其中,第一预设距离是机器人70预先设置的第一距离阈值,其取值可以视具体需求而定,此处不做具体限定。
具体地,在一个应用例中,处理器702获取传感器701获取到的机器人70两侧的两个相邻障碍物的位置信息,计算该两个相邻障碍物之间的距离,判断该距离是否小于或等于第一预设距离,在该距离小于或等于第一预设距离时,则在该两个相邻障碍物之间设置虚拟障碍物边界;然后,处理器702以该虚拟障碍物边界存在障碍物的方式,以使得机器人70无法跨越该虚拟障碍物边界,以此控制机器人70的移动路径。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。