1 历史发展

1.1 早期机械雏形(1950s-1980s)

杂耍机器人的萌芽可追溯至20世纪50年代工业机器人兴起之初。彼时,工程师们尝试将通用机械臂改造为表演道具,如1957年通用汽车公司为宣传片设计的“机械手抛球”演示。这类系统主要依靠固定轨道和简单凸轮机构,动作重复、僵硬,且缺乏对外部环境的感知能力。1960年代,日本早稻田大学研发的WABOT系列人形机器人首次尝试单球垂直抛接,但成功率极低。1970年代,美国斯坦福研究院的Shakey机器人虽以移动和规划著称,却未将杂耍纳入核心功能。真正意义上的杂耍机器人研究直到1980年代才因工业自动化需求而加速——例如,1986年东京大学团队推出的JR-1(后文详述)标志着专用杂耍平台的诞生。

1.2 计算机控制时代(1990s-2010s)

1.2.1 轨迹规划算法的引入

1990年代,计算机处理能力的跃升使实时多体动力学仿真成为可能。研究者开始将“抛体运动方程”与“机器人逆运动学”相结合,生成连续的抛接轨迹。1993年,麻省理工学院MIT)的Raibert团队(以四足机器人闻名)提出了“打蛋器式”循环轨迹模型,使机械臂能持续抛接单个球而无须停顿。这一阶段,PID控制和前馈补偿成为主流,但系统仍高度依赖精准的物理模型,对扰动(如风速、球体碰撞)的鲁棒性较差。

1.2.2 视觉反馈系统的应用

2000年代初,高速摄像与图像处理芯片的普及改变了游戏规则。2004年,瑞士苏黎世联邦理工学院(ETH)将两台120fps的相机安装于机械臂上方,实时检测球的落点并修正抓取位置。视觉反馈将抛接成功率从60%提升至98%以上。2008年,日本电气通信大学的机器人甚至能完成三球抛接——尽管动作像“喝醉的章鱼”般笨拙。视觉闭环控制成为此后十年的标准范式。

1.3 现代人形与专用平台(2010s至今)

1.3.1 轻量化与模块化设计

2010年后,碳纤维和3D打印技术使得机器人整体质量大幅降低。波士顿动力Atlas、优必选Walker等双足人形机器人开始展示杂耍能力。同时,专用杂耍平台(如瑞士“Dexter”臂、中国“悟空”抛接模组)采用模块化关节,用户可快速更换末端工具(网兜、夹爪或吸盘)。轻量化带来更低的能耗和更高的安全系数——即便机器人因误判“咬住”自己的手指,也不致造成严重损坏。

1.3.2 开源社区与DIY文化

与专业级设备并行发展的是开源硬件运动。2014年,Arduino和树莓派驱动的“抛果机器人”项目在Make杂志上风靡一时。代码库如“JuggleBot-OS”允许爱好者用步进电机和3D打印件自制单球抛接装置。2020年,GitHub上的“DiY Juggling Robot”仓库已有超过3000星,玩家在论坛上分享“如何让机器人丢出贝克汉姆弧度”的调参心得。开源文化极大地降低了研究门槛,但也催生了大量“炸机”视频(圈内戏称“抛接一时爽,修机火葬场”)。

2 技术原理

2.1 机械结构

2.1.1 关节类型与自由度

杂耍机器人通常采用6或7自由度(DOF)的串联机械臂,以模拟人类肩肘腕的运动。旋转关节(R关节)提供绕轴转动,线性关节(P关节)提供平移。两者在杂耍中的角色截然不同:

  • 旋转关节:用于高动态抛掷——通过快速角加速度赋予球体初速度(如肘关节“甩鞭”动作)。
  • 线性关节:多用于精准微调——如活塞推动末端执行器水平移动以对准落点。

尽管P关节在精密定位上有优势,但多数现代杂耍平台更青睐全旋转设计,因为后者在抛接大行程(如抛物线上方)时更节能。偶尔也有混合型设计(如PRR结构),但维护成本较高。

2.1.1.1 旋转关节与线性关节的区别

旋转关节类似人臂的“骨头绕轴转”,线性关节则像伸缩式自拍杆。在杂耍场景下,旋转关节的角速度极限决定了球能抛多高;线性关节的行程决定了接球时的横向覆盖范围。有趣的是,业余爱好者发现用线性关节抛接时,“球会像被弹簧弹射”一般,轨迹更容易计算——但职业抛接手坚持认为旋转关节的“画弧”更优雅。

