PAPER DEEP DIVE
FORCA:面向接触丰富机器人操作的力感知编程智能体
FORCA 让代码智能体结合语言、RGB-D 观测和腕部力/力矩记录编写并修订机器人 Python 程序:执行中用接触探测修正几何,以 100 Hz 力反馈调节笛卡尔运动;执行后把力曲线、机器人状态与图像对齐,继续改写动作参数和接触控制逻辑。它无需示范、任务专用训练或仿真,在五类真实机器人任务上提升了透明抽屉、门把手、擦拭和削皮等接触丰富操作的成功率与精度,并降低持续接触中的失联和过力。
论文元信息
标题:FORCA: A Force-Aware Coding Agent for Contact-Rich Robot Manipulation
作者:Xiao Tan、Yixuan Wang、Zhexi Wang、Wenzhen Yuan,均来自伊利诺伊大学厄巴纳-香槟分校。
论文:https://arxiv.org/abs/2610.31841,提交日期为 2026 年 10 月 22 日。
代码状态:截至 2026 年 10 月 29 日,论文正文和项目页未给出公开代码仓库;按方法名、完整标题与作者信息检索 GitHub,也未找到与该论文对应的官方实现。因此本文不能通过源码核对控制器细节。
一句话总结:FORCA 让代码智能体根据语言、RGB-D 观测和腕部力/力矩记录编写完整的机器人 Python 程序,并在真实执行后依据力曲线与视觉结果同时修改动作参数、接触条件和力反馈控制逻辑,无需示范、任务专用训练或仿真。
研究背景与动机
基础模型驱动的代码智能体已经能够把“打开抽屉”“擦掉花瓶上的标记”一类开放指令拆成定位、抓取、规划与执行步骤。它们主要依赖图像、深度和机器人自身状态,擅长回答“物体在哪里”“从哪里接近”以及“机械臂应走哪条轨迹”。但接触丰富操作还要求机器人回答另一组问题:工具是否真的碰到了表面,阻力突然增大意味着到达限位还是卡住,物体移动后接触是否已经丢失,以及当前按压是否会导致过度受力。
视觉对这些问题经常不够。透明抽屉把手与背景的边界可能模糊,反光表面会破坏深度估计,物体质量、摩擦系数和表面顺应性也不是外观中直接可见的量。更关键的是,接触过程中的力变化是一个动态信号:同一条轨迹在静态桌面上可能成功,在人手持花瓶移动时却会周期性失去接触;同一个下压动作在轻质积木上可能把它推远,在重质圆柱上却不足以达到目标区域。
已有学习型策略可以使用触觉或力信号实现反应式控制,但通常需要人类示范、遥操作数据或大规模机器人训练。经典阻抗控制、导纳控制和保护性停止规则可以处理局部接触,却往往依赖工程师逐任务设定阈值与名义轨迹。论文瞄准的空白位于两者之间:能否让一个通用代码智能体在部署现场写出任务专用的力反馈逻辑,并从真实失败中继续改写这段逻辑。
FORCA 的出发点是把手腕力/力矩传感同时放入程序执行与程序修订。执行阶段,生成程序可以发起接触探测、利用接触位姿修正几何估计,并在 100 Hz 控制循环中依据实时力误差调整笛卡尔速度。修订阶段,智能体不只查看最终成功或失败,还会把力轨迹、机器人状态与视觉结果按时间对齐,寻找失败发生的具体阶段,再修改代码中的阈值、动作序列或状态转换条件。
这套设计把“经验”保存在可读、可检查的 Python 代码里,而不是把适应过程压缩进难以解释的网络权重。程序可以继续使用视觉分割、抓取生成和运动规划等成熟模块,智能体只需在关键接触环节加入测量、判断和控制代码。对机器人开发者而言,这一分工比要求基础模型直接输出关节动作更接近现有软件栈,也为失败定位留下了明确入口。
预备知识与问题形式
论文中的一次 rollout 指智能体写出或修改一次任务程序,并在真实机器人上完整执行一次。腕部力/力矩传感器每个采样时刻返回六维量的组合,可写为:
$$\begin{aligned}w_k&=(f_k,\tau_k),\\ f_k&\in\mathbb{R}^{3},\quad \tau_k\in\mathbb{R}^{3}\end{aligned}$$
其中 \(f_k\) 是力,\(\tau_k\) 是力矩。FORCA 的程序并不直接获得接触发生位置的完整触觉图像,它看到的是工具与物体相互作用在腕部产生的合力效果。因此同一个腕部读数可能混合了抓取夹持力、工具重力、接触反力和惯性影响,程序需要通过标定、零点处理或相对变化来判断真正相关的接触分量。
给定语言指令 \(l\)、RGB-D 观测 \(O_{\mathrm{RGB-D}}\) 和预定义技能集合 \(S\),程序合成可以概括为:
$$\mathcal{P}=\mathcal{A}\left(l,O_{\mathrm{RGB-D}},S;\mathcal{I}_{\mathrm{FT}}\right)$$
这里 \(\mathcal{A}\) 是代码智能体,\(\mathcal{I}_{\mathrm{FT}}\) 是腕部力/力矩接口。输出 \(\mathcal{P}\) 是一个完整 Python 程序,包含动作顺序和依赖接触信号的条件分支。执行期间不再调用基础模型,因此控制频率不会被语言模型推理延迟限制。
论文强调“力感知”并不意味着所有动作都由连续阻抗控制完成。程序可以把接触用于离散决策,例如在接近阶段停止下压、接受某个旋转角度为门的锁扣释放、在刀片失去接触时暂停前进;也可以把接触用于连续调节,例如根据法向力误差修改速度。两种用法都落在同一个可生成、可修改的程序结构中。
方法详解:从代码生成到接触闭环
1. 用成熟技能缩小搜索空间
智能体不用从零编写所有视觉和控制代码。初始技能库在人类监督下由开源组件组合而成:SAM 3 根据自然语言定位目标工具,GraspGen 生成候选抓取,视觉语言模型从中选择抓取,PyRoKi 计算无碰撞轨迹,最后由机器人执行抓取。论文用“擦花瓶”指令展示了白色板擦从被定位、被提出抓取候选到被夹持的过程。
这种设计减少了智能体必须重新发明的部分。物体识别和抓取候选已经有明确接口,代码生成的自由度集中在任务顺序与接触逻辑上。对接触丰富任务而言,这正是最容易因物体材质、表面变化和机构状态而失效的部分,也是最需要根据真实执行记录反复调整的部分。
2. 接触探测把视觉估计变成可修正假设
透明抽屉把手是一个典型例子。视觉可能给出大致位置,但深度边缘不稳定,直接抓取很容易从把手上方或侧面掠过。FORCA 会生成一段探测动作,让工具向估计表面靠近,并规定检测到接触的条件。程序可以把接触时刻的机器人位姿与已知工具几何结合起来,更新表面高度或抓取位置:
$$\hat{h}^{+}=\hat{h}+\Delta h\left(x_{\mathrm{contact}},g_{\mathrm{tool}}\right)$$
这里 \(\hat{h}\) 是视觉先验给出的几何估计,\(x_{\mathrm{contact}}\) 是接触发生时的机器人位姿,\(g_{\mathrm{tool}}\) 描述工具几何,\(\hat{h}^{+}\) 是更新后的估计。接触条件本身由程序定义,可抽象为:
$$C_k=\mathbf{1}\left[g_{\mathrm{probe}}(f_k,\tau_k,x_k)\geq\tau_{\mathrm{probe}}\right]$$
论文没有给出一个适用于所有任务的统一探测阈值;函数 \(g_{\mathrm{probe}}\) 与阈值 \(\tau_{\mathrm{probe}}\) 正是代码智能体为具体任务生成或修订的内容。这一区分很重要:FORCA 的贡献不是固定一个万能接触阈值,而是让智能体可以写出、解释并修改任务专属的接触判定。
门把手实验还说明,探测不只在第一次抓取前有用。早期视觉把门估计得比真实位置近 3 至 4 厘米,程序先错过门面,随后又把真实触碰误判为异常。修订后的代码让机器人向更远处搜索,并接受触碰来更新门深。这里被改变的不是单纯坐标偏移,而是“如何处理探测结果”的逻辑。
3. 执行阶段使用实时力反馈
当任务需要持续接触时,主机侧以 100 Hz 通过 RTDE 读取腕部力/力矩与机器人状态,再更新笛卡尔速度命令。论文没有规定唯一控制律,而是让生成程序按任务选择。可以把程序实际实现的控制关系写成:
$$v_{k+1}^{c}=\Pi_{\mathcal{P}}\left(f_k,f^{*},x_k,v_k^{c}\right)$$
其中 \(v_k^{c}\) 是当前笛卡尔速度命令,\(f^{*}\) 是目标接触力,\(x_k\) 是机器人状态,\(\Pi_{\mathcal{P}}\) 是由程序 \(\mathcal{P}\) 决定的反馈映射。它既可以根据测量力与目标力之差连续调节速度,也可以在接触不足时暂停前进,待接触恢复后继续。
这种结构适合擦拭和削皮。擦拭时,工具必须沿曲面保持法向压力;人手让花瓶平移或旋转后,原先针对静态花瓶调好的轨迹偏移不再成立。削皮时,刀片既要跟随不规则黄瓜表面,又不能持续超过安全压力。视觉只能观察到黄瓜的轮廓,无法告诉程序刀片是否在某一小段突然离面,力曲线则能直接暴露短暂失联。
在线控制仍然保留硬安全边界。任何一次 rollout 如果达到预先写死的 30 N 力上限就会停止并记为失败。这个上限属于机器人级保护,不替代任务中的目标力范围,也不把原始力数据自动交给视觉基线。
4. 程序修订改变“如何响应接触”
执行结束后,智能体同时查看相机图像、腕部力记录和机器人状态。它可以写分析代码截取相关时间窗,把力下降与图像中的未削皮区域对齐,或把阻力突增与门把手的旋转角度联系起来。修订过程可概括为:
$$\mathcal{P}_{r+1}=\operatorname{Revise}\left(\mathcal{P}_{r},F_{0:T}^{(r)},X_{0:T}^{(r)},O_{\mathrm{visual}}^{(r)}\right)$$
这里的修订对象包括动作参数、接触阈值、控制逻辑和动作顺序。门把手案例最终在按下阶段识别锁扣释放与机械限位:力曲线中的明显阻力上升对应端部停止,而锁扣释放在约 61 至 65 度之间出现。程序先在记录中寻找这些模式,再把接受端部停止的角度条件改到 65 度之后,并在拉动前检查力是否下降。
这张图揭示了 FORCA 与“只给控制器换一个力阈值”的区别。视觉缺口显示问题发生在 53 至 62 毫米和 92 至 101 毫米等区间,力记录显示同一区间的接触力低于 1 N。智能体据此把连续前进改为接触门控动作:每移动一小段就检查力,如果接触不足就停在原位等待,而不是继续让刀片悬空前进。
修订后的代码在执行前还会接受错误、可达性与工作空间检查。开发过程在智能体声明程序收敛、达到 20 次 rollout 或累计 4 小时后停止。成功收敛的程序被冻结,再进入重复物理试验,避免用一次偶然成功作为最终结果。
5. 力信号如何参与三类任务
第一类是精度操作。抽屉和门把手都要求先碰到正确几何,再施加足以操作机构的力。接触探测补充深度信息,力条件协助判断是否抓住、是否转动到锁扣释放以及是否进入机械端部。第二类是物理适应。敲击积木时,物体质量、接触几何和桌面摩擦共同决定滑行距离,程序依据最终落点与敲击后的力记录调整动作。第三类是接触调节。擦拭与削皮要求在一次连续轨迹中根据实时法向力维持接触。
三类任务共享同一套“生成代码—真实执行—读取记录—改写程序”的外环,但内环逻辑不同。精度任务更多使用接触作为几何证据与机构状态证据;适应任务把接触结果映射到物体响应;调节任务则把当前力误差直接送入 100 Hz 控制循环。论文没有用一个固定模板覆盖所有情况,而是让智能体根据任务选择何时探测、何时反馈以及何时只依赖视觉。
flowchart LR
A[Language and RGB-D] --> B[Skill library]
B --> C[Coding agent writes P]
C --> D[Contact probe]
D --> E[Update geometry and grasp]
E --> F[100 Hz force-responsive loop]
F --> G[Real robot rollout]
G --> H[Align wrench state and images]
H -->|failure| I[Revise parameters and feedback logic]
I --> C
H -->|success| J[Freeze program]
J --> K[Repeated 10-trial evaluation]
实验设计与主要结果
实验平台是 UR5e 机械臂、腕部力/力矩传感器、WSG-50 夹爪和固定的 RealSense D455 RGB-D 相机。所有分析、代码编写和修订由一个使用 Claude Fable 5 的代码智能体完成。每个任务最多 20 次 rollout、累计 4 小时;最终程序冻结后进行重复试验。人类只负责授权执行、布置场景和最终验收,不直接替智能体编写控制逻辑。
视觉基线使用同一个基础模型、同一套语言指令和基础技能,但在生成、修订和执行中都不能访问实时或记录的力/力矩数据,也不能调用力反馈例程。它仍然可以编写视觉反馈代码并依据图像调整轨迹。这个对照控制了“模型相同”和“技能相同”两个因素,使差异主要来自力信息。
精度任务:透明抽屉与门把手
抽屉打开和门把手操作各执行冻结程序 10 次。透明抽屉使视觉定位尤其困难,门把手还涉及抓取后旋转、锁扣释放、拉门和退让等多阶段动作。平移误差与旋转误差按 10 次试验的均值与标准差报告。
| 任务 | 方法 | 平移误差(毫米) | 旋转误差(度) | 成功率 |
|---|---|---|---|---|
| 抽屉打开 | 仅视觉智能体 | 8.3 ± 5.4 | 9.6 ± 3.2 | 40% |
| 抽屉打开 | FORCA | 5.3 ± 1.6 | 1.0 ± 0.3 | 100% |
| 门把手操作 | 仅视觉智能体 | 65.3 ± 16.9 | 55.5 ± 14.9 | 10% |
| 门把手操作 | FORCA | 20.0 ± 0.9 | 0.6 ± 0.5 | 100% |
抽屉的平移误差下降了约 36%,旋转误差从 9.6 度降到 1.0 度,成功率从 4/10 提升到 10/10。更显著的是门把手:平移误差从 65.3 毫米降到 20.0 毫米,旋转误差从 55.5 度降到 0.6 度,视觉基线 10 次只成功 1 次。失败记录显示,视觉程序能把把手压下去,但常因抓得过浅或姿态倾角过大而在拉动时滑脱;FORCA 则使用接触确认门面和把手的实际位置,并根据力曲线判断锁扣是否释放、机械端部是否到达。
这里的数据含义不只是“加入力传感器更好”。FORCA 在抽屉任务中只增加了一个轻量接触探测阶段,就把旋转误差压到约 1 度;在门把手任务中,它还需要识别不同力模式对应锁扣、端部和回弹。相比之下,视觉基线即使能够根据图像调整抓取深度,也缺少判断把手在夹爪内是否滑动、锁扣是否真正释放的直接证据。
物理适应:积木与圆柱的敲击
积木到目标区任务要求机械臂敲击物体,使它滑动到指定区域但不能越过目标。物体质量、接触几何和表面摩擦都会改变最终滑行距离。论文使用 61.9 克的立方体与 663.6 克圆柱体,并分别在白板和木板上测试。重量相差超过十倍,而木板与白板的摩擦响应也不同。
FORCA 先在“白板上的立方体”这一参考配置中从零开发敲击程序,共经历 13 次迭代。换成新物体或新表面时,智能体保留已有程序,在每次尝试后结合敲击力与最终位置继续修改。三种新配置平均只需 2 次修订就回到目标带,而从头开发需要 13 次。这个结果说明程序保留了可复用的动作知识,同时又能根据物理反馈做局部校正。
这项实验的证据强度不在于某个固定成功率,而在于迭代次数的对比:同一程序从一个物理条件迁移到另一个条件时,只需少量真实交互就能重新命中目标。它支持论文关于“部署时学习”的主张,但也暴露一个边界:目标定义仍是可测量的落点或目标带,程序仍是专门针对敲击任务写出的代码。对需要长期记忆大量任务、并自动判断何时复用的系统,论文只给出了初步方向。
在线调节:擦拭与削皮
花瓶擦拭使用白板擦去除表面的蓝色标记。程序先在静态花瓶上反复修订,然后把冻结程序零样本迁移到由人手平移和旋转的花瓶。评估指标包括标记去除率、接触丢失率和最大力。接触丢失定义为作用力低于阈值并持续至少 0.2 秒。对应条件可写成:
$$\begin{aligned}L_s(t)&=\mathbf{1}\left[\forall u\in[t-\Delta,t],\ f_s(u)<\tau_s\right],\\ \Delta&=0.2\,\mathrm{s}\end{aligned}$$
擦拭时 \(f_s\) 是工具法向投影力,阈值 \(\tau_s=1.5\,\mathrm{N}\);削皮时使用基坐标系 \(z\) 方向力,阈值 \(\tau_s=0.8\,\mathrm{N}\)。过度受力则使用 \(F_{\mathrm{high}}=10\,\mathrm{N}\) 的上限:
$$E(t)=\mathbf{1}\left[f_p(t)>F_{\mathrm{high}}\right],\qquad F_{\mathrm{high}}=10\,\mathrm{N}$$
削皮的目标力带为:
$$4.5\,\mathrm{N}\leq f_p(t)\leq 7.5\,\mathrm{N}$$
| 任务与配置 | 方法 | 去除率 | 接触丢失率 | 最大力(牛) |
|---|---|---|---|---|
| 静态花瓶擦拭 | 仅视觉 | 73% | 42.6% | 11.8 |
| 静态花瓶擦拭 | FORCA | 99% | 0.7% | 11.3 |
| 手持花瓶擦拭 | 仅视觉 | 21% | 55.9% | 17.5 |
| 手持花瓶擦拭 | FORCA | 93% | 1.6% | 12.3 |
| 手持黄瓜削皮 | 仅视觉 | 37.4%(削皮比例) | 40.6% | 13.4% 过度受力 |
| 手持黄瓜削皮 | FORCA | 81.1%(削皮比例) | 2.2% | 2.7% 过度受力 |
静态花瓶上,两种方法都能获得较高去除率,视觉程序依靠反复调整固定轨迹偏移来适配桌面位置。迁移到手持花瓶后,视觉程序的这些偏移无法跟随物体运动,去除率降到 21%,接触丢失率达到 55.9%。FORCA 的去除率仍有 93%,接触丢失率只有 1.6%。这说明实时力反馈在这里不是小幅装饰,而是把程序从“记住一条静态轨迹”变成能够响应外部运动的控制闭环。
黄瓜由人手握住,表面本身有轻微弯曲,手部移动还会不断改变刀片的相对位置。FORCA 使用 4.5 至 7.5 N 的目标接触带,并在接触不足时等待恢复。冻结程序的平均削皮比例达到 81.1%,视觉基线为 37.4%;接触丢失率由 40.6% 降到 2.2%,过度受力时间由 13.4% 降到 2.7%。一次代表性 rollout 中,两者覆盖长度分别为 90.6% 与 28.9%。
这两个任务共同说明,仅用视觉调整“轨迹平均值”无法解决接触中断。擦拭与削皮都是动态任务,表面位置和物体运动在执行中持续变化;程序必须在局部时间尺度上读取力并修改速度。FORCA 的输出仍是可读代码,因此当接触丢失发生在特定区间时,开发者能够把失败与某段控制条件和视觉缺口对应起来。
程序开发成本与修订过程
论文没有只报告最终成功,还统计了每个任务需要多少次执行与多久时间。门把手用了 17 次迭代,抽屉 8 次,从零开发积木敲击 13 次,新物理条件只需平均 2 次,花瓶擦拭和黄瓜削皮都用满 20 次预算。每次迭代的大部分时间花在智能体推理,而不是机器人运动。
| 任务 | 迭代次数 | 智能体推理(分钟/次) | 机器人运动(分钟/次) |
|---|---|---|---|
| 门把手 | 17 | 10 | 3 |
| 抽屉 | 8 | 5 | 1.5 |
| 积木敲击,从零开发 | 13 | 4 | 1 |
| 积木敲击,新条件 | 2 | 4 | 1 |
| 花瓶擦拭 | 20 | 4 | 1 |
| 黄瓜削皮 | 20 | 5 | 1.5 |
门把手的 17 次迭代展示了最典型的失败链条。前两次,视觉把门估计得过近,探测既可能错过门面,也可能拒绝真实触碰;第三次虽然抓住把手,但在 10 N 力上限下只转动 18 度,未达到锁扣释放;第四至第八次,程序错误地把小幅运动当作阻塞,或者沿错误轴线下压;第九至第十次又受到未纳入碰撞模型的线缆插头和过严安全检查影响;第十一次虽已释放锁扣,却把端部回推消耗的力计入了后续拉动预算;第十二至第十三次需要在开门后松开把手并直线退出;第十四至第十六次继续修正端部识别、拉动余量和力传感器回零。
这些失败并不都来自传感器本身。有些是场景建模错误,有些是程序把短距离运动误判成阻塞,有些是动作之间的力预算没有衔接。FORCA 的价值在于每次 rollout 后都能把这些原因写回不同层级的代码:可以在探测阶段改变搜索距离,可以在按下阶段改变端部角度条件,可以在拉动阶段根据回弹重新设定力限,也可以在退出阶段加入回零。若只允许调整一个全局力阈值,这类跨阶段问题很难被解决。
成本同样是关键限制。门把手平均每次迭代需要 10 分钟智能体推理和 3 分钟机器人运动,擦拭与削皮都用满 20 次真实试错。对一个已经明确的任务,传统工程师手写阈值可能更快;FORCA 的长处是面对刚出现、缺少专用模型和示范的任务时,系统能够自行形成第一版可执行控制逻辑。部署成本是否值得,取决于任务变化频率、失败成本以及能否复用已有程序。
论文贡献的实际含义
第一项贡献是让代码智能体生成任务专用的运动与力反馈控制逻辑,而不是只调用预先封装好的“力阈值原语”。程序可以决定何时探测、接触意味着什么、哪些动作需要持续调节,以及一个动作何时算完成。对开发者来说,这相当于把接触策略从工程师在部署前写死,推进到基础模型在任务现场写出可检查代码。
第二项贡献是把修订目标扩展到反馈逻辑本身。传统自动调参通常只优化抓取位姿、轨迹偏移或力阈值,失败后仍保留同一套状态机。FORCA 能修改“什么信号触发状态转换”:门把手任务中,既要看旋转角度,也要看力曲线中的锁扣释放与端部停止;削皮任务中,接触不足不再被当作继续前进,而是成为暂停条件。反馈逻辑改变后,整条动作序列的失败分布也随之改变。
第三项贡献是部署时经验的可执行表示。生成程序与说明被保留下来,后续遇到物体质量、摩擦或表面运动变化时,可以从已有程序继续修订。积木实验的 13 次到 2 次对比,为这种复用提供了直接证据。论文没有把它扩展成长期记忆系统,但这一方向与机器人软件工程高度契合:经验不是一段自然语言总结,而是一段能够再次运行、能够被检查并能够被局部修改的程序。
局限与风险
作者明确指出的第一个局限是迭代成本。每次迭代需要数分钟,且大部分时间用于智能体推理;当前修订又依赖真实机器人执行。对于容易损坏物体、需要人工复位或占用昂贵设备的任务,20 次真实 rollout 可能不可接受。作者提出未来可研究在仿真中做初步程序修订,再评估迁移效果,但本文没有给出仿真预训练或物理迁移结果。
作者明确指出的第二个局限是腕部传感的信息量。腕部力/力矩测量得到的是接触的合力效果,无法直接告诉系统接触发生在指尖的哪一处,也不能给出接触面积和压力分布。门把手中,力曲线可以揭示锁扣释放或端部停止,却不一定能说明把手在夹爪中具体如何滑动。分布式触觉或指尖阵列可能补足这一点,但论文没有实验验证。
作者还指出任务复杂度边界。对更长动作序列或更严格力约束,智能体可能无法从失败中正确诊断原因,即使反复尝试也写不出成功程序。门把手的 17 次迭代已经显示了这种风险;当阶段更多、失败信号更混杂时,单靠视觉和腕部力的因果关系可能不足以定位错误。
从独立审阅角度看,实验覆盖五个真实任务,但每个冻结程序的最终评估是 10 次试验,且只使用一套 UR5e、一个夹爪和一个固定相机。论文报告了均值与标准差或比例,却没有给出跨场景随机化、不同光照、不同夹爪或多次开发会话的方差。接触判断与代码风格也可能受所使用的具体基础模型影响,因此不能仅凭这组实验断言框架可被任意代码模型复现。
视觉基线虽然控制了模型与技能一致,但“有力和无力”同时改变了感知、程序生成、执行控制与修订证据。实验没有单独拆开三种作用的贡献:如果给视觉基线提供记录力但不允许执行闭环,结果会如何;如果允许 live force 但不允许改写反馈逻辑,结果又会如何。这样的消融能更精确地区分“接触几何修正”“实时控制”和“反馈程序改写”各自带来多少收益。
可复现性也是实际风险。论文未提供公开代码、提示词、技能接口版本或完整程序样本,项目使用的基础模型和非标准传感器接口增加了复现门槛。表 I 至表 IV 给出了结果与迭代成本,但缺少完整失败数据、每轮成功判定和跨会话重复实验。工程团队若要在生产机器人上采用这条路线,需要自己补齐安全验证、版本锁定和执行回放。
结论与展望
FORCA 展示了一种清晰的机器人学习路径:不训练一个端到端策略,也不要求人类演示,而是让代码智能体在真实接触中生成、执行和修改程序。接触探测改善几何,实时力反馈维持交互,力记录与视觉结果共同支撑程序修订。五个真实任务表明,这种方法能在透明抽屉、门把手、不同质量与摩擦的敲击物体、移动花瓶和手持黄瓜上产生显著收益。
它的边界同样清楚。腕部力不是完整触觉,真实 rollout 昂贵,程序修订依赖基础模型的因果推理,长动作链和紧力约束仍可能失败。下一步值得验证的是:能否在仿真中安全地筛选候选程序,再用少量真实接触校正;能否把指尖触觉、视觉和腕部力对齐成更容易诊断的证据;以及能否把已成功程序组织成可检索、可组合的技能记忆,而不是每次都重新开始。
对当前机器人工程而言,FORCA 最务实的一点是把基础模型输出限制在可检查的代码层。模型负责编写策略,机器人运行时执行确定程序,安全限制仍在底层,失败后保留轨迹和代码版本。这种分层让力反馈、视觉技能与语言推理可以在同一套软件栈中协同,也为“部署时学习”提供了一个可审计的起点。
金句:当机器人能把自己的接触经验写成程序、再从下一次真实接触中改写这段程序,学习就不再只发生在权重里,也发生在可检查、可复用的控制逻辑里。



