没有合适的资源?快使用搜索试试~ 我知道了~
© 2013由Elsevier B.V.发布。由美国应用科学研究所负责选择和/或同行评审可在www.sciencedirect.com在线获取ScienceDirectAASRI Procedia 5(2013)106 - 1132013年AASRI并行和分布式计算与系统多传感器集成三维激光扫描数据采集系统孙一波a,郑新奇a, *,贾宗仁a,王和饶a中国地质大学土地科学与技术学院,北京,100083摘要LiDAR系统由各种传感器系统组合。针对多传感器集成移动LiDAR系统数据采集的特点,以Qt为开发平台,采用串行通信编程技术和多线程技术,实现了移动式三维激光扫描测量系统数据的实时采集和保存。与现有系统相比,我们设计的三维激光扫描数据采集系统克服了需要单独启动各个传感器数据采集程序和数据同步困难的不便。此外,该系统还具有超强的可移植性.实验结果表明,该三维激光扫描数据采集系统运行稳定可靠,能够同时采集和保存不同类型的传感器数据,满足应用需求。© 2013作者。由Elsevier B. V.在CC BY-NC-ND许可下开放获取。由美国应用科学研究所负责选择和/或同行评审关键词:多传感器;激光雷达系统;多线程;数据采集; Qt;1. 介绍多传感器集成的移动LiDAR技术是当前移动通信发展中的一个热点* 通讯作者。联系电话:2019 - 05 - 28 16:00:00电子邮件地址:zxqsd@126.com2212-6716 © 2013作者由Elsevier B. V.在CC BY-NC-ND许可下开放获取。美国应用科学研究所负责的选择和/或同行评审doi:10.1016/j.aasri.2013.10.065Yibo Sun等人/ AASRI Procedia 5(2013)106107测绘技术典型的移动LiDAR系统通常由多种传感器组成,例如用于获得载体位置的GPS定位系统、用于获得载体姿态的惯性导航系统(INS)、用于获得扫描点的距离和角度的激光扫描仪以及用于捕获目标纹理的数字相机[1-3]。数据采集作为整个系统的基础,是移动式三维激光扫描系统的重要组成部分。目前对移动LiDAR系统的研究主要集中在系统集成和系统应用方面,而对数据采集方面的研究较少。在实际工作中,数据采集通常是由传感器厂家提供的程序来完成的。这样会造成操作复杂、各传感器启动时间相差大、难以统一等问题,同时也降低了系统性能之间的集成度。因此,有必要设计整个系统的数据采集软件。Qt是一个跨平台的应用程序和UI开发框架[4]。Qt中的QThread提供了一种独立于平台的方法来管理线程。通过QThread,我们可以轻松地开发可移植的多线程Qt应用程序,并充分利用多处理器机器。Qt应用程序具有很好的可移植性,因此使用Qt开发的应用程序不能局限于Windows操作平台。三维激光扫描仪数据采集依赖传感器厂商提供的数据采集软件,存在操作复杂、集成度低、便携性差等问题,为了解决这些问题,本文设计并实现了一个多传感器集成移动三维激光扫描数据采集系统,使用Qt多线程机制和串行编程技术设置三维激光扫描仪参数采集并保存多传感器数据。该系统也可以在不同的平台上使用。2. 系统设计与实现2.1. 硬件系统三维激光扫描仪是该系统的重要组成部分,由GPS、惯导、激光扫描仪和数码相机组成。GPS用于实时传输系统的位置信息,INS用于传输系统的姿态信息,激光扫描仪用于传输距离和角度信息。在工作过程中,所有的传感器都通过串口与数据采集计算机相连。数据采集计算机负责设置各传感器的工作参数,接收并保存传感器采集的数据。硬件系统结构如图所示。1.一、采用RS-232转USB接口将GPS接收机与数据采集计算机连接,采用RS-485转USB接口将INS与数据采集计算机连接。激光扫描仪通过USB连接到计算机。另外,将GPS同步信号接入INS外部同步信号输入端,同时利用GPS同步信号自动触发数码相机。108Yibo Sun等人/ AASRI Procedia 5(2013)106Fig. 1.系统硬件结构2.2. 软件系统设计本文设计的数据采集系统主要包括两个功能模块:数据采集模块和数据采集监控模块。数据采集模块完成系统数据的采集。它包括激光扫描仪数据采集模块、GPS数据采集模块和惯导数据采集模块。数据采集监控模块用于数据采集过程中对各个模块的工作状态进行监控。 该系统的结构设计如图2所示。各模块的主要功能如下:激光扫描仪数据采集模块:设置扫描范围,设置扫描数据保存路径,完成激光扫描数据的采集。GPS数据采集模块:设置串口参数(波特率、奇偶校验、数据位、停止位),设置GPS数据保存路径,完成GPS数据的采集。INS数据采集模块:设置INS数据保存路径,完成INS数据的采集。数据采集监控模块:在工作过程中,将GPS、INS和激光扫描数据反馈到监控窗口。方便用户对数据采集进行全过程监控。Yibo Sun等人/ AASRI Procedia 5(2013)106109图二.数据采集系统结构为了实现不同传感器数据的同时采集,采用了多线程的程序设计方式。本文设计了GPS线程、INS线程和激光扫描线程。数据采集过程如图3所示。启动程序后,首先对连接传感器的串口进行初始化,然后设置相关参数,包括激光扫描范围、串口参数、保存数据。在开始采集数据时,读取串行数据通常有两种方式:事件查询方式和事件驱动方式。在程序设计中,事件连续查询模式需要设计一个定时器.定时器在固定时间查询串行缓冲区以执行数据捕获。事件驱动模式在串口发送数据时完成数据的接收.本文采用事件驱动的方式来实现串行数据的读取。为了使每一个传感器数据都保持时间信息,以便以后进行时间同步,我们将系统UTC时间的开始接收时间写入激光扫描和INS数据。然后使用互斥锁来保护每个传感器收集到的内存缓冲区中的数据,以确保在任何一个时间只能有一个线程访问该对象。最后,将内存缓冲区中的数据保存到指定路径的本地硬盘文件中,并判断数据采集是否停止,如果停止则关闭串口,完成数据采集。110Yibo Sun等人/ AASRI Procedia 5(2013)106图三.数据采集过程2.3. 关键技术和实施本文采用多线程技术在软件层面实现了多传感器数据采集的并发功能。多线程技术不仅保证了各个传感器独立获取数据,而且提高了多核计算机的使用效率。由于Qt没有具体的串口控制类,本文使用第三方QextSerialPort类来完成对串口的控制。本文使用Qt 4.7.2版本和Qt Creator 2.1.0完成了系统的开发Yibo Sun等人/ AASRI Procedia 5(2013)106111在Windows操作系统下。本文所涉及的关键技术的实现方法如下所述。2.3.1. 多线程类由于每个传感器的频率不同,我们单独设计了GPS,INS和激光扫描仪的线程[5]。Qt中的QThread提供了一种独立于平台的方式来管理线程。QThread表示可以在应用程序中独立控制的线程,并与进程中的其他线程共享数据,但独立执行[6]。由于每个数据采集线程类的创建都是相似的,我们将以GPS数据采集线程代码为例。class GPS_Thread:public QThread{Q_OBJECT公共场所:GPS_Thread(QObject*parent=0);信号:…………void run();//线程的起始点:……QextSerialPort *GPS_port; //串口连接GPS设备}通过调用run()开始执行QThread。通常我们应该创建QThread子类的实例并重新实现run()函数。然后调用start()函数开始执行线程,start()函数会默认调用run()函数。这里需要注意的是,在激光扫描仪线程中我们使用激光扫描仪厂商提供的API来实现激光扫描仪扫描范围和扫描参数的设置。线程同步可以使用互斥量QMutex来保证在任何时候最多只有一个线程可以得到互斥量。Qt提供了一个方便的类QMutex,用于自动锁定和解锁QMutex。2.3.2. 创建串口对象和数据接收本文涉及到三个数据采集线程,因此我们需要为每个线程的构造函数创建相应的串口对象,并对串口进行初始化。QextSerialPort类提供结构PortSetting来设置串口的波特率、奇偶校验、数据位、停止位、流类型和超时。在Qt中,读取串口数据就像读取文件数据一样,我们可以使用ReadOnly模式打开端口。序列对象创建如下:port = new QextSerialPort ( const QString name , const PortSettings s , QueryMode mode =EventDriven,QObject *parent=0).我们使用Qt信号槽机制来接收端口数据。信号槽是Qt的核心机制[7]。它可以应用于对象之间的通信。下面的例子是如何连接串行事件和数据接收功能。connect(port,SIGNAL(readyRead()),this,SLOT(receiveData().112Yibo Sun等人/ AASRI Procedia 5(2013)106当串行数据到来时,串口对象发出readyReady()信号。然后当前数据采集线程接收到信号,执行数据接收函数receiveData(),完成数据接收和保存。为了达到统一控制各个传感器数据采集的目的,设计了一个按钮,可以同时启动和关闭各个传感器的数据采集线程。调用函数start()启动线程,调用函数stop()关闭线程。3. 系统验证和讨论首先,设置用于连接传感器的COM端口。如果系统没有检查串口,我们需要点击“重新扫描”按钮重新检查。然后,在确定传感器串口正确后点击“连接”按钮,并在设备设置中设置相关参数后点击“应用”按钮。为了完成上述工作,我们完成了数据采集前的设置。整个系统被放置在露天区域。在GPS接收机信号指示定位完成后,点击主界面中的“开始”按钮,开始数据的采集和保存。结果表明,该数据采集系统能够有效地采集GPS、INS和激光扫描仪的数据,且各线程独立。通过研究,可以发现多传感器数据采集系统有两个特点:多串口、多协议数据传输:传感器通过一个串口单独与计算机通信。不同的传感器具有不同的数据协议,完成数据分析通常需要使用传感器制造商提供的API。高速海量数据传输:在数据采集过程中,GPS数据采集频率最高为100Hz,激光扫描仪为25Hz,INS为100Hz,证明数据传输速度快、量大。这种非常快速和大量的数据采集和保存可能会导致线程死锁。因此,使用互斥体来保护线程,保证线程在系统中的安全。4. 结论本文采用Qt多线程机制以及串口编程技术,实现了一个多传感器集成的三维激光扫描数据采集系统,该系统可以方便地设置三维激光扫描仪,同时实现GPS、INS和激光扫描仪的数据采集和存储。采集的数据完整可靠,具有时间信息,能够满足后期数据处理的需要。此外,该系统具有良好的可移植性。它可以根据不同的应用需求扩展到其他平台。但是,本研究所实现的数据采集系统是一个系统的原型,还有各种存储的系统功能和界面设计,我们将在以后的工作中不断完善本系统。确认本研究得到了国家公益(土地)研究基金(No.201111014)。Yibo Sun等人/ AASRI Procedia 5(2013)106113引用[1] M. Nagai,T. 陈河,巴西-地Shibasaki等人,“多传感器集成的无人机载三维测绘系统IEEE Transactions on Geoscience and Remote Sensing,vol. 47,2009,pp. 701-708[2] 耿学贤,钟思东,“基于激光雷达和摄影测量的城市空间目标提取系统”,2009年信息工程与计算机科学国际会议,2009年。[3] A. Kukko,A. Jaakkola,M. Lehtomaki等人,“道路环境建模的移动测绘系统和计算方法”,2009年联合城市遥感活动,2009年。[4] B. B. Akinkuolie角F. Lin,S. M. Yuan,“A cross-platform mobile learning system using QT SDKFramework,”5th International Conference on Genetic and Evolutionary Computing,2011,pp. 163比167[5] 李静,石志兴,崔哲伟,“基于Qt Embedded的农田多并行嵌入式服务器优化”,河北农业大学学报,第34卷,2011年,第111 - 112页。108-111[6] B. W.巴雷特,J.W.贝里河C. Murphy等人,“Implementing a Portable Multi-threaded Graph Library:the MTGL on Qthreads”,2009 IEEE International Symposium on Parallel Distributed Processing,Vols 1-5,2009,pp. 2123-2130。[7] Q. X.吴和J. Ou,“Linux下QT编程技术和应用”,软件工程和知识工程:理论与实践,2001年。第114卷,2012年,pp. 573-578
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功