一、引言
在实际测量工作中,大型油罐、烟囱等罐状体由于受到外界作用力的影响,在使用一定时间后需要对其形状、容积等重新进行测量以判断是否发生变化,因此罐体检测成为必不可少的工作。检测扫描需要间隔一定高度扫描整个罐体,且要求测量精度高以及获取整个罐体变形量的大小,采用人工作业则劳动强度大且效率低,同时由于罐体不易于放置反射棱镜,因此考虑采用无棱镜测量机器人完成罐体的扫描检测任务。
测量机器人是一种能代替人工进行自动搜索、跟踪、识别和精确照准目标并获取角度、距离、三维坐标以及影像等信息的智能型电子全站仪。它是在全站仪基础上集成步进马达、CCD影像传感器构成的视频成像系统,并配置智能化的控制及应用软件发展而成。其目标自动寻找、识别和精确照准功能,可在短时间内对多个目标点进行持续和重复观测,目前一些测量机器人不需要合作目标,即可根据物体的特征点、轮廓线和纹理,用影像处理的方法自动识别、匹配和照准目标,获取目标的三维坐标及形状,成为罐体扫描检测的首选。
TM30是徕卡测量系统2009年推出的一款无棱镜测量机器人,该仪器测量精度高、速度快,且为全自动化设计,能够确保全天候无间断的工作。徕卡TM30带有精确的自动照准、快速可靠的智能自动识别系统,自动目标识别测程可达3000m且精度达到毫米级,该技术能够大大提高监测半径,降低设备及资金的投入。TM30的数字影像采集功能可以在测点时拍摄监测点的影像信息并保存及传输,在远程控制的同时实时了解监测区域的通视情况和潜在风险。该仪器使用的新一代PinPoint EDM测距技术,能够达到更高的测距精度,有棱镜测距精度为±(0.6mm+1×10-6D) ,无棱镜测距精度为±(2mm+2×10-6D),无棱镜测程超过1000m。测角精度有±0.5"和±0.1"两种选择,能确保每次测量的高可靠性,同时能够胜任最恶劣的工作环境。TM30还提供机载程序,可以用GeoC++平台编写专用程序,满足用户的实际需求,在罐状体扫描检测方面拥有极大优势和应用前景。
二、软件及编程框架
2.1 GeoC++开发的特点及优点
徕卡测量系统为TM30测量机器人提供了GeoC++的软件开发平台,该开发工具采用面向对象的方法,具有丰富的应用函数,功能强大。该开发系统还提供了仪器模拟器,可通过软件方法模拟仪器环境调试程序。
GeoC++编程框架如图1所示,包含GPS和TPS两种测量模式,且各自有支持自己的硬件及应用程序,同时还包含通用的硬件和应用程序。硬件库分别为:GPS硬件、TPS硬件、通用硬件、数据库、坐标转换、几何图形以及传感器获得的数据。
软件库如图2所示,一般的,每一个机载应用程序都包括以下四个类:
一个应用程序类(Application类),该类是从GUI::ApplicationC中继承而来;
一个或多个cotroller类,controller类是属于application类,该类是从GUI::ControllerC中继承而来,controller类用于产生和维护dialog类,例如打开、关闭对话框或是单击某个功能键;
一个或多个model类,model类属于application类或是controller类。model类是从GUI::ModelC中继承得到,一般的,model类中包含有应用程序所需的数据;
一个或多个dialog类,dialog类属于controller类,且每个controller类包含有至少一个dialog类,为了能够在dialog类更容易得获得应用程序的数据,则需继承GUI::ModelHandlerC基类。
2.2 罐体扫描监测主要功能模块
罐体扫描即是对罐体变形进行扫描测量,其主要功能模块包括:扫描设置、基圆扫描以及罐体扫描,扫描界面如图3所示。
图3 罐体扫描选择界面
2.2.1 扫描设置
扫描设置包括:基圆扫描设置(自动或手动)、基圆扫描方式(部分扫描或全扫描)、扫描高度间距设置、扫描步进(距离、角度、等分)、步进输入等;扫描设置界面如图4所示。基圆扫描设置分为自动扫描或手动扫描,用户可根据实际需要进行选择,若选择自动扫描则需要设置扫描方式——进行部分扫描或是全扫描,部分扫描则是根据设定的起始点和终止点坐标完成扫描,在设定基圆扫描信息之后,还需设置整个罐体扫描高度间距以及扫描的步进,高度间距即为按照设定的高度进行横向扫描罐体,扫描步进可按照距离、角度或等分来进行扫描,同时对于每种步进方式设置步进长度输入,至此扫描设置完成。
图4 扫描设置界面
2.2.2 基圆扫描
基圆扫描包括:基圆确定和基圆扫描。基圆确定即为通过手动扫描三个控制点,初始确定罐体圆心及半径,然后再根据基圆扫描设置自动或手动扫描基圆,并对扫描结果进行数据拟合分析,基圆扫描界面如图5所示。
图5 基圆扫描界面
2.2.3 罐体扫描
罐体扫描即为根据扫描高度间距设置结果分别自动扫描各个高度的罐体断面以完成整个的罐体扫描,罐体扫描界面如图6所示。
图6 罐体扫描开始界面
三、算法介绍及实例分析
3.1 平差原理
数据处理采用的是基于稳健估计的直接最小二乘圆拟合算法,由于罐体横截面一般为标准的圆面,因此用圆方程可表示为:
(1)
式中,为圆心坐标;R为圆的半径。
对于测点,其误差方程为:
(2)
将(2)式进行线性化后,并令
,则方程为:
(3)
解算过程中圆心坐标及半径的迭代初值可以取为三点确定的圆心坐标及半径。然而在实际测量过程中,由于粗差的存在使得拟合精度降低,甚至偏离拟合结果,因此需要权函数剔除粗差,权函数计算如下:
(4)
式中,,n为观测个数,t为必要观测数。上述求解需迭代完成,其中第一次迭代时P取为单位阵,第2、3、4次迭代取,以后取,当权值基本保持不变时迭代结束。
3.2 数据分析
利用基于TM30的GeoC++平台开发的罐体扫描检测程序对某油罐进行扫描,该油罐高度为8m,半径为6m,由8段组成,每一段的高度为1.5m,分别在每段的1/4、3/4高度处扫描横截面,基圆采集数据如表1所示。
表1 基圆采集数据
根据基圆采集数据确定该罐体的圆心坐标为:(12.8775,1.8391),半径为5.9717m。利用基于稳健估计的最小二乘圆拟合算法对某一段罐体采集数据进行分析,得到拟合的精度为0.00279m,拟合偏差结果如示。
表2 罐体采集数据分析
基于稳健估计的最小二乘圆拟合算法,能够降低粗差对拟合结果的影响从而确保拟合的精度,因此在罐体扫描检测软件中使用该算法是准确可靠的。
四、结束语
本文介绍了徕卡TM3 0 测量机器人的开发平台GeoC++以及在该平台上开发罐体扫描检测应用程序,同时对于开发采用的算法——基于稳健估计的最小二乘算法进行了介绍,并将应用于实际工程的计算精度进行了说明。本文所用仪器及方法有以下几点优势:徕卡TM30测量机器人测量精度高,无棱镜技术大大节省了人力物力,提高了工作效率,降低了成本;GeoC++机载软件无需与机器连接,使用方便,在实际工程中应用中具有一定的优势;基于稳健估计的最小二乘算法能够对粗差进行剔除,提高拟合精度,拟合结果符合实际情况。