強(qiáng)化學(xué)習(xí)環(huán)境ISAAC GYM初步入門(mén)
背景介紹
Isaac Gym是一款由NVIDIA在2021年開(kāi)發(fā)的,用于強(qiáng)化學(xué)習(xí)研究的物理環(huán)境,當(dāng)前仍然處于Preview Release的階段 [1]。Isaac Gym最有特點(diǎn)的一點(diǎn)就是,允許開(kāi)發(fā)者使用GPU來(lái)運(yùn)行環(huán)境模擬,并將觀測(cè)量與獎(jiǎng)勵(lì)都存儲(chǔ)為GPU的張量,直接放入網(wǎng)絡(luò)中進(jìn)行運(yùn)算。因此,帶來(lái)的好處有兩點(diǎn)。第一,Isaac Gym避免了傳統(tǒng)的交互環(huán)境中存在的CPU仿真環(huán)境模擬到GPU網(wǎng)絡(luò)訓(xùn)練的轉(zhuǎn)換,從而最終加速整個(gè)訓(xùn)練過(guò)程。第二,由于使用GPU對(duì)物理環(huán)境進(jìn)行仿真,Isaac Gym環(huán)境還可以同時(shí)并行運(yùn)算數(shù)以千計(jì)的仿真環(huán)境,快速為當(dāng)前的policy提供大量訓(xùn)練樣本,從而從另一個(gè)方面,改善online-policy的算法在學(xué)習(xí)過(guò)程中出現(xiàn)的,樣本收集慢,采樣效率低下的問(wèn)題。
https://developer.nvidia.com/isaac-gym

常見(jiàn)的強(qiáng)化學(xué)習(xí)仿真環(huán)境
除了本文提到的Isaac Gym以外,現(xiàn)在常用的強(qiáng)化學(xué)習(xí)開(kāi)發(fā)環(huán)境通常有如下幾個(gè):
1.OpenAI Gym
這是一套用于強(qiáng)化學(xué)習(xí)的標(biāo)準(zhǔn)API,以及一個(gè)多樣化的參考環(huán)境集合。它包括了Atari游戲、常見(jiàn)控制任務(wù)環(huán)境、文本游戲等訓(xùn)練環(huán)境。其中的連續(xù)動(dòng)作環(huán)境是采用Mujoco物理引擎作為底層開(kāi)發(fā)的環(huán)境的。作為上手的環(huán)境來(lái)說(shuō),由于官方教材較多,代碼書(shū)寫(xiě)也比較規(guī)范,文件調(diào)用相對(duì)直接,是非常容易使用和改造的。

https://www.gymlibrary.ml/#
2.Pybullet Gym
Bullet在機(jī)器人強(qiáng)化學(xué)習(xí)領(lǐng)域也是一個(gè)比較常見(jiàn)的物理引擎,Pybullet就是基于該引擎開(kāi)發(fā)的Python環(huán)境的模擬環(huán)境API,具有較好的物理碰撞計(jì)算能力。

https://pybullet.org/wordpress/
3.Gazebo
相對(duì)于前面提到的環(huán)境來(lái)說(shuō),Gazebo更像是控制領(lǐng)域通常會(huì)使用的面向工業(yè)機(jī)器人應(yīng)用的仿真環(huán)境,它具有更好的仿真擬真度,但是由于沒(méi)有提供直接可以用于強(qiáng)化學(xué)習(xí)領(lǐng)域控制的API,需要使用ROS (Robot Operation System)通訊實(shí)現(xiàn)交互,因此開(kāi)發(fā)難度較大,相對(duì)更適合需要實(shí)際部署的場(chǎng)景下使用。

https://gazebosim.org/home
4.虛幻/Unity
虛幻和Unity作為原本是為了游戲領(lǐng)域開(kāi)發(fā)的引擎軟件,由于它們可以提供更佳的畫(huà)面效果與物理學(xué)計(jì)算,同時(shí)還能提供更好上手的界面與文檔教程,近些年常常被用于深度學(xué)習(xí)的訓(xùn)練中。此外,由于這些軟件原本用于游戲設(shè)計(jì),它們從根本上也很符合強(qiáng)化學(xué)習(xí)原本的設(shè)計(jì)目的,即控制智能體在虛擬環(huán)境中實(shí)現(xiàn)擬人的操作。常見(jiàn)的基于這兩款軟件開(kāi)發(fā)的機(jī)器學(xué)習(xí)的環(huán)境有:
a.AirSim[2]
這是一款由微軟開(kāi)發(fā)基于虛幻引擎的無(wú)人機(jī)、汽車(chē)等的模擬器(基于Unity開(kāi)發(fā)的版本仍然處于Preview Release階段)。它能夠與常用的飛行控制器如PX4和ArduPilot進(jìn)行軟件在環(huán)模擬,以及與PX4進(jìn)行硬件在環(huán)模擬,以實(shí)現(xiàn)物理上和視覺(jué)上的逼真。同時(shí),由于虛幻引擎的開(kāi)放性,它可以被放入任何虛幻環(huán)境中進(jìn)行使用。

