基于matlab个性化三维扫描平台

上传人:第*** 文档编号:61635218 上传时间:2018-12-07 格式:PPT 页数:42 大小:4.98MB
返回 下载 相关 举报
基于matlab个性化三维扫描平台_第1页
第1页 / 共42页
基于matlab个性化三维扫描平台_第2页
第2页 / 共42页
基于matlab个性化三维扫描平台_第3页
第3页 / 共42页
基于matlab个性化三维扫描平台_第4页
第4页 / 共42页
基于matlab个性化三维扫描平台_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《基于matlab个性化三维扫描平台》由会员分享,可在线阅读,更多相关《基于matlab个性化三维扫描平台(42页珍藏版)》请在金锄头文库上搜索。

1、答辩人:吴剑波 导 师:黎业飞 时 间:2017年06月07日,基于三维扫描的 个性化产品定制平台研制,机械电子工程学院 吴剑波,目录,机械电子工程学院 吴剑波,机械电子工程学院 吴剑波,在现实世界中,所有物体都是具有三维空间信息的,因此,利用计算机重构现实世界中存在的全部实体是我们一直都感兴趣的研究问题,三维扫描技术可以无需对实物表面进行任何处理,从实物中采集目标的真实数据来重建三维模型,该模型将具有更强的真实感,更准的几何信息。因此,基于三维扫描技术的三维模型重建有很好的发展前景,值得我们关注并进一步研究。,机械电子工程学院 吴剑波,(1)非接触测量。 (2)快速而且数据采样率高。 (3)

2、实时、动态、主动性 (4)高分辨率、高精度和高密度。 (5)数字化、自动化采集。 (6)扩展性强。,机械电子工程学院 吴剑波,机械电子工程学院 吴剑波,机械电子工程学院 吴剑波,二,点状激光的三角测距,这个是一个俯视图,黑线代表摄像头正中心所在的线,红线代表激光线,将这两根线的交点设为物体的旋转中心,也就是转轴的位置,水平线代表物体表面不同点的深度。图中的两线夹角由我们自己设定。很明显只要我们求出斑点位置到图片中线的距离X,就可以通过简单的三角计算得出正对摄像头的点所在位置距离物体旋转中心的距离Z,则有 Z=X/tan,机械电子工程学院 吴剑波,二,线状激光的测距,对于线状激光器进行测距的问题

3、,可以将它转化为前面单点激光测距的计算问题。 对于一条激光线,算法将按照Y轴依次计算出当前Y轴的高度下,激光光斑的X坐标值X值,并通过公式求出在该Y值下的深度。 这样就得到由角度,高度和深度构成的点云数据。,三,框架结构设计/硬件设计连接,机械电子工程学院 吴剑波,三,框架结构设计,机械电子工程学院 吴剑波,机械电子工程学院 吴剑波,三,硬件设计连接,本课题所用到的硬件有Arduino、摄像头、激光二极管、步进电机、步进电机驱动板、转盘。硬件设计原理图见下: 上图中的步进电机驱动模块包括步进电机,步进电机驱动板和转盘三个部分。,机械电子工程学院 吴剑波,三,硬件设计连接,一字型激光二极管 工作

4、电压:DC 4.5V 工作电流:16mA20mA,28YBJ-48步进电机 直径:28mm 电压:5V 步进角度:5.625 x 1/64 减速比:1/64,ULN2003步进电机驱动板 工作电压DC 4-12V 工作电流500mA 适用于2相5线步进电机,机械电子工程学院 吴剑波,三,硬件设计连接,ULN2003驱动板使用方法:注意电机参数,电压5V,步距角5.625,减速比1:64,计算A-B-C-D通电一次转动的角度5.625*2*4/64=0.703125 (2是表示1相励磁方式每步是2倍的步距角,4表示走了4步, 64指电机减速比) ,转动360度循环ABCD通电的次数360/0.7

