返回Blog

实体转移:2026年的实践者指南

实践者对战实验的7个提示:域名随机定位,系统识别,深度超过RGB,混合训练,模拟器选择,

T14)

许多模拟到真实的失败都可避免. 这本指南将成功将策略从模拟转移到真实硬件的团队的做法炼出来,

现实与真相之间的差距

模拟承诺无限数据,零硬件磨损,并行训练和完美的可复制性.实际上,每一个模拟都是近似的,而这种近似和现实之间的差距是政策的死亡.模拟和实际材料之间的接触动态不同.动力摩擦,反响和延迟很难建模. 呈现的图像对人类看起来令人信服,但它们会使神经网络特征检测器与真实摄像头图像不同.传感器噪声,电缆硬性,桌面振动 - - 数十种小效应,模拟忽略或简化,使其变成一个未经处理的政策无法跨越的空隙.

但差距并不均.有些任务很容易转移,有些几乎不可能通过现行方法.理解你的任务在这个频谱中属于哪个领域,并适用对你的特定差距的正确技术, 对于理论基础的背景,请参阅我们关于[sim-to-real转移理论]的附属文章.

什么是有效的转移,什么是不有效的

转移良好: 平和中等粗的地形上移动,基本物体以平行 jaws gripper 抓住,导航和避免障碍物,并在空中达到运动.这些任务取决于模拟模型的动态 (硬体机械,基本摩擦) 和可合理转移的视觉特征 (物体形状,工作空间几何学).

** 努力转移:** 硬物体的取取和放置,推移和滑动操作,门和抽开放,以及宽容的简单组装.这些任务涉及到模拟接近但不完全匹配的接触动态.成功转移需要下面描述的技术.

**不过不很好转移 (还):**接触丰富的可变物体的操纵 (布料折叠,电缆路线),精确的组装,含微米宽容 (连接器交配,快速插入),以及涉及颗粒材料,流体或软体的任务. 这些相互作用的物理或是太复杂以准确模拟或太敏感对参数错误进行域间的随机化.

提示1:使用系统地随机域名

域名随机化是最广泛验证的Sim-to-real转移技术,但"随机化一切"不是一个策略.有效的域名随机化针对您的模拟和您的实际设置之间的特定参数. 首先,在真实硬件上识别您的故障模式 (即使是5到10次真实试验也能提供有用的信号),然后随机定制最可能导致故障的模拟参数.

对于视觉政策,有效的随机化范围包括:相机位置偏移加倍或减倍10厘米从名义,视角变化加倍或减倍10度,亮度变化加倍或减倍30%,色调变化加倍或减倍20%,度变化加倍或减倍15%,加索模糊与sigma0-2像素,随机矩形罩覆盖5-20%的图像. 这些范围使模拟图像看起来不太现实,但这正是重点. 该政策学习了所有这些变化不变的特性,这意味着它还处理了模拟和实际摄像头之间的现实世界视觉差异.

对于物理参数,优先考虑:接触摩擦系数 (随机定向为多或少 50%),对象质量 (加或少 30%),关节缩 (加或少 20%),和动机延迟 (加0-20 ms随机延迟).随机定向接触硬度对于任何涉及持续接触的任务.

建议2:投资实时定位

默认模拟参数 - - 关节硬度,缩,摩擦,惯性度 - - 通常与实际机器人差异10-50%. 在训练之前,花2~4个小时进行系统识别:将每个关节移动到其范围,并测量实际的扭矩-位置-速度关系. 只有这个步骤,常常在接触任务上减少30-50%的真实模拟错误.

校准摄像机模型,测量真实摄像机的内在参数 (焦点长度,主点,扭曲系数) 和外在参数 (与机器人基相比的位置和方向) 并调整模拟摄像机. 视觉政策对相机参数不匹配非常敏感. 焦距的5%的错误可能导致捕捉精度下降10-15%.

提示3: 视觉输入的深度偏好RGB

