matlab制作以太网数据接收上位机_3D激光扫描仪设计及数据处理

本文内容转载自《电子技术应用》2019年第10期,版权归《电子技术应用》编辑部所有。

段清明,王凡,徐琳琳,全文俊

吉林大学仪器科学与电气工程学院

摘要:利用2D激光雷达配合云台装置,设计了一种3D激光扫描仪作为三维数据获取装置。根据扫描仪的硬件特性和传输特性,进行PC端的扫描控制系统以及数据处理系统的设计。扫描控制系统实现了对扫描范围以及扫描精度的控制和设定,数据处理系统针对采集到的原始数据,经过坐标的映射将相对坐标转换到全局坐标,并进行点云滤波,利用最小二乘进行曲面光滑,最终进行三角网格重建。经过多次实验结果证明,该系统可以对一般几何复杂度的三维场景进行较好的重建。

关键词:2D激光雷达;三维重建;点云处理;控制系统

0 引言

近年来,随着计算机图形和计算机视觉学的发展,三维扫描重建技术在多个领域(如工业测量、地形地貌的测绘、自动导航、无人机航拍、采空区调查等)逐渐展现其优势。

传统的三维场景重建方式包括主动建模和被动建模。主动建模是通过设备一次采集场景信息,进行点云成像。被动建模是根据单张或多张图像,直接利用图像进行三维建模。后者相对于前者不需要进行全局坐标的标定,避免了真实场景下的几何复杂性,但计算复杂度高,同时在还原几何准确性及获得三维信息的完整性方面存在着较大的缺陷。因此,为弥补被动建模的缺陷,在激光雷达扫描技术的迅速发展下,主动建模的应用越来越多。激光雷达具有测量速度快、精度高、非接触测量的特点,且应用成本大幅度降低,通过激光雷达进行主动建模的使用越来越广泛。

激光雷达是通过舵机的转动配合红外激光器的单点测距,实现单个平面的测量,其通信接口返回的数据同时包含测量距离和测量方位,运行状态下受外界环境影响程度较小。但是单个二维激光雷达仅能获得一个截面的信息,为了获取三维的数据进行建模,采用同等精度和测量范围的三维激光雷达时,成本将高出二维激光雷达十几倍,因此限制了在一般场景下的应用。

为节约经济成本,大量研究人员着手研究改造二维激光雷达或采用在二维激光雷达的基础上增加机械结构,以进行3D 扫描。但多数的机械结构复杂,导致全局坐标的标定变得困难,或测量范围有限,同时缺少针对三维激光扫描系统的整体设计方案。这些问题的存在,也为后来设计利用二维激光雷达实现三维重建的研究指明了方向。

本文依据二维激光雷达,搭配一维的旋转云台,设计三维激光扫描仪作为采集装置。同时设计上位机的机械控制和数据处理系统,最终实现扫描场景的三维重建。

1 坐标采集系统设计

1.1 扫描方案

由于2D激光雷达采用点状激光进行扫描,因此在扫描一周的情况下,仅能采集获得单个截面内的极坐标下的距离信息。如果需要扩展为三维扫描仪,一般有两种方式:(1)“变点为线”,将点状激光改为线性激光,一次性获得一个角度下截面的距离信息;(2)增加额外的机械结构(如旋转装置)作为扩展轴来获得第三个维度的信息。

应用第一种方式,不影响扫描的速率,但激光的亮度随着距离的增加,衰减速度加快,测量距离有限,并且对原本的激光雷达的结构改造较大,对摄像头的使用要求较高,工作量增多且复杂。应用第二种方式,需要控制额外自由度的转轴,扫描速度降低,但测量距离远,额外机械机构造成的误差可通过数学补偿,对原本的雷达的改造减少,只需要设计旋转装置即可。因此实验中选用增加转轴的方式设计3D扫描仪。

通过使用HLS-LFCD2型号2D激光雷达和RDS3115数码舵机,搭建3D激光扫描仪。设计机械结构如图1所示。

5e1e0fd6203d6ba94013cee928ae2d6c.png

图1 机械结构

舵机带动机械关节的转动,其中2D雷达固定在关节处,雷达的几何中心与转轴的中心的连线垂直于雷达底部所在平面。扫描时,激光雷达不间断扫描激光器所在平面。以上述舵机转轴几何中心的O点为原点,建立空间直角坐标系,如图2所示。

