APX Ground Control Software (GCS
) is open-source project, leaded by UAVOS Company.
This repository contains a cross-platform application, which is part of APX Autopilot project.
The purpose of this application is to manage command & control, mission planing, and safety requirements of Unmanned Vehicle (UAV).
The source code, published in this repository, is not based on any known open-source projects related to UAV industry.
More information about GCS application and its internals can be found here: docs.uavos.com
git clone --recurse-submodules git@github.com:uavos/apx-gcs.git
GCS project uses APX Shared Library submodule.
The project uses cmake
build system. Some tools require python3
scripts to manage source files generation via jinja
and assemble deploy packages for the specified platform.
For the required tools, take a look at Dockerfile and GitHub CI.
After cloning the repos and installing required tools, use the following commands to build the build/out/bin/gcs
runtime:
cd apx-gcs
cmake -H. -Bbuild -G Ninja
cmake --build build
Launch the GCS
app:
./build/out/bin/gcs
To create the GCS application bundle - use bundle
target:
cmake --build build --target bundle
Depending on the host platform, this will build either .app
macos application or the AppImage
linux bundle.
Take a look at some additional targets in Makefile. Although, the makefile is used mainly to create releases.
The Dockerfile
is included in this repository and may be used as a reference for the tools required to build the application for the linux
platform.
See the Docker.mk
file for details.
cd apx-gcs
docker pull uavos/apx-gcs-linux:latest
make docker-run
cmake -H. -Bbuild -G Ninja
cmake --build build
build/out
contains runtime binaries;build/deploy
contains app bundle;GCS
uses serial ports to communicate with the radio modem device. This might require some drivers to be installed on the host platform.
The modern APX nodes, starting form version 11
- support CDC. There is no need to install any drivers on the host side. Although, you may find the following links useful:
MacOS app bundle comes with all frameworks built-in and does not require additional actions to perform.
User should be a member of dialout
group to have rights to access the modem device. Execute the following command to add yourself to the group, then reboot.
sudo usermod -aG dialout $USER
sudo apt remove modemmanager -y
AppImage does not include the GStreamer
library, and in order to support video streaming - install GStreamer
runtime system-wide:
sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav -y
More information about AppImage standard can be found here: appimage.org
#