基于栅格地图的机器人监视宠物的方法及芯片与流程

文档序号:14359194阅读:200来源:国知局

本发明涉及机器人领域,具体涉及一种基于栅格地图的机器人监视宠物的方法及芯片。



背景技术:

目前的宠物机器人,可以通过与宠物身上佩戴的定位装置进行通信,来确定宠物的位置。从而可以追踪宠物并通过摄像头监视宠物的状态。但是,现有机器人监视技术,不能很好的确定监视的位置,比如机器人和宠物之间有障碍物,可能就会影响监视的效果。



技术实现要素:

为解决上述问题,本发明提供了一种基于栅格地图的机器人监视宠物的方法及芯片,可以较好地确定机器人监视宠物的位置,从而实现较好的监视效果。本发明的具体技术方案如下:

一种基于栅格地图的机器人监视宠物的方法,包括如下步骤:

步骤一,基于机器人构建的栅格地图,确定机器人处于所述栅格地图中的当前位置点和对应的栅格单元;

步骤二,基于机器人和宠物身上的无线信号装置进行的无线通信,确定宠物与机器人的相互位置关系,并根据相互位置关系确定宠物的当前位置点和对应的栅格单元;

步骤三,判断机器人所处的栅格单元与宠物所处的栅格单元之间,机器人监视宠物的摄像头的拍摄角度所覆盖的预设范围内的栅格单元是否存在障碍单元;

如果否,则保持机器人的摄像头朝向宠物的拍摄方向,并返回步骤二;

如果是,进入步骤四;

步骤四,确定以宠物所处的栅格单元为中心点的预设区域,根据所述预设区域中的已走过单元与机器人的由近到远的距离关系,逐一把已走过单元作为待定监视单元,判断所述待定监视单元与宠物所在栅格单元之间的直线栅格路径中是否有障碍单元;

如果否,则确定所述待定监视单元为监视单元,并进入步骤五;

如果是,则判断下一个已走过单元是否与机器人的距离最远;

如果否,则返回步骤四;

如果是,则直接确定下一个已走过单元为监视单元,并进入步骤五;

步骤五,控制机器人从当前位置点行走至所述监视单元,对宠物进行监视;

其中,所述障碍单元为机器人检测到障碍物时所对应的栅格单元,所述已走过单元为机器人已行走过的栅格单元。

进一步地,步骤一所述的基于机器人构建的栅格地图,确定机器人处于所述栅格地图中的当前位置点和对应的栅格单元,包括如下步骤:

根据机器人在行走过程中检测到的数据,构建一个基于(x0,y0)为原点的xy轴坐标系的栅格地图;

确定所述栅格地图中的栅格单元的边长为l;

基于机器人自身的定位数据,确定机器人的当前位置点的坐标为(x1,y1),则当前位置点所对应的栅格单元的栅格坐标为(s11,s12),且s11=(x1-x0)/l,s12=(y1-y0)/l,s11和s12都取整数。

进一步地,步骤二所述的基于机器人和宠物身上的无线信号装置进行的无线通信,确定宠物与机器人的相互位置关系,并根据相互位置关系确定宠物的当前位置点和对应的栅格单元,包括如下步骤:

确定机器人机体上的第一uwb定位基站和第二uwb定位基站之间的距离为w;

确定所述第一uwb定位基站的坐标为(x11,y11),所述第二uwb定位基站的坐标为(x12,y12);

基于所述第一uwb定位基站和所述第二uwb定位基站与宠物身上的uwb定位标签的无线通信,确定所述uwb定位标签到所述第一uwb定位基站的第一距离为r1,所述uwb定位标签到所述第二uwb定位基站的第二距离为r2;

确定所述第一uwb定位基站为角顶点的分别指向所述第二uwb定位基站和所述uwb定位标签的线所构成的夹角为第一夹角,且第一夹角为α1,α1=arccos((w²+r2²-r1²)/(2*w*r2));

确定所述第二uwb定位基站为角顶点的分别指向所述第一uwb定位基站和所述uwb定位标签的线所构成的夹角为第二夹角,且第二夹角为α2,α2=arccos((w²+r1²-r2²)/(2*w*r1));

确定所述uwb定位标签的当前位置点的坐标为(xc,yc),且xc=x12+r2*cos(180°-α1-arccos((x12-x11)/w)),yc=y11+r1*cos(180°-α2-arcsin((x12-x11)/w));

确定所述uwb定位标签的当前位置点所对应的栅格单元的栅格坐标为(s21,s22),且s21=(xc-x0)/l,s22=(yc-y0)/l,s21和s22都取整数。

进一步地,所述确定机器人机体上的第一uwb定位基站的坐标为(x11,y11),第二uwb定位基站的坐标为(x12,y12),包括如下步骤:

确定机器人机体的中心点的坐标为机器人的当前位置点的坐标,且坐标为(x1,y1)

确定机器人机体的中心点在所述第一uwb定位基站和所述第二uwb定位基站连线的中点;

确定所述第一uwb定位基站和所述第二uwb定位基站之间的距离为w,则机器人机体的中心点到所述第一uwb定位基站的距离为w/2,机器人机体的中心点到所述第二uwb定位基站的距离为w/2;

确定机器人的陀螺仪检测到的机器人的当前方向为α;

确定机器人机体上的第一uwb定位基站的坐标为(x11,y11),且x11=x1-((w*cosα)/2),y11=y1+((w*sinα)/2);

