APP下载

旋转式三维扫描器的设计与实现

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,程序如下:

登录APP查看全文

猜你喜欢

利用设计
利用min{a,b}的积分表示解决一类绝对值不等式
何为设计的守护之道?
利用一半进行移多补少
《丰收的喜悦展示设计》
利用数的分解来思考
Roommate is necessary when far away from home
瞒天过海——仿生设计萌到家
设计秀
有种设计叫而专
设计之味