图2中,O′为雷达几何中心,平面O′QP为雷达扫描平面,XOY平面与参考水准面平行。根据2D激光雷达的当前测量角度α、机械关节的偏转角θ 和被测量点P到雷达中心的距离ρ可知,测量点P 的全局坐标(x ,y ,z)可通过下式计算得出:

9cf37a67c95231ee9253e10091006de4.png

8ba90894ccb1f8005ec5596f25fa8b90.png 

图2 坐标系示意图

其中,方位角α和距离ρ通过激光雷达串口输出的数据进行解码获得,偏转角θ根据控制器输出的PWM 和舵机物理偏转量之间关系得到。

1.2 机械控制

如图1所示,机械控制部分主要是对舵机的操作,舵机的精度决定了偏转角θ的精度。通过ARM公司的STM32ZET6作为控制器,输出PWM波进行控制RDS3115数码舵机,舵机主要控制特性如表1所示。

dda06c02259e446f6cf76be0d5ff278f.png

利用控制器产生一个20 ms的时基脉冲,该脉冲的高电平部分为0.5~2.5 ms范围,最大间隔为2 ms。根据表1和舵机的数据手册,在该范围内,输出的角度值与高电平的宽度成线性关系,舵机输出角度值θ值计算方式如下:

7b5c629efbe38593f4d7e8f01c31a71c.png

其中,θ的单位为度;Nset通过控制器进行设置,范围在500~2 500之间,从而实现舵机角度在0 ~ 180°范围内偏转。

由于舵机控制时存在死区,死区时间在3 μs,控制最小精度可达1 μs,小于死区时间,因此,在控制过程中,相邻两次偏转角θ的最小间隔△θ为:

6e9f018f50b9def60bd8681fc4b9885a.png

因此,在控制过程中,设定的步进间距均为0.27°的整数倍,舵机的死区一定程度决定了扫描的精度。

2 控制系统及数据采集

上位机控制系统是基于PC 的Windows 10开发平台下,以Visual Studio 2015中的MFC为开发环境,通过编写主界面控件的消息响应函数,来实现扫描仪控制和采集数据存储。MFC 中包含大量Windows 句柄封装类,以及多种Windows 的内建控件和组件的封装类,丰富的内建控件为设计可视化界面提供便利。系统设计框图如图3 所示。

c050b568cecac5a49a352a24c6a945e4.png

图3 控制系统结构图

上位机PC的任务包括同2D激光雷达的通信以及通过下位机控制器STM32对舵机的操作。激光雷达的数据传输接口为UART格式,在上位机和雷达处采用蓝牙模块进行通信,以避免传输线对扫描进程中的干扰。通信内容包括雷达的启动和关闭,以及获取雷达扫描平面内的ρ和θ。针对雷达发送的每一帧数据进行解码,保留每帧数据中的角度和距离信息。

在上位机界面,通过对相对坐标系下的起始扫描位置、扫描间隔和终止扫描位置进行选择,进行扫描路程设定。在控制关节旋转的同时,采用询问-应答的形式,以便保证在舵机完成转动任务后再进行扫描。在上位机界面通过进度条的形式显示整体扫描进度,方便用户进行监测。上位机控制系统流程如图4所示。

d26ecfa937bddbdd078b96ed9188e3af.png

图4 控制系统流程图

根据项目要求,在MFC设计中采用多线程的方式,其中主线程用于响应用户的操作,将用户需求指令(如打开串口、打开文件、保存文件等)转换为程序指令进行执行、判断,并反馈执行结果。

MFC界面如图5 所示。界面中接收框和发送框均是对舵机进行操作,发送框显示已设置命令或进行手动编辑命令,接收框显示下位机的回复情况。

a086519a3df3344d5336e5f918a8f76a.png

图5 控制系统主界面

扫描同时,上位机通过串口线与STM32通信,控制舵机实现关节的转动。STM32 控制器功能主要是与上位机进行通信,接收命令数据以便设置舵机的起始角度、步进间隔和终止角度,根据上位机的驱动命令步进舵机并回复执行结果。系统将从雷达处将接收到的数据经解码后得到方位角α、距离ρ和舵机的偏转角θ,按照(θ ,α,ρ)的格式存储到用户设置的txt文件中,作为后续数据处理系统的原始文件。

3 数据处理

为了提高数据处理的速度,简化点云处理的计算过程,以及进行离散的点云数据的可视化,基于MATLAB的GUI平台,建立专用的集坐标转换、点云数据处理以及数据成像的数据处理系统。点云处理系统组成如图6所示。

a82aeb95dcd74e759c9479e0890104c0.png

