由物理 AI 驱动的 AI 机器人时代已经来临。物理 AI 模型能够理解周围环境,并在物理世界中自主完成复杂的任务。许多复杂任务都难以编程(如灵巧的操作和人形机器人在崎岖的地形上运动),需要依赖在仿真环境中使用强化学习(RL)训练而成的生成式物理 AI 模型。
借助基于 NVIDIA Omniverse 的参考应用 NVIDIA Isaac Sim,开发者可以在遵守物理定律的虚拟环境中设计、仿真、测试和训练 AI 机器人和自主机器。
NVIDIA Isaac Sim 可帮助团队生成合成数据、训练机器人策略,并运行多种假设场景,以便在部署前验证整个机器人堆栈。
本文介绍了最新的 Isaac Sim 4.0 版本,其中包括 NVIDIA PhysX 5.4 和 Isaac Lab。Isaac Sim 4.0 现已开放下载,它基于 NVIDIA Omniverse Kit 106 构建,让开发者能够更轻松地控制工作流。
NVIDIA Isaac Sim 4.0 的新功能 Isaac Sim 4.0 提供强大的新功能并增强了现有功能,为您的机器人工作流提供强大助力,其中包括: 通过 PIP 加快安装速度 改进了基于向导的导入和系统兼容性检查器的可用性 新的资产、环境、机器人、环境传感器 新的 PhysX 功能,如仿真关节、TGS 求解器、残差可视化等 用于强化学习的多 GPU 和多节点功能 以下将对这些新功能进行详细介绍,并介绍在仿真阶段使用的全新 PhysX 和传感器功能。 通过 PIP 安装更快地上手 现在,您可以使用 Python 包管理器(例如 PIP)在本地或远程系统上安装 Isaac Sim。这极大地加速并简化了使用开发者所熟悉的相同开发环境的安装过程,在基于云的 IDE(如 Jupyter)中轻松部署 Isaac Sim。 此外,您现在还可以使用兼容性检查器来检查系统需求和兼容性,在开始安装之前获得即时反馈: https://docs.omniverse.nvidia.com/isaacsim/latest/installation/requirements.html#isaac-sim-compatibility-checker 改进基于向导的导入的可用性 每次仿真都需要先构建虚拟环境和其中的机器人。为了加快这项工作,Isaac Sim 现在提供了一个向导,引导用户如何在预先设计的环境中导入和调优机器人。向导中还有大量其它选项文档,最常见的工具包括 CAD 导入器、传感器、装配机器人等。 图 1. Isaac Sim 中的导入向导提供了用于导入 机器人的相关工具、每个工具的离线指南 以及一系列按顺序排列的建议步骤 更多资产库 使用以下新资产进行仿真: 预建仓库模型 机器人模型 人形机器人 传感器 用于仿真和检查关节的 全新 PhysX 5.4 功能 一旦场景构建完成、机器人在环境中设置完毕,您就可以在机器人模型上使用 NVIDIA PhysX 5.4 的一些新功能。 例如,“仿真关节”功能让您可以对机器人的耦合关节位置进行建模。您可以对平行夹爪机制、四连杆、平行夹爪或机械手的机械耦合元件进行建模。仿真关节可以捕捉 URDF 规范关系: 关节位置 = 倍增器*参考关节位置 + 补偿 关节速度受到类似约束,并且相互作用是双向的。仿真关节为满足约束条件而施加的力会根据倍增器反馈给参考关节(即齿轮传动装置)。 图 2. 在 Isaac Sim 中仿真的用于机器人操作 的平行夹爪。可使用 “仿真关节” 功能 来仿真平行机制 通过在特定仿真场景中将机械臂定位到特定的姿势,“物理检查器”功能支持创建单个关节和最多关节。在实际仿真之前,团队还可以直观地检查碰撞和自由度。 图 3. “物理检查器” 用户界面显示了 ANYmal 四足机器人的腿部定位调整情况 全新仿真功能 仿真阶段的一些新功能旨在帮助增强物理和传感器仿真。 增强的物理仿真 物理仿真在机器人整体运动和性能中起着不可或缺的作用。Isaac Sim 4.0 中新的增强功能提供了更好的仿真、可视化和调试工具。 最新的 TGS 求解器采用了一种新模式,有助于提高求解器的收敛性和碰撞保真度。通过新引入的求解器选项,TGS 能够考虑重力和其它外力,并在每个 TGS 位置迭代(子步骤)中阐明关节动作,而不是在时间步开始时。在 “物理场景高级”选项或 USD PhysxSceneAPI EnableExternalForcesEveryIteration 属性中启用该模式: http://omniverse-docs.s3-website-us-east-1.amazonaws.com/omni_usd_schema_physics/106.0/class_physx_schema_physx_scene_a_p_i.html#a042cd436d556038793473c3bcc5b1d0c 对于高性能仿真,在求解器迭代次数和仿真保真度之间找到适当的平衡是非常重要的。新的残差报告功能可在时间步结束时显示与求解器收敛质量相对应的数据,从而帮助完成仿真调优。数据可以在物理场景中汇总查询,也可以按关节和最大坐标关节进行查询。 图 4. 移动机器人越过障碍物, 仿真数据可视化器显示相关仿真的残差数据 您不仅可以看到求解器的残差数据,还可以通过新的“仿真数据可视化窗口”检测位置和方向等仿真数据。支持的属性包括身体位置和方向、求解器残差等。欲了解更多信息,请参阅可视化工具文档: https://docs.omniverse.nvidia.com/extensions/latest/ext_physics/simulation-control/physics-settings.html 此外,还可以使用统一的 API 来查询刚体和关节链接的线性加速度和角加速度。例如,报告的值可用于计算惯性测量单元的仿真输出。 其它功能包括 SDF 碰撞改进、接触摩擦力报告等。 更好地支持传感器仿真 传感器是机器人感知堆栈的核心。Isaac Sim 拥有一套不断扩增的真实传感器模型库,可以仿真地面真实感知和基于物理的传感器。 最新版本包括对非可视材料的 RTX 支持,其中材料的光学特性扩展到非可视光谱,如红外线、无线电波和紫外线,从而实现了更先进的新型传感器建模。此外,您还可以利用基于 RTX 的雷达,这些雷达使用新型 RTX 非可视材料功能集,来准确地模拟雷达对不同类型材料和环境的响应。 此外,IMU 传感器后端现在兼容 Tensor API。这有助于将 IMU 传感器的物理后端与其它 Isaac Sim 传感器和节点统一起来,从而能够更一致地访问最新的物理数据。 基于 OmniGraph 的传感器管线的性能改进包括:只在需要时运行管线,而不是每帧都运行,从而减少了管线的开销。 利用 Isaac Lab 加速强化学习 基于 Isaac Sim 的 Isaac Lab 是一个统一、模块化、开源的机器人学习框架,旨在简化强化、仿真和演示学习以及运动规划等常见工作流。它集成了开源框架 Orbit 的功能,该框架由 NVIDIA、波士顿动力人工智能研究所、苏黎世联邦理工学院和多伦多大学联合开发。 Isaac Lab 利用 PyTorch 分布式框架在 Linux 上进行多 GPU 和多节点训练,帮助团队进行扩展。使用 OSMO 可以轻松地在异构环境上扩展这些作业,OSMO 是一个云原生协调平台,用于调度复杂的多阶段和多容器异构计算工作流。 当在多个 GPU 上运行时,可实现更高的 rollout FPS(如图 5 所示)。FPS 的提高意味着可以在相同的时间内生成更多的轨迹和经验,从而为模型提供更丰富的数据集以供其学习。与在单个 GPU 上进行训练相比,该模型可以更快地收敛并达到更高的性能水平。 图 5. 使用多个 GPU 进行强化学习时 每秒生成帧数的性能比较 在强化学习中,机器人必须执行大量相互独立的场景。当这些机器人在多个摄像头上执行任务时,对这些机器人的进展进行可视化可能会非常繁琐,而分块渲染有助于在单一视图中可视化所有这些场景。分块渲染的工作原理是将多个摄像头输出的图像串联起来,渲染出一张大图像,而不是每个摄像头生成的多张小图。 图 6. 分块渲染将多个摄像头的输出 合并为一张大图像 此外,对于有许多环境的大型强化学习场景,PhysX 5.4 中的新优化功能最多可将环境克隆速度提高到上一版本的 3 倍。 生态系统的采用情况 1X、Agility Robotics、波士顿动力人工智能研究所、波士顿动力、傅立叶、银河通用、逐际动力、星动纪元、Sanctuary AI 和优必选等领先的机器人开发商正在整合 Isaac Lab,用于开发下一代机器人和人形机器人。其中许多公司已经利用 Isaac Sim 在真实环境中测试了他们的机器人,并生成用于模型训练的合成数据。 了解波士顿动力公司与 NVIDIA 以及波士顿动力人工智能研究所合作开发 Spot 强化学习研究工具包: https://developer.nvidia.com/blog/closing-the-sim-to-real-gap-training-spot-quadruped-locomotion-with-nvidia-isaac-lab/; https://bostondynamics.com/products/extras/reinforcement-learning-research-kit/ 该工具包整合了先进的仿真、NVIDIA Jetson AI 技术和精准机器人控制,可高效地将四足机器人从虚拟环境过渡到真实世界的应用中。 Isaac Lab 在 BSD-3 许可下开源,可通过 GitHub 上的 isaac-sim/IsaacLab 获取: https://github.com/isaac-sim/IsaacLab 在 Isaac Sim 中 更好地支持 ROS 开发者 Isaac Sim 的最新版本为 ROS 开发者提供了丰富的新功能,使得在 Isaac Sim 中测试和仿真机器人变得前所未有的简单。首先是更易于使用,支持从 ROS2 节点导入 URDF,可在 URDF 文件或包含机器人描述的 ROS2 节点之间切换。对于 Cyclone DDS 用户,Isaac Sim 也在 Linux 系统上支持 Isaac ROS 或 Nav2 相关的工作流。 其它新功能包括: 简化并改进了端到端工作流,支持 ROS2 启动。 ROS2 服务质量,可通过 QoS 设置来配置任何 ROS 订阅者或发布者。 支持任何可用消息类型的 ROS2 发布者/订阅者和服务器/客户端。可用来连接系统中安装的任何可用消息以及自定义消息。 开始开发您的机器人解决方案 要想获取以下附加资源和参考架构的更新信息,来支持您的开发目标,请注册 NVIDIA 开发者计划: https://developer.nvidia.com/developer-program NVIDIA Isaac ROS 基于开源 ROS 2 软件框架构建,包含一套加速计算数据包和 AI 模型的集合,为世界各地的 ROS 开发者带来由 NVIDIA 赋能的加速。 NVIDIA Isaac Sim 是基于 NVIDIA Omniverse 构建的一款参考应用,可帮助开发者在基于物理的虚拟环境中设计、仿真、测试并训练 AI 机器人和自主机器。它包括用于机器人学习的轻量级应用 NVIDIA Isaac Lab。 NVIDIA Isaac Perceptor 是一个用于自主移动机器人(AMR)和自动导引车(AGV)的参考工作流。 NVIDIA Isaac Manipulator 为工业机械臂提供了全新的基础模型和参考工作流。 NVIDIA Jetson 是面向自主机器和嵌入式应用的领先平台。 加入 NVIDIA 机器人开发者论坛,通过有关 Isaac ROS 和 Isaac Sim 的自学培训和网络研讨会了解更多信息: https://forums.developer.nvidia.com/c/agx-autonomous-machines/55