2.1.2 末端执行器(手爪/球托)

末端执行器是机器人的“手”。常见设计有三种:

  • 三点式抓握爪:仿生学爪,手指闭合夹住球体,适合标准棒球大小的物体。
  • 凹面托碗:无抓握力的凹陷结构,靠离心力保持球在碗中,常用于“平衡+抛接”复合动作(如Atlas玩球时使用的平板托)。
  • 主动吸盘:用于抓取表面光滑的异形物(如灯泡、水晶球),但吸力延迟可能导致抛接失败。

选型主要取决于被抛物品的特性和表演要求:硬爪适合精确控制,托碗更适合高速连续抛接(“打蛋器”模式必备)。

2.2 控制与感知

2.2.1 运动规划中的物理仿真

控制算法的核心是“预测-执行-校正”循环。工程师使用ODE(开源动力学引擎)或MUJOCO来建立抛体运动模型,并在CPU上以1ms步长模拟球的轨迹。抛掷时,规划器会计算出机器人“释放球”的最佳关节角度和速度;接球时,则根据视觉反馈的实时位置逆向求解末端执行器的到达时间。若物理仿真与实际有偏差(如球体材质摩擦系数未建模),结果就是“球在飞,代码在崩”——一句圈内广为流传的梗(见6.4)。为此,现代系统常集成卡尔曼滤波器对不确定参数进行在线校正

2.2.2 视觉跟踪与预测算法

视觉系统通常由两台正交布置的高帧率相机(≥200fps)构成。算法流程:

  1. 背景减差法提取球体轮廓
  2. 质心计算(亚像素精度)。
  3. 卡尔曼滤波或粒子滤波预测未来0.2~0.5秒的轨迹。

对于多球场景,还需解决“球与球重叠”时的ID识别问题——常用的方法是给每个球贴上不同颜色的反光标记,或利用光流法区分。2016年,有团队用深度学习端到端预测落点,在5球抛接中将失误率从15%降至4%,但训练需要数万次实际抛接数据(相当于让机器人“练习”7天不睡觉)。

2.2.3 力/触觉反馈与自适应抓取

当机器人接住球的瞬间,腕部或手指内嵌的力传感器会检测冲击力。如果力过小,说明球没有完全停稳,机械臂会实施“微退让”来缓冲(类似人类松腕)。如果力过大,则可能因关节惯性导致球弹出。自适应抓取算法据此调整夹持力的大小:对于易碎物品(例如玻璃灯泡),力阈值被严格限定在3N以内。这项技术也是防止“杂耍机器人误将灯泡当球”惨剧的关键防线(见6.5)。

2.3 能源与驱动

2.3.1 气动与电动驱动对比

  • 气动驱动:使用压缩空气活塞,具有高爆发力和近乎瞬时的响应,非常适合抛掷动作。但气源(空压机)导致整体系统庞大且噪音大(实验室常被戏称为“蒸汽朋克车间”)。曾有一款气动杂耍机器人因软管泄漏,把自己“喷”得满屋打转。
  • 电动驱动:无刷电机+谐波减速器是当前主流。定位精度高、静音、易于控制和模块化,但峰值扭矩受限于电池放电能力。为了弥补爆发力不足,部分电动臂采用“弹性储能”设计:用弹簧蓄能再突然释放,模拟气动效果。

2.3.2 电池续航与动力分配

移动式杂耍机器人(如Atlas)依赖锂电池包,续航通常为15~30分钟(连续抛接)。研究者通过动态电压调节实现按需分配:抛掷瞬间向驱动关节提供高电流,接球阶段则降至低功耗模式。一些实验平台甚至利用“抛接间隙”进行能量回收——通过再生制动为电池充电,尽管回收的能量仅够多续命“再丢两次球”。对于固定式舞台表演,外接电源是更稳妥的选择。

3 常见表演类型

3.1 抛接球

3.1.1 单球垂直抛接

最简单的表演,也是所有高级动作的基础。机器人将球垂直抛起至一定高度(通常0.5~1米),然后在原点接住。在视觉反馈下,这种动作成功率接近100%。然而,若抛掷角度偏差超过2度,球便会偏离接球区——此时机器人往往做出“愚蠢的抓空气”动作,成为台上出糗名场面。

3.1.2 多球同步抛接(如3球、5球)