https://microsoft.github.io/AirSim/
b.Unity Machine Learning Agents
這是由Unity公司從2005年開(kāi)始開(kāi)發(fā)的一個(gè)交互環(huán)境。它能使用Unity和ML代理工具包,創(chuàng)建物理、視覺(jué)和認(rèn)知豐富的人工智能環(huán)境,并使用它們進(jìn)行測(cè)試以及研究新的算法和方法。相比于AirSim等第三方開(kāi)發(fā)的庫(kù)來(lái)說(shuō),Unity Machine Learning Agents的開(kāi)發(fā)環(huán)境更加系統(tǒng),官方教材也相對(duì)較為友好。

https://unity.com/products/machine-learning-agents
當(dāng)然,也有很多論文對(duì)上述以及更多物理仿真環(huán)境進(jìn)行了進(jìn)一步比較如A Review of Physics Simulators for Robotic Applications、A Survey on Simulation Environments for Reinforcement Learning,讀者感興趣的話可以前往相關(guān)文獻(xiàn)進(jìn)行閱讀。
ISAAC?GYM環(huán)境介紹
ISAAC GYM環(huán)境的框架主要由三部分組成,第一部分是環(huán)境構(gòu)建(默認(rèn)是使用PhysX作為仿真的物理引擎),第二部分是訓(xùn)練算法(默認(rèn)訓(xùn)練文件train.py中使用的是基于Pytorch編寫(xiě)的PPO算法),第三部分是環(huán)境與算法交互的API設(shè)置文件(被放在文件夾python/tasks/base
中 )。
在安裝完成后,我們可以在目錄python/rlgpu
下執(zhí)行訓(xùn)練案例,代碼如下所示:
python train.py --task Cartpole
如果一切順利的話,我們就會(huì)看到平衡桿如下圖所示,已經(jīng)開(kāi)始訓(xùn)練起來(lái)啦。

當(dāng)然,我們?nèi)绻雵L試其他案例,我們可以采用如下形式的訓(xùn)練代碼:
python train.py --task TaskName --Other Command Line
1)TaskName
是案例的調(diào)用名稱,包含如下幾個(gè)案例:

2)Command Line
是一些配置性指令文件:

受限于篇幅,其他部分的介紹就下一次再說(shuō)吧。
結(jié)論與展望
作為一款新的物理仿真環(huán)境,ISAAC GYM環(huán)境更適合需要大量數(shù)據(jù)采集情況下的算法訓(xùn)練,可以極大的提升訓(xùn)練效率。但是相對(duì)來(lái)說(shuō),由于API源文件之間的嵌套問(wèn)題比較嚴(yán)重,對(duì)原有的工程進(jìn)行改造的難度也相對(duì)較大。希望Nvidia的工程師在未來(lái)能夠進(jìn)一步對(duì)該項(xiàng)目進(jìn)行優(yōu)化,最終如果能整合進(jìn)Omniverse全家桶與ISAAC SIM統(tǒng)一起來(lái)就更好了。
參考資料
[1] Viktor Makoviychuk, Lukasz Wawrzyniak, Yunrong Guo, Michelle Lu, Kier Storey, Miles Macklin, David Hoeller, Nikita Rudin, Arthur Allshire, Ankur Handa and Gavriel State. "Isaac Gym: High Performance GPU-Based Physics Simulation For Robot Learning.", arXiv preprint arXiv:2108.10470, 2021
[2] Shah, Shital, et al. "Airsim: High-fidelity visual and physical simulation for autonomous vehicles." Field and service robotics. Springer, Cham, 2018.

本文共2216字
由西湖大學(xué)智能無(wú)人系統(tǒng)實(shí)驗(yàn)室博士后汪治堃原創(chuàng)
申請(qǐng)文章授權(quán)請(qǐng)聯(lián)系后臺(tái)相關(guān)運(yùn)營(yíng)人員
▌微信公眾號(hào):空中機(jī)器人前沿
▌知乎:空中機(jī)器人前沿(本文鏈接:https://zhuanlan.zhihu.com/p/540728060)
▌Youtube:Aerial robotics @ Westlake University
▌實(shí)驗(yàn)室網(wǎng)站:https://shiyuzhao.westlake.edu.cn/? ? ?