确定机器人机体上的第二uwb定位基站的坐标为(x12,y12),且x12=x1+((w*cosα)/2),y12=y1-((w*sinα)/2)。

进一步地,所述确定所述uwb定位标签到所述第一uwb定位基站的第一距离为r1,所述uwb定位标签到所述第二uwb定位基站的第二距离为r2,包括如下步骤:

确定电波的传播速度为c;

确定所述第一uwb定位基站向所述uwb定位标签发出测距数据到接收所述uwb定位标签的确认信号之间的时间为t11;

确定所述uwb定位标签接收所述第一uwb定位基站发出的测距数据到发出确认信号之间的时间为t12;

确定所述uwb定位标签向所述第一uwb定位基站发出测距数据到接收所述第一uwb定位基站的确认信号之间的时间为t13;

确定所述第一uwb定位基站接收所述uwb定位标签发出的测距数据到发出确认信号之间的时间为t14;

确定所述uwb定位标签到所述第一uwb定位基站的第一距离为r1,且r1=c*(t11-t12+t13-t14)/4;

确定所述第二uwb定位基站向所述uwb定位标签发出测距数据到接收所述uwb定位标签的确认信号之间的时间为t21;

确定所述uwb定位标签接收所述第二uwb定位基站发出的测距数据到发出确认信号之间的时间为t22;

确定所述uwb定位标签向所述第二uwb定位基站发出测距数据到接收所述第二uwb定位基站的确认信号之间的时间为t23;

确定所述第二uwb定位基站接收所述uwb定位标签发出的测距数据到发出确认信号之间的时间为t24;

确定所述uwb定位标签到所述第二uwb定位基站的第二距离为r2,且r2=c*(t21-t22+t23-t24)/4。

进一步地,步骤三所述的判断机器人所处的栅格单元与宠物所处的栅格单元之间,机器人监视宠物的摄像头的拍摄角度所覆盖的预设范围内的栅格单元是否存在障碍单元,包括如下步骤:

确定机器人监视宠物的摄像头朝向宠物的方向为拍摄方向;

基于所述拍摄方向,确定摄像头的拍摄角度在所述栅格地图中所覆盖的拍摄区域;

确定以摄像头为角顶点向外延伸的第一角边和第二角边所构成的角度范围在所述栅格地图中的覆盖区域所对应的栅格单元,其中,所述覆盖区域小于并位于所述拍摄区域内;

分析所述覆盖区域所对应的栅格单元中是否存在障碍单元。

进一步地,步骤四所述的确定以宠物所处的栅格单元为中心点的预设区域,根据所述预设区域中的已走过单元与机器人的由近到远的距离关系,逐一把已走过单元作为待定监视单元,包括如下步骤:

确定宠物所处的栅格单元的中心为圆心,以预设长度为半径的圆形区域;

确定所述圆形区域中与机器人的距离最接近的已走过单元作为待定监视单元;

如果所述待定监视单元与宠物所在栅格单元之间的直线栅格路径中有障碍单元,且所述圆形区域中与机器人的距离第二接近的已走过单元与机器人的距离不是最远,则确定所述圆形区域中与机器人的距离第二接近的已走过单元作为待定监视单元;

如果所述待定监视单元与宠物所在栅格单元之间的直线栅格路径中有障碍单元,且圆形区域中与机器人的距离第三接近的已走过单元与机器人的距离不是最远,则确定所述圆形区域中与机器人的距离第三接近的已走过单元作为待定监视单元;

依此类推。

进一步地,所述预设长度为1米至2米的范围内任意一值。

进一步地,步骤五所述的控制机器人从当前位置点行走至所述监视单元,对宠物进行监视,包括如下步骤:

以机器人的当前位置点为起点,朝所述监视单元所在方向搜索栅格地图;

确定机器人的当前位置点与所述监视单元的中心点之间,由已走过单元直接连通的栅格路径中,路径长度最短的栅格路径作为导航栅格路径;

确定导航栅格路径中的栅格单元的中心点为导航位置点,将所述导航位置点连接构成导航路径;

控制机器人从当前位置点沿所述导航路径行走至所述监视位置点;

调整机器人方向,使所述机器人的摄像头的拍摄方向对准宠物所处的方向。

一种芯片,用于存储程序,所述程序用于控制机器人执行上述的基于栅格地图的机器人监视宠物的方法。

本发明的有益效果在于:通过宠物身上的无线信号装置与机器人进行无线通信,来确定宠物和机器人的相互位置关系,再判断机器人和宠物对应在栅格地图中所处的栅格单元之间是否存在障碍单元,以此来判断机器人和宠物之间是否有障碍物遮挡。如果没有,则表明机器人的当前位置和拍摄方向可以有效拍摄到宠物,无需改变机器人的当前位置和拍摄方向。如果有,则表明机器人在当前位置拍摄可能会拍到障碍物,拍不到宠物,所以,机器人需要通过判断宠物周围的栅格单元的状态来重新选择监视位置点。在宠物周围的预设区域内选择与机器人的距离由近到远的关系,逐一把已走过单元作为待定监视单元,然后判断所述待定监视单元与宠物所在栅格单元之间的直线栅格路径中是否有障碍单元,即分析从待定监视单元的位置是否可以有效监视宠物,如果没有障碍物遮挡,则确定该待定监视单元作为监视单元,如果有,则分析下一个已走过单元。这种在宠物周围的预设区域内,与机器人距离由近到远的逐个分析已走过单元的方式,可以找到机器人能够最快到达并能够有效监视宠物的位置点,从而提高机器人监视宠物的效率。此外,如果预设区域内的与机器人的距离最远的已走过单元之外的其它已走过单元与宠物之间都有障碍物遮挡,则不管与机器人的距离最远的已走过单元与宠物之间是否有障碍物,都将其作为监视单元,因为一般情况下,障碍物的分布是有特点的,即障碍物一般会集中出现在某个区域或者某几个区域,只要在一个区域中检测到一个障碍单元,则在该区域还会存在其它的障碍单元,如果机器人在当前位置检测到障碍物,则在一定范围内,离当前位置越远的区域,出现障碍单元的概率会越小,所以,通过把预设区域内的与机器人的距离最远的已走过单元作为监视单元,可以使机器人处于相对空旷的区域,在宠物位置发生变化时,可以更方便地调整监视位置或者监视角度,而不容易再受相邻障碍物的干扰,提高了监视效率。

