亲,欢迎光临图书迷!
错缺断章、加书:站内短信
后台有人,会尽快回复!
  • 主题模式:

  • 字体大小:

    -

    18

    +
  • 恢复默认

江临在文档最上方,写下低熵工坊下一条视频的暂定标题。

《规则相位与低公度相位对照实验》

看两秒,按下退格键,全部删掉。

又写:《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横摆曲线。

右下方,则是那条如同生命线一般,最终飙升至极限的黄色主轴电流。

十六秒的时间里,每一帧的数据跳动,都精准踩在机械咬合的节点上,犹如心跳般震撼。