张结实 李玉杰 肖 瑶
(北京长安汽车工程技术研究有限责任公司,北京 102209)
关节臂式三坐标测量系统通过获取能够表征目标实体表面特征的密集采样点(称为“点云”)的空间三维坐标,为汽车实体逆向和检测创造了条件。然而,由于关节臂式三坐标测量系统在测量距离方面存在限制,当测量大尺寸物体(象整车外表面)时,无法一次测量。必须在环绕扫描对象一周的不同位置分别设点,采用多测站多视角扫描方式,获得该对象各个部位的分块点云数据,再通过分块数据拼接处理才能获得扫描对象完整的表面点云。目前序列拼接是实现多站激光扫描点云拼接的方法,显然该方法存在误差累积,会导致最后一站与首站的扫描点云间存在裂缝或交叉,拼接后的扫描点云不能准确地表达扫描对象的形态。该文就关节臂式三坐标测量系统扫描整车外表面的无缝拼接处理提出了如下方法:对分多次扫描完后的整车点云进行两两拼接,对目标点云(待拼接点云)的特征点在参考点集中找一个与之距离最近的点,建立点对的映射关系,然后以点对间距离平方和最小为条件,通过最小二乘法迭代解算出一个最优坐标变换关系式。根据此算法编译程序,输入目标点及参考点的坐标值即可得出最优的配对结果,达到点云拼接最小误差,并提高扫描精度的目标。
一种6自由度柔性三坐标测量机结构如图1所示。测量机由3根刚体臂、6个活动关节和1个测头组成。第1根固定臂与第2根中间臂之间、第2根与第3根末端臂之间、第3根与测头之间均为关节式连接,可作空间回转,而每个活动关节装有相互垂直的回转角传感器,可测量各个臂和测头在空间的位置。由于关节臂测量机的各臂长度固定,引起误差的主要因素为各转角的误差,因此转角误差的测量和补偿对提高关节臂测量机的精度十分重要。
蛙跳技术是在关节臂测量中用到的一种技术。在关节臂测量机的测量范围之外的测量需要用到蛙跳技术。理论上该技术可以使关机臂的测量范围扩大,但考虑到测量精度在每次蛙跳之后都会降低,所以在具体应用时应该权衡被测工件的尺寸公差要求来进行蛙跳对齐的实行。
图1 一种6自由度柔性三坐标测量机结构简图
蛙跳原理如图2所示,在位置1(Arm Position 1)时完成所有测量范围内的尺寸测量,在测量3个蛙跳球(A,B,C),然后移动关节臂测量机到位置2(Arm Position 2,确定能测到3个蛙跳球),在位置2处进行尺寸测量之前先按同样的顺序测量3个蛙跳完成蛙跳对齐。
图2 蛙跳原理示意图
(1)固定整车,调平车身。(2)黏贴钢球。
钢球黏贴位置要求:在相邻2个便携式三坐标的安装位置上,至少满足测量到3个公共钢球点。钢球需在车身上对称布置,便于看清车辆轮廓,区分车辆前后位置,给所有钢球进行编号,在点云对齐时更容易找到对应的点。
(1)尽量使用较少的蛙跳次数,两侧车门B柱位置各1次,车辆前后位置各2次,车身两侧蛙跳位置对称分布。
(2)保证在蛙跳前后2次的扫描仪安装位置上,关节臂能测量到3个以上的公共钢球点。
使用便携式三坐标扫描头进行扫描,首先选择车身两侧B柱位置开始扫描,车身B柱位置可以测量的钢球点覆盖面比较大,扫描车身左右两侧,然后按照上述方法将便携式三坐标扫描仪移动到车身前后2个位置分别扫描。最后得到在不同位置扫描的分块点云。
利用Geomagic Qualify软件对扫描的分块点云进行前期处理。扫描的分块点云的前期处理步骤为:
(1)缝合:将多次扫描(便携式三坐标没有移动位置)的分块点云缝合为一块点云。
(2)稀释:减少点云数据量,便于后期处理。
(3)去除离散点。
(4)渲染:便于看清零件形状,方便删除杂质点。
(5)手动删除杂质点。
(6)降噪:降低点云分层误差。
(7)对处理后的点云进行拼合对齐。
(8)在同一位置扫描(便携式三坐标没有移动位置)的点云数据保存在一个文件里面,即点云的坐标没有变化。
目前序列拼接是实现多站激光扫描点云拼接的方法,通过从点云中提取特征点对第2站扫描点云求取坐标转换参数,将其转换到第1站相同的坐标系中,将这2站的数据拼接起来,再将第3站数据向已拼接的第1站和第2站数据进行坐标转换和拼接,以此类推,直到完成最后1站数据的拼接。显然该方法存在误差累积,会导致最后一站与首站的扫描点云间存在裂缝或交叉,拼接后的扫描点云不能准确地表达扫描对象的形态。
4.2.1 拼接顺序
(1)根据图3所示的扫描顺序进行点云分块,第2块点云分别与第1块、第3块点云拼接,形成车体右侧点云。
图3 扫描顺序示意图
(2)第5块点云分别与第6块、第4块点云拼接,形成车体左侧点云。
(3)车体左侧点云与右侧点云通过黏贴在车体前后的公共钢球点拼接成一整体。
4.2.2 采用优化算法进行点云两两拼接
车体左侧点云与右侧点云拼接时,共有6~8个钢球点,公共钢球配对时前3个点的选择与顺序将影响2块点云的拼接误差。该文通过以下算法在所有钢球点排列组合中找到最小误差时的排列组合,使2块点云拼接误差达到最小。
(1)输入2块点云中的2组公共钢球点坐标(每组6~8个点),定义左侧(或右侧)点云钢球点坐标为A组,右侧(或左侧)点云钢球点坐标为B组。A组点为固定点,B组点为浮动点。
固定点集 A={A1,A2,A3…A6}
浮动点集 B={B1,B2,B3…B6}
(2)配对过程中,只要B组的前3个点的坐标确定,那么其余点坐标也就一一确定了。
以A1对B1,A2对B2,A3对B3为例,A1点与B1点为1号钢球分别在2次机器位置下扫描的点云点,所以配对时必须A1对B1,A2对B2……A6对B6,计算B组配对后的新坐标值,然后求出同一钢球点2次坐标的偏差,找到该配对情况下的最大误差。
①A1对B1。直接使B1new=A1,即 B1new= (x1,y1,z1)。
②A2对B2。由B1new到B2new的距离固定
图4 B2new位置示意图
(xB2new-x1)2+(yB2new-y1)2+(zB2new-z1)2=(xB2-xB1)2+(yB2-yB1)2+(zB2-zB1)2(1)
通过公式(1)可以约束B2new在以A1(B1new)为圆心、以为半径的球上运动,A1与A2的连线与此球交于2点,距离A2最近的那个点即为B2new,如图4所示。
当B2new在A1与A2的连线或其延长线上时,即
即有
综合式(1)、式(2)、式(3)、式(4)求出2个坐标值,再比较求出的这2个点与A2的距离,选择距离较小的那个即为B2new。
即有
A1、A2、A3在一个平面内,运动轨迹与此平面垂直,通过式(5)、式(6)可以约束B3new的轨迹在以A1与A2连线为轴线的圆上,A1、A2、A3所在的平面与此圆交于2个点,距离A3最近的那个点即为B3new,如图5所示。由A1、A2、A3三点坐标可求出A1、A2、A3所在的平面的法向量=(a,b,c),若B3new在该平面上,则=0,有
由式(5)、式(6)、式(7)求出2个坐标值,再比较求出的这两个点与A3的距离,选择距离较小的那个即为B3new。
图5 B3new位置示意图
图6 B4new位置示意图
④A4对B4。此时,B1new、B2new、B3new坐标已确定,B1new、B2new、B3new在一平面内,B4new,A4在平面外,根据B4new到这3个点的距离与原B4到B1、B2、B3的距离相同,可求出2个坐标值,选择距离较小的那个即为B4new,如图6所示。
⑤参照第(4)步可以把其余B组的点全部转换过来,此时可以求出A组对应点与B组对应点之间的偏差,其中的最大偏差即为在该顺序配对的情况下的拼接误差。
⑥根据①~⑤步算出所有配对情况下的拼接误差,其中最小值对应的配对顺序可以达到最小的拼接误差。
(3)程序运行示例。利用Python(一种解释型、面向对象、动态数据类型的高级程序设计语言)将以上算法转化成程序语言,再利用HTML(一种超文本标记语言,WWW的描述语言)制作程序运行界面。操作时只需将固定点坐标输入A组坐标栏,将浮动点坐标输入B组坐标栏,点击“提交”,界面右侧即可快速显示运行结果,如图7所示。排在TOP1的点排列顺序对应的偏差即为所有排列组合下的最小偏差。在Geomagic Qualify中进行对齐配对时,按照计算结果选择排列顺序将点云拼接,如图8所示。
图7 程序运行界面
图8 Qualify软件分块点云对齐界面
根据该文描述的整车扫描方法,使用便携式三坐标扫描系统扫描一辆轿车外表面,得到分散的6块点云,分别用2种点云拼接方式进行拼接,得到2个结果的整车外表面点云,在2个整车外表面相同位置测量相邻2块点云搭接处的偏差。传统方法顺序拼接所得的结果,平均偏差为:2.294 mm;用该文提出的方法拼接所得的结果,平均偏差为:1.495 mm。由此可见扫描精度大大提高。
该文提出的用关节臂式三坐标测量系统进行整车外形扫描的工作方法,扩展了设备的扫描范围,通过算法比对找到最优的点云匹配方案,从而提高了整体的扫描精度。