Genesis:一個(gè)革命性的物理學(xué)和具身人工智能平臺

最近一個(gè)新的AI框架橫空出世,可以結(jié)合物理現(xiàn)象與人工智能生成更真實(shí)的視覺效果。在這篇文章中,將對 Genesis 進(jìn)行概述。
Genesis 是一個(gè)前沿的物理平臺,旨在推動(dòng)通用機(jī)器人、具身人工智能和物理人工智能應(yīng)用的進(jìn)步。作為一個(gè)多功能工具集,包含:
- 通用物理引擎:一款從頭開始精心重新設(shè)計(jì)的最先進(jìn)物理引擎,用于模擬多種材料和復(fù)雜的物理現(xiàn)象。
- 機(jī)器人仿真平臺:一個(gè)輕量級、超快速、Pythonic 和用戶友好的界面,旨在實(shí)現(xiàn)無縫的機(jī)器人仿真。
- 照片真實(shí)感渲染系統(tǒng):一個(gè)強(qiáng)大且快速的渲染系統(tǒng),能夠提供高質(zhì)量的視覺效果。
- 生成數(shù)據(jù)引擎:一個(gè)變革性工具,將自然語言提示轉(zhuǎn)換為各種數(shù)據(jù)模式。
在其核心,Genesis 將多個(gè)先進(jìn)的物理求解器集成到一個(gè)統(tǒng)一的框架中,提供無與倫比的仿真能力。這一強(qiáng)大的基礎(chǔ)得到了一個(gè)生成代理框架的補(bǔ)充,旨在自動(dòng)化數(shù)據(jù)生成,推動(dòng)機(jī)器人研究及其他領(lǐng)域的邊界。
主要特點(diǎn)
- 統(tǒng)一物理模擬:基于通用物理引擎,Genesis 匯集了最先進(jìn)的求解器,以卓越的準(zhǔn)確性和保真度模擬各種物理場景。
- 生成框架:生成代理框架作為一個(gè)模塊化系統(tǒng)運(yùn)作,結(jié)合了各種生成模塊以處理多樣的數(shù)據(jù)模式。這些模塊由一個(gè)高級代理進(jìn)行路由, seamlessly 整合現(xiàn)有研究和正在進(jìn)行的開發(fā)。
- 開源無障礙:物理引擎和模擬平臺是開源的,允許研究人員和開發(fā)者自由探索、實(shí)驗(yàn)和創(chuàng)新。生成特性將逐步推出以便更廣泛的訪問。
- 照片級真實(shí)感渲染:Genesis 結(jié)合了超快速的渲染能力和視覺上令人驚嘆的結(jié)果,使模擬更加身臨其境和真實(shí)。
使命
Genesis 受到一套遠(yuǎn)見卓識的目標(biāo)的指導(dǎo):
- 可及性:降低物理模擬的障礙,民主化機(jī)器人研究,促進(jìn)創(chuàng)新的包容性環(huán)境。
- 統(tǒng)一:在一個(gè)統(tǒng)一的框架內(nèi)整合多種物理求解器,以虛擬方式復(fù)制物理世界,具有無與倫比的物理、視覺和感官真實(shí)感。
- 自動(dòng)化:最小化人類在數(shù)據(jù)生成中的努力,促進(jìn)機(jī)器人和其他領(lǐng)域的自主和自我維持的數(shù)據(jù)生態(tài)系統(tǒng)。
安裝
先決條件
- Python:
3.9+ - Pytorch
各個(gè)系統(tǒng)支持的功能如下:

pip install genesis-world
代碼示例
import genesis as gs
gs.init(backend=gs.cpu)
后端設(shè)備
Genesis 本質(zhì)上是跨平臺的,支持各種后端設(shè)備。默認(rèn)情況下,它使用 gs.cpu,如果需要 GPU 加速的并行仿真,可以切換到其他后端,例如:
gs.cuda:支持 CUDA 的 NVIDIA GPU。gs.vulkan:基于 Vulkan 的后端gs.metal:針對蘋果硅設(shè)備進(jìn)行了優(yōu)化。gs.gpu:一個(gè)方便的快捷方式,Genesis 為系統(tǒng)選擇最佳后端(例如,如果可用則為gs.cuda,或?qū)τ?Apple Silicon 則為gs.metal)。
精度等級
Genesis 默認(rèn)為 f32 精度。對于需要更高精度的應(yīng)用,可以通過在設(shè)置中指定 precision='64' 來選擇 f64。
日志級別
一旦初始化,Genesis 將在終端中提供日志輸出,分享詳細(xì)的系統(tǒng)信息和與 Genesis 相關(guān)的更新,例如其當(dāng)前版本。可以控制此輸出的詳細(xì)程度:
Default:詳細(xì)日志Reduced output:將logging_level='warning'設(shè)置為抑制詳細(xì)日志,僅顯示警告和錯(cuò)誤。
配色方案
Genesis 的日志記錄器支持可自定義的顏色主題,以適應(yīng)不同的終端環(huán)境:
dark:默認(rèn)主題,針對深色背景終端進(jìn)行了優(yōu)化。light:適用于明亮背景的終端的較淺色調(diào)。dumb:適合喜歡簡約風(fēng)格用戶的黑白輸出。
通過這些靈活的選項(xiàng),Genesis 確保在多樣化的環(huán)境和工作流程中提供無縫且個(gè)性化的用戶體驗(yàn)。
scene = gs.Scene()
場景是一個(gè)封裝兩個(gè)關(guān)鍵組件的包裝器:
模擬器對象 Simulator Object:處理所有底層物理求解器以管理物理模擬。可視化對象 Visualizer Object:管理與可視化相關(guān)的概念和渲染。
在設(shè)置場景時(shí),可以配置各種物理求解器參數(shù)以自定義模擬。以下是一個(gè)演示更復(fù)雜配置的示例:
scene = gs.Scene(
sim_options=gs.options.SimOptions(
dt=0.01,
gravity=(0, 0, -10.0),
),
show_viewer=True,
viewer_options=gs.options.ViewerOptions(
camera_pos=(3.5, 0.0, 2.5),
camera_lookat=(0.0, 0.0, 0.5),
camera_fov=40,
),
)
plane = scene.add_entity(gs.morphs.Plane())
franka = scene.add_entity(
gs.morphs.MJCF(file='xml/franka_emika_panda/panda.xml'),
)
在 Genesis 中,所有對象和機(jī)器人都被表示為實(shí)體。Genesis 是完全面向?qū)ο蟮模试S通過這些實(shí)體對象的方法直接與它們交互,而無需依賴句柄或全局分配的 ID。
add_entity 的第一個(gè)參數(shù)是 morph。在 Genesis 中,morph 是一個(gè)混合概念,封裝了實(shí)體的幾何形狀和姿態(tài)信息。通過使用不同的 morph,可以從形狀原語、網(wǎng)格、URDF、MJCF、地形或軟機(jī)器人描述文件創(chuàng)建 Genesis 實(shí)體。
franka = scene.add_entity(
gs.morphs.MJCF(
file = 'xml/franka_emika_panda/panda.xml'
pos = (0, 0, 0),
euler = (0, 0, 90), # we follow scipy's extrinsic x-y-z rotation convention, in degrees,
# quat = (1.0, 0.0, 0.0, 0.0), # we use w-x-y-z convention for quaternions,
scale = 1.0,
),
)
scene.build()
for i in range(1000):
scene.step()
一旦所有內(nèi)容都添加完畢,就可以開始模擬。在運(yùn)行之前,需要通過調(diào)用 scene.build() 來構(gòu)建場景。此步驟至關(guān)重要,因?yàn)?Genesis 使用即時(shí)編譯 (JIT) 技術(shù)動(dòng)態(tài)編譯每次模擬運(yùn)行的 GPU 內(nèi)核。 scene.build() 過程通過以下方式初始化這一點(diǎn):
- 將所有組件放到位。
- 分配設(shè)備內(nèi)存。
- 創(chuàng)建模擬所需的數(shù)據(jù)字段。
構(gòu)建場景后,將啟動(dòng)一個(gè)交互式查看器以可視化模擬。查看器提供各種鍵盤快捷鍵以增強(qiáng)可用性,包括以下選項(xiàng):
- Video recording 視頻錄制。
- Taking screenshots 截屏。
- 在不同的可視化模式之間切換。
在不同的可視化模式之間切換。
Genesis 代表著一個(gè)不斷發(fā)展的生態(tài)系統(tǒng)。雖然基礎(chǔ)物理引擎和仿真平臺已經(jīng)作為開源工具可用。請繼續(xù)關(guān)注創(chuàng)世紀(jì)的發(fā)展,以塑造物理仿真和機(jī)器人技術(shù)的未來。