2016年,一个叫DeepMind的团队用AlphaGo打败了李世石,全世界都在讨论强化学习有多厉害。但很少有人注意到一个尴尬的事实:那套系统在正式比赛前,自己跟自己下了差不多3000万盘棋。

如果这是一个物理世界里的任务呢?如果AlphaGo下的不是围棋,而是操控一个机械臂去抓取易碎的杯子?

3000万次尝试,意味着3000万次可能的摔碎、可能的机械臂损坏、可能的高昂维修费用。机器人和围棋不一样,围棋的每一步都发生在数字世界里,代价是零,但机械臂的每一次试错都发生在物理世界里,代价是真金白银。

这就是机器人学习面临的核心矛盾:想要机器人学得聪明,就需要海量的试错数据,可每一次试错都要花钱、花时间、还有摔坏东西的风险。

D-Robotics团队最近发布的Uranus,就是想解决这个矛盾。它不是一个真实的机器人,而是一个AI生成的"虚拟世界",你告诉它机械臂接下来要往哪儿动,它就用视频的方式,实时生成"这样动了之后会发生什么"。听起来有点像给机器人造了一个梦境,让它在梦里先练习,练熟了再去现实世界动手。

传统模拟器为什么不够用

在Uranus出现之前,机器人研究者主要靠两类工具练手:真实机器人,或者传统物理仿真器,比如Isaac Sim和MuJoCo。

**传统仿真器*:一种通过手工建立物理规则(比如重力、摩擦力、碰撞检测)和3D模型来模拟真实世界的软件工具,游戏引擎里常用的物理系统就是它的近亲。

这两条路各有各的麻烦。真实机器人成本高、慢、还不安全,机械臂一旦撞到人或者摔坏零件,损失是实打实的。传统仿真器倒是安全又便宜,但它需要工程师一点点去建模,桌子长什么样、杯子有多重、摩擦系数是多少,全都要手动输入进去。建一个逼真的虚拟厨房可能要花上几个月,而且建出来的虚拟世界和真实世界之间永远存在一道"仿真到现实的鸿沟",机器人在虚拟世界里练得再好,一到真实环境里还是可能翻车。

这就好比你想学开车,如果每次上路练习都要冒真实车祸的风险,那太贵了;但如果换成一个完全靠人工画出来的驾驶模拟器,画面里的路面摩擦力、刹车反应全靠工程师猜测和调参,那模拟器和真实马路的差距可能大到你学完了照样不会开真车。

近几年出现了一种新思路:数据驱动的视频世界模型。不再靠工程师手动写物理规则,而是让AI直接从海量真实机器人操作的视频里学习"如果机械臂这样动,画面接下来会怎么变化"。这类系统包括Ctrl-World、GigaWorld-1、GE-Sim 2.0等,但它们普遍有两个问题:一是只在少数几种机器人、几个场景上训练,泛化能力存疑;二是沿用了传统视频生成的思路,每次要一口气生成一大段视频(比如15到33帧),这意味着从下达指令到看到反馈之间会有明显的延迟,没法做到实时的"你动一下我看一下"的交互。

Uranus想解决的正是这两个短板。

核心设计:把视频生成拆成一帧一帧的自回归过程

Uranus最核心的设计理念,是把"预测未来"这件事,从一次性生成一大段视频,改成了像说话一样一个字一个字往外蹦。

具体来说,Uranus每次推理只生成一个"潜在帧",对应4张连续的RGB画面。你给它未来4个时间点的机械臂关节角度(专业说法叫qpos),它就吐给你这4个时间点对应的4张画面,然后把这4张画面存进"记忆"里,作为下一次生成的参考,如此循环下去,理论上可以无限延续。

**qpos*:机械臂在某个时刻所有关节的角度配置,是描述机器人姿态最基础的数据格式,几乎所有机器人平台都能提供这个信息。

**自回归*:一种生成方式,每一步的输出都依赖前面已经生成的内容,就像你写文章时下一个字要参考前面写了什么,而不是一次性把整篇文章都想好再落笔。

