"前段时间受到shadow和博文的邀请,先后在mixlab和川美做了一个简单的小分享,希望我能够说说关于我在做一些有趣的事情和想法,也是接着这个机会,也是把好久没有整理的东西稍微整理了整理。"
缘由
不知道大家一开始看到这个标题第一反应是什么。其实我的第一反应,就是这个“缝合怪”的变身场景。
来自鹿模拟器
这个荒诞、无厘头的拼凑组合,第一次看到的时候,给我带来了极大的精神冲击。实际上这种“缝合怪”在各种影视剧、游戏作品中都以不同的形式,时有出现。最广为人知的,也当数科幻小说始祖《科学怪人》中的弗兰肯斯坦的怪物,小说中的主人公通过在坟场中精细挑选挖掘尸块,以专业知识判断还能使用哪部分,再将之拼成人型,通过电击赋予他生命。
弗兰肯斯坦的怪物剧照
而实际的“缝合怪”也是类似的。下面是magicleaps在2015年发布的他们最早的AR眼镜的原型机。可以看到暴露着的大型电路板,硕大厚重的镜片,以及毫不掩饰的热熔胶的痕迹。其实很容易发现,这个原型,很可能就是各种物件上的拆解再组合,所以才有了这个“缝合怪”模样。
magicleaps早期原型
不过就算是这个看上去很夸张的“缝合怪”,还是点燃了当时的人们对于增强现实的无尽想象。
其实我第一眼看到这个的时候,感觉还是非常亲切的,因为一直以来,我就在捣鼓的各种各样的“缝合怪”,也是如此,我也慢慢的萌生出了“缝合工程”的概念。
什么是缝合工程
简单的定义一下,缝合工程就是对现有的组件,进行挑选、拆解再组合,从而达成新目标的方法。
软硬件的缝合过程
对于整个的缝合过程,一般来说是如此处理的:首先是需要确认核心问题,然后就是就是从核心的问题出发,拆分出所需要的功能模块,再挨个对功能模块去寻找对应的解决方案,最后进行整体的缝合。
举个例子
举一个实际搭建自装配实验台的小例子,看一下是怎么操作的。自装配实验台在很早的时候有一期推送中详细说明过,这里就简要说一下实验台搭建过程中的缝合过程。
[毕设] 更大尺度下自装配规律探索-基于于乒乓球的气流无序装配实验
1.确认问题
首先,对于这个实验台,我需要的是搭建一个针对乒乓球的自装配实验,就是通过控制气流,把一堆球,自发的装配成特定的形状。所以简单的说,就是要科学的把一堆球吹成一坨。那么就需要思考如何去吹,如何科学的吹。
2.拆分模块
针对以上的问题,就是需要进行模块的拆分,首先如果要吹起乒乓球,那就需要一个 人造风场,如果要让乒乓球自发装配,那么就要进行元胞的设计;科学的吹球则是需要能对吹球进行干预、跟踪、模拟。
3.寻找方案
针对拆分出来的功能模块,那就是需要去寻找对应的解决方案了。
人造风场
直接选用无人机上的无刷电机以及对应的电调,通过PWM直接控制
元胞设计
通过3D打印模具胶粘磁铁,完成元胞的制作。
干预吹球的方式
通过动态控制风速的大小以及添加数控遮板,数控遮板直接为CNC上拆卸的步进电机以及控制器,搭建平面的结构,直接通过Gcode传递坐标点完成遮板的控制。
跟踪吹球的过程
调用opencv的颜色识别,通过对乒乓球的颜色追踪,得到热力图
模拟吹球的结果
通过对pythonocc编写脚本,完成对装配结果可能性模拟。
4.完成缝合
通过将上述的方案进行整合,完成实验台的搭建。
然而对于软件上的缝合,大家可能有一个更加广为人知的名字,就是workflow(工作流),我们之前的推送中也多次提到各种各样的工作流,例如从python到processing,从processing到gh,从gh到illustrator这种,而实质上就是针对不同的软件工作环境,通过开发对应的接口,完成数据的串流,从而实现目标。
而软件中的缝合并不像是硬件上物理的方式,而是需要通过各种数据接口进行串联,有时候还要对一些开源代码进行裁切再组合。
不过实际操作中也是硬件中类似,同样的也是先确认问题,再拆分模块,寻找对应方案,最终进行整体缝合打包。
缝合工程的核心思想与能力
针对前面说的一些,我们可以总结出缝合工程的核心思想,也就是方法。大致有2点。
模块化的解构,针对问题以一个个的功能模块进行拆分,把需求定义的明确。尽可能的不要造轮子,做基于最大可用模块级别的开发。什么是最大可用模块,就是能满足需求最直接的解决方案,就比如装配实验台中的数控遮板,直接是通过将CNC控制系统中拆分出来,并不需要去编写控制步进电机的算法,坐标系的表达等等等,这样是最为快捷与稳定。避免自己掉入重新造轮子的陷阱之中。
所以这也对能力提出了要求。首先就是需要有快速可信多维度的信息收集能力,比如通过网络,书籍,论文,专业的从业人士,去过滤无效信息 ,锁定核心问题,从而降低试错的成本。最有效的方式就是通过专业人士获得信息,而跨界社群,则是能够找到各个领域中专业人士最便捷的渠道。
另一方面就是需要有全方位的技术栈,这个是确保有足够的接口能力以及二次开发能力。面对全新问题的时候,这样才能快速的展开行动。
缝合工程的优势与劣势
总得说来,优劣也是非常的明显,优势首先是时效性非常好,可以在很短的时间内达成既定目标。同时灵活敏捷,可以非常方便的进行修改和变动,因为都是才众家所长,困难的部分都是已经被解决了,所以就是短期经济性高,能以较高的性价比完成原型的搭建。因为也是完成了整个功能模块的拆分,那么就有了清晰的道路认识,这个对后续的发展至关重要。
劣势则是因为是“缝合”方案,所以整体来说稳定性差,且批量成本高,部署困难。因为无论是硬件还是软件,那些被“缝合”的组件并不是天生在一起的,可能就会面临了着各种复杂的环境以及困难集成方案,这样对于批量部署来说,都是很大的障碍以及挑战,这些都会体现在成本上,同时“缝合工程”最大的劣势是风险来自于外部,自身缺乏完整的控制力,对于用于缝合的组件,可能会面临着失去维护以及供货,也会面临着被竞争对手的快速复制的可能性,难以建立壁垒。
不过,万事开头难,缝合工程的目的并不是说打造一个完美的产品,而是通过快速的“缝合”,多快好省的摸清道路,验证想法,从而指导后续的决策。能够到这,我觉得这个缝合也是完成了应有的使命了吧。
最后,想要加入跨界社群?
在公众号后台回复“UDM Club”,加入群聊和我们交流。