開箱 NVIDIA 全新推出的機器人模擬平臺 Omniverse 上使用 Isaac Sim

1. 介紹

NVIDIA 在今年2021的一月份釋出了最新 Open Beta 版的 Isaac Sim, 是一款主打機器人/AI模擬的平臺, 裡面不只內建物理引擎, 還有支援感測器例如光達、攝影機、力感測器的模擬, 甚至還能夠結合最新的機器人系統 ROS2 的開發。

下面是模擬 Franka Emika Panda 的機械手臂去追蹤一個物件, 其過程不能有手臂自身的碰撞,並可以即時的定位夾爪到物件的上方。

 

也許會有讀者好奇這樣的模擬系統,能不能支援自己設計的機器人? 答案是可以的哦! 目前有支援各種常見的CAD 檔,讀者可以將設計好的檔案匯入到 Isaac Sim 當中, 並設定物理上的可動參數,如下官方的示範影片:

本篇文章將介紹如何安裝單機版的 Isaac Sim, 架起模擬的伺服器,以及遠端操作模擬環境。

 

1.1. 安裝的基本需求

如果是要在電腦上安裝 Isaac Sim 的話, 官方建議是最少要有 16GB 的記憶體, 並且最好有 GeForce RTX 2070 以上的顯卡, 才能負荷得了模擬器的計算。

在作業系統的部分,目前的 Isaac Sim Server 必須是 Linux 環境才可以跑,而官方推薦的是 Ubuntu 18.04 。 但 Isaac Sim Client 的部分則是有支援 Windows 和 Linux,通常的使用情境是我們先架設一個算力比較強的電腦, 上面安裝 Linux 系統,作爲 Isaac Sim 的 Server,然後在開發時就可以用筆電連到 Server 去跑模擬。 順帶一提,官方也有提供雲端主機的 Docker Image 作爲遠端的 Server , 例如: Amzaon AWS, Microsfot Azure.

而顯卡驅動的部分,請在終端機上執行一下的指令來安裝官方建議的版本

sudo apt-get update
sudo apt install build-essential -y
wget https://us.download.nvidia.com/XFree86/Linux-x86_64/460.67/NVIDIA-Linux-x86_64-460.67.run
chmod +x NVIDIA-Linux-x86_64-460.67.run
sudo ./NVIDIA-Linux-x86_64-460.67.run

1.2. 下載 Omniverse

