当代版木牛流马?国外网友造出“会走路的桌子”引百万人围观
你想喝瓶啤酒,于是就把桌子叫了过来。这不是吃了菌子才有的场景,而是国外网友的一项发明,名叫 Carpentopod。整个桌子有 12 条腿,里面内置了电机,是木工、电子和编程结合的产物。只要按下遥控器,桌子就会向你走来,像一台家用机器人一样。
从图上可以看出,Carpentopod 走起来非常平稳,这是它的腿部参数不断“进化”的结果。这个“进化”过程在软件的虚拟环境中进行,数千个虚拟腿部变体在该环境中竞争,只有得分高的腿部变体才能混合“基因”。
如此精巧的结构制作起来自然是非常不易。作者表示,“早在 2008 年,我就写了一些有趣的软件来生成各种优化的步行机制。近年来,我掌握了一些电子和木工技能,于是能够将其中一种机制变成一个真正的无线步行木制咖啡桌。”
这种机器人技术与木工的结合令人眼前一亮。作者 @Giliam de Carpentier 表示将参加近期的一个活动,届时会做更多介绍。
这个咖啡桌在网上吸引了上百万人的关注,很多人表示想要一个。
在一篇文章中,作者介绍了从设计到材料选择,再到加工和装配的全过程。其中包括使用数控机床加工竹板部件,还包括控制电机和 Arduino 系统以实现桌子的移动功能。
文章链接:https://www.decarpentier.nl/carpentopod
设计新连杆
Carpentopod 腿部连杆是由作者编写的软件生成的。这个软件让数千个虚拟腿部变体进行竞争,以此进化。为了挑选出最佳的变体,每个变体都被赋予一个基于其行走速度、间隙和材料使用的“适应度”分数。在行走周期中最低的三分之一阶段,作者额外奖励了那些腿尖能更水平和更平滑移动的变体。这样的设计有助于三条腿协同作用,以最大程度减少行走时的晃动和足滑。
通过比较每种变体的适应度分数,只有最优秀的变体才能混合其基因(即腿部参数),创造出一代又一代的新变体。除了通过“自然选择”混合基因外,作者还定期引入基因突变,以帮助发现新的解决方案并保持多样性,直到找到最佳解决方案。作者用 C++ 编写了包括运动学求解器在内的所有程序,使得这个模拟每秒可以进化数十代,让人可以清晰地看到从初步设计到高度优化设计的转变。
上面的动图展示了 20 秒钟的进化过程。每帧显示 5000 个“存活”的变体中的一个。同时,视频中叠加了所有 5000 个个体的腿尖轨迹,这些轨迹随时间推移合并成一个红、绿色光晕,最终收敛成一个单一的解决方案。作者最终选择的腿部连杆,是通过运行一个规模更大、时间更长的模拟程序简单选出的。命名结合了古拉丁语和希腊语单词:carpentum(一种有盖的马车,如下图)和 pod(代表脚或有腿的)。
看过 Theo Jansen 鼓舞人心的 Strandbeest 雕塑的人可能都会发现,他的雕塑的腿部连杆机构与 Carpentopod 连杆机构十分相似。但 Carpentopod 的连杆具有一套完全不同的组件比率,以及一个额外的关节点和一个进化过的圆形脚趾直径。这些额外的参数使得进化过程能够找到一种更紧凑、减少脚部滑动的解决方案。
Strandbeests 是荷兰动感雕塑艺术家 Theo Jansen 发明的“风力仿生兽”,依靠机械原理和自然风力移动前行,结构巧妙之处在于合理的利用平衡性进行物理变量的转化,能源转化率非常高。
脚部滑动的原因是不同的脚趾着地的速度不完全一致,因此在实践中会导致这些腿试图相互减速。(不过,Strandbeest 的腿似乎通常都采用某种灵活 / 滚动的脚趾,而不是刚性的脚趾,这可能在一定程度上有助于弥补这种影响)。下面的动图比较了两种不同的设计,包括它们对尺寸、重心和脚滑动 / 滑行的影响。
设计会走的桌子
多年来,上述成果只是一个兴趣项目的有趣结果。但最近几年,作者也对制作实物产生了兴趣。他尝试制造的第一件东西是之前版本连杆的一个微型模型,由于其对紧凑性的优化较少,因此不适合成为最终的 Carpentopod 桌子。这只是为了测试他新开发的技能, 并在尝试更大项目之前试用新的 CNC(数控机床)。
接下来,他决定制作一个可以行走的木制咖啡桌,因为他认为这既实用又具有美观价值。由于 Carpentopod 连杆中的每个独立腿部只占行走周期的三分之一,因此这个桌子本身需要十二条腿以保持稳定。为了保证行走的平滑性,腿部组件也需要以亚毫米级的精度制作并维持这种状态。这就是作者选择用层压竹板进行 CNC 加工的原因,这种材料坚固、自然、耐用且稳定,非常适合将机械元素与有机风格结合起来。
作者使用 Autodesk Fusion 360 设计了桌子的所有组件,这使他能够在同一个软件包中完成建模、测试、渲染和所有 CNC 的准备工作。能够在其行走周期的任何阶段从任何角度实际查看完全组装的模型,极大地方便了美学调整和确保所有间隙都恰到好处。
在一端的六条腿和另一端的六条腿之间,作者还留出了一个中空的“腹部”,用来放置电子设备、电机和电池。为了让它看起来不那么棱角分明,他把框架和腹部设计成弧形,就像一个倒置的百宝箱。这可能是有些人说它看起来像 Terry Pratchett《碟形世界》(Discworld)小说中的“行李箱”(如下图)的原因之一。
中央的腹部还能使所有支腿至少与中心保持一定距离,从而使所有支腿都能更有效地参与转弯。每组六条腿都被设计成与自己的曲柄轴相连,由一个电机驱动。这样,它们只需要两个单独控制的电机就能像坦克一样“驱动”和转动桌子。
构建过程
为了将 3D 设计实物化,作者尽可能多地使用 CNC。这不仅因为精确度的需要,也因为这样可以更容易地批量制造出十二个相同的木制部件。由于这只是一个兴趣项目而不是生产线,所以作者决定使用他便宜的三轴 CNC 路由器亲手制作所有东西。
三轴 CNC 只能从顶部去除材料。但是由于许多零件也需要从底部和 / 或侧面移除材料,以制造更复杂的形状和凹陷,作者将大部分腿部零件设计成由三片层压竹子制成,他可以分别加工每层竹子,然后将其粘合在一起。
当然,即使是单个部件也可能需要使用不同尺寸和形状的切削工具多次过刀,并可能需要精确地翻转以进行双面加工。但这正是数控加工的现实 —— 如果你不想买更贵的五轴 CNC,也不想使用塑料进行 3D 打印的话,这就是你必须面对的。
除了作者自己数控加工、抛光、上漆并用更多的滚珠轴承和钢轴组装的 100 多个竹制部件外,设计还要求制作两个曲轴。他最终通过将 D 形轴和带 D 形孔的旋转偏心体锤在一起,精心地从普通铝杆和铝板中数控加工出这些部件。
桌子的弧形“腹部门”是通过在同一层压竹中精细地切割制成的,然后蒸汽处理使其更加柔韧,最后在弯曲夹具中干燥,以赋予其新的形状。然后,这些部分被粘贴在两个带有嵌入式磁铁的隐形铰链肋上,使得门易于打开和关闭。最后,他还焊接了一件与之高度相同的电视柜,并将一块芒果木加工成两件家具的桌板,有效地将它们组合成一套。
让桌子动起来
两个六腿部分应由各自的电机驱动。但实际上,是每个部分的单个曲轴协调腿部的相对运动。在下图中可以看到,作者只是简单地推动一个没有电机的部分向前移动,该部分就可以表现得像一个轮子。
图中还展示了脚趾是如何轻触地面(由黑线表示),但并不试图穿透它的。这意味着,桌子在行走时不会有太多的“颠簸”。当然,最小化颠簸也是连杆在进化过程中的适应度指标之一。
为了让它自行移动,作者订购了两个便宜的齿轮驱动的 24V 无刷电机,这类电机通常用于自动窗帘,输出最大 1.5 Nm @ 130 RPM。它们内置的电子设备还允许使用额外的 PWM 信号线直接控制速度。遗憾的是,当尝试让它们低速运行时,电机几乎立即进入了一种因温度过高而自动持续几秒的关机保护模式,即使仅在极小的负载下也是如此。幸运的是,将 PWM 信号保持在 100%,并直接改变电压,情况就好多了。如下图所示,作者直接将可调试的实验室电源连接到其中一个六腿部分的电机上。
为了能自动控制电机电压,作者购买了两个便宜的升降压转换器模块,这些模块可以将任何电池的电压转换成 0 至 24 伏之间的任意电压。然后,他对这些模块进行了改造,使它们的输出电压可以直接通过一个来自改造后的 Arduino Nano 微处理器板的快速 PWM 信号来设定。这些电压转换模块还提供了一个可调的最大电流设定功能,这使他能够对每个电机的最大堵转扭矩进行控制,从而确保了操作的安全性,尤其是保护了手指。
接下来,他将露出的霍尔效应电机传感器的信号接入了 Arduino 板,并用 C 语言编写了一套软件来实现自己的闭环电机控制系统。这样一来,电机现在能够独立且精确地控制到任何可能达到的速度和位置,而且这种控制不受负载的影响。
在最后一步,作者将一个蓝牙模块连接到 Arduino 上,并编写了一些 C 语言代码,使其能够连接并解析来自改造的无线 Nunchuck 操纵杆的数据。在安装了一个 14.8V 的锂电池之后,桌子就可以在客厅里任意走动了,作者通过一个小型遥控器控制桌子。
最后,作者公开了他的连杆图纸,想要复制该项目的读者可以参考。