APP下载

基于双摄像头扫码的AGV运动轨迹修正方法

2020-12-28芦姝冰于宝成王春梅杨世团熊永燚

计算机工程与设计 2020年12期
关键词:小车摄像头二维码

芦姝冰,于宝成,王春梅,杨世团,熊永燚

(武汉工程大学 计算机科学与工程学院,湖北 武汉 430205)

0 引 言

目前AGV[1]大多通过磁感应、惯性、视觉及其组合方式进行导航定位。文献[2]利用了RFID标签辅助惯性导航系统构成一种自主式组合导航系统,用过布放RFID标签以降低数据更新时间来提高AGV定位精度。文献[3]基于多传感器进行AGV定位误差校正,采用视觉导航方式,结合左右轮编码器对AGV进行运动控制。文献[4,5]设计了一种基于二维码图像标签定位导航的视觉导引AGV,虽然降低了维护成本,但整体实时性不高。文献[6]采用单摄像头识别二维码获取定位消息,结合陀螺仪和里程计以弥补单传感器定位缺陷。文献[7]利用了QR码视觉定位结合航位推算定位实现导引车定位,但QR码识别速率难以保证系统的运行速度。文献[8]在视觉导航方法的基础上利用粒子群算法来优化PID控制器参数,改善小车跟踪行驶效果。文献[9]提出通过外置的视觉信标给机器人提供绝对位置信息,但是视觉信标需要前期的安装工作,具有一定局限性。

本文采用基于双摄像头扫码的视觉导航技术对AGV惯性定位误差进行补偿,通过安装在AGV车头与车体中心两处下方的摄像头分别对二维码标签进行识别与信息核定,对定点处的定位误差进行调整,并结合车身惯性传感器获取的偏航角等信息,补偿惯性导航产生的固有累计误差,提高运动轨迹精度。

1 双轮差速驱动AGV结构设计

本文提及的AGV系统采用双轮差速方式驱动,车体结构如图1所示,AGV前后各设两个万向轮,左右两轮各自使用独立的电机驱动,通过控制两驱动轮转速实现转向,这种车体结构提高了AGV的稳定性与实操性。

图1 车体结构

考虑到AGV运行轨迹的精度要求,本文中的AGV安装有两个摄像头在车头两万向轮连轴中心和两驱动轮的连轴正中心,分别记为摄像头1和摄像头2。当摄像头1读取到二维码信息时CPU定时器开始计时,直到摄像头2读取到二维码图像信息时停止,当小车经过分配运动命令为直行的二维码码点时,通过两摄像头固定点间距和计时时间可得AGV在此点的瞬时速度,当AGV经过分配运动命令为停止或转向的二维码码点时,摄像头1读取二维码信息无误后,在两摄像头间的固定间距中做匀减速运动,使得摄像头1中心点与二维码图标中心点重合时AGV停止,增长了小车刹车的制动距离,避免在驮运货物时骤停的不利影响,加强了AGV定位的精确度,降低了路径中二维码点读取的误码率。

针对如图1所示的AGV结构设计,通过控制两个独立电机分别驱动左右两轮的速度差实现车体旋转,以逆时针为正转,速度记为正速度,应有:①当VL=-VR时,小车做直线运动(左轮正速度且右轮负速度时AGV前进,反之AGV后退);②当VL=VR时,小车围绕两驱动轮连轴中心做旋转运动(两轮速度均为正速度时AGV向左旋转);③当|VL|≠|VR|时,小车做弧线运动。

故通过控制驱动轮转速,AGV可作直线运动或绕驱动轮轴心连线上任意点作旋转运动。运动模型如图2所示,图中Y轴为小车理想的行驶路线,O为左右驱动轮中轴线中点。当小车发生图示的路径偏移现象时,u为驱动轮连轴中心的水平偏移距离,α为实际形式路径与理想路径的角度偏差,R为小车偏移时的转向半径。

图2 AGV运动模型

由运动学可知

(1)

(2)

其中,VL,VR分别为左右驱动轮线速度,VO为车体中心线速度,ω为小车右转时的角速度,L为左右驱动轮间距;

假设在短时间内小车向右的偏移变化量极小,则α与sinα近似相等,则由式(1)、式(2)两式结合可得

α=(VL-VR)Δt/L

(3)

(4)

2 AGV位姿及路径修正算法设计

2.1 二维码导航结合惯性导航方法

在AGV的工作区域内等间距粘贴内含坐标信息的二维码作为定位点,利用摄像头扫码可提取出AGV定位信息以及AGV相对于定位点的偏移信息。根据接收任务命令结合定位信息完成AGV的路径导航,期间利用偏移信息结合惯性传感器对AGV进行轨迹修正。控制流程如图3所示。

图3 AGV控制流程

通过对摄像头2采集到的二维码图像进行边缘检测、Hough变换等图像处理方法获得码点中心与AGV车体中心的相对位置信息,包括水平方向的位移偏差以及角度偏差,根据这3个信息可对AGV小车在码点上方的位姿进行纠正,或在直行通过码点时,将其代替此刻惯性传感器所测数值作为初始偏差。码间运动中利用惯性传感器获取AGV的实际运动轨迹与理想路径的偏移角度,结合初始偏差信息,控制左右两驱动轮转速实现小角度转向纠正偏差,使AGV在运动过程中能顺利采集到下一个二维码标签。