Isaac Sim 其實是基於模擬平臺 Omniverse 上開發,專門用來做機器人/AI 的模擬, 所以我們必須先下載 Omniverse (https://www.nvidia.com/en-us/omniverse/) 。

作爲 Isaac Sim Server 的電腦必須是Linux 系統, 所以這邊記得要選 Linux 的版本。

接下來可以點選下載完的檔案 omniverse-launcher-linux.AppImage , 就可以啓動 Omniverse 囉!

注意: Omniverse 在每次啓動時,都必須要連到網路來驗證 NVIDIA 的帳號,不然無法啓動哦!

2. 安裝 Isaac Sim

Omniverse 其實只是一個通用的模擬平臺, 接下來我們必須再安裝一些模組來讓我們成功使用 Isaac Sim 。

 

2.1. 安裝 Omniverse Nucleus

Nucleus Server 可以讓各個 client 之間可以溝通, 是 Omniverse 底層必要的元件,如下圖,可以點選上方選單中的 NUCLEUS 來初始化設定。

2.2. 安裝 Omniverse Cache

接下來是 Omniverse 的快取資料庫,請切換到 EXCHANGE 並輸入 CACHE 來搜尋並安裝。

2.3. 安裝 Isaac Sim

最後就是我們的主角啦,一樣在 EXCHANGE 這邊,輸入 SIM 來搜尋並安裝。

 

點選 INSTALL 開始下載。

整個 Isaac Sim 其實不小,大概要 1GB 左右,耐心等候一下吧。

3. 啓動 Isaac Sim !

現在系統搞定了,Isaac Sim 也安裝完成了,讓我們來點選 LAUNCH 啓動看看吧!

這邊會有四種的啓動方式,第一種是最直接的, 直接在電腦上開,如下圖:

因爲目前還是 Beta 的版本,開啓的過程中可能會有各種的警告, 或者是如下圖問你程式卡住了要不要停止之類的訊息, 這裡不用慌張,點選 Wait 等一下子就可以叫起來了。

注意:如果讀者是用的是記憶體只有剛好達16GB 的電腦,請注意到啓動前可用的記憶體 還有多少,如果太少的話有可能程式會直接突然跳掉,筆者在這邊建議還是用至少 32GB 記憶體的 電腦會比較保險哦!

而其他種的啓動方式,則是遠端連線的方法,意思是這臺電腦會作爲一個 Isaac Sim 的 Server,啓動後並不會看到任何的 GUI ,要如何操作必須透過 另一個 Isaac Sim Client 連進去才行。筆者在這邊介紹其中兩個常用的 Client。

3.1. Livestream WebSocket

第一種是走 WebSocket, 只要知道 Isaac Sim Server 的 ip 位址, 不管是用筆電還是手機都可以在瀏覽器連到下面的連接來操作 Isaac Sim 。

http://<ip address>:8211/streaming/client

不過目前的話不建議多個使用者連到同一個, 並且在一些 gamepad, touch input 的裝置上支援仍然有限。

3.2. Kit Remote Client

第二種則是走 stream 的 Kit Remote, 筆者使用的經驗是這種方法是比較穩定的遠端操作方式。 但在 Client 端的電腦就必須依照系統的不同來安裝對應的 Viewer 。

在終端機中輸入以下指令來安裝必要的編碼函式庫

sudo apt-get install libavcodec57 libavformat57 libavutil55 libsdl2-dev libsdl2-2.0-0

連線方法:

./kit-remote.sh -s <remote_ip_address>

連線方法:

kit-remote.exe -s <remote_ip_address>

注意: Kit Remote 的方法是不能夠多個使用者同時連線到同一個 Server 的哦!

4. 來玩玩看一些機器人的範例!

Isaac Sim 其實有提供一些機器人的範例可以讓我們快速的 瞭解模擬的一些功能,不過這部分必須額外下載一些套件包。

下載 Isaac Sim Assets

wget https://developer.nvidia.com/nvidia-isaac-sim-assets-20211 -O $HOME/Downloads/isaac-sim-assets.zip
sudo apt install unzip -y
unzip isaac-sim-assets.zip -d Isaac
sudo chmod -R 775 Isaac

下載完後會有解壓縮的 Isaac 資料夾放在家目錄底下的 Downloads 中, 我們必須把它上傳到 Isaac Sim 中。請在下方 Content 中,左邊的欄位點選 localhost, 右邊的檔案區按右鍵選擇 Upload Files and Folders 。

接下來選擇剛剛解壓縮後的 Isaac 資料夾上傳。

那麼最後就讓我們用兩個機器人的範例做收場吧!

4.1. Jetbot

第一個是鼎鼎大名的自駕小車機器人 Jetbot,

在上方工具列選擇:Isaac Examples >> Input Devices >> Jetbot Keyboard

點選 Load Jetbot 來載入 Jetbot 機器人到模擬環境中

如下圖,會有一台 Jetbot 被加到模擬中, 並且會有一個背景一併被加進來 。

點選左邊的播放鍵來執行鍵盤控制機器人的範例, 讀者可以使用 W/A/S/D 四個鍵來操作機器人進行移動。

範例影片:

 

4.2. RMP

第二個範例我們來玩一下 Franka Emika Panda 的機械手臂, 並讓它去追蹤一個虛擬的物件 。

首先,在上方工具列選擇:Isaac Examples >> Controlling >> Manipulation >> RMP Example

 

點選 Load Robot 來載入機械手臂。

 

接著點選左邊的播放鍵來開始模擬。

 

點選 Follow Target 會造出一個虛擬的方塊作爲要追蹤的物件,讓我們用滑鼠拖弋物件來看看機器人是否能夠順利追蹤吧!

 

範例影片:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *