Challenge Overview
Challenge Introduction
We are beginning a long term series of challenges to create a new version of a ground control system for small unmanned aircraft systems (sUAS; i.e., drones) based on QGroundControl. The ground control system will allow the UASs to be safely used for live flight operations while also providing the functionality necessary for researching advanced algorithms and human-automation teaming concepts.
Objective
The main goal of this challenge is to build a Docker set up so we can spin up the required services, we will later need during the development phase of this project, on Docker.
Technology and Frameworks
-
QGroundControl
-
C++
-
QT
-
Qt QML
-
-
ArduCopter simulator
-
MAVLINK
-
MAVProxy
-
Docker
Individual Requirements
Our client has a list of services that will be running on actual devices (sUAS; i.e., drones) and/or companion computer(s). To make it possible for us to work on upcoming challenges, we need to be able to run those services without having access to such devices/equipment. Those, we will use Docker to run the services.
As part of this challenge, you need to create a solution that will spin up the various services we need on Docker.
We should be able to use `docker-compose` to spin up all the required services/containers.
The following services need to be deployed on Docker:
-
ArduCopter Simulation (https://ardupilot.org/dev/docs/using-sitl-for-ardupilot-testing.html#using-sitl-for-ardupilot-testing). The simulation configurations (device type etc) should be placed in a configuration file if possible otherwise you should document how to set those.
-
MAVProxy (https://ardupilot.org/mavproxy/ which will emulate the Safe2Ditch technology by sending custom MAVLINK messages. Sample messages will be provided on the challenge forum - available after registration)
-
ICAROUS (https://nasa.github.io/icarous/, https://nasa.github.io/icarous/executing.html, https://nasa.github.io/icarous/interacting.html)
After deploying all those services on Docker, we need to be able to connect to those via the QGroundControl and see a simulated flight taking place.
Also, you need to create a detailed README.md file with detailed instructions on how to set up and run those services on docker and how to connect to them on the QGroundControl.
Final Submission Guidelines
-
Please submit a zip file that includes the Dockerfile/docker-compose.yml and a README.md file with detailed instructions on how to spin up the environment on Docker