Files
RDC_Simulation/docs/ardupilot.md
2026-01-04 01:59:30 +00:00

1.7 KiB

ArduPilot GPS-Denied Simulation

Realistic flight controller simulation without GPS.

Quick Start (2 Terminals)

Terminal 1:

./scripts/run_ardupilot_sim.sh runway

Terminal 2:

sim_vehicle.py -v ArduCopter -f gazebo-iris --model JSON --console

# GPS-denied mode:
param set ARMING_CHECK 0
mode stabilize
arm throttle force

Installation

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

World Options

./scripts/run_ardupilot_sim.sh runway     # Iris on runway (default)
./scripts/run_ardupilot_sim.sh warehouse  # Iris in warehouse
./scripts/run_ardupilot_sim.sh zephyr     # Zephyr plane
./scripts/run_ardupilot_sim.sh gimbal     # Gimbal test
./scripts/run_ardupilot_sim.sh parachute  # Parachute test

GPS-Denied Configuration

In MAVProxy console:

param set ARMING_CHECK 0   # Disable pre-arm checks
mode stabilize             # Manual with stabilization
arm throttle force         # Force arm

GPU Support

Auto-detects: NVIDIA > Intel > AMD > Software

Check your GPU:

glxinfo | grep "OpenGL renderer"

MAVProxy Commands

mode stabilize     # Manual mode
mode alt_hold      # Altitude hold
arm throttle force # Arm motors
takeoff 5          # Takeoff 5m
mode land          # Land

Troubleshooting

"No JSON sensor message"

Gazebo isn't sending data to SITL. Check:

  1. Start Gazebo FIRST, then SITL
  2. Plugin path is set:
echo $GZ_SIM_SYSTEM_PLUGIN_PATH | grep ardupilot

Simulation laggy

Check GPU is being used (not software):

glxinfo | grep "OpenGL renderer"
# Should NOT show "llvmpipe"

Can't arm

param set ARMING_CHECK 0
arm throttle force