一切建(构)筑物、设备,均不得侵入铁路建筑限界。因此,在铁路工程建设期和运营期进行铁路限界检测都是一项重要工作,尤其是隧道工程。
徕卡新推出的高精度MS50全站扫描仪可以快速高效地获取反映隧道现状的密集点云,为限界检测提供了一个全新的技术手段。本文拟结合实际工程应用,系统研究检测方法及其数据处理过程,并运用VC++语言,结合MFC框架、PCL库、VTK库等编制通用数据处理软件,实现限界检测功能。
一、MS50全站扫描仪技术优势
1. MS50与三维激光扫描仪的区别
常见的三维激光扫描仪常采用以仪器中心为原点的任意三维空间直角坐标系,它是通过测量仪器中心至目标点的斜距,再结合仪器水平和垂直旋转角度计算出测点三维坐标。
MS50全站扫描仪提供了一个功能全面的解决方案,集成了高精度全站仪技术和高速三维扫描技术。它直接采用大地测量三维空间直角坐标系。
这一根本性的变化使得测量外业更简单,成果更真实。如使用普通三维激光扫描仪必须在测站之间布设拼接靶球或人工标志,测站拼接将带来精度损失。在笔者的工作实践中也曾发生过因拼接位置设置不合理导致最终失败的案例。而徕卡MS50全站扫描仪解决了这个问题,完成设站和定向后即可开始扫描,各测站基准统一,检测点云无需拼接,测量坐标真实可靠。
2. MS50适应隧道工程检测的优势
隧道施工以施工控制网为基准开展各项工作,施工控制网包括平面坐标和高程。一般铁路工程隧道洞内导线点间距约200m,隧道中线桩约100m。
普通三维激光扫描仪受自身测程和精度限制,若不加密控制网难以快速开展工作,而MS50全站扫描仪采用源自航天的WFD激光测距技术,测程长达2000m,测量精度在100m处高达0.8mm。
MS50按全站仪方式设站和扫描,有利于现场测量人员熟练使用,采用后方交会方式一步完成三维设站,工作方式以施工控制网为基准,完全适应线性隧道工程测量任务,精度无损失。
3. MS50扫描测量方法
三维激光扫描仪一般按等角间隔进行扫描,因此距离扫描仪越远点位密度越小。为保证隧道检测点云分布均匀,测量时采用对向扫描方式(如图1所示)。
二、数据处理关键技术
1. PCL点云库
PCL(Point Cloud Library)完全是一个的模块化的现代C++模板库。其基于以下第三方库:Boost、Eigen、FLANN、VTK、CUDA、OpenNI、Qhull,实现点云相关的获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。
PCL采用BSD授权方式,可以免费进行商业和学术应用,有利于科研人员进行学术研究。但是在国内应用PCL的人还不多,同时PCL库构架又十分复杂,初学者或开发研究往往需要参阅大量文献。
2. 处理流程
导入点云->格式转换->设置参数->断面提取->限界分析->输出成果。
3. 格式转换
徕卡MS50测量数据导入厂家Infinity软件中查看,导出PTS格式后提取前三个字段(即ENH)形成PCD文件。
4.坐标系定义
通过点云数据分析隧道限界涉及到不同三维空间直角坐标系定义及其转换关系,现明确如下:
1)MS50全站扫描仪采用左手坐标系(简称测量坐标系),点位坐标表示为N/E/H。PCL库采用右手坐标系(简称数学坐标系),点位坐标表示为X/Y/Z。对应关系:N=Y、E=X、H=Z。
2)隧道限界分析时采用右手坐标系(简称数学坐标系),以左线中心内轨面为原点,横轴指向右侧(X轴),竖轴向上(Z轴),Y轴指向大里程方向。
5.断面提取算法
PCL v1.6库原生clipper()平面截取函数存在错误,改造后实现了通过两次平面截取来提取断面点云的功能(两平面之间距离称为断面厚度[3])。
平面方程采用A·X + B·Y + C·Z + D = 0表达式,其系数组成法向量表示平面空间状态。二次平面截取过程分析:第一次平面截取将点云分成去除和留下两部分,在留下的点云中进行第二次平面截取,提取出的断面点云先平移再旋转,然后才能在二维平面限界分析。关键代码如下:
// 断面提取
Eigen::Vector4f vL,vR;
double dCK = LeftLine.ConK( dkCal );
double dKL = dCK - dRange - dSeg;
double dKR = dCK + dRange + dSeg;
oPt = LeftLine.GetV_XYZ( dKL );
vL <<oPt.A,oPt.B,oPt.C,oPt.D;
oPt = LeftLine.GetV_XYZ( dKR );
vR <<oPt.A,oPt.B,oPt.C,oPt.D;
ts::CrsClipper3D<pcl::PointXYZ>clipper(vL);
clipper.setPlaneParameters (vR);
// 平面投影
pcl::PointCloud<pcl::PointXYZ>cld_proj;
pcl::ProjectInliers<pcl::PointXYZ>proj;
proj.setModelType(pcl::SACMODEL_PLANE);
proj.setInputCloud(cld.makeShared());
proj.setModelpTo( plane2d );
proj.filter( cld_proj );
// 点云平移
float R1 = 0;
pcl::PointCloud<pcl::PointXYZ>cld_T;
Eigen::Affine3f T =Affine3f::Identity();
T.translation()<<-O.Y,-O.X,-O.H;
T.rotate(AngleAxisf(R1,Vector3f::UnitZ()));
pcl::transformPointCloud(cld_proj,cld_T, T);
// 点云旋转
float R2 = 2 * M_PI - O.dA + M_PI / 2;
Eigen::Affine3f R =Affine3f::Identity();
R.translation() << 0, 0, 0;
R.rotate(AngleAxisf(R2,Vector3f::UnitZ()));
pcl::PointCloud<pcl::PointXYZ>cld_R;
pcl::TformPointCloud(cld_T, cld_R, R);
6. 限界分析算法
铁路隧道限界测量是绝对位置测量,必须以施工控制网和隧道设计为基准进行分析。参数包括:断链表、曲线表、坡度表、竖曲线表、线间距表、隧道断
面尺寸、类型及其分布里程、隧道限界轮廓等。
限界分析就是要计算出检测点到限界的最小距离。基本思路是:先计算限界中心至检测点方位,初步判定对应限界边,若能确定投影坐标则两点距离差即为检测偏差,否则向相邻边界扩展,仍不能确定投影坐标时则取边界角点为投影点计算偏差。
三、工程应用案例
渝黔铁路扩能改造工程作为中国“十二五”综合交通运输体系规划重点项目设计建设标准为国铁Ⅰ级双线电气化铁路,设计时速200km/h。隧道建筑限界执行«铁路技术管理规程»KH-200客货共线技术标准。
«铁路技术管理规程»规定的隧道限界均按照单线直线段定义,在曲线段应按规定进行加宽,在双线时还应考虑线间距。
应用本文方法共检测隧道15座,总长度超过10km,按每1m 一个断面进行分析(断面厚度为5cm)。断面透视效果如图2所示,某断面限界分析如图3所示。
四、结束语
采用徕卡MS50全站扫描仪检测铁路隧道建筑限界是一种新的、快速高效的测量方法,预示扫描技术必将迎来新的发展契机。笔者开发的数据处理软件能够提取断面和分析限界偏差,具有较高的实用价值。
隧道限界测量www.zjlq.net中交路桥科技有限公司