Simulación para desarrollar sistemas robóticos y automatizar hospitales

La atención médica enfrenta una crisis estructural de demanda y capacidad, con una proyección de escasez global de aproximadamente 10 millones de clínicos para 2030. Esta situación se ve agravada por miles de millones de exámenes diagnósticos anuales con una demanda significativa insatisfecha, junto a cientos de millones de procedimientos con grandes brechas de acceso y costosas ineficiencias en los quirófanos.

Por tanto, el futuro de los hospitales debe estar habilitado para la automatización, donde la robótica extiende la capacidad de los clínicos, aumenta el rendimiento de los procedimientos y democratiza el acceso a atención de alta calidad. Imaginemos robots de imagen autónomos que navegan por la anatomía del paciente para proporcionar radiografías a miles de millones no atendidos, mientras que en el quirófano, la ‘Automatización de Subtareas Quirúrgicas’ maneja suturas repetitivas, permitiendo que los cirujanos se concentren en decisiones críticas.

La brecha de datos y los límites del mundo real

El principal obstáculo es la falta de datos. Los hospitales son entornos heterogéneos, caóticos y de alto riesgo; cada instalación tiene diferentes diseños, flujos de trabajo y políticas. La implementación de flotas de robots en diversos hospitales para recopilar datos exhaustivos del mundo real resulta económicamente inviable.

Incluso si fuera posible, no existe un registro de datos del mundo real que capture cada caso extremo, como pasillos abarrotados o interrupciones de emergencia. Las pruebas de cada escenario en entornos clínicos vivos son inseguras e imprácticas.

La solución radica en la simulación, el gemelo digital y la generación de datos sintéticos.

Cómo los desarrolladores pueden usar el plan de Proyecto Rheo para entrenar sistemas de IA

En lugar de enseñar a los robots dentro de los hospitales, los desarrolladores pueden ahora entrenar hospitales en simulación antes de que la automatización llegue.

Este guía detalla cómo los desarrolladores pueden utilizar el plan de Proyecto Rheo para construir su primer gemelo digital de hospital inteligente y comenzar a entrenar sistemas de IA física.

El Proyecto Rheo combina agentes físicos y digitales, así como activos de gemelo digital y SimReady, para facilitar la automatización en hospitales.

Agentes físicos: políticas de loco-manipulación y manipulación, impulsadas por modelos de visión-lenguaje-acción de NVIDIA Isaac y/o aprendizaje por refuerzo.

Agentes digitales: agentes de monitoreo y asistencia, que utilizan modelos de base quirúrgica.

Paso 1: Crear su hospital digital

Componer una escena + tarea en un entorno Isaac Lab-Arena

Una de las características clave del plan Rheo es la composición rápida de nuevos entornos y tareas. Esto permite a los desarrolladores definir un escenario clínico combinando activos existentes, un cuerpo robótico y una definición de tarea.