摄影实实在的RGB染仍然不够与现实世界摄像头相匹配,可以在许多任务上直接进行零射击传输.照明模型,材料阴影器和阴影算法产生像像人类的图像,但不同于神经网络特征探测器敏感的方式. 深度图像的真实与真实差距较小,因为深度是对几何直接的表示,模拟则能准确地呈现几何.

采用深度作为主要视觉输入 (RGB作为语义信息的二次通道) 的团队在抓取任务时始终报告了零射击对真实传输的20-40%的改善.如果您的任务不需要对象歧视的颜色或纹理信息,只使用深度. 如果需要颜色信息 (例如,按颜色分类对象),请使用RGB频道,但在上面应用强烈的视觉域随机化.

建议4:在训练中使用优惠的信息

特殊信息技术,有时被称为教师与学生培训, 已成为对真实移动的标准方法, 想法是:培训一个在模拟中具有实际硬件上无法获得的基础真实状态信息的教师政策 (精确对象姿势,真正的摩擦系数,基础真实接触地点).然后培训一个使用实际机器人上只有可用的传感器观测的学生政策,以通过蒸匹配教师的行为.

这就因为教师政策可以通过完美的信息来解决任务,学生只能通过实际硬件上能访问的噪音,部分观测来接近最佳行为.教师提供比原始奖励更强大的训练信号. 这种技术是苏黎世ETH,卡内基梅隆和Unitree四次机动转移成功的核心,并适用于涉及接触感知和力控制的操纵任务.

提示5: 具体随机定制接触参数

对于任何涉及持续接触的任务 - - 插入,滑动,推,接下面 - - 接触参数随机定制是关键的,并且经常被低估.不仅随机定制摩擦系数,还对接触硬度,接触缩,恢复 (缩),以及对接触模型的解决器反复数量. 模拟中的接触解决器引入了现实世界没有的文物 (透,动,过早滑动),随机化解决器参数迫使政策处理这些文物而不是利用它们.

实际方法:在100个实例模拟试验中运行您的政策,并记录接触力配置文件.然后使用大量随机的接触参数重复.如果随机的接触者成功率显著下降,则它正在利用特定的模拟文物. 随机联系人再训练,直到成功率稳定,然后转移到真实硬件.

建议第六: 洗前先做一些粗的任务

试图直接从模拟中转移一个准确任务的政策是挫折的配方. 相反,把任务分解成粗版本和细版本.粗版本 - - 接近对象,大致地对接抓住器,进行初始接触 - - 从模拟中转移良好,因为它取决于几何和轨道规划,而不是精确的接触动态. 精细版本 - - 最终的配列,插入,控制的力量应用 - - 应该根据实际数据进行训练或精细调节.

这种层次化方法将模拟的量和真实数据的真实性结合在一起.模拟政策处理80%的任务,涉及自由空间运动和粗略定位.少量的真实数据 (50-200次示范) 处理20%需要精确的接触动态. 总数据预算有限时,这种混合型系统在仅仅在模拟和实时培训中都会持续优于.

提示7:经常用真实硬件进行测试

在真实硬件上测试之前,在模拟中进行几个月的优化是最常见的错误.到团队发现他们的政策在现实中如何失败,他们已经投入了大量的努力来优化错误的事情.

结构化实物测试,并不是随机评估,而是系统性扰乱测试. 在5到10个特定的挑战性位置测试:极端的工作空间角落,接近可达空间边缘的物体,在不典型的高度或方向的物体. 系统系统的系统系统的系统系统的系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统的系统系统系统系统的系统系统系统的系统系统系统的系统系统系统系统的系统系统系统的系统系统系统系统的系统系统系统的系统系统系统系统的系统系统系统的系统系统系统.

提示8: 让你的动力机模型正确

默认模拟动机模型假设理想化的行为:即时扭矩响应,零反响,完美的位置跟踪.真正的伺服电机带宽限制 (通常为位置命令为5-50 Hz),变速列车的反响 (0.1-2度取决于减速比),和扭矩速度曲线与常规扭矩模型显著不同. 对于OpenArm 1系列弹性动机,输送中的合规性是安全性的一个特征,但引入了 MuJoCo或Isaac Sim的默认硬体动机模型完全忽略的动态.

