本发明属于视觉定位技术领域,具体涉及一种机器人的平面空间定位方法。
背景技术:
在室内环境(setting)内准确地确定用户或移动设备的定位提出了各种挑战。例如,全球定位系统(gps)技术在封闭式建筑内不能良好运作,在那里移动设备与gps卫星的通信可能受到包围结构的阻碍。此外,可用消费者设备在其通信能力、感测能力(例如移动设备话筒)、其内部时钟的准确性、可用功率等方面是有限的。因此,在不对可用移动设备的硬件进行重要修改的情况下,在封闭式建筑内(或其中gps定位由于某种原因而不可用)获取与移动用户有关的高度准确的实时位置信息则是困难的。特别是在近些年室内的扫地机器人,工业机器人的大量使用,机器人比较容易通过数据传输活动活动平面空间的地图,但如何有效的在地图中进行定位成为制约其自动化使用的关键问题。
专利号:cn201210377080.3,名称为《基于声音的定位》,公开一种基于声音定位方法,其基本原理是:使用接收设备从多个声音信号源捕捉声音信号(例如超声波),选择满足可靠性条件的声音信号用于确定接收设备相对于对应声音信号源的初始定位,使用对所选声音信号的多点定位来确定接收设备的初始定位,以及当个别声音信号的可靠性在接收设备和声音信号源之间存在动态改变的环境干扰、多径和移动的情况下变化时,更新接收设备的当前定位。但是,该方法的弊端是声音信号的可靠性差,当接收设备和声音信号源之间存在外部环境干扰时,信号捕捉的精准度就很难满足要求。
专利号:cn201410024204.9,名称为《一种基于环境特征物体的室内定位方法》,该方法的基本原理是:建立场所的参考坐标系、建立环境特征物体信息系统、依次选择三个参考物体并同时测量待定位目标分别指向三个参考物体之间的相对转角和识别参考物体获得坐标,最后通过计算获得待定位目标位置的坐标。该方法虽然定位可靠,但是计算数据量低。
专利号:cn201310482905.2,名称为《一种wifi终端的定位方法和定位装置》,该方法的基本原理是:检测所述wifi终端发出的无线信号;在检测不到无线信号的情况下,则通过将所述wifi终端与通信装置建立通信连接,并以所述通信装置触发所述wifi终端发出无线信号;根据新检测到的无线信号对所述wifi终端进行定位,信号衰减的非线性及稳定性差,定位可靠性低。
技术实现要素:
为了解决背景技术中的问题,本发明提供了一种采用角度条码器的方式,对放置在平面空间具有数据处理功能的机器人通过角度信息进行定位,该定位方法不仅定位速度快,数据可靠并且不会受到外部环境干扰。
本发明的具体技术方案是:
本发明提供了一种机器人的平面空间定位方法,包括以下步骤:
1)设置角度条码器;所述角度条码器为一个1/4圆柱,所述1/4圆柱上部设有角度条码器的编号,下部设有间隔相同的黑白条纹;
2)建立图像与角度的对照表,并将图像与角度的对照表上传至待定位机器人;所述机器人内置单片机,外置摄像头,该机器人具备数据计算能力、空间地图的存储能力以及拍照功能;
固定摄像头,以0°为起始角度,90°为终止角度,每间隔α°分别开始旋转角度条码器,并且每旋转α°,摄像头拍摄一张角度条码器的图像,从而获得多张角度条码器在不同角度时的图像,建立图像和角度的对照表,并将图像和角度的对照表固化在机器人中;
3)准备至少两个角度条码器,并将其分别放置在平面空间的任意位置;其中,两个角度条码器的坐标分别为(x1,y1)以及(x2,y2);将两个角度条码器的坐标信息存储在机器人中;
4)机器人对放置在平面空间中的至少两个角度条码器进行拍照;
5)机器人通过拍摄所得两个角度条码器的当前图像,通过在图像和角度的对照表中分别搜寻与两张当前图像匹配的图像,从而获取两个角度条码器分别与机器人的角度β1°和β2°;
6)机器人通过三角函数关系计算其在平面空间的位置坐标(x3,y3);
x3={y1-y2+ctgβ2°×x2+ctgβ1°×x1}/{ctgβ1°+ctgβ2°};
y3={x2-x1-tgβ1°×y1-tgβ2°×y2}/{-tgβ2°-tgβ1°}。
另外,为了提高本发明对机器人定位的实时性,还采用了另外一种方式,其具体包括以下步骤:
1)设置角度条码器;所述角度条码器为一个1/4圆柱,所述1/4圆柱上部设有角度条码器的编号,下部设有间隔相同的黑白条纹;
2)利用待定位机器人在不同角度下对角度条码器进行拍照,获取不同角度β下角度条码器图像中角度编码器的中心条码宽度z中和最窄条码宽度zmin;并且二者作比得出比值k,建立坐标系,坐标系的横轴为β,纵轴为k,将所有获得的k进行拟合得到角度编码器β-k拟合曲线;
3)准备两个角度条码器,并将其分别放置在平面空间的任意位置;其中,两个角度条码器的坐标分别为(x1,y1)以及(x2,y2);将两个角度条码器的坐标信息存储在机器人中;
4)通过机器人拍摄到的两个角度条码器的当前图像m1和m2,分别获取中心条码宽度z中当前,最窄条码宽度为zmin当前,计算得到k当前,查询角度编码器β-k拟合曲线得到此时和两个角度条码器的相对待定位机器人的角度β1°和β2°;
5)机器人通过三角函数关系计算其在空间所在位置坐标(x3,y3);
x3={y1-y2+ctgβ2°×x2+ctgβ1°×x1}/{ctgβ1°+ctgβ2°};
y3={x2-x1-tgβ1°×y1-tgβ2°×y2}/{-tgβ2°-tgβ1°}。
其中,上述两种方案中x3和y3的具体计算方法均如下:
其中y3的具体计算方法是:
tgβ1°=(x3-x1)/(y1-y3)(1);
tgβ2°=(x2-x3)/(y2-y3)(2);
由此可得:tgβ1°×y1-tgβ1°×y3=x3-x1(3);
tgβ2°×y2-tgβ2°×y3=x2-x3(4);
(3)和(4)相加得到:
tgβ1°×y1-tgβ1°×y3+tgβ2°×y2-tgβ2°×y3=x2-x1(5);
y3×{-tgβ2°-tgβ1°}=x2-x1-tgβ1°×y1-tgβ2°×y2(6);
y3={x2-x1-tgβ1°×y1-tgβ2°×y2}/{-tgβ2°-tgβ1°}(7);
x3的具体计算方法是:
ctgβ1°=(y1-y3)/(x3-x1)(8);
ctgβ2°=(y2-y3)/(x2-x3)(9);
由此可得:ctgβ1°×x3-ctgβ1°×x1=y1-y3(10);
ctgβ2°×x2-ctgβ2°×x3=y2-y3(11);
(10)和(11)相减得到:
ctgβ1°×x3-ctgβ1°×x1-ctgβ2°×x2+ctgβ2°×x3=y1-y2(12);
x3×{ctgβ1°+ctgβ2°}=y1-y2+ctgβ2°×x2+ctgβ1°×x1(13);
x3={y1-y2+ctgβ2°×x2+ctgβ1°×x1}/{ctgβ1°+ctgβ2°}(14)。
本发明的优点在于:
1、本发明通过在封闭空间的设置角度条码器,机器人通过摄像头对角度编码器图像在各个不同角度进行识别,数个编码交叉计算可以有效的进行定位,相较于现有的定位方法,本发明的方法数据的获取可靠性更高,通过可靠的角度信息进行分析,定位速度快,可以得到较为理想的定位效果。
2、本发明的第一种采用图像和角度的对照表的定位方式,定位速度快,数据处理过程简单。
3、本发明的第二种采用角度编码器β-k拟合曲线获取角度条码器角度的定位方式,数据的精度更好,从而使得待定位机器人的定位精度更高。
附图说明
图1为角度条形码的结构示意图。
图2为角度条形码0°时的图像。
图3为角度条形码45°时的图像。
图4为角度条形码90°时的图像。
图5为角度条形码45°时获得中心条纹和最窄条纹时的原理图。
图6为角度编码器β-k拟合曲线图。
图7为本发明具体实施的示意图。
具体实施方式
为了解决现有定位方法存在的不足,本发明提供了一种基于角度条码器的机器人定位方法。
一、角度条码器
角度条码器的结构见附图1,编码器为一个1/4圆柱体结构,上部是角度条码器编号,下部设置有间隔相同的黑白条纹。每套空间定位装置依据所需空间的负责程度配置至少两个角度条码器,角度条码器为塑料成型制作,成本低,配置多个编码器不会导致成本的上升。
角度条码器主要通过在不同角度下由于视角的差异导致的竖线不均匀性原理工作,详细见图2-4,可以看到角度条码器分别在0°、45°、90°时所对应的不同条纹图像,此时各个不同角度对应的条纹图像中的条纹间距具有明显的变化。
二、待定位机器人
本发明所采用的机器人内置单片机或其他具有数据存储和处理能力的芯片,可以实现坐标的计算及空间地图的存储,机器人上安装可360°旋转的高清摄像头。
基于上面对角度条码器和机器人的介绍,现根据实际的情况对本发明的具体定位方法进行描述:
第一种定位方法:
1)建立图像与角度的对照表,并将图像与角度的对照表上传至待定位机器人;固定摄像头,以0°为起始角度,90°为终止角度,每间隔α°分别开始旋转角度条码器,并且每旋转α°,摄像头拍摄一张角度条码器的图像,从而获得多张角度条码器在不同角度时的图像,建立图像和角度的对照表,并将图像和角度的对照表固化在机器人中;
2)如图7所示,以一个已知长为x,宽为y的小型空间为例,在平面空间的两个角放置2个角度条码器,此时两个角度条码器的坐标值为(x1,y1)以及(x2,y2);将两个角度条码器的坐标信息存储在机器人中;
3)机器人对放置在平面空间中的两个角度条码器(角度条码器1和角度条码器2)进行拍照;
4)机器人通过拍摄所得两个角度条码器的图像,通过对比图像与角度图像的对照表,从而获取两个角度条码器分别与机器人的角度β1°和β2°;
5)机器人通过三角函数关系计算其在空间所在位置坐标(x3,y3),;
x3={y1-y2+ctgβ2°×x2+ctgβ1°×x1}/{ctgβ1°+ctgβ2°};
y3={x2-x1-tgβ1°×y1-tgβ2°×y2}/{-tgβ2°-tgβ1°}。
由于第一种方式是在进行定位前已经将角度条码器各个角度所对应的图像全部进行了汇总,制作了一张或者多张图像与角度对照表,并将其存储在机器人上为了后期计算机器人的坐标值,但是,这种方式的弊端在于,对照表中角度值的间隔α是一定的,若实际过程中角度值产生了变化,那么最终的定位结果的精度就难以保证,因此,为了提高本发明对机器人定位的实时性,本发明还提供了另外一种方式,既能保证定位速度,同时定位的精度也很稿,其具体包括以下步骤:
1)设置角度条码器;所述角度条码器为一个1/4圆柱,所述1/4圆柱上部设有角度条码器的编号,下部设有间隔相同的黑白条纹;
2)利用待定位机器人在不同角度下对角度条码器进行拍照,获取不同角度β下角度条码器图像中角度编码器的中心条码宽度z中和最窄条码宽度zmin;并且二者作比得出比值k,建立坐标系,坐标系的横轴为β,纵轴为k,将所有获得的k进行拟合得到角度编码器β-k拟合曲线;
具体拟合过程是:如图5-6所示,当β=45°可以得到z中=4.331、zmin=3.338、k=1.3017;
当β=30°,可以得到z中=3.558、zmin=0.439、k=8.105;
当β=90°,可以得到z中=3.081、zmin=0.0.380、k=11.424;
通过三个典型角度45°、30°以及90°对应的k值点绘制在坐标系中,然后将三点连线,形成角度编码器β-k拟合曲线。
3)如图7所示,以一个已知长为x,宽为y的小型空间为例,在平面空间的两个角放置2个角度条码器,此时两个角度条码器的坐标值为(x1,y1)以及(x2,y2);将两个角度条码器的坐标信息存储在机器人中;
4)通过机器人拍摄到的两个角度条码器的当前图像m1和m2,分别获取中心条码宽度z中当前,最窄条码宽度为zmin当前,计算得到k当前,查询角度编码器β-k拟合曲线得到此时和两个角度条码器的相对待定位机器人的角度β1°和β2°;
5)机器人通过三角函数关系计算其在空间所在位置坐标(x3,y3);
x3={y1-y2+ctgβ2°×x2+ctgβ1°×x1}/{ctgβ1°+ctgβ2°};
y3={x2-x1-tgβ1°×y1-tgβ2°×y2}/{-tgβ2°-tgβ1°}。
其中,上述两种方案中x3和y3的具体计算方法均如下:
其中y3的具体计算方法是:
tgβ1°=(x3-x1)/(y1-y3)(1);
tgβ2°=(x2-x3)/(y2-y3)(2);
由此可得:tgβ1°×y1-tgβ1°×y3=x3-x1(3);
tgβ2°×y2-tgβ2°×y3=x2-x3(4);
(3)和(4)相加得到:
tgβ1°×y1-tgβ1°×y3+tgβ2°×y2-tgβ2°×y3=x2-x1(5);
y3×{-tgβ2°-tgβ1°}=x2-x1-tgβ1°×y1-tgβ2°×y2(6);
y3={x2-x1-tgβ1°×y1-tgβ2°×y2}/{-tgβ2°-tgβ1°}(7);
x3的具体计算方法是:
ctgβ1°=(y1-y3)/(x3-x1)(8);
ctgβ2°=(y2-y3)/(x2-x3)(9);
由此可得:ctgβ1°×x3-ctgβ1°×x1=y1-y3(10);
ctgβ2°×x2-ctgβ2°×x3=y2-y3(11);
(10)和(11)相减得到:
ctgβ1°×x3-ctgβ1°×x1-ctgβ2°×x2+ctgβ2°×x3=y1-y2(12);
x3×{ctgβ1°+ctgβ2°}=y1-y2+ctgβ2°×x2+ctgβ1°×x1(13);
x3={y1-y2+ctgβ2°×x2+ctgβ1°×x1}/{ctgβ1°+ctgβ2°}(14)。