医疗健康行业面临着需求 – 能力的结构化危机:预计到 2030 年,全球将短缺约 1000 万临床医生,每年将进行数十亿次诊断检查,但大量需求未得到满足,数亿次手术的访问缺口很大,以及昂贵的手术室 (OR) 效率低下 (以每分钟几十美元计) 。
因此,未来的医院必须实现自动化,其中的机器人技术可扩展临床医生的能力,提高程序吞吐量,降低可变性,并普及高质量护理。想象一下,自主成像机器人在患者解剖结构中导航,为未获得服务的数十亿人提供 X 光片,而在手术室中,“手术子任务自动化”负责处理重复性缝合,以便外科医生可以专注于关键决策。在病床边之外,服务机器人通过自主配送物资来恢复浪费的几分钟时间,从而为护士节省数英里的行走时间。
数据鸿沟和现实世界的限制
核心瓶颈在于数据。医院是异构、混乱和高风险的环境,每个设施都有不同的布局、工作流程、设备、患者群体和政策。在不同的医院中部署机器人以捕获详尽的现实世界数据,在经济和运营上都是不可行的。即使有可能,现实世界的数据也无法捕获每个边缘案例 — — 拥挤的走廊、紧急中断、罕见的并发症、压力下的人机交互 — — 根本不存在。在实时临床环境中测试每个场景不仅不安全,而且不切实际。
解决方案包括仿真、数字生和合成数据生成。
因此,仿真和合成数据生成并非可有可无,而是基础。虚拟医院环境允许机器人在部署前大规模、安全地体验数千种导航模式、工作流程变化、任务排列和人机交互场景。高保真仿真支持压力测试、长视野策略学习、罕见事件暴露和闭环训练,而这些是仅凭在现实世界中无法实现的。这种方法可加速开发、降低临床风险,并提供实现复杂医院系统的可靠、智能自动化所需的数据基板。
Project Rheo 引入了另一种方法。
开发者如何使用 Project Rheo Blueprint 来训练 AI 系统
开发者现在无需在医院内教授机器人,而是可以在自动化到来之前在仿真中训练医院。
本指南将介绍开发者如何使用 Project Rheo Blueprint 构建其首个智慧医院数字孪生,并开始训练物理 AI 系统。
作为智能医院自动化和物理 AI 开发的 blueprint,Project Rheo 结合了:
- 物理智能体:由 NVIDIA Isaac
GR00T视觉-语言-动作 (VLA) 模型和/或强化学习 (RL) 后训练驱动的现场操作和操作策略 (例如,手术托盘拾放、病例推车、手动工具处理) 。 - 数字智能体: 由手术基础模型驱动的监控和辅助智能体 (例如,由视觉语言模型 (VLM) 驱动的智能体,可观察实时摄像头流并提出行动建议) 。
- 数字孪生和 SimReady 资产: 使用 NVIDIA Isaac Sim / Isaac Lab 构建的 OR 仿真,用于安全地对任务、数据和策略进行迭代。
Rheo 支持两条互补的仿真轨道,每条轨道都针对工作流程的不同部分进行了优化:
- Isaac Lab-Arena 追踪: 用于 OR – Scale 任务的快速环境合成和迭代 (例如定位操作) ,您希望在其中以最少的摩擦交换场景、对象、实施方案和评估运行程序。
- Isaac Lab track:以任务为中心、基于管理器的环境,与用于精度操作的课程设计和大规模 RL 后训练自然搭配。
在下一节中,“数字医院”使用 Isaac Lab-Arena 合成模型 构建:选择命名素材,选择具身,附加任务,然后运行。
第 1 步:创建数字医院
将场景任务合成到 Isaac Lab-Arena 环境中
Rheo Blueprint 的核心功能之一是使用Isaac Lab-Arena模型。这使得开发者能够通过结合现有资产、机器人形态和任务定义来快速定义临床场景。
以下 Python 代码块演示了如何在术前场景中定义运动操纵任务,具体而言,让 Unitree G1 机器人拿起手术托盘并将其放置到推车上。
from isaaclab_arena.environments.isaaclab_arena_environment import IsaacLabArenaEnvironmentfrom isaaclab_arena.scene.scene import Scenefrom sim.tasks.g1_tray_pick_and_place_task import G1TrayPickPlaceTask# 1. Define the scene components (USD assets)background = asset_registry.get_asset_by_name("pre_op")()pick_up_object = asset_registry.get_asset_by_name("surgical_tray")()destination_cart = asset_registry.get_asset_by_name("cart")()# 2. Define the robot embodimentembodiment = asset_registry.get_asset_by_name("g1_wbc_joint")(enable_cameras=True)# 3. Compose the Scenescene = Scene(assets=[background, pick_up_object, destination_cart])# 4. Create the Environment by combining the Embodiment, Scene, and Taskenv = IsaacLabArenaEnvironment( name="g1_locomanip_tray_pick_and_place", embodiment=embodiment, scene=scene, task=G1TrayPickPlaceTask(pick_up_object, destination_cart, background, episode_length_s=30.0), teleop_device=None,) |
通过 Isaac Lab 进行精度操作
对于精确的多阶段双手操作 (如 Assemble Trocar ) ,Rheo 使用聚焦 Isaac Lab 轨道 ,其中 OR 生明确定义为场景配置:机器人、摄像头、USD 场景、物体和照明。
@configclassclass AssembleTrocarSceneCfg(InteractiveSceneCfg): """Scene configuration for the assemble_trocar task.""" robot: ArticulationCfg = G1RobotPresets.g1_29dof_dex3_base_fix(...) front_camera = CameraPresets.g1_front_camera(...) left_wrist_camera = CameraPresets.left_dex3_wrist_camera(...) right_wrist_camera = CameraPresets.right_dex3_wrist_camera(...) scene = AssetBaseCfg(..., spawn=UsdFileCfg(usd_path="...")) trocar_1 = RigidObjectCfg(..., spawn=UsdFileCfg(usd_path="..."), init_state=...) trocar_2 = RigidObjectCfg(..., spawn=UsdFileCfg(usd_path="..."), init_state=...) tray = ArticulationCfg(..., spawn=UsdFileCfg(usd_path="..."), init_state=..., actuators={}) light = AssetBaseCfg(..., spawn=sim_utils.DomeLightCfg(...)) |

