前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >机器人仿真哪家强?NVIDIA Isaac平台为何能成为行业标杆?

机器人仿真哪家强?NVIDIA Isaac平台为何能成为行业标杆?

作者头像
GPUS Lady
发布于 2025-05-09 03:29:04
发布于 2025-05-09 03:29:04
1820
举报
文章被收录于专栏:GPUS开发者GPUS开发者

ISAAC是目前基于NVIDIA计算设备的最强机器人仿真平台。从2017年发布至今,已经有过多次的版本与名称的调整,主要因为机器人仿真领域的技术变化跨度太大,加上NVIDIA在这方面的求好心切,但对大部分开发者来说也会造成不小困扰,特别是“从哪下手”、“如何上手”两个最基本的问题。

本文的目的,就是清楚地为大家解析Isaac平台的历史遗留问题,以及目前的主要生态板块资源,让大家能更清晰地使用 Isacc 平台开启机器人全栈仿真的工作。

首先我们先列出 Isaac 资源的发展历史,这样就能一目了然地看出历史遗留的问题,主要分为以下三个阶段:

1.起源与早期版本(2017-2018)

-2017年:NVIDIA在GTC大会上首次推出Isaac SDK,定位为机器人开发平台,支持AI驱动的自主机器人开发。

-2018年:发布Isaac Sim的早期版本(基于Unreal Engine),提供机器人仿真环境。

2.扩展与生态构建(2019-2021)

-Isaac Gym(2020年):专为机器人强化学习设计的高性能物理仿真平台,支持大规模并行训练。

-Isaac SDK更新:增加对ROS 2的支持,强化AI模型部署能力(如TensorRT优化)。

-Jetson AGX Xavier:硬件平台与Isaac深度集成,推动边缘AI机器人落地。

3.功能整合与工具链完善(2022-2024)

-Isaac Sim 2022.1+:升级到Omniverse平台,支持USD格式和多模态协作仿真。

-Isaac Lab(2022年):基于Isaac Sim的强化学习研究工具包,简化RL实验流程。

-Isaac ORT(Open Robot Trainer):开源强化学习训练框架,与Isaac Gym互补。

4.重新调整(2025)

-将Omniverse平台定位成建构OpenUSD通用场景描述与支持RTX的整合平台

-将Isaac Sim平台从Omniverse中抽离出来,恢复独立软件的操作方式。

-将IsaacSim 平台做更结构化的调整,区分为以下三大板块:

(1)专属CUDA加速库与AI模型,包括以下四大块:

  • Isaac ROS:构建NVIDIA CUDA加速计算包和AI模型的集合,旨在简化和加快高级AI机器人应用程序的开发
  • Isaac Manipulator:基于Isaac ROS构建,能够开发出能够无缝感知、理解和与环境交互的人工智能机器人手臂。
  • Isaac Perceptor:基于Isaac ROS的感知库,能够快速开发先进的自主移动机器人(AMR),这些机器人可以在仓库或工厂等非结构化环境中感知、定位和操作。
  • Isaac GR00T:用于通用机器人基础模型和数据管道的研究倡议和开发平台,以加速仿人机器人。

(2)仿真与机器人学习的开发工具,在基于物理的虚拟环境中设计、模拟、测试和训练基于人工智能的机器人和自主机器。包括以下两部分:

  • Isaac Sim模拟工具:帮助您在基于物理的虚拟环境中设计、模拟、测试和训练基于人工智能的机器人和自主机器
  • Isaac Lab实验室:这是基于Isaac Sim构建的轻量级的示例模拟环境,并针对机器人学习和机器人基础模型训练进行了优化。

(3)NVIDIA加速系统:NVIDIA的三个计算平台简化并加速了开发人员的工作流程:

  • NVIDIA DGX™系统:用于构建机器人的AI模型;
  • NVIDIA OVX™系统:用于模拟、测试和训练;
  • NVIDIA AGX™系统:用了部署和运行机器人。

在最新调整的状况中,发现原本提供强化学习的Isaac Gym与机器人算法的Isacc SDK都并没有在描述的列表中。其中Isaac SDK在2023年底最后的更新之后,就再也看不到任何官方的信息,目前看来应该是拆分到CUDA加速库与模型的板块中。至于Isaac Gym的部分,我们访问https://developer.nvidia.com/isaac-gym 官网时出现“Deprecated(弃用)”的信息,请转向使用 Isaac Lab。

目前的总体策略就是简化成以Isaac Sim作为智能机器人的整合仿真开发平台,如下截屏中间的部分,将 Design、Tune、Train、Deploy四大功能全部集于一身:

-Design部分:透过USD(通用场景描述)技术,最大程度接受常见格式的结构设计文件,包括URDF(统一机器人描述格式)、MJCF(MuJoCo XML格式)等,这样可以非常高效地调用庞大的既有设计。

-Tune部分:提供一个基于GPU的高保真PhysX引擎,能够支持工业规模的多传感器RTX渲染。对GPU的直接访问使Isaac Sim能够支持各种传感器的模拟,包括摄像头、激光雷达和接触传感器。这反过来又促进了数字双胞胎的模拟,允许端到端管道在需要打开真正的机器人之前就启动运行。

-Train部分:提供一套使用Replicator收集合成数据的工具,通过Omnigraph编排模拟环境,调整PhysX模拟参数以匹配现实,最后通过Isaac Lab的强化学习(RL)等各种方法训练控制代理

-Deploy部分:Isaac Sim预装了所有必要的组件,不仅可以将代理部署到真实的机器人上,还可以构建与此类系统完全集成的应用程序。Omniverse为应用基础设施提供API,包括GUI创建和文件管理。Isaac Sim平台还提供ROS和ROS2的桥接API,用于实时机器人和模拟之间的直接通信,以及NVIDIA Isaac ROS,这是一组高性能、硬件加速的ROS 2包,用于制造自主机器人。

Isaac Sim模拟工具的目标是为了与产业软件进项协作与增强,因此其大部分组件都是开源可以免费独立使用。此外,Isaac Sim为C++和Python提供了灵活的API,可以根据开发人员的需求,不同程度上集成到项目中。例如,我们可以在OnShape中设计机器人原型,然后使用Isaac Sim去模拟它的传感器,并通过ROS或其他消息系统去控制平台。当然,我们也可以在Isaac Sim构建一个完整的、独立的应用程序!

至于协助开发的生态整合中,Isaac Sim还以VS Code和Jupyter Notebook的扩展形式提供直接的Python开发支持,并且附带了一个完整的、独立的、用于与机器人交互和模拟机器人的Omniverse应用程序,虽然这是用户与平台交互的最常见方式,但并非唯一的方法。最后,Isaac Sim也不限于同步操作,能通过ROS和ROS2与硬件在环操作,促进Sim-to-real的传输和数字孪生

此外,Isaac Sim使用Omniverse™Kit,这是一个用于构建原生Omniverse应用程序和微服务的工具包。Omniverse Kit通过一组轻量级插件提供了各种各样的功能。插件是用C接口编写的,以实现持久的API兼容性,同时还提供了一个Python解释器,用于可访问的脚本编写和自定义。

