Getting Started

To guarantee optimal functionality of supported applications on Nova Orin Developer Kit, please follow all steps introduced below before installing it on your robot.

Note

You have completed Nova Orin Developer Kit Quick Start Guide after receiving Nova Orin Developer Kit. The Nova Orin Developer Kit is powered on, connected with display and primary input devices.

Setting up Network Connections on Nova Orin Developer Kit

You can either connect through WiFi or Ethernet to access your local network.

  1. Follow these steps to connect the Nova Orin Developer Kit to the local WiFi network:

    1. Log in to the robot (contact the NVIDIA Solutions team for the login password).

    2. Follow the WiFi instructions for Ubuntu.

  2. You can also connect an Ethernet cable for Nova Orin on the right side.

After connecting to the internet it is required to reboot the system. Press the power button or run:

sudo reboot

Connecting a PC to the Nova Orin Developer Kit

To control, deploy, launch, and debug applications, you have to connect your PC remotely to the Nova Orin Developer Kit.

First, you must get the IP address of the Nova Orin Developer Kit. Assuming you have it connected to a display, and primary input devices from the previous section, follow these instructions:

  1. Use CTRL+ALT+t to open a terminal.

  2. Find the IP address of the WiFi by running ifconfig wlan0. You should see an output similar to the screenshot below. The IP address is highlighted with a red rectangle.

ifconfig console screenshot

Note

If you connect Nova Orin through Ethernet, you will find IP address similarly by running ifconfig enp1s0

  1. Record the IP address (in the above case it is 10.110.66.127). This IP address will be used for connecting in all further tutorials and may need to be retrieved again if it changes.

  2. From your PC run the following command to SSH into the Nova Orin Developer Kit. Make sure to use a PC that is connected to the same network as your Nova Orin Developer Kit. Enter the login password when asked for it.

    $ ssh <USER>@<DEVELOPER_KIT_IP>
    

Note

Make sure to replace <USER> and <DEVELOPER_KIT_IP> with the values for your robot. In the above case, it would be ssh nvidia@10.110.66.127.

Note

The login will timeout for security reasons. Also, the DisplayPort will turn off after a while due to inactivity, so retry if the screen goes black.

Nova Orin Initialization

  1. Verify if Nova Orin software is the latest version by comparing the installed package with the candidate:

    $ apt policy nova-orin-init
    nova-orin-init:
      Installed: 1.3.1
      Candidate: 1.3.1
      Version table:
     *** 1.3.1 600
            600 https://isaac.download.nvidia.com/nova-init jammy/main arm64 Packages
    
  2. If the installed version is lower than the candidate, please follow the nova init upgrade process here. Otherwise proceed to the next step.

  3. Verify that sensors are functioning by running:

    nova_preflight_checker -v
    

    It is expected for all tests to pass. Refer to the Nova PFC documentation for more details.

Docker Configuration

To run docker applications on the Nova Orin Developer Kit, you shall configure docker as below.

  1. Add the nvidia user to the docker group to enable using docker without sudo:

    # Add your user to the docke group
    sudo usermod -aG docker $USER
    # Verify that command succeeded
    id nvidia | grep docker
    # Log out and log in for the changes to take effect
    newgrp docker
    
  2. Stop the Docker service.

    sudo systemctl stop docker
    
  3. Move the existing Docker folder.

    sudo du -csh /var/lib/docker/ && \
        sudo mkdir /mnt/nova_ssd/docker && \
        sudo rsync -axPS /var/lib/docker/ /mnt/nova_ssd/docker/ && \
        sudo du -csh  /mnt/nova_ssd/docker/
    
  4. Use a text editor (e.g. Vi) to edit /etc/docker/daemon.json

    sudo vi /etc/docker/daemon.json
    

    Insert "data-root" line similar to the following:

    {
        "runtimes": {
            "nvidia": {
                "path": "nvidia-container-runtime",
                "runtimeArgs": []
            }
        },
        "default-runtime": "nvidia",
        "data-root": "/mnt/nova_ssd/docker"
    }
    
  5. Rename the old Docker data directory.

    sudo mv /var/lib/docker /var/lib/docker.old
    
  6. Restart the Docker daemon.

    sudo systemctl daemon-reload && \
        sudo systemctl restart docker && \
        sudo journalctl -u docker
    

Prerequisites

If you consider using Nova Orin Developer Kit only through the pre-built docker image, continue to Visualization Setup. Otherwise, you should complete Isaac ROS Development Environment, repositories, and visualization setup before proceeding to run the applications.

Isaac ROS Development Environment Setup (Optional)

If you consider using the Nova Orin Developer Kit only through the pre-built docker image, you can proceed to tutorials. Otherwise,

  1. Set up your development environment by following the instructions in getting started.

  2. Clone isaac_ros_common under ${ISAAC_ROS_WS}/src.

    cd ${ISAAC_ROS_WS}/src && \
       git clone https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common.git
    
  3. (Optional) Install dependencies for any sensors you want to use by following the sensor-specific guides.

    Warning

    We strongly recommend installing all sensor dependencies before starting any quickstarts. Some sensor dependencies require restarting the Isaac ROS Dev container during installation, which will interrupt the quickstart process.

Note

We recommend that you connect the Nova Orin Developer Kit through Ethernet in this step. Building a Docker image for the development environment takes longer time in the first time you run it. Expect faster spin-up of the development environment after the first cached build.

Repositories Setup (Optional)

  1. Clone nova_developer_kit repository under ${ISAAC_ROS_WS}/src:

    cd ${ISAAC_ROS_WS}/src && \
      git clone --recursive https://github.com/NVIDIA-ISAAC-ROS/nova_developer_kit.git
    
  2. Create a file called .isaac_ros_common-config with the following context:

    cd ${ISAAC_ROS_WS}/src/isaac_ros_common/scripts
    echo -e "CONFIG_IMAGE_KEY=ros2_humble.nova_developer_kit\nCONFIG_DOCKER_SEARCH_DIRS=(../../nova_developer_kit/docker ../docker)" > .isaac_ros_common-config
    
  3. Create a file called .isaac_ros_dev-dockerargs with the following context:

    cd ${ISAAC_ROS_WS}/src/isaac_ros_common/scripts
    echo -e "-v /etc/nova/:/etc/nova/" > .isaac_ros_dev-dockerargs
    
  4. Launch the Docker container using the run_dev.sh script:

    cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
      ./scripts/run_dev.sh
    
  5. Clone the dependency repositories using the vcstool file in the nova_developer_kit repository:

    cd /workspaces/isaac_ros-dev
    vcs import --recursive src < src/nova_developer_kit/nova_developer_kit.repos
    

Visualization Setup

To visualize and evaluate outputs from camera-based perception applications, you should follow those steps on your remote machine.

  1. Complete the Foxglove setup guide. Make sure to install additional Nvblox Foxglove extension.

  2. Download all Foxglove layout configurations available in nova_developer_kit repository.

Tutorials

You are recommended to go through following tutorials to visualize sensor outputs, and prepare running camera-based perception on your robot.

Visualizing Sensors Outputs on the Nova Orin Developer Kit

Follow the Tutorial: Run all Sensors on the Nova Orin Developer Kit.

Running Camera-based 3D Perception on a Robot

Follow the Tutorial: Camera-based 3D Perception with Isaac Perceptor with the Nova Orin Developer Kit.