如何设计一款无人搬运车?

发表于 2019-07-19 09:15:03 收藏 已收藏
赞(0) •  评论(0

如何设计一款无人搬运车?

发表于 2019-07-19 09:15:03
+关注

0 引言

无人搬运车(Automated Guided Vehicle,AGV),也叫做自动导引运输车,是指装备有电磁或光学传感器装置,能够沿规定好的路径行驶,具有安全保护以及各种移载功能的运输车。

传统的工厂和仓库中的货物搬运需要大量人力,效率低下,容易出错。货物储存位置、不同货物大小和重量,对机器和人都是一种挑战。

目前国内自动导引车普遍使用在地面上的标线对小车进行导航,或者在规定区域的地面,贴上标志图形,其缺点在于需要在地面上铺设大量标志线和图形,其活动范围受到限制,且标志线被污染容易造成导航精度降低甚至失效的后果。或者采用全局摄像头定位小车在室内的位置,其缺点是定位精度差,成本高。

在AGV的相关技术研究中,导航技术是其核心技术,也是其实现真正的智能化和完全的自主移动的关键技术。导航研究的目标是在没有人工干预的情况下使机器人有目的地移动并完成特定任务。而路径轨迹计算又是导航的核心技术之一,只有知道了机器人自身移动的轨迹,才能完成导航任务。

本文利用机器视觉技术检测地面,使用块匹配算法计算AGV轨迹。其优点是无需在地面铺设大量标志线和图形,精度高,成本低。在运行较长轨迹后,只需用极少坐标作为误差矫正即可完成AGV的长期导航任务。

1 直线行驶图像匹配

图像匹配是通过计算相似性度量来判断图像间的变换参数,从不同传感器、不同方位、不同时间采集同一场景的2幅或多幅图像,将其变换到同一坐标系下,并在像素层上实现最佳匹配的效果。图像匹配的方法可以划分为4类:基于灰度的匹配、基于模板的匹配、基于变换域的匹配和基于特征的匹配。

本文利用CCD拍摄地面,从地面的图像的移动来判断小车移动的距离,由于地面特征变化很多,特征有时明显有时不明显,所以采用基于模板的匹配的方法来计算小车移动的距离,简单实用。

1.1 基于模板的匹配

基于模板的匹配是在图像已知的重叠区域里选择一块矩形区域作为模板,与扫描被匹配图像中同样大小的区域进行对比,计算其相似性度量,确定最佳的匹配位置,所以此方法也被称为块匹配过程。其匹配过程包括4个步骤,如图1所示。

如何设计一款无人搬运车?

图1 基于模板的匹配算法流程图

1.2 基于块匹配过程

CCD摄像头拍摄地面,以帧的方式传输到处理器中,图2是相邻2帧可能的相对位置情况。

如何设计一款无人搬运车?

图2 相邻2帧相对位置情况

如图3所示,假设每2帧的图像有部分重叠,重叠部分用阴影表示,此重叠区域即为块匹配的基准模板,相邻2帧重叠区域与前一帧图像面积的比值定义为重叠系数β。

如何设计一款无人搬运车?

图3相邻2帧图像重叠的位置情况

模板的大小和坐标定义如下:前一帧的坐标系是x - y,每一像素点的灰度值为f(x,y),后一帧的坐标系是X - Y,每一像素点的灰度值为g(X,Y),坐标系变换是x = X + ΔX,y = Y + ΔY。

重叠区域S的比对采用差值法,重叠区域相似性度量计算公式如下:

如何设计一款无人搬运车?

模板扫描策略从β ~ 1,每次扫描都会有一个A值,取所有A值中的最小值:min(A1,A2,A3,…)

此时的ΔX是AGV在2帧时间内行驶前进方向的路程,ΔY是AGV行驶方向的垂直方向的偏移。在时间t内前进方向行驶的距离为∑ΔX,垂直方向为∑ΔY。

1.3 CCD摄像头与AGV移动速度关系

CCD摄像头拍摄面积、传输帧数与AGV行驶速度之间的关系如下:

如何设计一款无人搬运车?

其中,v是AGV移动速度,β是重叠区域重叠系数,LONG是CCD摄像头窗口拍摄矩形长度大小,COLUMN是CCD摄像头分辨率列数,FPS是帧率。

1.4 拍摄条件

1)消除拖影。运动物体如果速度过快,在每一帧的图像中会有拖影出现,所以在选择CCD摄像头时,最好选择120 FPS的CCD摄像头,快门速度>=1/50 s,小车行驶越快,需要快门速度越快。这样可以有效消除拖影对算法的影响。

2)消除曝光瑕疵。照射地面的光线可能由于外在原因,导致不同帧的图像的不同位置的光强度有变化对算法的结果有一定影响。所以需要在AGV底部增加主动光源,如图4所示。

如何设计一款无人搬运车?

图4 光源与CCD摄像头位置示意图

试验选择日常的瓷砖地面,瓷砖地面普遍比较光滑,颜色趋于一致。但是如果近距离用摄像头拍摄,会发现瓷砖表面会有大小不一的孔洞,有光源照射时,与瓷砖背景形成鲜明对比,如图5 ~ 图6所示,CCD摄像头镜头角度为30.4°,距离地面距离100mm。

如何设计一款无人搬运车?

图5 光源以30°角照射地面

如何设计一款无人搬运车?

图6 光源垂直照射地面