到目前为主,已经能感受到Isaac Sim有着强大的扩展与协作能力,当然相对来说也是比较复杂的,但还是非常值得有志于发展智能机器人应用的开发人员花时间开始使用,因为这套工具的确能让我们节省非常多的开发成本,

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
【Golang】使用Golang编写Hugo发布器
有这么一种说法,懒人创造了世界。他们懒得走路,所以发明了汽车;懒得爬楼梯,所以发明了电梯;懒得扇扇子,所以发明了电风扇、空调。懒说明了怕麻烦,博主其实就是一个怕麻烦的人。博主的博客Garfield-加菲的博客就是通过Hugo自动生成的静态网站,首先强调一点,我喜欢Hugo,它使我能够专注于markdown的编写,其他一切事情都交给Hugo,这也符合我懒的特点。
DDGarfield
2022/06/23
9700
【Golang】使用Golang编写Hugo发布器
golang 学习笔记
go语言完整的定义的变量的方法为 var 变量名 类型=值,var name string ="fuwei",可以简写为name:="fuwei"(这种只能在函数内使用,无法再包内使用),
付威
2021/05/06
1.1K0
Golang之http编程
Go原生支持http。import("net/http") Go的http服务性能和nginx比较接近 几行代码就可以实现一个web服务 服务端http package main import ( "fmt" "net/http" ) func Hello(w http.ResponseWriter, r *http.Request) { fmt.Println("handle hello") fmt.Fprintf(w, "hello") } func Login(w
超蛋lhy
2018/08/31
4730
golang小工具download公众号文章或其他网页图片
直接运行main.go文件或者通过go build ./打成windows下的exe包或者在linux下打成downloadPic包直接运行
山行AI
2019/11/21
1.4K0
golang小工具download公众号文章或其他网页图片
Golang 新手可能会踩的 50 个坑【转】
译文:https://github.com/wuYin/blog/blob/master/50-shades-of-golang-traps-gotchas-mistakes.md
landv
2018/11/23
2.1K0
go语言goquery下载图片实例「建议收藏」
cd $GOPATH/bin 编译:go build crawl 运行:./crawl –img_path=/data/pic
全栈程序员站长
2022/07/25
3950
用go语言爬取珍爱网 | 第二回
昨天我们一起爬取珍爱网首页,拿到了城市列表页面,接下来在返回体城市列表中提取城市和url,即下图中的a标签里的href的值和innerText值。
我的小碗汤
2018/08/22
4800
用go语言爬取珍爱网 | 第二回
golang的xml、json解析
xml golang的xml处理主要应用Unmarshal、Marshal方法实现,解析一个xml到struct如下,首先是xml文件: <?xml version="1.0" encoding="u
用户1141560
2017/12/26
3.2K0
golang的xml、json解析
go语言微信公众号开发后台接口封装
业余时间做了个有意思的小功能,每天早上7点准时给发天气预报,每晚8点发布一条英语说说,提醒自己不能忘记学习。
杨永贞
2020/08/04
2.2K0
Go语言多线程爬虫与代理IP反爬
有个朋友想用Go语言编写一个多线程爬虫,并且使用代理IP来应对反爬措施。多线程在Go中通常是通过goroutine实现的,所以应该使用goroutine来并发处理多个网页的抓取。然后,代理IP的话,可能需要一个代理池,从中随机选择代理来发送请求,避免同一个IP被封锁。大体思路就是这样,具体看我下面实操吧。
华科云商小徐
2025/05/12
950
Rust vs Go:常用语法对比(六)
res has type *http.Response. buffer has type []byte. It is idiomatic and strongly recommended to check errors at each step.
fliter
2023/09/05
2350
Rust vs Go:常用语法对比(六)
golang 基础编程
map 是一种无序的键值对, 它是数据结构 hash 表的一种实现方式,类似 Python 中的字典
全栈程序员站长
2022/07/19
1.3K0
golang 基础编程
Golang语言调用百度帐号
1:你要注册一个开发者,创建应用,填写完基本信息之后就要填写回调地址了 2:选择右上角的管理控制台---选择左下角的 其他API -- 选择安全设置--授权回调页 3:测试代码 如下: package main import ( // 自己引包 ) type AccessToken struct { AccessToken string `json:"access_token"` ExpiresIn int `json:"expires_in"` Sessi
李海彬
2018/03/21
7110
Golang 读、写文件
这种方式每次都会覆盖 test.txt内容,如果test.txt文件不存在会创建。
孤烟
2020/09/27
2.4K0
Go语言的多线程实现与应用案例
Go语言中的Goroutine是一种轻量级的线程,它比传统的操作系统线程更轻量级,更易于管理。Goroutine的创建和调度由Go语言的运行时系统自动管理,开发者只需关注业务逻辑的实现。
GeekLiHua
2024/08/30
2340
golang ioutil io工具
func ReadAll(r io.Reader) ([]byte, error)
copy_left
2019/08/23
7190
Go语言下载、安装、配置、使用
Go语言(Golang,The Go Programming Language),是谷歌2009发布的第二款开源编程语言。2009年7月份,谷歌曾发布了Simple语言,它是用来开发Android应用。
阳光岛主
2019/02/18
2K0
Go语言下载、安装、配置、使用
golang语言常见范式
最近花了一个星期的时间看完了《Go语言程序设计》这本书,这本书不愧是大师的作品,写得很好。看过之后对golang语言的理解更深刻了。下面将书中提到的一些关键语言范式记录下来以备忘。 常见范式 普通for循环 var s, sep string for i := 0; i < len(os.Args); i++ { s += sep + os.Args[i] sep = " " } fmt.Println(s) for配合range var s, sep string for _, arg
jeremyxu
2018/05/10
2.1K0
Golang语言执行linux命令行
这个在开发中会经常用到: package main import ( "fmt" "io/ioutil" "os/exec" "time" ) func run() { cmd := exec.Command("/bin/sh", "-c", "ping 127.0.0.1") _, err := cmd.Output() if err != nil { panic(err.Error()) } if err := cm
李海彬
2018/03/20
3.4K0
Rust vs Go:常用语法对比(八)
题目来自 Golang vs. Rust: Which Programming Language To Choose in 2023?[1] 141. Iterate in sequence over
fliter
2023/09/05
3540
Rust vs Go:常用语法对比(八)
相关推荐
【Golang】使用Golang编写Hugo发布器
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档