2026年3月16日
作者:Mingxin Zheng, Nic Ma and Mostafa Toloui
Project Rheo提供了一个通过使用NVIDIA Isaac Sim和Isaac Lab构建的高保真数字孪生来模拟和自动化医院工作流程的蓝图。它能够在物理部署前,为物理和数字代理实现快速原型设计、压力测试和策略学习。该工作流程涵盖环境组合、专家演示捕捉,以及为移动操作和精密双手操作任务生成大规模合成数据,并利用NVIDIA Isaac GR00T视觉-语言-动作模型和强化学习来实现在不同医院场景下的鲁棒泛化。开发者可以使用监督学习和在线强化学习(例如通过RLinf的PPO算法)对策略进行微调和后训练,通过任务级和端到端集成测试进行验证,并利用域随机化和生成式迁移来确保对现实医院环境变化的适应性。
医疗保健行业正面临结构性的需求-能力危机:预计到2030年,全球临床医生缺口约为1000万;每年有数十亿的诊断检查需求未能得到满足;数亿个手术存在巨大的可及性差距;以及成本高昂的手术室低效问题(每分钟损失数十美元)。因此,未来的医院必须能够实现自动化——通过机器人技术扩展临床医生的能力,提高手术吞吐量,减少 variability,并使高质量护理的获取更加普及。想象一下,自主成像机器人在患者解剖结构中导航,为数十亿得不到服务的人群提供X光服务;同时在手术室里,“手术子任务自动化”处理重复的缝合工作,让外科医生能专注于关键决策。在病床之外,服务机器人通过自主运送物资来挽回被浪费的每一分钟,为护士节省数英里的行走路程。
核心瓶颈在于数据。医院是异构、混乱且高风险的环境——每家机构都有不同的布局、工作流程、设备、患者群体和规章制度。在不同医院中部署机器人团队来收集详尽的现实世界数据,在经济和操作上都是不可行的。即使可能,覆盖所有边缘情况(拥挤的走廊、紧急中断、罕见并发症、压力下的人机交互)的现实世界数据也根本不存在。在真实的临床环境中测试每一个场景既不安全也不现实。解决方案就是仿真、数字孪生和合成数据生成。
因此,仿真和合成数据生成不是可选项,而是基础。虚拟医院环境允许机器人在部署前,安全且大规模地体验成千上万种导航模式、工作流程变化、任务排列和人类交互场景。高保真仿真能够实现在现实世界中无法完成的压力测试、长时程策略学习、罕见事件暴露和闭环训练。这种方法加速了开发,降低了临床风险,并为复杂医院系统中的可靠、智能自动化提供了所需的数据基础。Project Rheo引入了一种不同的方法。
开发者现在可以在自动化到来之前,先在仿真环境中“训练医院”。
本指南将引导开发者如何使用Project Rheo蓝图构建他们的第一个智能医院数字孪生,并开始训练物理AI系统。
Project Rheo是一个面向智能医院自动化和物理AI开发的蓝图,它结合了以下要素:
Rheo支持两种互补的仿真路径,每种都针对工作流程的不同部分进行了优化:
在下一节中,“数字医院”将使用Isaac Lab-Arena组合模型构建:选择指定资产,选择实体,附加任务,然后运行。
Rheo蓝图的核心特性之一是使用Isaac Lab-Arena模型快速组合新环境和任务。这允许开发者通过组合现有资产、机器人实体和任务定义来快速定义临床场景。
下面的Python代码块演示了如何定义一个移动操作任务——具体来说,让Unitree G1机器人在一个术前房间场景中拿起一个手术托盘并将其放在推车上。
from isaaclab_arena.environments.isaaclab_arena_environment import IsaacLabArenaEnvironment
from isaaclab_arena.scene.scene import Scene
from sim.tasks.g1_tray_pick_and_place_task import G1TrayPickPlaceTask
# 1. 定义场景组件(USD资产)
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. 定义机器人实体
embodiment = asset_registry.get_asset_by_name("g1_wbc_joint")(enable_cameras=True)
# 3. 组合场景
scene = Scene(assets=[background, pick_up_object, destination_cart])
# 4. 通过组合实体、场景和任务来创建环境
env = 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,
)对于精密的、多阶段的双手操作任务(例如,组装套管针),Rheo使用一个聚焦的Isaac Lab路径,其中手术室孪生被明确定义为一个场景配置:机器人、摄像头、USD场景、对象和照明。
@configclass
class AssembleTrocarSceneCfg(InteractiveSceneCfg):
"""为 assemble_trocar 任务配置场景。"""
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(...))Rheo通过在仿真中使用适合每个任务的设备来捕捉这些经验作为演示。
对于手术托盘取放和病例车推运等任务:
./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关键设计点:录制数据的同一个运行器也与后续的合成生成对齐,减少了格式差异。
对于“组装套管针”任务:
./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一旦有了一小组成功的演示,系统化地增加覆盖范围的最快方法是进行多样化。Rheo支持使用Isaac Lab Mimic / SkillGen风格流水线为移动操作任务生成仿真驱动的合成数据。
./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./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./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./workflows/rheo/docker/run_docker.sh -g1.6 \
python scripts/utils/convert_hdf5_to_lerobot.py \
--config scripts/config/g1_locomanip_dataset_config.yamlHealthcare 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 |
实际意义:域迁移是训练机器人在医院环境中工作的关键推动因素,因为医院环境具有不同的光照、杂乱程度、房间几何形状等模式。合成多样化让开发者可以在迭代成本低廉时,更早地对这些迁移进行压力测试。
Rheo支持两种互补的训练路径:
export NUM_GPUS=1
CUDA_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 2000Rheo提供特定任务的模态定义:
custom_g1_locomanip_modality_config.pygr00t_config.py对于“组装套管针”任务,Rheo提供一个即用型启动器:
bash /workspaces/workflows/rheo/scripts/sim/rl/train_gr00t_assemble_trocar.sh train \
--model_path /models/<your_gr00t_checkpoint>可以调整并行环境数量或为内存降低配置:
# 增加/减少环境数量
bash /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
# 低内存配置
bash /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=2Rheo的强化学习教程将“组装套管针”分解为四个阶段,并报告了在课程式强化学习后训练后,后期困难阶段的大幅提升:
模型 | 阶段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% |
组装套管针评估:
./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手术托盘取放评估:
./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作为系统级检查,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要将基于视觉语言模型的数字代理用户界面附加到此流:
./tools/env_setup/install_vlm_surgical_agent_fx.sh然后打开 http://127.0.0.1:8050 并将UI直播流连接到WebRTC服务器。
开始使用Project Rheo构建:
从小处着手。一个房间。一个任务。一个机器人。
工作流程自然会从此扩展。医疗机器人正超越静态设备,迈向自主、学习型系统。Project Rheo将医院转变为持续的训练环境,使系统能够在与患者交互之前就进行学习和适应。
现在是构建的时候了。立即使用Project Rheo蓝图开始设计您的下一代医疗AI。FINISHED
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。