这种设计和市面上其他世界模型最大的区别,就是"生成粒度"。GE-Sim 2.0一次吐25帧,GigaWorld-1一次吐33帧,Uranus一次只吐4帧。粒度越细,意味着控制的响应就越快,你刚给出一个指令,几乎立刻就能看到反馈,而不用等它把一大段视频全生成完。

这就像两种不同的打字方式。一种是你写完整段话再发送,对方要等你打完一长串字才能看到;另一种是你打一个字就实时同步给对方,对方几乎是逐字看到你在写什么。如果Uranus也采用"攒一大段再发"的策略,会发生什么?意味着从机器人执行一个动作到系统告诉你结果之间会有明显的等待,如果这个世界模型要配合真实策略做闭环控制(策略看一眼画面就要决定下一步动作),这种延迟会直接拖垮整个系统的响应速度。

而Uranus的生成过程内部其实是两层嵌套的。外层是刚才说的自回归循环,一帧一帧往外吐;内层则是每一帧的具体生成过程,用的是一种叫"流匹配扩散"的技术。

**流匹配(Flow Matching)*:一种生成模型技术,通过学习如何把随机噪声一步步"引导"成目标图像,原理上比传统扩散模型更直接,去噪过程更高效。

**扩散模型*:一类通过反复去噪声的方式,从一团随机噪点逐渐还原出清晰图像或视频的AI生成技术,Stable Diffusion这类图像生成工具背后就是这个原理。

外层负责保证时间上的连贯性(这一帧和上一帧衔接得上),内层负责保证画面的真实感和细节丰富度。这种"套娃"结构让Uranus既能保持长时间的稳定性,又不牺牲单帧画面的生成质量。

让不同机器人共用一套语言:骨架条件化

机器人这个领域有个头疼的事实:市面上的机械臂长得五花八门。有单臂的UR5,有双臂的ALOHA,有人形机器人AgiBot,还有各种移动机械臂。关节数量不同、连杆长度不同、夹爪形状也不同,如果每换一种机器人就要重新训练一个模型,那这套系统压根没法规模化。

Uranus的解法挺巧妙:它不直接把"这是哪种机器人"这个信息喂给神经网络,而是先用传统的正向运动学计算,把机器人的关节配置转换成图像空间里的一套"骨架图",也就是把机械臂的关键点(关节位置、末端执行器位置)投影到摄像头画面上,画成一串连线的骨架,就像医院里的X光片能看到骨骼轮廓一样。

**正向运动学*:给定机器人每个关节的角度,计算出末端执行器(比如夹爪)在三维空间中具体位置的数学方法,是机器人学里最基础的计算之一。

这套骨架图不管背后是哪种机器人,画出来的格式是统一的:都是2D图像上的一堆点和连线。神经网络看到的永远是这种统一格式的骨架,而不需要知道背后到底是UR5还是ALOHA。骨架末端还会额外编码一些信息,比如夹爪的开合程度用圆圈的大小表示,末端执行器相对摄像头的朝向用颜色变化表示。

这就好比联合国开会,各国代表说的是不同语言,但会场里配了统一的同声传译。发言人不需要学会所有其他国家的语言,翻译员会把每种语言都转成一种大家都能听懂的通用表达。如果没有这层"同声传译",Uranus就得为每一种机器人单独训练一个模型,UR5一个、ALOHA一个、AgiBot再来一个,那所谓的"跨embodiment泛化"就无从谈起了。

摄像头的位置和角度信息,Uranus用的是一种叫"普吕克射线"的几何编码方式,把每个像素对应的三维空间射线方向和位置都算出来,这样不管摄像头架在哪个角度,模型都能理解"我现在看到的是从哪个视角拍的"。

**普吕克坐标(Plücker Coordinates)*:一种用6个数值描述三维空间中一条直线(在这里是摄像机光线)的数学表示方法,能同时编码射线的方向和它离原点的距离。

