一种基于改进二维码的AGV定位及导航方法

文档序号:24730996发布日期:2021-04-20 13:46阅读:101来源:国知局
一种基于改进二维码的AGV定位及导航方法
一种基于改进二维码的agv定位及导航方法
技术领域
1.本发明涉及工业机器人控制领域,尤其涉及一种基于改进二维码的agv定位及导航方法。


背景技术:

2.agv现在通用的导航方法有电磁引导、光条纹引导、磁带引导、惯性导航、超声定位引导、激光反射定位引导、激光扫描定位引导、视觉引导、rfid复合定位引导、gps导航。在不同的应用场合需要不同的引导方式以满足工业的需求。


技术实现要素:

3.针对解决现有技术中存在的问题,本发明旨在提供一种基于新改进二维码的agv导航及定位方法。
4.为实现上述技术问题,本发明的技术方案如下:
5.一种基于改进二维码的agv定位及导航方法,其特征在于,包括如下步骤:
6.步骤1)对二维码进行改进,在二维码的四周加上三角形标志用于确定二维码的大体位置,并将二维码放到仓库顶部且到地面距离固定不变;
7.步骤2)通过agv的相机识别三角形标志,确定二维码的大体位置,根据三角形标志移动车体使得整个二维码进入到相机镜头的内部;
8.步骤3)通过agv的相机识别二维码中所有的轮廓,由于二维码高度固定,根据面积大小删除不符合标准的轮廓,根据二维码的层级关系再次进行筛选,获取二维码的三个位置探测图形;
9.步骤4)根据二维码的探测图形移动车体让相机对准二维码的中心;
10.步骤5)识别二维码信息,获取车体在仓库内部坐标信息。
11.所述的一种基于改进二维码的agv定位及导航方法,其特征在于,步骤1)中二维码的具体改进方法是在二维码的四周加上顶点朝向二维码的小三角形标志。
12.所述的一种基于改进二维码的agv定位及导航方法,其特征在于,步骤2)的具体方法步骤如下:
13.2.1)对二维码的图像进行预处理,将图像转成灰度图像并且二值化;
14.2.2)通过边缘检测找到图像中的所有轮廓并计算轮廓面积;
15.2.3)绘制轮廓的外接矩形并计算出轮廓外接矩形的面积;
16.2.4)用该轮廓面积与外接矩形轮廓面积作比,比值等于1/2,则认为找到三角形;
17.2.5)对三角形轮廓进行霍夫变换找到顶点坐标,然后利用点到直线的距离找到正对着二维码的点;
18.2.6)根据三角形顶点移动车体使得整个二维码进入到agv的相机镜头内。
19.所述的一种基于改进二维码的agv定位及导航方法,其特征在于,所述步骤3)具体步骤如下:
20.3.1)检测轮廓边界的像素:
21.为了在一幅图像f的(x,y)位置处寻找边缘的强度和方向,所选择的工具就是梯度,梯度用

f来表示,并用向量来定义:
[0022][0023]
该向量指出了f在位置(x,y)处的最大变化率的方向;
[0024]
向量

f的大小(长度)表示为m(x,y),即
[0025][0026]
梯度向量的方向由下列对于x轴度量的角度给出:
[0027][0028]
任一点(x,y)处一个边缘的方向与该点处梯度向量的方向α(x,y)正交,通过该方法可以根据像素间的差异检测出轮廓边界的像素;其中,g
x
、g
y
、m(x,y)都是与原图像大小相同的图像;是x和y在f中的所有像素位置上变化产生的;α(x,y)是与由g
y
除以g
x
的阵列创建的尺寸相同的图像;
[0029]
3.2)将边缘像素合成轮廓:
[0030]
对输入的图像使用光栅扫描法进行扫描,当扫描某个像素点(i,j)的灰度值f
ij
≠0时执行下面的步骤;其中光栅扫描是指从左往右,从上往下,先扫描完一行,再移至下一行起始位置继续扫描,
[0031]
3.2.1)从下列情况选一种:
[0032]
i)如果f
i,j
=1并且f
i,j
‑1=0,则(i,j)是外边界开始点,nbd+=1,(i2,j2)

(i,j

1);其中f
i,j
是指像素点(i,j)的灰度值;nbd+=1是指nbd=nbd+1,编号nbd的值加1;nbd是指从边界开始点(i,j)以边界跟踪算法可以得到一条边界,为每条新找到的边界赋予一个新的唯一的编号,即nbd表示当前跟踪的边界的编号;(i,j)表示图片中第i行第j列的像素点;(i2,j2)为了方便区分不同像素点而起的编号;(i2,j2)

(i,j

1)是指将(i,j

1)的坐标值传给(i2,j2);
[0033]
ii)如果f
ij
≥1并且f
i,j+1
=0,则(i,j)是孔边界开始点,nbd+=1,(i2,j2)