综上所述,本发明通过这种结合栅格地图对宠物进行监视的方式,可以控制机器人找到较好的监视位置,从而避免容易被障碍物遮挡而影响监视效果的问题,提高了监视宠物的效果。

附图说明

图1为本发明所述基于栅格地图的机器人监视宠物的方法的流程示意图。

图2为本发明所述的位置点的坐标转换成栅格单元的坐标的分析示意图。

图3为本发明所述的两个uwb定位基站与uwb定位标签的相互位置分析示意图。

图4为本发明所述的根据机器人中心点坐标计算两个uwb定位基站的坐标的分析示意图。

图5是测量uwb定位标签到第一uwb定位基站的距离的分析示意图。

图6是确定机器人拍摄的栅格区域的分析示意图。

图7是确定监视单元的分析示意图。

图8是确定机器人从当前位置点到监视位置点的导航路径的分析示意图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步说明:

本发明所述的机器人是智能家用电器的一种,能凭借一定的人工智能,自动在某些场合自动进行行走。机器人的机体上设有各种传感器,可检测行走距离、行走角度、机体状态和障碍物等,如碰到墙壁或其他障碍物,会自行转弯,并依不同的设定,而走不同的路线,有规划地行走,还会根据行走过程中检测到的各种数据构建栅格地图。本发明所述的移动机器人包括如下结构:带有驱动轮的能够自主行走的机器人机体,机体上设有人机交互界面,机体上设有障碍检测单元。机体中部上端面设有摄像头,当然摄像头也可以设置在机体前部的上端面或者其它位置,设置在机体前部或者其它位置时,计算相关参数时需要相对于设置在中部的摄像头对应调整一下相关数值即可。机体内部设置有惯性传感器,所述惯性传感器包括加速度计和陀螺仪等,驱动轮上设有用于检测驱动轮的行走距离的里程计(一般是码盘),还设有能够处理相关传感器的参数,并能够输出控制信号到执行部件的控制模块。

本发明所述的基于栅格地图的机器人监视宠物的方法,如图1所示,包括如下步骤:步骤一,基于机器人构建的栅格地图,确定机器人处于所述栅格地图中的当前位置点和对应的栅格单元;步骤二,基于机器人和宠物身上的无线信号装置进行的无线通信,确定宠物与机器人的相互位置关系,并根据相互位置关系确定宠物的当前位置点和对应的栅格单元;步骤三,判断机器人所处的栅格单元与宠物所处的栅格单元之间,机器人监视宠物的摄像头的拍摄角度所覆盖的预设范围内的栅格单元是否存在障碍单元;如果否,则保持机器人的摄像头朝向宠物的拍摄方向,并返回步骤二;如果是,进入步骤四;步骤四,确定以宠物所处的栅格单元为中心点的预设区域,根据所述预设区域中的已走过单元与机器人的由近到远的距离关系,逐一把已走过单元作为待定监视单元,判断所述待定监视单元与宠物所在栅格单元之间的直线栅格路径中是否有障碍单元;如果否,则确定所述待定监视单元为监视单元,并进入步骤五;如果是,则判断下一个已走过单元是否与机器人的距离最远;如果否,则返回步骤四;如果是,则直接确定下一个已走过单元为监视单元,并进入步骤五;步骤五,控制机器人从当前位置点行走至所述监视单元,对宠物进行监视。其中,所述栅格地图是机器人在行走过程中,依据自身的各种传感器检测到的数据所构建的以栅格单元为基本单元的地图。所述栅格单元是具有设定长度和宽度的虚拟方格,可以设置为正方形,也可以设置为长方形。优选的,本发明所述的栅格单元是边长为0.2米的正方形格子。所述无线信号装置可以采用zigbee通信模块、超声波模块、射频通信模块、uwb(超宽带)模块或wifi模块等,具体根据产品的不同需求进行相应选择。所述预设范围也可以根据产品设计的不同需求进行相应设置,优选的,设置为摄像头的拍摄角度所覆盖的全部范围的三分之一。所述预设区域也可以根据产品设计的不同需求进行相应设置,优选的,可以设置为圆形区域、方形区域或者规则的多边形区域等,面积大小一般设置在2至6平米范围内。

