工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->综合电路图->综合电路图->利用机器学习分析蚂蚁的运动来影响G代码,用粘土打印物体

利用机器学习分析蚂蚁的运动来影响G代码,用粘土打印物体

发布人:amy2025 时间:2025-08-19 收藏

这个项目是由加泰罗尼亚高级建筑学院(IAAC)开发的,作为紧急未来设计硕士(MDEF)项目的一部分。

1. 介绍

在《Microchallenge II》中,我们的任务是探索智能的概念,即由智能系统处理输入并生成输出。我们的项目通过研究蚂蚁的运动模式和交流,将人工智能与生物智能相结合。我们探索两种智能如何协作和相互告知,使用数字制造作为可视化的手段。

通过使用机器学习来分析蚂蚁的运动和相互作用,我们影响粘土3D打印的g代码生成。结果是一个与自然共同设计的对象,回归到蚂蚁的运动模式的启发结构。

2. 概念和系统图

我们的系统捕捉蚂蚁的运动并将其转化为可打印的形式,遵循以下关键步骤:

•跟踪蚂蚁的运动-通过视频分析记录蚂蚁的运动。

•Python中的图像映射-使用OpenCV将运动数据覆盖到单个图像中。

•在Grasshopper (Firefly + Rhino)中生成3D表面-将图像转换为3D表面。

•G代码生成在Grasshopper -准备模型粘土3D打印。

•粘土印刷&回归蚂蚁-制作结构并将其放回蚂蚁栖息的环境中。

我们设计的主要原则是保留蚂蚁使用的路径,创造自由流动的区域,同时通过负空间定义边界,确保它们的运动不受限制。

3. 早期的实验

最初,我们探索了P5.js来映射蚂蚁的运动,这导致了它们轨迹的点云表示。我们还尝试在Grasshopper中使用基于图像的映射进行直接处理。

从p5 .js生成的图像中,我们使用Rhino 3D和Grasshopper来创建所需的区域,但是处理点云的复杂性使其不切实际。这促使我们探索其他方法,最终转向Python和OpenCV。

4. Python和OpenCV的最终映射

我们在Python中实现了计算机视觉(OpenCV)(通过Visual Studio Code和Terminal执行)来分析蚂蚁的视频片段。我们的工作流程:

•输入视频-两只蚂蚁移动的记录。

•处理-识别蚂蚁的黑暗区域,提取他们的质心,并标记他们的运动。

•输出图像-叠加帧以捕获其连续运动。

初始输出-稀疏点表示运动。

热图(可以有未来的应用)-显示频率和停留时间。

最终覆盖-通过高斯滤波实现的连续统一区域,将单个轨道合并成一个有凝聚力的形状。

这个最终输出作为蚂蚁运动的理想映射,可以在Grasshopper中用于表面生成。

5. 将Python集成到Grasshopper中

我们的目标是使管道自动化,消除手动图像处理的需要。我们尝试在Grasshopper中直接运行Python,遇到了多种挑战:

Rhino 7问题:

Rhino 7中的Python脚本不允许执行外部库(如OpenCV)。

Rhino 7的Python解释器使用一个单独的目录,需要在其特定的终端中安装依赖项。

远程Python插件:

我们探索了Anaconda集成以调用外部Python脚本。

然而,在Grasshopper中仍然无法访问OpenCV。

Rhino 8的改进:

Rhino 8中的Python脚本允许我们执行OpenCV。我们设法在Grasshopper中安装了所有的库并运行脚本,但下一步是将这些点转移到Rhino中,而不是OpenCV预览本身。由于时间原因,我们决定将原型分成两步:首先,Python单独运行,生成图像,然后在Grasshopper中处理图像。

6. 从位图到轮廓

使用Firefly for Grasshopper,我们处理了python生成的位图:

•反转区域以突出显示路径。

•根据亮度值生成基于高度的网格。

结果是一个悬崖状的地形,白色的区域对应于凸起的表面,留下蚂蚁的路径作为低地。

然而,由于位图是基于像素的,而不是矢量化的,网格有过多的面,使其不切实际。为了解决这个问题:

•我们使用高斯模糊平滑过渡。

•我们用XY平面切割网格,提取干净的轮廓线。

7. 生成G代码的最终表面

为了生成用于粘土3D打印的g代码,我们从预构建的Grasshopper定义开始,该定义将表面转换为可打印的工具路径。

但是,Grasshopper没有将轮廓挤压识别为有效的表面,因此我们应用了以下修复:

简化轮廓

•提取的曲线包含的点太多,处理困难。

•使用重建曲线,我们减少不必要的点,同时保持形状的保真度。

表面识别问题

•Grasshopper最初没能识别出挤压出来的形状是一个表面。

•简化后,它成功地识别了单独的表面。

合并单独的表面(我们探索了两种解决方案)

•为结构的完整性创造了坚实的基础。

•添加外部边界以统一形状。

8. 打印测试

9. 原型

•第一次混合:500g粘土+ 30g水+ 5g + 5g

•第二次混合:第一次混合+ 3g

•第三种混合:500g粘土+ 34g水+ 5g + 3g

•第四次混合:第三次混合+ 8g

•第五次混合:第3次混合+ 5g(最后一次)

最后的原型



评论

技术专区