您好, 访客   登录/注册

基于激光雷达的圆孔圆心定位研究

来源:用户上传      作者:倪彦哲 朱文亮 黄廷波 韩家好

  摘   要:在石油和粮油领域,油料的储运多采用油罐车,而油罐车的装油仍是通过人工操作的方式完成,为了在油料装车领域实现全自动控制,文章提出了一种基于激光测距的罐车油口定位方法。首先采用360°激光扫描测距雷达采集油罐车油口圆孔特征点数据,剔除重复无效数据后,通过3次样条插值法对雷达扫描数据进行平滑性修正,然后,设计了一种边缘特征识别算法,用于筛选出目标点并对有效目标点进行坐标变换,并对可能出现的安装角度误差进行了自我修正。该目标点即是定量装车系统的机械手单元的定位目标,最后,进行实验验证。实验结果表明,该方法能够较为准确地定位圆心,满足特征识别精度要求,满足定量装车系统设计的实验预期。
  关键词:激光雷达;测距;圆孔;特征识别;定位
  我国石油和粮油目前普遍采用人工装车方式,虽然定量装车系统在许多环节上,实现了信息的交互集成和人力的节省,但将鹤管插入油罐车油口的操作仍需人工介入,而装车作业又十分频繁,自动化程度不高,影响生产运输的高效性[1]。致使整个系统只能实现半自动化控制。因此,为了提高装车的安全性、速度和精度,节省这方面的人力,本文进行了激光雷达扫描识别圆形油口测算圆心的实验研究,提出了一种基于激光测距的罐车油口定位方法,首先采用360°激光扫描测距雷达采集油罐车油口圆孔特征点数据,通过3次样条插值法对雷达扫描数据进行平滑性修正,然后设计一种边缘特征识别算法,用于筛选出目标点并对有效目标点进行坐标变换,该目标点即是定量装车系统的机械手单元的定位目标,最后进行实验验证。
  1    应用分析
  激光雷达在各个领域实现目标识别都有着重要的地位,是机器视觉的重要组成部分,是目前实现机器感知的重要手段之一。在高速公路勘测方面,可通过激光雷达获取公路的数据实现线路选型和纵断计算[2];在林业方面,可以实现杉木模型的提取[3];在水文观测领域,还可以实现水位的测量和流速的确定[4-5]。
  激光雷达常被用来实现识别定位功能。罗秋慧等[6]通过激光雷达获取环境信息,根据角度信息进行侧面二维投影、地物聚类划分网格、高程跨度计算、逐层分析、逐网判断等然后实现了果树的识别。刘晶等[7]利用激光雷达实现了变电设备故障点定位。秦小明等[8]利用激光雷达进行霍夫变换识别定位了车轮。
  由于激光扫描测距雷达数据为离散型,故采用3次样条插值对激光扫描测距雷达数据进行平滑性修正,合理填补空缺数据,更加符合实际的可行性。ZHAO等[9]对存在空白的道路信息数据进行3次样条插值,填补了空缺;陈浩[10-11]使用了3次样条插值方法,拟合激光扫描测距雷达时间序列数据的变化趋势,完成激光扫描测距雷达时间序列数据之间空白数据的插值。
  尽管激光雷达被广泛的运用,但是油料装车领域的运用与研究仍较少。目前,粮油装车仍是人工操作加油鹤管伸入油罐车油口,完成加油。为了实现机械臂取代人工加油操作,结合实际粮油行业中,油罐车油口环境的情况如图1所示,本文主要针对了油罐车油口圆孔的特征,搭建一个对圆孔进行扫描、特征识别和圆心定位的模拟环境,相较于使用工业相机实现定位,激光雷达能够在白天和黑夜全天候工作,受光线影响小,且因为在定量装车中的应用,其定位精度要求不高,可以选用低成本的激光雷达实现实际应用中的目标。利用360°激光扫描测距雷达采集数据,对采集到的角度与距离数据进行平滑处理,提出一种特征识别算法,该算法利用目标区域的距离数据骤变等特征,获取圆孔圆心的定位数据。
  根据实际生产中的需要,通过比较实际油口的直径与输油鹤管的直径,当目标定位在油口65%以内时,即可达到要求。
  在本文的实验中,对于目标半径为20 mm的圆孔,定位在半径13 mm内即可满足要求。最后通过计算偏差距离的均方根误差小于6.5,确定算法的稳定性。
  2    数据采集及数据处理
  使用的激光扫描测距雷达为思岚科技公司的低成本360°激光扫描测距雷达RPLIDAR A1,性能如表1所示。
  使用的滑台为立式两轴十字滑台,竖直方向总行程为100 mm,水平方向总行程为110 mm,滑台总高度为250 mm,手柄每转动一周,滑台在其方向上移动2 mm,如图2所示。
  搭建实验环境,以桌面拐角为世界坐标系,竖直方向为Z轴,向圆孔方向轴线为X轴,远离圆孔轴线为Y轴。在十字滑台的Z轴滑台上添加一个水平台,将激光扫描测距雷达装放在水平台上并将其固定,在水平方向上,将滑台移动至中间位置。第一次数据收集时,把滑台放置在被测圆孔正前方,距离圆孔所在YZ平面302 mm,XZ平面距离为305 mm。通过控制滑台在Z轴方向上的移动,每次移动2 mm,从高度约为144 mm开始连续测量,直到高度为200 mm,收集了29组激光扫描测距雷达测量数据。之后又进行了两次实验数据的收集,将滑台在Y轴方向上,分别向负方向移动50 mm和正反向移动50 mm,再次进行测量,另外获得两个不同位置的多组测量数据。
  收集数据时雷达呈现的采样频率为6.9~7.2 Hz,并在同一位置高度收集5组数据。目标圆孔的圆心X轴坐标为305 mm,Y轴坐标为0 mm,Z轴坐标为170 mm,圆孔半径为20 mm。根据实验预期,本实验的目标点定位在半径为13 mm的圆形范围内即满足要求。
  每一个雷达数据由角度、距离和雷达所在高度构成。对于已经收集的激光扫描测距雷达数据,从同一位置高度的5组当中随机抽取一组作为试验用的基础数据。先由正前方的这一组进行实验,实验数据的处理在Matlab平台上完成,先获得原始数据构建如图3所示。
  因为激光扫描測距雷达的角分辨率相对于圆孔的大小和雷达与圆孔的距离之间的比例关系,以及激光雷达无反馈造成的数据缺失现象,使得由激光扫描测距雷达采集的数据无法构建出一个完整圆孔。从原始数据的构建上看,在Z轴方向上的数据更加贴近真实圆孔的大小,因此首先要获得Z轴方向上的两个目标断面。   由于激光扫描测距雷达采集来的每一轮数据的角度值不同且分布不均,并且容易出现缺失角度现象。对激光雷达采集的数据进行3次样条插值,获得较为光滑的曲线,同时也获得角度分布均匀的数据。利用数据的有序性将数据分成每个断面进行处理。
  在剔除重复无效数据后进行拟合,拟合插值的两者为角度与距离,基于两者关系,每一度为一个节点选为数据坐标。在高度H处,形成的m个观测数据,角度α和距离d由激光雷达实际测量数据组成,选j=α1<α2<…<αm<k作为[j, k]上的一个划分。Td(α)是定义在这个区间上的3次样条插值函数。在任意区间α∈[αi,αi+1](i=1,2,…m)上,所有的插值数据为Td=aα3+bα2+cα+d,表达式为:
  处理后获得的数据为242°~298°之间的数据,并且数据分布均匀,每一个断面上每一度一个数据,得到57组数据,存放入矩阵Z中。由此再对242°~298°的29组数据进行处理。选取170°~190°之间的数据,以0.25°为间隔,再次拟合插值补充数据,得到矩阵S。
  由数据拟合得到的数据,选择每一度作为一个观测点,从而判断圆孔的边界。激光扫描测距雷达在纵向每隔2 mm进行一次扫描,即获得一层断面数据,当激光扫描测距雷达从未扫描到目标圆孔到扫描到目标圆孔,初次扫描到目标圆孔的断面以及最后一次扫描到目标圆孔的断面即为目标断面,数据拟合前如图4所示,数据拟合后如图5所示。
  数据插值后的曲线与数据插值前的曲线相比较,更为平滑如图6所示。
  3    数据处理边缘特征识别算法
  为了得到圆孔的边界,先从Z轴方向上通过距离数据骤变这个特征,筛选出边界点。主要判断条件为激光扫描测距雷达到扫描点的距离d的变化,从而确定目标点。假设d22为目标点的距离数据,在通过下列公式筛选后确定式(2—5)。
  式中:d21与d23为d22所在相同高度断面上前一点与后一点的距离数据,单位为mm。d12与d32为d22上一层与下一层对应点的距离数据,单位为mm。
  从矩阵Z中筛选目标,由于距离、圆孔大小和雷达角分辨率的关系,可能在目标断面上,有两个甚至多个扫描点在目标圆孔内,则通过点距离变化的判断需要分多种情况讨论,可以一定程度增加多个角度点的判断条件来筛选。
  第一轮对数据特征的筛选判断的条件为,一个点产生了大幅的距离变化,并在判断其是否为边界上的点之后,将其坐标数据保存。如果未发现满足条件的两个点,则进行第二次的数据筛选。第二轮对两个点进行判断,重复以上判断流程,如果已经获得了第一个目标点的话,记录其坐标数据,并在之后的筛选中,专门筛选出圆的另一端的特征点。以此类推,对两个扫描点在圆孔内,3个扫描点在圆孔内甚至4个扫描点在圆孔内作为筛选条件进行判断。在成功获得两个满足条件的扫描点的情况下,自行停止筛选。记录的上一层或下一层的点的数据放入矩阵W:
  通过公式得出目标圆心的近似坐标值式(6—8),其是圆心在激光扫描测距雷达坐标系下的坐标值。式中,α为矩阵W两个目标点的角度,度;Q为矩阵W两个目标点的距离,单位为mm;U为矩阵W两个目标点的高度数据,单位为mm。
  将角坐标转换成圆心坐标:
  式中,Pα为测算出的目标点的角度值,单位为度;Pd为测算出的目标点的距离值,单位为mm;Kα为目标点的X轴坐标,单位为mm;Kd为目标点的Y轴坐标,单位为mm。
  则得到角坐标(Pα,Pd,0),将角坐标转换成笛卡尔坐标,得到坐标(Kα,Kd,0)(式9)。在激光扫描测距雷达坐标系下的圆心坐标需要转换到世界坐标系下,通过矩阵的齐次变换完成。激光扫描测距雷达自身的位姿表示需要知道其本身的位置坐标以及激光扫描测距雷达自身坐标系与世界坐标系所偏移的角度。
  激光雷达自身X轴坐标为Xα,Y轴坐标为Yα,激光扫描测距雷达的坐标为(Xα,Yα,H),H即为推算出的圆心高度坐标值,则激光扫描测距雷达坐标系的位置阵列为 [Xα Yα H1]T。激光扫描测距雷达在安装的过程中可能存在一定的角度偏差,激光扫描测距雷达坐标系与世界坐标系的夹角度数通过激光雷达扫描平面中心与XZ面的关系得出。由激光扫描测距雷达采集的激光扫描测距雷达到XZ面最短距离所对应的角度和理想状态下对应的角度的误差,即可近似作为是激光扫描测距雷达坐标系与世界坐标系偏差的角度。通过下列公式得出:
  式中,F为矩阵S中每层断面最短距离对应的角度值的集合;β2为这些角度的平均值,单位为度。
  根据式(15)计算出偏转角度θ。本次实验中,理想角度为180°,而实际最短距离对应的角度为182.5°,即激光扫描测距雷达坐标系相对于世界坐标系向逆时针方向偏转了2.5°,即偏转角θ为2.5°。
  得到最终笛卡尔坐标的矩阵M,再进行另外两个位置的实验。
  4    结果分析
  通过齐次矩阵变换推算得到的圆心坐标为(308.869 2,10.431 2,171),与实际圆心(305,0,170)的偏差在可接受范围内。另外两个位置搜集的数据经过算法处理后得到的圆心结果为(307.597 7,7.703 6,172)和(309.460 1,10.122 8,171),在预期目标范围内。
  实验的目标是在XZ平面上找到圆孔圆心即X轴和Z轴坐标。v为在XZ平面上最终点和实际点的误差距离。为了验证本文算法的有效性,在XZ面上计算误差,選用平均绝对误差(MAE)、均方误差(MRE)及均方根误差(RMSE)作为误差评价指标,如式(17—19):
  实验结果分别为MAE=3.783 5,MSE=14.870 2,RMSE= 3.856 2,根据实际应用的需求,本实验误差满足要求。
转载注明来源:https://www.xzbu.com/8/view-15177257.htm