《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于飞思卡尔MK60的激光扫描测距仪设计与实现
基于飞思卡尔MK60的激光扫描测距仪设计与实现
2016年微型机与应用第07期
陈镔,黄晓权
(武夷学院 机电工程学院,福建 武夷山 354300)
摘要: 激光扫描测距仪以飞思卡尔MK60DN512ZVLQ10微控制器为处理及控制的核心单元,通过CMOS图像传感器对线状激光在物体上形成截面反射进行实时捕捉采集图像,利用DMA快速储存方式存储图像,并对图像进行分析处理获得激光的坐标,再结合舵机旋转扫描获得多列数据,最终将数据转化为各点的三维坐标,由此获得扫描物体或场景的三维点云数据并实现三维模型重建。该设计方案可靠,成本低廉,同时拥有良好的测量精度。
Abstract:
Key words :

  陈镔,黄晓权

  (武夷学院 机电工程学院,福建 武夷山 354300)

      摘要激光扫描测距仪以飞思卡尔MK60DN512ZVLQ10微控制器为处理及控制的核心单元,通过CMOS图像传感器对线状激光在物体上形成截面反射进行实时捕捉采集图像,利用DMA快速储存方式存储图像,并对图像进行分析处理获得激光的坐标,再结合舵机旋转扫描获得多列数据,最终将数据转化为各点的三维坐标,由此获得扫描物体或场景的三维点云数据并实现三维模型重建。该设计方案可靠,成本低廉,同时拥有良好的测量精度。

  关键词:激光扫描;CMOS图像传感器;飞思卡尔MK60;点云数据;3D模型重建

0引言

  人类对于外界事物的感知80%是通过视觉来获取的[1]。而通过激光扫描实现的实景复制则可以很好地重现立体视觉感知,所以3D扫描技术具有相当广泛的用途,例如工业设计、机器人导航、地貌测量、逆向工程、数字文物典藏、生物信息、电影制片、游戏素材创作等都可应用。

  但3D激光扫描研究更多地被应用于大型工程精确测量中,实际用于家庭及个人的民用低成本研究相对较少,并且成熟的设计方案也不多。因此研究低成本并具有良好性能的激光扫描测距仪有十分重要的现实意义和市场价值。

  1激光扫描仪系统结构

  本设计基于飞思卡尔公司Kinetis系列的MK60DN512ZVLQ10(K60)ARM CortexM4内核架构的微处理器,其外围功能丰富,最高主频可达100 MHz,具有强大的数据处理能力和丰富的功能外设,具备了所需的PWM、DMA、IIC等功能模块,并且拥有FlexBus存储接口,支持外部SRAM的扩展[2]。具体的系统结构图如图1所示。  

001.jpg

  激光扫描系统不仅需要控制舵机完成图像序列扫描,而且需要实时采集大量的图像数据,并对这些图像数据进行分析处理生成精确的点云数据。所以系统对ARM的控制要求较高,它不仅要负责传感器的控制和数据传输,还需外扩SRAM用于图像存储,同时为了提高数据传输速率还需配置DMA通道,完成采集和执行数据处理算法,计算出点云数据再通过UART输出到计算机。该系统结构能够充分利用控制器的内部资源,提高运行效率。同时也让扫描变得更灵活,控制器可以不依赖计算机单独运行,最后的数据输出可以通过蓝牙无线传送。

2图像采集和存储

  2.1OV7670图像传感器的采集

  型号为OV7670的图像传感器是市面上较为常见并且价格较低的一款可编程传感器,很适合运用于嵌入式的底层设计。为了便于调试观察可将图像传感器配置为输出固定QVGA的八色的色条测试图案。图像传感器默认的图案数据输出格式为YUV的YUYV(4∶2∶2)。为了便于数据观察,将U值和V值的输出配置成固定值,在上位机只显示Y值即灰度值,效果如图2。

002.jpg

  测试图案的采集涉及到的寄存器配置相对较少,而拍摄图像的采集要涉及到上百个寄存器的配置,其中关键的配置在于时钟,时钟的配置直接影响到图像采集是否成功。这涉及到微处理器地址0X11内部时钟的选择和0X6B内部PLL控制这两个关键寄存器的配置。对0X11使用内部时钟并二分频,0X6B中PLL配置为输入时钟×4,即可正常使用OV7670采集图像数据,通过OV7670采集得到的部分灰度图像如图3所示。