论文里展示了UR5、ALOHA、AgiBot、ARX5、DROID这五种完全不同的机器人平台,都能用同一套骨架条件化方案来表示,这也是Uranus号称能做"跨embodiment"(跨机器人形态)的技术根基。

训练方式的转变:从一开始就教它"边走边看"

这一段可能是整篇论文里工程含量最高,但也最容易被忽略的部分。

很多做视频生成的团队,习惯先训练一个"双向"的模型,也就是这个模型在训练时能同时看到过去和未来的所有帧,然后再想办法把它改造成能一帧一帧往外吐的"因果"版本。这个改造过程通常很麻烦,还容易引入误差。

Uranus选择了一条更直接的路:从头到尾就按照"只能看过去,不能看未来"的方式训练,这个思路借鉴自大语言模型的训练方式。

**教师强制(Teacher Forcing)*:一种训练技巧,训练时给模型看真实的历史数据作为参考(而不是它自己生成的可能有误差的数据),这样能让训练更稳定,但也会造成训练和实际推理时的"输入分布"不一致。

具体做法是用一个精心设计的**因果注意力掩码*:一种限制神经网络"看"到哪些信息的机制,通过掩码把不该看到的位置屏蔽掉,让模型只能关注允许看到的历史数据,看不到未来。让每一个正在生成的目标帧,只能看到参考图像和之前已经生成好的历史帧,绝对看不到自己对应的真实答案,也看不到未来的帧。

这就像考试时监考老师会把后面几页试卷用纸挡住,你只能看到当前这道题和前面已经答过的题,绝对不能提前偷看后面的答案。如果不设这层掩码,模型训练时会"作弊",看到了本不该看到的未来信息,等真正上线推理的时候,它突然发现自己再也看不到那些"未来"了,就会因为训练和实际使用的场景不一致而表现失常,这就是论文里反复提到的"训练-测试差距"(exposure bias)问题。

除了因果掩码,Uranus还用了两个配套技巧。一个是"参考帧锚点",把最初的几张参考图像牢牢固定在序列开头,永远不会被历史记忆的滑动窗口挤掉,这样即使生成了很长的视频,模型也始终记得最初的场景长什么样。这个设计借鉴了大语言模型里的"注意力沉聚"(attention sink)现象,某些固定位置的token会持续吸引大量注意力,起到稳定锚点的作用。

另一个技巧是给每一帧用相对时间坐标而不是绝对坐标(专业叫法是latent-frame-relative RoPE),这样不管生成多长的视频,位置编码始终能保持一致,不会因为序列太长而"迷路"。

从慢到快:4步蒸馏和推理加速

一个训练好的模型如果每生成一帧都要几十步去噪,那实时交互根本无从谈起。Uranus用了一种叫**分布匹配蒸馏(DMD)*:一种模型压缩技术,让一个"学生模型"用更少的计算步骤去模仿一个"老师模型"生成结果的整体分布,而不是逐字逐句模仿老师的具体生成路径。的技术,把原本需要多步去噪的生成过程压缩到只需要4步。

但这里有个陷阱:如果只做分布匹配蒸馏,模型在自己生成的历史基础上继续生成时,误差会像滚雪球一样越滚越大,画面逐渐失真、摄像机视角开始漂移。

Uranus的解决办法是引入了**相位一致性模型(PCM)*:一种正则化约束技术,强制模型在不同去噪阶段的预测结果保持一致,防止生成轨迹因为压缩步骤而产生偏差。作为补充约束,同时用"自我滚动"(self-rollout)的方式训练,也就是让学生模型直接用自己生成的历史去训练,而不是用完美的真实历史,这样能进一步缩小训练和实际部署之间的差距。

工程团队还在底层做了大量优化:把算子编译融合、用CUDA Graph减少重复的启动开销、把关键的线性层换成FP8低精度计算、还专门重写了旋转位置编码(RoPE)的实现。这些优化叠加起来,让完整的30层DiT(扩散Transformer)推理速度提升了3倍多。加上把VAE解码器换成一个叫Flash-VAED的高效解码器,整体VAE解码吞吐量又提升了大约6倍。最终Uranus能做到24FPS的低延迟生成,蒸馏后的1.3B模型在H20显卡上达到10FPS的实时交互速度。