机器人在行走过程中,会将已行走过的栅格单元标示为已走过单元,将检测到障碍物时所对应的栅格单元标示为障碍单元,将检测到悬崖时所对应的栅格单元标示为悬崖单元,等等,并根据所标示的信息,更新栅格地图。本发明所述的方法,通过宠物身上的无线信号装置与机器人进行无线通信,来确定宠物和机器人的相互位置关系,再判断机器人和宠物对应在栅格地图中所处的栅格单元之间是否存在障碍单元,以此来判断机器人和宠物之间是否有障碍物遮挡。如果没有,则表明机器人的当前位置和拍摄方向可以有效拍摄到宠物,无需改变机器人的当前位置和拍摄方向,如果宠物跑动,机器人会转动机体,保持摄像头始终朝向宠物的方向,在此过程中,机器人可以不用行走到其它位置,除非出现了障碍物遮挡的情况。如果有,则表明机器人在当前位置拍摄可能会拍到障碍物,拍不到宠物,所以,机器人需要通过判断宠物周围的栅格单元的状态来重新选择监视位置点。在宠物周围的预设区域内选择与机器人的距离由近到远的关系,逐一把已走过单元作为待定监视单元,然后判断所述待定监视单元与宠物所在栅格单元之间的直线栅格路径中是否有障碍单元,即分析从待定监视单元的位置是否可以有效监视宠物,如果没有障碍物遮挡,则确定该待定监视单元作为监视单元,如果有,则分析下一个已走过单元。这种在宠物周围的预设区域内,与机器人距离由近到远的逐个分析已走过单元的方式,可以找到机器人能够最快到达并能够有效监视宠物的位置点,从而提高机器人监视宠物的效率。此外,如果预设区域内的与机器人的距离最远的已走过单元之外的其它已走过单元与宠物之间都有障碍物遮挡,则不管与机器人的距离最远的已走过单元与宠物之间是否有障碍物,都将其作为监视单元,因为一般情况下,障碍物的分布是有特点的,即障碍物一般会集中出现在某个区域或者某几个区域,只要在一个区域中检测到一个障碍单元,则在该区域还会存在其它的障碍单元,如果机器人在当前位置检测到障碍物,则在一定范围内,离当前位置越远的区域,出现障碍单元的概率会越小,所以,通过把预设区域内的与机器人的距离最远的已走过单元作为监视单元,可以使机器人处于相对空旷的区域,在宠物位置发生变化时,可以更方便地调整监视位置或者监视角度,而不容易再受相邻障碍物的干扰,提高了监视效率。综上所述,本发明所述的方法通过这种结合栅格地图对宠物进行监视的方式,可以控制机器人找到较好的监视位置,从而避免容易被障碍物遮挡而影响监视效果的问题,提高了监视宠物的效果。

优选的,步骤一所述的基于机器人构建的栅格地图,确定机器人处于所述栅格地图中的当前位置点和对应的栅格单元,包括如下步骤:根据机器人在行走过程中检测到的数据,构建一个基于(x0,y0)为原点的xy轴坐标系的栅格地图;确定所述栅格地图中的栅格单元的边长为l;基于机器人自身的定位数据,确定机器人的当前位置点的坐标为(x1,y1),则当前位置点所对应的栅格单元的栅格坐标为(s11,s12),且s11=(x1-x0)/l,s12=(y1-y0)/l,s11和s12都取整数。由于机器人在行走过程中,会基于自身的里程计和陀螺仪等传感器检测到的数据,记录已行走过的路径,并实时确定自身所处的位置和方向(即定位数据)。而栅格地图是以栅格单元为基本单位构成的,每个栅格单元中都包含有很多个位置点,机器人的行走是按位置点的形式进行的,即从当前位置点移动到相邻的下一个位置点。所以,在确定机器人当前所处的栅格单元的坐标时,需要将当前位置点的坐标转换成栅格单元的坐标,如图2所示,每个小方格表示一个栅格单元,边长为l=0.2米,坐标原点p的坐标为(x0=0,y0=0),p点右上角的栅格单元的栅格坐标设置为(0,0)。当机器人位于d位置点时,检测到其坐标为(0.5,0,3),则计算得出机器人所处的栅格单元的栅格坐标为(s11=((0.5-0)/0.2),s12=((0.3-0)/0.2)),即(s11=2.5,s12=1.5),取整后得(s11=2,s12=1),所以,机器人在d位置点时,所对应的栅格单元的栅格坐标为(2,1)。本实施例所述的方法在同一个坐标系中,通过当前位置点与坐标原点的位置关系和栅格单元的边长,可以准确地计算出当前位置点所对应的栅格单元的栅格坐标,从而为后续的数据处理提供可靠数据,提高数据分析的准确性。

