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

摘要

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

简介

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

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

  • SO-ARM 入门工作流https://github.com/isaac-for-healthcare/i4h-workflows/blob/main/workflows/so_arm_starter/README.md
  • 自定义手术室教程https://github.com/isaac-for-healthcare/i4h-workflows/blob/main/tutorials/assets/bring_your_own_or/README.md

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

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 支持的版本) :

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"

在仿真环境中采集数据:

# 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 键:标记当前演示成功

模型训练流程

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

# 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 项目:端到端机器人学习平台
  • GitHub 项目地址https://github.com/isaac-for-healthcare/i4h-workflows
  • 官方文档https://isaac-for-healthcare.github.io/i4h-docs/
  • GR00T 模型页面https://hf.co/nvidia/GR00T-N1.5-3B
  • 硬件指南https://hf.co/docs/lerobot/so101
  • LeRobot 项目https://github.com/huggingface/lerobot
英文原文: https://huggingface.co/blog/lerobotxnvidia-healthcare

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

译者: Luke,  Hugging Face Fellow

Read more

【腾讯位置服务开发者征文大赛】AI+地图赛道来了,带你读懂选题方向、投稿要求与拿分思路

【腾讯位置服务开发者征文大赛】AI+地图赛道来了,带你读懂选题方向、投稿要求与拿分思路

🔥 个人主页:杨利杰YJlio❄️ 个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》《Python》《Kali Linux》《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更简单,让重复的工作自动化 文章目录 * 在这里插入图片描述 1. 【腾讯位置服务开发者征文大赛】AI+地图赛道来了,一文读懂选题方向、投稿要求与拿分思路 * 在这里插入图片描述 2. 为什么我觉得这场比赛值得认真参加 * 在这里插入图片描述 3. 这次征文,最值得写的方向有哪些 * 3.1 对话式地图交互 * 3.2 智能行程与多人出行规划 * 3.3 商业选址与区域潜力分析 * 3.4 AI 辅助地图开发 * 在这里插入图片描述 4. 想拿高分,文章一定要这么写 * 4.

什么是人工智能?AI、机器学习、深度学习的关系

什么是人工智能?AI、机器学习、深度学习的关系

文章目录 * 什么是人工智能 * 人工智能的定义 * 人工智能的分类 * 什么是机器学习 * 机器学习的基本概念 * 机器学习的工作流程 * 机器学习的主要类型 * 什么是深度学习 * 深度学习的基本概念 * 深度学习的优势 * 深度学习的应用领域 * AI、机器学习、深度学习的关系 * 三者的层次关系 * 三者的发展历程 * 如何选择合适的方法 * 实际应用案例分析 * 案例一:垃圾邮件过滤 * 案例二:图像识别 * 案例三:推荐系统 * 学习路径建议 * 第一阶段:打好基础 * 第二阶段:深入学习 * 第三阶段:实战提升 * 总结 本篇文章将带你深入理解人工智能的核心概念,厘清AI、机器学习、深度学习之间的关系,为后续的学习打下坚实的基础。 什么是人工智能 人工智能的定义 人工智能,英文名称为Artificial Intelligence,简称AI,这个概念最早由约翰·麦卡锡在1956年的达特茅斯会议上提出。那么什么是人工智能呢?简单来说,人工智能就

OpenClaw视觉操作实战:不写接口,让AI直接点按钮、操作软件

OpenClaw视觉操作实战:不写接口,让AI直接点按钮、操作软件

文章目录 * 前言 * 一、OpenClaw是啥?你的数字长工 * 二、视觉操作的核心:Snapshot快照系统 * 1. 告别元素定位地狱 * 2. 自适应界面变化 * 3. 跨应用操作 * 三、实战:手把手教你让AI自动填表 * 步骤1:安装与环境准备 * 步骤2:启动视觉模式 * 步骤3:编写自动化脚本 * 步骤4:进阶:自动下载报表 * 四、不止浏览器:桌面软件也能点 * 五、定时任务:让AI自己起床干活 * 六、数据安全:你的隐私留在本地 * 七、避坑指南:新手常踩的雷 * 1. 动态加载的坑 * 2. 弹窗处理 * 3. API额度控制 * 4. 元素编号会变 * 八、总结:从“码农”

从高原到云端:一个青海少年的AI农业创业之路

从高原到云端:一个青海少年的AI农业创业之路

“我曾翻越二十公里山路去上学,如今,我的代码正飞越万亩农田。”   一、高原的孩子,心里装着整个世界   我出生在青海的一座山村。村子不通公交,家到镇上中学要走两个多小时——二十余公里的崎岖山路,雨天泥泞,冬天结冰。书包里除了课本,还有母亲塞进去的馍馍和咸菜。   但山再高,也挡不住一颗想看世界的心。   从小,我痴迷历史与文学。《史记》里那些金戈铁马的故事,《红楼梦》中细腻入微的人情冷暖,让我在煤油灯下读到深夜。我内心敏感,常因一片云影掠过麦田、一声鹰啸划破长空而思绪万千。那时的我,以为人生只有两条路:要么走出高原,要么被高原埋没。     直到村里通了网。   那一年,我15岁。第一次用手机连上4G信号,点开一个叫“Python教程”的视频,从此命运悄然转向。   二、代码,是我翻山越岭的新脚力   高中三年,我白天上课,晚上自学编程。没有电脑,就用二手安卓机敲代码;没有老师,就靠B站、GitHub和Stack Overflow。