5、031=512。,最小步进角,机械电子工程学院 吴剑波,三,硬件设计连接,Arduino和激光二极管连接,由于Arduino数字端口的额定输出电压为5V,额定输出电流为40mA,所以略大于激光二极管。为了解决这个问题,在Arduino和二极管之间串联一个27欧的电阻,将该二极管的正极与电阻相连接在Arduino的6数字端口上,负极接在Arduino的GND端口上。,机械电子工程学院 吴剑波,三,硬件设计连接,Arduino和步进电机驱动模块连接,接线方式:ULN2803步进电机驱动右端输出端A1 B1 C1 D1分别接步进电机的ABCD四相,颜色分别对应蓝、粉、黄、橙,红线接VCC,ULN28

6、03左端输入对应接在Arduino 2、3、4、5 数字端口上,正极、负极分接在Arduino的5V和GND上。,机械电子工程学院 吴剑波,三,硬件设计连接,Arduino和MATLAB通信,本课题没有采用MATLAB里面的Arduino拓展包,直接在路径添加一个MATLAB的连接子程序,然后在Arduino烧录一个adio,这样要使Arduino可以在MATLAB中编程,只需要在MATLAB中输入命令a=arduino(com3);这样Arduino和MATLAB就成功连接起来了。之后就可以在MATLAB中对Arduino端口定义和控制对应端口输出电平高低的用Arduino语言编写的命令了。

7、,机械电子工程学院 吴剑波,机械电子工程学院 陈 亚,四,软件实现,机械电子工程学院 吴剑波,四,程序流程图,机械电子工程学院 吴剑波,四,GUI的设计,机械电子工程学院 吴剑波,四,相机校正,现实的摄像机都是采用光学透镜聚光成像的,并且所用的透镜并非是抛物面的(很难加工),同时,感光芯片也透镜之间也非严格平行。总之,现实就是产生的画面实际上存在扭曲和偏移的。如果直接使用原始摄像机的画面进行测距,势必造成误差。因此需要进行相机的校正,通过校正后获取消除上述画面扭曲和偏移的图像,再用来进行激光测距的相关操作,这样还原度比较高。,机械电子工程学院 吴剑波,四,相机校正,这里我们需要用到MATLAB

8、里的Camera Calibration Toolbox。,机械电子工程学院 吴剑波,四,相机校正,将误差比较大的几张照片例如第4张和第16张舍弃之后,点击工具箱中右上角的Export Camera Parameters按钮生成相机校正文件cameraParams.mat。(里面包含相机焦距等一些参数)在扫描时,每次采样拍摄到的照片都要先用这个校正文件校正之后在进行后续的处理。,机械电子工程学院 吴剑波,四,深度获取,根据激光三角测距原理,所测的是摄像头正对的表面处距离旋转中心的深度,因此转盘的旋转中心相对于摄像头的位置很重要。我们需要让旋转中心处于摄像头捕捉画面的中线所在位置。,机械电子工程

9、学院 吴剑波,四,深度获取,我们最终要得到平Ply格式文件,也就是点云文件,其构成有角度,高度和深度三部分,我们现在要做的就是在每一个角度中,求取每一个采样高度的深度值,这样把角度,高度和对应深度组成一个矩阵就可以了。我们在原理中知道要用到激光二极管来求取深度,所以线形激光线在物体表面的形状至关重要。我们通过MATLAB提取出激光线的形状。,机械电子工程学院 吴剑波,四,深度获取,imabsdiff,Im2bw bwareaopen,机械电子工程学院 吴剑波,四,深度获取,现在我们对上图从中线位置进行裁剪,保留右半边。这样我们只要计算激光线到图片左侧边界的距离就可以了,在对其建立坐标之后,距离

10、就是X的值。我们还可以对其进行裁剪,只要我们感兴趣的区域,将有杂点的右侧去掉一部分,以减少杂点的影响,得到最终部分。,机械电子工程学院 吴剑波,四,深度获取,由左图我们可以看出第一次波峰在X为45左右出现,这样我们的X值就算出来了,我们将激光二极管的入射角设为30度,这样高度在200处的深度Z为45/tan30。然后对该图片上的每一高度都求取对应的X的值,计算深度,最后调用旋转步进电机的子函数旋转一定的小角度,上面步骤重新来一次,直至旋转360度就这样形成了由角度,高度,深度构成的点云PLY格式的文件。,以高度200为例,求该高度下波峰,机械电子工程学院 吴剑波,四,点云处理,在我们得到PLY