优选的,步骤二所述的基于机器人和宠物身上的无线信号装置进行的无线通信,确定宠物与机器人的相互位置关系,并根据相互位置关系确定宠物的当前位置点和对应的栅格单元,包括如下步骤:确定机器人机体上的第一uwb定位基站和第二uwb定位基站之间的距离为w;确定所述第一uwb定位基站的坐标为(x11,y11),所述第二uwb定位基站的坐标为(x12,y12);基于所述第一uwb定位基站和所述第二uwb定位基站与宠物身上的uwb定位标签的无线通信,确定所述uwb定位标签到所述第一uwb定位基站的第一距离为r1,所述uwb定位标签到所述第二uwb定位基站的第二距离为r2;确定所述第一uwb定位基站为角顶点的分别指向所述第二uwb定位基站和所述uwb定位标签的线所构成的夹角为第一夹角,且第一夹角为α1,α1=arccos((w²+r2²-r1²)/(2*w*r2));确定所述第二uwb定位基站为角顶点的分别指向所述第一uwb定位基站和所述uwb定位标签的线所构成的夹角为第二夹角,且第二夹角为α2,α2=arccos((w²+r1²-r2²)/(2*w*r1));确定所述uwb定位标签的当前位置点的坐标为(xc,yc),且xc=x12+r2*cos(180°-α1-arccos((x12-x11)/w)),yc=y11+r1*cos(180°-α2-arcsin((x12-x11)/w));确定所述uwb定位标签的当前位置点所对应的栅格单元的栅格坐标为(s21,s22),且s21=(xc-x0)/l,s22=(yc-y0)/l,s21和s22都取整数。其中,uwb(ultrawideband)是一种超宽带无载波通信技术,uwb定位标签和uwb定位基站就是采用uwb通信技术的通信装置。如图3所示,a为第一uwb定位基站,b为第二uwb定位基站,c为uwb定位标签。第一uwb定位基站和第二uwb定位基站都装配在机器人的机体上,uwb定位标签佩戴在宠物身上。由于第一uwb定位基站和第二uwb定位基站之间的距离是在机器人设计生产时已经确定好的,所以,两者之间的距离是已知的,即ab=w,并且相关数据已经记录入系统中,其中,w的数值大小可以根据具体的产品设计进行相应设置,w的数值应该小于机器人机体的直径。此外,测得第一uwb定位基站和uwb定位标签的距离ac=r1,第二uwb定位基站和uwb定位标签的距离bc=r2,由三角形的三边长度可以求得第一夹角(∠abc)的大小,即α1=arccos((w²+r2²-r1²)/(2*w*r2)),同理求得第二夹角(∠cab)的大小,即α2=arccos((w²+r1²-r2²)/(2*w*r1))。由于机器人可以通过里程计和陀螺仪等传感器的检测数据来确定自己的坐标位置(即机器人的中心点的坐标),所以,机器人机体上相对于中心点的位置固定的两个uwb定位基站的坐标值也是可以确定的,即第一uwb定位基站的坐标为(x11,y11),第二uwb定位基站的坐标为(x12,y12),具体计算方式在后续实施例中会说明。如图可知,想要确定c点的x轴坐标,需要知道c11或者c21的长度,而c11=r1*sina2,c21=r2*cosb2,∠a2=180°-α2-∠a1,∠b2=180°-α1-∠b1,∠a1=arcsin((x12-x11)/w),∠b1=arccos((x12-x11)/w),前面又已求得α1和α2的角度,所以求得c11=r1*sin(180°-α2-arcsin((x12-x11)/w)),c21=r2*cos(180°-α1-arcsin((y11-y12)/w)),则宠物c点的x轴坐标xc=x12+c21=x12+r2*cos(180°-α1-arccos((x12-x11)/w)),或者xc=x11+c11=x11+r1*sin(180°-α2-arcsin((x12-x11)/w))。同理,想要确定c点的y轴坐标,需要知道c12或者c22的长度,而c12=r1*cosa2,c22=r2*sinb2,∠a2=180°-α2-∠a1,∠b2=180°-α1-∠b1,∠a1=arcsin((x12-x11)/w),∠b1=arccos((x12-x11)/w),前面又已求得α1和α2的角度,所以求得c12=r1*cos(180°-α2-arcsin((x12-x11)/w)),c22=r2*sin(180°-α1-arccos((x12-x11)/w))。则宠物c点的y轴坐标yc=y11+c12=y11+r1*cos(180°-α2-arcsin((x12-x11)/w)),或者yc=y12+c22=y12+r2*sin(180°-α1-arccos((x12-x11)/w))。在确定了uwb定位标签的当前位置点的坐标为(xc,yc)后,再通过上述实施例所述的方式,计算uwb定位标签的当前位置点所对应的栅格单元的栅格坐标(s21,s22),即s21=(xc-x0)/l,s22=(yc-y0)/l,s21和s22都取整数。本实施例所述的方法适用于针对宠物佩戴的uwb定位标签的高度与机器人的uwb定位基站的高度一致(即三个通信装置处于同一水平面)或者相差不大的情况。当机器人和宠物的位置变化时,则把检测到的变化参数带入即可快速得出宠物的位置点和对应的栅格坐标,数据处理速度快,输出结果准确。此外,如果uwb定位标签的高度与uwb定位基站的高度差值较大,则需要在机器人机身上设置第三uwb定位基站,通过引入高度参数,来确定uwb定位标签的三维坐标,进而确定对应的栅格坐标,具体实施方式与本实施例原理相同,在此不再赘述。这种通过uwb通信技术进行宠物定位的方式,相对于现有的其它定位方式,定位范围更大,精度更高,稳定性更好。

