基于栅格地图的机器人曲线虚拟墙实现方法与流程

文档序号:26100800发布日期:2021-07-30 18:11阅读:84来源:国知局
基于栅格地图的机器人曲线虚拟墙实现方法与流程

本发明涉及机器人技术领域,具体涉及一种基于栅格地图的机器人曲线虚拟墙实现方法。



背景技术:

现有的扫地机器人,为了避免其误入一些不需要清扫的区域,一般会在该区域的入口处设置一个虚拟墙发射器,该虚拟墙发射器会发生红外信号,当机器人检测到该红外信号时,就停止继续向前,从而阻隔机器人进入该区域。这种方式需要提供额外的虚拟墙发射器,使得硬件成本增加。目前,有的厂家采用设置虚拟墙的方式,在机器人所构建的地图中所对应的不需要清扫的区域入口处划设一条虚拟线,机器人再依照虚拟线所对应的地图中的坐标位置,设定相应的位置为虚拟墙,机器人移动到该虚拟墙对应的坐标位置时,就停止前进或者调头转向,从而实现阻隔的效果。这种方式相对虚拟墙发射器,节省了硬件成本,但是目前通过应用软件算法实现虚拟墙的方法仅仅支持直线虚拟墙,局限性较大。



技术实现要素:

为解决上述问题,本发明提供了基于栅格地图的机器人曲线虚拟墙实现方法,本申请方案提供了一种曲线虚拟墙数学模型,该曲线虚拟墙形态支持连续函数曲线,可以根据现实环境来设置曲线形态的虚拟墙,提高应用软件算法实现虚拟墙的方法的使用范围,使用范围广。本发明的具体技术方案如下:

一种基于栅格地图的机器人曲线虚拟墙实现方法,该方法包括以下步骤:s1:机器人基于所构建的栅格地图设置曲线虚拟墙;s2:机器人在曲线虚拟墙上建立数学模型;s3:机器人将当前位置的栅格坐标换算为数学模型的模型坐标;s4:机器人根据模型坐标确定自身与虚拟墙的状态。机器人可以根据实际环境来设置曲线虚拟墙,使虚拟墙的设置变的更加灵活;根据曲线虚拟墙来设置相应的数学模型,该模型可以支持连续函数曲线,实现性和功能性高。

进一步地,步骤s1中,机器人基于所构建的栅格地图设置曲线虚拟墙包括以下步骤:智能移动终端接收机器人所构建的地图信息,并通过屏幕显示所述地图信息;所述智能移动终端检测到设置虚拟墙的信号,并将屏幕上的触控信号转换成虚拟墙显示在屏幕所示的地图中;所述智能移动终端将设置了虚拟墙的地图信息传输给机器人。通过智能移动终端来显示虚拟墙信息,使设置的虚拟墙的操作更加简便。

进一步地,步骤s2中,机器人建立数学模型包括以下步骤:机器人将曲线虚拟墙转换为栅格地图的散点曲线;以散点曲线的中心点为参考点平移到坐标系的原点,并旋转散点曲线,使散点曲线上的点分布在x轴的两侧;将散点曲线沿y轴正向和反向平移预设值来划分散点曲线两侧的区域。将虚拟墙变换散点曲线的方式来进行数学模型的设置,便于机器人进行计算。

进一步地,机器人在散点曲线两侧划分区域包括以下步骤:散点曲线沿y轴正向和反向平移第一预设值个基本单元,第一次平移后的散点曲线组成触碰区域,且虚拟墙位于该触碰区域的中心;散点曲线沿y轴正向和反向平移第二预设值个基本单元,第二次平移后的散点曲线分别与同侧的第一次平移后的散点曲线组成预警区域,所以预警区域分布在触碰区域的两侧;将预警区域和触碰区域之外的区域设置为安全区域;其中,第一次平移后的散点曲线包括第一正向散点曲线和第一反向散点曲线,所述第二次平移后的散点曲线包括第二正向散点曲线和第二反向散点曲线,第二预设值大于第一预设值。通过简单的正向平移和反向平移就可以构建相应的区域,运算数据较少,提高机器人的运算速度。