需要复杂的时间片调度。以3球为例:左手抛球1、右手抛球2、左手接球1、右手抛球3……循环。2012年,德国萨尔大学的机器人首次实现稳定的3球杂耍,但动作频率仅0.8Hz,远低于人类专业选手的4Hz。5球至今仍是机器人的“鬼门关”:由于视觉处理延迟和关节惯性,系统经常在4.6球左右时崩溃(即第五球还没抛出,前几个球已经砸地)。圈内将这种“卡死在4.6球”的现象戏称为“杂耍机器人界的四六级分数线”。

3.1.3 异形物体(火把、刀)抛接的挑战

并非所有机器人都是“怕火的”。但为了安全,绝大多数实验室只敢用道具火把(LED灯模拟火焰)和钝刀。真正的挑战在于异形物体的重心不稳定:火把具有长杆,导致空气阻力中心前移;刀的刀刃方向若不对,接住时可能划伤传感器。2017年,一支业余团队试图演示“机器人抛接电锯”——结果锯片卡在爪缝中,机器人自己把自己“拆”了,视频在YouTube获得800万播放量。自此,圈内达成共识:不要跟电锯谈理想。

3.2 平衡与旋转

3.2.1 单杆平衡(如平衡碟)

机器人用末端执行器顶端顶起一根长杆,并在杆末端保持盘子旋转。实际上这属于“平衡类杂耍”,而非抛接。控制算法利用IMU(惯性测量单元)检测杆的倾斜角,通过膝盖或基座的运动抵消偏移。波士顿动力Atlas曾在2021年表演过足尖顶球,但被观察者发现“球其实是粘上去的”,引发热议。

3.2.2 多物体旋转(打蛋器式)

双臂各执一球,沿共轭椭圆轨迹旋转,形成“打蛋器”效果。这种动作对臂内干涉极为敏感:左臂必须与右臂相位差180度,否则两球会在空中相撞(称为“吻球”事故)。目前最好的记录是由日本东京大学的“JugglerX”保持的连续旋转382圈不碰撞。

3.3 互动杂耍

3.3.1 与人类表演者配合

机器人被设定为“小丑”角色:向人类抛球并要求对方接住并传回来。这需要机器人的视觉系统同时跟踪人类手部位置和球的轨迹。2019年,三星实验室的“Ballie”机器人(球形宠物)曾尝试与人互抛,结果因无法理解“假动作”而频繁被骗——人类做出抛球手势但实际没松手,机器人便提前张爪等候,导致后续动作混乱。该实验被誉为“机器人被人类耍的第一个案例”。

3.3.2 根据音乐节奏即兴调整

通过麦克风提取BPM(拍速),杂耍控制器根据节奏缩放抛接速度。慢歌时抛接幅度大、动作舒展;快歌时频率上升。2019年,加州大学伯克利分校的机器人曾在Live音乐节上配合电子乐表演,但当DJ突然切换成2倍速Hardstyle时,机器人关节因过热保护而紧急停机——“跳舞机器人”变成了“定格雕塑”。

4 知名案例与记录

4.1 日本“传球机器人”(JR-1,1986)

早稻田大学在1986年研制的JR-1被视为现代杂耍机器人始祖。它重约80kg,由6个气压驱动关节构成,仅能完成单球垂直抛接,成功率约30%。最著名的轶事是:在一次公开演示中,JR-1误将工程师的眼镜当成球来抛(因为镜片反光被视觉系统误判为白色圆球),结果眼镜碎裂,导致整场演出被推迟两小时。尽管如此,JR-1开创了“机器人杂耍学”这一细分领域。

4.2 瑞士“Dexter”臂(2009-2012)

由苏黎世联邦理工学院(ETH)研发的Dexter机器人,是史上首个能稳定执行3球抛接的专用平台。它拥有7个自由度,采用碳纤维骨架和高速视觉(200fps)。Dexter的突破在于“误接恢复”能力:当它丢失一个球后,会立即调整策略,把剩余球转为平衡模式。2012年,Dexter在瑞士国家博物馆连续表演了12小时,期间“只”掉了4次球——其中一次是因为一只鸽子飞入视野,导致视觉系统错误跟踪鸽翼而忽视球的轨迹。

4.3 波士顿动力Atlas玩球(2021)

