我对这个项目的设想如下:
能准确且正确地产生3D计算机模型。
能够扫描1英尺(30.48厘米)x1英尺x1英尺大小的物体。
项目成本小于20美元(折合126.4元人民币)(手头已经有的材料不计在内,但就算加上这些扫描仪的成本也不会超过100美元(折合632.1元人民币))。
最后的作品工作的很好,我希望能在未来进一步提升可用性,改善性能,并且让软件更加自动化。
定位三维空间的某个点有多种描述方式。最简单的方式是给出三个坐标数字来定位它和空间中另一点的相对位置,大多数计算机模型也使用这种格式。另外一些方式是用三个平面,或者一个平面和与其相交的一条线来定位。事实上最容易定位的是第三种描述格式,并将获得的数据转换成第一种格式保存。所以现在问题就变成了如何定位平面和与之相交的线:平面的定位可以用硬件解决,而直线的定位用软件处理。
和我在其他制作里做的一样,我会首先展示基本的设计大纲,然后再进行具体解说。这样的话方便根据自己的情况调整制作的环节。
一个玩具海螺壳,不幸的是过大了些。
我们需要生成一个平面,然后将平面的位置记录下来供计算机处理。尽管其他人有时使用阴影边缘定位,我打算用个更有趣的方法。我有一个亮度很高的绿色指星笔(普通的激光笔也行,大功率的指星笔通常比较贵)。我将它射向一个圆柱形透镜,将光束扩展成一个扇面,并将扇面作为定位平面使用。这个方法很奏效,但是注意扫描仪的工作范围将会被透镜的尺寸限制。我的透镜大约直径1英寸(2.54厘米),虽然框架大约是一个2英尺(60.96厘米)见方的立方体,但是扫描区域只有2英尺x6英寸(15.24厘米)x6英寸大小。用一个小些的透镜会更好,但对我来说这样的扫描区大小也算是够了。
首先要制作一个能装下扫描仪部件的箱子,底板和后面板用聚氨酯板,侧板用胶合板,剩下的部分用在台锯上锯下的1.5英寸(3.81厘米)木块。在完工之后,我发现不一定需要聚氨酯板,找一些平胶合板漆上白漆的话也一样,并且便宜一点。
我的箱子尺寸介于1.5英寸到2英寸(5.08厘米)之间,但是具体来说可以自定。箱子中比较重要的部分是顶部的导轨,导轨的加工必须精确,并且同滑轮配合妥当。我用了3/8英寸(0.95厘米)的金属棒做导轨,以及手头的尼龙滑轮,但是类似的设计也都能用。
接下来是激光头的支架,脱胎于一块旧木头。一张图片胜过千言万语,所以我会把具体的说明放到图片上。支架安装在导轨上,能够沿着导轨滑动。支架上有个激光组件的安装孔,所以激光组件可以在盒子的背板和底板之间,以及垂直方向上自由运动。
支架和激光组件安装完成后硬件设置就完成了,接下来的步骤是安装摄像头。
相机应该安装在侧面和正上方,这样能够接收到反射出的激光光线。
这时候最好有一个测试样品,我找了一个小雕像,但是有着大小不等丰富细节的物体都可以。看看拍摄到的图像,保证能从它们的角度看到反射的激光。看下面的图片更更清楚地了解我的意思。
软件的编程思路很简单,摄像头中的每个像素对应实际空间中的一个点。或者说,摄像头拍下的图像是三维空间的一个投影,重点是怎样将两个空间中的点一一对应起来。事实上这可以通过一个简单的方程做到。
开始扫描
现在来试一把。试图扫描点东西然后来看看工作状况。从这个简单的扫描仪里得到的并不是最终的扫描模型,只有对着摄像头的那些面能够被定位,分辨率也比较粗糙。解决这个问题的方法是多次扫描然后将结果合成。
扫描快乐!
果壳空间和果壳实验室联手组成果壳双创空间!在这里,创业团队可以享受果壳实验室提供的评测报告,获得来自创客的建议;创客们也可以在这里提供你的脑洞想法,我们共同实现!此外,还有更多有趣好玩的线上、线下活动等着你的参与,精彩内容,联手奉上。
联系客服