• Stars
    star
    471
  • Rank 93,216 (Top 2 %)
  • Language
    C++
  • License
    Other
  • Created over 11 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

APM Planner Ground Control Station (Qt)

APM Planner 2.0

Travis CI Build: Build Status

Support: ardupilot.com Support Forum for APM Planner 2.0

Support is handled in the forum, we keep issues here known problems and enhancements

Developer Chat: https://gitter.im/diydrones/apm_planner

Gitter

Credits: https://ardupilot.org/planner2/docs/credits-and-contributors.html

Waffle.io Progress Graph

Throughput Graph

Documentation

see https://ardupilot.org/planner2/

Mac OS X

To build on Mac OS X (10.6 or later):

Install QT

  1. Download Qt 5.4.2 or greater (Does not work with Qt4.x)

    • you can verify the version by typing 'qmake -v' and it should report Qt 5.4.2 or greater as the version.
    • NOTE: Tested with Qt5.9.3 wth success
  2. Double click the package installer

Or install QT with brew: brew link qt5 --force

Build APM Planner

  1. From the terminal go to the apm_planner directory created when you cloned the repository.

  2. Run qmake -spec macx-clang apm_planner.pro (old version qmake -spec macx-g++ apm_planner.pro)

  3. Run make -j8

  4. Run open ./release/apmplanner2.app

Linux

Install the required packages:

Packages needed on Ubuntu 18.04 LTS:

Be sure to run apt-get update first

sudo apt-get update
sudo apt-get install qt5-qmake qt5-default \
  qtscript5-dev libqt5webkit5-dev libqt5serialport5-dev \
  libqt5svg5-dev qtdeclarative5-qtquick2-plugin \
  libqt5opengl5-dev qml-module-qtquick-controls
sudo apt-get install git libsdl1.2-dev  libsndfile-dev \
  flite1-dev libssl-dev libudev-dev libsdl2-dev python-serial python-pexpect

Packages needed on Ubuntu 22.04 LTS:

(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.)

Be sure to run apt-get update first

sudo apt-get update
sudo apt-get install qt5-qmake qtbase5-dev qtscript5-dev libqt5webkit5-dev libqt5serialport5-dev libqt5svg5-dev libqt5opengl5-dev qml-module-qtquick-controls
sudo apt-get install git libsdl1.2-dev libsndfile1-dev flite1-dev libssl-dev libudev-dev libsdl2-dev

Packages needed on Fedora (tested against Fedora 21), use:

sudo yum update
sudo yum install qt-devel qt5-qtscript-devel \
  qt5-qtwebkit-devel qt5-qtserialport-devel qt5-qtsvg-devel \
  qt5-qtdeclarative-devel qt5-qtquick1-devel pyserial python-pexpect

sudo yum install SDL-devel libsndfile-devel \
  flite-devel openssl-devel libudev-devel SDL2-devel

Clone the repository in your workspace:

cd ~/workspace
git clone https://github.com/diydrones/apm_planner

Build APM Planner:

cd ~/workspace/apm_planner
qmake apm_planner.pro
make

Run APM Planner:

./release/apmplanner2

Permanent installation (optional, if you'd like to install APM Planner in a fixed location):

There are two ways to do this:

a) Using Debuild:

cd ~/workspace/apm_planner/debian
./gitlog-to-changelog.pl > changelog

cd ..
debuild -us -uc -d

Then install the deb via

dpkg -i ~/workspace/apmplanner2_2.0.XX_YYYY.deb

Where XX is the version number, and YYY is your architecture. This method should add it to your launcher too.

If it does not install due to dependancies, you can resolve them with

sudo apt-get install -f

Then attempt to install again.

b) Using make:

cd ~/workspace/apm_planner
sudo make install

This will place the binary in your /bin/ folder and corresponding files in /share/

OpenBSD

To build on OpenBSD 6.2

  1. install dependencies
pkg_add qt5 libsndfile sdl sdl2 flite py-serial py-pexpect openssl git
  1. Clone the apm_planner repo
git clone [email protected]:ArduPilot/apm_planner.git
  1. Build the project
cd apm_planner
qmake-qt5 apm_planner.pro
make

If the project compiled without errors you will find the binary in ./release

Windows

To build on Windows there are two options:

Install Qt with the online Qt installer:

  • You will be presented with a list of Qt versions and compiler options to install
  • You can install mulitple versions and compilers beside one another and choose which to use later
  • Select any one (or mulitple) of the following options,
    • Qt 5.5 MSVC2013 32-bit
    • Qt 5.5 MSVC2013 64-bit
    • Qt 5.5 MinGW 4.9.2 32-bit (also select the same version of MinGW under Tools)