El siguiente bloque de código en Python demuestra cómo definir una tarea de loco-manipulación, específicamente, hacer que el robot Unitree G1 recoja una bandeja quirúrgica y la coloque sobre un carro.

 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. Definir los componentes de la escena (activos 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. Definir el cuerpo robótico embodiment = asset_registry.get_asset_by_name("g1_wbc_joint")(enable_cameras=True) # 3. Componer la escena scene = Scene(assets=[background, pick_up_object, destination_cart]) # 4. Crear el entorno combinando el cuerpo, la escena y la tarea 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, ) 

Manipulación precisa a través de Isaac Lab

Para la manipulación multi-etapa precisa, como Assemble Trocar, Rheo utiliza un enfoque centrado en el Isaac Lab track, donde el gemelo quirúrgico se define explícitamente como una configuración de escena.

 @configclass class AssembleTrocarSceneCfg(InteractiveSceneCfg): """Configuración de escena para la tarea 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(...)) 

Evaluando la ensambladura del Trocar en Isaac Lab

Paso 2: Capturar la experiencia de expertos

Rheo captura esta experiencia como demostraciones en simulación, utilizando dispositivos apropiados para cada tarea.

Grabar demostraciones para loco-manipulación (Meta Quest)

Para tareas como el pick-and-place de bandejas quirúrgicas y el empuje de carros:

 ./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 

Un aspecto clave es que el mismo ejecutor que graba datos también se alinea con la generación sintética posterior, reduciendo la desviación de formato.

Grabar demostraciones para manipulación bimanual precisa (Meta Quest)

Para la tarea Assemble Trocar:

 ./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 

Paso 3: Multiplicar la experiencia con datos sintéticos

Una vez que se tiene un pequeño conjunto de demostraciones exitosas, la forma más rápida de mejorar la cobertura es diversificar sistemáticamente.

Rheo admite la generación de datos sintéticos impulsada por simulación para tareas de loco-manipulación.

3a) Repetir demostraciones (verificación)

 ./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) Anotar demostraciones (preparar para la generación)

 ./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) Generar un conjunto de datos sintético más grande

 ./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 

Si se anotan múltiples fuentes, se pueden fusionar:

 ./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) Convertir al formato LeRobot (para herramientas de entrenamiento posteriores)

 ./workflows/rheo/docker/run_docker.sh -g1.6 python scripts/utils/convert_hdf5_to_lerobot.py --config scripts/config/g1_locomanip_dataset_config.yaml 

Generalización entre escenas con transferencia generativa

Isaac para Atención Médica v0.5 incluye un tutorial que hace referencia a Cosmos Transfer 2.5 + generación guiada para aumentar los datos de entrenamiento. En la instantánea de evaluación incluida para la tarea de Pick-and-Place de bandejas quirúrgicas, el modelo aumentado por Cosmos mejora la robustez en escenas cambiadas.

Modelo Escena 1 Escena 2 Escena 3 Escena 4
Modelo base 0.64 0.31 0.00 0.00
Modelo aumentado por Cosmos 0.60 0.49 0.37 0.30

La conclusión práctica es que el cambio de dominio es clave para entrenar un robot en entornos hospitalarios, donde los patrones de iluminación y geometría de las habitaciones son diferentes. La diversificación sintética permite abordar estos cambios antes, cuando la iteración es económica.

Paso 4: Entrenar políticas de IA física

Rheo apoya dos caminos de entrenamiento complementarios:

  1. Ajuste fino supervisado (SFT) de modelos GR00T en conjuntos de datos curados
  2. Entrenamiento en línea por refuerzo (RL) para mejorar etapas de precisión

4a) Ajuste fino de GR00T (punto de entrada: launch_finetune.py)

Para el ajuste fino en cuerpos personalizados, la documentación de GR00T utiliza gr00t/experiment/launch_finetune.py como punto de entrada.

 export NUM_GPUS=1 CUDA_VISIBLE_DEVICES=0 python gr00t/experiment/launch_finetune.py --base-model-path nvidia/GR00T-N1.6-3B --dataset-path  --embodiment-tag NEW_EMBODIMENT --modality-config-path .py --num-gpus $NUM_GPUS --output-dir  --save-steps 2000 --max-steps 2000 

Rheo proporciona definiciones de modalidad específicas para tareas:

  • Locomoción / loco-manipulación: custom_g1_locomanip_modality_config.py, que registra una configuración de modalidad NEW_EMBODIMENT.
  • Manipulación (Assemble Trocar): gr00t_config.py, que define UnitreeG1SimDataConfig.

4b) Entrenamiento en línea por refuerzo (PPO vía RLinf) para etapas de precisión

Para Assemble Trocar, Rheo proporciona un lanzador turnkey:

 bash /workspaces/workflows/rheo/scripts/sim/rl/train_gr00t_assemble_trocar.sh train --model_path /models/ 

Se pueden escalar entornos paralelos o reducir para memoria:

 # escalar entornos bash /workspaces/workflows/rheo/scripts/sim/rl/train_gr00t_assemble_trocar.sh train --model_path /models/ env.train.total_num_envs=32 env.eval.total_num_envs=4 # configuración de baja memoria bash /workspaces/workflows/rheo/scripts/sim/rl/train_gr00t_assemble_trocar.sh train --model_path /models/ env.train.total_num_envs=8 actor.micro_batch_size=2 

Rheo descompone Assemble Trocar en cuatro etapas y reporta grandes mejoras en etapas posteriores.

Paso 5: Validar antes del despliegue

5a) Evaluación a nivel de tarea (ejemplos)

La evaluación de Assemble Trocar (GR00T N1.5):

 ./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 

La evaluación de bandeja quirúrgica pick-and-place:

 ./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 

La evaluación de empuje de carro:

 ./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) Prueba de integración de extremo a extremo (WebRTC + API de activación)

Como chequeo a nivel de sistema, Rheo proporciona un ejecutor que transmite observaciones de cámara a través de WebRTC y expone un endpoint de activación.

 ./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 

Para adjuntar una interfaz de usuario basada en VLM a esta transmisión:

 ./tools/env_setup/install_vlm_surgical_agent_fx.sh 

Luego, abra http://127.0.0.1:8050 y conecte la transmisión de la interfaz de usuario al servidor WebRTC.

Comience

Para comenzar a construir con el Proyecto Rheo:

  • Establecer un entorno Isaac Sim
  • Importar o reconstruir un espacio hospitalario
  • Grabar un flujo de trabajo de un experto
  • Generar variaciones sintéticas
  • Entrenar una política simple en Isaac Lab
  • Ejecutar escenarios de validación

Empiece pequeño. Una habitación. Una tarea. Un robot.

El flujo de trabajo se escala naturalmente desde allí.

La robótica en salud está avanzando hacia sistemas autónomos y de aprendizaje. El Proyecto Rheo transforma hospitales en entornos de entrenamiento continuo, permitiendo que los sistemas aprendan y se adapten antes de interactuar con un paciente.

Es hora de construir. Comience a diseñar su próxima generación de IA médica con el plan del Proyecto Rheo hoy.

Crédito de imagen destacada/PeritasAi

Ilustración de un hombre mayor con auriculares y chaqueta