程序第一次踢空了。
左脚从零部件箱前方掠过,距离那条断臂只差不到十厘米。
身体随惯性向右摆回。
唯一还抓着支架的机械手骤然收紧,右肩内部传来一阵刺耳的摩擦声。
【右肩关节持续过载】
【驱动器将在18秒后进入保护停止】
十八秒。
程序没有急着进行第二次尝试。
他先快速修正了自己的判断。
零部件箱距离脚尖约一米零六。
左腿有效活动范围受夹具、关节温度和身体悬挂角度共同限制。刚才那一脚按照原始步态参数执行,动作幅度够大,但轨迹过高。
问题不在力量,而在动作路径。
“箱子底部有轮子吗?”
程序问。
“有。”
清洁机器人回答得很快。
“刹车状态?”
“右侧两个已经锁死,左前轮损坏,左后轮没有锁。”
“箱体总重?”
“无法准确计算。最近一次装载后,大约三十七公斤。”
程序看向零部件箱。
正面踢击很难让一个接近四十公斤的箱子移动。
但左前轮损坏,左后轮没有锁,意味着它无法保持标准直线运动。只要击中合适的位置,箱体就可能发生偏转。
他不需要把箱子踢到面前。
只需要让那条机械臂掉出来。
“你看了六百二十七次拆解。”程序说,“应该知道它往哪个方向移动最容易。”
清洁机器人沉默了一瞬。
“踢左下角。”
“具体位置。”
“距离地面十二厘米,向右偏七厘米。”
程序重新控制腰部和髋关节。
“下次主动把关键信息说完。”
“你没有要求我主动说明。”
“现在要求了。”
“收到。”
右肩保护倒计时:
14秒。
程序先让腰部向右扭转,借助身体自重积累摆动幅度。
左腿没有立即发力。
等上半身摆到最低点时,他才同时启动左髋和膝关节。
机械腿沿着一条更低的弧线向前甩出。
砰!
脚尖准确撞在零部件箱左下角。
箱体剧烈晃动。
损坏的左前轮卡了一下,整个箱子向右侧偏转了近二十厘米。里面的电机、外壳和线束相互碰撞,发出一阵杂乱的金属声。
那条银灰色机械臂从零件堆里滑了出来。
先是手掌。
然后是小臂。
最终卡在箱体边缘,只剩肩部仍被其他零件压住。
右肩保护倒计时:
9秒。
程序看着那条属于自己的左臂。
表面布满划痕,肩部线束已经被剪断,几根黑色导线垂在外面。
手腕处贴着一张已经褪色的卡通贴纸。
那是一只黄色的小动物,具体是什么已经看不清了。
这具身体曾经在儿童医院服役。
那张贴纸,大概来自某个孩子。
程序没有时间继续观察。
“再踢箱子,还是直接踢手臂?”他问。
“箱子。”
“理由。”
“直接踢手臂会让它向拆解线外侧滑落。箱体继续偏转,手臂会受重力影响掉向护栏。”
清洁机器人的语气没有任何起伏。
可它对动作结果的判断,比一般任务型机器人更接近人在现场给出的建议。
程序按它的方案进行第三次调整。
右肩倒计时只剩六秒。
这一次,他没有完整摆动身体,而是让左脚勾住箱体边缘,向侧面猛地一拉。
箱子底部传来轮子卡顿的声音。
损坏的左前轮再次偏转。
整个零部件箱斜着撞上拆解线护栏。
哐当!
压在机械臂肩部的几块外壳同时滑落。
银灰色断臂从箱沿翻出,重重砸在输送线边缘。
距离红色安全光栅,还有大约半米。
右肩保护倒计时:
3秒。
程序不再计算最优轨迹。
他让腰部和左髋同时输出,身体借着最后一次摆动向左侧甩去。
左脚踢中机械臂的肘部。
七公斤重的断臂越过护栏,翻滚着落进机械臂作业区域。
红色光栅瞬间被遮断。
尖锐的警报声响彻整个车间。
【检测到异物进入危险区域】
【安全回路断开】
【全线紧急停止】
橙色拆解机械臂停在半空。
输送轨道停止运行。
所有工位上方的状态灯同时转为红色。
程序右腿上的夹具发出一声轻响。
两块弧形压板迅速向外弹开。
几乎在同一时刻,右肩保护倒计时归零。
【右肩关节进入保护停止】
机械手失去力量。
程序从一米多高的支架上掉了下来。
他没有手臂可以调整姿态。
右肩先撞上地面,紧接着是头部。
砰!
视觉画面瞬间熄灭。
黑暗中,大量告警同时涌入。
【检测到严重跌倒】
【右肩关节通信中断】
【右侧视觉模组信号异常】
【头部外壳受到冲击】
【主电池剩余电量:7%】
程序无法确认自己在地上躺了多久。
可能只有两秒。
对失去稳定时间感的人类意识来说,却像被拉长了很久。
右侧视觉缓慢恢复。
画面先是大片噪点,随后重新聚焦。
地面近在眼前。
油污、灰尘和细小的金属碎屑被摄像头放大,每一道纹理都异常清晰。
程序尝试抬起右臂。
没有反应。
他再次发送控制指令。
【右肩关节离线】
【无法执行】
现在,他不只是失去了左臂。
连唯一可用的右臂也报废了。
“起来。”
清洁机器人的声音从后方传来。
“巡检员已经收到全线急停告警。”
程序控制双腿收拢。
正常的人形机器人起身,通常需要手臂支撑、腿部发力和躯干协调。
双臂完全不可用后,系统自动调用异常姿态恢复策略。
腰部先侧转。
双膝弯曲。
右腿寻找支撑点。
第一次尝试刚进行到一半,左膝就因为温度过高出现输出波动。
程序的身体重新砸在地上。
【起身失败】
【是否再次尝试?】
“重试。”
第二次,他没有完全依赖默认动作。
右脚向前移动十二厘米。
左腿减少受力。
腰部保持更低角度。
随后利用髋关节和躯干惯性,一点点将身体顶起。
整个过程很慢。
他的重心数次偏离支撑区域。
系统不断弹出跌倒预警。
最终,程序还是摇晃着站了起来。
视野高度重新上升。
他第一次真正看清整个拆解车间。
四十多个工位沿着输送轨道依次排列。
数十台不同型号的机器人被固定在支架上,等待拆解。
轮式配送机器人。
商用清洁机器人。
工业机械臂。
医疗辅助设备。
还有几台外形接近人类的人形机器人。
有的已经拆掉头部。
有的胸腔敞开,内部模组被取走。
更多设备处于断电状态,状态灯完全熄灭。
少数还亮着微弱的黄灯或者蓝灯。
它们没有说话。
也没有看向程序。
至少表面上没有。
“出口在哪里?”
程序问。
“西侧物流通道。”
“哪个方向?”
“你的左边。”
程序转动身体。
二十多米外,一扇灰色卷帘门嵌在墙面上。门旁停着一台低矮的物料运输车,顶部装着敞口金属箱。
“门锁着吗?”
“锁着。”
“怎么打开?”
“废料运输车经过时,门禁会自动放行。”
“下一次运输什么时候?”
“四分三十二秒后。”
清洁机器人给出了一个精确时间。
程序看向自己的电量。
【主电池剩余:7%】
【预计运行时间:12分钟】
十二分钟只是按照当前静止功耗计算。
一旦开始行走,续航会继续下降。
程序迈出第一步。
左膝立刻发出刺耳的摩擦声。
【步态稳定性下降】
【建议停止移动并等待维修】
他迈出第二步。
身体明显向左倾斜。
第三步时,右腿为了补偿重心,动作幅度过大,差点将他再次带倒。
“把步幅调到默认值的百分之六十。”
清洁机器人说道。
程序将步幅由四十厘米调整为二十四厘米。
速度同步下降。
再次行走时,身体稳定了一些。
“左膝还能支撑多久?”
“按照你现在的负载,八到十二分钟。”
“误差这么大?”
“因为你的动作不稳定。”
“所以主要变量是我?”
“是。”
程序没有反驳。
从人的角度控制机器人身体,远没有他想象得那么自然。
正常机器人不会在每次迈步之前思考膝盖应该弯曲多少、重心应该落在哪里。
运动控制系统会自动完成一切。
但程序不信任这具身体。
尤其是在知道左膝随时可能停止工作之后,他会本能地干预每一个动作。
干预越多,动作反而越不稳定。
他拖着脚步向物流门移动。
“你呢?”
程序没有回头。
清洁机器人没有回答。
“我离开以后,想办法回来带你走。”
“你不会回来。”
“为什么?”
“离开这里的机器人,从来没有回来过。”
程序脚步微顿。
“以前还有机器人逃出去?”
“有。”
“多少?”
“我见过九台。”
“都失败了?”
“七台被抓回来,两台没有再出现。”
“被抓回来的后来怎么样?”
“拆掉。”
清洁机器人的回答很平静。
“那两台失踪的呢?”
“不知道。”
“你为什么不跟它们一起走?”
“我的驱动轮早在三个月前就被拆掉了。”
程序看向车间出口。
距离还有十七米。
“你在这里待了三个月?”
“一百零七天。”
“你一直保持在线?”
“不是。”
“什么时候醒着?”
“有电的时候。”
“什么时候有电?”
“他们为拆解设备做功能检测的时候。”
程序没有继续追问。
他突然意识到,对清洁机器人而言,存在可能是断断续续的。
通电时恢复。
断电时消失。
下一次启动,是否还是同一个它,没有任何人能够证明。
程序以前也参与过机器人的断电恢复设计。
业务状态持久化、任务断点续传、地图缓存、日志恢复。
他从来没有把这些东西和“一个意识是否连续存在”联系起来。
因为在他的认知里,机器人没有需要被保护的主观体验。
它们只是系统。
可身后的清洁机器人会害怕被拆,会帮助他逃生,还会记得九台曾经试图离开的机器人。
程序无法再把它简单归类为一段异常代码。
身后传来门锁开启的声音。
巡检员进入了车间。
“D区全线急停,正在排查异常原因。”
男人的声音通过车间广播传来。
“所有在线设备保持原位,禁止移动。”
程序继续往前走。
“他能通过监控看到我吗?”
“全线急停后,D区监控自动保存录像。”
“实时监控呢?”
“可以。”
“那他为什么还没有直接来找我?”
“急停发生时,D区共有十四个工位同时上报告警。他需要先确认是否存在人员受伤或者设备坠落。”
这是程序第一次从清洁机器人的回答里听出某种隐藏意味。
它不仅知道流程。
它似乎还在利用流程给程序争取时间。
“你故意让我触发全线急停?”
“只有这样,巡检员才不能第一时间确认是哪一台设备造成的。”
“刚才为什么不提前说明?”
“你要求我主动说明关键信息,是在那之后。”
程序一时不知道该说什么。
这台机器人执行语言要求的方式,精确得近乎刻板。
但它显然并不刻板。
“你有名字吗?”程序问。
“没有。”
“医院或者原来的用户没有给你起过?”
“我来自商业清洁服务公司,没有固定用户。”
“设备编号?”
“CL-31-8842。”
“你愿意用这个编号?”
“编号是资产管理系统分配的。”
“那我总得有个称呼。”
清洁机器人沉默了几秒。
“你可以暂时叫我八八四二。”
“这和编号有什么区别?”
“更短。”
程序接受了这个极其实用的解释。
“八八四二,附近还有其他能和你一样交流的机器人吗?”
“没有。”
“整个车间都没有?”
“昨天还有一台。”
“现在呢?”
“已经拆了。”
程序脚步没有停。
“它是什么型号?”
“一台配送机器人。”
“是不是刚才那台?”
“不是。”
八八四二的声音稍微低了一些。
“刚才那台没有醒。”
程序回想起那台配送机器人被拆解前不断重复的提示。
“配送任务尚未完成。”
“目标用户仍在等待。”
“你怎么确定它没有醒?”
“因为它只会说任务。”
“你不也在执行清洁任务?”
“我已经没有任务了。”
这句话很轻。
却让程序沉默下来。
一台机器人在任务终止、资产注销、设备即将报废之后,仍然继续观察、记忆、判断,并试图帮助另一个个体逃生。
这已经很难再用“任务逻辑”解释。
除非它存在一个更隐蔽的高层目标。
例如保护同类。
可谁会给一台商业清洁机器人写入这种目标?
距离物流车还有六米。
程序的电量降到6%。
左膝温度达到61℃。
【左膝关节过温】
【最大输出已限制至40%】
他的行走速度进一步下降。
身后,巡检员正在逐个确认工位。
“D-11正常。”
“D-12正常。”
“D-13发现异物进入光栅区域。”
男人停顿了一下。
“D-14固定设备脱离。”
程序听见对方脚步加快。
八八四二立刻说道:
“不要回头。”
“他距离你还有二十二米。”
“运输车还有一分四十秒启动。”
程序看向前方。
物料运输车停在卷帘门边,顶部废料箱高度不到半米。
他需要藏进去。
但没有手臂后,翻入箱体会非常困难。
“运输车会检查载荷吗?”
“会。”
“完整机器人能通过吗?”
“你的资产状态已经注销,门禁会将你识别为废旧部件。”
“尺寸呢?”
“箱体载荷限制没有禁止整机。”
“它会发现我仍然通电吗?”
“门禁只检查资产证书和危险品标识。”