数据从哪来:超过3300小时的真实机器人数据

Uranus的训练数据来自AgiBot World Beta、AgiBot World 2026、DROID、RoboChallenge Table30 v1和v2等多个公开数据集,覆盖单臂、双臂、人形机器人等多种平台,总时长超过3300小时。

但原始数据远没有这么干净。论文里坦诚提到,很多公开数据集存在摄像头参数不准确、视频和机器人状态时间戳没对齐、甚至有些数据集根本没提供相机标定信息的问题。团队为此搭建了一套四阶段的数据清洗流水线:先统一格式,再检查数据完整性,然后想办法补全或修正相机标定参数,最后做几何一致性校验,也就是把机器人关节状态投影到画面上,和用AI分割模型(SAM 3)识别出的真实机械臂轮廓做对比,两者重合度太低的数据就被剔除。

这套流程用Ray和Daft两个开源框架搭建,Ray负责跨机器的任务调度和容错,Daft负责组织这些多模态的数据操作,两者配合能让整个清洗流程在本地小规模测试,也能无缝扩展到多节点集群上跑。

效果怎么样:和真实数据、和其他模型的对比

在WorldOlympiad这个专门评测真实世界视频世界模型的基准测试上,Uranus在物理规则遵守度、3D一致性、语义对齐、交互真实感这几个维度综合表现最好,拿到了0.722的总分,超过了Cosmos-Predict-2.5(0.712)等一众对比模型。

更直接的对比来自和GE-Sim 2.0的正面较量。研究团队特意挑选了100个来自AgiBotWorld-Beta、都用同一种机器人(AgiBot G1)完成的任务样本,让两个模型在完全相同的初始画面和动作轨迹下生成结果。结果显示,随着生成时长拉长,两个模型的画面质量都会下降,这是长序列预测的通病,但Uranus的下降速度明显更慢。在最后140到160秒这个区间,Uranus的PSNR(峰值信噪比,数值越高说明和真实画面越接近)还能维持在12.3左右,而GE-Sim 2.0已经跌到了7.1,差距超过5个点。SSIM(结构相似度)方面,Uranus是0.45,GE-Sim 2.0是0.20,差了一倍还多。

论文里的定性对比图也很直观,一个130秒的煮咖啡任务里,GE-Sim 2.0到后期画面已经严重扭曲变形,而Uranus依然能大致保持场景的可辨识度。

在开环一致性评测中(直接对比生成结果和真实执行轨迹),Uranus在训练集样本上有86%的一致率,但在完全没见过的测试集样本上跌到58%,这说明模型在熟悉场景里表现优秀,但面对陌生的场景和任务组合时,泛化能力还有明显提升空间。

闭环评测则更有说服力。研究团队让9个不同的机器人策略分别在RoboTwin真实仿真环境和Uranus虚拟世界里各跑15轮,对比每个策略的成功率排名。结果Uranus和真实环境之间的皮尔逊相关系数达到0.98,几乎完美线性相关,说明如果一个策略在Uranus里表现好,它大概率在真实(或真实仿真)环境里也表现好,Uranus具备了作为策略评测代理工具的潜力。

泛化能力:换了场景、换了任务、换了机器人会怎样

论文用四个维度测试了Uranus的泛化边界。

场景泛化方面,DROID数据集覆盖了13个不同机构收集的场景,团队用12个机构的数据训练,留出第13个机构完全没见过的场景做测试。结果显示Uranus在陌生场景里依然能完成任务,物体交互和最终结果都和真实执行保持一致。

轨迹泛化测试的是同一个场景同一个任务,但换一条全新的人类遥操作轨迹。Uranus能跟随这条新轨迹生成合理的画面,而不是简单回放训练时见过的固定动作。

