背景技术
随着人们需求的日益提高和硬盘技术的飞速发展,硬盘的存储容量越来越大,体积越来越小,读写速度愈来愈快;而作为硬盘的主要存储介质盘片相应出现以下特征:
(1)盘片磁道密度日益激增。现阶段盘片密度接近1Tb/in2,随着各种新技术的不断涌现,预计到2015年前后,盘片的密度将达到10Tb/in2。与此同时,对应的磁道宽度会由30~50nm被压缩到10nm以下。
(2)盘片转速进一步提高。常见硬盘转速可达5400 RPM和7200 RPM,为了更进一步降低寻轨时间而提高读写速度,转速还将增加。目前已经出现了转速高达15000RPM的硬盘,其平均寻轨时间低于4ms。
根据3σ法则,在硬盘数据的读取过程中,为达到数据读写准确性和可靠性的要求,磁头的定位误差不得超过磁道宽度的10%。因此,为了从高速旋转的盘片上准确无误读写到数据,对磁头的寻轨精度提出了更高的要求。其中,严格控制磁头的弹性臂的静姿态机械参数是非常重要的。在弹性臂的生产过程中,很多加工因素和一些不可预知的因素会影响弹性臂的静姿态机械参数。为了提高磁头的一次合格率以及降低后续工序的成本,在生产过程中采用测量、调校、再测量的工艺流程。可以看出,精密的测量是生产中严格控制弹性臂的静姿态机械参数的关键;只有严格地将弹性臂的各项机械参数控制在规定数值范围内,才能使安装在弹性臂上的读写磁头能精确寻道。
对于弹性臂静姿态机械参数,在硬盘技术中多以LBT、Sag angle和Sag twist等参数来衡量。如图1所示,LBT表示为A、B两点连线AB与G、H两点连线GH绕弹性臂中心线(图1中的虚线)方向的夹角。Sag twist表示为G、H两点连线GH与K、L两点连线KL绕弹性臂中心线方向的夹角。
Sag angle表示为G、H、I、J拟合平面GHIJ与K、L、M、N拟合平面KLMN在弹性臂中心线方向的夹角。
目前,测量弹性臂静姿态机械参数主要使用影像处理坐标测量仪,其测量原理主要是利用点激光的聚焦特性,通过对弹性臂上不同的测量点自动聚焦,测量返回的激光能量密度最大值,然后计算焦距的变化,作为测量点之间高度的变化;再结合已知的测量点的平面相对位置关系,就可以得到各个点的空间三维坐标信息,从而计算出弹性臂的静姿态机械参数。其中,点激光由激光器产生,为一个圆形的光点,如图2左边的图像所示,在圆形的中心处最亮,向四周逐渐变暗。点激光的亮度呈高斯分布,如图2中右边的表格所示,中间的数值最高,两边的数值逐渐降低为0。在测量过程中需要不断移动该激光器的位置使点激光移动到需要测量的位置。该方法主要存在以下问题:
1、效率极低。基于现有测量采用点激光,每次测量只能针对弹性臂表面上的一点,对于一个弹性臂的测量就需要测量其表面上的多个点。一台影像处理坐标测量仪的UPH(Unit Per Hour,每小时的产出)为80左右,不能跟上生产的需求,只能采用抽检的方式对产品进行检验,因此效率很低且操作麻烦。
2、定位精度不高。由于依靠机械运动对测量点进行定位,电机的运动误差在一定程度上影响了重复定位的一致性,导致弹性臂表面点的定位出现偏差。
有鉴于此,本发明提供一种基于线扫描的弹性臂姿态测量方法及***。
发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供一种基于线扫描的弹性臂姿态测量方法及***,以解决现有技术中采用点激光方式定位精度不高,且工作效率低的问题。
为了达到上述目的,本发明采取了以下技术方案:
一种基于线扫描的弹性臂姿态测量方法,其包括:
A、将弹性臂固定在运动控制平台上,控制运动控制平台单向移动、并开启激光器发出线激光扫描弹性臂,同时由CDD摄像机获取弹性臂的二维的激光扫描图像;
B、对所述激光扫描图像进行特征信息提取,获取弹性臂的轮廓线;
C、将所述轮廓线转化成三维坐标信息并存储;
D、根据三维坐标信息计算弹性臂的测量参数。
所述的基于线扫描的弹性臂姿态测量方法,其中,在步骤A中,所述激光器发出的线激光为一条连续的激光线,激光器的投射方向与水平方向呈预定夹角;所述线激光具有第一线宽,激光扫描图像中的激光光带具有相应宽度的第二线宽。
所述的基于线扫描的弹性臂姿态测量方法,其中,所述步骤B具体包括:
B1、对激光扫描图像中的每帧图像进行区域裁剪,获取包含激光光带的待处理区域;
B2、判断待处理区域中每个像素的灰度值是否大于或等于阈值:若是,则保留该像素的灰度值;否则,将该像素的灰度值设置为0;
B3、采用中心位置提取算法对激光扫描图像进行处理,提取出轮廓线。
所述的基于线扫描的弹性臂姿态测量方法,其中, 所述步骤B3中,中心位置提取算法为重心法:轮廓线通过以下公式计算获得: ,其中,yn为列中激光光带的中心位置,g(x,y)为像素(x,y)的灰度级,x为像素(x,y)的水平位置,y为像素(x,y)的垂直位置。变量Gsum表示对列中灰度值大于或等于阈值的像素计算其灰度级g(x,y)与所在行y的乘积,并累加的结果。Wsum表示上述像素的灰度级g(x,y)累加的结果。
所述的基于线扫描的弹性臂姿态测量方法,其中,在所述步骤C中,将每帧的轮廓线数据按照扫描的间隔顺序组织成二维数组A[N][M];其中,所述N表示为第N帧图像,所述M表示一帧图像中的第M列,二维数组A[N][M]中的值a(N,M)表示第N帧图像中,轮廓线的第M列上的位置坐标值。
所述的基于线扫描的弹性臂姿态测量方法,其中,在所述步骤C之前,还包括对轮廓线数据进行预处理;所述预处理包括对轮廓线数据进行中值滤波或卷积平滑。
所述的基于线扫描的弹性臂姿态测量方法,其中,在所述步骤D中,所述测量参数包括进行扭曲度测量、角度测量和高度测量。
一种基于线扫描的弹性臂姿态测量***,其包括:运动控制平台、CDD摄像机、激光器和处理器;
所述运动控制平台,用于固定弹性臂进行单向移动;
所述激光器,用于发出线激光扫描弹性臂;
所述CDD摄像机,用于获取弹性臂的二维的激光扫描图像;
所述处理器,用于对所述激光扫描图像进行特征信息提取,获取弹性臂的轮廓线;将所述轮廓线转化成三维坐标信息并存储;根据三维坐标信息计算弹性臂的测量参数。
所述的弹性臂姿态测量***,其中,所述激光器发出的线激光为一条连续的激光线,激光器的投射方向与水平方向呈预定夹角。
所述的弹性臂姿态测量***,其中,所述处理器包括:
区域裁剪模块,用于对激光扫描图像中的每帧图像进行区域裁剪,获取包含激光光带的待处理区域;
判断模块,用于判断待处理区域中每个像素的灰度值是否大于或等于阈值,在判断大于或等于阈值时保留该像素的灰度值,在判断小于阈值时将该像素的灰度值设置为0;
算法模块,用于在判断灰度值大于或等于阈值时,采用中心位置提取算法对激光扫描图像进行处理,提取出轮廓线。
相较于现有技术,本发明提供的基于线扫描的弹性臂姿态测量方法及***,将弹性臂固定在运动控制平台上,控制运动控制平台单向移动时开启激光器发出线激光扫描弹性臂,同时由CDD摄像机获取弹性臂的激光扫描图像并进行特征信息提取、获取弹性臂的轮廓线,再将轮廓线转化成三维坐标信息,根据三维坐标信息即可计算出弹性臂的测量参数;本发明采用线激光扫描一次即可获得整个弹性臂的二维的激光扫描图像,将激光扫描图像转换成三维坐标信息,获得了整个弹性臂的姿态参数,避免了点激光定位不精确的问题,也避免了点激光多次测量的问题,加快了测量速度、提高了工作效率。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
请参阅图3,本发明提供的基于线扫描的弹性臂姿态测量方法包括:
S100、将弹性臂固定在运动控制平台上,控制运动控制平台单向移动、并开启激光器发出线激光扫描弹性臂,同时由CDD摄像机获取弹性臂的二维的激光扫描图像。
S200、对所述激光扫描图像进行特征信息提取,获取弹性臂的轮廓线。
S300、将所述轮廓线转化成三维坐标信息并存储。
S400、根据三维坐标信息计算弹性臂的测量参数。
步骤S100中,激光器固定不动,而运动控制平台单向移动(向上移动或向下移动)时带动弹性臂相应移动,相当于激光器发出的线激光从上到下或从下到上扫描了整个弹性臂的表面。请一并参阅图4和图5,CCD摄像机10垂直于水平面放置。激光器20发出一条连续的激光线,其投射方向与水平方向呈一预定夹角α,预定夹角α为固定值。当线激光投射到弹性臂40表面时,不同深度的表面对光线产生不同的反射投影,根据弹性臂40、线激光、CDD摄像机10之间的三角位置关系获得剖面轮廓图像,使得线激光在CDD摄像机上产生与剖面深度信息成三角比例对应的轮廓图像。H为被测弹性臂的高度,线激光投射到不同的高度时,在水平方向的投影距离为△H,可以得到H=△H×tanα。因此只要知道式中的△H,即可得到高度H。△H如图4右边所示,线激光投射到弹性臂表面时,在弹性臂40表面上形成了激光光带。通过CDD摄像机10摄取包含这条激光光带所得到的图像即为激光扫描图像。弹性臂的三维信息就包含在激光扫描图像之中。所述激光扫描图像为灰度图像。图4和图5中的弹性臂40的外形仅为示意。
激光扫描图像质量的好坏与激光器、镜头及CCD摄像机有关。CCD摄像机的镜头的分辨率确定了图像质量的清晰度。线激光是指圆形的激光(点激光)通过柱面反射镜后被展开成一条连续的激光线。该激光线具有一定宽度的第一线宽,因此投射到物体表面形成具有相应宽度的第二线宽的激光带、即激光光带。如图6所示,从激光带的横截面上看,线激光的亮度也是近似高斯分布的曲线,在激光带的中心处最亮,并向激光带的边沿逐渐变暗。激光带的线宽大小是由激光器的产品参数决定的,而线宽的大小决定了测量的精度,激光带越细,其能分辨的物体也越精细,测量的精度也就越高。因此,激光器的选取尤为重要。
图6仅示出一帧中的激光光带,一系列帧图像就组合成弹性臂的三维数据的最原始数据形式。由于激光扫描图像以像素为单位,其包含的数据量非常大,存放在硬盘中会占用很大的空间,而且频繁对硬盘的读写访问也会大大降低***的性能,因此在***中并不保存这些激光扫描图像数据;同时,为了提高测量的精确度,需要对激光扫描图像进行特征信息提取,计算出图6中激光光带的中心位置,也就是激光带的最亮处,即保存激光扫描图像处理后所生成的轮廓线数据。
应当理解的是,在扫描过程中,CDD摄像机按一定的时间间隙捕捉线激光扫描过的弹性体表面,产生由多个帧组成的激光扫描图像。对激光扫描图像的相应处理需要对每一帧图像都进行处理,为此,所述步骤S200具体包括:
S201、对激光扫描图像中的每帧图像进行区域裁剪,获取包含激光光带的待处理区域。
S202、判断待处理区域中每个像素的灰度值是否大于或等于阈值:若是,则保留该像素的灰度值;否则,将该像素的灰度值设置为0。
S203、采用中心位置提取算法对激光扫描图像进行处理,提取出轮廓线。
从图6中可以看出,激光光带大部分集中在一起,如图6中a所示的部分。但是由于噪声、反光或其他干扰,会产生有少部分光带杂质,如图6中b所示的部分。则在对激光扫描图像进行特征提取之前,为了去除图像中的无关区域、减少噪声干扰,提高图像处理的效率和精度,需要对激光扫描图像进行预处理。
首先进行区域裁剪,在步骤S201中为激光扫描图像设定一个ROI (Region of Interesting,感兴趣区域)区域,也叫待处理区域。该ROI区域为包含激光光带的最小矩形,如图6中所示的虚线之间的区域。对激光扫描图像进行ROI区域裁剪的好处包括:一是在保留了最大激光光带的图像信息的前提下缩小了激光扫描图像的大小,极大地减少了后续对图像处理的运算量。二是可以部分地减少由于激光反光所造成的干扰,如图6中b所示的部分,以提高***的测量精度。裁剪后的图象如图7所示
接着进行阈值处理,从图7中可以看出,激光光带的边缘不平滑,周围有一些干扰产生的光点。这些光点的亮度比激光光带中心的亮度低。在步骤S202中设定一阈值,待处理区域中像素的灰度值大于或等于阈值,表示其为激光光带的主要组成部分,需保留其灰度值。灰度值小于阈值,表示其为干扰光点,可将该像素的灰度值设置为0、即黑色,该像素不参与后续运算,得到如图8所示的图像,图8中激光光带的边缘明显比图7中的平滑,且周围无其他光点。经过这种图像分割技术后,可将ROI区域的前景和背景区分开,达到去除ROI区域中的背景和噪声、提高后续运算的准确性的目的。
最后采用中心位置提取算法获得图8中激光光带的最亮的部分的中心位置、即轮廓线。中心位置提取算法包括细化法、二值法、极值法、阈值法、重心法等,在本实施例中采用重心法,其利用了激光光带中所有像素的灰度级及其所处的位置,精度可达到亚像素级。所述轮廓线通过以下公式计算获得:,其中,yn为列中激光光带的中心位置,g(x,y)为像素(x,y)的灰度级,x为像素(x,y)的水平位置,y为像素(x,y)的垂直位置。变量Gsum表示对列中灰度值大于或等于阈值的像素计算其灰度级g(x,y)与所在行y的乘积,并累加的结果。Wsum表示上述像素的灰度级g(x,y)累加的结果。对列中所有像素遍历后,将计算结果yn存储。y1表示激光光带中第一列的中心位置,y2表示该激光光带中第二列的中心位置,以此类推,yn表示激光光带中最后一列的中心位置,将y1 、y2、……、yn组合在一起就形成如图9所示的轮廓线,由此可见,轮廓线是由激光光带的每一列中最亮的像素点组成,轮廓线的每一列上仅有一个像素点。
采用上述步骤S201~S203对激光扫描图像中的每一帧图像都进行处理,每一帧图像都提取出一条轮廓线,y1 、y2、……、yn表示一帧中的轮廓线数据。这些轮廓线数据作为***对弹性臂进行三维重构的源数据,后续的处理、显示及测量均使用这些数据。基于轮廓线数据在提取中是以像素为单位的,在后续处理时可以通过像素数、毫米转换系数和相对水平零位将这些轮廓线数据转换成实际单位。
为方便存取和后续处理,这些轮廓线数据按一定的形式来组织存放。即在步骤S300中,将每帧的轮廓线数据按照扫描的间隔顺序组织成二维数组A[N][M]。每一帧中提取的轮廓线数据是一维数组,即y1 、y2、……、yn。数组的大小和图像的水平分辨率一致,如1536×512的激光扫描图像其轮廓线数据就是一个大小为1536的数组。将每一帧的轮廓线数据按照扫描的间隔顺序组织起来就形成了二维数组A[N][M]。扫描的间隔顺序即指CDD摄像机拍摄弹性体表面时遵循的时间间隙以及拍摄每一帧的先后顺序。
二维数组A[N][M]如图10所示。图10中由多个方块按照行*列的方式排列。N表示为第N帧图像,也即是第N行方块。M表示一帧图像中的第M列,也即是第M竖列方块。每一个方块代表二维数组A[N][M]中的一个值a(N,M),表示第N帧图像中,轮廓线的第M列上的位置坐标值、也即是轮廓线的中心位置的值。例如,方块1表示第一帧第一列的值,对应轮廓线数据y1,方块2表示第一帧第二列的值,对应轮廓线数据y2。也可以理解为,第一行方块的值组合起来形成第一帧图像的轮廓线的波形,第二行方块的值组合起来形成第二帧图像的轮廓线的波形,轮廓线的波形如图9所示。
按照这种二维数组的方式即可获得对应的三维坐标信息。方块的帧数N就相当于Y轴上的位置数据,列数M相当于X轴上的位置数据,数值a(N,M)、即yn相当于Z轴上的位置数据。由于在存储时仅保存了Z轴上的位置数据,相当于数据量只有原来的1/3,X轴和Y轴的位置描述根据其数据存放的位置通过再运算即可求得,使存储的数据量大大减少,占用的内存空间也大大减小。同时,由于在结果显示时需要对每一个坐标点数据进行遍历显示,采用这种顺序存放的二维数组的结构能为坐标点的遍历提供很大的方便,方便了存取。
在具体实施时,由于***在使用时所处的环境及其他不可避免的原因(如环境光干扰、CCD摄像机的电噪声、激光多次反射干扰等),造成轮廓线数据出现明显的棱角和许多“尖刺”,对进一步的测量会有较大的影响。为了减少这些由于外界的干扰而产生的异常数距,需要对轮廓线数据进行预处理。基于本实施例采用了组织方式,是数据格式和保持方式上与图像的存储一致,因此,可以按图像的处理方法对三维的轮廓线数据进行中值滤波、卷积平滑等处理。
中值滤波的基本方法是把数字图像中一点的值用该点的一个邻域中各点值的中值代替。由于中值滤波计算的是中间值,需要用到排序算法,因此在实现时采用了标准的冒泡捧序算法。
虽然中值滤波能在保持模型原本形状的情况下较好地恢复了三维数据中的“尖刺”点处的原本数据,但仍有许多的棱角使用得模型的表面不够真实。为了显示更加接近真实,观察到这些棱角都是一些高频的信号,参考二维图像处理高频信号噪声的做法,可以采用低通滤波器来平滑图像,在本实施例中也可采用类似的卷积平滑算法(图像中一点的值用该点的一个邻域中各点值的平均值代替)。
获得了三维坐标信息后,即可直观地模拟出弹性臂处于工作状态时的形态特征,需要计算的测量参数包括多个目标区域的扭曲度、角度和高度信息。
1、扭曲度测量。
选择弹性臂上不同区域的点,可以计算出弹性臂制定区域绕X轴的扭曲度,请同时参阅图1和图11。通过X、Y方向上的数据,选择弹性臂基片(Base Plate)上A、B两个点;通过对A、B两点Y、Z方向上的数据进行处理,可以获得弹性臂基片绕X轴的扭曲度,称之为AB Twist。同理,可以计算出其他制定区域的扭曲度。
实际计算中,在A(Xa,Ya)、B(Xb,Yb)两点周围选取特定的ROI区域,如图11所示的虚线框,其中Ya=Yb。对选定的ROI区域内的点的高度求平均值,记为A、B两点的高度Za,Zb。AB Twist可以用以下公式进行计算:AB Twist = arctan ((Za-Zb)/ (Ya-Yb))。
2、角度测量
计算出弹性臂选定面之间的折弯角。例如图1中弹性臂GHIJ组成的面与KLMN组成的面之间的角度。由于两个交界的区域称为Sag Location,称角度为Sag angle。
同扭曲度一样,实际计算中,在G、H、I、J、K、L、M、N点周围选取特定的ROI框,如图12所示的虚线框。对选定的ROI区域内的点的高度求平均值,记为各点的高度值分别为Zg、Zh、Zi、Zj、Zk、Zl、Zm、Zn。
对于折弯角Sag angle的计算,可以通过平面拟合及二面角的公式进行计算。
3、高度测量
直接计算出特定区域的相对高度,本实施例中选择图1中的虚线框中的部分,放大后如图13所示。P21,P22为舌片限位器(Limiter)上的点,P20,P23为弹性臂加载梁(Load Beam)底面的点。可以计算出限位器的相对高度,称之为Limiter Gap。同理,在弹性臂重构图像上的选定ROI区域,如图13虚线框,得出四个指定点P20、P21、P22、P23在Z方向上的值,相减得出limiter的相对高度,即Limiter Gap。
基于上述的线扫描的弹性臂姿态测量方法,本发明还相应提供一种基于线扫描的弹性臂姿态测量***,请同时参阅图4和图14;所述弹性臂姿态测量***包括CDD摄像机10、激光器20、运动控制平台30和处理器(图中未示出)。所述运动控制平台30用于固定弹性臂40进行单向移动。所述激光器20用于发出线激光,在运动控制平台30带动弹性臂40一起移动时扫描弹性臂的表面。所述CDD摄像机10获取线激光扫描得到的弹性臂的二维的激光扫描图像,其设置在运动控制平台30的正上方,以能拍摄到弹性臂40的所有图像为准。所述处理器与CDD摄像机10连接,用于对CDD摄像机10拍摄到的激光扫描图像进行特征信息提取,获取弹性臂的轮廓线;将所述轮廓线转化成三维坐标信息并存储;根据三维坐标信息计算弹性臂的测量参数。
所述激光器20发出的线激光为一条连续的激光线,激光器20的投射方向与水平方向呈预定夹角α。这样才能使不同深度的弹性臂40的表面对光线产生不同的反射投影。
在具体实施时,所述处理器可以为电脑,也可以为带有数据处理功能和显示屏的设备。处理器包括依次连接的区域裁剪模块501、判断模块502和算法模块503。所述区域裁剪模块501对激光扫描图像中的每帧图像进行区域裁剪,获取包含激光光带的待处理区域。判断模块502判断待处理区域中每个像素的灰度值是否大于或等于阈值,在判断大于或等于阈值时保留该像素的灰度值,在判断小于阈值时将该像素的灰度值设置为0、即黑色。算法模块503在判断灰度值大于或等于阈值时,采用中心位置提取算法对激光扫描图像进行处理,提取出轮廓线。
当提取出轮廓线后,所述算法模块503还用于对轮廓线数据进行中值滤波、卷积平滑等预处理。
所述处理器还包括数据处理模块,其与算法模块503连接,用于将每帧的轮廓线数据按照扫描的间隔顺序组织成二维数组,并将二维数组转化成三维坐标信息。
所述处理器还包括测量模块,其与数据处理模块连接,用于根据三维坐标信息计算弹性臂的测量参数,包括扭曲度测量、角度测量和高度测量。
综上所述,本发明提供的基于线扫描的弹性臂姿态测量方法及***,将弹性臂固定在运动控制平台上,控制运动控制平台单向移动时开启激光器发出线激光扫描弹性臂,同时由CDD摄像机获取弹性臂的激光扫描图像并进行特征信息提取、获取弹性臂的轮廓线,再将轮廓线转化成三维坐标信息,根据三维坐标信息即可计算出弹性臂的测量参数;本发明采用线激光扫描一次即可获得整个弹性臂的二维的激光扫描图像,将激光扫描图像转换成三维坐标信息,获得了整个弹性臂的姿态参数,避免了点激光定位不精确的问题,也避免了点激光多次测量的问题,加快了测量速度、提高了工作效率。
本发明进行特征信息提取时采用了区域裁剪的方式,在保留了最大激光光带的图像信息的前提下缩小了激光扫描图像的大小,极大地减少了后续对图像处理的运算量,还减少由于激光反光所造成的干扰。
本发明对轮廓线数据按一定的形式来组织存放,仅存储二维数组的数值,使存储的数据量大大减少,占用的内存空间也大大减小。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。