旋转式三维扫描器的设计与实现
2014-07-08徐海涛谭兆湛
机械工程师 2014年9期
徐海涛,谭兆湛
(华南理工大学 广州学院,广州 510800)
0 引 言
三维扫描是集光、机、电和计算机技术于一体的技术,主要用于对物体空间外形和结构及色彩进行扫描,以获得物体表面的空间坐标。它能够将实物的立体信息转换为计算机能直接处理的数字信号,为实物数字化提供了相当方便快捷的手段。
1 扫描原理
利用Kinect 进行扫描,会有一个可见面和一个隐藏面。假设有一个点P 在隐藏面,其空间坐标是P(x,y,z),如图1。

图1
我们需要通过不同方向的拍照来重建整个物体,并在同一个空间坐标系中获得全部点来确定这个物体。因此,让平台旋转一定角度α,使得P 点对Kinect 可见。在前一次的拍照中,点P 确定于其坐标P(x,y,z)。当平台旋转后,P 的坐标相应发生变化变成P(x′,y′,z′)。如果知道平台相对于前一次拍照旋转的角度,可以通过基本的三角关系容易由P(x′,y′,z′)计算出原来坐标中P 点的坐标。如果平台绕Y 轴的旋转角度为α,可得到如下转换方程:

2 系统设计
2.1 旋转平台设计及程序设计

图2

图3 电路图
旋转平台的设计是利用齿轮传动来实现,如图2。右边的小齿轮连接舵机,带动中间的大齿轮转动,传动比为5∶1。左边小齿轮是连接电位器的,用来输出角度信息,系统采用arduino 单片机进行控制,电路如图3。
舵机的控制程序如下:

角度控制程序如下:

从Processing 中读回当前角度信息,利用map()函数把角度信息转换为舵机的目标角度。
2.2 Processing 程序设计
在Processing 中,定义变量shotNumber,如下:
float[]shotNumber=new float[3];
shotNumber 用要定义拍照的次数,这里我们让物体
每转120°拍照一次,因此定义为3,程序如下:……p>
登录APP查看全文
