基于单目视觉的仓储物流搬运AGV 累积误差检测方法研究

2022-10-28 10:43

  摘 要:双轮差速驱动搬运AGV 在实际运动过程中,由于传感器读数误差和机械传动误差会产生运动累积误差,针对该问题,文中提出一种基于单目视觉的误差检测方法。首先采用基于栅格分割、聚类的方法提取二值图像中的定位块并使用平均值算法计算定位块的中心点;然后根据定位块中心点的相对位置关系建立误差检测计算模型;最后通过实验对本方法进行验证,位置和航向角检测结果误差分别小于1 mm 和1°,证明所述方法具有较高的检测精度。该方法对硬件要求低,具有较高的实用价值。

        关键词:仓储物流; AGV; 累积误差;栅格分割;聚类算法;平均值算法;误差检测

        中图分类号:TP249 文献标识码:A 文章编号:1001-0785(2020)09-0042-05

  0 引言

  基于双轮差速驱动的仓储物流搬运AGV 结构简单,控制方便,广泛应用于各种物流分拣系统中。由于AGV 搭载的传感器读数误差和机械传动误差具有累计效应,其误差会随着时间的增加而增大。如果不能检测并消除移动过程中产生的位置累计误差和航向角累计误差,将导致导航错误。迄今为止,已经有许多在工业生产中被使用或在实验室里被设计并证明可用的累计误差检测方法。张涛[1] 等人设计了一种基于单目视觉的二维码导航误差检测方法,将定位误差控制在±4 cm 以内;Arturo Gil 等人[2] 通过提取视觉地标,获得它们的相对测量值,通过估算机器人的路径和视觉地标的位置来消除运动过程中的累积误差;张艳[3] 等人使用DM 二维码导航方式检测产生的累积误差,实现了AGV 自主导航与精准定位;罗高[4] 等人使用里程计结合单目视觉测距对移动机器人误差检测和定位技术进行研究;王勇[5]等人通过自适应位姿跟踪,提高了AGV 在高遮挡环境下的定位精度。

        目前对运动过程中产生的累积误差进行检测的方法存在位置误差检测以及航向角误差检测精度低、抗干扰能力弱等缺点。为此,本文基于单目视觉[6] 和信标[7,8],设计了一种应用于室内仓储物流搬运AGV 的运动累计误差检测方法。本方法在运动节点处设置特定信标,首先对信标图像进行灰度处理,计算信标图像的内间方差,使用最大内间方差对应的分割阈值对灰度图像进行分割,获取二值图像;其次在二值图像的基础上使用栅格对图像进行分割,对含有前景色的栅格单元进行聚类,使用平均值算法求解信标的中心点坐标,并按照位置关系将中心点与信标定位块一一对应;然后建立误差计算模型,计算运动过程中产生的累积误差;最后通过实验验证所述方法能够检测出仓储物流搬运AGV 运动过程中产生的累积误差,该方法具有较高的精度,满足仓储物流搬运AGV 精准定位的要求。

  1 累积误差检测方案

  双轮差速驱动搬运AGV 在运动过程中,由于传感器的累积误差、机械传动误差以及装配误差等因素,会导致AGV 通过传感器读数计算的位姿与实际位姿之间产生累积误差。具体表现在短时间内AGV 定位精度下降,随着时间的增加,累积误差会越来越大,最后导致AGV 运动出错。为了保证AGV 运动的正确性,须在累积误差造成运动错误前,检测出累积误差并对误差进行补偿。采用无畸变摄像头,其成像原理[9-10] 如图1 所示,图像传感器所在平面与信标所在平面平行。信标中含有3 个定位块,分别为A、B 、C ,其中A 的中心点为校准点,OC 为摄像头光心,ZC 为摄像机主轴,O-XYZ 为世界坐标系,OC -XCYC ZC 为摄像机坐标系,o1 − x1y1为图像坐标系,o − xy 为信标中各定位块中心点确定的信标坐标系,o′ − x′y′为信标坐标系在图像平面的投影。依据定位块A、B 、C 在图像传感器上成像中心点坐标之间的相对位置确定坐标系o′ − x′y′。通过建立坐标系o′ − x′y′与坐标系o1 − x1y1之间的旋转、平移关系模型,可以计算出航向角累积误差θ ,在摄像头安装高度h 和摄像头焦距f 已知的条件下,可以求出图像传感器中心点在信标坐标系下关于x 轴、y 轴的位置累积误差dx、dy。

image.png

图1 世界坐标系与图像坐标系之间的关系模型

  2 计算定位块中心点在图像传感器上坐标

  2.1 基于栅格分割的聚类方法首先按照灰度处理[11]、求解最大内间方差[12]、动态阈值分割[13]、中值滤波[14] 流程获取二值图像,然后分别提取出前景色中的3 个定位块,并计算每个定位块的中心点坐标,确定坐标系o′ − x′y′ 。信标的分割聚类方法是采用栅格将二值图像分割成若干个单元,再对栅格单元进行聚类,从前景色中将3 个定位块分离。使用聚类法从分割后的图像中筛选出含有前景色的单元,按照以下方法分离定位块:Step1 设所有含有前景色像素点的单元构成集合S ,S ={s 1,s 2,s 3,……,sn},通过遍历法可确定集合S 中所有的元素;Step 2 建立空集A1,将集合S 中的第1 个元素s 1添加到集合A1 中并将s 1 从集合S 中移除;Step 3 从集合S 第1 个元素开始,依次取集合S 中的元素si 与集合A1 中的所有元素进行比较,若这两个元素代表的单元相邻,则将集合S 中的元素si 添加到集合A1 中并将元素si 从集合S 中移除;Step 4 重复步骤Step 3,直至集合A1 中的任意元素aj 与集合S 中任意元素si 分别所代表的单元不相邻;Step 5 判断集合S 是否为空集,若为空集则前景色分聚类完成,否则重复Step 2 至Step 5,分别建立集合A2、A3、A4、……、An,直至集合S 为空集,并且将A1、A2、A3、……、An 作为元素构成集合A,即A={A1,A2,A3……An}。分割聚类实验结果如图2 所示。

image.png

图2 分割聚类结果

  2.2 各定位块中心点坐标计算对于至少具有两条互相垂直的对称轴图形,可使用平均值算法计算图形中心点。图形中心点坐标满足

image.png

10秒快速发布需求

让物流专家来找您