使用 NVIDIA Isaac 构建医疗机器人:从仿真到部署

摘要

一篇实用指南,手把手教你如何采集数据、训练策略,并将自动化医疗机器人工作流程部署到真实硬件上。

简介

仿真一直是医学影像中弥补数据缺口的重要手段,但在医疗机器人领域,它过去往往速度太慢、系统割裂,或难以迁移到现实应用中。

NVIDIA Isaac for Healthcare 是一个专为 AI 医疗机器人开发者打造的框架,提供从数据采集到训练、评估再到部署的全流程工具链,适用于仿真环境与真实硬件。特别是在 v0.4 版本中,Isaac 提供了一个SO-ARM 入门工作流以及自定义手术室教程,帮助开发者低门槛快速构建并验证自动化手术机器人。

本文将带你深入了解这一工作流及其技术细节,帮助你前所未有地快速搭建手术助手机器人。

SO-ARM 入门工作流:构建一台手术辅助机器人

SO-ARM 入门工作流提供了一种全新的方式来探索手术辅助任务,提供了一整套从采集数据到部署到真实设备的端到端流程:

  • 使用 LeRobot 平台与 SO-ARM 采集真实与仿真数据

  • 微调 GR00t N1.5 模型,在 IsaacLab 中评估,然后部署到硬件

这套流程为开发者提供了一个安全、可重复的训练环境,可在进入真实手术室前不断优化机器人技能。

技术实现

该工作流采用三阶段流程,整合了仿真与真实硬件:

  1. 数据采集:结合仿真与真实环境中的遥操作演示,使用 SO101 和 LeRobot 平台

  2. 模型训练:在混合数据集上使用双摄像头视觉输入微调 GR00T N1.5

  3. 策略部署:基于 RTI DDS 通信协议,将训练好的模型实时运行在真实硬件上

值得一提的是,超过 93% 的策略训练数据来自仿真环境,充分说明仿真技术在缩小机器人数据鸿沟方面的优势。

仿真与现实结合的训练方法

现实世界的机器人训练成本高、操作难度大;而纯粹的仿真又很难完全还原现实复杂性。该流程通过约 70 个仿真演示和 10--20 个真实演示相结合,在模拟多样场景的同时,也保留真实数据的可靠性。最终训练出的策略能更好地泛化,不局限于单一环境。

硬件要求

工作流所需的硬件包括:

  • GPU:支持 RT Core 的架构 (Ampere 或更新) 且显存 ≥30GB,用于运行 GR00T N1.5 推理

  • SO-ARM101 Follower:6 自由度高精度机械臂,配备手腕摄像头与房间摄像头,采用 WOWROBO 视觉组件,并通过 3D 打印转接头固定

  • SO-ARM101 Leader:6 自由度的遥操作控制器,用于采集专家演示

所有仿真、训练和部署任务 (部署需使用 3 台计算机) 均可在一台DGX Spark上完成。

  • DGX Sparkhttps://www.nvidia.com/en-us/products/workstations/dgx-spark/

数据采集实现

在真实环境中采集数据 (适用于 SO-ARM101 硬件或任何 LeRobot 支持的版本) :

go 复制代码
python lerobot-record \ 
  --robot.type=so101_follower \ 
  --robot.port=<follower_port_id> \ 
  --robot.cameras="{wrist: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, room: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30}}" \ 
  --robot.id=so101_follower_arm \ 
  --teleop.type=so101_leader \ 
  --teleop.port=<leader_port_id> \ 
  --teleop.id=so101_leader_arm \ 
  --dataset.repo_id=<user>/surgical_assistance/surgical_assistance \ 
  --dataset.num_episodes=15 \ 
  --dataset.single_task="Prepare and hand surgical instruments to surgeon"

在仿真环境中采集数据:

go 复制代码
# With keyboard teleoperation
python -m simulation.environments.teleoperation_record \ 
  --enable_cameras \ 
  --record \ 
  --dataset_path=/path/to/save/dataset.hdf5 \ 
  --teleop_device=keyboard

# With SO-ARM101 leader arm 
python -m simulation.environments.teleoperation_record \ 
  --port=<your_leader_arm_port_id> \ 
  --enable_cameras \ 
  --record \ 
  --dataset_path=/path/to/save/dataset.hdf5

仿真遥操作控制