优选的,所述确定机器人机体上的第一uwb定位基站的坐标为(x11,y11),第二uwb定位基站的坐标为(x12,y12),包括如下步骤:确定机器人机体的中心点的坐标为机器人的当前位置点的坐标,且坐标为(x1,y1);确定机器人机体的中心点在所述第一uwb定位基站和所述第二uwb定位基站连线的中点;确定所述第一uwb定位基站和所述第二uwb定位基站之间的距离为w,则机器人机体的中心点到所述第一uwb定位基站的距离为w/2,机器人机体的中心点到所述第二uwb定位基站的距离为w/2;确定机器人的陀螺仪检测到的机器人的当前方向为α;确定机器人机体上的第一uwb定位基站的坐标为(x11,y11),且x11=x1-((w*cosα)/2),y11=y1+((w*sinα)/2);确定机器人机体上的第二uwb定位基站的坐标为(x12,y12),且x12=x1+((w*cosα)/2),y12=y1-((w*sinα)/2)。如图4所示,第一uwb定位基站a和第二uwb定位基站b分别设置在机器人机身的两端,ab之间的连线刚经过机器人的中心点g,并且ag=bg=w/2。由于g点的坐标为(x1,y1),且机器人当前方向的角度为α,图中,穿过g点且带箭头的直线表示机器人的当前方向,该直线与ab线呈直角相交,所以,可以得出∠a=∠b=∠α。要求得第一uwb定位基站的x轴坐标x11,需要先求出x11与x1之间的距离,即x1-x11=ag*cosa=(w*cosα)/2,则x11=x1-((w*cosα)/2)。要求得第一uwb定位基站的y轴坐标y11,需要先求出y11与y1之间的距离,即y11-y1=ag*sina=(w*sinα)/2,则y11=y1+((w*sinα)/2)。同理,要求得第二uwb定位基站的x轴坐标x12,需要先求出x12与x1之间的距离,即x12-x1=bg*cosb=w*cosα/2,则x12=x1+((w*cosα)/2);y1与y12之间的距离为y1-y12=gb*sinb=w*sinα/2,则y12=y1-((w*sinα)/2)。本实施例所述的确定第一uwb定位基站和第二uwb定位基站的坐标的方法,通过限定基站在机器人机体上相对于中心点相互对称的位置关系,可以简化确定两个基站的坐标算法,从而提高系统的数据处理速度,快速而准确地得出两个基站的坐标值,更快地为后续的其它数据处理提供参考依据。同样的,如果设置三个基站,则把第三个基站设置在ab的垂直平分线上,可以简化算法,提高系统的数据处理速度,其具体实施方式与本实施例原理相同,在此不再赘述。

优选的,所述确定所述uwb定位标签到所述第一uwb定位基站的第一距离为r1,所述uwb定位标签到所述第二uwb定位基站的第二距离为r2,包括如下步骤:确定电波的传播速度为c;确定所述第一uwb定位基站向所述uwb定位标签发出测距数据到接收所述uwb定位标签的确认信号之间的时间为t11;确定所述uwb定位标签接收所述第一uwb定位基站发出的测距数据到发出确认信号之间的时间为t12;确定所述uwb定位标签向所述第一uwb定位基站发出测距数据到接收所述第一uwb定位基站的确认信号之间的时间为t13;确定所述第一uwb定位基站接收所述uwb定位标签发出的测距数据到发出确认信号之间的时间为t14;确定所述uwb定位标签到所述第一uwb定位基站的第一距离为r1,且r1=c*(t11-t12+t13-t14)/4;确定所述第二uwb定位基站向所述uwb定位标签发出测距数据到接收所述uwb定位标签的确认信号之间的时间为t21;确定所述uwb定位标签接收所述第二uwb定位基站发出的测距数据到发出确认信号之间的时间为t22;确定所述uwb定位标签向所述第二uwb定位基站发出测距数据到接收所述第二uwb定位基站的确认信号之间的时间为t23;确定所述第二uwb定位基站接收所述uwb定位标签发出的测距数据到发出确认信号之间的时间为t24;确定所述uwb定位标签到所述第二uwb定位基站的第二距离为r2,且r2=c*(t21-t22+t23-t24)/4。如图5所示,第一uwb定位基站a在t1时刻向uwb定位标签c发出测距数据,uwb定位标签c在t2时刻接收到测距数据并在t3时刻发出确认信号,第一uwb定位基站a在t4时刻接收到该确认信号。此时可以得出第一uwb定位基站a从发出测距数据到接收确认信号所需的时间是t1=t4-t1,uwb定位标签c从接收到测距数据到发出确认信号所需的时间是t2=t3-t2,由此可得,第一uwb定位基站a和uwb定位标签c之间进行一次来回通信,信号传输的时间为t1-t2=t4-t1-t3+t2。同样的,uwb定位标签c在t5时刻向第一uwb定位基站a发出测距数据,第一uwb定位基站a在t6时刻接收到测距数据并在t7时刻发出确认信号,uwb定位标签c在t8时刻接收到该确认信号。此时可以得出uwb定位标签c从发出测距数据到接收确认信号所需的时间是t3=t8-t5,第一uwb定位基站a从接收到测距数据到发出确认信号所需的时间是t4=t7-t6,由此可得,uwb定位标签c和第一uwb定位基站a之间进行一次来回通信,信号传输的时间为t3-t4=t8-t5-t7+t6。为了保证数据的准确性,取(t1-t2+t3-t4)的四分之一作为信号在uwb定位标签c和第一uwb定位基站a之间传输一次所用的时间。由于数据信号的传输速度等于电波传输的速度c,所以,通过距离=速度*时间,可以得出uwb定位标签到第一uwb定位基站的第一距离r1=c*(t11-t12+t13-t14)/4。同理,得出uwb定位标签到第二uwb定位基站的第二距离为r2,且r2=c*(t21-t22+t23-t24)/4,具体实施方式与本实施例相似,在此不再赘述。本实施例所述的测量基站到定位标签之间的距离的方法,通过取数据信号传输时间的平均值,可以得到更准确的传输时间,从而得到更精确的距离测量结果,为后续的确定宠物的位置提供了更可靠的参考依据,保证了更好的监视宠物的效果。