进一步地,步骤s3中,机器人将当前位置的栅格坐标换算为数学模型的模型坐标包括以下步骤:机器人确定自身当前位置的栅格坐标,将当前位置的栅格坐标进行与虚拟墙相应的平移和旋转,得到基于数学模型的模型坐标。通过简单的平移就可以将机器人的栅格坐标换算为相应的数学模型坐标,操作简便。

进一步地,步骤s4中,机器人根据模型坐标确定自身与虚拟墙的状态包括以下步骤:机器人将模型坐标与平移后的散点曲线的相应散点的坐标进行比较,通过比较结果来确定自身处于数学模型上的安全区域、预警区域还是触碰区域,若机器人处于安全区域,则机器人判断自身与虚拟墙的状态为安全状态;若机器人处于预警区域,则机器人判断自身与虚拟墙的状态为接近状态;若机器人处于触碰区域,则机器人判断自身与虚拟墙的状态为触碰状态;其中,平移后的散点曲线包括第一正向散点曲线、第一反向散点曲线、第二正向散点曲线和第二反向散点曲线。对机器人处于数学模型的位置来判断机器人与虚拟墙的状态,便于机器人针对自身与虚拟墙的状态设置相应的动作。

进一步地,机器人将模型坐标与平移后的散点曲线的相应散点的坐标进行比较包括以下步骤:过模型坐标做垂直于x轴的直线;若直线与平移后的散点曲线没有相交,则判断机器人处于安全区域;若直线与平移后的散点曲线相交,则比较模型坐标和直线与平移后的散点曲线的相交点的y轴坐标;若模型坐标的y轴坐标大于直线与第二正向散点曲线的交点的y轴坐标,或小于直线与第二反向散点曲线的交点的y轴坐标,则判断机器人处于安全区域;若模型坐标的y轴坐标大于直线与第一正向散点曲线的交点的y轴坐标且小于直线与第二正向散点曲线的交点的y轴坐标,或小于直线与第一反向散点曲线的交点的y轴坐标且大于直线与第二反向散点曲线的交点的y轴坐标,则判断机器人处于预警区域;若模型坐标的y轴坐标小于直线与第一正向散点曲线的交点的y轴坐标且大于直线与第一正向散点曲线的交点的y轴坐标,则判断机器人处于预警区域。

进一步地,机器人确定直线与平移后的散点曲线的坐标包括以下步骤:确定数学模型中虚拟墙上与模型坐标具有相同x轴坐标的散点的坐标;直线与第一正向散点曲线的交点的y轴坐标为,该散点的y轴坐标加上第一预设值;直线与第一反向散点曲线的交点的y轴坐标为,该散点的y轴坐标减去第一预设值;直线与第二正向散点曲线的交点的y轴坐标为,该散点的y轴坐标加上第二预设值;直线与第二反向散点曲线的交点的y轴坐标为,该散点的y轴坐标减去第二预设值。通过简单的加减换算就可以得到相应的平移后的散点曲线用于比较的散点的y轴坐标,计算数据少,提高机器人运算速度。

进一步地,若机器人判断自身处于触碰区域时,则往最近的预警区域移动。

进一步地,若机器人判断自身处于预警区域时,机器人继续工作并实时检测自身所处位置。机器人根据实际情况来进行相应的操作,提高机器人的灵活性。

附图说明

图1为本发明一种实施例基于栅格地图的机器人曲线虚拟墙实现方法的流程图;

图2为本发明一种实施例所述的数学模型结构示意图。

具体实施方式

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