(i,j+1);如果f
ij
>1,则lnbd

f
ij
;其中lnbd是指在光栅扫描过程中,保存上一个的边界的编号,记为lnbd;
[0034]
iii)其它情况到第(3.2.4)步;
[0035]
3.2.2)根据上一个边界和当前边界的类型,得到当前边界的父边界;
[0036]
3.2.3)从边界开始点(i,j)开始按如下步骤进行边界跟踪;
[0037]
a)以(i,j)为中心,(i2,j2)为起始点,按顺时针方向查找(i,j)的4(8)邻域是否存在非0像素点,令(i1,j1)是顺时针方向的第一个非0像素点;否则令,转到(3.2.4);其中4(8)邻域中4邻域是指坐标(x,y)处的像素p由4个水平和垂直的相邻像素,其坐标为(x+1,y)(x

1,y)(x,y+1)(x,y

1),这组像素称为p的4邻域;4邻域与对角坐标点(x+1,y+1)(x+1,y

1)(x

1,y+1)(x

1,y

1)共同构成8邻域。
[0038]
b)(i2,j2)

(i1,j1),(i3,j3)

(i,j)
[0039]
c)以(i3,j3)为中心,按逆时针方向,(i2,j2)的下一个点为起始点查找(i3,j3)的4(8)邻域是否存在非0像素点,令(i4,j4)是逆时针方向的第一个非0像素点;
[0040]
d)如果(i3,j3+1)是(c)中已经检查过的限速点且是0像素点,则f
i3,j3
←‑
nbd;如果(i3,j3+1)不是(c)中已经检查过的0像素点,并且,则f
i3,j3

nbd,其它情况,不改变;
[0041]
e)如果(i4,j4)=(i,j)且(i3,j3)=(i1,j1)(回到边界开始点),则转到(3.2.4);否则令(i2,j2)

(i3,j3),(i3,j3)

(i4,j4)转到(c);
[0042]
3.3.4)如果f
ij
≠1,则lnbd

|f
ij
|,从点(i,j+1)继续光栅扫描,当扫描到图片的右下角顶点是结束;
[0043]
3.3)对提取到的轮廓进行筛选:
[0044]
3.3.1)面积筛选,二维码到镜头的垂直距离不变,三个位置探测图形的外轮廓大小面积会在一定范围之内,把不在面积范围之内的轮廓删除掉;
[0045]
3.3.2)轮廓层级筛选,因为二维码中的位置探测图形的层级为三层,因此把大于等于三层等级的轮廓留下,如果留下的轮廓数量少于三个,把三层改为两层,不符合要求的删除;
[0046]
3.4)对获取的二维码中的位置探测图形进行位置判断并进行编号。
[0047]
4.根据权利要求1所述的一种基于改进二维码的agv定位及导航方法,其特征在于,步骤4)的具体方法步骤如下:
[0048]
4.1)找到位置探测图行然后得到三个位置探测图形的中心a1,a2,a3的中心坐标分别为(x1,y1),(x2,y2),(x3,y3);并将二维码左上角的定位点定义为第1点,右上角的定位点定义为第2点,左下角的定位点定义为第3点;计算a1,a2两点的距离d1:
[0049][0050]
同理计算出a1,a3两点的距离d2;a2,a3两点的距离d3;
[0051]
4.2)比较d1,d2,d3的大小,最大的就是斜边,假设斜边为d1,剩余的点a3就是二维码的左上角的点;
[0052]
4.2.1)当x2

x1≠0时计算斜边的斜率:
[0053][0054]
f=0时,斜边是水平状态,y3>y1并且y3>y2,此时x1<x2则a1为第3点,a2为第2点;反之a1为第2点,a2为第3点;y3<y1并且y3<y2时,此时x1<x2则a1为第2点,a2为第3点;反之a1为第3点,a2为第2点;
[0055]
f>0时,根据顶点坐标计算出斜边直线方程为ax+by+c=0,将a1带入到直线方程小于0时,此时x1<x2则a1为第3点,a2为第2点;反之a1为第2点,a2为第3点;
[0056]
将a1带入直线方程大于0时,此时x1<x2则a1为第2点,a2为第3点;反之a1为第3点,a2为第2点;
[0057]
f<0时,根据顶点坐标计算出斜边直线方程为ax+by+c=0,将a1带入到直线方程大
于0时,此时x1<x2则a1为第3点,a2为第2点;反之a1为第2点,a2为第3点;
[0058]
将a1带入直线方程小于0时,此时x1<x2则a1为第2点,a2为第3点;反之a1为第3点,a2为第2点;
[0059]
通过以上方法即可计算出二维码的方向;
[0060]
4.2.2)当x2

