NVIDIA Isaac SDK

警告
本文最后更新于 2020-04-15,文中内容可能已过时。

参考:

https://docs.nvidia.com/isaac/isaac/doc/overview.html

https://developer.nvidia.com/isaac-sdk

img

application framework

Isaac Engine是一个软件框架,可轻松构建模块化机器人应用程序。它为智能机器人提供了高性能的数据处理和深度学习。在Isaac机器人引擎上开发的机器人应用程序可以在NVIDIA®Jetson AGX Xavier™和NVIDIA®Jetson Nano™等边缘设备以及具有离散NVIDIA®GPU的工作站(例如T4)上无缝运行。

packages with high-performance robotics algorithms

GEMs是用于感应,规划或驱动的模块化功能,可以轻松插入机器人应用程序中。例如,开发人员可以添加障碍物检测,立体声深度估计或人类语音识别,以丰富其机器人用例。

reference applications

a powerful simulation platform

Isaac Sim是虚拟机器人实验室和高保真3D世界模拟器,可通过降低成本和风险来加速研究,设计和开发。

Env:

Ubuntu18.04.1 (Nvidia Driver 440, cuda10.0, GPU算力 >= 3.5)

Nano: Jetpack4.3

下载Isaac SDK和Isaac Sim, 分别解压到 ~/isaac_sdk~/isaac_sim_unity3d

添加镜像源:

1
sudo vi /etc/apt/sources.list
1
2
3
4
5
6
7
8
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
ideb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

安装pip3

1
2
3
4
5
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py

# 修改为豆瓣源
sudo pip3 config set global.index-url https://pypi.doubanio.com/simple/
1
2
cd ~/isaac_sdk
engine/build/scripts/install_dependencies.sh

Installing Dependencies on Robots:

1
2
3
cd ~/isaac_sdk
# engine/build/scripts/install_dependencies_jetson.sh -u <jetson_username> -h <jetson_ip>
engine/build/scripts/install_dependencies_jetson.sh -u nona -h 192.168.20.155
1
2
3
4
5
6
7
8
sudo apt install curl gnupg
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list

sudo apt update && sudo apt install bazel

# Ubuntu 18.04 (LTS) uses OpenJDK 11 by default:
sudo apt install openjdk-11-jdk
1
2
3
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-driver-440
1
2
3
4
# 下载.run脚本并运行, 注: 只安装cuda tool kit, 不安装driver
wget https://developer.download.nvidia.cn/compute/cuda/10.0/secure/Prod/local_installers/cuda_10.0.130_410.48_linux.run

sudo sh cuda_10.0.130_410.48_linux.run

vim ~/.bashrc的最后加上以下配置信息

1
2
3
export CUDA_HOME=/usr/local/cuda-10.0
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}

使用命令source ~/.bashrc使配置生效

https://forum.unity.com/threads/unity-hub-v-1-3-2-is-now-available.594139/

1
2
3
wget https://public-cdn.cloud.unity3d.com/hub/prod/UnityHub.AppImage
chmod +x UnityHub.AppImage
./UnityHub.AppImage

When the Unity Hub application opens, follow these steps to install the Unity Editor:

  1. Click the person icon in the upper right and select Sign in. Sign in with your Unity ID.
  2. Select Installs on the left, then select Add.
  3. In the Add Unity Version popup window, install 2019.3.x (no modules are required). The sample project for IsaacSim Unity3D is created with 2019.3.0f6, so any newer 2019.3 version can be used.
1
2
3
cd ~/isaac_sdk
bazel build //apps/samples/stereo_dummy
bazel run //apps/samples/stereo_dummy

应用运行后,可在浏览器打开http://localhost:3000

将应用部署运行在Jetson上:

1
2
3
4
5
6
7
8
# 配置desktop免密登录Jetson
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub  nona@192.168.20.155

# deploy the package to the robot
cd ~/isaac_sdk
# ./engine/build/deploy.sh --remote_user <username_on_robot> -p //apps/samples/stereo_dummy:stereo_dummy-pkg -d jetpack43 -h <robot_ip>
./engine/build/deploy.sh --remote_user nona -p //apps/samples/stereo_dummy:stereo_dummy-pkg -d jetpack43 -h 192.168.20.155

在Jetson上运行 :

1
2
3
4
5
6
7
# ssh ROBOTUSER@ROBOTIP
ssh nona@192.168.20.155

# deep为desktop的用户名
cd deploy/deep/stereo_dummy-pkg
./apps/samples/stereo_dummy/stereo_dummy
# 应用运行后浏览器打开192.168.20.155:3000

也可以部署到Jetson同时运行App,加 --run

1
./engine/build/deploy.sh --remote_user nona -p //apps/samples/stereo_dummy:stereo_dummy-pkg -d jetpack43 -h 192.168.20.155 --run
1
2
3
4
bazel build //apps/samples/v4l2_camera
bazel run //apps/samples/v4l2_camera

./engine/build/deploy.sh --remote_user nona -p //apps/samples/v4l2_camera:v4l2_camera-pkg -d jetpack43 -h 192.168.20.155 --run
1
2
3
# start the simulator with the “small_warehouse” scene
cd ~/isaac_sim_unity3d/builds
./sample.x86_64 --scene small_warehouse -logFile -
1
2
3
# run the Isaac SDK application with the Carter navigation stack
cd ~/isaac_sdk
bazel run //apps/navsim:navsim_navigate