如图1所示,一种基于栅格地图的机器人曲线虚拟墙实现方法,该方法包括以下步骤:s1:机器人基于所构建的栅格地图设置曲线虚拟墙;s2:机器人在曲线虚拟墙上建立数学模型;s3:机器人将当前位置的栅格坐标换算为数学模型的模型坐标;s4:机器人根据模型坐标确定自身与虚拟墙的状态。机器人可以根据实际环境来设置曲线虚拟墙,使虚拟墙的设置变的更加灵活;根据曲线虚拟墙来设置相应的数学模型,该模型可以支持连续函数曲线,实现性和功能性高。该方法的执行主体是机器人的处理器或者控制芯片,为便于描述,直接描述为机器人。所述机器人可以是扫地机器人、洗地机器人、空气净化机器人、物流机器人、除草机器人、商业服务机器人等。首先,机器人基于自身行走时所构建的地图,设置虚拟墙。所构建的地图可以栅格地图、点阵地图、色块地图或者其它类型的地图,所构建的地图可以反映出机器人当前所处的环境情况。本发明各实施例都是以栅格地图为例进行说明。设置虚拟墙可以采用不同的方式,比如控制机器人在需要设置虚拟墙的位置行走一遍,记录行走时的坐标位置和方向,把这些坐标位置标示为虚拟障碍单元,这些虚拟障碍单元组成所述虚拟墙。所述虚拟障碍单元是指机器人实际可以正常行走通过,但是根据地图导航行走时,却不能行走通过的栅格单元。或者用户直接在地图的显示终端上操作,通过鼠标或者触控的方式在相应的位置划线,划线的位置所对应的栅格单元,就是标示为虚拟墙的栅格单元。所述栅格单元是构成栅格地图的最小单元格,机器人基于所构建的栅格地图设置曲线虚拟墙包括以下步骤:智能移动终端接收机器人所构建的地图信息,并通过屏幕显示所述地图信息;所述智能移动终端检测到设置虚拟墙的信号,并将屏幕上的触控信号转换成虚拟墙显示在屏幕所示的地图中;所述智能移动终端将设置了虚拟墙的地图信息传输给机器人。通过智能移动终端来显示虚拟墙信息,使设置的虚拟墙的操作更加简便。

进一步地,步骤s2中,机器人建立数学模型包括以下步骤:机器人将曲线虚拟墙转换为栅格地图的散点曲线;以散点曲线的中心点为参考点平移到坐标系的原点,并旋转散点曲线,使散点曲线上的点分布在x轴的两侧;将散点曲线沿y轴正向和反向平移预设值来划分散点曲线两侧的区域。将虚拟墙变换散点曲线的方式来进行数学模型的设置,便于机器人进行计算。机器人在散点曲线两侧划分区域包括以下步骤:散点曲线沿y轴正向和反向平移第一预设值个基本单元,第一次平移后的散点曲线组成触碰区域,且虚拟墙位于该触碰区域的中心;散点曲线沿y轴正向和反向平移第二预设值个基本单元,第二次平移后的散点曲线分别与同侧的第一次平移后的散点曲线组成预警区域,所以预警区域分布在触碰区域的两侧;将预警区域和触碰区域之外的区域设置为安全区域;其中,第一次平移后的散点曲线包括第一正向散点曲线和第一反向散点曲线,所述第二次平移后的散点曲线包括第二正向散点曲线和第二反向散点曲线,第二预设值大于第一预设值。通过简单的正向平移和反向平移就可以构建相应的区域,运算数据较少,提高机器人的运算速度。步骤s3中,机器人将当前位置的栅格坐标换算为数学模型的模型坐标包括以下步骤:机器人确定自身当前位置的栅格坐标,将当前位置的栅格坐标进行与虚拟墙相应的平移和旋转,得到基于数学模型的模型坐标。通过简单的平移就可以将机器人的栅格坐标换算为相应的数学模型坐标,操作简便。

