# ArduPilot GPS-Denied Simulation Realistic flight controller simulation without GPS. ## Quick Start (2 Terminals) **Terminal 1:** ```bash ./scripts/run_ardupilot_sim.sh runway ``` **Terminal 2:** ```bash 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 ```bash ./setup/install_ardupilot.sh source ~/.bashrc ``` ## World Options ```bash ./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: ```bash 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: ```bash glxinfo | grep "OpenGL renderer" ``` ## MAVProxy Commands ```bash 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: ```bash echo $GZ_SIM_SYSTEM_PLUGIN_PATH | grep ardupilot ``` ### Simulation laggy Check GPU is being used (not software): ```bash glxinfo | grep "OpenGL renderer" # Should NOT show "llvmpipe" ``` ### Can't arm ```bash param set ARMING_CHECK 0 arm throttle force ```