Setup

This document explains how to start developing with Isaac SDK and Isaac SIM. After following the steps in this document you should be ready to start developing robotics applications with Isaac SDK.

Prerequisites

Isaac currently only supports Ubuntu 18.04 LTS for development and simulation from your workstation. Please make sure to install recent NVIDIA graphics card drivers on your workstation, for example version 418 works well.

The compute capability of a GPU is represented by a version number. This version number identifies the features supported by the GPU hardware and is used by applications at runtime to determine which hardware features and/or instructions are available on the present GPU. The compute capability version of a particular GPU should not be confused with the CUDA version (e.g., CUDA 7.5, CUDA 8, CUDA 9), which is the version of the CUDA software platform.

Isaac SDK requires that your desktop system include a GPU with a compute capability of 3.5 or higher.

To determine the compute capability of your GPU, find your GPU on the CUDA GPUs website.

For deployment of your robotics applications Isaac works best with a Jetson Nano, Jetson Xavier, or Jetson TX2 developer kit. Please make sure to install Jetpack 4.3 on your embedded devices. Isaac currently only supports these Jetpack versions.

Installing Dependencies on the Desktop

While most of the Isaac SDK build is hermetic, some system dependencies are required. A script that installs required dependencies is included.

Note

Avoid installing CUDA manually unless you plan on running a module that uses CUDA, such as TensorFlow. If you know you need CUDA, in addition to running the script below, make sure to also install CUDA 10.0.

To install dependencies, at the root folder of the Isaac SDK repository run the following command:

bob@desktop:~/isaac$ engine/build/scripts/install_dependencies.sh

The script requests your administrator password at points to install certain dependencies. It installs three kinds of dependencies:

  • Ubuntu packages from the official Ubuntu repositories via aptitude
  • Python packages via pip, for example, TensorFlow and keras
  • the build system Bazel, used by Isaac SDK.

Installing Dependencies on Robots

To install required dependencies on Jetson devices in robots, such as Jetson Nano, Jetson Xavier, and Jetson TX2, run the following command:

bob@desktop:~/isaac$ engine/build/scripts/install_dependencies_jetson.sh -u <jetson_username> -h <jetson_ip>

Where <jetson_username> is your username on the Jetson, and <jetson_ip> is the IP address of the Jetson device.

The script installs Ubuntu packages from the official Ubuntu repositories via aptitude.

Bazel

Large software projects need a reliable and efficient build system and Isaac SDK uses Bazel. Bazel enables clean module dependencies, hermetic builds, and cross-compilation for various hardware platforms like the Jetson TX2 or Jetson Xavier developer kits. Bazel is installed by the dependency script. If additional resources are needed see Installation instructions on the Bazel homepage.

Please make sure you have the correct version of bazel, currently 0.19.2. Isaac SDK might not work with an older or newer version of bazel.

Note

Bazel requires the file .bazelrc, located in the Isaac SDK package. The Archive Manager application in Ubuntu Linux may fail to extract the hidden file, leading to building errors. If you see errors when building, confirm that .bazelrc is present in the extracted sources.

NVIDIA GPU Driver

An NVIDIA GPU and corresponding driver software is required to run CUDA-enabled code on a PC. It is also required by machine learning software. The NVIDIA GPU Driver version 418 or later is recommended.

Use the following procedure to install the driver:

bob@desktop:~/isaac$ sudo add-apt-repository ppa:graphics-drivers/ppa
bob@desktop:~/isaac$ sudo apt-get update
bob@desktop:~/isaac$ sudo apt-get install nvidia-driver-418

Replace version 418 with a later version if needed.

IsaacSim Unity3D Setup

IsaacSim Unity3D allows you to use Unity3D as the simulation environment for Isaac robotics. Follow the steps below to set up IsaacSim Unity3D.

Prerequisites

Perform all the Isaac SDK setup steps outlined above before installing Unity3D.

Download IsaacSim Unity3D

Download IsaacSim Unity3D from the Isaac Developer Downloads website and unzip it to $HOME/isaac_sim_unity3d. This package contains both a “play mode” build and “editor mode” projects and packages. You can use the “play mode” build without installing Unity Editor, so it’s a good way to start exploring Isaac SDK and IsaacSim Unity3D. On the other hand, the “editor mode” projects and packages, which require the Unity Editor, allow you to create your own simulation environment for Isaac SDK.

Unity3D installation workflow

Install Unity Editor for Editor Mode

If you do not have a Unity ID, create a Unity account first.

Download Unity Hub for Linux from the Unity forum, then run the following commands:

bob@desktop:~$: chmod +x UnityHub.AppImage
bob@desktop:~$: ./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. Click the “Vist our download archive” link.
  4. On the Unity download archive page, locate Unity version 2018.3.11. Select the Unity Hub download link. The installation window for Unity 2018.3.11f1 should open in Unity Hub.
  5. Install Unity 2018.3.11f1 (no modules are required).

Machine Learning (Optional)

When building Isaac SDK, all dependencies required for neural network execution or for writing CUDA kernels are automatically included. No pre-installed system dependencies are required.

To train a neural network, however, you must set up a machine learning toolkit. For example, TensorFlow is a popular framework for machine learning.

Note

There might be more than one flavor of Tensorflow; however, to leverage the performance boost from GPU hardware, you need to install Tensorflow with GPU support, which also requires CUDA, TensorRT, and CUDNN on your system. Test that TensorFlow is set up correctly with the following command:

bob@desktop:~/isaac$ python -c "import tensorflow"

Isaac SDK supports TensorFlow version 1.15.0.

To avoid potential issues caused by mismatching library versions, we recommend using CUDA 10.0, CUDNN 7.6.3, and TensorRT 6.0, which are the versions available in Jetpack.