根据地面状况不同,光源入射角度也不同,此试验选择光源垂直照射地面,使得特征孔洞与地面整体有更大的对比反差。

2 转弯行驶图像匹配

试验使用的AGV是由2个无刷电机带主动轮和一个万向轮被动轮构成的样车即小车,如图7所示。

如何设计一款无人搬运车?

图7 小车示意图

CCD摄像头安装在小车下方,2个主动轮中心位置,向右转弯时,小车右轮不动,左轮转动,向左转弯时,小车左轮不动,右轮转动。

2.1 转弯块匹配算法

小车转弯的过程也是CCD摄像头绕固定轮旋转的过程,以向左转弯为例,示意图如8所示。

如何设计一款无人搬运车?

图8 相邻2帧的位置

模板的大小和坐标定义如下:前一帧的坐标系是ρ - θ,每一像素点的灰度值为f(ρ,θ),后一帧的坐标系是r - φ,每一像素点的灰度值为g(r,φ),坐标系变换是φ = θ + Δθ,r = ρ + Δρ。在此采用极坐标系。

重叠区域S的比对采用差值法,重叠区域相似性度量计算公式如下:

如何设计一款无人搬运车?

板扫描策略从β ~ 1,每次扫描都会有一个B值,取所有B值中的最小值:min(B1,B2,B3,…)

此时的Δρ值是小车在2帧时间转动瞬心的偏移,直角坐标系内的值是(Δρ × cosθ,Δρ × sinθ),Δθ是小车行转弯时的瞬时转角。在时间t内转弯的偏移量为(∑Δρ × cosθ,∑Δρ × sinθ)和转弯角度为∑Δθ。

3 试验验证和结果分析

3.1 其中2帧对比的计算结果

试验用CCD摄像头设定为320 x 240像素,β系数设定为0.9,用Matlab仿真,图9为其中2帧扫描结果。

如何设计一款无人搬运车?

图9 4个方向Matlab计算结果

分析从4个方向计算结果,在右上方有最小值,所以判断第2帧图像在第1帧图像的右上方,将4个方向的计算结果合成在一个坐标系下,结果如图10所示。

如何设计一款无人搬运车?

图10 4个方向坐标系合成Matlab计算结果

由坐标系换算得到,第2帧图像在第1帧图像右上方,横坐标偏离21个像素点,纵坐标偏离23个像素点。

3.2 小车直线行驶计算结果

试验用CCD摄像头设定为320 x 240像素,β系数设定为0.9,帧率120 FPS。小车直线向前行驶距离,其中约1 s的数据如图11所示。

如何设计一款无人搬运车?

图11 小车约1 s内行驶前方和侧方每帧像素个数

小车在约1 s时间内,向右移动了206个像素点,向下方偏移了32个像素点。换算成距离约向前移动了34.9788 mm,偏移5.4336 mm。

使用基恩士激光位移传感器(型号LK-G150,精度0.01 um)测量小车,将小车移动200 mm的距离,重复试验30次。CCD摄像头拍下的图像,用基于块匹配算法,实际计算结果如表1所示。

表1 小车直线行驶200mm时算法误差

如何设计一款无人搬运车?

3.3 小车转弯2帧对比结果

以左转弯为例,图12为小车左转弯时,2帧图像基于块扫描的匹配结果。

如何设计一款无人搬运车?

图12 小车左转弯2帧图像块扫描结果

表2 小车左转弯时的转角计算误差

如何设计一款无人搬运车?

使用精度为0.05°的陀螺仪芯片,使小车向左转弯30°,CCD摄像头拍下图像,用基于块匹配算法,四舍五入精度到小数点后一位。实际计算结果如表2所示。

经计算,计算值与实际值存在一定误差,直线行驶,计算值的误差率比较低,转弯行驶误差比较高,分析其原因如下:

1)直线行驶。

①实际移动不完全是像素点的整数倍,而算法中没有考虑不是完整像素的情况。

②实际CCD摄像头安装位置和镜头角度导致摄像头可照射范围不是整数倍,本身镜头覆盖面有一定误差。

2)转弯行驶。

①由于转弯行驶是按照极坐标系来计算的,而像素点本身是直角坐标系,在相互转换计算中,会有一定误差。

②由于转弯时会考虑转动瞬息的移动情况,在算法消除瞬心移动时,也会造成一定误差。

所以整体转弯行驶的算法的误差会比直线行驶误差要大。

4 结束语

本文介绍了使用CCD摄像头,根据地面图像,配合本文提出的算法,可以用于平整地面AGV的轨迹计算。其优点是与全局摄像头相比成本低,精度高。

与传统方法相比,无需在地面铺设大量标志线,适用范围广,AGV行驶更加自由。但本算法在长期运行时,其误差的累积还是比较大。为此笔者将对以下几种解决方法进行研究:

1)选取像素更低、曝光时间更短的CCD摄像头来提高精度。

2)选择2个或者3个CCD摄像头,采用数据融合技术来降低误差。

3)在地面铺设少许RFID标签,在导航路径规划时,行驶一定距离时,导航到RFID标签范围内,对其累积误差进行校正。

声明:本文由入驻电子说专栏的作者撰写或者网上转载,观点仅代表作者本人,不代表电子发烧友网立场。如有侵权或者其他问题,请联系举报。侵权投诉

收藏

相关话题

评论(0)

加载更多评论

分享到

QQ空间 QQ好友 微博
取消