欢迎来到天天文库
浏览记录
ID:31369187
大小:112.00 KB
页数:8页
时间:2019-01-09
《机载三维激光扫描仪软件系统构建》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、机载三维激光扫描仪软件系统构建 摘要:三维激光测绘已广泛应用于城市测绘中,机载三维激光扫描仪是当前测绘领域的一个新标杆,但大部分技术仍由国外垄断,研发机载三维激光扫描仪和相配套的软件尤为必要。机载三维激光扫描仪研制需要从硬件和软件两个部分着手,从扫描仪得到原始点云数据后,通过相应软件对数据作后期处理,设计出友好的交互界面,展现场景,实现三维重构。 关键词:机载激光扫描仪;点云;三维重构 DOIDOI:10.11907/rjdk.162060 中图分类号:TP319 文献标识码:A文章编号:1672-7800(2016)012-0087-02
2、 0引言 机载三维激光测量技术是一项前沿性研究课题[1]。机载三维激光扫描仪具有很多传统测绘仪器无法比拟的优越性,有着广泛的应用领域[2],如地形测绘、灾害调查与环境监测、森林数字高程图获取、城市三维建模等,还应用于工程建设、逆向工程、电线管道布局、3D打印等领域。我国大部分激光扫描仪主要靠国外公司提供相关技术支持。研制出拥有自主知识产权的机载三维激光扫描仪具有重要意义。本文以扫描仪系统硬件为出发点,介绍硬件系统架构及其技术难点,针对硬件特点分析软件功能需求,最后利用点云库完成软件系统开发。 1系统硬件架构8 1.1硬件架构分析 本系统分为仪器
3、和软件两个部分。仪器设计需满足测量要求,实现高速精准扫描、全波段数据采集,具有效率高、可靠性好、便于维护等特点。仪器系统主要由6个部分组成,即激光发射系统、光学扫描镜与收发光路系统、高精度时间测量系统、高精度频率源系统、数据采集与处理系统、图像处理系统,如图1所示。 1.2仪器功能实现 硬件系统的核心为扫描镜收发光路系统、高精度时间测量与控制系统和数据采集系统[4]。收发光路系统主要包括卡塞格林望远镜、变焦扩束准直系统、窄带光滤波等。由于激光的单色性较好,主要对蓝绿光波进行接收,采用可变增益的PMT光电倍增管,实现100dB的动态接收范围,确保能够
4、接收到微弱的回波信号。 扫描仪测距由一个高精度时间测量系统实现,采用FPGA搭建控制电路来控制时间脉冲触发,采用先进的时间频率测控技术驯服高稳定度的铷原子钟,将高稳定度、低相噪双槽恒温晶振锁定在铷原子钟上,将GPS卫星的长期稳定性原子频标的中期稳定性与高稳晶振的短期稳定性完美结合,使采样频率同步在GPS原子钟信号上,保证激光扫描仪的探测精度。 数据采集系统由高速数字采集卡和磁盘阵列存储服务器构成。高速数字采集卡将光电转换系统输出的回波模拟信号转换为数字信号。机载三维激光扫描仪的探测发射脉冲宽度小于5ns,保证回波脉冲数据采集时不失真,系统设计的回波
5、采样率达到1GHz,采样位数为12位。 2系统需求分析8 机载三维激光扫描仪主要用在测绘领域,分为近距离和远距离两种,其中远距离激光主要是激光雷达系统,近距离扫描仪主要为微软的Kinect[3-4]。 机载三维激光扫描仪软件系统关键为点云数据读取、数据分析处理及场景重建。所设计的软件要能够处理扫描仪的原始数据,包括数据分析处理、滤波精简、三维重建等。 软件系统主要由4个部分组成,包括数据读写、点云显示、滤波、网格重建[5]。实现激光扫描仪数据处理和使用,与扫描仪器构成一套完备的测绘系统,软件系统功能模块如图2所示。 3系统软件实现 软件系统
6、的关键技术在于点云读写存储、滤波和网格重建。基于QT平台和PCL(PointCloudLibrary),通过CMake编译VTK(VisualizationToolkit)QT插件,实现可视化与点云库协同操作,由QT提供交互界面。 点云读写存储由PCL提供的IO类继承而来,主要针对PCD格式的点云数据和PLY格式的网格数据[6],格式统一,便于数据处理。读取点云数据时先根据文件后缀判断格式,是否以.pcd或者.ply格式结尾,是则读取,否则返回。读取后对数据进行稀疏判断,若为密集数据,则从数据中剔除NAN字符,完成数据读取。同理,完成点云的存储操作,
7、作下一步处理,读取点云数据的程序代码如下: QStringfilename=QFileDialog::getOpenFileName(this,tr("OpenPointCloud"),"D:",tr("PointCloudData(*.pcd8*.ply)")); PCL_INFO("Filechose:%s\\n",filename.toStdString().c_str()); pcl::PointCloud:Ptrcloud_tmp(newpcl::PointCloud); if(filename.isEmpty()) return;
8、 intreturn_status; if(filename.endsWith(".pcd
此文档下载收益归作者所有