x1=0时:
[0061]
此时最长的边处于竖直状态,只需要比较点的x坐标即可;
[0062]
4.3)根据二维码的方向以及中心坐标点就可以使得agv相机中心与二维码相机中心重合,方向对着二维码前方。
[0063]
本发明的有益效果:通过对二维码进行改进使得agv能够更快的行驶到二维码中心,通过改进二维码的定位方法,可以提高二维码的定位速度,通过二维码内部信息来提供agv坐标,降低了agv定位成本,提高了效率。
附图说明
[0064]
图1为本发明的控制流程图;
[0065]
图2为本发明二维码基本构成图;
[0066]
图3为本发明改进的二维码的图。
具体实施方式
[0067]
下面结合说明书附图,对本发明作进一步详细的说明。
[0068]
一种基于改进二维码的agv定位及导航方法,包含以下步骤:
[0069]
步骤1)对二维码进行改进,在二维码的四周加上三角形标志用于确定二维码的大体位置,并将二维码放到仓库顶部且到地面距离固定不变;其中二维码的具体改进方法如下:在二维码的四周加上顶点朝向二维码的小三角形标志。
[0070]
步骤2)通过agv的相机识别三角形标志,确定二维码的大体位置,根据三角形标志移动车体使得整个二维码进入到相机镜头的内部;
[0071]
2.1)对图像进行预处理,将图像转成灰度图像并且二值化;
[0072]
2.2)通过边缘检测找到图像中的所有轮廓并计算轮廓面积;
[0073]
2.3)绘制轮廓的外接矩形并计算出轮廓外接矩形的面积;
[0074]
2.4)用该轮廓面积与外接矩形轮廓面积作比,面积比约等于1/2,则认为找到三角形;
[0075]
2.5)对三角形轮廓进行霍夫变换找到顶点坐标,然后利用点到直线的距离找到正对着二维码的点;
[0076]
2.6)根据三角形顶点移动车体使得整个二维码进入到相机镜头内。
[0077]
步骤3)通过agv的相机识别二维码中所有的轮廓,由于二维码高度固定,根据面积大小删除不符合标准的轮廓,根据二维码的层级关系再次进行筛选,获取二维码的三个位置探测图形;
[0078]
3.1)检测轮廓边界的像素:
[0079]
为了在一幅图像f的(x,y)位置处寻找边缘的强度和方向,所选择的工具就是梯度,梯度用

f来表示,并用向量来定义:
[0080][0081]
该向量指出了f在位置(x,y)处的最大变化率的方向;
[0082]
向量

f的大小表示为m(x,y),即
[0083][0084]
梯度向量的方向由下列对于x轴度量的角度给出:
[0085][0086]
其中,g
x
、g
y
、m(x,y)都是与原图像大小相同的图像;是x和y在f中的所有像素位置上变化产生的;α(x,y)是与由g
y
除以g
x
的阵列创建的尺寸相同的图像;
[0087]
任一点(x,y)处一个边缘的方向与该点处梯度向量的方向α(x,y)正交,通过该方法可以根据像素间的差异检测出轮廓边界的像素;
[0088]
3.2)将边缘像素合成轮廓:
[0089]
对输入的图像使用光栅扫描法进行扫描,当扫描某个像素点(i,j)的灰度值f
ij
≠0时执行下面的步骤;其中光栅扫描是指从左往右,从上往下,先扫描完一行,再移至下一行起始位置继续扫描,
[0090]
3.2.1)从下列情况选一种:
[0091]
i)如果f
i,j
=1并且f
i,j
‑1=0,则(i,j)是外边界开始点,nbd+=1,(i2,j2)

(i,j

1);其中f
i,j
是指像素点(i,j)的灰度值;nbd+=1是指nbd=nbd+1,编号nbd的值加1;nbd是指从边界开始点(i,j)以边界跟踪算法可以得到一条边界,为每条新找到的边界赋予一个新的唯一的编号,即nbd表示当前跟踪的边界的编号;(i,j)表示图片中第i行第j列的像素点;(i2,j2)为了方便区分不同像素点而起的编号;(i2,j2)

(i,j

1)是指将(i,j

1)的坐标值传给(i2,j2);
[0092]
ii)如果f
ij
≥1并且f
i,j+1
=0,则(i,j)是孔边界开始点,nbd+=1,(i2,j2)

(i,j+1);如果f
ij
>1,则lnbd