2.2 二维码信息获取

在AGV工作区域内等间距粘贴内含坐标信息的二维码标签,坐标信息形如:0102,0309,0005等,前2位和后2位分别表示该码点的X、Y轴坐标。

首先采集图像,根据获得的运动图像,利用相位相关算法初步确定前后帧图像中相位相关区域,并通过平移变换进行一次运动补偿,再利用Harris算法检测特征点,并结合SURF描述子进行特征点匹配完成运动估计,利用6参数仿射运动参数模型构建运动模型,确定全局运动参量,再根据上述参量做运动补偿,补偿得到稳定的图像序列;再对稳定的图像序列采用三帧差分算法检测得到运动的区域,提取出运动目标;之后对提取的运动目标图形进行预处理;采用改进的Canny算法结合Hough直线检测进行图像边缘检测与畸变矫正,可得到二维码在图像采集界面中的位置信息以及旋转角度,从而得到AGV在该码点的位姿信息;最后对采集到的图像进行解码。图像处理流程如图4所示。

图4 图像处理流程

车体共安装两个摄像头,此处仅分析摄像头2的图像采集界面。可得到摄像头采集界面如图5所示。

图5 二维码偏移信息

图5中方框区域即为摄像头2的图像采集界面:o点为摄像头2中心点也即车体中心;图中14为AGV中心线与二维码中心线的方向偏差,记为θ;图中15、16分别为二维码码点相对于车体中心的横纵位移偏量,也即二维码中心在图像坐标系XoY中的坐标,记二维码中心为O点,则图中15、16记为Ox,Oy。θ、Ox、Oy表明了在该时刻AGV与期望位置点的3项偏差信息。

其中:当Ox>0时,车辆在理想路径的右侧,当Ox<0时,车辆在理想路径左侧;当θ>0时,车辆运动方向偏向左侧,当θ<0时,车辆运动方向偏向右侧。

想要获取准确的偏移角度信息,我们需要对采集到的图像进行图像处理工作,而为了能够适应实际工作区域内不同的光照强度,需要进行图像预处理操作,将初始图像转化为灰度图像,并进行降噪处理,然后进行边缘检测确定具体图像,即通过检测每个像素点及其邻域的灰度值变化判断该像素点是否恰好在图像的边界。以连续的函数f(x,y)作为处理对象,利用Canny算子卷积模板与相应的图像原数据进行卷积运算,再做阈值处理检测来确定边缘。针对如图5所示的图像采集界面,对图中二维码进行处理后的效果如图6所示。

图6 图像边缘检测效果

图像出现倾斜时,利用Hough变换检测直线进行校正,基本思想是点——线的对应性。直角坐标系中直线上的点经过Hough变化后对应了极坐标(ρ,θ)上的点。图像进行Hough校正,筛选得到参数空间ρoθ平面共线点数的局部最大值,这个共线点的坐标(ρ,θ)中便携带了待检测直线的斜率和截距。以图5中二维码为例,可得出图5中直线倾斜角度如图7所示。

图7 图像倾斜角度检测效果

经数据处理,可得出图6中二维码旋转角度为21°(顺时针旋转为正角度,以二维码图像边缘与采集图像界面y轴重合时为0度)。

则针对图5所示的二维码图像采集界面可知,当前情况下AGV的运动状况判断为:车辆偏移至理想行驶路线右侧,且车头朝向偏向右侧,偏离理想路线约21°。

2.3 轨迹修正算法

本文中轨迹修正包括两种修正类型,一种是在码间运动过程中纠偏,一种是在码点上方调整。

理想状态下或码间运动纠偏顺利完成时,当AGV经过分配运动命令为停止或转向的二维码码点时,通过在两摄像头间的固定间距中作匀减速运动,使得AGV停止时车体中心正与码点中心重合,但实际情况下可完成在AGV停止时,车体中心与码点在同一水平线上且垂直于运动方向,此时图像采集界面的偏差信息仅有θ和Ox。

此时假设θ和Ox均大于0,表明小车偏离到理想轨迹的左边且车头朝向偏左。在原地调整时令小车原地旋转,如图8所示。

图8 码点处运动轨迹纠正

两驱动轮间距设为L,两轮转速分别为n1、n2,二维码码点中心与画面采集中心距离为x,两轮在经过相同时间后走过的路程比记为两轮转速比,记左右两轮走过路程为S1,S2,根据几何关系,有

(5)

故欲让车体与二维码码点中心对准且朝向相同,两轮应以符合上式比例的转速作旋转运动。

当AGV在码点上方纠正好位姿后向前运动,理论上应沿导航路径作直线运动,但由于摩擦力或配重不均等影响因素,AGV会出现运动路径偏移现象,根据惯性传感器检测的角度信息θ可判断小车走向与理想路径的角度差,进行纠偏使其顺利读取到下一二维码标签;当AGV经过分配运动命令为直行的二维码码点时,小车采集二维码图像获取3项偏移信息,其中的角度信息可对六轴检测的角度信息进行补正,以避免惯性传感器的累积误差对轨迹修正产生影响。码间运动轨迹纠正如图9所示。