003.jpg

  2.2SRAM的扩展和图像的完整采集与存储

  对于图像传感器采集的大量数据,一般的微控制器自带的SRAM根本不够存储,由计算可得一帧YUV格式的QVGA至少要占用150 KB的容量,而微控制器自带的SRAM只有128 KB,不能完整地存储一帧YUV格式的QVGA图像。所以图像的存储便涉及到SRAM的扩展。SRAM的扩展可以通过外部存储和设备控制总线接口FlexBus实现。分配的外部SRAM分别进行全范围的8位、16位和32位的写入读出操作,通过判断数据的正确与否来验证外部SRAM是否正确驱动。对QVGA图像的完整采集和存储就要结合图像传感器的采集和外部SRAM的存储。实现两者之间的连接可以直接将DMA的目标地址指向外部SRAM的基地址,从而完整地存储图像传感器采集的数据,在实现QVGA八色颜色条的采集和存储基础上,对拍摄图像同样进行采集和存储,如下图4、5所示。图4完整的QVGA八色颜色条灰度显示

  

004.jpg

005.jpg

3点云数据计算及3D模型重建

  要获得点云数据就需要先进行图像分析,识别出激光光斑的像素坐标并处理输出,再根据原理分析公式与实际校正数据拟合的曲线公式计算获得实际距离,并由几何计算获得整列激光各点的实际距离值,同时结合舵机进行转角扫描获得多列距离数据,最后由距离数据再经三维坐标的转换获得点云数据。之后,将点云数据传输到计算机并导入第三方模型编辑软件,实现3D模型的重建。

  3.1图像分析和处理

  图像采集和输出中一直只用Y值即灰度值,所以图像分析也用Y值进行分析。Y值的范围为0X00~0XFF,0X00为黑色,0XFF为白色,激光光斑的值是每行中最高的,因为激光光斑实质是反射的光源,而激光正是定向发光且亮度极高的光源,另外由于图像传感器加装了红外虑光片,很好地削弱了可见光,保留了红外激光。但激光光斑并不是仅占一个像素点,所以应该以激光光斑像素点中的最高值代表激光光斑中心的位置[3]。图像分析算法可以逐行求出Y的最高值以确定激光光斑中心的位置,再输出转换计算后的坐标值。如下图6所示。

  006.jpg

  3.2曲线拟合

  公式中运用的参数在实际中并不能准确地由测量获得,所以这些参数应以实际的校正为准。本设计结合摄像头的参数,采用指数函数曲线进行拟合[4]。从拟合结果中可以看出,拟合公式和采集的数据吻合度还是非常高的,如下图7所示,曲线拟合的公式将可以实现纵列中点的单点测距,公式如下:

  007.jpg

  3.3整列激光各点实际距离的计算

  在求得了单点激光距离的基础上,再扩展到整列激光各点的实际距离计算,同时在求出垂线距离d’后,需再经过几何计算转化为实际的距离D,如图8所示,进行距离计算分析[5]。

 

008.jpg

  3.4整列激光各点实际距离的计算

  点云数据是扫描物体外表面各点三维坐标的集合,点云数据的计算实质就是对各点激光的实际距离经几何计算转换为三维坐标的过程[5]。三维坐标求解公式如下:

  pX=real_distance×cos(pitch_angle)×sin(yaw_angle+CurrentAngle×π/180)

  pY=real_distance×cos(pitch_angle)×cos(yaw_angle+CurrentAngle×π/180)

  pZ=real_distance×sin(-pitch_angle)

  本设计中3D模型的重建直接采用第三方模型编辑软件Meshlab,需要将点云数据从系统传输至计算机并保存成软件能够查看的文件格式如:.txt、.ply或.xyz文件。

  最终得到的3D重建效果如图9、10所示。图9扫描的真实环境图像

4结论

  经过实验测试,基于飞思卡尔K60激光扫描测距仪在0~3 m范围内的扫描精度为0.045 m,并且整个系统可靠,价格低廉。该设计使用图103D扫描重建的正视效果

  便携扫描的方案,让3D扫描仪能方便地运用于不同场合,如家用小场景小模型的三维扫描、机器人的智能导航、室内复杂场景三维建模等。同时自主研究了一套图像传感器底层嵌入式驱动的方法,具有广泛的应用价值。

参考文献

  [1] 湛金辉.基于激光和CCD的三维重建关键技术研究[D].南昌:南昌航空大学,2008.

  [2] 飞思卡尔技术部.ARM CortexM4高性能MCU:Kinetis K系列[EB/OL].(20151207)http://www.freescale.com/zhHans/webapp/sps/site/taxonomy.jsp?code=KINETIS_K_SERIES&cof=0&am=0.

  [3] 向劲松,吴金勇,李晓双,等.高帧频激光光斑采集系统设计[J].电子技术应用,2014,40(1):1315,19.

  [4] 王刚,张超.电涡流传感器及其最佳特性曲线拟合方程式[J].石油化工自动化,2005(3):2628.

  [5] 刘江,汪涛,唐清清,等.激光三角法厚度测量仪的设计与研究[J].微型机与应用,2014,33(10):1619.


此内容为AET网站原创,未经授权禁止转载。