f
ij
;其中lnbd是指在光栅扫描过程中,保存上一个的边界的编号,记为lnbd;
[0093]
iii)其它情况到第(3.2.4)步;
[0094]
3.2.2)根据上一个边界和当前边界的类型,得到当前边界的父边界;
[0095]
3.2.3)从边界开始点(i,j)开始按如下步骤进行边界跟踪;
[0096]
a)以(i,j)为中心,(i2,j2)为起始点,按顺时针方向查找(i,j)的4(8)邻域是否存在非0像素点,令(i1,j1)是顺时针方向的第一个非0像素点;否则令,转到(3.2.4);其中4(8)邻域中4邻域是指坐标(x,y)处的像素p由4个水平和垂直的相邻像素,其坐标为(x+1,y)(x

1,y)(x,y+1)(x,y

1),这组像素称为p的4邻域;4邻域与对角坐标点(x+1,y+1)(x+1,y

1)(x

1,y+1)(x

1,y

1)共同构成8邻域。
[0097]
b)(i2,j2)

(i1,j1),(i3,j3)

(i,j)
[0098]
c)以(i3,j3)为中心,按逆时针方向,(i2,j2)的下一个点为起始点查找(i3,j3)的4(8)邻域是否存在非0像素点,令(i4,j4)是逆时针方向的第一个非0像素点;
[0099]
d)如果(i3,j3+1)是(c)中已经检查过的限速点且是0像素点,则f
i3,j3
←‑
nbd;如果(i3,j3+1)不是(c)中已经检查过的0像素点,并且,则f
i3,j3

nbd,其它情况,不改变;
[0100]
e)如果(i4,j4)=(i,j)且(i3,j3)=(i1,j1)(回到边界开始点),则转到(3.2.4);否则令(i2,j2)

(i3,j3),(i3,j3)

(i4,j4)转到(c);
[0101]
3.3.4)如果f
ij
≠1,则lnbd

|f
ij
|,从点(i,j+1)继续光栅扫描,当扫描到图片的右下角顶点是结束;
[0102]
3.3)对提取到的轮廓进行筛选:
[0103]
3.3.1)面积筛选,二维码到镜头的垂直距离不变,三个位置探测图形的外轮廓大小面积会在一定范围之内,把不在面积范围之内的轮廓删除掉;
[0104]
3.3.2)轮廓层级筛选,因为二维码中的位置探测图形的层级为三层,因此把大于等于三层等级的轮廓留下,如果留下的轮廓数量少于三个,把三层改为两层,不符合要求的删除;
[0105]
3.4)对获取的二维码中的位置探测图形进行位置判断并进行编号。
[0106]
步骤4)根据二维码的探测图形移动车体让相机对准二维码的中心;
[0107]
4.1)找到位置探测图行然后得到三个位置探测图形的中心a1,a2,a3的中心坐标分别为(x1,y1),(x2,y2),(x3,y3);并将二维码左上角的定位点定义为第1点,右上角的定位点定义为第2点,左下角的定位点定义为第3点;计算a1,a2两点的距离d1:
[0108][0109]
同理计算出a1,a3两点的距离d2;a2,a3两点的距离d3;
[0110]
4.2)比较d1,d2,d3的大小,最大的就是斜边,假设斜边为d1,剩余的点a3就是二维码的左上角的点;
[0111]
4.2.1)当x2

x1≠0时计算斜边的斜率:
[0112][0113]
f=0时,斜边是水平状态,y3>y1并且y3>y2,此时x1<x2则a1为第3点,a2为第2点;反之a1为第2点,a2为第3点;y3<y1并且y3<y2时,此时x1<x2则a1为第2点,a2为第3点;反之a1为第3点,a2为第2点;
[0114]
f>0时,根据顶点坐标计算出斜边直线方程为ax+by+c=0,将a1带入到直线方程小于0时,此时x1<x2则a1为第3点,a2为第2点;反之a1为第2点,a2为第3点;
[0115]
将a1带入直线方程大于0时,此时x1<x2则a1为第2点,a2为第3点;反之a1为第3点,a2为第2点;
[0116]
f<0时,根据顶点坐标计算出斜边直线方程为ax+by+c=0,将a1带入到直线方程大于0时,此时x1<x2则a1为第3点,a2为第2点;反之a1为第2点,a2为第3点;
[0117]
将a1带入直线方程小于0时,此时x1<x2则a1为第2点,a2为第3点;反之a1为第3点,a2为第2点;
[0118]
通过以上方法即可计算出二维码的方向;
[0119]
4.2.2)当x2

x1=0时:
[0120]
此时最长的边处于竖直状态,只需要比较点的x坐标即可;
[0121]
4.3)根据二维码的方向以及中心坐标点就可以使得agv相机中心与二维码相机中心重合,方向对着二维码前方。
[0122]
步骤5)识别二维码内部信息,获取车体在仓库内部坐标信息;对二维码的编码区进行识别,获取二维码内部存储的信息,我们在二维码内部存储的信息为二维码中心所在的世界坐标,也就是此时车体的世界坐标。
[0123]
上述实施例仅代表了本发明的一种实施方式,并不能理解为对本发明范围的限制。应当指出的是在本领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干种变形设计,这些都属于本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1