图6 数据处理系统框图

数据处理过程,导入上一阶段以(α,θ ,ρ)形式存储的txt文本文件,按照式(1)进行运算,转换为三维数据坐标(x ,y ,z)的形式,并以pcd的形式输出保存。此时pcd存储的即为原始的标准点云数据。

3.1 点云数据滤波

通过扫描仪得到的点云数量极其庞大,测量数据将达到数万个甚至数十万个点,庞大的数据量中包含有无法预料到噪声点。噪声点的来源主要是激光扫描硬件本身造成的误差,此外还与采集实际情况有关,如扫描区域中存在烟雾、颗粒、棱角等,这些对于点云匹配等后期的工作显然是不利的,因此,需要对数据点进行一系列的数据去噪,筛除噪声点。

为了去除数据中存在的噪声点,针对每个点的邻域进行了统计分析。针对点云中的每一个点,认为该点与其附近k 个邻近点之间的距离分布符合高斯分布规律,根据极限误差和置信概率来决定该点是否为离群点。

3.2 点云平滑及重建

在消除原始数据中的不规则点时,为了建立光滑完整的模型必须对物体表面进行平滑处理和漏洞修复。因此,针对滤波后的点云,建立KD-tree加快逐个点云数据的邻近数据搜寻,进而通过MLS(移动最小二乘法)进行重采样,进行光滑处理。

利用贪婪算法,动态设置三角网格的最大半径,进行三角网格重建点云轮廓。为了使用户能够进一步全面地观察最终成像,在该界面加入了3个滑块。当移动滑块时,获得当前滑块的位置,并转换成角度值,根据旋转轴和角度值创建4×4的转移矩阵,同时获取当前的点云位置,调用MATLAB 函数pctransform()得到旋转后的新的点云数据,从而实现点云数据在X、Y、Z方向旋转并刷新显示。

系统主界面如图7所示,“文件处理”按钮的回调函数实现转换数据格式并按pcd格式文件存储,“数据处理”中包含了主要的处理算法,“滤波”针对标准格式的点云进行滤波,并保存滤波结果。下拉栏可以对左侧图像区域进行操作,包含“清除”、“显示原始三维点图”等,对右侧图像区域进行“显示点云包络图”。包络图是最终渲染成像的结果,因此单独在右侧栏进行显示,与其他成像图进行直观对比。

6ab6b8be0f9b761da251a1a3d31591d1.png

图7 数据处理系统主界面

4 实验结果

在一个固定的50 cm×45 cm×28 cm的长方体中进行测试,先是对固定偏转角α为90°进行2D激光雷达测试,扫描截面为50 cm×45 cm。获得三维点数据成像结果如图8所示。

879c22f1315630739861703b9deec7d4.png

图8 2D激光雷达扫描测试图

计算求得的长度为Ly=495.88 mm,Lx=457.19 mm。根据实验结果可知,2D激光雷达的测量准确度较高,雷达的采样率高达5 000 次/s,测量速度快,有效测量半径为0.15~8 m。雷达的良好性能确保了后续的三维建模。

设计3D激光扫描仪实物图如图9所示,云台顶端搭载2D激光雷达,云台后半部分为基于STM32的控制器,包括无线传输设备、舵机控制部分;上位机在PC 端上实现对扫描仪的控制,并进行数据处理。

8db2b98fe914a7ca6575c2cce524fa8f.png

针对一中空的长方体作为扫描实例进行验证。设置扫描范围为x>0部分,扫描示意图如图10所示。

原始扫描点云数据如图10所示,扫描物体外围存在一圈噪声点。经统计滤波器滤波之后,距离较远的离散数据点被滤除,实际扫描物体被较为完整地保存,如图11所示。滤波结图7数据处理系统主界面果显示,点云数据从34113个减少到33900个。图12为滤波数据通过移动最小二乘法进行光滑之后,采用贪婪三角网格算法进行重建的示意图。比较图12的重建结果和图9的实物图,可知扫描物体重建效果良好。

4c4ccd540d902a262910733c7d6623c7.png

图10 原始离散点云图

d26af8c0ad7adcb8cad8866f9fcf60c5.png

图11 滤波后离散点云图

fe2aac5e0a8af0ee4f1ef07659a90945.png

图12 点云重建图

上述实验结果表明,本文设计的三维扫描仪能够对一般的三维场景选定范围进行重建分析;数据处理系统可以针对采集到的数据进行一系列的离散滤波、平滑处理,最终实现对扫描场景的重建。

