跳到正文
EMBODIED INTELLIGENCE · 学习、仿真与现实迁移

仿真不是把机器人画出来,而是计算动作之后会发生什么

物理仿真用模型与数值方法推进状态。接触、摩擦、执行器、时间步和传感器决定模拟是否对任务有用;画面逼真只是其中一层。拆开一步仿真的计算,再用简单积分和摩擦算例理解精度、稳定性与成本的取舍。

同一次夹爪接触被呈现为实体场景和线框模型,接触区域提示仿真需要计算作用力而不只是显示外观。
直觉总览:同一次夹爪接触被呈现为实体场景和线框模型,接触区域提示仿真需要计算作用力而不只是显示外观。 生成插画不承载精确结构、尺寸或安全保证,正文机制图为准。 查看原图 ↗
01 · 看起来一样,不代表动起来一样

渲染、动力学和学习任务属于不同层

同一张漂亮的机械臂图片,可以对应轻巧塑料模型,也可以对应沉重金属本体。视觉相似不告诉你质量、惯性、齿隙或地面摩擦。机器人学习需要的不只是“像现实”,还要在任务关心的动作后果上足够接近现实。

PHYSICS

物理引擎

计算刚体、关节、接触和约束如何改变状态。MuJoCo(Multi-Joint dynamics with Contact,多关节接触动力学)是例子之一;模型与求解参数直接影响运动。

SCENE & SENSOR

场景与传感

提供几何、材质、光照以及相机、深度等观测。图像逼真不代表传感延迟、曝光与噪声也真实。

TASK & LEARNING

任务与学习框架

管理观察、动作、奖励、重置、并行环境和训练接口。Isaac Lab 提供这类组织能力;学习框架、物理后端与渲染器不能当作同一层比较。

仿真可用于控制验证、规划、示教、数据生成和强化学习。它是实验环境,不规定唯一训练方法;一个没有学习过程的运动规划器,同样可以在仿真中测试。

02 · 一帧动画背后的计算

命令经过执行器和接触,才变成状态变化

  1. 读取状态与控制

    关节位置、速度、执行器内部状态,以及当前动作参考。

  2. 计算力与约束

    执行器响应、重力、阻尼,碰撞检测生成接触,求解约束作用。

  3. 数值积分

    用选定积分器和时间步推进速度、位置及其他状态。

  4. 生成观察

    按传感器频率、坐标和噪声约定输出观测,更新任务判据。

概念计算链用于理解职责,不声称所有引擎严格采用相同的内部调用顺序。视觉帧、物理步与策略步可以是不同频率。
M(q)v˙+c(q,v)=τ+J(q)⊤fM(q)\dot v+c(q,v)=\tau+J(q)^\top f
广义坐标动力学:M 为惯性矩阵,c 包含重力及速度相关项,τ 为施加的广义力,Jᵀf 为约束/接触力映射。四元数姿态下,位置坐标与速度维度可能不同,不能一律把 v 当 q 的逐元素导数。

控制输入不一定就是 τ。输入可能是目标位置,先经过位置控制器和电机模型才得到力矩;还可能经过饱和、延迟和滤波。仿真把“目标角度”瞬间设成“实际角度”,就跳过了执行器与动力学,不能用来验证真实跟踪性能。

碰撞几何也未必等于显示网格。为了效率,复杂外观常用简化几何近似;如果夹爪指尖或物体边缘被简化过度,视觉上能插入的间隙可能在碰撞模型中不存在,反之亦然。

03 · 最难的部分常在碰到东西之后

摩擦不是一个数字就能描述全部接触

∥ftangent∥≤μfnormal,fnormal≥0\|f_{\rm tangent}\|\le \mu f_{\rm normal},\qquad f_{\rm normal}\ge0
理想库仑静摩擦的简化约束,μ 为摩擦系数。它给出不滑动时切向力的可行范围,不意味着实际摩擦力永远等于 μ 倍法向力。

教学例:1 kg 物体静置水平桌面,无其他竖直作用力,取 g=9.81 m/s²、μ=0.4,则可抵抗的静态水平力上限约 3.924 N。物体受到 2 N 推力时,静摩擦可为 2 N 而不是固定 3.924 N;超过静摩擦极限后,要考虑滑动及相应模型。这不是所有材料与速度下的实测规律。

硬接触近似希望物体不互相穿透;软接触允许有限形变或数值穿入,并由参数决定反力。MuJoCo 使用带正则化的软约束接触模型,官方文档明确讨论它与其他接触模型的差异。少量穿入不必然代表实现错误,但如果学习策略利用不真实穿透获得成功,就会破坏迁移。接触模型原理。

夹持、插装和足部落地还涉及接触刚度、阻尼、扭转摩擦、多点约束和几何误差。真实软物体、线缆与液体可能需要不同模型;不能因为刚体方块仿真准确,就推断折衣服或倒液体也准确。

04 · 连续世界如何按小步计算

时间步改变误差,也改变稳定性和成本

vn+1=vn+h an,xn+1=xn+h vn+1v_{n+1}=v_n+h\,a_n,\qquad x_{n+1}=x_n+h\,v_{n+1}
一维半隐式 Euler 教学形式:先更新速度,再用新速度更新位置。h 是物理时间步。完整刚体、约束和姿态积分比这复杂,实际引擎还支持其他积分方法。

无空气阻力自由落体,从静止开始,竖直向上为正,取 h=0.01 s、a=−9.81 m/s²。第一步速度为 −0.0981 m/s,上式位移为 −0.000981 m;解析位移是 −0.0004905 m。一次近似的偏差不说明引擎完全无用,而提醒我们必须检验步长收敛与任务敏感性。

仿真 1 秒,2 ms 步长需要 500 个物理步,1 ms 需要 1000 个;计算成本不一定严格翻倍,因为接触数量、求解迭代和硬件并行会变。步长过大可能让接触不稳定、漏掉快速事件,过小又会浪费预算。不能只追求帧率而忽略动力学误差。

若策略每 20 ms 更新一次,而物理每 2 ms 积分一次,中间有 10 个物理子步。目标保持、底层反馈和动作插值的规则应明确;相机如果每 33 ms 才更新,也不能假设每个策略步都有全新图像。

05 · 让模型接受可复算的检查

先验证小实验,再相信大任务

  • 检查自由落体、摆动或静态支撑等简单条件,确认单位、质量、重力和坐标方向。
  • 减小物理步长、增加求解精度,观察结果是否收敛;不只看画面是否流畅。
  • 记录接触力、穿入、能量与执行器输出,寻找数值不稳定或不真实捷径。
  • 用真实受控测量比较关节响应、自由运动和关键接触,而非只匹配一段成功视频。
  • 保存引擎版本、模型、参数、种子和硬件;同一种子不保证跨版本、跨后端逐位一致。

仿真的价值是让假设可检查、试验可重复。它不是现实的证书:只有对任务相关误差的测量,才能说明哪些结论可以迁移,哪些仍需要真机验证。

KNOWLEDGE CONNECTIONS

把这一层放回完整机器人

返回具身智能知识地图,或沿本专栏继续展开:

RESEARCH LEDGER

一手来源与证据边界

优先使用论文、官方文档、官方模型卡和代码仓库。页面中的数字只代表来源所述设置,不自动外推到其他模型与数据。