图9 码间运动轨迹纠正

图9中部分1隐含了部分2、3、4这3种情况,即Ox>0时,θ>0、θ=0和θ<0。

假设此时AGV朝向较导航路径向右偏θ,应控制小车作弯道转向运动,若单纯只考虑将θ纠正,不对车体与导航路径间的水平位置偏移做修正,则导致小车运动路径与导航路径平行但不重合,不满足导航精度要求,故可考虑控制小车作弯道转向运动,使其运动轨迹无限逼近于导航路径。

(6)

第2步,应控制AGV右轮加速走过一定角度后,使得θ<0,此时左右轮交换速度,再次进行弯道转向运动,且后两次转弯轨迹为两段对称的圆弧,即R2=R3。此时相当于对AGV进行了两次轨迹调整,那么假设在第一次调整时,AGV转弯前点坐标为(Xn+1,Yn+1),六轴获取角度为θn+1=90,运行过路程S后,AGV的坐标为(Xn+2,Yn+2),六轴获取角度为θn+2

(7)

在第二次调整中,AGV转弯前点坐标为(Xn+2,Yn+2),六轴获取角度为θn+2,运行过路程S后,AGV的坐标为(Xn+3,Yn+3),六轴获取角度为θn+3=90

(8)

结合式(3)、式(4)可得,欲完成上述纠偏过程,当转过半径为R、角度为θ的圆弧时,左右两轮速度应满足比例为P,且应保持上述比例运动时长为T

(9)

(10)

3 实验结果分析

本文实验在4.2 m*4.2 m的区域内进行,最终结果是AGV通过WIFI接收到一连串运动命令后,采用二维码结合惯性传感器的导航方式,完成自主导航。利用二维码坐标信息与图像信息,分别实现对AGV的定位和对惯性导航长时间累计误差的修正。

AGV运行轨迹的精确性包含了AGV运动的控制精度,除了采集实验轨迹结果外,还需要对AGV直线运动距离、旋转角度进行测定。

精确控制AGV直线运动距离的意义在于:当小车停止时摄像头2中心点与二维码图标中心点重合。采用双摄像头增长了小车刹车的制动距离,在两摄像头间的固定间距中作匀减速运动,避免在驮运货物时骤停的不利影响,加强了AGV定位的精确度。对比单摄像头检测到二维码目标后控制AGV减速停止,有数据差异见表1。

如表1中数据可知,码间距离固定时,针对不同的行驶速度,AGV在码间运动的启停存在不同的效果,可知在实际应用中,当AGV采用中高速档位运行时,单摄像头检测到正确图像信息后减速停车难以达到准确的定位效果。

表1 码间运动测试

将文中方法应用于AGV运动控制,对惯性传感器进行累计误差修正。实验区域等间距粘贴二维码标签,实验结果如图10所示,图10中图(a)为各方法获得的转弯角度和真实角度的误差。图(b)为各方法经过码间运动后到达指定码点时,真实位置与理想定位点在X轴方向上的误差。图(c)为车载单摄像头和双摄像头情况下,AGV到达指定码点停止后的真实位置和理想定位点在Y方向上的误差。

图10 定位误差

其中,针对如图10所示的定位误差,记AGV偏移至航线左方为X轴正向位移误差,AGV超过定位点一定距离为Y轴正向位移误差。

根据多次实验可得出AGV运行轨迹图如图11所示,将仅用惯性传感器作为导航定位信息获取来源和结合双摄像头扫码与惯性传感器的导航方法相比较,从图中可看出:模拟AGV在工作区域内预设的行进轨迹为一个正方形,经过双摄像头扫码将惯性传感器的累积误差消除后,相比单一使用惯性传感器时轨迹的精确度有了较好的改进,包括小车启停时相较于定位码点的Y轴位移误差也得到了改善,大大提高了AGV的使用性能。

图11 实际误差对比

4 结束语

本文提出了一种基于双摄像头扫码的AGV运动轨迹修正方法:将二维码图像识别与惯性传感器结合作为导航方式,对摄像头采集到的二维码图像信息进行特征点识别与匹配,并进行边缘检测与旋转矫正获得AGV真实位置与理想定位点的差距,根据图像处理得到的偏移信息并结合惯性传感器获取到的运动角度信息,将六轴传感器长时间工作产生的累计误差进行消除;利用双摄像头扫码结构,增长了小车刹车的制动距离,既能使AGV平稳刹车,又对AGV减速滑行的距离进行了更加精确的控制。实验结果表明,此方法具有很好的实用性与稳定性,可满足AGV在实际工作中对定位和运动轨迹的精度要求。

猜你喜欢

小车摄像头二维码
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
大车拉小车
二维码
小康二维码
自制小车来比赛
刘老师想开小车
两轮自平衡小车的设计与实现
让严肃的二维码呆萌起来
二维码,别想一扫了之