优选的,步骤三所述的判断机器人所处的栅格单元与宠物所处的栅格单元之间,机器人监视宠物的摄像头的拍摄角度所覆盖的预设范围内的栅格单元是否存在障碍单元,包括如下步骤:确定机器人监视宠物的摄像头朝向宠物的方向为拍摄方向;基于所述拍摄方向,确定摄像头的拍摄角度在所述栅格地图中所覆盖的拍摄区域;确定以摄像头为角顶点向外延伸的第一角边和第二角边所构成的角度范围在所述栅格地图中的覆盖区域所对应的栅格单元,分析所述覆盖区域所对应的栅格单元中是否存在障碍单元。其中,所述覆盖区域小于并位于所述拍摄区域内。如图6所示,图中的一个小方格表示一个栅格单元,标示有x的方格表示该方格为障碍单元,没有标示或者标示其它字母的方格表示该方格为已走过单元。g点为机器人所在的位置点,即摄像头的位置,c点为宠物所在的位置点。gz为拍摄方向,gb1和gb2两条线所构成的角度为拍摄角度,gz为所述拍摄角度的角平分线。gu1为第一角边,gu2为第二角边,分析gu1和gu2两条线构成的角度内的栅格单元中是否存在障碍单元,即判断∠u1gu2范围内的方格中是否有标示x的方格,如果有,则表示存在障碍单元,如果没有则表示不存在障碍单元。图中所述的∠u1gu2范围内没有障碍单元,机器人可以正常拍摄到宠物。假设在∠u1gu2范围内有x方格,则表明机器人的摄像头会被障碍物遮挡或者拍摄到的宠物离障碍物太近而影响拍摄效果,需要换另一个角度拍摄宠物。本实施例所述方法通过结合栅格地图,判断两个位置点之间是否有障碍单元,以此确定机器人和宠物之间是否有障碍物遮挡,这种方式充分利用了机器人已有的数据,判断过程简单实用,且效果显著。

优选的,步骤四所述的确定以宠物所处的栅格单元为中心点的预设区域,根据所述预设区域中的已走过单元与机器人的由近到远的距离关系,逐一把已走过单元作为待定监视单元,包括如下步骤:确定宠物所处的栅格单元的中心为圆心,以预设长度为半径的圆形区域;确定所述圆形区域中与机器人的距离最接近的已走过单元作为待定监视单元;如果所述待定监视单元与宠物所在栅格单元之间的直线栅格路径中有障碍单元,且所述圆形区域中与机器人的距离第二接近的已走过单元与机器人的距离不是最远,则确定所述圆形区域中与机器人的距离第二接近的已走过单元作为待定监视单元;如果所述待定监视单元与宠物所在栅格单元之间的直线栅格路径中有障碍单元,且圆形区域中与机器人的距离第三接近的已走过单元与机器人的距离不是最远,则确定所述圆形区域中与机器人的距离第三接近的已走过单元作为待定监视单元;依此类推。如图7所示,图中的一个小方格表示一个栅格单元,标示有x的方格表示该方格为障碍单元,没有标示或者标示其它字母的方格表示该方格为已走过单元。g点为机器人所在的位置点,即摄像头的位置,c点为宠物所在的位置点。gz为拍摄方向,gu1为第一角边,gu2为第二角边。由于在∠u1gu2范围内有障碍单元(即标示有x的方格),机器人的拍摄可能会被障碍物遮挡,所以,机器人需要调整拍摄位置。首先,以c点所在的栅格单元的中心为圆心,以预算长度为半径画一个圆,该圆所圈定的范围即为所述预设区域。其中,所述预设长度可以根据具体的设计需求进行相应设置,优选的,可设置为1米至2米的范围内任意一值,本实施例设置为1.5米,需要注意的是,图7所示的圆形区域仅仅是一个示意图,不能以图中栅格单元的长度来测量圆形的半径或者直径,此外,如果圆形区域仅圈定了一个栅格单元的一部分,则该栅格单元也在圆形区域的范围内。图中,栅格单元s1是圆形区域内离机器人的距离最近的已走过单元,先把其作为待定监视单元,由于s1与c之间的直线栅格路径(即连接s1与c的直线所穿过的栅格单元构成的路径)中有标示x的障碍单元,所以s1不能确定为监视单元。接着,分析与机器人的距离第二接近的已走过单元s2,由于s2不是圆形区域中与机器人距离最远的已走过单元,所以,将与机器人的距离第二接近的已走过单元s2作为待定监视单元,s2与c之间的直线栅格路径中没有标示x的障碍单元,即不存在阻挡机器人拍摄宠物的障碍物,确定s2为监视单元,并将机器人导航至已走过单元s2,对宠物进行监视。假设s2与c的直线栅格路径中也有障碍单元,则继续分析与机器人的距离第三接近的已走过单元s3,方法与上述相同,不再赘述。当除了s10之外的圆形区域中的所有已走过单元与机器人之间的直线栅格路径中都有障碍单元,则表明宠物处于障碍物包围的位置(比如沙发上,茶几上或者床上),此时在预设区域中就不需要考虑已走过单元和宠物之间的障碍单元,需要考虑的是与宠物位置较远且远离机器人当前位置的位置点,所以,可以直接将与机器人的距离最远的已走过单元s10作为监视单元,并将机器人导航至该监视单元对宠物进行监视。这种在宠物周围的预设区域内,与机器人距离由近到远的逐个分析已走过单元的方式,可以找到机器人能够最快到达并能够有效监视宠物的位置点,从而提高机器人监视宠物的效率。