5 结论

本文基于2D激光雷达和云台装置,设计了一种三维扫描仪。结合基于MFC设计的控制系统,实现对指定区域内的数据采集,通过推导的坐标变换关系,将坐标转换到全局坐标系下,实现对三维数据的采集和存储。同时,基于MATLAB软件中的GUI工具设计的数据处理系统对采集到的原始数据进行了预处理,利用滤波器剔除点云中的离群点来实现降噪,针对扫描中的漏洞采用最小二乘法进行拟合平滑处理,利用贪婪网格法进行三角网格重建,绘制点云轮廓,根据预处理后的数据进行了三维重建,最终显示在数据处较低的环境,能够较好地进行三维重建。

推荐培训:

《激光雷达核心技术培训课程》将于10月25日至27日在无锡举行,本课程邀请优秀讲师,传授核心技术,主要包括八项内容:(1)激光雷达技术综述;(2)机械式激光雷达和OPA激光雷达核心技术;(3)MEMS激光雷达核心技术;(4)面阵(Flash)激光雷达核心技术;(5)FMCW激光雷达核心技术;(6)激光雷达核心元器件之驱动芯片:脉冲式激光雷达接收与发射驱动芯片;(7)激光雷达核心元器件之光源:高功率EEL/VCSEL和1550nm光纤激光器;(8)激光雷达核心元器件之光电探测器:PIN/APD/SPAD。如果您有兴趣,请联系:

麦姆斯咨询

联系人:彭琳

电话:17368357393

邮箱:PENGLin@MEMSConsulting.com

57facd79a500d6f5e20500ac9bf228a1.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513272.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

跨平台(windows+linux)的线程辅助程序,跨平台(Windows+Linux)的Socket通讯程序(二)—结构...

上一篇"跨平台(WindowsLinux)的Socket通讯程序"给出了Socket通讯底层的一些函数的包装方法/类,同时屏蔽了操作系统(Windows/Linux)的不同。上一篇只是对通讯底层方法的封装,并没用涉及应用,这一篇将基于上一篇,并结合&q…

数据的“敏捷制造”,DataWorks一站式数据开发治理范式演进

简介: 企业大数据技术发展至今,历经了两次蜕变。第一次蜕变从最初的“小作坊”解决大数据问题,到后来企业用各类大数据技术搭建起属于自己的“大平台”,通过平台化的能力完成数据生产力的升级。 第二次蜕变让大数据从“大平台”向…

全新的 Fragment 通信方式

作者 | tech-bus.丹卿来源 | 程序员巴士前言就在前段时间,Google 推出了 Fragment Result API 和 Activity Results API,用来取代之前的 Activity 和 Fragment 之间通信方式的不足,大家可以前往看看都有哪些更新:https://medium.c…

数据传输完整性_电缆监测数据传输系统分析与设计

电缆线路是重要的输电方式,对电缆线路进行监测是保证电缆线路正常工作的重要的条件,研究人员利用嵌入式系统设计了电缆监测数据传输系统。该系统以CAN通信和嵌入式以太网络技术为核心,实现了对电缆及其沟道的实时监测、状态显示及预报警功能&…

大型企业多账号管理“安全心法”

简介: 云上多账号环境下的网络统一管理,是大型分支型企业网络安全防护的必经之路。无论是外企入华、国内企业出海,还是本土集团型企业规模化成长,云上统一网络安全管控与整体安全态势感知,都可以拉齐企业账号间安全水位…

苹果将于 2025 年推出的 Apple Car 长什么样?

整理 | 孙胜出品 | CSDN(ID:CSDNnews)据国外媒体报道,苹果公司预计将于2025年推出一款全新的自动驾驶汽车,旨在实现真正意义上的无人驾驶。报道称,基于自动驾驶的理念,苹果理想的汽车没有方向盘…

阿里云中间件首席架构师李小平:云原生实践助力企业高效创新

简介: 通过云原生技术,真正为企业带来更多的业务价值,助力企业整体的业务创新。 作者:李小平 前天我参加了信通院的云原生产业大会,在会场上非常感慨,参加会议的企业非常多,并且来自于各行各业…

cv曲线面积的意义_几何直觉的魅力:sinx曲线下的面积原理是如此的美妙

用“曲线下的面积”来描述积分,就像用一串单词来描述一本书。正弦函数的积分是其曲线下的面积。几何直觉就是:“正弦的积分是沿圆周路径的水平距离。”这句话第一次听说感觉比较抽象,当你理解了就会觉得它非常的美妙一般的思维模式求正弦函数的积分就是&…

