2023-06-7 Meeting notes

MAVLink is a communication protocol commonly used in UAVs (Unmanned Aerial Vehicles) between ground and drone

GUI is a Graphical User Interface

TCP ports let you exchange data between two devices with network communication

Mission Planner

Mission Planner is the ground control station that WARG uses that we are trying to replace with custom IMACS. IMACS focuses on making UI better for the pilot.

Mission planner allows for mock missions which allows for sending MAVLink messages (real MAVLink messages with mocked information) to a TCP port that the GUI can read from. This allows for testing GUI

To set up Mission Planner, go to . Going to “Simulation”, select “Multirouter” and “stable”, then choose “Mavlink” as the serial output with TCP Host 14550.

IMACS Project

We are trying to create a desktop application GUI using the Flutter framework and Dart programming language. Flutter compiles to a lot of platforms so we can use the browser to preview GUI while developing.

Mission Planner will be used to send messages to a TCP port. We will read raw data from the TCP port with Dart and parse the data using the dart_mavlink library into readable messages.

Eventually, the GUI will be reading from a serial port (a port on the computer that accepts data through USB or some other wired connection) instead of a TCP port.

Flutter streams allow for asynchronous programming in Flutter applications. We will split up pieces of information parsed by the dart_mavlink library into different sections of the GUI.

System Architecture Diagram

 

Development

Working with GitHub, we are planning to have two development branches feeding into a main branch: one for the frontend GUI testing with MAVLink, and one for integrating with EFS/Mech hardware by reading a message from a serial port.

Assigning tasks

Check out tasks assigned on Asana for the Autonomy team.

Helpful Links

MAVLink Developer Guide
Dart MAVLink Source Code

Information on Flutter Streams (this is kind of like threading)

Listening to TCP Sockets in Dart