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