Challenge Overview
Challenge Introduction
We are running 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 connect QGroundControl to a TCL4 USS server. We won’t have a test server, so we must mock some of the endpoints.
Technology and Frameworks
-
QGroundControl
-
C++
-
QT
-
Qt QML
-
-
TCL4 USS - https://github.com/nasa/utm-apis/tree/tcl4_v191010
Individual Requirements
- Implement 2 endpoints from https://github.com/nasa/utm-apis/blob/tcl4_v191010/nuss-operator-api/swagger.yaml using a swagger code generator (or any other means):
- Only POST “<base_url>/operator/operation” and POST “<base_url>/operator/position” are in scope
- It should use the JWT token from the token endpoint. See below.
- Swagger codegen example: https://www.npmjs.com/package/swagger-node-codegen
- Only success response is in scope
- Implement token endpoint (GET <base_url>/operator/token)
- It will use Basic Authentication and will return a JWT (secret should be configurable)
- Only success response is in scope
- Update the QGroundControl application to:
- Add server connect action:
- Authorize using the token endpoint
- Add registration action:
- Send registration data using “<base_url>/operator/operation” endpoint (JWT token must be used)
- Add send vehicle GPS action during flight (fixed 1 minute interval):
- Send position data using “<base_url>/operator/position” endpoint (JWT token must be used)
- Add server connect action:
- For now, hardcode server base url and username/password
- Try to create a specific folder/module in the source code so we can easily merge the changes back to QGroundControl if necessary
- Use QT libraries for REST calls:
- Additional information and code example will be provided in the forum
Final Submission Guidelines
- Please submit a zip file that includes the updated QGroundControl version