张新宇,陈 强,李 睿
(上海工程技术大学 电子电气工程学院,上海 201620)
近年来,随着城市不断规划发展,地下管线建设发展迅猛[1],所面临的难题也越来越凸显。地下管线包扩排污管线、燃气石油管线、供水管线、电力通讯管线等[2],其具有分布错综复杂、种类多样、铺设更新速度快等特性,地下管线是一个城市赖以生存发展和打造全新现代化智慧城市的重要基础,是城市的“生命线”。当前工业化城市发展已逐渐步入数字智能时代,传统地下管线信息系统的二维数据表达早已不能满足当前的用户需求,由于画面空间感不足,用户不能及时准确的判断地下管线的分布信息情况,所以非常容易在开挖施工过程中造成重大事故的发生,并带来不可挽回的严重损失。
目前,国内多名学者对城市地下管线的三维可视化进行了深入研究[3],以求解决上述问题。例如罗强以ArcGIS、SQL Server、.NET Framework为应用支撑平台,构建地下管线服务系统[4],王顺利等以ArcGIS Runtime SDK for Android、Super Map iMobile for Android为引擎搭建管线管理系统[5],蓝贵文等基于CSG方法和3DS Max构建了各种造型管件及附属物的精细三维模型,在此基础上利用Super Map渲染大规模三维管网场景[6]。虽然有效解决了三维可视化问题,但是基于计算机进行三维展示,不仅依赖部署于本地的插件或软件,而且可携带性差,同时无法做出准确的实时决策。陈林等提出一种基于Three.js的三维管线建模可视化方法[7],有效解决了以上问题,但是无法实时定位查看管线。随着智能移动终端硬件设备性能和网络通信技术的提高,基于以上问题和分析,本文研究设计一种融合定位的移动Web端地下管线系统,并提出一种基于圆参数方程法的管线三维建模方法,实现高精度自动化建模。根据定位实时查看当前位置的地下管线分布情况,有效解决了硬件配置要求性高、软件依赖性强和实时决策难等问题。
考虑方便性和普及性,本文采用基于Android系统的智能手机作为地下管线系统的应用平台。该系统的整体方案设计如图1所示,硬件设计主要有定位模块、数据传输模块、网络通信模块、数据处理模块、显示模块组成。其中GNSS(Global Navigation Satellite System)[8]接收机和手机的GPS作为定位模块,用于获取高精度定位坐标;数据传输模块是手机上的蓝牙设备,用于将GNSS接收机与手机建立连接,在CORS(Continuously Operating Reference Stations)模式下获取坐标数据;网络通信模块为无线网络和通信协议组成,用于向服务器发送请求和接收响应;手机端数据处理模块由基于ARM(Advanced RISC Machine)架构的微处理器组成,用于本地数据处理和协调控制工作。
图1 整体设计方案框图
1.2.1 软件环境
该系统的功能是根据定位使当前地下管线三维可视化[9]。三维模型渲染使用的是基于WebGL框架进行封装的Three.js技术[10],结合JavaScript、HTML5、CSS3、Node.js用WebStorm工具进行系统开发,采用MongoDB作为地下管网数据的存储数据库,系统部署在阿里云服务器ECS(Elastic Compute Sercive)。在当今的各种浏览器版本中,基本已经对Three.js、H5技术兼容。
1.2.2 软件架构设计
系统的软件部分主要涉及到三个方面,第一个是用户在使用系统时获取当前位置的精准定位坐标,第二个是对地下管线数据的筛选并进行处理,第三个是对当前位置地下管线三维建模并渲染,实时展示给用户查看。软件设计流程如图2所示。
图2 系统软件设计方案
1)系统初始化
用户打开移动端浏览器输入系统网址后,登陆该系统,将会自动读取本地对应路径下的定位坐标文件,获取精确的定位坐标。
2)数据请求与处理
在MongoDB数据库中,通过获取的精确定位坐标,将其作为搜索范围圆心,规定以自定义距离为半径对地下管网数据进行筛选[11],然后将数据处理为可三维建模渲染的数据。
3)三维建模与渲染
通过管线坐标数据建立三维模型,并利用Three.js技术对地下管线模型进行渲染,并根据不同类型的管线进行不同材质的设置,使管线更容易区分类型和逼真展示。
该系统由于基于实时定位获取数据库中的地下管线信息自动化建模并渲染[12],所以对定位的要求非常高,现有的移动端室内外的定位方法主要有GPS、A-GPS、Wi-Fi、移动基站等,但是移动基站和A-GPS[13]定位经度在百米级和十米级,Wi-Fi多数情况适用于室内定位。手机本身自带的GPS定位模块方便快捷、成本低,但是定位精度较低,无法满足系统要求。本文采用RTK(Real-timekinematic)技术获取高精度的定位坐标以满足系统需求,精度可达到厘米级,甚至毫米级。
RTK技术的基础是载波相位观测值,在实时测量过程中至少需要使用两台GNSS接收机,分别作为参考站和移动站,参考站将接收到的卫星信号数据和基准站坐标发送给移动站,移动站结合接自身接收到的卫星信号数据和参考站发送来的数据通过差分处理实时获取精确定位坐标。本文采用一台GNSS接收机在CORS模式下作为移动站进行测量定位,并将Android手机代替为RTK手薄通过蓝牙与GNSS接收机相连接收高精度定位坐标,定位示意图如图3所示,手机端可以根据用户需要导出所需要格式的坐标文件保存。
图3 移动端高精度定位示意图
本文选用MongoDB作为存储数据库,其适用于敏捷开发,使用和存储数据方便,性能强大,数据模式灵活更新,部署便捷,可扩展性强。对系统的进一步开发和未来庞大数据存储提供了很好的便利条件。本文采用Node.js的Express框架在服务器端搭建Web应用系统,与数据库连接,实现根据移动端请求进行数据交互。数据库中存储的管线数据分为属性数据和空间数据,其中空间数据用于系统三维建模。空间数据结构[14]如表1所示,本文系统的管线数据由本团队研制的基于旋转式IMU地下管线探测仪测得,坐标数据均为管道中心位置。
表1 管线段的空间数据结构
当获取高精度定位坐标后首先筛选数据,搜索出用户所在位置附近的地下管网坐标,使移动端自身定位坐标O(BO,LO,HO)作为范围中心点,将所选地区的数据库中的管线段起始和终点的中心点坐标P(BPi,LPi,HPi)分别相减得到相对经纬度差值,筛选出管线起始点和终点的经纬度小数点后第4位变化幅值均在2~4之间的数据,即半径为30米圆周范围内的地下管线坐标数据。
然后将筛选出的数据从大地坐标系转换为空间直角坐标系下的数据,如式(1)所示:
其中a=6378.137km和b=6356.752314km分别为地球椭球的长半轴和短半轴,N为卯酉圈曲率半径,e为地球椭球的第一偏心率,
最终将空间直角坐标系下的管线数据转换为Three.js中三维建模的数据。
在该系统的地下管线三维建模中提出一种基于圆参数方程的矢量微分法,主要思路为利用管道中心线建立标架[15](建模时的局部坐标系),通过截线方程和设置的管道半径与精细度(微分程度)计算得出模型表面顶点坐标,按照顺序连接顶点形成多个三角形拟合表面[16],如图4所示。该系统依据管道中心线建模,可以直接利用处理过的数据连接成中心线并建立标架。
图4 管线建模示意图
设管线段横截面上的点坐标为Ai,则Ai=(x(θi),y(θi),z(θi)),系统中可以根据对模型精细化程度的要求和管线类型对横截面微分,圆管一般为8个点,即圆截线上每隔45度取一点,如图5所示。注意在获取管线段两端截面线上点时,为了保证管线不出现扭曲形态,需要保持标架不围绕旋转。
图5 截线分段示意图
在管线建模过程中,分段管线中心线之间连接部分若具有拐角,此时的三维模型将会出现严重折叠的现象非常影响建模效果,可以对此部分做倒圆角处理[18],利用微分的思想将圆弧分成多个小直线段组成,再利用上述建模方法依次建模,最终将直线段与折线段拼接在一起形成一条完整的三维管线模型,如图6所示。
图6 倒圆角建模示意图
假设Pi-1、Pi、Pi+1为管线两段中心线的端点,在Pi点处做倒圆角处理,圆弧半径为Ri(可根据规范设计需求进行设定),圆弧两端点为Ti-1、Ti,分别是与线段Pi-1Pi和PiPi+1的切点。倒圆角的参数计算如下:
两段管线中心线夹角为φi,计算如式(6)所示:
计算两个切点与拐点之间Ti-1Pi与Pi Ti的长度如式(8)
获取两切点Ti-1和Ti坐标如式(9)所示:
假设圆弧所在圆的圆心坐标为Oi,求圆心坐标的方法是通过倒圆角的原理中,切点与弧形所在圆的圆心连线垂直于中心线,所以可以依据切点坐标(已知)和中心线的垂直矢量计算。如式(10)所示。其中 为Pi-1、Pi、Pi+1所在平面的法向量,的叉乘结果即为的垂直向量。
该系统由于为了满足容易跨平台、平台要求低等特性,通过移动端Web实现系统应用,在网页上进行三维模型渲染,在2.3节中得到三维建模参数后,通过基于Three.js技术实现模型渲染,过程如图7所示。
图7 Three.js渲染过程
为了对本文提出的地下管线信息管理系统进行测试,在校园中搭建了一条地下管线模型,该管线长50米,直径为10厘米,管壁厚度大约0.5厘米,材质为PVC,采用上海华测RTK i80对管线的起始点和终点进行了实地测量,并且测量过程中尽可能保证了测量点在管线中心位置。利用地下管线探测仪测量出模拟管线的相对坐标,依次叠加RTK测量的管线起始点和终点坐标,并做优化处理得到管线的坐标数据,保存到系统数据库中,测量数据如表2所示。
表2 模拟管线实地测量位置分布数据表
整个系统搭建在服务器上,方便利用移动端随时定位查看地下管线分布情况。本实验移动端所用手机为荣耀20,系统为Android 10,处理器为Huawei Kirin980,运行内存为8GB。当手持手机步行到管线中间附近时,开启RTK i80,手机端打开测地通软件,开启蓝牙与RTK建立连接,设置好配置,登陆CORS账号,待获取精确坐标后,通过浏览器打开系统进行定位并查看。
为了比对系统所建三维模型是否较为准确,通过Smar3D软件利用采集的真实模拟管线照片进行三维建模,与通过管线坐标数据建立的模型进行对比如图8所示。从图中可以看出,Web端的三维管线模型与Smart3D建立的模型基本一致。
图8 三维管线建模精度对比图
在用移动端Web进行查看管线时,用户可以根据图像中棱锥的位置变化判断自身与管线的相对位置,在测试中分别在距管线的不同位置进行定位查看,效果如图9所示,当用户移动后刷新定位信息,可以观察到界面中棱锥也随之变化。
图9 定位查看管线示意图
图9(a)与图9(c)分别为实测照片,图9(b)和图9(d)中棱锥位置代表用户实测位置,从图中可以看出模拟管线与棱锥的相对位置与实际情况相符。
上述实验成功地实现了实时定位查看地下管线,图形刷新率为基本在60FPS,为了进一步对系统兼容性和渲染性能测试,模拟9条管线渲染,根据管线类型设置不同材质,并在不同浏览器和系统上实验,其中在Android系统手机不同浏览器上实验测试效果如图10所示,在IOS系统上实验测试效果如图11所示。
图10 Android手机多条管线模型渲染
图11 IOS手机多条管线模型渲染
针对系统性能测试,分别对1、5、9条管线模型渲染,逐渐增加管线时的性能变化如表3所示。
表3 移动Web端渲染性能情况
实验测试表明本文设计的系统在Android和IOS系统上,使用不同浏览器均可以流畅渲染管线模型。
本文依据定位技术与Web三维建模技术,研究设计了融合LBS的移动Web端三维地下管线系统,利用移动Web端实现系统展示,增强了查看管线的便利性;采用RTK定位技术提高了系统定位准确性,使用户可以准确获取管网分布情况;高精度自动化三维建模增强了管线真实性,使用户拥有更好的感官体验。本系统可以有效解决用户实时决策难、查看管线空间感不强烈以及系统对本地软件程序和应用平台依赖性高等问题,为数字化智慧城市发展提供良好的服务,特别是在地下施工过程中,可以良好的避免因管线位置不明确而造成的严重危害。