As we all know, there are many mavlink supported Ground Control Station (GCS) software like QGroundControl, APM Planner 2.0, UgCS, MAVProxy, etc., available for Linux based operating systems. But actually, there’s one more GCS software that stands out in the list named Mission Planner, which natively supports only the Windows operating system.
Because of its modest user interface and the additional features compared to others, Mission Planner is one of the preferable GCS for most drone operators and developers.
Mission Planner running on Ubuntu
Mission Planner is a Windows-based application built using .NET Framework. It’s not possible to directly install Windows applications on Linux, but it’s possible to run Windows applications on a Linux environment using any cross-compilers.
Mono is a software platform designed to allow developers to create cross-platform applications part of the .NET Foundation. It is possible to run most Windows-based programs on many Linux distributions using Mono. Hence, it’s possible to run the Mission Planner on Linux using Mono.1
In simple words, you cannot able to install Mission Planner on Linux but, you can able to run Mission Planner on Linux using Mono.
You can follow these steps to run Mission Planner on your Linux machine:
- Install the latest stable version of Mono
- Download stable version of Mission Planner as zipped file
- Navigate to the unzipped Mission Planner directory and Execute
Installing Mono on Linux
It is possible to install the latest stable version of Mono on the following Linux Distributions:2
Since I’m using the Ubuntu distribution, I’ve added the installation steps for Mono on Ubuntu. Kindly follow the instruction on the official downloads page of Mono for other distributions.
For installing Mono on Ubuntu, you can follow the below-mentioned steps:
Add Mono Repository
For Ubuntu 20.04 (amd64, armhf, arm64, ppc64el)
1 2 3 4 $ sudo apt install gnupg ca-certificates $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF $ echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list $ sudo apt update
For Ubuntu 18.04 (i386, amd64, armhf, arm64, ppc64el)
1 2 3 4 $ sudo apt install gnupg ca-certificates $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF $ echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list $ sudo apt update
For Ubuntu 16.04 (i386, amd64, armhf, arm64, ppc64el)
1 2 3 4 $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF $ sudo apt install apt-transport-https ca-certificates $ echo "deb https://download.mono-project.com/repo/ubuntu stable-xenial main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list $ sudo apt update
Kindly copy the above commands and execute them in the terminal. You can also open the terminal window using the keyboard shortcut Ctrl + Alt + T
Once completing the above step, run the following command to install Mono on your machine
1 $ sudo apt install mono-complete
The installation of Mono on your device can be verified using the following command:
1 $ mono
Once after the execution of the above command, if the terminal shows a warning like the below means then, Mono is successfully installed on your machine.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Usage is: mono [options] program [program-options] Development: --aot[=<options>] Compiles the assembly to native code --debug[=<options>] Enable debugging support, use --help-debug for details --debugger-agent=options Enable the debugger agent --profile[=profiler] Runs in profiling mode with the specified profiler module --trace[=EXPR] Enable tracing, use --help-trace for details --jitmap Output a jit method map to /tmp/perf-PID.map --help-devel Shows more options available to developers Runtime: --config FILE Loads FILE as the Mono config --verbose, -v Increases the verbosity level --help, -h Show usage information --version, -V Show version information --version=number Show version number --runtime=VERSION Use the VERSION runtime, instead of autodetecting --optimize=OPT Turns on or off a specific optimization Use --list-opt to get a list of optimizations --attach=OPTIONS Pass OPTIONS to the attach agent in the runtime. Currently the only supported option is 'disable'. --llvm, --nollvm Controls whenever the runtime uses LLVM to compile code. --gc=[sgen,boehm] Select SGen or Boehm GC (runs mono or mono-sgen) --handlers Install custom handlers, use --help-handlers for details. --aot-path=PATH List of additional directories to search for AOT images.
Verification of Mono Installation - Ubuntu
Downloading Mission Planner
The official downloads page of Mission Planner hosts different versions of Mission Planner in two formats, such as
.zip formats. For running Mission Planner on Linux, we need to download any of the zipped versions available.
I’m adding links for both the latest version and the stable version of zipped Mission Planner. Kindly download any one of the versions that suit your needs:
Executing Mission Planner on Linux
After downloading any of the zipped Mission Planner versions(
MissionPlanner-latest.zip), unzip the file.
Navigate to the decompressed folder (that you’ve unzipped now) in the terminal or open the terminal in that folder by right-clicking on that folder.
Now, run the following command in the terminal:
1 $ mono MissionPlanner.exe
Tada, now you can able to run Mission Planner on your Linux device!!!
Mission Planner running on Ubuntu
I’ve tried to explain how to run Mission Planner on Linux with the acquired information from various sources. I’m expectantly waiting for your valuable feedback and suggestions regarding this article.
At last, Sharing is Caring, feel free to share with your friends if you’ve liked this article. Thank you!
Installing Mission Planner, ArduPilot. ↩