Configure QtCreator:

  • The installer is pretty smart but it's good to double check everything was setup corretly
  • Start QtCreator
    • Click on the Tools menu item then Options
    • Select Build & Run on the left hand side
    • Look at the Compilers tab
      • Under Auto-detected should be a list of compilers installed, such as:
        • Microsoft Visual C++ Compiler 12.0 (x86)
        • Microsoft Visual C++ Compiler 12.0 (amd64)
        • MinGW 4.9.2 32bit
      • If using MSVC there will be a few others listed as well but that is normal
    • Look at the Qt Versions Tab:
      • Under Auto-detected should be a list of the Qt versions you installed earlier:
        • Qt 5.5.1 MSVC2013 32bit
        • Qt 5.5.1 MSVC2013 32bit
        • Qt 5.5.1 MinGW 32bit
      • If your desired Qt versions is not listed, or you installed one after the initial setup:
        • Click Add
        • Find the qmake.exe for the version you want
          • For example: c:/Qt/5.5/msvc2013/bin/qmake.exe
          • For example: c:/Qt/5.5/mingw492_32/bin/qmake.exe
        • Click Apply
    • Look under the Kits tab:
      • Under Auto-detected should be a list of the appropriate kits:
        • Desktop Qt 5.5.1 MSVC2013 32bit
        • Desktop Qt 5.5.1 MSVC2013 63bit
        • Desktop Qt 5.5.1 MinGB 32bit
      • 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:
        • Click Add, give it a nice name (like Qt 5.5.1 MSVC 32bit)
        • Select the desired compiler from the drop down
        • Select the Qt version (with matching compiler) from the drop down
        • Click Apply
    • Click Ok at the bottom of the window
  • QtCreator is now configured for fun

Build APM Planner 2.0:

  • Start QtCreator (if not already)
  • Click on File then Open File or Project
  • Find qgroundcontrol.pro, then click Open
    • The first time will ask you to configure project
    • Select the desired version (same list of Kits from above)
    • Click Configure Project
  • Go to Projects tab on the left hand side
    • Select the "Shadow Build" checkbox
    • Browse to a location where you want the application to build to
  • From the Build drop down select Build Project qgroundcontrol (or Ctrl+B)
  • Run the generated apmplanner2.exe and enjoy!

Installing this compiled version:

  • To Do

Repository Layout (2014-3-28: out-of-date, needs to be fixed)

qgroundcontrol:
	demo-log.txt
	license.txt 
	qgcunittest.pro - For the unit tests.
	qgcunittest.pro.user
	qgcvideo.pro
	qgroundcontrol.pri - Used by qgroundcontrol.pro
	qgroundcontrol.pro - Project opened in QT to run qgc.
	qgroundcontrol.pro.user 
	qgroundcontrol.qrc - Holds many images.
	qgroundcontrol.rc - line of code to point toward the images
	qserialport.pri - generated by qmake.
	testlog.txt
	testlog2.txt 
	user_config.pri.dist - Custom message specs to be added here. 
data: 
	Maps from yahoo and kinect and earth. 
deploy: 
	Install and uninstall for win32.
	Create a debian packet.
	Create .DMG file for publishing for mac.
	Audio test on mac.	
doc: 
	Doxyfile is in this directory and information for creating html documentation for qgc.
files: 
	Has the audio for the vehicle and data output. 
		ardupilotmega: 
			widgets and tool tips for pilot heading for the fixed wing.
			tooltips for quadrotor
		flightgear:
			Aircraft: 
				Different types of planes and one jeep. 
			Protocol: 
				The protocol for the fixed_wings and quadrotor and quadhil.holds info about the fixed wing yaw, roll etc. 					Quadrotor. Agian holds info about yaw, roll etc.
		Pixhawk:
			Widgets for hexarotor. Widgets and tooltips for quadrotor.
		vehicles: 
			different vehicles. Seems to hold the different kinds of aircrafts as well as files for audio and the hexarotor 			and quadrotor.
		widgets: 
			Has a lot of widgets defined for buttons and sliders.

images: 
	For the UI. Has a bunch of different images such as images for applications or actions or buttons.
lib: 
	SDL is located in this direcotry. 
	Msinttypes: 
		Defines intteger types for microsoft visual studio. 
	sdl:
		Information about the library and to run the library on different platforms. 
mavlink: 
	The files for the library mavlink. 
qgcunittest: 
	Has the unittests for qgc