修复:测量实际执行器响应. 发送一步命令给每个关节,并记录随时间的位置响应. 适应每关节的第二级传输函数 (自然频率,缩比和收益). 在模拟中,使用这些配件模型作为执行器模型. 对于Isaac Sim,在 ArticulationController中配置PD加大和缩.此步骤需要2~4小时,通常在sim到真实传输中减少30-50%.

提示9:系统地随机编辑材料和纹理

对于视觉政策来说,模拟中的物体和表面的外观要么与现实相匹配,要么被随机化到足够广泛,使现实属于随机分布.第二种方法更强大. 有效的纹理随机化包括:对所有物体和表面的全HSV范围的随机固体颜色,对桌面表面和背景的程序性纹理生成 (珀林噪音,棋牌板,梯度),以及照明的随机HDR环境地图 (从Polyhaven下载20-50个免费的HDR地图,并在训练中循环穿过它们).

结果是反直觉的:光现实染往往对真实传输产生了反效.使用光现实模拟染训练的政策学习利用不与现实相匹配的视觉细节 (特定的阴影模式,表面反射).采用大量随机化,不现实纹理训练的政策学习更好的传输的几何和结构特征. 如果您有高质量的染 (Isaac Sim Omniverse),请使用它进行评估和调试,而不是用于训练数据生成.

提示10: 实施物理参数识别管道

除了执行器建模之外,任务中的物体的物理特性对接触行为产生了显著影响.

  • 对象:** 按您的机器人将操纵的每个对象. 设置模拟质量匹配. 重量对象的10%的质量错误会产生明显的力和轨迹错误.
  • 摩擦系数: 将物体放置在倾斜的表面,记录它们开始滑动的角度. 计算静态摩擦系数为角. 根据此设置模拟摩擦,随机对测量值进行+/-30%.
  • **质量中心:**对于不对称物体,质量中心影响抓取稳定性和运输动态.通过在一个点上平衡物体或使用悬挂方法测量.相应的抵消模拟COM.
  • **惰性度:**对于大多数桌面操作,将物体作为具有正确质量和几何的均密度固体进行近似足够.对于不规则或空体,测量或估计惰性的主要时刻.

随着对象组的变化,该校准管道应自动化和重复.RCSV的RL环境服务包括标准化的物理识别协议,用于客户硬件.

提示 11: 选择适合你的工作

模拟器提供不同的接触模型,选择比大多数团队意识到的更重要.MuJoCo的凸点接触模型是快速和稳定的,但产生具有非凸点几何学的文物 (物体在凸点中相互穿透). 艾萨克·西姆的GPU加速PhysX使用了兼容的接触模型,更好地处理非形状,但可以在低接触硬度设置下产生振荡.Genesis提供可差异化的接触,它对于优化而言强大,但对于一般用途的接触模拟而言不成熟.

对于使用简单的抓住器的任务:MuJoCo的默认接触模型通常是足够的.对于紧张的清除率的组装任务:增加溶解器代数 (MuJoCo: T6T7;艾萨克·辛:溶解器位置和速度代) 并使用基于网格的碰撞而不是原始形状. 对于可变形或软物体:使用基于FEM的软体模拟 (可用于Isaac Sim和SOFA) 而不是硬体近似.

提示12:使用非对称演员-批判性为基于RL的转移

如果您在模拟中使用强化学习 (而不是模拟学习),不对称的演员-批判架构现在是对真实转移的标准实践.在模拟中训练期间,评论员 (值函数) 能够访问特权的基础真实状态信息.演员 (政策) 仅使用现实硬件上可用的观察. 这使得批评者能够提供准确的价值估计,以引导演员学习有效的行为,仅使用与现实世界兼容的观测.

这就是ETH苏黎世 (ANYmal),卡内基梅隆和Unitree成功移动转移工作背后的架构.对于操纵,模式是一样的:评论家看到精确的对象姿势和接触状态;演员只看到摄像头图像和自觉.结果是使用现实世界传感器的政策,但在训练期间被完美的信息指导.

