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
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
| Component | Requirement |
|---|---|
| GPU | NVIDIA RTX 2060 (6GB VRAM) or better |
| CPU | Intel i5-9600K / AMD Ryzen 5 3600 or better (6+ cores) |
| RAM | 16GB DDR4 (32GB recommended) |
| Storage | 256GB SSD (512GB recommended for Isaac Sim) |
| OS | Ubuntu 22.04 LTS (native or dual-boot) |
Recommended Specifications
| Component | Recommendation |
|---|---|
| GPU | NVIDIA RTX 3080 (10GB+) or RTX 4070 |
| CPU | Intel i7-12700K / AMD Ryzen 7 5800X (12+ cores) |
| RAM | 32GB DDR4/DDR5 |
| Storage | 1TB 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
| Item | Cost (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)
- Download Ubuntu 22.04 ISO: https://ubuntu.com/download/desktop
- Create bootable USB using Rufus (Windows) or
dd(Linux) - Boot from USB and select "Install Ubuntu alongside Windows"
- Allocate at least 100GB for Ubuntu partition
Option B: Native Install
- Backup important data
- Boot from Ubuntu USB
- Select "Erase disk and install Ubuntu"
- 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
-
Create NVIDIA Account: https://developer.nvidia.com/
-
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 -
Install Isaac Sim via Launcher:
- Open Omniverse Launcher
- Go to "Exchange" tab
- Search for "Isaac Sim"
- Click "Install"
-
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-smishows GPU and driver version - CUDA:
nvcc --versionshows CUDA 12.2 - ROS 2:
ros2 run demo_nodes_cpp talkerruns without errors - Gazebo:
gz sim shapes.sdfopens simulation window - Isaac Sim: Launcher opens and Isaac Sim runs sample scene
- Python:
python --versionshows 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
- Configure IDE: Install VS Code with ROS and Python extensions
- Clone Course Examples:
git clone <course-repo-url> - 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:
- Edge Kit Setup - Physical robot hardware (Jetson Orin Nano)
- Cloud Setup - AWS/Azure with NVIDIA GPUs
Questions? Refer to the Glossary for terminology or consult course forums.