2021年,波士顿动力发布视频展示人形机器人Atlas抛接3个球的片段。该片迅速火爆网络,但也引发巨大质疑:长期跟踪Atlas的粉丝指出,视频中球的影子有时不与实际位置吻合,推测是后期补帧或物理模拟的合成效果。然而波士顿动力始终未正面回应,导致“Atlas玩球”成为机器人圈著名的“罗生门”。至今,部分技术档案仍将此片段标注为“数字演示”。

4.4 世界纪录:最快抛接数/最长时间

  • 最快抛接频率:2018年,中国哈尔滨工业大学研制的“旋风号”在一个真空腔中测得单臂每秒抛接8.7次(使用乒乓球,空气阻力可忽略)。但该记录未被吉尼斯正式认可,因为真空环境被认为“不属于杂耍范畴”。
  • 最长时间多球抛接:2020年,德国弗劳恩霍夫研究所的机器人“约翰·杂耍者”持续3球抛接11小时47分,最终因轴承过热而停止(并非因为掉球)。这台机器人被戏称为“真正的社畜”。

5 未来趋势

5.1 群体杂耍(多机器人协同)

未来,多个机器人可能围成圆阵,互相传递球体形成“环形抛接”。这需要解决协同规划、碰撞避免和共享视觉等问题。2022年,欧洲“CIRQUE”项目已成功演示两台机器人互相传接2球,但第三台机器人的加入导致“球权争夺战”——机器人A和机器人B同时去接同一个球,差点把对方手臂缠在一起。

5.2 深度学习驱动的动态策略

传统算法依赖显式的物理模型,而深度强化学习(DRL)允许机器人通过数万次试错学会杂耍。2023年,DeepMind团队发布了一个模拟环境的杂耍智能体,其抛接策略人眼无法分辨——但迁移到现实时,机器人第一轮就撞毁了两个舵机,因为虚拟世界中设置的摩擦系数与现实不同。这种“模拟到现实”的差距仍是难题。

5.3 情感化设计与娱乐商业化

未来的杂耍机器人将不再仅是技术演示,而是面向迪士尼乐园、环球影城等主题公园的表演者。它们将被设计出“拟人化”情感反应:成功时“咧嘴”或亮灯,失败时“摇头”或播放懊恼音效。2024年,一款名为“JuggleBuddy”的概念产品宣称能根据观众表情调整抛接难度——“如果观众嫌无聊,机器人会丢出一个球砸向自己脑袋来搞笑”。

5.4 伦理讨论:机器人取代人类杂耍者?

随着机器人动作越来越流畅,部分马戏团开始考虑裁减人类杂耍演员以降低成本。反对者认为,机器人的表演缺乏“即兴失误带来的真实感”,而支持者指出机器人能完成人类无法达到的频率和高度。目前行业内达成的妥协是:机器人负责辅助道具搬运和背景抛接,人类演员负责主秀和互动。但偶有激进者提出“人类杂耍者应转型为机器人教练”,这场论战预计将持续多年。

6 趣味冷知识

6.1 首个“数学证明”杂耍机器人

1994年,数学家兼机器人学家K. A. Hooke证明了一个定理:任何足够高的抛接动作都可被一个单自由度的摇臂机器人模拟。他用的是“三角函数展开”和“拉格朗日插值”,论文标题是《抛球与丢丑:单自由度机器人的几何极限》。尽管从未实际造出原型,该论文每年都被当作恶搞论文引用。

6.2 杂耍机器人误将灯泡当球的故事

2011年,加州大学圣迭戈分校的一个学生团队在调试视觉算法时,忘记设置“球体颜色过滤”,结果一个白色LED灯泡被识别为球。机器人在接住后,机械爪施加夹持力——灯泡应声碎裂。整个实验室停电,机器人的传感器被玻璃渣划伤,造成约5000美元损失。团队最后将事故视频上传YouTube,标题为《灯泡:我输给了视觉系统》。该视频成为“机器人失误集锦”系列中最经典的片段之一。

6.3 圈内迷因:“球在飞,代码在崩”

这句话源于某论坛版主在2016年发出的帖子:“每当球在空中飞舞的那0.3秒,我的代码就开始偏离预期;每当球落地,我的调试进程就开始自嗨。”这个梗迅速在机器人爱好者之间流传,用来形容实时控制中不可预知的软件崩溃。后来,甚至有T恤印刷该口号,配图是一只机械臂正在追着一只掉落的球——仿佛在说“先不要接球,先debug”。