提示13:建立一个真实回归测试套件

像软件工程一样对待真实转移:构建一个测试套件,并在每次政策更新上运行它.定义10-20个特定的测试配置 (对象类型,位置,方向) 并在模拟和真实硬件中执行每一个.随着时间的推移,跟踪sim 和真实成功率之间的相关性. 如果对比率下降到0.6以下,则模拟中的某种东西已经与现实分离 (摄像头移动,对象组变化,动机降解) 并且需要重新校准.

提示14: 清楚地处理观察空间的差异

模拟提供了完美的自觉感知:每一步都会有精确的关节位置,速度和加速. 加入模拟观察的现实噪音:加斯的噪音与标准偏差匹配编码器规格 (通常为联合位置的0.001-0.01射线),随机降低的读数以0.1-1%的速度,以及量化以匹配实际编码器分辨率.

十五条提示: 知道什么时候不够解决

现在的技术无法解决一些真实模拟的差距, 直接的真实传输将不会适用于您的任务:您的任务成功取决于物体实例之间不同材料属性 (织物硬性,表面纹理摩擦),您的任务需要接触的微米精度 (您的机器人具有1mm以上的可重复性),或者您的任务涉及流体,颗粒材料或高度变形的物体. 在这些情况下,使用模拟任务的粗阶段,并收集细节阶段的真实数据,或者完全跳过模拟并从一开始就使用RCSV的 [真实数据收集服务]T16).

模拟器专用提示

Simulator Best Practice Common Pitfall
Isaac Sim Use GPU-accelerated environments with at least 256 parallel instances for RL; disable ray-traced rendering during training Leaving ray tracing on tanks throughput 10x; Omniverse USD scene setup takes days if unfamiliar
MuJoCo Use mj_step with 4-5 substeps for contact stability; set solimp and solref per-geom for different materials Default solver settings produce unstable contacts for tight assemblies; convex decomposition needed for non-convex meshes
Genesis Leverage differentiable physics for system identification (optimize sim parameters to match real trajectories) Ecosystem is less mature; fewer pre-built robot models; community support is smaller
PyBullet Good for quick prototyping and education; use URDF models directly from manufacturer Contact physics is less accurate than MuJoCo; no longer actively developed; avoid for production sim-to-real

物理参数识别:测量协议

系统识别是任何真实到真实的系统中最高的ROI步骤,但大多数团队都会跳过或随机完成.这里有一个严格的测量协议,需要4-6小时,显著提高了传输忠诚度.

** 关节动态识别 (2 小时).** 对于机器人臂的每个关节:

  1. 在 0,1 Hz, 0.5 Hz, 1 Hz 和 2 Hz 时指挥一个阴影状位置轨迹.在 1 kHz 时记录指挥位置,实际位置和动力电流.
  2. 计算每一个频率的频率响应 (加益和相) 按第二级传输函数:H(s) = K * omega_n^2 / (s^2 + 2*zeta*omega_n*s + omega_n^2).记录K (加益), omega_n (自然频率) 和zeta (缩比率) 对于每个关节.
  3. 测量反响:命令缓慢的车上升,然后下降.位置轨迹中的歇斯底里宽度是反响.典型值:0.1-0.3°为和驱动 (Franka),0.5-2.0°为行星变速箱 (OpenArm,Kinova),0.02-0.05°为直动驱动.
  4. 测量摩擦:记录每一个关节以非常低的速度 (<0.01rad/s) 移动所需的扭矩.这是库伦布摩擦.然后测量扭矩与速度以更高的速度来估计粘摩擦.模型:tau_friction = tau_coulomb *标志(v) + b_viscous * v.

