本发明涉及机器人
技术领域:
,具体涉及一种基于虚拟墙的机器人控制方法。
背景技术:
:扫地机器人清扫过程中不可避免的会进入用户不想机器人进入的区域,针对该需求,目前的解决方法有两种:1)应用硬件制造虚拟墙,例如虚拟墙磁条、虚拟墙红外信号发射器等;2)应用软件算法实现。该方法可以节省了硬件成本,但是由于机器人坐标跳变等问题,对虚拟墙算法的稳定性的要求就比较高。如果虚拟墙算法稳定性较差,机器人就无法有效检测到自身是否进入用户不想机器人进入的区域。现有的专利授权公告号为cn110385719b,
专利名称:为机器人判断是否碰撞虚拟墙的方法和芯片以及智能机器人,该专利就是通过应用软件算法来实现虚拟墙技术,主要通过在虚拟墙两侧设置预判区,使机器人在进入预判区时,结合机器人的当前方向,以及机器人与对照点之间的直线距离和对照点与虚拟墙的中心点之间的直线距离的关系,可以准确判断出机器人是否碰撞虚拟墙,虽然整个技术方案不易受外界环境干扰,但是无法有效解决机器人坐标跳变的问题。技术实现要素:为解决上述问题,本发明提供了基于虚拟墙的机器人控制方法,本申请方案提供了一种稳定性较高的虚拟墙算法,可以兼容机器人坐标在设定幅度内跳变,有效降低机器人穿墙概率;使机器人穿越虚拟墙后,能够导航回到穿越虚拟墙前的位置。本发明的具体技术方案如下:一种基于虚拟墙的机器人控制方法,该方法包括以下步骤:s1:机器人基于所构建的地图设置虚拟墙;s2:机器人在虚拟墙上建立数学模型;s3:机器人检测自身在所述数学模型上的位置;s4:机器人根据自身的位置变化来判断自身是否穿越虚拟墙。机器人通过在虚拟墙上建立数学模型来判断机器人与虚拟墙的位置关系,并根据机器人在数学模型上的位置变化来判断机器人是否穿越虚拟墙,而位置变化是通过多个实时测量值进行比较获取的,可以有效兼容机器人坐标在设定幅度内跳变,准确率高,稳定性强。进一步地,步骤s2中,机器人在虚拟墙中建立数学模型包括以下步骤:确定虚拟墙的斜率角度和虚拟墙的中心点的坐标;把虚拟墙以其中心点为参考点平移到坐标系的原点,并旋转所述斜率角度,使虚拟墙置于坐标系的x轴上;以预设坐标将虚拟墙周围的区域划分为安全区域、预警区域和触碰区域。将虚拟墙与坐标系重合的方式来构建数学模型,便于机器人进行计算。进一步地,以x轴上的虚拟墙为中线,机器人将预警区域分为上预警区域和下预警区域,所述上预警区域和下预警区域分布在触碰区域的两侧,并包围触碰区域。进一步地,步骤s3中,机器人检测自身在所述数学模型上的位置包括以下步骤:机器人确定自身当前位置的坐标,将当前位置坐标进行与虚拟墙相应的平移和旋转,得到基于数学模型的机器人坐标;然后根据机器人坐标来判断机器人位于数学模型中的安全区域、预警区域还是触碰区域,并进行相应的操作。经过简单的移动就可以将机器人的坐标换算为数学模型的坐标,计算简单,实用性高。进一步地,若机器人判断自身在安全区域,则机器人继续工作并以设定的时间间隔来检测自身所处位置。进一步地,若机器人判断自身在预警区域,则机器人继续工作并实时检测自身所处位置。进一步地,若机器人判断自身在触碰区域,则机器人往最近的预警区域移动。根据自身状态来决定所要进行的操作,灵活性高。进一步地,机器人判断自身处于安全区域、上预警区域或下预警区域时,会将自身状态更改为对应的状态,机器人处于触碰区域时,机器人不改变当前自身状态。进一步地,机器人判断自身穿越虚拟墙的步骤包括:机器人检测自身在数学模型上的位置变化,然后根据位置变化判断自身所处区域是否改变,并将自身状态更改为当前所在区域对应的状态,若机器人的自身状态从上预警区域变化为下预警区域,或从下预警区域变化为上预警区域,则判断机器人穿越虚拟墙。通过状态变化来判断自身是否穿越虚拟墙,准确率高。进一步地,机器人判断自身处于上预警区域或下预警区域时,记录当前在数学模型上的实时坐标,当机器人判断自身穿越虚拟墙时,机器人返回穿越虚拟墙之前所记录的实时坐标处。附图说明图1为本发明一种实施例基于虚拟墙的机器人控制方法的流程图;图2为本发明一种实施例所述的数学模型结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细描述。应当理解,下面所描述的具体实施例仅用于解释本发明,并不用于限定本发明。如图1所示,一种基于虚拟墙的机器人控制方法,该方法包括以下步骤:s1:机器人基于所构建的地图设置虚拟墙;s2:机器人在虚拟墙上建立数学模型;s3:机器人检测自身在所述数学模型上的位置;s4:机器人根据自身的位置变化来判断自身是否穿越虚拟墙。机器人通过在虚拟墙上建立数学模型来判断机器人与虚拟墙的位置关系,并根据机器人在数学模型上的位置变化来判断机器人是否穿越虚拟墙,而位置变化是通过多个实时测量值进行比较获取的,可以有效兼容机器人坐标在设定幅度内跳变,准确率高,稳定性强。该方法的执行主体是机器人的处理器或者控制芯片,为便于描述,直接描述为机器人。所述机器人可以是扫地机器人、洗地机器人、空气净化机器人、物流机器人、除草机器人、商业服务机器人等。首先,机器人基于自身行走时所构建的地图,设置虚拟墙。所构建的地图可以栅格地图、点阵地图、色块地图或者其它类型的地图,所构建的地图可以反映出机器人当前所处的环境情况。设置虚拟墙可以采用不同的方式,比如控制机器人在需要设置虚拟墙的位置行走一遍,记录行走时的坐标位置和方向,把这些坐标位置标示为虚拟障碍单元,这些虚拟障碍单元组成所述虚拟墙。所述虚拟障碍单元是指机器人实际可以正常行走通过,但是根据地图导航行走时,却不能行走通过的栅格单元。或者用户直接在地图的显示终端上操作,通过鼠标或者触控的方式在相应的位置划线,划线的位置所对应的栅格单元,就是标示为虚拟墙的栅格单元。所述栅格单元是构成栅格地图的最小单元格。所述基于机器人所构建的地图,设置虚拟墙,具体包括如下步骤:智能移动终端接收机器人所构建的地图信息,并通过屏幕显示所述地图信息;所述智能移动终端检测到设置虚拟墙的信号,并将屏幕上的触控信号转换成虚拟墙显示在屏幕所示的地图中;所述智能移动终端将设置了虚拟墙的地图信息传输给机器人。本申请方案提供了一种稳定性较高的虚拟墙算法,可以兼容机器人坐标在设定幅度内跳变,有效降低机器人穿墙概率;使机器人穿越虚拟墙后,能够导航回到穿越虚拟墙前的位置。进一步地,步骤s2中,机器人在虚拟墙中建立数学模型包括以下步骤:确定虚拟墙的斜率角度和虚拟墙的中心点的坐标;把虚拟墙以其中心点为参考点平移到坐标系的原点,并旋转所述斜率角度,使虚拟墙置于坐标系的x轴上;以预设坐标将虚拟墙周围的区域划分为安全区域、预警区域和触碰区域。以x轴上的虚拟墙为中线,机器人将预警区域分为上预警区域和下预警区域,所述上预警区域和下预警区域分布在触碰区域的两侧,并包围触碰区域。将虚拟墙与坐标系重合的方式来构建数学模型,便于机器人进行计算。进一步地,步骤s3中,机器人检测自身在所述数学模型上的位置包括以下步骤:机器人确定自身当前位置的坐标,将当前位置坐标进行与虚拟墙相应的平移和旋转,得到基于数学模型的机器人坐标;然后根据机器人坐标来判断机器人位于数学模型中的安全区域、预警区域还是触碰区域,并进行相应的操作。经过简单的移动就可以将机器人的坐标换算为数学模型的坐标,计算简单,实用性高。若机器人判断自身在安全区域,则机器人继续工作并以设定的时间间隔来检测自身所处位置。时间间隔则可以根据预警区域的面积和机器人的速度来进行设置。若机器人判断自身在预警区域,则机器人继续工作并实时检测自身所处位置。若机器人判断自身在触碰区域,则机器人往预警区域移动。当机器人进入到预警区域后,就会进行实时检测,直至进入到安全区域才会变为按时间间隔来进行检测。根据自身状态来决定所要进行的操作,灵活性高。机器人判断自身处于安全区域、上预警区域或下预警区域时,会将自身状态更改为对应的状态,机器人处于触碰区域时,机器人不改变当前自身状态。进一步地,机器人判断自身穿越虚拟墙的步骤包括:机器人检测自身在数学模型上的位置变化,然后根据位置变化判断自身所处区域是否改变,并将自身状态更改为当前所在区域对应的状态,若机器人的自身状态从上预警区域变化为下预警区域,或从下预警区域变化为上预警区域,则判断机器人穿越虚拟墙。通过状态变化来判断自身是否穿越虚拟墙,准确率高。机器人判断自身处于上预警区域或下预警区域时,记录当前在数学模型上的实时坐标,当机器人判断自身穿越虚拟墙时,机器人返回穿越虚拟墙之前所记录的实时坐标处。机器人通过预先记录的坐标,在穿越虚拟墙后返回原来的区域,准确度高。如图2所示,图2为机器人在虚拟墙上构建的数学模型,其中,区域c为安全区域,区域b为上预警区域,区域b’为下预警区域,区域a为触碰区域,虚拟墙l与x轴重合,虚拟墙l的中点也与坐标轴的原点重合,区域a包围虚拟墙l,区域b和区域b’包围区域a,机器人想要进入区域a,先要经过区域b或区域b’,区域a、区域b和区域b’之外的区域则属于区域c。机器人通过预设坐标来划分数学模型的区域,每个区域的面积是根据虚拟墙来进行设置,预设坐标则是根据每个区域的面积来进行相应的设置。机器人在数学模型上的坐标为(x,y),当|x|>ximax∧|y|>yimax时,∧为数学里的且,则机器人判断自身处于区域c中,并将自身状态改为0;当ximin<=x∧x<=ximax∧y>=0∧|x|>xjmax∧|y|>yjmax时,则机器人判断自身处于区域b中,并将自身状态改为1,同时记录机器人在区域b内的实时坐标q(xb,yb);当ximin<=x∧x<=ximax∧y<0∧|x|>xjmax∧|y|>yjmax时,则机器人判断自身处于区域b’中,并将自身状态改为-1,同时记录机器人在区域b’内的实时坐标q’(xb’,yb’);当xjmin<=x∧x<=xjmax∧yjmin<=y∧y<=yjmax时,则机器人判断自身处于区域a中,并不改变自身状态,如果上一状态为1,则机器人在区域a中的状态就为1。机器人位于区域a内,判定为触碰虚拟墙,机器人执行远离虚拟墙行为,如果自身状态为1,则机器人向区域b方向移动。如果自身状态为-1,则机器人向区域b’方向移动。机器人穿越虚拟墙判断规则的状态改变如下表所示:状态2\状态10-110不穿墙不穿墙不穿墙-1不穿墙不穿墙穿墙1不穿墙穿墙不穿墙由表可知,如果机器人上一个状态1是-1下一个状态2如果是1,那就可以判断机器穿墙了。检测到机器人穿墙后,启动机器人导航流程。导航目标点确定规则为:穿墙前机器人状态为-1,导航目标点为q’(xb’,yb’);穿墙前机器人状态为1,导航目标点为q(xb,yb)。显然,上述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,各个实施例之间的技术方案可以相互结合。此外,如果实施例中出现“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等术语,其指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位或以特定的方位构造和操作,因此不能理解为对本发明的限制。如果实施例中出现“第一”、“第二”、“第三”等术语,是为了便于相关特征的区分,不能理解为指示或暗示其相对重要性、次序的先后或者技术特征的数量。本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。这些程序可以存储于计算机可读取存储介质(比如rom、ram、磁碟或者光盘等各种可以存储程序代码的介质)中。该程序在执行时,执行包括上述各方法实施例的步骤。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页12