Isaac SDK & Sim 環境

2022-12-03 06:00:56

Isaac 是 NVIDIA 開放的機器人平臺。其 Isaac SDK 包括以下內容:

  • Isaac Apps: 各種機器人應用範例,突出 Engine 特性或專注 GEM 功能
  • Isaac Engine: 一個軟體框架,可輕鬆構建模組化的機器人應用
  • Isaac GEMs: 感知、規劃到驅動的模組化演演算法包,大多 GPU 加速
  • Isaac Sim: Omniverse 平臺上的機器人應用模擬工具包

參考 Isaac SDK Doc

準備

參考:

GPU Driver

# 新增驅動源
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update -y

# 檢視驅動
ubuntu-drivers devices
# driver   : nvidia-driver-470 - distro non-free recommended

# 安裝驅動 (470.57 or later)
sudo apt install -y nvidia-driver-470

# 重啟
sudo reboot
# 確認版本
nvidia-smi

Isaac SDK

# 解壓 Isaac SDK 2021.1
mkdir ~/Envs/isaac-sdk-2021.1
tar -xvf isaac-sdk-20210609-e336b5195.tar.xz -C ~/Envs/isaac-sdk-2021.1

# 安裝依賴
cd ~/Envs/isaac-sdk-2021.1/engine
./engine/build/scripts/install_dependencies.sh

試下樣例:

cd ~/Envs/isaac-sdk-2021.1/sdk
# 編譯
bazel build //apps/samples/stereo_dummy
# 執行
bazel run //apps/samples/stereo_dummy
# 檢視
xdg-open http://127.0.0.1:3000

Isaac Sim

Omniverse Launcher

準備好 Omniverse Launcher (Individual) 後,進行安裝:

# 新增執行許可權
sudo chmod +x omniverse-launcher-linux.AppImage
# 雙擊進行安裝,最後會提示確認 Settings & Install Cache

具體過程,可見 Workstation Setup, Installing Launcher。進一步,閱讀 User Guide 瞭解使用。

Nucleus Service

Nucleus Service 是 Omniverse 應用的資料庫,並可多使用者共同作業開發。

該服務於 Omniverse Launcher 的 Nucleus Tab 頁,點 「+」 安裝:

安裝完成後,用之前註冊的賬號登入,會見到如下檔案管理器:

Isaac Sim

Isaac Sim 是 Omniverse 平臺上的機器人應用模擬工具包。

該應用於 Omniverse Launcher 的 Exchange Tab 頁,搜 「isaac sim」 安裝:

安裝如果一直完成不了,取消後多試幾次就行。

安裝完成後,進 Library Tab 頁,選擇 Isaac Sim,點選 Launch 執行:

彈出如下選擇框:

Start 後就可見到如下 Sim 介面:

選單 Isaac Examples > Import Robots > Carter URDF > Load Robot,嘗試載入樣例,確認工作正常。

進一步,閱讀 Isaac Sim Interface 瞭解使用。

參考:

VS Code 支援

安裝 VS Code

sudo apt install -y ./code_*.deb

之後,於 Isaac Sim 介面,選單 Window > Extensions 搜尋 「vscode」 安裝擴充套件:

ENABLED 開啟後,可見 VS Code Link 面板。這時,再 Launch 開啟選擇框,於 Open in Terminal 裡 code . 開啟 VS Code:

進行 Debug 偵錯,選擇 「Python: Attach (windows-x86_64/linux-x86_64) 」 執行:

如果彈出安裝 Python 擴充套件:

就 Install 一下:

之後,在 hello_world.py 裡打個斷點。選單 Isaac Examples > Hello World > Load World 即可進入斷點,進行偵錯了:

有關支援,可見 VSCode Support

更多

GoCoding 個人實踐的經驗分享,可關注公眾號!