<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sim-to-Real on WorldSense 技术笔记</title><link>https://worldsensetech.com/zh/categories/sim-to-real/</link><description>Recent content in Sim-to-Real on WorldSense 技术笔记</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sat, 08 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://worldsensetech.com/zh/categories/sim-to-real/index.xml" rel="self" type="application/rss+xml"/><item><title>域随机化（Domain Randomization）：机器人 Sim-to-Real 迁移的核心技术</title><link>https://worldsensetech.com/zh/articles/domain-randomization-sim-to-real/</link><pubDate>Sat, 08 Aug 2026 00:00:00 +0000</pubDate><guid>https://worldsensetech.com/zh/articles/domain-randomization-sim-to-real/</guid><description>&lt;p&gt;上一篇我们聊了 TD-MPC 如何用世界模型做机器人控制。但不管用 Dreamer、TD-MPC 还是其他方法，训练出来的策略最终都要部署到真实机器人上。这就绕不开 Sim-to-Real 迁移——而域随机化（Domain Randomization）是这条路上最基础的技术。&lt;/p&gt;
&lt;p&gt;这篇文章系统拆解域随机化：它解决什么问题、有哪些类型、工程上怎么实现、以及最新的进展。&lt;/p&gt;
&lt;h2 id="sim-to-real-gap-的根源"&gt;Sim-to-Real Gap 的根源&lt;/h2&gt;
&lt;p&gt;先回顾一下问题。仿真环境和真实世界之间存在系统性差异，这些差异统称为 Sim-to-Real Gap。其中一部分来自未建模动态（unmodeled dynamics），例如摩擦变化、接触误差、传感器噪声等：&lt;/p&gt;
&lt;p&gt;动力学层面：摩擦系数、质量分布、关节阻尼、电机响应延迟。仿真中的物理参数往往是近似值，和真实机器人有偏差。&lt;/p&gt;
&lt;p&gt;视觉层面：光照条件、相机噪声、纹理细节、背景变化。仿真渲染和真实相机看到的图像有显著差异。&lt;/p&gt;
&lt;p&gt;传感器层面：IMU 漂移、力传感器噪声、编码器精度。仿真中的传感器是理想的，真实传感器有各种非理想特性。&lt;/p&gt;
&lt;p&gt;这些差异导致了一个核心问题：在仿真中训练的策略，直接部署到真实世界时性能下降。域随机化的思路很直接——既然真实世界无法被完全建模，就让训练环境覆盖一个合理范围的可能情况，使真实环境成为训练分布中的一个可能实例。&lt;/p&gt;
&lt;h2 id="为什么域随机化现在重新受到关注"&gt;为什么域随机化现在重新受到关注？&lt;/h2&gt;
&lt;p&gt;域随机化并不是新技术——早在 2017 年左右就有系统性的工作。但近几年它的热度明显上升，原因和整个具身智能的研究范式变化有关。&lt;/p&gt;
&lt;p&gt;过去，机器人控制主要靠手工建模和专用控制器。工程师根据具体任务设计动力学模型、调参、写控制逻辑。这种方式在结构化环境中效果不错，但扩展性差——每换一个任务就要重新来一遍。&lt;/p&gt;
&lt;p&gt;现在的范式是：大模型 + 强化学习 + 仿真训练。策略不再由人手工设计，而是在仿真中通过大量试错自动学习。这意味着对训练数据的需求急剧增加。但真实世界的机器人数据太贵、太慢、太危险——不可能让真实机器人每天跑几百万次试错。&lt;/p&gt;
&lt;p&gt;于是，仿真训练成了主流选择。但仿真训练的核心瓶颈变成了：怎么让仿真中学到的能力迁移到真实世界？Sim-to-Real 不再只是一个机器人控制问题，而成为具身智能规模化训练的核心问题。域随机化作为其中最基础、最通用的技术，自然重新受到了关注。&lt;/p&gt;
&lt;h2 id="域随机化的核心思想"&gt;域随机化的核心思想&lt;/h2&gt;
&lt;p&gt;域随机化的直觉来自一个观察：如果策略在足够多样的仿真环境中都能表现良好，那它在真实世界中应该也能工作——因为真实世界只是众多可能环境中的一个。&lt;/p&gt;
&lt;p&gt;形式化地说，域随机化把仿真参数 θ 当作随机变量，从一个分布 p(θ) 中采样。训练时，每个 episode 使用不同的 θ 值。策略学到的不是&amp;quot;在某个特定仿真中怎么做&amp;quot;，而是&amp;quot;在各种可能的环境中怎么做&amp;quot;。
关键洞察：域随机化本质上是在训练数据的分布中注入多样性，让策略学到鲁棒的、不依赖于特定仿真参数的行为。&lt;/p&gt;
&lt;h2 id="域随机化的分类"&gt;域随机化的分类&lt;/h2&gt;
&lt;p&gt;根据随机化的对象，域随机化可以分为四大类：&lt;/p&gt;
&lt;h3 id="1-动力学域随机化dynamics-dr"&gt;1. 动力学域随机化（Dynamics DR）&lt;/h3&gt;
&lt;p&gt;随机化物理参数：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;质量：物体质量、机器人连杆质量。工程中通常从较小范围开始（例如围绕标称值扰动），再根据真实迁移效果逐步扩大范围。&lt;/li&gt;
&lt;li&gt;摩擦：接触摩擦系数、关节摩擦。这是影响操作任务最关键的因素之一。&lt;/li&gt;
&lt;li&gt;阻尼：关节阻尼系数。影响机器人的动态响应。&lt;/li&gt;
&lt;li&gt;惯性：转动惯量。影响旋转运动的动态。&lt;/li&gt;
&lt;li&gt;延迟：控制延迟、观测延迟。模拟真实系统的响应滞后。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;动力学 DR 是最常用的类型，对大多数任务都有显著效果。&lt;/p&gt;
&lt;h3 id="2-视觉域随机化visual-dr"&gt;2. 视觉域随机化（Visual DR）&lt;/h3&gt;
&lt;p&gt;随机化视觉渲染参数：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;光照：光源位置、强度、颜色。这是视觉 DR 中最重要的一项。&lt;/li&gt;
&lt;li&gt;纹理：物体表面纹理、颜色。可以用程序化纹理或随机贴图。&lt;/li&gt;
&lt;li&gt;背景：场景背景。可以用随机颜色、随机图像或随机3D场景。&lt;/li&gt;
&lt;li&gt;相机：相机位置、角度、焦距、噪声。&lt;/li&gt;
&lt;li&gt;材质：反射率、透明度、粗糙度。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;视觉 DR 对基于图像的策略特别重要。如果策略直接用相机图像作为输入，视觉 DR 几乎是必须的。&lt;/p&gt;</description></item><item><title>Sim-to-Real太难？世界模型驱动的自适应迁移方法</title><link>https://worldsensetech.com/zh/articles/sim-to-real-transfer/</link><pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate><guid>https://worldsensetech.com/zh/articles/sim-to-real-transfer/</guid><description>&lt;p&gt;这是世界模型系列文章的第四篇。前三篇我们聊了世界模型的基本概念、RSSM的核心原理、以及具身智能的入门路径。今天聊一个更偏实战的话题：仿真里训练的策略，到底怎么部署到真实机器人上？&lt;/p&gt;
&lt;p&gt;这个问题困扰了机器人AI领域将近十年。世界模型在仿真环境里表现惊艳——DreamerV3的样本效率比传统RL高出10-100倍。但一旦部署到真实机器人，性能往往下降30-50%。这个差距，就是著名的&amp;quot;Sim-to-Real Gap&amp;quot;。&lt;/p&gt;
&lt;p&gt;这篇文章，我想从工程师的视角，聊聊这个问题为什么难，以及世界模型提供了哪些新的解决思路。&lt;/p&gt;
&lt;h2 id="sim-to-real的三大挑战"&gt;Sim-to-Real的三大挑战&lt;/h2&gt;
&lt;p&gt;先搞清楚问题出在哪里。仿真和真实世界之间的差距，主要来自三个方面：&lt;/p&gt;
&lt;h3 id="1-域偏移domain-shift"&gt;1. 域偏移（Domain Shift）&lt;/h3&gt;
&lt;p&gt;仿真器的物理参数和真实世界不可能完全一致。摩擦系数差0.1、质量差5克、电机响应慢10毫秒——这些微小差异在仿真里看不出来，但策略部署后会被放大。&lt;/p&gt;
&lt;p&gt;更麻烦的是，这些参数往往是未知的。你不知道真实世界的精确摩擦系数是多少，只能猜一个范围。&lt;/p&gt;
&lt;h3 id="2-未建模动态unmodeled-dynamics"&gt;2. 未建模动态（Unmodeled Dynamics）&lt;/h3&gt;
&lt;p&gt;仿真器只能模拟已知的物理规律。但真实世界有很多&amp;quot;意外&amp;quot;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;柔性物体的形变（比如抓取一块布料，布料的褶皱无法精确预测）&lt;/li&gt;
&lt;li&gt;接触非线性（两个表面接触时的粘滑效应、微小振动）&lt;/li&gt;
&lt;li&gt;传感噪声（相机图像的光照变化、力传感器的漂移）&lt;/li&gt;
&lt;li&gt;外部干扰（有人碰了一下桌子、地面轻微震动）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些动态在仿真里要么被简化，要么完全忽略。策略在仿真里学的是&amp;quot;理想世界&amp;quot;的规律，到真实世界就懵了。&lt;/p&gt;
&lt;h3 id="3-安全约束safety-constraints"&gt;3. 安全约束（Safety Constraints）&lt;/h3&gt;
&lt;p&gt;在仿真里，策略可以随便试错——撞坏了重启就行。但在真实世界，机器人撞坏了是真坏了，还可能伤到人。&lt;/p&gt;
&lt;p&gt;这意味着部署到真实世界的策略必须满足安全约束：不能超出关节限位、不能产生过大的力、不能进入危险区域。这些约束在仿真训练时往往没有被充分考虑。&lt;/p&gt;
&lt;h2 id="传统方法域随机化的局限性"&gt;传统方法：域随机化的局限性&lt;/h2&gt;
&lt;p&gt;过去几年，Sim-to-Real迁移的主流方法是域随机化（Domain Randomization）。&lt;/p&gt;
&lt;p&gt;思路很直觉：既然不知道真实世界的精确参数，那就在仿真里随机化这些参数。训练时，每次episode都用不同的摩擦系数、质量、光照条件、传感噪声。策略在这么多&amp;quot;不同的世界&amp;quot;里训练，总有一个和真实世界接近。&lt;/p&gt;
&lt;p&gt;这个方法确实有效。OpenAI的Rubik&amp;rsquo;s Cube机器人（2019年）就是用域随机化实现的——在仿真里训练，直接部署到真实世界，成功率达到90%以上。&lt;/p&gt;
&lt;p&gt;但域随机化有几个根本性的局限：&lt;/p&gt;
&lt;p&gt;第一，随机化范围难确定。如果范围太小，覆盖不到真实世界的参数；如果范围太大，策略会变得过于保守，什么都做不好。&lt;/p&gt;
&lt;p&gt;第二，只能处理已知的不确定性。域随机化只能随机化你&amp;quot;知道要随机化&amp;quot;的参数。但未建模动态（比如柔性形变）你根本不知道该怎么随机化。&lt;/p&gt;
&lt;p&gt;第三，样本效率低。为了覆盖足够大的参数空间，需要大量的训练数据。对于复杂的机器人任务，训练时间可能长达数周。&lt;/p&gt;
&lt;h2 id="新思路用世界模型作为桥梁"&gt;新思路：用世界模型作为&amp;quot;桥梁&amp;quot;&lt;/h2&gt;
&lt;p&gt;世界模型为Sim-to-Real迁移提供了一个全新的思路：不让策略直接从仿真跳到真实世界，而是让世界模型作为中间的&amp;quot;桥梁&amp;quot;。&lt;/p&gt;
&lt;p&gt;核心思想是：世界模型学习了环境的动态规律。如果这个世界模型足够好，它应该能同时模拟仿真环境和真实世界。策略在世界模型的&amp;quot;想象空间&amp;quot;中训练，而不是在仿真器中训练。这样策略学到的不是&amp;quot;仿真世界的规律&amp;quot;，而是&amp;quot;更通用的环境规律&amp;quot;。&lt;/p&gt;
&lt;p&gt;具体来说，世界模型驱动的Sim-to-Real迁移有三个关键机制：&lt;/p&gt;
&lt;h3 id="机制一世界模型驱动的域适应"&gt;机制一：世界模型驱动的域适应&lt;/h3&gt;
&lt;p&gt;传统域随机化是在仿真器层面随机化参数。世界模型方法则是在模型层面做适应。&lt;/p&gt;
&lt;p&gt;流程是这样的：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;在仿真环境中收集大量数据，训练一个世界模型&lt;/li&gt;
&lt;li&gt;在真实世界中收集少量数据（可能只有几分钟的演示）&lt;/li&gt;
&lt;li&gt;用真实数据微调世界模型，让它&amp;quot;适应&amp;quot;真实世界的动态&lt;/li&gt;
&lt;li&gt;在适应后的世界模型中重新训练策略&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这个方法的优势在于：世界模型的参数量远小于仿真器的参数量。微调世界模型比重新校准仿真器快得多，而且只需要少量真实数据。&lt;/p&gt;
&lt;p&gt;举个例子：一个机械臂抓取任务，仿真里训练的世界模型预测的摩擦力是0.3，但真实世界的摩擦力是0.35。传统方法需要重新校准仿真器的摩擦参数，可能需要几个小时。而世界模型方法只需要用真实数据微调几轮，模型就能学会正确的摩擦力，可能只要几分钟。&lt;/p&gt;
&lt;h3 id="机制二渐进式信任迁移"&gt;机制二：渐进式信任迁移&lt;/h3&gt;
&lt;p&gt;即使世界模型适应得很好，直接把策略部署到真实世界还是有风险。渐进式信任迁移的思路是：分阶段部署，每一步都有安全约束。&lt;/p&gt;
&lt;p&gt;具体分为三个阶段：&lt;/p&gt;
&lt;p&gt;阶段一：纯仿真训练&lt;/p&gt;
&lt;p&gt;策略完全在世界模型的想象空间中训练。这个阶段策略可能还不稳定，但没关系，因为在仿真里。&lt;/p&gt;
&lt;p&gt;阶段二：混合环境训练&lt;/p&gt;
&lt;p&gt;策略在仿真和真实世界之间交替训练。比如奇数episode在仿真里跑，偶数episode在真实世界里跑。真实世界的episode中，加入安全约束（比如限制速度、限制力的范围）。&lt;/p&gt;
&lt;p&gt;这个阶段的关键是信任度评估：世界模型会预测&amp;quot;在真实世界中执行这个动作的后果&amp;quot;。如果预测的不确定性太高，就降低策略的探索强度，或者切换到更保守的行为。&lt;/p&gt;
&lt;p&gt;阶段三：真实世界部署&lt;/p&gt;
&lt;p&gt;策略完全在真实世界中运行。但世界模型仍然在后台运行，持续预测环境动态。如果预测和实际观测偏差太大，触发安全机制（比如减速、停止、请求人工干预）。&lt;/p&gt;
&lt;p&gt;这种渐进式的方法，核心优势是安全。每一步都有安全保障，不会出现&amp;quot;仿真里好好的，一部署就撞坏&amp;quot;的情况。&lt;/p&gt;
&lt;h3 id="机制三在线模型适配"&gt;机制三：在线模型适配&lt;/h3&gt;
&lt;p&gt;即使部署成功了，真实世界还在不断变化。温度变了、零件磨损了、桌面被移动了——这些都会影响策略的性能。&lt;/p&gt;
&lt;p&gt;在线模型适配的思路是：部署后，世界模型持续从真实数据中学习，不断修正自己的预测。&lt;/p&gt;
&lt;p&gt;具体做法：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;策略执行动作时，世界模型同时预测下一个状态&lt;/li&gt;
&lt;li&gt;真实传感器返回实际观测&lt;/li&gt;
&lt;li&gt;比较预测和实际观测，计算误差&lt;/li&gt;
&lt;li&gt;用这个误差更新世界模型的参数（在线学习）&lt;/li&gt;
&lt;li&gt;更新后的世界模型用于下一步的预测和策略更新&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这个机制让策略能够持续适应环境变化。比如机械臂的关节随着使用会磨损，摩擦力会逐渐变化。在线适配的世界模型能捕捉到这种变化，策略也能相应调整。&lt;/p&gt;
&lt;h2 id="安全约束控制屏障函数"&gt;安全约束：控制屏障函数&lt;/h2&gt;
&lt;p&gt;前面提到了安全约束，这里展开说一下具体的实现方法。&lt;/p&gt;</description></item></channel></rss>