没有 SO-ARM101 硬件的用户可以使用键盘控制仿真机械臂:

  • 关节 1 (肩部旋转) :Q (+) / U (-)

  • 关节 2 (肩部抬起) :W (+) / I (-)

  • 关节 3 (肘部弯曲) :E (+) / O (-)

  • 关节 4 (手腕弯曲) :A (+) / J (-)

  • 关节 5 (手腕旋转) :S (+) / K (-)

  • 关节 6 (夹爪开合) :D (+) / L (-)

  • R 键:重置录制环境

  • N 键:标记当前演示成功

模型训练流程

完成仿真与真实数据采集后,将其转换并组合训练:

go 复制代码
# Convert simulation data to LeRobot format
python -m training.hdf5_to_lerobot \ 
  --repo_id=surgical_assistance_dataset \ 
  --hdf5_path=/path/to/your/sim_dataset.hdf5 \ 
  --task_description="Autonomous surgical instrument handling and preparation" 

# Fine-tune GR00T N1.5 on mixed dataset 
python -m training.gr00t_n1_5.train \ 
  --dataset_path /path/to/your/surgical_assistance_dataset \ 
  --output_dir /path/to/surgical_checkpoints \ 
  --data_config so100_dualcam

训练后的模型可处理自然语言指令,如"为医生准备手术刀"或"把镊子递给我",并控制机器人执行相应动作。借助 LeRobot 的最新版本 (0.4.0) ,你可以直接在 LeRobot 中原生训练 Gr00t N1.5!

完整的仿真采集-训练-评估流程

仿真在形成"采集→训练→评估→部署"的循环中最具价值。

从 v0.3 开始,IsaacLab 完整支持这一流程:

在仿真中生成合成数据

  • 使用键盘或硬件控制器遥操作机器人

  • 记录多摄像头视角、机器人状态与动作

  • 构建包含极端情况的多样化数据集,这些情况在现实中难以安全采集

训练和评估策略

  • 深度集成 Isaac Lab 的强化学习框架 (如 PPO)

  • 可同时运行数千个仿真环境

  • 内置轨迹分析与成功率指标

  • 支持在多种情境下进行统计验证

将模型转换为 TensorRT

  • 自动化优化以适应生产部署需求

  • 支持动态输入形状和多摄像头推理

  • 提供性能基准测试工具,确保实时运行能力

这极大地缩短了从实验到部署的周期,让 sim2real 成为日常开发的一部分。

快速开始

SO-ARM 入门工作流已开放,立即开始:

  1. 克隆代码库:git clone https://github.com/isaac-for-healthcare/i4h-workflows.git

  2. 选择工作流: 推荐从 SO-ARM 入门工作流开始,也可以探索其他工作流

  3. 运行初始化脚本: 每个工作流都带有自动化的安装脚本 (如 tools/env_setup_so_arm_starter.sh)

资源链接

  • GitHub 项目地址:完整工作流实现

  • 官方文档:安装与使用说明

  • GR00T 模型页面:预训练模型下载

  • 硬件指南:SO-ARM101 安装配置说明

  • LeRobot 项目:端到端机器人学习平台

英文原文: https://huggingface.co/blog/lerobotxnvidia-healthcare

原文作者: Steven Palma, Andres Diaz-Pinto

译者: Luke, Hugging Face Fellow

相关推荐
hhwyqwqhhwy3 小时前
kconfig 驱动开发
驱动开发
小麦嵌入式5 小时前
Linux驱动开发实战(十三):RGB LED驱动并发控制——自旋锁与信号量对比详解
linux·c语言·驱动开发·stm32·单片机·嵌入式硬件·物联网
CES_Asia6 小时前
2026科技热点预言:CES Asia“具身智能”展区已成产业风向标
大数据·人工智能·科技·机器人
淮北也生橘126 小时前
Linux驱动开发:移植一个MIPI摄像头驱动并将其点亮(基于Sstar 2355平台)
linux·运维·驱动开发·嵌入式linux
乔碧萝成都分萝6 小时前
十八、使用class分类管理设备
linux·驱动开发·嵌入式
小妖同学学AI7 小时前
开源AI语音机器人小智Xiaozhi-ESP32:低成本构建个人智能助理
人工智能·机器人·开源
驱动开发0077 小时前
UVC 红外相机初始化流程 setup包解析
驱动开发·数码相机·云计算·usb重定向
Venus-ww7 小时前
对多连杆机器人进行运动学正解与逆解的建模过程
线性代数·机器人
Saniffer_SH7 小时前
【每日一题】笔记本电脑上从U盘拷贝文件到M.2 SSD过程中为什么链路还会偶尔进入L1.2低功耗?
服务器·网络·人工智能·驱动开发·单片机·嵌入式硬件·电脑