OpenInfra 十一年:OpenStack 部署规模超 2500 万计算核心

后疫情时代下,产生海量在线需求,越来越多金融、政府、教育、通信和医疗保健等上云业务需依赖现代云基础设施来正常运行。其中开源提供了一种更具成本效益的开发方式,据最新《2021 年度 Octoverse 报告》显示,2021 年 GitHub 开发者…

集群镜像:实现高效的分布式应用交付

简介: Docker 解决了单个容器的镜像化问题,而 sealer 通过把整个集群打包,实现了分布式软件的 Build Share Run。 作者 | fanux.中弈 什么是集群镜像 顾名思义,和操作系统 .iso 镜像或 Docker 镜像类似,集群镜像是用一…

比开源快30倍的自研SQL Parser设计与实践

简介: SQL作为一种领域语言,最早用于关系型数据库,方便管理结构化数据;SQL由多种不同的类型的语言组成,包括数据定义语言,数据控制语言、数据操作语言;各数据库产品都有不同的声明和实现&#x…

SLS控制台内嵌操作指南

简介: SLS控制台内嵌操作指南 一、机制 详见:https://help.aliyun.com/document_detail/74971.html 二、操作 2.1 子账号操作(主账号身份操作) 登陆ram控制台,创建子账号。给子账号授予AliyunSTSAssumeRoleAccess权…

装linux服务器进去配置界面,在CentOS 8 Linux上安装和配置SuiteCRM的步骤

本文介绍在CentOS 8 Linux服务器上安装和配置SuiteCRM的详细步骤:更新系统、安装PHP、安装MariaDB和Nginx Web服务器、安装SuiteCRM、配置SuiteCRM Web访问界面。SuiteCRM是由SalesAgility团队开发和维护的开源企业级CRM应用程序,该产品最初是SugarCRM社…

Dev Lake 0.4.0 版本:开源、开放的研发效能数据平台

建设研发工具链后,效能提升如何更进一步? 工程师们反馈流程体验确实有所提升,和业务同事的沟通似乎也愉快了一些——但研发团队依然需要量化数据作为抓手,一方面佐证先前实践优化的有效性,另一方面为持续的效能提升寻找…

tensorflow图形识别_手把手教你使用TF服务将TensorFlow模型部署到生产环境

摘要: 训练好的模型不知道如何布置到生产环境?快来学习一下吧!介绍将机器学习(ML)模型应用于生产环境已成为一个火热的的话题,许多框架提供了旨在解决此问题的不同解决方案。为解决这一问题,谷歌发布了TensorFlow(TF)服务&#xf…

一文读懂 - 云上用户如何灵活应用定制化网络服务

简介: 在将传统数据中心业务迁移上云的过程中,如何将云下基于不同业务场景和设备角色灵活变化的网络配置基于云上网络统一服务能力进行转换,用户及其业务架构通常会面临诸多的挑战。阿里云混合云网络技术团队和阿里云网络产品团队自主创新研发…

linux bash环境,Win10系统怎样启用Linux Bash环境

不久前,微软召开了Build 2016大会,会上微软宣布将在Windows10系统中内置Linux Bash,这一消息引起了非常大的轰动。到了Windows10内部预览版Build 14316,该特性终于面世了。系统城小编将在本文为大家详细介绍下Windows10启用Linux …

云上安全保护伞--SLS威胁情报集成实战

简介: 威胁情报是某种基于证据的知识,包括上下文、机制、标示、含义和能够执行的建议。 什么是威胁情报 根据Gartner对威胁情报的定义,威胁情报是某种基于证据的知识,包括上下文、机制、标示、含义和能够执行的建议。威胁情报描…

数据备份资深老牌厂商 Commvault 的新玩法

作者 | 宋慧 出品 | CSDN 云计算 头图 | 付费下载于视觉中国 已经连续十年,被权威分析机构 Gartner 企业备份与恢复软件魔力象限评为领导者(leaders)的 Commvault,在数据备份和恢复领域的技术实力和优势毋庸置疑。不过&#xf…

docker 远程连接 文件看不到_pycharm连接远程linux服务器的docker

在我们利用远程服务器部署的docker调试深度学习模型时,需要将代码传来传去,很不方便。这里我们介绍pycharm连接远程服务器docker的方法。首先我们启动一个新的pytorch容器,命令如下。关于此步骤更详细的说明,参见ubuntudocker使用…