想象你办了一所驾校。普通驾校一辆教练车只坐一个学员,一天撑死跑几百公里;就算你有 50 辆车,一年也培养不出多少老司机。现在有一所“未来驾校”:它在 GPU 芯片上同时开出几万台教练车,每台车都在不同的天气、不同的路面、不同的车况下练习,一天就能跑完人类司机几辈子都开不完的里程。更神奇的是,等学员毕业,直接把它塞进真车、开上真马路,它居然真的会开——这就是 Sim2Real:从仿真到现实的迁移。本文的主角 Isaac Gym,正是这所“未来驾校”的幕后引擎。我们会从“为什么仿真和现实有差距”讲起,逐步拆解它的并行架构、环境搭建、任务设计、域随机化、训练优化与真机部署,让你完整看懂一条具身智能策略从虚拟练车场走向真实世界的路。
掌握 Isaac Gym 仿真,等于拿到具身智能时代最高效的“数据飞轮”——无论是做机器人算法还是仿真平台,这都是能拉开差距的核心技能。
目录
可视化演示
展示Isaac Gym GPU加速仿真三大维度:GPU并行架构(CPU单环境1x vs GPU 4096并行100x, 物理仿真+NN训练统一端到端)、训练流水线(URDF→VecEnvTask 4K并行→GPU张量obs/act→RL PPO训练→策略,60K FPS)、域随机化(4096环境物理参数随机化摩擦/质量/阻尼→鲁棒策略→Sim2Real迁移真实机器人85%成功率),三模式切换理解GPU加速机器人仿真。
本节配有交互动效(进入视口后自动加载,约 3KB)。
'+C1+'
一、Sim2Real基础:驾校和马路不是一回事
学员在驾校场地练得再熟,头一次上真马路也会手心冒汗——场地是平的,马路有坑;场地没行人,马路有窜出的电动车。机器人也一样:在仿真里练好的策略,搬到真实机器人身上总会“水土不服”。这种仿真与现实的差异,业内叫“域差距”(Domain Gap)。
Sim2Real(Simulation to Reality)要解决的问题,就是让策略在仿真中学到的本领能迁移到真实世界。理想目标是“零样本迁移”:仿真里训练完,直接部署到真机,不做任何真实数据微调。能不能做到,取决于仿真对真实世界的“覆盖率”,而不只是“像不像”。
域差距主要来自三方面:一是物理近似误差,仿真用离散时间步长和简化接触模型,算不出真实的微小形变;二是感知差异,仿真相机和力矩传感器过于理想;三是动态差异,真实电机的延迟、摩擦、磨损很难精确建模。量化这个差距,可以写成:
所以聪明的驾校不追求把场地修得和某条街一模一样,而是让学员在各类“仿真场地”里都练过。理解了差距在哪,我们才能谈怎样用 Isaac Gym 去覆盖它。
- 状态与动作$s$ 是机器人当前姿态(如关节角度),$a$ 是施加的控制指令,就像学员当前的车速和方向盘转角。
- 转移函数$T(s' \mid s, a)$ 描述“做了这个操作后世界会变成什么样”,是环境的物理规则。
- 期望$\mathbb{E}_{(s,a) \sim \pi}$ 表示在策略 $\pi$ 经常遇到的场景上取平均,而不是所有可能的场景。
- 差值范数$\| \cdot \|_2$ 把多维差异压缩成一个分数,$\Delta_{gap}$ 越大,说明两个世界对同一操作的反应差别越大。
二、Isaac Gym架构:一车变万台
普通驾校一辆车一个学员,Isaac Gym 这所“未来驾校”的做法是:在 GPU 上一次性铺开几千个训练位,每个位子上都有一台教练车和一位虚拟学员。它们各练各的,但共用同一套“教学大纲”——也就是策略网络的同一份权重。这就是“GPU 并行”的直觉。
支撑这种并行的是“环境向量化”(Vectorized Environments):Isaac Gym 不再逐个环境仿真,而是把几千个环境的状态打包成一批张量,喂给物理引擎一次求解。底层是 NVIDIA 的 PhysX 物理引擎在 GPU 上做批量碰撞检测和刚体动力学计算,观测、动作、奖励全部以张量形式在 GPU 上流转,CPU 只负责下发指令和调度,形成高效的“异构内存”协作。
因为一切都被“张量化”,Isaac Gym 可以轻松做到单块 GPU 上数千个环境并行,训练吞吐量比传统 CPU 仿真高出几个数量级。一个批次里所有环境的观测拼在一起,就是这样的大矩阵:
这就是为什么 Isaac Gym 能把训练速度提升几个数量级——几万台教练车同时练车,教练当然教得快、教得多。
- 环境数 N$N$ 是并行环境总数,相当于同时训练的教练车数量。
- 单环境观测$\mathbf{o}_t^{(i)}$ 是第 $i$ 个环境在时刻 $t$ 的观测向量,维度为 $D$,包含关节角、速度、受力等信息。
- 批量张量把 $N$ 个观测按行堆叠成矩阵 $\mathbf{O}_t$,GPU 一次 kernel 调用就能处理全部环境。
- 并行意义策略网络前向、奖励计算、物理步进都在这张“大表”上做批量运算,吞吐量随 $N$ 近似线性增长——这就是“几万台教练车同时开”的数学本质。
三、环境搭建:给驾校修场地
驾校要开业,第一步是修场地:柏油路、坡道、模拟雨天路面,每一样都是“资产”。Isaac Gym 里也一样,第一步是“环境搭建”:把机器人模型、地面、障碍物等资源加载进仿真世界。
机器人的“身体”一般用 URDF 或 MJCF 文件描述——它定义了每个连杆的长度、质量、关节类型,相当于教练车的“出厂参数”。通过资源加载接口读入后,用“角色创建”(create_actor)把它实例化到场景中,每个环境一个角色,各自独立。地形则可以程序化生成,Isaac Gym 支持用 heightfield(高度场)快速生成起伏地面,不用手动画网格。
一个容易被忽略的环节是“重置逻辑”:当某个环境的机器人摔倒或任务失败时,要把它恢复回初始状态,同时其他环境继续跑——这叫异步重置。它保证 GPU 上随时有尽量多的环境在产生有效经验。程序化地形可以看成很多正弦波的叠加:
场地修得越多样,学员见过的路况越多,毕业时才不会在陌生路面上翻车。
- 振幅 $A_k$决定第 $k$ 层波浪的高度,振幅越大起伏越剧烈。
- 频率 $f_k$决定地形起伏的疏密,频率越高路面越“碎”。
- 相位 $\phi_k, \psi_k$控制波浪在 $x$、$y$ 方向的偏移,让地形不单调重复。
- 叠加求和$K$ 层波叠加后,就生成了千变万化的随机地形供学员练习。
四、任务设计:教练怎么给学员打分
教练坐在副驾,看学员开车随时给反馈:开得稳当加分,猛踩油门扣分。机器人学习中的“教练”就是奖励函数。在 Isaac Gym 里设计任务,本质上就是把“怎样算开得好”翻译成数字。
先要定义“学员能看到什么”——观测空间:通常是关节角度、角速度、机体姿态、线速度等;再定义“学员能做什么”——动作空间:可以是关节目标位置、关节力矩或速度指令。接着定义“怎么算好”——奖励塑形:成功到达目标给奖励,偏离姿态给惩罚。最后定义“什么时候算结束”——终止条件:摔倒、出界或超时。
奖励塑形是工程味道最浓的部分。以四足机器人前进任务为例,奖励通常包含三项:鼓励前进的速度项、惩罚姿态倾斜的稳定项、惩罚能耗的控制项。把它们加权求和:
打分表设计得好,学员学得又快又稳;设计得差,学员就会钻空子——比如原地转圈骗速度分。
- 速度奖励$v_t \cos\theta_t$ 是沿前进方向的速度分量,跑得越快奖励越高。
- 姿态惩罚$|\theta_t|$ 是机体倾斜角,歪得越狠扣得越多,引导策略保持平衡。
- 能耗惩罚$\|a_t\|^2$ 是动作幅值的平方,限制学员“猛踩油门”式的粗暴控制。
- 权重系数$\alpha, \beta, \gamma$ 是教练对不同指标的重视程度,需要根据任务反复调试。
五、域随机化:故意刁难学员的秘诀
老教练有个秘诀:训练时故意刁难学员——今天地面洒水,明天大雾封路,后天车上多装两百斤货。见过足够多“怪情况”,学员毕业才不慌张。这对应 Sim2Real 中最核心的手段:域随机化(Domain Randomization)。
域随机化的做法是:在每次环境重置或训练过程中,随机改变仿真参数。一类是物理参数随机:地面的摩擦系数、机器人连杆质量、甚至重力大小,每次训练都从某个范围里重新采样;一类是视觉扰动:相机光照强度、纹理颜色、镜头噪声,让策略不依赖特定外观;还有事件随机:比如在训练中随机推机器人一把,测试它的抗干扰能力;以及动态难度:从易到难逐步增大随机范围,让学员先建立信心再迎接挑战。
这样训练出来的策略,不再死记硬背某一套精确参数,而是学会在“参数不确定”的情况下依然稳健。数学上,每个随机参数和最终期望回报可以写成:
刁难是手段不是目的——随机范围要覆盖真实分布,又不能大到让学员完全学不会。这是域随机化最需要拿捏的度。
- 随机参数采样$\xi$ 代表某个域参数(摩擦、质量、光照),从最小值到最大值的均匀分布中采样。
- 折扣回报$\sum_{t=0}^{T} \gamma^t r_t^{(\xi)}$ 是在某组参数 $\xi$ 下,一次完整回合的累计奖励,$\gamma$ 是折扣因子。
- 期望$J(\pi)$ 是所有随机参数组合下的平均回报,衡量策略在“不确定世界”里的平均表现。
- 核心思想优化 $J(\pi)$ 而不是某一个固定参数下的回报,迫使策略学会“泛化”而不是“背诵”。
六、训练优化:教练组的教研会
教练团队每周开教研会:把学员最近的练习数据拿出来,分析哪些动作该强化、哪些该避免,再更新教学方案。在强化学习里,这个“教研会流程”最流行的版本就是 PPO(Proximal Policy Optimization,近端策略优化)。
PPO 的思想很直观:新教学方案不能和旧方案差太远,否则学员会“精神分裂”。它通过一个裁剪(clip)机制,限制每次更新的幅度。Isaac Gym 之所以适合 PPO,是因为它能同时跑几千个环境采集经验——一个 batch 里的数据量大到足以让 PPO 稳定更新。配合并行加速,训练速度飞快。
超参调优和训练监控同样重要:学习率决定教研会改进幅度,GAE 中的 $\lambda$ 决定看多长远,clip 范围 $\varepsilon$ 控制更新上限。训练时盯着奖励曲线、策略熵、KL 散度,就像教练看学员的周考成绩单。PPO 的目标函数:
教研会开得稳,学员进步才稳——PPO 正是靠着“每次只改一点点”的保守策略,成为 Isaac Gym 训练中最常用的算法。
- 概率比率$\rho_t(\theta)$ 是新旧策略在状态 $s_t$ 下采取动作 $a_t$ 的概率比值,衡量策略变化幅度。
- 优势估计$\hat{A}_t$ 表示这个动作比平均表现好多少,是“该奖励还是该惩罚”的依据。
- 裁剪操作$\operatorname{clip}(\rho_t, 1-\varepsilon, 1+\varepsilon)$ 把比率限制在 $[1-\varepsilon, 1+\varepsilon]$,防止一步更新过猛。
- 取最小值$\min(\cdot)$ 让目标函数在“高估的坏情况”下变得保守,宁可少赚也不冒进。
七、部署实践:毕业路考
学员终于毕业,要开真车上路了。教练心里也没底:仿真里 100% 稳,真车会不会抖动?毕业路考就是 Sim2Real 部署环节。零样本迁移是理想目标,但工程上永远要留后手。
部署的第一步是“模型导出”:把训练好的 PyTorch 策略导出为 ONNX 或 TensorRT 引擎,在真机的计算平台上以固定频率推理。第二步是“仿真验证”:在更接近真实的高保真仿真里先跑一遍,条件允许时做“硬件在环”测试,让控制器接真实电机反馈、虚拟环境响应。第三步才上真机,而且先加安全保护:限位、急停、力矩上限,就像教练车副驾有刹车踏板。
真机上线后最常见的坑有三个:一是推理延迟导致控制频率不匹配,仿真里 500Hz 的策略真机上只能跑 100Hz;二是传感器噪声分布和仿真不一致;三是机械磨损让参数漂移。应对手段包括性能调优(TensorRT 加速、裁剪观测维度)、领域微调、以及运行时自适应。最终用一个指标来衡量路考通过率:
路考通过率就是 Sim2Real 的试金石。驾校教得再好,最终都要用真马路上的一脚油门来验证。
- 试验次数 $M$在真机上重复 $M$ 次任务,次数越多统计越可靠。
- 指示函数$\mathbb{I}[\text{success}_i]$ 在第 $i$ 次成功时为 1,失败时为 0。
- 成功率SR 是成功次数占总试验次数的比例,越高说明 Sim2Real 迁移越成功。
AI 应用场景
场景 1:四足机器人步态从仿真走向真机
阶段:仿真训练 → 模型部署(Sim2Real 迁移)
解决的问题:在真实机器人上直接训练步态策略,成本高且危险——机器人摔一跤可能损坏电机,一天也采不了几小时数据。Isaac Gym 中上万环境并行训练,配合物理参数与地形域随机化,让策略在仿真中见过各种“刁难路况”,再部署到真机上实现零样本或少量微调迁移。
具体案例:某四足机器人在 Isaac Gym 的随机碎石坡、湿滑地面、随机推搡下训练步态,部署后工厂巡检时在砂石路和斜坡上都能稳定行走,成功率从直接迁移的 40% 提升到 92%。
场景 2:机械臂抓取操作的仿真数据生成
阶段:数据生成(仿真)→ 策略学习
解决的问题:真实抓取数据采集慢、标注贵,一个抓取动作要反复示教。Isaac Gym 在 GPU 上并行创建大量抓取场景,随机物体位姿、光照、摩擦系数,快速生成海量“仿真操作经验”,让抓取策略学会不依赖特定环境外观的通用操作。
具体案例:物流分拣机械臂在 Isaac Gym 中随机摆放箱子、随机光照下训练抓取,部署后面对传送带上姿态各异的包裹,抓取成功率从 65% 提升至 88%,且无需为每种包裹重新标定。
场景 3:仓储 AGV 导航策略的仿真评估
阶段:仿真评估 → 策略部署
解决的问题:新策略直接上线风险大,可能撞货架、堵通道。Isaac Gym 快速构建高密度货架场景,注入传感器噪声、随机行人遮挡,先在仿真中完成大规模评估,达标后再灰度部署,显著降低上线风险。
具体案例:某仓储 AGV 团队在 Isaac Gym 中生成了 2000 个随机仓库布局,评估避障策略在最拥挤 5% 场景下的表现,提前发现并修复了“窄通道原地旋转”的缺陷,上线后碰撞事故减少 70%。
Python 演示
"""迷你版 Isaac Gym:GPU 并行倒立摆 + 域随机化(教学演示) 模仿 Isaac Gym 的核心设计:一次性创建 N 个环境,以向量形式批量推进物理步,并为每个环境随机化物理参数,模拟 Sim2Real 中的域随机化。""" import numpy as np class VecPendulum: """向量化倒立摆环境(相当于 Isaac Gym 中的 VecEnv)""" def __init__(self, num_envs=2048, dt=0.02): self.num_envs = num_envs self.dt = dt # 域随机化:每个环境一套物理参数 self.mass = np.random.uniform(0.8, 1.2, num_envs) self.length = np.random.uniform(0.9, 1.1, num_envs) self.friction = np.random.uniform(0.05, 0.30, num_envs) self.angle = np.random.uniform(-0.3, 0.3, num_envs) self.omega = np.zeros(num_envs) def reset(self, indices): """只重置指定的环境(等效于 Isaac Gym 的异步重置)""" self.angle[indices] = np.random.uniform(-0.3, 0.3, len(indices)) self.omega[indices] = 0.0 def step(self, torque): """批量推进所有环境一步""" acc = 9.8 / self.length * np.sin(self.angle) acc += torque / (self.mass * self.length ** 2) acc -= self.friction * self.omega self.omega += acc * self.dt self.angle += self.omega * self.dt reward = np.cos(self.angle) - 0.01 * torque ** 2 done = np.abs(self.angle) > np.pi / 3 return self.angle.copy(), reward, done def main(): env = VecPendulum(num_envs=4096) episode_return = np.zeros(env.num_envs) for step in range(300): # 简单 PD 控制器代替策略网络 torque = -2.5 * env.angle - 0.8 * env.omega obs, reward, done = env.step(torque) episode_return += reward if done.any(): env.reset(np.where(done)[0]) episode_return[done] = 0.0 print("并行环境数:", env.num_envs) print("平均累计回报:", round(float(episode_return.mean()), 2)) print("存活比例:", round(float((np.abs(env.angle) < np.pi / 3).mean()), 3)) if __name__ == "__main__": main()
self.mass = np.random.uniform(0.8, 1.2, num_envs)域随机化的核心:每个环境一套质量参数,模拟真实世界的个体差异。self.angle = np.random.uniform(-0.3, 0.3, num_envs)初始化时每个环境初始角度不同,避免所有学员从同一起跑线“背答案”。def step(self, torque):批量推进所有环境一步,整个方法的输入输出都是向量,对应 GPU 上的张量运算。acc = 9.8 / self.length * np.sin(self.angle)一次计算所有环境的角加速度,向量化让 4096 个环境只需一次运算。reward = np.cos(self.angle) - 0.01 * torque ** 2奖励塑形:杆子越直立奖励越高,动作太粗暴扣分,对应文章中的奖励函数设计。done = np.abs(self.angle) > np.pi / 3终止条件:摆角超过 60 度视为“跌倒”,这批环境需要重置。if done.any(): env.reset(np.where(done)[0])异步重置:只重置失败的环境,其余环境继续运行,最大化数据采集效率。episode_return[done] = 0.0重置后清零该环境的累计回报,避免把上一回合的成绩带入下一回合。env = VecPendulum(num_envs=4096)一次性创建 4096 个并行环境,这正是 Isaac Gym 相比于单环境仿真器的核心优势。
常见误区
误区“我在 Isaac Gym 里已经 100% 成功完成任务了,部署到真机上肯定没问题。仿真数据这么完美,直接拿来用就行!”
正解仿真练得好只说明策略记住了“仿真驾校的场地”,而真机是另一条马路。物理引擎有近似误差、传感器有噪声、电机有延迟,这些都可能让策略在真机上表现骤降。正确的做法是用域随机化覆盖真实分布,部署前先做硬件在环验证,并保留安全兜底。
为何常见:因为目光只盯着仿真里的成功指标,忽略了“域差距”的存在——就像学员只会在驾校场地开车,换个路口就迷路。
误区“既然域随机化能提升迁移效果,那把质量、摩擦、重力全部随机到极限范围,策略一定更鲁棒!”
正解随机范围过大会让任务变得无法学习——就像让一个刚摸方向盘的新手直接去跑达喀尔拉力赛。随机参数应围绕真实分布设定范围,并配合课程学习(Curriculum)从易到难逐步加大难度,才能让策略既学得会又泛化得好。
为何常见:看到随机化有效就盲目加码,误以为“越乱越鲁棒”,忽视了学习的可行性边界。
误区“域差距大是因为仿真不够逼真,只要把渲染做到电影级、物理做到毫米级,Sim2Real 就解决了。”
正解高保真往往带来高计算开销,训练速度骤降,数据量反而变少。Sim2Real 的关键不是绝对逼真,而是覆盖真实分布——一个物理近似但带域随机化的快速仿真,常常比一个又慢又精的仿真迁移效果更好。仿真保真度应当为目标服务,而不是为炫技服务。
为何常见:人的直觉是“越像越好”,忽略了训练效率与分布覆盖之间的权衡。
误区“奖励函数是教练的打分表,我多设计几个细化的奖励项,学员就能又快又正确地学会任务。”
正解奖励设计过于精细会诱导“奖励黑客”(Reward Hacking)——策略找到非预期捷径,比如原地打转骗速度分。更稳健的做法是使用稀疏奖励加少量引导项,让奖励结构简单清晰,并在训练时监控策略行为是否偏离任务本意。
为何常见:总想帮学员“少走弯路”,结果留下的“捷径”反而让学员学会了钻空子。
面试题
Q1. Isaac Gym 能在极短时间内完成大量机器人策略训练,最核心的加速手段是什么?
- A.在 CPU 上多线程并行运行多个仿真
- B.在 GPU 上批量并行仿真上千个环境← 正确答案
- C.把训练改成纯在线学习不需要仿真
- D.用更简单的物理模型跳过动力学计算
答案:B。Isaac Gym 的核心是环境向量化,把上千个仿真环境打包成张量在 GPU 上批量推进,类似“几万台教练车同时练”。A 是传统仿真器思路,C 不符合现实,D 牺牲物理精度且并非核心手段。
Q2. Sim2Real 中“从仿真迁移到现实”面临的关键挑战是什么?
- A.仿真环境数量太少不够用
- B.仿真与现实的状态转移存在差距← 正确答案
- C.真实机器人没有传感器
- D.仿真训练完全不需要 GPU
答案:B。挑战是“域差距”——仿真物理近似、传感器理想化、执行器无延迟,导致同一策略在仿真和真机上表现不同。这正是驾校场地 vs 真实马路的关系。A、C、D 都不是关键挑战。
Q3. 域随机化(Domain Randomization)的核心思想是什么?
- A.只使用一套精确标定的物理参数
- B.训练时随机改变仿真参数以覆盖真实分布← 正确答案
- C.随机跳过训练过程减少时间
- D.每次训练只使用一个环境
答案:B。域随机化就是在训练中随机改变摩擦、质量、光照等参数,让策略学会在“参数不确定”下保持稳健,相当于教练故意刁难学员。A 恰好相反,C、D 与随机化无关。
Q4. Isaac Gym 中一次创建数千个环境并共享同一策略网络更新,这种并行方式属于?
- A.模型并行
- B.数据并行(环境并行)← 正确答案
- C.流水线并行
- D.张量并行
答案:B。所有环境共享同一份策略权重,各自独立产生经验数据,再汇总更新——这是典型的数据并行。模型并行和张量并行是拆分模型本身,流水线并行侧重阶段分工,均与“环境并行采数据”不符。
Q5. 在 Isaac Gym 中,以下哪些可以作为域随机化的对象?
- A.地面摩擦系数← 正确答案
- B.机器人连杆质量← 正确答案
- C.相机光照强度← 正确答案
- D.策略网络隐藏层数
答案:ABC。域随机化针对环境物理参数、传感器扰动等“世界不确定因素”,对应 A(摩擦)、B(质量)、C(光照)。D 是网络结构超参,属于训练配置而非仿真域的随机对象。
Q6. 奖励塑形过于精细,导致策略找到“原地转圈骗速度分”这类非预期捷径,这种现象叫作?
- A.奖励黑客(Reward Hacking)← 正确答案
- B.梯度爆炸
- C.模式坍塌
- D.过拟合
答案:A。策略利用奖励函数漏洞获取高分但未完成任务,就是“奖励黑客”——学员发现转圈能骗过教练的分表。梯度爆炸是训练数值问题,模式坍塌是生成模型概念,过拟合是泛化问题,均不符合。
Q7. 训练四足机器人步态并希望部署到全新地形上也能走稳,最关键的训练手段是什么?
- A.减小物理仿真步长提高精度
- B.对地形与物理参数做域随机化← 正确答案
- C.提高渲染分辨率
- D.显著增大奖励数值
答案:B。新地形属于训练未见过的分布,只有通过域随机化让策略见过多样地形和物理参数,才能实现泛化迁移。减小步长和高分辨率仿真提升保真但收益有限,增大奖励数值不改变泛化能力。
Q8. 关于 Isaac Gym 的正确说法有哪些?
- A.环境以张量形式批量推进← 正确答案
- B.支持异步重置失败环境← 正确答案
- C.必须一个环境一个环境串行仿真
- D.GPU 上可同时采集大量经验数据← 正确答案
答案:ABD。Isaac Gym 的核心是环境向量化批量推进(A),失败环境可单独重置、其余继续(B),海量环境并行采集经验供 PPO 等算法使用(D)。C 恰恰相反,串行仿真正是它要淘汰的低效方式。
Q9. 某 PPO 更新中策略比率 ρ=1.5,clip 范围 ε=0.2,优势估计 Â=2,clipped 目标函数中实际采用的损失值是多少?
- A.3.0
- B.2.4← 正确答案
- C.2.0
- D.1.6
答案:B。clip(1.5, 0.8, 1.2) = 1.2,于是 clipped 项为 1.2×2=2.4;未裁剪项为 1.5×2=3.0;取 min(3.0, 2.4) = 2.4。这体现 PPO“宁可少赚也不冒进”的保守更新思想。A 是未裁剪值,C 是比率恰好为 1 时的值,D 是下界 0.8×2 的结果。
Q10. 以下哪些做法能有效缩小 Sim2Real 迁移差距?
- A.在仿真中注入传感器噪声← 正确答案
- B.使用系统辨识对齐仿真与真实参数← 正确答案
- C.无限制增大奖励幅度
- D.对物理参数做域随机化← 正确答案
答案:ABD。注入传感器噪声让策略适应感知差异(A),系统辨识让仿真参数向真实值对齐(B),域随机化覆盖真实参数分布(D),三者都能缩小域差距。C 增大奖励幅度只会改变优化尺度,不改变仿真与现实的差异,甚至可能诱发奖励黑客。