settings: 
	Parameter lists for alpha, bravo and charlie. 
	Data for stereo, waypoints and radio calibration. 
src:
	Code for QGCCore, audio output, configuration, waypoints, main and log compressor.
	apps - Code for mavlink generation and for a video application.
	comm - Code for linking to simulation, mavlink, udp, xbee, opal, flight gear and interface.
	Has other libraries. Qwt is in directory named lib. The other libraries are in libs.
	lib - qwt library
	libs - eigen, opmapcontrol, qestserialport, qtconcurrent, utils.
	input - joystick and freenect code.
	plugins - Qt project for PIXHAWK plugins.
	uas - Ardu pilot, UAS, mavlink factory, uas manager, interface, waypoint manager and slugs.
	ui - Has code for data plots, waypoint lists and window congfiguration. All of the ui code.
thirdParty: 
	Library called lxbee.
	Library called QSerialPort.

More Repositories

1

ardupilot

ArduPlane, ArduCopter, ArduRover, ArduSub source
C++
10,757
star
2

MissionPlanner

Mission Planner Ground Control Station for ArduPilot (c# .net)
C#
1,753
star
3

ardupilot_wiki

Repository for ArduPilot wiki issues and wiki-specific website infrastructure.
Python
485
star
4

MAVProxy

MAVLink proxy and command line ground station
Python
393
star
5

pymavlink

python MAVLink interface and utilities
Python
380
star
6

SiK

Tools and firmware for the Si1000
C
252
star
7

UAVLogViewer

An online viewer for UAV log files
JavaScript
137
star
8

Schematics

C
131
star
9

OctomapPlanner

ArduPilot Gazebo SITL 3D mapping and planning
C++
127
star
10

companion

Companion computer startup scripts and examples
Shell
95
star
11

ArduRemoteID

RemoteID support using OpenDroneID
C++
90
star
12

ardupilot_gazebo

Plugins and models for vehicle simulation in Gazebo Sim with ArduPilot SITL controllers
C++
74
star
13

node-mavlink

This project is providing native TypeScript bindings and tools for sending and receiving MavLink messages over a verity of medium
TypeScript
56
star
14

alceosd

AlceOSD - Graphical OSD
C#
51
star
15

ChibiOS

Fork of ChibiOS for ArduPilot
C
47
star
16

SITL_Models

Models of aircraft for SITL
HTML
40
star
17

MethodicConfigurator

A clear ArduPilot configuration sequence
Python
39
star
18

ardupilot_gz

Tools for ArduPilot ROS2 integration and testing on ROS 2 humble
Python
31
star
19

ArduConfigurator

JavaScript
30
star
20

APWeb

ArduPilot web server interface
JavaScript
29
star
21

dema-rc

Linux Drone Remote Controller
C
20
star
22

binary

repository for binary files associated with ardupilot
GLSL
17
star
23

OMC

OpenMissionControl
C++
17
star
24

plotjuggler-apbin-plugins

ArduPilot Dataflash plugin for Plotjuggler
C++
15
star
25

AP_Cloud

Fleet management solution for ArduPilot Drones
JavaScript
13
star
26

CustomBuild

Custom build server source
Python
13
star
27

WebTools

JavaScript
11
star
28

ardupilot_dev_docker

Shell
9
star
29

SoloScripts

8
star
30

terraingen

Ardupilot Terrain Generator website
Python
7
star
31

OMC-docs

OpenMissionControl documentation
6
star
32

ChibiOS.svn

Mirror of ChibiOS svn repository
C
5
star
33

ardupilot_wiki_copy

Source for ardupilot.org website
Python
5
star
34

ParameterRepository

All generated parameters in a single place
HTML
5
star
35

ardupilot-mavsdk

Shell
4
star
36

UDPProxy

UDP Proxy For MAVLink2
C++
4
star
37

ardupilot_vscode_devenv

VS Code extension for Ardupilot development setup
TypeScript
4
star
38

useralerts

User Alerts for ArduPilot
HTML
4
star
39

node-mavlink-mappings

TypeScript
2
star
40

plot3d

3D path plotter for aerobatics
JavaScript
2
star
41

sphinxcontrib.vimeo

clone from https://bitbucket.org/jdouglass/sphinxcontrib.vimeo
Python
1
star
42

FWLoad

Factory load tool for Pixhawk2
Python
1
star
43

homebrew-ardupilot

Homebrew recipes for ArduPilot development on MacOS
Ruby
1
star
44

clj-ardupilot-utils

Clojure
1
star
45

gSOAP

Modified gSOAP library for use by Ardupilot
HTML
1
star