对象属性测量 (1个对象的10小时).

  • 量准确到1g,按量记录到g.
  • 摩擦系数:_ 将对象放置在一个数字倾斜计的平面表面上.慢慢增加角度,直到对象滑动. mu_s = tan(角. 测量至少3个表面 (金属,木材,床). 使用平均值作为模拟默认,范围作为随机化界限.
  • 质量中心 (不对称对象):_使用弦悬挂从两个不同点.从悬挂点交叉的两个管线给出2D的COM. 3D的第三悬挂重复.精度:大约5mm,这足以对大多数操作.
  • 恢复系数:_ 将物体从30厘米处放到硬表面,记录弹高度. COR = sqrt(h_bounce / h_drop).大多数操纵物体的 COR为0.1-0.5.
# sys_id.py -- Minimal joint dynamics identification
import numpy as np
from scipy.optimize import curve_fit

def second_order_response(t, K, wn, zeta):
    """Second-order underdamped step response."""
    wd = wn * np.sqrt(1 - zeta**2)
    return K * (1 - np.exp(-zeta * wn * t) *
           (np.cos(wd * t) + (zeta / np.sqrt(1 - zeta**2)) * np.sin(wd * t)))

# Record step response: send a 0.1 rad step command and log at 1kHz
# t_data, pos_data = record_step_response(joint=3, amplitude=0.1)

# Fit parameters
popt, pcov = curve_fit(second_order_response, t_data, pos_data,
                       p0=[1.0, 50.0, 0.7], bounds=([0.5, 5, 0.1], [1.5, 200, 1.0]))
K, wn, zeta = popt
print(f"Joint 3: K={K:.3f}, wn={wn:.1f} rad/s, zeta={zeta:.3f}")
# Typical values for OpenArm 1: K=0.95-1.0, wn=30-60, zeta=0.6-0.9

对于MuJoCo,设置在每个动机上T11到 [K * wn^2,0,0]和T12到 [0, -K * wn^2, -2 * K * zeta * wn].对于Isaac Sim,设置在 ArticulationController中的PD加速度以匹配所识别的自然频率和缩.

根据任务类型的Sim-to-Real转移成功率

根据公布的结果和RCSV评估数据,下面的表显示了按任务类别预期的真实转移成功率,前提是上述技术被正确应用.

Task Category Sim Success Real Transfer (naive) Real Transfer (w/ DR + SysID) Gap Closure
Flat-ground locomotion 98% 70-80% 90-95% High
Rigid object pick-and-place 95% 40-55% 75-85% Medium-High
Door/drawer opening 92% 30-45% 65-80% Medium
Peg insertion (>1mm tolerance) 90% 15-25% 55-70% Medium
精度 assembly (<0.5mm) 88% 5-15% 30-50% Low-Medium
Cloth folding 85% 5-10% 15-30% Low
Fluid pouring 80% < 5% 10-20% Very Low

转移成功与接触复杂性相反相对. 无限空间运动和简单的硬接触控制的任务转移良好. 复杂的接触动态 (可变化的材料,紧密的宽容,流体) 控制的任务转移不佳,无论技术如何. 对于"低"差距关闭类别的任务,模拟仍然对于预训练和粗技能学习具有价值,但对部署质量性能来说,实际数据的细节调整至关重要.

域名随机配置:一个完整的例子

在MuJoCo中,为桌面操作任务提供了一个实用的域名随机配置,涵盖了对真实转移最重要的参数.

# domain_randomization.py -- MuJoCo domain randomization for manipulation
import numpy as np
import mujoco

class DomainRandomizer:
    """Randomize physics and visual parameters each episode."""

    def __init__(self, model):
        self.model = model
        self.defaults = {
            'friction': model.geom_friction.copy(),
            'mass': model.body_mass.copy(),
            'damping': model.dof_damping.copy(),
        }

    def randomize(self):
        m = self.model
        # Contact friction: +/- 50% (critical for grasping)
        m.geom_friction[:] = self.defaults['friction'] * np.random.uniform(0.5, 1.5, m.geom_friction.shape)

        # Object mass: +/- 30%
        for i in range(m.nbody):
            if m.body_mass[i] > 0.01:  # Skip fixed bodies
                m.body_mass[i] = self.defaults['mass'][i] * np.random.uniform(0.7, 1.3)

        # Joint damping: +/- 25%
        m.dof_damping[:] = self.defaults['damping'] * np.random.uniform(0.75, 1.25, m.dof_damping.shape)

        # Actuator latency: 0-20ms random delay (model in policy loop)
        self.actuator_delay_ms = np.random.uniform(0, 20)

        # Camera perturbation: +/- 3cm position, +/- 5deg rotation
        for cam_id in range(m.ncam):
            m.cam_pos[cam_id] += np.random.uniform(-0.03, 0.03, 3)
            m.cam_quat[cam_id] += np.random.uniform(-0.05, 0.05, 4)
            m.cam_quat[cam_id] /= np.linalg.norm(m.cam_quat[cam_id])

        # Lighting randomization
        for light_id in range(m.nlight):
            m.light_diffuse[light_id] = np.random.uniform(0.3, 1.0, 3)
            m.light_pos[light_id] += np.random.uniform(-0.5, 0.5, 3)

在训练期间,在每个节目开始时调用T13.该政策的性能最初会比固定参数更糟,但在融合后,它将更好地转移到现实硬件,因为它学会了对参数变化更坚定,而不是利用特定的模拟值.

诊断真实模拟失败:系统化方法

如果一个模拟训练的政策在实际硬件上失败,请使用这个诊断框架来确定导致故障的具体差距.

  1. ** 在真实硬件上录制故障视频.** 记录所有摄像头都活跃的至少10次故障事件. 分类故障成类别:接近错误,抓错误,运输错误,放置错误.
  2. **在模拟中运行相同的初始条件.**设置模拟以尽可能接近实际故障条件.该政策是否成功在这些条件下模拟?如果是,则差距在物理或视觉领域.如果不是,则该政策具有基本的能力差距,即使在模拟中也存在.
  3. ** 进行视觉观测.** 在失败时,相机的真实相机图像和相机的相机图像相对.
  4. 比较自觉状态. 插图合并位置跟踪错误在实硬件上命令和实际位置之间.如果跟踪错误超过2-3度在任何合并,则sim中的动机模型可能是问题.
  5. **比较接触行为.**如果发生接触时故障 (抓,插入),则对实物硬件上的F/T传感器读数进行比较与模拟接触力.

这种诊断管道通常在2-3次复制中确定根源原因.最常见的原因,按频率顺序: (1) 摄像头位置/校准不匹配, (2) 动机模型不准确, (3) 接触摩擦不匹配, (4) 视觉域差距.解决#1和#2解决了60-70%的真实到真实失败.

模拟器选择:伊萨克·西姆,MuJoCo或创世纪

NVIDIA Isaac Sim (基于PhysX 5构建,集成到Omniverse) 是2026年以高效度模拟的首选.其GPU加速物理使数千个并行模拟实例成为可处理的,使增强学习成为复杂任务的处理能力. 主要缺点是设置复杂性,硬件要求 (高端NVIDIA GPU) 和Omniverse生态系统的学习曲线.

MuJoCo (现在是DeepMind的开源) 仍然是研究设置中的快速,准确的接触物理标准. 它比Isaac Sim更快,具有更简单的API,并提供了最广泛的预建环境和基准生态系统. 对于政策架构和奖励设计,而不是需要光现实化染,MuJoCo是正确的选择.它的接触模式是很好的特征,并产生一致的结果.

Genesis是一个新的模拟器,强调速度和可差异化性.它支持可差异化物理,通过模拟实现基梯度优化,可以加速接触丰富的任务学习. 基因斯正在获得应用,用于可分化模拟提供明显的优势, 参数优化,轨迹优化,

视觉域名随机化:弥合染差距

物理参数随机定制处理动态差距,但模拟和真实摄像头图像之间的视觉差距往往是基于视觉的政策的传输失败的主要来源.视觉域随机定制通过训练该政策来解决这一问题.

Visual Parameter Randomization Range Impact on Transfer Notes
Object texture Random RGB per face or procedural noise High (+15-25%) Prevents policy from relying on sim-specific textures
Lighting position + color +/-1m position, 3000K-6500K color temp High (+10-20%) Shadows are the biggest visual gap; randomize shadow direction
Camera position + orientation +/-3cm position, +/-5deg rotation Medium (+8-15%) Matches real-world camera mounting imprecision
Table/background color Random RGB or texture from dataset Medium (+8-12%) Prevents background shortcuts; use real-photo textures for best results
Distractor objects 0-5 random objects in workspace Medium (+5-10%) Crucial for cluttered deployment environments
Camera noise + blur Gaussian noise (sigma 0-0.05), motion blur (0-3px) Low (+3-5%) Simulates real camera imperfections; more important for low-light deployment

视觉随机化的重要性排序是:对象纹理 > 照明 > 摄像头位置 > 背景 > 干扰器 > 噪音.有限的工程时间的团队应该专注于前三种.对于光现实替代品,使用Isaac Sim的路径追踪染消除了对抗性纹理随机化的需要,但需要每个集的GPU时间显著增加.

混合型方法:Sim预训练+真正的精细调节

2026年最具性能的模拟到真实的管道将大规模模拟训练与少量的现实细节调整结合在一起.这种混合方法利用模拟的可扩展性来学习粗技能和对最终差距的真实数据的忠实性.

# hybrid_sim_real_pipeline.py -- Sim pre-train + real fine-tune
from pathlib import Path

def hybrid_pipeline(task_name, sim_episodes=10000, real_episodes=100):
    """
    Stage 1: Pre-train in simulation with domain randomization
    Stage 2: Fine-tune on real-world demonstrations
    Stage 3: Evaluate on real hardware
    """
    # Stage 1: Sim pre-training (runs on GPU cluster, 4-24 hours)
    sim_config = {
        "environment": f"sim/{task_name}",
        "domain_randomization": True,
        "visual_randomization": True,
        "num_episodes": sim_episodes,
        "architecture": "act",
        "epochs": 500,
        "checkpoint_dir": f"checkpoints/{task_name}_sim",
    }
    sim_model = train_policy(**sim_config)

    # Stage 2: Real fine-tuning (uses sim checkpoint as init)
    real_config = {
        "dataset": f"data/real/{task_name}",
        "num_episodes": real_episodes,
        "pretrained_checkpoint": sim_model.checkpoint_path,
        "learning_rate": 1e-5,  # 10x lower than sim training
        "epochs": 200,
        "freeze_encoder_epochs": 100,  # Freeze visual encoder initially
        "checkpoint_dir": f"checkpoints/{task_name}_hybrid",
    }
    hybrid_model = finetune_policy(**real_config)

    # Expected results:
    # Sim-only: 40-60% real success (pick-place)
    # Real-only (100 demos): 70-80% success
    # Hybrid (10K sim + 100 real): 80-90% success
    return hybrid_model

混合方法通常与3-5倍的实际演示性能相匹配:100个实体演示和10K的实体演示比率可与300-500个实体演示比率相比.在工程时间1-2周内实现的实体环境设置时,经济学更喜欢混合方法. RCSV RL环境服务 为常见操纵任务提供预建模拟环境,使设置时间缩短到1-2天.

实在世界后的精确调节技巧

基本指导:在"模拟预训练"中,大多数团队都会犯错误,

  • 使用比Sim训练低10倍的学习率.Sim训练模型已经学到了视觉特征和粗的运动技能.高的学习率覆盖了这些,你完全失去了Sim训练前的好处.
  • ** 在精细调节时代的前50%中,结视觉编码器.** 通过 Sim 预训练的编码器已经学会了比100个实实例演示所能教的更普遍的视觉特性.
  • 在细调过程中混合10-20%的Sim数据. 将少量的Sim事件添加到真正的细调批量中,可以防止灾难性的遗忘,并作为调节剂.
  • **收集针对模拟故障模式的真实演示. ** 在收集细调数据之前,在真实硬件上运行模拟预训练的政策. 识别特定的故障模式 (通常是接触动态或视觉外观不匹配),并将真实数据收集集中在这些故障条件上,而不是统一收集.

机器人学习模拟机比较

选择合适的模拟器对您的模拟训练数据质量和环境设置所需的工程努力都产生了影响.

Simulator Physics Quality Rendering Quality Speed (steps/sec) Setup Effort Best For
MuJoCo 3.x Excellent Good (basic PBR) 100K+ (CPU) Low (MJCF/URDF) RL training, contact-rich tasks, rapid prototyping
Isaac Sim / Isaac Lab Very Good Excellent (RTX raytracing) 10K-50K (GPU) High (USD, NVIDIA stack) Visual sim-to-real, domain randomization, GPU-parallel RL
Genesis Good Good 50K-200K (GPU) Low-Medium Fast parallel sim, soft body, generative tasks
PyBullet Adequate Basic 5K-20K (CPU) Very Low Quick experiments, education, lightweight benchmarks
RoboCasa / Robosuite Good (MuJoCo-based) Good 10K-50K (CPU) Low (pre-built tasks) Home/kitchen manipulation, benchmark tasks, multi-task RL

大多数团队的建议: 开始使用MuJoCo 3.x,因为它结合了物理质量,速度和低设置费用.只需要对视觉域随机化或GPU平行训练进行光现实染时,只需要转换到Isaac Sim. 基因斯值得评估的团队与可变化的物体或需要尽可能快的并行吞吐量. PyBullet 适合快速原型制作,但产生低质量的训练数据,更不可靠地传输.

测量真实与真实之间的差距:量化协议

在投资复杂域名随机化之前,测量您特定任务的基线模拟到真实差距.

  1. 仅在模拟中训练一项政策 (使用默认模拟器染器,没有域名随机化).记录100次评估中Sim成功率.
  2. ** 运行 20 个实实质评估试验. 模拟成功率和实质成功率之间的区别是您的实质模拟与实质差距.
  3. ** 分类故障.** 对于每一个现实故障,确定根源:视觉外观不匹配 (sim 染不匹配真实摄像头),物理不匹配 (物体动态不同),或控制不匹配 (动机反应与模拟动机不同).
  4. ** 应用目标的空隙关闭.*** 如果视觉故障占主导地位,请投资域名随机化和更好的染. 如果物理故障占主导地位,请投资系统识别. 如果控制故障占主导地位,请投资执行器建模或残留政策学习.
  5. **重量测量.**每次缩后,重复步骤2~3.当实际成功率超过部署门时,或剩余隙低于5%时,停止.

典型的基线差距 (无域随机化,无系统ID):选择和放置固体物体:20-40%差距;插入任务:30-50%差距;变形物体操纵:50-70%. 完整域随机化加系统识别后,这些差距通常减少到:分别5-15%,10-25%,和25-40%. 剩余的差距通过现实世界细节调整来关闭.

什么时候完全跳过西姆

模拟并不总是合适的选择. 跳过模拟并直接进入真实数据收集,当:您的任务涉及可变形的物体或模拟不良的材料 (布料,电缆,食物);您可以访问快速的真实数据收集 (RCSV的 [数据服务]T18) 每天可以收集500多集);您的任务需要不到1000个示范;或者当建立一个准确的模拟环境的努力超过收集真实数据的努力时.

决策框架很简单:估计为您特定任务构建和校准模拟环境的成本 (包括工程时间,染硬件和对真实传输的调试时间).将其与收集相当量的真实数据的成本进行比较.对于2026年许多操纵任务,真实数据路径更快,更可预测. 模拟在需要数百万次 (加强学习) 时,任务转移时 (移动) 或实际数据收集时,

开始转移管道

对于执行混合方法的团队,我们还提供通过我们的数据服务 (T20) 进行实体数据收集,以补充您的实体演示,以缩小最终的差距.

相关阅读

  • [机器人政策概括:为什么机器人在新物体上失败]
  • [机器人学习与古典机器人:何时使用哪个]
  • [机器人学习的规模规律:2026年我们所知道的内容]
  • [机器人部署检查列表:进入现场前12步]
  • [活动与传播政策:何时使用哪种]
  • [RCSV RL环境服务]
  • [RCSV数据收集服务]

获得一个校准模拟环境

对于您的特定机器人硬件,RCSV的RL环境服务包括系统识别和物理校准.

T28)