优选的,步骤五所述的控制机器人从当前位置点行走至所述监视单元,对宠物进行监视,包括如下步骤:以机器人的当前位置点为起点,朝所述监视单元所在方向搜索栅格地图;确定机器人的当前位置点与所述监视单元的中心点之间,由已走过单元直接连通的栅格路径中,路径长度最短的栅格路径作为导航栅格路径;确定导航栅格路径中的栅格单元的中心点为导航位置点,将所述导航位置点连接构成导航路径;控制机器人从当前位置点沿所述导航路径行走至所述监视位置点;调整机器人方向,使所述机器人的摄像头的拍摄方向对准宠物所处的方向。如图8所示,机器人要从g点行走至监视单元s2,需要先搜索行走路径,图中,标示有x的方格表示该方格为障碍单元,没有标示或者标示其它字母的方格表示该方格为已走过单元。首先,以机器人的当前位置点g点为起点,朝所述监视单元所在方向搜索栅格地图,其中,朝监视单元所在方向搜索并不是仅限于朝向监视单元的直线方向搜索,而是以该方向作为一种总的搜索趋势,从g点开始,逐个栅格单元地向四周远离g点的方向搜索,并从四周向监视单元收缩方向逐个栅格单元的搜索。然后搜索到两条栅格路径,第一条从监视单元的左下方连接至监视单元,第二条从监视单元的右上方连接至监视单元,两条栅格路径以障碍单元进行分隔。由于第一条栅格路径的长度小于第二条栅格路径,所以将第一条栅格路径作为导航栅格路径。将第一条栅格路径中的栅格单元的中心点作为导航位置点,连接所述导航位置点构成导航路径,即l1所标示的虚线(l2标示的虚线为第二条栅格路径的路线)。接着,控制机器人从g点开始,沿l1路线行走至监视单元s2的中心点(即监视位置点)。最后,原地转动机器人机身,使机器人的摄像头的拍摄方向朝向c点的方向(即宠物所在的方向)。本实施例所述方法通过朝监视单元所在方向搜索栅格地图,可以快速确定到达监视单元的栅格路径有哪些。再通过分析各路径长度来确定最短的路径作为导航路径,可以缩短机器人到达监视单元的时间,最后再将栅格单元的中心点作为导航位置点,由各导航位置点连接所构成的导航路径是到达监视位置点的最佳导航路径,机器人按该导航路径行走,不仅可以缩短到达目的地的时间,还能降低行走过程容易碰到障碍物的风险,提高机器人到达监视位置点的效率。优选的,本实施例的图中所示的栅格单元的边长等于一个机器人机身的直径。

本发明所述的芯片,用于存储程序,所述程序用于控制机器人执行上述的基于栅格地图的机器人监视宠物的方法。通过在机器人身上安装所述芯片,使得机器人可以通过宠物身上的无线信号装置与机器人进行无线通信,来确定宠物和机器人的相互位置关系,再判断机器人和宠物对应在栅格地图中所处的栅格单元之间是否存在障碍单元,以此来判断机器人和宠物之间是否有障碍物遮挡。如果没有,则表明机器人的当前位置和拍摄方向可以有效拍摄到宠物,无需改变机器人的当前位置和拍摄方向,如果宠物跑动,机器人会转动机体,保持摄像头始终朝向宠物的方向,在此过程中,机器人可以不用行走到其它位置,除非出现了障碍物遮挡的情况。如果有,则表明机器人在当前位置拍摄可能会拍到障碍物,拍不到宠物,所以,机器人需要通过判断宠物周围的栅格单元的状态来重新选择监视位置点。在宠物周围的预设区域内选择与机器人的距离由近到远的关系,逐一把已走过单元作为待定监视单元,然后判断所述待定监视单元与宠物所在栅格单元之间的直线栅格路径中是否有障碍单元,即分析从待定监视单元的位置是否可以有效监视宠物,如果没有障碍物遮挡,则确定该待定监视单元作为监视单元,如果有,则分析下一个已走过单元。这种在宠物周围的预设区域内,与机器人距离由近到远的逐个分析已走过单元的方式,可以找到机器人能够最快到达并能够有效监视宠物的位置点,从而提高机器人监视宠物的效率。此外,如果预设区域内的与机器人的距离最远的已走过单元之外的其它已走过单元与宠物之间都有障碍物遮挡,则不管与机器人的距离最远的已走过单元与宠物之间是否有障碍物,都将其作为监视单元,因为一般情况下,障碍物的分布是有特点的,即障碍物一般会集中出现在某个区域或者某几个区域,只要在一个区域中检测到一个障碍单元,则在该区域还会存在其它的障碍单元,如果机器人在当前位置检测到障碍物,则在一定范围内,离当前位置越远的区域,出现障碍单元的概率会越小,所以,通过把预设区域内的与机器人的距离最远的已走过单元作为监视单元,可以使机器人处于相对空旷的区域,在宠物位置发生变化时,可以更方便地调整监视位置或者监视角度,而不容易再受相邻障碍物的干扰,提高了监视效率。综上所述,本发明所述的芯片通过这种结合栅格地图对宠物进行监视的方式,可以控制机器人找到较好的监视位置,从而避免容易被障碍物遮挡而影响监视效果的问题,提高了监视宠物的效果。

以上实施例仅为充分公开而非限制本发明,凡基于本发明的创作主旨、未经创造性劳动的等效技术特征的替换,应当视为本申请揭露的范围。

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