Workstation Setup Guide
This guide provides comprehensive instructions for setting up a high-performance workstation optimized for Physical AI and humanoid robotics development. Follow these steps carefully to ensure your environment meets the demanding requirements of modern robotics simulation and AI development.
Overview
Physical AI development requires substantial computational resources for:
- Real-time physics simulation (Gazebo, Isaac Sim)
- AI model training and inference
- Computer vision processing
- 3D rendering and visualization
- Multi-sensor data processing
Hardware Requirements
Minimum Specifications
Processor: Intel Core i7 (13th Gen) or AMD Ryzen 9
- 8+ cores, 16+ threads preferred
- Base clock 3.0+ GHz
- Support for AVX2 instruction set
Memory: 32GB DDR5 (minimum)
- 64GB DDR5 recommended for complex simulations
- Dual-channel or quad-channel configuration
GPU: NVIDIA RTX 4070 Ti (12GB VRAM) - minimum
- RTX 4090 (24GB VRAM) recommended
- Must support CUDA 11.8+ and ray tracing
- Multiple GPU support for advanced workloads
Storage: 1TB NVMe SSD (minimum)
- 2TB NVMe SSD recommended
- Additional 4TB HDD for data storage
- USB-C/Thunderbolt external storage support
Operating System: Ubuntu 22.04 LTS (mandatory)
- Native installation preferred
- Dual-boot configuration acceptable
- Virtual machines not supported for real-time workloads
Recommended Hardware Configurations
Development Workstation (Premium)
CPU: Intel Core i9-13900K or AMD Ryzen 9 7950X
GPU: NVIDIA RTX 4090 (24GB VRAM)
RAM: 64GB DDR5-5600 (4x16GB)
Storage: 2TB NVMe SSD + 4TB HDD
Cooling: Liquid cooling system
Power: 1000W 80+ Platinum PSU
Case: Full tower with excellent airflow
Research Workstation (Intermediate)
CPU: Intel Core i7-13700K or AMD Ryzen 7 7700X
GPU: NVIDIA RTX 4080 (16GB VRAM)
RAM: 32GB DDR5-5200 (2x16GB)
Storage: 1TB NVMe SSD + 2TB HDD
Cooling: High-end air cooling
Power: 850W 80+ Gold PSU
Case: Mid-tower with good ventilation
Ubuntu 22.04 LTS Installation
Pre-Installation Checklist
- Backup Data: Ensure all important data is backed up
- Verify Compatibility: Check hardware compatibility with Ubuntu 22.04
- Create Installation Media: USB drive (8GB+ minimum)
- Network Access: Ensure internet connectivity for updates
Installation Process
-
Download Ubuntu 22.04 LTS
# Verify download integrity
sha256sum ubuntu-22.04.3-desktop-amd64.iso -
Create Bootable USB
# Using Rufus (Windows) or dd (Linux/Mac)
dd if=ubuntu-22.04.3-desktop-amd64.iso of=/dev/sdX bs=4M status=progress -
Boot from USB
- Enter BIOS/UEFI setup (F2, F12, or Del during boot)
- Disable Secure Boot (temporarily)
- Set USB drive as first boot device
- Enable virtualization (VT-x/AMD-V)
-
Partition Scheme (Recommended)
/boot/efi 512MB EFI System Partition
/boot 2GB Ext4 (boot files)
swap 8GB Swap space (equal to RAM for hibernation)
/ 100GB Ext4 (root filesystem)
/home 500GB Ext4 (user data)
/var 200GB Ext4 (applications, logs)
/tmp 50GB Ext4 (temporary files)
Post-Installation Configuration
-
Update System
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git vim htop -
Enable Additional Drivers
# Install proprietary NVIDIA drivers
ubuntu-drivers autoinstall
sudo reboot -
Configure SSH Access
sudo apt install -y openssh-server
sudo systemctl enable ssh
sudo ufw allow ssh
NVIDIA Driver and CUDA Setup
Driver Installation
-
Verify GPU Detection
lspci | grep -i nvidia
nvidia-smi -
Install Latest NVIDIA Drivers
# Add NVIDIA repository
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-get update
# Install driver and CUDA toolkit
sudo apt-get -y install cuda-toolkit-12-2 -
Configure Environment
echo 'export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc
source ~/.bashrc
CUDA Verification
# Verify CUDA installation
nvcc --version
# Test with sample compilation
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
make
./deviceQuery
ROS 2 Humble Installation
Setup Instructions
-
Set Locale
sudo apt install -y 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 -y software-properties-common
sudo add-apt-repository universe
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
sudo apt update
sudo apt install -y ros-humble-desktop -
Development Tools
sudo apt install -y python3-pip python3-venv
pip install --user pip-upgrade setuptools
pip install --user rosdep
sudo rosdep init
rosdep update
Environment Setup
# Add ROS 2 to bash session
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
# Verify installation
ros2 doctor
Development Environment Configuration
Python Environment
-
Install Python 3.10
sudo apt install -y python3.10 python3.10-venv python3.10-dev -
Create Virtual Environment
python3.10 -m venv ~/ros2_ws/env
source ~/ros2_ws/env/bin/activate
pip install --upgrade pip -
Install Essential Packages
pip install numpy scipy matplotlib opencv-python
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install tensorflow-gpu
pip install jupyter notebook pandas scikit-learn
ROS 2 Workspace Setup
# Create workspace
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
# Clone essential packages
git clone https://github.com/ros-geometry/geometry2.git
git clone https://github.com/ros-perception/vision_opencv.git
git clone https://github.com/ros-drivers/usb_cam.git
# Build workspace
cd ~/ros2_ws
colcon build --symlink-install
# Source workspace
echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc
source ~/.bashrc
Performance Optimization
System Tuning
-
CPU Governor Settings
# Set to performance mode
sudo cpupower frequency-set -g performance
# Make permanent
echo 'GOVERNOR="performance"' | sudo tee /etc/default/cpufrequtils -
Memory Management
# Configure swappiness
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
# Configure dirty pages
echo 'vm.dirty_ratio=15' | sudo tee -a /etc/sysctl.conf
echo 'vm.dirty_background_ratio=5' | sudo tee -a /etc/sysctl.conf -
GPU Performance
# Set GPU performance mode
sudo nvidia-smi -pm 1
sudo nvidia-smi -ac 877,1215
# Create persistence script
echo '#!/bin/bash
sudo nvidia-smi -pm 1
sudo nvidia-smi -ac 877,1215' | sudo tee /usr/local/bin/gpu-performance
sudo chmod +x /usr/local/bin/gpu-performance
File System Optimization
-
SSD Optimization
# Enable fstrim timer
sudo systemctl enable fstrim.timer
sudo systemctl start fstrim.timer
# Configure I/O scheduler
echo 'mq-deadline' | sudo tee /sys/block/sdX/queue/scheduler -
Tmpfs Configuration
# Add to /etc/fstab for temporary files in RAM
echo 'tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0' | sudo tee -a /etc/fstab
echo 'tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0' | sudo tee -a /etc/fstab
Verification and Testing
System Performance Test
# CPU performance
sysbench cpu --cpu-max-prime=20000 run
# Memory performance
sysbench memory --memory-block-size=1K --memory-total-size=10G run
# GPU benchmark
nvidia-smi dmon -s u -d 1
# ROS 2 latency test
ros2 run rclcpp_examples latency_test
ROS 2 Functionality Test
# Test basic ROS 2 functionality
ros2 run demo_nodes_cpp talker &
ros2 run demo_nodes_py listener
# Test gazebo simulation
ros2 launch gazebo_ros empty_world.launch.py
# Verify GPU acceleration
ros2 run rviz2 rviz2 # Should open with hardware acceleration
Troubleshooting
Common Issues
-
NVIDIA Driver Issues
# Reinstall drivers
sudo apt purge nvidia-*
sudo ubuntu-drivers autoinstall
sudo reboot -
ROS 2 Environment Issues
# Reset environment
unset ROS_DOMAIN_ID
unset ROS_LOCALHOST_ONLY
source /opt/ros/humble/setup.bash -
Performance Issues
# Check system resources
htop
iotop
nvidia-smi dmon
# Check thermals
sensors
sudo watch -n 1 nvidia-smi
Getting Help
- ROS 2 Documentation: https://docs.ros.org/en/humble/
- NVIDIA Developer Forums: https://developer.nvidia.com/
- Ubuntu Forums: https://askubuntu.com/
- Hardware-Specific Communities: Check manufacturer forums
Next Steps
After completing this workstation setup:
- GPU Optimization Guide: Proceed to GPU Optimization for advanced GPU tuning
- Cloud Setup: Consider Cloud Alternatives for additional compute resources
- Hardware Procurement: Review hardware procurement options for robot components
Validation Checklist
- Ubuntu 22.04 LTS installed and updated
- NVIDIA drivers installed and functioning
- CUDA toolkit installed and verified
- ROS 2 Humble installed with development tools
- Python virtual environment configured
- ROS 2 workspace created and built
- System performance optimizations applied
- All verification tests passing
- Backup and recovery procedures documented
Estimated Setup Time: 4-6 hours Difficulty Level: Intermediate Prerequisites: Basic Linux administration skills Support: Available through course forums and office hours
For cloud-based alternatives or budget-conscious options, see our Cloud Alternatives guide.