Skip to main content

Setup Guide: Digital Twin Workstation

Learning Objectives

  • Install Ubuntu 22.04 (native or dual-boot) on a workstation with RTX GPU
  • Configure NVIDIA drivers and CUDA toolkit for GPU acceleration
  • Install ROS 2 Humble and verify installation with demo nodes
  • Set up Isaac Sim, Gazebo, and Unity for simulation workflows

Before You Begin

⏱️ Estimated Time: 120 minutes

Prerequisites: None - this chapter is suitable for beginners.


Overview

The Digital Twin Workstation is the recommended setup for this course. It provides the best performance and flexibility for running GPU-accelerated simulations, especially NVIDIA Isaac Sim (Module 3).

What You'll Get

  • Full ROS 2 development environment
  • GPU-accelerated physics simulation (Isaac Sim)
  • Photorealistic rendering with RTX ray tracing
  • No dependency on cloud infrastructure

Prerequisites

  • Basic Linux command-line skills
  • Willingness to dual-boot or dedicate a machine to Ubuntu

Hardware Requirements

Minimum Specifications

ComponentRequirement
GPUNVIDIA RTX 2060 (6GB VRAM) or better
CPUIntel i5-9600K / AMD Ryzen 5 3600 or better (6+ cores)
RAM16GB DDR4 (32GB recommended)
Storage256GB SSD (512GB recommended for Isaac Sim)
OSUbuntu 22.04 LTS (native or dual-boot)
ComponentRecommendation
GPUNVIDIA RTX 3080 (10GB+) or RTX 4070
CPUIntel i7-12700K / AMD Ryzen 7 5800X (12+ cores)
RAM32GB DDR4/DDR5
Storage1TB NVMe SSD

Why RTX? Isaac Sim requires RTX GPUs for ray-traced sensor simulation. Non-RTX cards (GTX series) cannot run Isaac Sim.


Cost Estimate

ItemCost (USD)
Workstation (RTX 3080, 32GB RAM, 1TB SSD)$1,500 - $2,500
OR Upgrade existing PC with RTX 3080$600 - $800
Ubuntu 22.04 (free)$0
Total$600 - $2,500

Installation Steps

Step 1: Install Ubuntu 22.04 LTS

Option A: Dual-Boot (Recommended)

  1. Download Ubuntu 22.04 ISO: https://ubuntu.com/download/desktop
  2. Create bootable USB using Rufus (Windows) or dd (Linux)
  3. Boot from USB and select "Install Ubuntu alongside Windows"
  4. Allocate at least 100GB for Ubuntu partition

Option B: Native Install

  1. Backup important data
  2. Boot from Ubuntu USB
  3. Select "Erase disk and install Ubuntu"
  4. Follow installation wizard

Post-Install:

sudo apt update && sudo apt upgrade -y
sudo apt install build-essential git curl wget vim -y

Step 2: Install NVIDIA Drivers

# Check GPU
lspci | grep -i nvidia

# Add NVIDIA driver PPA
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update

# Install recommended driver (usually 535 or newer)
ubuntu-drivers devices
sudo ubuntu-drivers autoinstall

# Reboot
sudo reboot

# Verify installation
nvidia-smi

Expected output: GPU name, driver version, CUDA version

Step 3: Install CUDA Toolkit

# Download CUDA 12.2 (compatible with ROS 2 and Isaac Sim)
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt install cuda-12-2 -y

# Add to PATH
echo 'export PATH=/usr/local/cuda-12.2/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

# Verify
nvcc --version

Step 4: Install ROS 2 Humble

# Set locale
sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8

# Add ROS 2 repository
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key \
-o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] \
http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | \
sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

# Install ROS 2 Humble Desktop
sudo apt update
sudo apt install ros-humble-desktop python3-colcon-common-extensions -y

# Source ROS 2 (add to ~/.bashrc for persistence)
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc

# Verify installation
ros2 --version
ros2 run demo_nodes_cpp talker

Step 5: Install Gazebo Garden

# Add Gazebo repository
sudo wget https://packages.osrfoundation.org/gazebo.gpg -O /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] \
http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null

# Install Gazebo Garden
sudo apt update
sudo apt install gz-garden -y

# Verify
gz sim --version

Step 6: Install NVIDIA Isaac Sim

Prerequisites: RTX GPU, CUDA 12.2, 50GB free space

  1. Create NVIDIA Account: https://developer.nvidia.com/

  2. Download Isaac Sim (2023.1.1 or later):

    # Option A: via Omniverse Launcher (GUI)
    # Download from: https://www.nvidia.com/en-us/omniverse/download/

    # Option B: Direct download (headless)
    wget https://install.launcher.omniverse.nvidia.com/installers/omniverse-launcher-linux.AppImage
    chmod +x omniverse-launcher-linux.AppImage
    ./omniverse-launcher-linux.AppImage
  3. Install Isaac Sim via Launcher:

    • Open Omniverse Launcher
    • Go to "Exchange" tab
    • Search for "Isaac Sim"
    • Click "Install"
  4. Verify Installation:

    # Navigate to Isaac Sim directory
    cd ~/.local/share/ov/pkg/isaac_sim-*/

    # Run Isaac Sim
    ./isaac-sim.sh

Expected: Isaac Sim GUI opens with sample scenes

Step 7: Install Python Dependencies

# Create virtual environment for robotics
python3 -m venv ~/robotics_env
source ~/robotics_env/bin/activate

# Install common packages
pip install --upgrade pip
pip install numpy scipy matplotlib pandas opencv-python
pip install torch torchvision # For RL in Module 3-4

# Add to ~/.bashrc
echo "alias activate_robotics='source ~/robotics_env/bin/activate'" >> ~/.bashrc

Verification Checklist

Test your setup with these commands:

  • GPU: nvidia-smi shows GPU and driver version
  • CUDA: nvcc --version shows CUDA 12.2
  • ROS 2: ros2 run demo_nodes_cpp talker runs without errors
  • Gazebo: gz sim shapes.sdf opens simulation window
  • Isaac Sim: Launcher opens and Isaac Sim runs sample scene
  • Python: python --version shows Python 3.10+

If all checks pass, you're ready to start Module 1: ROS 2!


Troubleshooting

NVIDIA Driver Issues

Problem: nvidia-smi shows "Failed to initialize NVML" Solution:

sudo apt purge nvidia-*
sudo ubuntu-drivers autoinstall
sudo reboot

ROS 2 Not Found

Problem: ros2: command not found Solution:

source /opt/ros/humble/setup.bash
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

Isaac Sim Won't Start

Problem: Isaac Sim crashes or shows black screen Solution:

  • Verify RTX GPU: nvidia-smi
  • Check VRAM: Isaac Sim needs 6GB+ free
  • Update drivers: sudo ubuntu-drivers autoinstall
  • Check logs: ~/.nvidia-omniverse/logs/

Low Disk Space

Problem: Running out of space during installation Solution:

# Check disk usage
df -h

# Clean apt cache
sudo apt clean
sudo apt autoclean

# Remove old kernels
sudo apt autoremove

Next Steps

  1. Configure IDE: Install VS Code with ROS and Python extensions
  2. Clone Course Examples: git clone <course-repo-url>
  3. Start Learning: Begin Module 1: ROS 2

Limitations

  • Windows Subsystem for Linux (WSL2): Not recommended for Isaac Sim (GPU passthrough is experimental)
  • Mac: Not supported (NVIDIA GPUs required)
  • Virtual Machines: Poor GPU performance, not recommended

For alternatives, see:


Questions? Refer to the Glossary for terminology or consult course forums.