# ArduPilot — Open-Source Autopilot for Drones, Rovers and Submarines > ArduPilot is the leading open-source autopilot software suite supporting multicopters, fixed-wing aircraft, rovers, boats, and submarines. It provides GPS navigation, mission planning, and autonomous flight capabilities on affordable hardware. ## Install Save as a script file and run: # ArduPilot — Open-Source Autopilot for Drones, Rovers and Submarines ## Quick Use ```bash git clone --recurse-submodules https://github.com/ArduPilot/ardupilot.git cd ardupilot Tools/environment_install/install-prereqs-ubuntu.sh -y . ~/.profile ./waf configure --board sitl ./waf copter sim_vehicle.py -v ArduCopter --console --map ``` ## Introduction ArduPilot is the most trusted open-source autopilot platform, powering everything from hobbyist quadcopters to commercial survey drones and research submarines. Its codebase has been in active development since 2010 and runs on a wide range of flight controllers. ## What ArduPilot Does - Controls multirotor, fixed-wing, helicopter, rover, boat, and submarine vehicles - Executes autonomous missions with GPS waypoints, geofences, and return-to-launch - Streams real-time telemetry to ground control stations over radio, Wi-Fi, or cellular links - Supports companion computers for onboard image processing and obstacle avoidance - Integrates with MAVLink protocol for interoperability with ground stations and payloads ## Architecture Overview ArduPilot runs a real-time control loop on STM32-based flight controllers (Pixhawk family and others). A hardware abstraction layer (AP_HAL) separates vehicle logic from board-specific drivers. The SITL (Software in the Loop) simulator lets developers test on a desktop without hardware. Vehicle types share common libraries for EKF navigation, PID control, and MAVLink communication. ## Self-Hosting & Configuration - Flash firmware via Mission Planner (Windows), QGroundControl (cross-platform), or `waf` CLI build - SITL simulator runs entirely on Linux or macOS for testing without hardware - Parameters are tuned through ground station software or MAVLink commands - Supports Lua scripting for custom on-board logic and automation - Log files (.bin) can be analyzed with MAVExplorer or the web-based UAV Log Viewer ## Key Features - Supports over 100 flight controller boards from various manufacturers - Extended Kalman Filter (EKF3) fuses GPS, IMU, barometer, and compass data for accurate positioning - Autonomous mission execution with conditional waypoints, do-commands, and spline paths - Geofencing and failsafe actions (return to launch, land, continue mission) - SITL and HITL simulation for safe development and regression testing ## Comparison with Similar Tools - **PX4** — alternative open-source autopilot with Dronecode backing; ArduPilot supports more vehicle types and has a larger hobbyist community - **Betaflight** — focused on FPV racing quads with low-latency control; ArduPilot targets autonomous missions and GPS navigation - **DJI SDK** — proprietary; ArduPilot is fully open source and hardware-agnostic - **iNav** — navigation firmware for fixed-wing and multirotor; ArduPilot offers richer mission planning and companion computer integration - **Mission Planner / QGroundControl** — ground station software that pairs with ArduPilot firmware, not competitors ## FAQ **Q: What hardware do I need to get started?** A: A Pixhawk-compatible flight controller (starting around $50), a GPS module, and a radio telemetry link. For testing, SITL requires only a Linux or macOS machine. **Q: Can ArduPilot be used commercially?** A: Yes. ArduPilot is licensed under GPLv3. Many commercial drone companies build products on ArduPilot firmware. **Q: How do I contribute code?** A: Fork the repository, develop on a feature branch, test in SITL, and submit a pull request. The project has detailed developer documentation and an active Discord community. **Q: Does ArduPilot support obstacle avoidance?** A: Yes, via companion computers running ROS or simple rangefinder-based avoidance. The BendyRuler and Dijkstra path planners are built in. ## Sources - https://github.com/ArduPilot/ardupilot - https://ardupilot.org/dev/ --- Source: https://tokrepo.com/en/workflows/asset-7dd9f4d8 Author: Script Depot