工业机械臂编程语言,重点介绍三位已故关键人物:Doug Ross、Victor Scheinman、Richard (Lou) Paul。
1. APT:数控机床语言,机器人语言的前身
Doug Ross 参与 MIT 旋风计算机 Whirlwind,50 年代中期转向多轴数控机床的数字控制,需要加工高精度曲面金属零件,人工无法达到。他开发 APT(Automatically Programmed Tool,自动编程工具)。 APT 程序没有分支、条件判断,只有一系列刀具移动指令,内置几何计算(圆切线 TANTO 等);程序在昂贵大型机上编译运行。 APT 诞生于 MIT 伺服实验室,该实验室当年主要研发飞行器制导系统,包括洲际导弹、60 年代载人航天飞行器。
2. Unimate:第一台工业机械臂(无编程语言)
在 APT 之后,全新一类机器诞生:从设计之初就为自动化而生的工业机械臂。 1961 年,George Devol、Joe Engelberger 的 Unimation 公司研发的 Unimate 安装在新泽西通用汽车工厂。
- 使用真空管、液压模拟伺服,而非晶体管、数字伺服;
- 只记录机械臂要抵达的一系列位置,重复回放;
- 当年计算机太贵,机器人本体设计上刻意不依赖计算机;没有编程语言;
- 用途:点焊、搬运重型铸件,纯重复动作,无任何决策能力。
3. 斯坦福机械臂 Stanford Arm + WAVE 语言(Lou Paul)
60 年代末,Victor Scheinman 在斯坦福 AI 实验室 SAIL 设计斯坦福机械臂(Stanford Arm),由 PDP-8 小型计算机驱动,属于最早的电动数字机械臂。 Brooks1977 年加入 SAIL 手眼小组(Hand-Eye group),Lou Paul 在他加入前离开,开发出WAVE——世界上第一个面向装配任务的机械臂编程语言,同时提出逆运动学求解器 IK solver,至今所有机器人都在用。
WAVE 的设计灵感是玩文字梗:
- 计算机领域 “assembly language”= 汇编语言;
- 机器人领域 “assembly”= 零件装配; 于是 WAVE 语法模仿 PDP-10 汇编语言,
MOVE原本是计算机内存移动指令,被挪用为机械臂运动指令。 程序用标签、分号注释、AOJ(加 1 跳转)、SKIPE/SKIPN 条件跳转;通过示教:拖动机械臂到目标位置,输入HERE P保存坐标。样例代码实现抓取销钉、插入孔位,多次试错,检测是否掉件。
局限:汇编风格的 WAVE 表达能力不足,无法支撑复杂装配。
4. AL 语言与 POINTY 系统
1974 年,Raphael Finkel、Russell Taylor、Richard Paul 等人开发 AL 语言,类 Algol 语法,基于 SAIL(Stanford AI Language),运行在 PDP-10。 Ron Goldman、Shahid Mujtaba 持续迭代 AL;Maria Gini 等人开发 POINTY 系统,简化示教、坐标采集(WAVE 里HERE P这类操作)。
5. Vicarm → PUMA + VAL 语言(Victor Scheinman)
Victor Scheinman 在 MIT AI 实验室做出 Vicarm:小型、力控、六自由度旋转关节机械臂。 1978 年他到斯坦福课堂现场演示,用便携 PDP-11 计算机,用基于 BASIC 的 VAL 语言(Victor’s AL)编程。 同年,他把放大版 Vicarm 卖给 Unimation,就是大名鼎鼎的PUMA 机械臂(Programmable Universal Machine for Assembly),搭载 VAL。 PUMA 是第一款全电动商用机械臂,也是第一款自带编程语言的商用机器人,产品重量覆盖 13kg~600kg。
此后大量厂商各自推出专属机器人语言,很多基于 Pascal。1986 年已有大量相关研究文献。
6. Rethink Robotics:Baxter、Sawyer,行为树(Behavior Tree),告别传统文本编程语言
2008 年 Brooks 创立 Rethink Robotics,目标回归 70 年代 SAIL 最初梦想:不再使用传统机器人编程语言。
- 产品:Baxter,后继 Sawyer;人机协作机器人,无需安全围栏;
- 软件平台 Intera 5:机器人任务不再是文本代码,而是行为树 Behavior Tree;
- 操作方式:示教学习(demonstration),人类直接演示动作,AI 自动推断意图,生成行为树;人不需要阅读或修改底层树结构; Ron Goldman(当年 AL 语言开发者)评价它:“POINTY 的超级升级版”。
补充历史支线:1986 Brooks 提出包容架构 subsumption architecture,也就是基于行为的机器人控制范式;后来衍生出 Behavior Tree 行为树,如今 Unity、Unreal 两大游戏引擎广泛使用行为树。
- 早在 70 年代 SAIL 就畅想 AI 自动完成装配,也就是 AGI 自主规划机器人任务;50 多年过去,这个目标至今没有实现,印证【高估短期 AI 能力】;
- 早期机器人语言 WAVE/AL/VAL 都需要人工显式定义坐标、运动序列、条件分支,机器人本身没有自主理解环境的能力 → 【行李箱词汇:机器人的 “学习” 只是示教与参数记录,不是人类理解】;
- PUMA、Unimate、Baxter/Sawyer 所有能力都是单点任务能力,没有通用智能;
- 机器人落地最大瓶颈永远是硬件、力传感、物理交互、实体场景改造,算法理论很早出现,但硬件落地数十年缓慢推进 →【硬件落地滞后误区】;
- 机器人技术是逐步迭代:Unimate → Stanford Arm → PUMA → Baxter/Sawyer,没有一夜之间出现超级机器人,对应【好莱坞科幻单一变量谬误】。
一句话概括 Brooks 整套世界观:
我们可以做出越来越能干的专用机器人与 AI 工具,但通用自主智能不是一个即将突然降临的奇点事件;实体世界的物理约束、硬件成本、场景工程难度,会持续大幅拖慢所有理想化预测。
本文侧重全链路风控方法论。落地时请用自身业务单据做回放验证,不要把示例阈值直接当生产策略。 相关:风控体检 · 方案资源
常见问题 FAQ
AI 领域中,哪些常见的认知误区导致了行业两极化的极端预判?
文章提到了几个关键误区。首先是高估短期AI能力,比如50多年前就畅想AGI自主规划任务,但至今未实现。其次是混淆机器“学习”与人类理解,早期机器人的“学习”只是记录参数。再者是硬件落地滞后,算法理论早有,但硬件成本、场景改造等实体约束大幅拖慢了进度。最后是好莱坞式的单一变量谬误,认为超级机器人会一夜出现,而实际上技术是逐步迭代的。
什么是 WAVE 语言?它在机器人编程中有何特点?
WAVE 是世界上第一个面向装配任务的机械臂编程语言,由 Lou Paul 在斯坦福开发。它的设计灵感很有趣,模仿了计算机的汇编语言语法。例如,用“MOVE”指令控制机械臂运动,用标签和条件跳转组织流程。它支持通过拖动机械臂来示教保存坐标。主要局限是汇编风格的表达能力不足,难以支撑非常复杂的装配任务。
为什么机器人技术的硬件落地总是比算法理论慢很多?
根据文章观点,实体世界的物理约束是最大瓶颈。这包括精密的力传感需求、复杂的物理交互控制、以及为适应机器人而必须进行的现实场景改造。同时,硬件本身的开发、迭代和成本降低也需要漫长周期。因此,即使算法理论很早就被提出,但将其转化为可靠、实用且经济的实体产品,始终是一个巨大的工程挑战,进程缓慢。
Rethink Robotics 的行为树(Behavior Tree)和传统机器人编程语言有何不同?
传统方式如 WAVE、AL、VAL 都是文本编程,需要工程师用代码显式定义机器人的每一个运动步骤和条件判断。而行为树则完全不同,它是 Baxter/Sawyer 机器人 Intera 5 平台的核心。操作者不再写代码,而是通过直接“示教学习”——亲自演示动作,让机器人推断意图并自动生成任务逻辑。这大大降低了使用门槛,是从“编程”到“演示”的范式转变。
目前工业机器人还是无法实现通用自主智能吗?
是的,至少从文章回顾的历史和当前产品来看是这样。无论是 Unimate、PUMA 还是 Baxter/Sawyer,它们所具备的都是针对特定任务(如点焊、搬运、简单装配)的“单点任务能力”。它们没有人类那样的通用理解和规划能力。文章指出,要实现通用自主智能,机器人不仅需要算法,更需要克服硬件、力传感和物理交互等实体世界的巨大挑战。
VAL 语言在商用机器人历史上有什么意义?
VAL 语言由 Victor Scheinman 开发,是“Victor's AL”的缩写。它首次被应用在 PUMA 机械臂上,而 PUMA 是第一款全电动的商用机器人。更重要的是,PUMA 是第一款自带编程语言的商用机器人产品。VAL 的出现,使得复杂的编程和控制能够直接与商用机器人本体结合,为后续各大厂商推出基于 Pascal 等语言的自家机器人语言奠定了基础,是机器人产品化的重要一步。