11、文件,接下去要进行点云处理。这部分在MeshLab中进行。将PLY文件导入到MeshLab中之后,由于精度和环境的影响,存在很多杂点,我们要先把这些不是构建成物体表面的点删除,这里我们采用最简单的方式,就是在呈现这些点之后手工删除不合格的点,也可以通过距离判据,自动化去除不合格点。之后进行点云的法线计算,然后表面重建就得到了三维模型。,计算法线 表面重建,机械电子工程学院 吴剑波,机械电子工程学院 陈 亚,五,成果展示及结果分析,机械电子工程学院 吴剑波,五,扫描对象,瓶子作为扫描对象有以下几个优点:瓶子形状简单,轮廓分明,且外观呈圆柱形,为了让瓶子的旋转中心更好地在转盘的转轴上,我们将瓶口朝

12、下对着旋转中心,这样可以提高精度;瓶身的颜色为白色,激光线射在上面,效果十分好;瓶子质量轻,对转盘的水平程度影响较小。,机械电子工程学院 吴剑波,五,扫描过程及结果,将瓶子固定在转盘上之后,首先运行GUI的程序,它会和Arduino连接,连接好之后会自己跳出GUI界面,点击Start按钮,扫描开始。,视频,机械电子工程学院 吴剑波,五,采样角度对扫描结果的影响,机械电子工程学院 吴剑波,五,采样角度对扫描结果的影响,由上面的三张图可以知道。采样角度越小,轮廓越细腻,扫描时间也越长;采样角度越大,轮廓越粗糙,扫描时间越短。但是由于第一张图采样角度过于小,导致图片中的杂点太多,而且时间也太长,扫描

13、出来效果不太好;而第三张图又因为采样角度太大,点云空隙比较大,细节不够好。所以最终选择以五倍的最小步进角作为最佳采样角度。,机械电子工程学院 吴剑波,五,点云处理及表面重建,机械电子工程学院 吴剑波,五,结果验证,机械电子工程学院 吴剑波,五,结果验证,机械电子工程学院 吴剑波,机械电子工程学院 吴剑波,1.设计及实现了基于Arduino的激光三维扫描个性化产品定制平台系统。以一字型激光发射器和摄像头为几何信息采集元件、Arduino UNO为控制核心,并通过软件、框架结构的配合开发,设计出一种基于Arduino的激光扫描系统。 2.基于MATLAB实现了依据激光三角测距的原理,对扫描物体距离

14、旋转中心的深度测量算法,实现对点云的收集。在MATLAB的GUI程序中通过控制Arduino和摄像头,极大地提高了计算能力。 3.实现了点云分析和表面重建集成。将收集到扫描物体的深度,高度,角度三个数据形成点云数据,进行点云分析,之后进行表面重建,从而在计算机中获得三维模型。,完成的主要内容,机械电子工程学院 吴剑波,六,总结,创新点,1、在计算深度的时候采用的三角测距原理极大地简化了编程的难度,简化了MATLAB程序的步骤。 2、采用MATLAB控制Arduino的新系统开发方案,Arduino的计算能力差,本课题将所有计算工作全部放在MATLAB上,Arduino只是作为执行器,极大地提高

15、了计算速度,减少了扫描时间。 3、本课题设计出的GUI简洁易懂,使扫描过程变得简单,而且扫描过程实时呈现,视觉效果很好。 4、框架设计合理科学,扫描环境友好。,机械电子工程学院 吴剑波,六,总结,不足,1、激光线问题,本课题对激光线的要求十分高,首先激光线要竖直,与水平面夹角为90度,这点没有办法完全保证。其次激光线过于粗,导致扫描误差很大。 2、角度问题,激光线入射角度为30度,这点很难保证。 3、转盘问题,转盘应该水平,我们平台在安装转盘的时候很难保证。 4、摄像头位置问题,转轴位置应该位于图片中心所在位置,在安装摄像头的很难保证。 5、环境问题,在实验室周围环境影响扫描的因数太多,如光线,背景等,导致扫描结果杂点很多。,机械电子工程学院 吴剑波,谢谢!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号