Files
RDC_Simulation/docs/installation.md

4.1 KiB

Installation

Quick Install (Ubuntu/WSL)

./setup/install_ubuntu.sh
./setup/install_ardupilot.sh
source ~/.bashrc

What Gets Installed

Component Location
ArduPilot SITL ~/ardupilot
ArduPilot venv ~/venv-ardupilot
ardupilot_gazebo ~/ardupilot_gazebo
Gazebo Harmonic System
ROS 2 System
MAVProxy ~/.local/bin

Platform-Specific Installation

Ubuntu (Native)

./setup/install_ubuntu.sh --with-ardupilot

Windows (via WSL2)

WSL2 (Windows Subsystem for Linux) is the recommended way to run this simulation on Windows.

Step 1: Install WSL2

Open PowerShell as Administrator:

wsl --install -d Ubuntu-24.04

Restart your computer when prompted.

Step 2: Configure WSL2 for GUI Apps

WSL2 on Windows 11 has built-in GUI support (WSLg). For Windows 10, you may need an X server:

# Windows 11 - WSLg is automatic, no extra setup needed

# Windows 10 - Install VcXsrv or X410 from Microsoft Store

Step 3: Install in WSL

Open Ubuntu from Start menu:

# Clone the project (or copy from Windows)
git clone https://github.com/your-repo/RDC_Simulation.git
cd RDC_Simulation

# Run installation
./setup/install_ubuntu.sh
./setup/install_ardupilot.sh
source ~/.bashrc

Step 4: GPU Acceleration in WSL

For best performance with Gazebo:

# Check GPU availability
glxinfo | grep "OpenGL renderer"

# Should show your GPU, not "llvmpipe"
# If using NVIDIA, install NVIDIA GPU driver for WSL:
# https://developer.nvidia.com/cuda/wsl

WSL Tips

  • Access Windows files: /mnt/c/Users/YourName/
  • Open file explorer: explorer.exe .
  • Copy to clipboard: cat file | clip.exe
  • Memory limit: Create %UserProfile%\.wslconfig:
    [wsl2]
    memory=8GB
    processors=4
    

macOS

Gazebo is not officially supported on macOS. Use standalone mode:

./setup/install_macos.sh
python standalone_simulation.py

For full simulation, use a Linux VM (UTM for Apple Silicon) or Docker.

Arch Linux

./setup/install_arch.sh

ROS 2 and Gazebo are available via AUR - see script output for details.

Dependencies

pip install -r requirements.txt
  • pybullet
  • numpy
  • pillow
  • opencv-python
  • pymavlink
  • pexpect

Verify Installation

# Source the environment
source activate.sh

# Check ArduPilot tools
sim_vehicle.py --help
which mavproxy.py

# Check Gazebo
gz sim --help

Environment Setup

After installation, always source the environment before running:

source activate.sh
# or
source ~/.bashrc  # if ArduPilot was installed

The activation script sets up:

  • ROS 2 environment
  • ArduPilot Python venv (with empy, pymavlink, etc.)
  • Gazebo resource paths
  • ArduPilot tools path

Troubleshooting

"empy not found" or waf configure fails

The ArduPilot venv isn't activated. Run:

source ~/venv-ardupilot/bin/activate
pip install empy==3.3.4

sim_vehicle.py not found

source ~/.ardupilot_env
# or
export PATH=$PATH:~/ardupilot/Tools/autotest

mavproxy.py not found

export PATH=$PATH:~/.local/bin

pexpect error

pip install pexpect

Gazebo slow / Software rendering

glxinfo | grep "OpenGL renderer"

Should show your GPU, not "llvmpipe". Install proper GPU drivers:

  • NVIDIA: sudo apt install nvidia-driver-XXX
  • AMD: sudo apt install mesa-vulkan-drivers
  • Intel: Usually works out of box
  • WSL: Install NVIDIA WSL driver from nvidia.com

Wrong Python environment

If you see errors about missing packages that should be installed:

# Check which Python is being used
which python3

# Should be: ~/venv-ardupilot/bin/python3
# If not, activate the correct venv:
source ~/venv-ardupilot/bin/activate

WSL: Display not working

# Check DISPLAY variable
echo $DISPLAY

# For WSLg (Windows 11), should be auto-set
# For Windows 10 with X server:
export DISPLAY=:0

WSL: Out of memory

Create %UserProfile%\.wslconfig:

[wsl2]
memory=8GB
swap=4GB

Then restart WSL: wsl --shutdown