Skip to content

This project is a comprehensive data streaming initiative designed to enhance drone operations through robust data logging, real-time tracking, and global communication capabilities. This repository contains all the necessary code, CAD files, documentation, and operations manual. Detailed documentation available in the wiki!

Notifications You must be signed in to change notification settings

Yaremadzulynsky/INFUMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents

About

For my first co-op at the University of Waterloo, I worked as an engineering intern at AeroDrone, a drone technology company based in Ukraine. During my 4 months at AeroDrone, I was tasked with developing an integrated system, including designing proprietary hardware, writing custom software and orchestrating cloud services, which would allow live monitoring of autonomous drone fleets (including 2 way communication). The project included both the programming elements and the design and construction of a proprietary UAV blackbox which would stream telemetry data via satellite connection. This data was to be displayed graphically live on a secure website to allow central monitoring of drone fleets.

With AeroDrone's team located overseas and operating in different time zones, and limited financial resources or other support resources, I needed to take full ownership of all aspects of the project. I was given a rough idea of the desired functionality for the final product and was then responsible for ideation, design, prototyping, and software development. With the support of my manager, Dmytro Shymkiv (former General Manager of Microsoft Ukraine & former Deputy Head of the Presidential Administration of Ukraine), I was able to independently navigate every aspect of this project, from the initial concept to the final product.

Project INFUMS not only logs and stores flight data but also livestreams telemetry data for real-time monitoring. I developed a flexible and user-friendly website that allows the addition and management of multiple blackboxes attached to drones, making it possible to monitor drone fleets. The website provides detailed visualizations, including real-time tracking on Google Maps, and allows users to configure settings and analyze flight logs.

Key hardware components include the Arduino MKR WiFi 1010 for connectivity, Pixhawk 6C for telemetry data, and the Iridium 9602N satellite modem for global communication (early versions also included wifi and cellular connectivity). The project also utilizes custom 3D printed housings to protect the hardware.

On the software side, Firebase is used for data management, while the Google Maps API enables real-time location visualization. The Rock 7 platform is employed to register and configure the satellite modem.

In addition to monitoring, the blackbox communication module has the potential to enable satellite-based drone control, opening up new possibilities for remote and autonomous drone operations.

Overall, this project provides a robust solution for enhancing drone operations, making it ideal for applications requiring comprehensive data analysis, real-time monitoring, and global communication capabilities. It is also modular and scalable, allowing easy integration and replacement of components to future-proof the system.

Note: After completing my internship with AeroDrone, I was given the incredible opportunity to continue this project personally, allowing me to continue development on my own time.

Physical Prototype

alt text Prototype Components Description (Youtube Video: Click me!)

Prototype Demo & Description (Youtube Video: Click me!)

I designed, tested, and built this fully functional prototype, incorporating custom-designed 3D-printed components and off-the-shelf parts researched and sourced by me into a cohesive system. This prototype includes custom embedded software and hardware. It is globally connected via satellite, automatically configures itself upon power-up, and is displayed on the website. Designed for harsh environments, it features grounding wires, vibration mounts for the flight controller, and a modular case for easy upgrades or component replacements.

I digitally designed the entire system in CAD, then 3D printed and assembled it. I also extensively documented the prototype, including wiring diagrams and other details. This part of the project was my first foray into 3D printing, satellite communication, drone telemetry protocols, product development, and serverless functions (satellite communication routing to the database), which I had to learn on the fly (pun intended)!

The prototype is a fully functional UAV blackbox, which, similar to an airplane's blackbox, records and monitors flight information but also transmits this information and receives commands via a two-way satellite link (all at a cost of significantly less than $10-15k/airplane blackbox). This blackbox system was designed for real-world applications (ex. fleet management). It is modular, reliable, and easy to use, making it ideal for commercial and industrial drone operations in harsh environments. The system includes a flight controller, GPS, Arduino, satellite modem, and a 12 to 5V step-down converter, all of which I researched and sourced.

My design process included:

  1. Understand the project requirements and constraints.
  2. Research and investigate possible components and technologies that could be used.
  3. Prototype and build proof of concepts of subsystems.
  4. Iterate on PoC design based on testing and feedback.
  5. Once subsystems are validated, integrate them into a complete system.
  6. Test the complete system and iterate on the design based on feedback.
  7. Document the design, including CAD files, wiring diagrams, and other relevant information.

Photos of the Process

alt text Testing gathering of telemetry data and uploading to cloud

alt text Designed enclosure for telemetry data and upload subsystems

alt text Worked out how to power the system.