在 Isaac Lab 中评估 Trocar 组件
第 2 步:获取专家体验
Rheo 使用适合每项任务的设备,将这种体验捕捉为仿真演示。
录制演示以进行操纵 (Meta Quest)
对于手术托盘拾放和病例推车等任务:
./workflows/rheo/docker/run_docker.sh -g1.6 \ python scripts/sim/record_demos_localmanip.py \ --dataset_file /datasets/demo.hdf5 \ --num_demos 1 \ --num_success_steps 50 \ --enable_pinocchio \ --enable_cameras \ --xr \ --teleop_device motion_controllers \ g1_locomanip_tray_pick_and_place \ --object surgical_tray \ --embodiment g1_wbc_pink |
关键设计点:记录数据的相同运行器也与之后的合成生成保持一致 (--mimic) ,减少格式漂移。
录制精确手动操作的演示 (Meta Quest)
对于 Assemble Trocar 任务 ( GR00T N1.5 微调/ RL 后训练轨道) :
./workflows/rheo/docker/run_docker.sh -g1.5 \ python scripts/sim/record_demos_assemble_trocar.py \ --task Isaac-Assemble-Trocar-G129-Dex3-Teleop \ --teleop_device motion_controllers \ --enable_pinocchio \ --enable_cameras \ --num_demos 1 \ --xr |
第 3 步:倍增合成数据使用体验
在您进行了少量成功的演示后,提高覆盖率的最快方法就是系统地实现多样化。
Rheo 支持使用 Isaac Lab Mimic/ SkillGen 式工作流生成仿真驱动的合成数据,用于本地操作任务。
3a) 回放演示 (完整性检查)
./workflows/rheo/docker/run_docker.sh -g1.6 \ python scripts/sim/replay_demos.py \ --dataset_file /datasets/demo.hdf5 \ --enable_cameras \ g1_locomanip_tray_pick_and_place \ --object surgical_tray \ --embodiment g1_wbc_pink |
3b) 标注演示 (为生成做好准备)
./workflows/rheo/docker/run_docker.sh -g1.6 \ python scripts/sim/annotate_demos.py \ --input_file /datasets/demo.hdf5 \ --output_file /datasets/demo_annotated.hdf5 \ --enable_cameras \ --mimic \ g1_locomanip_tray_pick_and_place \ --object surgical_tray \ --embodiment g1_wbc_pink |
3c) 生成更大的合成数据集
./workflows/rheo/docker/run_docker.sh -g1.6 \ python scripts/sim/generate_dataset.py \ --enable_cameras \ --mimic \ --num_steps 150 \ --headless \ --input_file /datasets/demo_annotated.hdf5 \ --output_file /datasets/demo_generated.hdf5 \ --generation_num_trials 10 \ g1_locomanip_tray_pick_and_place \ --object surgical_tray \ --embodiment g1_wbc_pink |
如果您标注了多个来源,则可以对其进行合并:
./workflows/rheo/docker/run_docker.sh -g1.6 \ python scripts/sim/merge_demos.py \ --input /datasets/demo_annotated*.hdf5 \ --output /datasets/demo_merged.hdf5 |
3d) 转换为 LeRobot 格式 (用于下游训练工具)
./workflows/rheo/docker/run_docker.sh -g1.6 \ python scripts/utils/convert_hdf5_to_lerobot.py \ --config scripts/config/g1_locomanip_dataset_config.yaml |
借助生成式传输实现跨场景泛化
Isaac for Healthcare v0.5 包含一个教程,该教程引用了 Cosmos Transfer 2.5+ 引导生成来增强训练数据。在随附的手术托盘拾放基准测试快照 (四个场景的成功率) 中,Cosmos 增强模型提高了场景切换的鲁棒性:
| 模型 | 场景 1 | 场景 2 | 场景 3 | 场景 4 |
| 基础模型 | 0.64 | 0.31 | 0.00 | 0.00 |
| Cosmos 增强模型 | 0.60 | 0.49 | 0.37 | 0.30 |
实际要点:域偏移是在医院环境中训练机器人的关键推动因素,医院环境中的照明、杂乱无章、房间几何图形等都有不同的模式。借助合成多样化,您可以在迭代成本低廉的情况下更早地强调这些变化。
第 4 步:训练物理 AI 策略
Rheo 支持两种互补训练路径:
- 监督式微调 (SFT) of GR00T 模型在精选数据集上
- 在线 RL 后训练 (通过 RL 基础设施进行近端策略优化,或通过 RLinf 进行 PPO) ,以在生产线上推进硬精度阶段
4a) GR00T 微调 (切入点:launch_finetune.py)
如需微调自定义具身,GR00T 文档将 gr00t/experiment/launch_finetune.py 用作切入点 (请参阅微调自定义具身 (“NEW_EMBODIMENT”)。
export NUM_GPUS=1CUDA_VISIBLE_DEVICES=0 python \ gr00t/experiment/launch_finetune.py \ --base-model-path nvidia/GR00T-N1.6-3B \ --dataset-path <your-lerobot-v2-dataset> \ --embodiment-tag NEW_EMBODIMENT \ --modality-config-path <your-modality-config>.py \ --num-gpus $NUM_GPUS \ --output-dir <output-dir> \ --save-steps 2000 \ --max-steps 2000 |
Rheo 提供特定于任务的模态定义:
- 运动/ 操纵:
custom_g1_locomanip_modality_config.py (一个 --modality-config-path模块,使用ego_view视频以及 G1 状态/ 操作键 (包括导航命令) 注册新的EMBODIMENT模式配置) 。 - 操作 (Assemble Trocar):
gr00t_config.py(定义UnitreeG1SimDataConfig—trocar 数据集的视频/ 状态/ 动作键和 transforms—用于 trocar 微调和 RL 后训练工作流程) 。
4b) 用于精度阶段的在线 RL 后训练 (通过 RLinf 实现 PPO)
对于 Assemble Trocar,Rheo 提供了一个一站式启动程序:
bash /workspaces/workflows/rheo/scripts/sim/rl/train_gr00t_assemble_trocar.sh train \ --model_path /models/<your_gr00t_checkpoint> |
您可以扩展并行环境或降低内存偏移:
# scale up/down environmentsbash /workspaces/workflows/rheo/scripts/sim/rl/train_gr00t_assemble_trocar.sh train \ --model_path /models/<your_gr00t_checkpoint> \ env.train.total_num_envs=32 env.eval.total_num_envs=4 # low-memory configurationbash /workspaces/workflows/rheo/scripts/sim/rl/train_gr00t_assemble_trocar.sh train \ --model_path /models/<your_gr00t_checkpoint> \ env.train.total_num_envs=8 actor.micro_batch_size=2 |
Rheo 的 RL 教程将“Assemble Trocar” (汽车组装) 分解为四个阶段 (提升+ 对齐+ 插入+ 放置) ,并报告在完成 RL 课程后的后期训练后,在更高难度的阶段获得了巨大的收益:
| 模型 | 第 1 阶段 | 第 1+ 2 阶段 | 第 1+ 2+ 3 阶段 | 阶段 1+ 2+ 3+ 4 |
| 基础模型 (SFT) | 83% | 72% | 32% | 29% |
| RL 后训练阶段 1 | 100% | – | – | – |
| RL 后训练阶段 2 | – | 92% | – | – |
| RL 后训练阶段 3 | – | – | 85% | – |
| RL 后训练阶段 4 | – | – | – | 82% |
第 5 步:部署前验证
5a) 任务级评估 (示例)
组装 Trocar 评估 ( GR00T N1.5,具有可选的 RL 检查点行为补丁) :
./workflows/rheo/docker/run_docker.sh -g1.5 \ python -u -m sim.examples.eval_assemble_trocar \ --enable_cameras \ --task Isaac-Assemble-Trocar-G129-Dex3-Joint \ --model_path /models/GR00T-N1.5-RL-Rheo-AssembleTrocar \ --rl_ckpt \ --num_episodes 10 \ --max_steps 500 |
手术托盘拾放评估 ( GR00T 闭环) :
./workflows/rheo/docker/run_docker.sh -g1.6 \ python scripts/sim/examples/policy_runner.py \ --policy_type gr00t_closedloop \ --policy_config_yaml_path scripts/config/g1_gr00t_closedloop_pick_and_place_config.yaml \ --num_steps 15000 \ --enable_cameras \ --success_hold_steps 150 \ g1_locomanip_tray_pick_and_place \ --object surgical_tray \ --embodiment g1_wbc_joint |
机箱购物车推送评估:
./workflows/rheo/docker/run_docker.sh -g1.6 \ python scripts/sim/examples/policy_runner.py \ --policy_type gr00t_closedloop \ --policy_config_yaml_path scripts/config/g1_gr00t_closedloop_push_cart_config.yaml \ --num_steps 20000 \ --enable_cameras \ --success_hold_steps 45 \ g1_locomanip_push_cart \ --object cart \ --embodiment g1_wbc_joint |
5b) 端到端集成烟雾测试 (WebRTC+ 触发器 API)
作为系统级检查,Rheo 提供了一个运行器,用于 (1) 通过 WebRTC 流式传输摄像头观察结果,以及 (2) 公开触发器端点,以便外部编排器决定何时执行动作。
./workflows/rheo/docker/run_docker.sh -g1.6 \ python scripts/sim/examples/triggered_policy_runner.py \ --enable_cameras \ --webrtc_cam \ --webrtc_host 0.0.0.0 \ --webrtc_port 8080 \ --webrtc_fps 30 \ --trigger_port 8081 \ --trigger_host 0.0.0.0 \ g1_locomanip_tray_pick_and_place \ --object surgical_tray \ --embodiment g1_wbc_joint |
要将基于 VLM 的数字智能体 UI 附加到此流中,请执行以下操作:
./tools/env_setup/install_vlm_surgical_agent_fx.sh |
然后打开http://127.0.0.1:8050并将 UI 直播连接到 WebRTC 服务器 (例如http://localhost:8080) 。
开始使用
要开始使用 Project Rheo 进行构建,请执行以下操作:
- 搭建 Isaac Sim 环境
- 导入或重建医院空间
- 录制一个专家工作流程
- 生成合成变体
- 在 Isaac Lab 中训练简单策略
- 运行验证场景
从小处着手。一个房间。一项任务。一个机器人。
工作流程由此自然扩展。
医疗健康机器人正在从静态设备转向自主学习系统。Rheo 项目将医院转变为持续的训练环境,使系统能够在与患者互动之前进行学习和适应。
是时候构建了。立即开始使用 Project Rheo Blueprint 构建新一代医疗 AI。
精选图片来源/ PeritasAi