{"id":19195454,"url":"https://github.com/ardupilot/apm_planner","last_synced_at":"2025-04-08T11:10:57.109Z","repository":{"id":7921485,"uuid":"9307757","full_name":"ArduPilot/apm_planner","owner":"ArduPilot","description":"APM Planner Ground Control Station (Qt)","archived":false,"fork":false,"pushed_at":"2024-07-30T12:18:06.000Z","size":267823,"stargazers_count":526,"open_issues_count":229,"forks_count":472,"subscribers_count":78,"default_branch":"master","last_synced_at":"2025-04-01T09:32:09.107Z","etag":null,"topics":["apm-planner","arducopter","ardupilot","arduplane","ardurover","autonomous-vehicles","autopilot","copter","gcs","ground-control-station","open-source","pixhawk","plane","robot-operating-system","ros"],"latest_commit_sha":null,"homepage":"https://ardupilot.org","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"acdlite/react-remarkable","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ArduPilot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-04-08T21:56:57.000Z","updated_at":"2025-03-17T01:55:31.000Z","dependencies_parsed_at":"2023-10-20T17:31:34.262Z","dependency_job_id":"919d0469-c5d0-41c3-914d-057729e3639c","html_url":"https://github.com/ArduPilot/apm_planner","commit_stats":{"total_commits":4115,"total_committers":139,"mean_commits":29.60431654676259,"dds":0.774726609963548,"last_synced_commit":"8c4302285dc773684a2d2ac3cf84afe7727242a6"},"previous_names":[],"tags_count":73,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArduPilot%2Fapm_planner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArduPilot%2Fapm_planner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArduPilot%2Fapm_planner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArduPilot%2Fapm_planner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArduPilot","download_url":"https://codeload.github.com/ArduPilot/apm_planner/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247829511,"owners_count":21002997,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apm-planner","arducopter","ardupilot","arduplane","ardurover","autonomous-vehicles","autopilot","copter","gcs","ground-control-station","open-source","pixhawk","plane","robot-operating-system","ros"],"created_at":"2024-11-09T12:10:04.870Z","updated_at":"2025-04-08T11:10:57.090Z","avatar_url":"https://github.com/ArduPilot.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"APM Planner 2.0\n===============\n\n**Travis CI Build:**  [![Build Status](https://travis-ci.org/ArduPilot/apm_planner.svg?branch=master)](https://travis-ci.org/ArduPilot/apm_planner)\n\n**Support:**\n[ardupilot.com Support Forum for APM Planner 2.0](https://discuss.ardupilot.org/c/ground-control-software/apm-planner-2-0/)\n\nSupport is handled in the forum, we keep issues here known problems and enhancements\n\n**Developer Chat:** https://gitter.im/diydrones/apm_planner\n\n[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/diydrones/apm_planner?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n**Credits:**\nhttps://ardupilot.org/planner2/docs/credits-and-contributors.html\n\n[Waffle.io](https://waffle.io/diydrones/apm_planner) Progress Graph\n\n[![Throughput Graph](https://graphs.waffle.io/diydrones/apm_planner/throughput.svg)](https://waffle.io/diydrones/apm_planner/metrics)\n\nDocumentation\n=============\nsee https://ardupilot.org/planner2/\n\nMac OS X\n========\n\nTo build on Mac OS X (10.6 or later):\n\nInstall QT\n-----------\n1) Download Qt 5.4.2 or greater (Does not work with Qt4.x)\n   - you can verify the version by typing 'qmake -v' and it should report Qt 5.4.2 or greater as the version.\n   - NOTE: Tested with Qt5.9.3 wth success\n\n2) Double click the package installer\n\nOr install QT with brew: `brew link qt5 --force`\n\n\nBuild APM Planner\n--------------------\n1) From the terminal go to the `apm_planner` directory created when you cloned the repository.\n\n2) Run `qmake -spec macx-clang apm_planner.pro` (old version `qmake -spec macx-g++ apm_planner.pro`)\n\n3) Run `make -j8`\n\n4) Run `open ./release/apmplanner2.app`\n\n\nLinux \n=====\n\nInstall the required packages:\n---------------------------------\n\n\n**Packages needed on Ubuntu 18.04 LTS:**\n\nBe sure to run apt-get update first\n\n\n```\nsudo apt-get update\nsudo apt-get install qt5-qmake qt5-default \\\n  qtscript5-dev libqt5webkit5-dev libqt5serialport5-dev \\\n  libqt5svg5-dev qtdeclarative5-qtquick2-plugin \\\n  libqt5opengl5-dev qml-module-qtquick-controls\nsudo apt-get install git libsdl1.2-dev  libsndfile-dev \\\n  flite1-dev libssl-dev libudev-dev libsdl2-dev python-serial python-pexpect\n```\n\n\n**Packages needed on Ubuntu 22.04 LTS:**\n\n(**NOTE:** On Ubuntu 22.04 use only the native (ubuntu) Qt version 5.15.3 as the official Qt 5.15.2 which comes with the Qt Maintenance tool only supports OpenSSL 1.1.1 which is not supported by Ubuntu 22.04 anymore.)\n\nBe sure to run apt-get update first\n\n```\nsudo apt-get update\nsudo apt-get install qt5-qmake qtbase5-dev qtscript5-dev libqt5webkit5-dev libqt5serialport5-dev libqt5svg5-dev libqt5opengl5-dev qml-module-qtquick-controls\nsudo apt-get install git libsdl1.2-dev libsndfile1-dev flite1-dev libssl-dev libudev-dev libsdl2-dev\n```\n\n\n**Packages needed on Fedora (tested against Fedora 21), use:**\n\n```\nsudo yum update\nsudo yum install qt-devel qt5-qtscript-devel \\\n  qt5-qtwebkit-devel qt5-qtserialport-devel qt5-qtsvg-devel \\\n  qt5-qtdeclarative-devel qt5-qtquick1-devel pyserial python-pexpect\n\nsudo yum install SDL-devel libsndfile-devel \\\n  flite-devel openssl-devel libudev-devel SDL2-devel\n```\n\nClone the repository in your workspace:\n------------------------------------------\n\n```\ncd ~/workspace\ngit clone https://github.com/diydrones/apm_planner\n```\n\nBuild APM Planner:\n---------------------\n\n```\ncd ~/workspace/apm_planner\nqmake apm_planner.pro\nmake\n```\n\nRun APM Planner:\n-------------------\n\n```\n./release/apmplanner2\n```\n\nPermanent installation (optional, if you'd like to install APM Planner in a fixed location):\n-----------------------------------------------------------------------------------------------\n\nThere are two ways to do this:\n\na) Using Debuild:\n```\ncd ~/workspace/apm_planner/debian\n./gitlog-to-changelog.pl \u003e changelog\n\ncd ..\ndebuild -us -uc -d\n```\nThen install the deb via \n```\ndpkg -i ~/workspace/apmplanner2_2.0.XX_YYYY.deb\n```\nWhere XX is the version number, and YYY is your architecture. This method should add it to your launcher too.\n\nIf it does not install due to dependancies, you can resolve them with\n```\nsudo apt-get install -f\n````\nThen attempt to install again.\n\nb) Using make:\n```\ncd ~/workspace/apm_planner\nsudo make install\n```\nThis will place the binary in your /bin/ folder and corresponding files in /share/\n\n\nOpenBSD\n========\n\nTo build on OpenBSD 6.2\n-------------------\n1) install dependencies\n\n```\npkg_add qt5 libsndfile sdl sdl2 flite py-serial py-pexpect openssl git\n```\n\n2) Clone the apm_planner repo\n\n```\ngit clone git@github.com:ArduPilot/apm_planner.git\n```\n\n3) Build the project\n\n```\ncd apm_planner\n```\n\n```\nqmake-qt5 apm_planner.pro\n```\n\n```\nmake\n```\n\nIf the project compiled without errors you will find the binary in ./release\n\n\nWindows\n=======\n\nTo build on Windows there are two options:\n* Option 1: Visual Studio 2013 native compile\n    * Download and install [Visual Studio 2013 express](http://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-windows-desktop)\n* Option 2: MinGW cross-compile\n\nInstall Qt with the [online Qt installer](http://www.qt.io/download-open-source): \n* You will be presented with a list of Qt versions and compiler options to install\n* You can install mulitple versions and compilers beside one another and choose which to use later \n* Select any one (or mulitple) of the following options, \n\t* Qt 5.5 MSVC2013 32-bit\n\t* Qt 5.5 MSVC2013 64-bit\n\t* Qt 5.5 MinGW 4.9.2 32-bit (also select the same version of MinGW under Tools)\n\nConfigure QtCreator:\n* The installer is pretty smart but it's good to double check everything was setup corretly\n* Start QtCreator\n    * Click on the *Tools* menu item then *Options*\n    * Select *Build \u0026 Run* on the left hand side\n    * Look at the *Compilers* tab\n        * Under *Auto-detected* should be a list of compilers installed, such as:\n            * Microsoft Visual C++ Compiler 12.0 (x86)\n            * Microsoft Visual C++ Compiler 12.0 (amd64)\n            * MinGW 4.9.2 32bit\n        * If using MSVC there will be a few others listed as well but that is normal\n    * Look at the *Qt Versions* Tab:\n        * Under *Auto-detected* should be a list of the Qt versions you installed earlier:\n\t\t    * Qt 5.5.1 MSVC2013 32bit\n\t\t    * Qt 5.5.1 MSVC2013 32bit\n\t\t    * Qt 5.5.1 MinGW 32bit\n\t\t* If your desired Qt versions is not listed, or you installed one after the initial setup:\n\t\t\t* Click Add\n\t\t\t* Find the qmake.exe for the version you want\n\t\t\t    * For example: c:/Qt/5.5/msvc2013/bin/qmake.exe\n\t\t\t    * For example: c:/Qt/5.5/mingw492_32/bin/qmake.exe\n\t\t\t* Click Apply\n    * Look under the *Kits* tab:\n        * Under *Auto-detected* should be a list of the appropriate kits:\n            * Desktop Qt 5.5.1 MSVC2013 32bit\n            * Desktop Qt 5.5.1 MSVC2013 63bit\n            * Desktop Qt 5.5.1 MinGB 32bit\n\t\t* If a kit with your desired Qt versions and/or compiler is not listed, or you installed a new Qt version or compiler after the initial setup:\n\t\t\t* Click *Add*, give it a nice name (like Qt 5.5.1 MSVC 32bit)\n\t\t\t* Select the desired compiler from the drop down\n\t\t\t* Select the Qt version (with matching compiler) from the drop down\n\t\t\t* Click Apply\n    - Click *Ok* at the bottom of the window\n* QtCreator is now configured for fun\n\nBuild APM Planner 2.0:\n* Start QtCreator (if not already)\n* Click on *File* then *Open File or Project*\n* Find qgroundcontrol.pro, then click *Open*\n    * The first time will ask you to configure project\n    * Select the desired version (same list of Kits from above) \n    * Click *Configure Project*\n* Go to *Projects* tab on the left hand side\n    * Select the \"Shadow Build\" checkbox\n    * Browse to a location where you want the application to build to\n* From the *Build* drop down select *Build Project qgroundcontrol* (or Ctrl+B)\n* Run the generated apmplanner2.exe and enjoy!\n\nInstalling this compiled version: \n* To Do\n\nRepository Layout (2014-3-28: out-of-date, needs to be fixed)\n=================\n```\nqgroundcontrol:\n\tdemo-log.txt\n\tlicense.txt \n\tqgcunittest.pro - For the unit tests.\n\tqgcunittest.pro.user\n\tqgcvideo.pro\n\tqgroundcontrol.pri - Used by qgroundcontrol.pro\n\tqgroundcontrol.pro - Project opened in QT to run qgc.\n\tqgroundcontrol.pro.user \n\tqgroundcontrol.qrc - Holds many images.\n\tqgroundcontrol.rc - line of code to point toward the images\n\tqserialport.pri - generated by qmake.\n\ttestlog.txt\n\ttestlog2.txt \n\tuser_config.pri.dist - Custom message specs to be added here. \ndata: \n\tMaps from yahoo and kinect and earth. \ndeploy: \n\tInstall and uninstall for win32.\n\tCreate a debian packet.\n\tCreate .DMG file for publishing for mac.\n\tAudio test on mac.\t\ndoc: \n\tDoxyfile is in this directory and information for creating html documentation for qgc.\nfiles: \n\tHas the audio for the vehicle and data output. \n\t\tardupilotmega: \n\t\t\twidgets and tool tips for pilot heading for the fixed wing.\n\t\t\ttooltips for quadrotor\n\t\tflightgear:\n\t\t\tAircraft: \n\t\t\t\tDifferent types of planes and one jeep. \n\t\t\tProtocol: \n\t\t\t\tThe protocol for the fixed_wings and quadrotor and quadhil.holds info about the fixed wing yaw, roll etc. \t\t\t\t\tQuadrotor. Agian holds info about yaw, roll etc.\n\t\tPixhawk:\n\t\t\tWidgets for hexarotor. Widgets and tooltips for quadrotor.\n\t\tvehicles: \n\t\t\tdifferent vehicles. Seems to hold the different kinds of aircrafts as well as files for audio and the hexarotor \t\t\tand quadrotor.\n\t\twidgets: \n\t\t\tHas a lot of widgets defined for buttons and sliders.\n\nimages: \n\tFor the UI. Has a bunch of different images such as images for applications or actions or buttons.\nlib: \n\tSDL is located in this direcotry. \n\tMsinttypes: \n\t\tDefines intteger types for microsoft visual studio. \n\tsdl:\n\t\tInformation about the library and to run the library on different platforms. \nmavlink: \n\tThe files for the library mavlink. \nqgcunittest: \n\tHas the unittests for qgc\nsettings: \n\tParameter lists for alpha, bravo and charlie. \n\tData for stereo, waypoints and radio calibration. \nsrc:\n\tCode for QGCCore, audio output, configuration, waypoints, main and log compressor.\n\tapps - Code for mavlink generation and for a video application.\n\tcomm - Code for linking to simulation, mavlink, udp, xbee, opal, flight gear and interface.\n\tHas other libraries. Qwt is in directory named lib. The other libraries are in libs.\n\tlib - qwt library\n\tlibs - eigen, opmapcontrol, qestserialport, qtconcurrent, utils.\n\tinput - joystick and freenect code.\n\tplugins - Qt project for PIXHAWK plugins.\n\tuas - Ardu pilot, UAS, mavlink factory, uas manager, interface, waypoint manager and slugs.\n\tui - Has code for data plots, waypoint lists and window congfiguration. All of the ui code.\nthirdParty: \n\tLibrary called lxbee.\n\tLibrary called QSerialPort.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fardupilot%2Fapm_planner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fardupilot%2Fapm_planner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fardupilot%2Fapm_planner/lists"}