进一步地,步骤s4中,机器人根据模型坐标确定自身与虚拟墙的状态包括以下步骤:机器人将模型坐标与平移后的散点曲线的相应散点的坐标进行比较,通过比较结果来确定自身处于数学模型上的安全区域、预警区域还是触碰区域,若机器人处于安全区域,则机器人判断自身与虚拟墙的状态为安全状态;若机器人处于预警区域,则机器人判断自身与虚拟墙的状态为接近状态;若机器人处于触碰区域,则机器人判断自身与虚拟墙的状态为触碰状态;其中,平移后的散点曲线包括第一正向散点曲线、第一反向散点曲线、第二正向散点曲线和第二反向散点曲线。对机器人处于数学模型的位置来判断机器人与虚拟墙的状态,便于机器人针对自身与虚拟墙的状态设置相应的动作。机器人将模型坐标与平移后的散点曲线的相应散点的坐标进行比较包括以下步骤:过模型坐标做垂直于x轴的直线;若直线与平移后的散点曲线没有相交,则判断机器人处于安全区域;若直线与平移后的散点曲线相交,则比较模型坐标和直线与平移后的散点曲线的相交点的y轴坐标;若模型坐标的y轴坐标大于直线与第二正向散点曲线的交点的y轴坐标,或小于直线与第二反向散点曲线的交点的y轴坐标,则判断机器人处于安全区域;若模型坐标的y轴坐标大于直线与第一正向散点曲线的交点的y轴坐标且小于直线与第二正向散点曲线的交点的y轴坐标,或小于直线与第一反向散点曲线的交点的y轴坐标且大于直线与第二反向散点曲线的交点的y轴坐标,则判断机器人处于预警区域;若模型坐标的y轴坐标小于直线与第一正向散点曲线的交点的y轴坐标且大于直线与第一正向散点曲线的交点的y轴坐标,则判断机器人处于预警区域。机器人确定直线与平移后的散点曲线的坐标包括以下步骤:确定数学模型中虚拟墙上与模型坐标具有相同x轴坐标的散点的坐标;直线与第一正向散点曲线的交点的y轴坐标为,该散点的y轴坐标加上第一预设值;直线与第一反向散点曲线的交点的y轴坐标为,该散点的y轴坐标减去第一预设值;直线与第二正向散点曲线的交点的y轴坐标为,该散点的y轴坐标加上第二预设值;直线与第二反向散点曲线的交点的y轴坐标为,该散点的y轴坐标减去第二预设值。通过简单的加减换算就可以得到相应的平移后的散点曲线用于比较的散点的y轴坐标,计算数据少,提高机器人运算速度。若机器人判断自身处于触碰区域时,则往最近的预警区域移动。若机器人判断自身处于预警区域时,机器人继续工作并实时检测自身所处位置。机器人根据实际情况来进行相应的操作,提高机器人的灵活性。

如图2所示,图2为机器人在曲线虚拟墙上构建的数学模型,其中,l为曲线虚拟墙转换的栅格地图的散点曲线,i为l沿y轴正向平移m个基本单元后的第一正向散点曲线,i’为l沿y轴反向平移m个基本单元后的第一反向散点曲线,u为l沿y轴正向平移n个基本单元后的第二正向散点曲线,u’为l沿y轴反向平移n个基本单元后的第二反向散点曲线,n>m,u和i围成的区域2与u’和i’围成的区域2’均为预警区域,i和i’围成的区域1则为触碰区域。在判断机器人自身所处的位置时,将机器人的当前位置设置为点g(x,y),在曲线虚拟墙相对坐标系内,过当前点g做垂直于x轴的直线q,如果直线q与u、i、i’和u’无交点,则当前点g不在任何区域内,则判断机器人在安全区域。如果直线q与u、i、i’和u’相交,直线q分别与散点曲线u、i、i’和u’相交于a、b、c、d点,则判断情况如下:y>ya或y<yd,机器不在任何区域,判断机器人在安全区域;y>yb∧y<ya,机器人在区域2中,或y>yd∧y<yc,机器人在区域2’中,判断机器人在预警区域;y>yc∧y<yb,机器人在区域1中,机器人在触碰区域。机器人在不同的区域时,自身与虚拟墙的状态也可以用数字表示,比如,机器人在区域2,机器人状态为1;机器人在区域2’,机器人状态为-1;机器人不在区域1、2和2’,机器人状态为2;机器人在区域1,机器人状态保持不变,则机器人从区域2进入区域1,机器人状态为1,机器人从区域2’进入区域1,机器人状态为-1。当机器人进入区域1后,判定为触发虚拟墙,如果机器人触发虚拟墙时,状态为1则机器人规避方向为区域2;如果机器人触发虚拟墙时,状态为-1则机器人规避方向为区域2’。如果机器人的状态从1变到-1或-1变到1,则可以判断机器人穿越虚拟墙墙,机器人可以通过在区域2或区域2’中进行计算的点g返回。

显然,上述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,各个实施例之间的技术方案可以相互结合。此外,如果实施例中出现“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等术语,其指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位或以特定的方位构造和操作,因此不能理解为对本发明的限制。如果实施例中出现“第一”、“第二”、“第三”等术语,是为了便于相关特征的区分,不能理解为指示或暗示其相对重要性、次序的先后或者技术特征的数量。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。这些程序可以存储于计算机可读取存储介质(比如rom、ram、磁碟或者光盘等各种可以存储程序代码的介质)中。该程序在执行时,执行包括上述各方法实施例的步骤。

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

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