江临在文档最上方,写下低熵工坊下一条视频的暂定标题。
《规则相位与低公度相位对照实验》
看两秒,按下退格键,全部删掉。
又写:《n,不再等于一》。
还是删掉。
太像回应了。
如果现在就发第二期,很容易。
做四台对照机,摆出规则板、随机板、非重复间距板,再甩出一组比第一期更漂亮的数据。
确实能让一大半争论当场闭嘴。
可那样一来,低熵工坊就被评论区牵着鼻子走了。
别人说你没对照,你就补对照。
别人说你n=1,你就把n做大。
一路接招,看起来打得热闹,实际上就只能永远站在原地,在别人的逻辑框架里打转。
虽然江临一直告诉自己不受网络刻板印象的影响,但当看着后台那99+的红点时,潜意识里还是难免有些被带着去思考。
他摇了摇头,把脑子里那些虚拟的喧嚣全部清空。
第一期视频里,六足那层最基础的机械架构的壳子,他已经给出去了。
真正感兴趣,有动手能力的人,自然会接着拆解。
用自己的失败,把规则相位和低公度相位往下推。
他不必亲自下场,去回答每一道题。
他要做的是下一步。
第一期的六足平台已经证明了用2022年的普通材料,普通加工,普通电机,天幕站那套被动容错的机械逻辑,在桌面尺度上能重新跑起来。
但它有个毛病。
它只会走。
走得动就走,走不动就趴下。
可你要问它,刚才到底哪儿出了问题,它一个字也答不上来。
铁屑老周说:“当某条腿没按你想的方式受力,你怎么让剩下五条腿,别跟着它一起犯病。“
中部985在论文里说:“错误不会集中在某一个机械节拍上连续放大。“
这两句话,都只摸到了大象的一条腿。
江临真正想做的,根本不是一台被动六足能不能在复杂地形里少摔几次。
而是,既然机器的身体本身能扛下一部分容错,那它为什么不更进一步,而是停留在一台没感知,没记录,摔了也说不清的被动测试架上?
在他的构想里,这个六足平台的下一阶段至少该知道,自己身上发生了什么。
哪条腿的足端先失去了载荷?
哪个位置的棘爪在不该咬合的相位提前咬合了?
主轴电机的瞬时电流,到底是在哪一帧、哪个毫秒突然抬起来的?
机身的横摆失控,是从什么时候开始陷入死循环重复的?
它的失败,是一瞬间大厦倾覆般塌掉的,还是顺着底层的机械结构,像金属疲劳的裂纹一样,一点点爬出来的?
这第二只虫子,得能把自己为什么走不下去记下来。
他新建了一个文件夹。
G01_Embodied_Failure_Logger
【低熵工坊 G-01:一台会记录自己怎么趴窝的虫子】
然后开始写文案。
“上一期那只虫子,只会走路。这一期,我想让它学一件更难的事:在摔倒,死锁,甚至主轴烧毁之前,把自己身体里正在发生的一切灾难,一字不漏地记下来。“
往下,他开始列bom(物料清单),每列一个硬核的电子零件,就在旁边用最粗糙的大白话翻一遍。
高带宽ImU(惯性测量单元)。
——你手机横过来屏幕会自动转,靠的就是类似这类mEmS惯性器件。把它装在机身上,让它随时记录自己是平的歪的,还是正在往下栽。
薄膜足端压力传感器(FSR)。
——脚底的体重秤。六六条腿哪条被压到了,它能给出第一手线索。
主轴高边电流采样(INA240)。
——给电机把脉。腿一卡住、连杆一突然吃力,电流立刻往上窜。人使劲会憋红了脸喘气,电机使劲,这陡增的安培数就是它的喘。
全局快门高速摄像头(oV9281)。
——一个没有任何智能的随身记录仪。不用卷帘快门,因为果冻效应会毁了机械动作的瞬间。它不认人、不认路、不跑YoLo目标识别,只管把微距下的齿轮啮合过程录下来,留着事后一帧一帧回放。
边缘计算与高精度时间戳对齐底板。
——机器的黑匣子。飞机摔了靠黑匣子复盘,这只虫子摔了,也得有自己的黑匣子。
所有传感器数据和视频帧,必须被绑定在同一条统一时间线上。
至少要精确到毫秒级,电流、ImU这些高速数据,再单独保留更高频采样时间戳。
写到这里,江临停顿了一下,把一开始打算用的树莓派三个字删掉。
Linux系统的非实时性会带来不可控的调度延迟,对于分秒必争的机械正时来说,那就是毒药。
他改成了:【主控板:Stm32h7高性能单片机。】
他现在还不需要强算力,只要稳定的硬件定时器,足够快的Adc采样,以及一套不会被Sd卡写入延迟拖乱的环形缓冲区。
强算力会像海妖的歌声,勾着人去做极其复杂的感知,做全地形的步态规划,做花哨的波士顿动力式的平滑控制。
这不是G-01该干的活。
G-01的任务,不是在聚光灯下表演我很聪明,我能后空翻,而是像一个沉默的苦行僧,把身体里那点机械结构失效的溃败过程,老老实实地记下来。
底盘第一版的图纸不必推翻,仍旧保持低速六足的构型。
六足在几何学上的好处是接触点极度清楚:每条腿什么时候落地,什么时候失去载荷,棘爪什么时候锁止,力学传导路径清晰,一笔一笔记得清。
他在旁边用括号留了一行备忘:【备选:轮腿混合架构的复杂性太高,干扰变量太多,以后再说。】
接着,他在纸上画了张简图。
中央主轴电机,两侧对称的六条腿,每一个聚甲醛(pom)切削的足端内嵌一个压力点。
机身正中的质心位置焊着一颗ImU,主轴电机的供电线上串联着霍尔电流采样,前方探出一个毫无美感的裸露摄像头排线,侧面挂着一小块布满绿油的pcb记录模块。
画完,他端详了一会儿。
这台长满了飞线和传感器的G-01,比第一只光秃秃的虫子更丑了
但它无疑也更有用。
……
最先到货的是足端压力传感器。
一包薄薄的柔性薄膜片,装在防静电袋里,轻飘飘的,拿在手里像几片被随手裁成圆形的黑色劣质塑料纸。
卖家页面的参数写得天花乱坠。
航空级高灵敏,百万次高重复性,零温漂,完美适用于高仿生机器人足底压力检测及步态分析。
江临拆开防静电袋,用镊子夹起一片,对着头顶昏黄的白炽灯看了整整两秒。
这东西绝对不能直接信。
哪怕标称参数再好,也不能信。
做过底层硬件和非标自动化的人都知道,传感器这种东西,最容易合法地欺骗系统。
即便它工作完全正常,输出的电压信号极其稳定,Adc(模数转换器)读到的数值也完全符合欧姆定律,也能凭实力把整个上位机的运动解算带偏到姥姥家去。
这涉及到一个极度深渊的工程学难题。
观测者效应在宏观机械上的幽灵再现。
比如把这片薄膜直接贴到原本是球面的足端下面?
原本的点接触,瞬间变成了面接触,直接改变了足底的接触面积和受力模型。
比如为了防止磨损,给它外面加一层硫化橡胶保护?
嗯,足底的静摩擦系数和动摩擦系数全变了,原本能在木板上滑行的步态,现在会死死卡住。
比如为了采集信号,走线从腿侧的连杆绕过去?
恭喜,几根硅胶软线的质量和拉扯力,直接改变了整条腿的摆动惯量,原本调好的机械谐振频率全废了。
如果用的双面固定胶太硬,足端会失去原本设计好的柔顺性,走起来像个踩高跷的僵尸。
如果用的固定胶太软,比如3m的厚泡棉胶,测试时足端受到侧向剪切力,薄膜和保护层之间就会发生肉眼看不见的微小滑移。
……
说白了,江临想让G-01把平台的失败记下来,可第一步遇到的问题就是记录这个动作本身,会改变被记录的平台物理特性。
这比买到坏件更麻烦。
买到坏东西,大不了退货换新的。
但如果装上这套传感器网络之后,机器的重量分布、摩擦力、柔顺性全变了,它已经不再是原来那只纯粹的虫子了。
那么,它最终记录下来的失败,究竟是本体机械结构的翻车,还是记录系统自己通过物理干涉,凭空制造出来的bug?
这是硬件工程里的哲学问题。
上午九点半,教师楼后排的小车库。
工作台上摊着G-01第一版底盘。
它仍然沿用六足结构,但为了建立痛觉神经系统,江临像给一具还没缝合的机械身体接上神经,给它顺手飞了几条扎眼的线束。
红黑相间的足端压力线,屏蔽网包裹的ImU数据线,从电调上硬接过来的主轴电流采样线,一条极宽的Fpc摄像头排线,以及腹部那块他用嘉立创打样,焊满了0402阻容件的自研数据记录板。
一眼看过去,它简直像是一只刚做完赛博义体植入手术,还没缝合装甲的金属怪物。
江临拿起第一片薄膜压力传感器,小心翼翼地垫在左前足的pom足底。
压紧,贴上极薄的3m 468mp双面胶,走线。
用镊子引导着极细的漆包线,沿着铝合金连杆的内侧,绕过所有可能发生干涉的摆动死角。
最后,用一点点热熔胶和小线夹固定。
一套标准的高密度组装操作,看起来毫无破绽。
于是启动电机。
“滴——”
电调发出清脆的上电提示音。
他轻轻推下启动开关,启动主轴电机。
G-01的机械齿轮开始咬合,发出低沉而规律的咔嗒声。
它慢慢抬起左前腿,迈出第一步。
很稳健。
第二步,右中腿跟上。
没问题。
第三步刚抬起来,然后毫无预兆地,迎来了整个项目最喜闻乐见的翻车环节。
左前腿那根顺着连杆固定的极细的足端线束,在腿部摆动到最高点时,因为连杆的相对运动,产生了一个不到两毫米的微小外凸。
就是这微小的两毫米,让线束的绝缘皮被旁边的主传动杆轻轻擦了一下。
真的只是像羽毛一样擦了一下。
可就是这微不足道的一点点摩擦阻力,让左前足在往下落的瞬间,由于被线扯了一下,慢了半个节拍。
电脑屏幕上,上位机实时滚动的压力曲线上,立刻冒出一个刺眼的假峰值。
日志窗口无情地输出一行红字。
【Error code 0x1A】左前足端压力异常,标记为疑似提前触地。
江临盯着屏幕,没动。
此时,机器的电机还在转,它继续往前走,左中腿结结实实地接住了整个机身的载荷,机身姿态平稳,没有任何要摔倒的迹象。
但在数据世界里,数据已经脏了,这台机器已经死了。
江临关掉电机电源。
左前足根本没有提前触地。
是那根用来探测触地的线束,像一只有形的手,在半空中拖住了它。
传感器没有记录到失败的真相。
相反,传感器用它自己的物理实体,制造了一次失败的影子。
江临面无表情地拿起螺丝刀和斜口钳。
把那根线拆下来,重新规划走线路径,用游标卡尺测量了间隙,从连杆的外侧改到了不会发生摩擦的内侧,又用新近购买的3d打印机临时打了一个倒角平滑的限位线夹。
再试。
这一次,线完美避开了所有干涉区,没有扫到连杆。
但墨菲定律永远不会缺席。
新的bug如期而至,且更加隐蔽。
由于之前担心硬胶会改变足底摩擦,他采用的传感器保护胶稍微软了那么一点点。
当G-01的足端踩上测试用的斜向尼龙障碍条时,薄膜传感器和保护层之间,发生了肉眼无法察觉的微小滑移剪切。
上位机的数据曲线里,出现了一个异常优美平滑的缓慢上升段。
系统判定:“载荷平滑转移,步态极佳。”
“神仙数据啊。”
江临笑叹,在这种刚性机械结构里,根本不可能存在这么平滑的受力曲线。
他调出正对着足端的高速摄像头,将帧率拉满到240fps,开始一帧一帧地转动鼠标滚轮进行回放。
画面在漆黑的屏幕上缓慢跳动。
停在第九十七帧。
画面里,金属足端早已死死地压住了尼龙障碍条,足底的pom材料甚至发生了微小的弹性形变。
然而,旁边同步显示的压力曲线,却像个刚睡醒的树懒,还在慢吞吞地往上爬升,根本没有达到触地阈值。
延迟。
还是足足14帧。
以当前240fps的帧率换算,14帧意味着58毫秒。
对一个在b站刷着擦边舞蹈视频的观众来说,58毫秒连眼皮眨一下的时间都算不上。
但对于一台依靠内部棘爪正时逻辑,在失衡边缘疯狂试探来活命的机械六足虫来说,58毫秒的物理信号延迟,足够把整条纯机械的动力链送进火葬场。
58毫秒,棘爪早就错过了最佳的咬合时机,齿轮会在错误的位置卡死,电机瞬间过载烧毁。
江临在记录本上写——
【G-01踩坑记录:传感器安装方式及材料力学引入假柔顺。保护层剪切滑移与FSR迟滞共同引入读数延迟,当前安装方式下延迟约58ms。不能直接用于判断触地时刻,必须先改安装结构,再与电流、ImU和视频帧做交叉校验。】
【G-01第一课:给身体接上神经,不等于身体真的会说实话。】
第一只虫子的难点,是攻克机械加工精度,让它在复杂的相位中走起来。
第二只虫子的难点,是攻克系统工程,让它说真话。
而在这个充满摩擦,温度,噪声的现实物理世界里,让一台由无数零件拼凑起来的机器说出真话,比让它走起来,难上百倍。
……
下午两点,吃过午饭小睡了一觉的江临开始收拾比足端压力更让人抓狂的东西。
ImU。
如果说足底的压力传感器是个喜欢用物理滑移来撒谎的骗子,那ImU就是个患有神经衰弱的敏感肌。
敏感本来是它的本职工作。
通过内部微机械结构,它能精准记录机身在三维空间里的横摆、俯仰、微小的震动,以及每一次跌倒时的瞬时冲击G值。
可问题在于,如果你把这个敏感的神经元固定在错误的位置,它就会把主轴电机的电磁高频振动,某颗m3螺丝没拧紧的松动,甚至是某根数据线在风中拍打机架的震颤,统统误认为是机身的姿态变化。
江临在这个小小的硅片上,经历了三次痛苦的迭代。
V1.0方案(中置底盘直贴)。
他遵循了物理学中最直观的逻辑,把ImU贴在机身的几何中心,也就是底盘的正中央。
位置绝对准确。
可是那个功率高达150w的直流无刷主轴电机,就在它旁边不到五厘米的地方。
主轴一通电开始旋转,哪怕机器还没落地,上位机里的数据波形直接炸裂。
高频的电磁噪声和电机的机械共振,顺着刚性底盘全传了过来。
机身明明稳如老狗,屏幕上的姿态曲线已经疯得像在跳迪斯科。
V2.0方案(上层柔性支架)。
秉着惹不起躲得起的原则。
他用3d打印机打了一个尼龙小架子,把ImU挪到了远离底盘和电机的上层空间。
电机噪声确实小了,波形平滑了不少。
但江临还没来得及高兴,一落地测试就原形毕露。
尼龙支架太薄,悬臂太长,机器只要迈开腿走路,整个机身带动的低频晃动,让那个小支架自己开始产生共振颤抖。
最终,ImU记录下来的根本不是真实的机身整体姿态,而是那个破支架在空中疯狂的帕金森抖动。
V3.0方案(加厚金属配重块)。
江临动了真火。
他用6061硬质铝合金搓出了一个极厚、硬的固定底座,然后攻了几个极紧的螺纹孔,把ImU锁在上面。
这一次,刚性绝对足够,数据瞬间干净得像教科书里的示例。
然后就是这块沉重的实心铝块,增加了机身上半部分的质量分布。
机器的整体重心被凭空拔高了12毫米。
当这台机器再次爬上那些非重复间距板时,因为重心的改变,侧倾风险明显增加。
记录系统,再一次无情地改变了被记录的物理对象。
江临冷静地把这三次测试、三组截然不同的数据图表并排放在屏幕上。
第一组:被电机高频噪声污染的假姿态。
第二组:被支架低频自振污染的假姿态。
第三组:很干净,却让机器变得更容易摔倒的假数据。
三条路,每一条都不完美。
但这就是工程学,不用在真空球形鸡的假设下寻找一个完美的解析解。
而是在一堆糟糕透顶的选项里,通过无数次的权衡,妥协,压榨材料的极限,挑出一个错得最少的。
最终,他配置了一个复合滤波方案。
机械层面,将ImU移到了靠近机身重心,但不在主轴正上方的侧边。
用一块短小精悍的标准化铝座固定,然后在铝座和机架之间,垫入一层极薄的高密度丁腈橡胶片,用来做物理层面的低通滤波。
连续测试了四次不同厚度不同邵氏硬度的垫片,再配合软件层面的卡尔曼滤波算法,才勉强把噪声压到了边缘计算板能够处理的阈值范围以内。
……
傍晚时分,江临放在一旁的手机屏幕不断亮起,低熵工坊b站后台正在发送疯狂涌入的消息提示。
这很正常。
一个没有历史投稿的新账号,突然靠一条硬核机械视频冲进科技区推荐池,又正好踩着非周期这个热词,必然会招来一堆乱七八糟的东西。
有人在耐心等低熵工坊的第二期技术解析。
有人在冷嘲热讽,认定他江临已经江郎才尽,不敢继续往下做,生怕暴露理论的缺陷。
有人像催债一样在评论区刷屏催他放出详细的Solidworks图纸。
有人直接开口:【Up主,我是学生,cAd发我一份,我想学习一下。】
还有人更直白。
【哥们,你这个思路我感觉能搞创业,要不要一起做?我负责商业,你负责技术。】
江临一条条滑过去,飞快浏览了一遍,关掉后台,接着调 G-01。
晚上七点三十五。
第一组干净的翻车数据终于出现。
测试环境其实很简单,工作台上只有一块短小的木板,上面用强力胶固定着一根呈现30度斜角的尼龙条。
目标也只有一个:主动制造右前腿在特定相位下的斜向卡滞。
G-01以设定的极低速度,沉稳地向前迈进。
左前腿落地,一切正常。
右中腿支撑起一半的机身重量,正常。
右前腿在空中划过一条弧线,慢慢接近那根斜向尼龙条。
足端接触的瞬间。
江临盯着屏幕上被切分成四个象限的同步画面。
第一象限(左下角):压力曲线。
屏幕上,代表右前足的绿色压力曲线轻轻抬头。
第二象限(左上角):ImU姿态。
紧接着,红色横摆曲线出现了一小段几乎微不可察的向右偏转趋势。
第三象限(右下角):主轴电流。
此时,电流波形依然是一条平静的直线,电机还不知道灾难即将降临。
随着高速摄像机的画面逐帧推进,时间被无限拉长。
第十二帧:右前足的pom材料在光滑的尼龙条上,因为斜向受力,发生了一次极其微弱的侧向滑移。
就在滑移发生的瞬间,压力曲线突兀地分裂出两个异常的双峰。
第十五帧:侧滑带来的连锁反应爆发了。
接触角的微小偏差,通过连杆系统放大了数倍。原本应该完美避开的棘爪齿尖,凄厉地擦到了转动中的齿条边缘。
第十七帧:机械干涉的阻力瞬间反馈到主轴。
电流采样芯片捕获到了安培数的陡然暴增,一条黄色的直线如利剑般直插云霄。同时,机身因为受力不均,横摆角速度剧烈加速。
第二十帧:灾难彻底降临。
主轴电机的驱动板触发了过载保护,切断了pwm输出,整台机器发出一声沉闷的咔声。
机器停住了。
江临把这不到一秒钟的慢动作回放,来来回回拉动了整整五遍。
再把四条时间轴绝对对齐的数据拖出来看。
足端压力,ImU 横摆,主轴瞬时电流,高速视频捕捉帧。
在人类工程学的历史长河中,这微不足道。
但在这个小车库里,这是第一次,四条原本孤立的物理证据链,严丝合缝地对上。
不是那种被滤波算法涂抹过的完美拟合,而是带着真实物理世界粗糙毛边的,足够清晰的因果逻辑链。
错误,并不是从电机电流异常开始的。
错误,也不是从机身倾斜那一刻开始的。
错误,更不是从那声刺耳的棘爪死锁声开始的。
一切灾难的源头,第一下真正要命的失效,是那次在第十二帧发生的,足端在斜向接触里的微小侧滑。
侧滑,制造了毫米级的接触角偏差。
偏差,把本该顺畅工作的棘爪硬生生拖进了一个错误的机械相位。
棘爪在这个错误的时刻提前啮合,这才引发了最终的整条运动链的死锁。
逻辑完美闭环。
江临看着屏幕,只觉得头皮发麻。
这套神经系统太可怕了,但也太美了。
如果没有那片该死的足端压力传感器,如果只看外部的录像视频,所有人都会理所当然地以为,是底部的棘爪设计有缺陷,发生了疲劳卡死。
如果没有精确到度数的ImU,如果只看粗暴的电机电流曲线,大家都会判定是电机马力不够,遭遇了过载。
如果没有那个全局快门的高速摄像头提供绝对时序同步,如果单看压力曲线那诡异的双峰,又会很容易误判成简单的提前触地干涉。
只有当这四条带着杂音的线束合在一起,交叉印证,失败,才终于第一次在这个狭小的车库里,开口说出了一句完整清晰的话语。
江临在屏幕上按下了暂停键。
右前足端,斜斜地地压在尼龙条上的瞬间。
此时的机身,还没出现任何肉眼可见的倾斜。
决定翻车与否的棘爪,还没有真正咬合锁死。
而代表主轴电流的黄色曲线,才刚刚开始微微抬头。
这是问题真正开始爆发之前,安静隐秘的一帧。
截图,保存,录入日志。
命名:G01_fail_001_initial_slip_frame.png
【test_Id:G01-001】
【terrain:斜向固定尼龙条极限测试】
【Start_phase:初始运动相位 52.5°】
【First_Event:灾难原点-右前足端斜向接触后发生侧滑】
【propagation:因果链传导-侧滑→接触角偏差畸变→棘爪提前擦齿干涉→瞬时负荷突增导致电流上升→触发主控硬件保护停机】
【Final_Stop:系统状态-运动链发生不可逆死锁】
【Recoverable:自恢复可能-否】
第一条具有完整因果追溯能力的失败日志,在6月30日这个闷热的夜晚,正式落笔。
夜里九点。
江临打开剪辑软件,把刚才这个颇具历史意义的翻车过程,随手剪成了一段只有十六秒的分屏视频。
视频被切分成严谨的四宫格。
左上方,是足端接触瞬间的超高清慢动作特写。
右上方,是实时同步滚动的绿色压力受力图。
左下方,是随着机身轻微晃动而波澜起伏的红色ImU横摆曲线。
右下方,则是那条如同生命线一般,最终飙升至极限的黄色主轴电流。
十六秒的时间里,每一帧的数据跳动,都精准踩在机械咬合的节点上,犹如心跳般震撼。