alt text Integrated satellite communication

alt text Added power regulation.

alt text Testing satellite communication.

alt text Final prototype with all subsystems integrated.

alt text The website for the Integrated Navigation and Flight UAV Monitoring System (INFUMS) is a crucial component that provides a user-friendly interface for monitoring and managing UAV operations. Developed using modern web technologies, the website ensures a responsive and intuitive user experience, integrating seamlessly with back-end microservices to provide real-time data visualization, UAV tracking, and system management capabilities.

Key Features:

  1. Real-time Tracking: Monitor the live location and status of UAVs.
  2. Data Visualization: View and analyze telemetry data through interactive maps and tables.
  3. Flight Playback: Replay past flights and analyze flight paths and data.
  4. Authentication: Authenticate users using Google Auth for secure access.
  5. Website to Blackbox Communication: Configure blackbox settings through the web interface.

I developed this web application to connect to the physical blackbox prototype to provide a comprehensive overview of UAV operations, enhancing situational awareness and operational efficiency for drone fleets. The website automatically displays data from globally connected UAVs (which contain blackboxes) and allows for easy management and customization of the individual blackbox settings.

This part of the project was my first foray into web development, databases and cloud computing. I had to learn to use multiple web technologies, such as React, Node.js, and GCP services, as well as learn languages such as HTML, CSS and Typescript (Javascript), in order to build a scalable and responsive web application. I also designed and implemented a secure authentication system using Google Auth to ensure user privacy and data security.

Initially, I developed with vanilla HTML, CSS, and JavaScript, but soon realized the need for a more robust framework as the codebase grew. I then switched to React and wrote the code with TypeScript, which allowed me to build a more modular and maintainable application. Finally, I settled on using a combination of Next.js, React, TypeScript, and Semantic UI, as this stack enabled me to build a modular, responsive, and visually appealing application and opens up the possibility of server-side rendering via Next.js in the future.

Flow Diagram

alt text Integrated System Demo (Youtube Video: Click me!) This flow diagram illustrates the data flow and communication pathways within the integrated system, highlighting the key components and interactions between the UAV blackbox, ground station, and website. The system leverages a combination of serial, satellite, and HTTP/API communication mediums to ensure seamless data transmission.

  1. Blackbox to Rock7: The UAV blackbox collects telemetry data and uses satellite communication to send it to Rock7, the satellite service provider.
  2. Rock7 to Custom API: Rock7 pushes the telemetry data to a custom API programmed on Google Cloud Platform (GCP).
  3. Data Processing: The custom API uses GCP Cloud Functions to decode and format the telemetry data.
  4. Data Storage: The formatted data is uploaded to a real-time database.
  5. Website Display: The website accesses the real-time database to display telemetry data for real-time monitoring and analysis.
  6. Mission Logs: A server monitors the real-time database for new data, constructs mission logs, and uploads them to long-term storage for future reference.

This integrated system ensures efficient and reliable data transmission from the UAV to the end-users, facilitating real-time monitoring and comprehensive mission logging.

Project Structure

.github/workflows

This directory contains GitHub Actions workflows for Continuous Integration and Continuous Deployment (CI/CD). These workflows automate building, and deployment processes to streamline the development lifecycle.

Cad

The Cad directory includes CAD (Computer-Aided Design) files for the physical components of the Blackbox. These files are essential for manufacturing and assembling the hardware. This includes designs for frames, mounts, and other structural parts.

Embedded

The Embedded directory contains code for the embedded systems on the Blackbox. This includes firmware for microcontrollers and other hardware components. The embedded code is responsible for real-time control, sensor data acquisition, and communication with the ground station.

Infrastructure

The Infrastructure directory holds Infrastructure-as-Code (IaC) scripts and configurations for deploying the project's services. This includes scripts for setting up cloud resources, networking configurations, and other deployment-related tasks.

Microservices

The Microservices directory contains the backend microservices that handle various data processing tasks. These microservices are designed to be scalable and modular, allowing for easy integration and maintenance. Each microservice is responsible for a specific aspect of data handling, such as data storage, real-time processing, or analytics.

Website

The Website directory includes the frontend code for the monitoring dashboard. This web application provides a user interface for tracking UAVs in real-time, viewing logged data, and managing system settings. It is built using modern web technologies to ensure a responsive and user-friendly experience.

About

This project is a comprehensive data streaming initiative designed to enhance drone operations through robust data logging, real-time tracking, and global communication capabilities. This repository contains all the necessary code, CAD files, documentation, and operations manual. Detailed documentation available in the wiki!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published