任务泛化更有挑战性,团队从Table30数据集里留出20%(6个)从未在训练中出现的任务类型。结果喜忧参半:机械臂的运动轨迹能较好跟随,但物体交互的准确性开始打折扣,比如有个"打开台灯"的任务,机械臂确实按轨迹伸手过去了,但灯最终没亮,说明模型学会了"怎么动",但没完全学会"动了之后应该发生什么状态变化"。

具身泛化是最硬核的考验,测试用的是AgiBotWorld2026里的G2机器人,这个型号完全没出现在训练数据里,而且G2的头部还能转动,导致摄像头视角会随时间变化,这和训练数据里大多固定视角的设定完全不同。结果显示机械臂的大致运动轨迹能跟上,视角变化的方向也对,但转动角度不够精确,更明显的问题是物体交互失真,长时间生成后画面的背景和曝光也会逐渐漂移。

这几组结果放在一起看,能看出一个清晰的规律:Uranus对"怎么动"这件事学得相当扎实,不管场景怎么换、轨迹怎么变,机械臂的运动本身都能较好复现;但"动了之后世界发生了什么变化"这件事,尤其涉及物体抓取、接触、状态改变的细节,还是这套系统目前最大的短板。

写在后面

读完这篇论文,最让我意外的其实不是技术细节,而是团队在"局限性"章节里那种近乎自我批评的坦率。他们直接写道,模型学的是视觉观察层面的动力学,没有显式约束刚体、接触力这些物理规则,所以生成结果可能出现抓取失误、接触判断错误、物体状态变化不对这类问题。这种坦诚在很多论文里是看不到的,大部分工作只会展示成功案例。

还有一个细节值得单独拎出来说:论文附录里做了一个"动作后果预测"的实验,用一个专门在失败案例上训练过的Uranus模型,去判断一段候选动作最后是会成功还是失败。结果显示,光靠动作本身的统计特征来预测成功率,AUC只有0.68;但加上Uranus生成的特征之后,AUC提升到0.74。更有意思的是,如果把Uranus的特征打乱或者清零,预测效果直接崩到接近随机猜测的水平。这说明Uranus内部确实学到了某种"能预判后果"的表征,不只是在生成好看的画面,它对"这个动作大概率会不会成功"这件事,其实是有判断力的。这个发现有点出乎意料,因为它暗示视频生成模型的副产品,可能比生成本身更有价值。

另一个让我反复琢磨的地方,是论文最后提到的"分布式物理一致性"这个开放问题。一个物体被推动后具体滑动多远,取决于摩擦系数、质量这些视频模型压根看不到的隐藏物理参数,所以指望AI生成的结果和某一次真实录像完全对上号,本身可能就是个不合理的要求。更合理的评价标准,或许应该是看多次生成的结果是否符合真实世界里"可能发生的结果"的整体分布,而不是死磕某一条录像的复现精度。这个思路挺颠覆的,它其实是在说:我们过去评价世界模型的方式,可能问错了问题。

如果一个AI生成的世界永远无法和某一次真实录像完全重合,那我们该拿什么去衡量它是不是"足够真实"?

Q&A

Q1:Uranus是什么?

A:Uranus是D-Robotics团队开发的机器人世界模型,通过一个自回归扩散模型,根据输入的机械臂未来关节轨迹,实时生成对应的多视角视频画面,可以用作机器人策略训练和评估的虚拟仿真环境。

Q2:Uranus和传统的机器人仿真器有什么区别?

A:传统仿真器如MuJoCo需要工程师手动建立3D模型和物理规则,成本高、存在仿真到现实的差距。Uranus是数据驱动的,直接从超过3300小时的真实机器人视频中学习动态规律,不需要手动建模,能生成更接近真实的画面。

Q3:Uranus的生成速度有多快?

A:经过蒸馏优化后的1.3B参数模型可以做到24FPS的低延迟生成,在H20显卡上实测达到10FPS的实时交互速度,每次推理只需要4步去噪,一次生成对应4帧RGB画面的一个潜在帧。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