GithubHelp home page GithubHelp logo

abdullatifmouhamadi / hadesfcs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pms67/hadesfcs

0.0 1.0 0.0 123.43 MB

Complete flight control system designed from scratch. Hardware designed with KiCad.

Home Page: http://philsal.co.uk

License: BSD 3-Clause "New" or "Revised" License

C 74.55% C++ 0.77% C# 17.23% ShaderLab 0.02% Objective-C 0.09% HLSL 0.02% MATLAB 0.33% Smalltalk 0.01% Batchfile 0.01% Makefile 1.31% HTML 2.02% CSS 0.32% JavaScript 2.97% Python 0.01% Assembly 0.35%

hadesfcs's Introduction

HADES Flight Control System

Complete flight control system designed from scratch. The flight control system is primarily designed for fixed-wing, autonomous drones to enable them to perform tasks autonomously, such as take-off, landing, waypoint navigation, payload delivery, etc.

Every part of this system is designed from first principles! This includes the hardware, firmware (using FreeRTOS), Kalman filtering for state estimation, control algorithms, base station, communication protocol, flight simulator, signal processing, and much, much more.

Feel free to send me constructive criticism or things you would like me to implement, or even if you would like to help me develop this system!

Markdown Monster icon

Intro video: https://www.youtube.com/watch?v=rLDqQ2L_mUQ


Broadly, this repository consists of:

  • Hardware designs (developed using KiCAD).
  • Low-level drivers and firmware (FreeRTOS, for the STM32 platform of microcontrollers).
  • Higher-level firmware such as communication protocols, control and navigation algorithms, etc.
  • Kalman filter designs for state estimation.
  • Debugging tools.
  • Flight simulator (both 6-DOF and 3-DOF) to test algorithms.

Current repository folder structure:

  • Calibration: Raw sensor data useful for checking calibration algorithms (e.g. accelerometer bias, scale factor, etc.).
  • Communication: UAVLink data protocol for reliably packing and transferring data and commands between the aircraft and a further device (e.g. base station). This could be via telemetry or direct serial links.
  • Control: Algorithms for dynamic control of the aircraft (e.g. PI, state feedback, etc.).
  • Data: Collection of various datasets that may be useful for offline testing (e.g. raw IMU data).
  • Debug Software: Tools for interfacing with the hardware (e.g. to read navigation data).
  • Documentation: Preliminary documents to detail aspects of the flight control system.
  • Filtering: FIR and IIR filter implementations, as well as FIR filter design tool.
  • Firmware: The core flight control firmware running on the STM32 microcontrollers.
  • Flight Simulator: 6-DOF and 3-DOF fixed-wing flight simulators developed in Unity. Very useful for testing control logic and algorithms. Requires dynamic model of aircraft.
  • GPS: NMEA sentence parser, as well as raw GPS data for testing.
  • Ground Control: Basestations written in C# to send commands to aircraft and receive data via telemetry. Includes moving map, live plots, etc.
  • Hardware: HADES flight control board design files (schematic, layout, assembly). Hardware consists of sensors, microcontrollers, power electronics, etc. This custom hardware is where the firmware runs on.
  • State Estimation: Kalman filters (various types: quaternion, Euler, different states estimated) designed in Matlab and exported to C for estimation of states required for feedback control (e.g. attitude, position, etc.).
  • Tests: Miscallaneous tests go here. For instance, device driver testing, communication protocol tests, etc.

Note: Most subfolders include an additional README that further describes its contents.


Disclaimer: This flight control system is work in progress. Use the files, hardware, and software given in this repository at your own risk - especially when conducting live flight tests.

BSD 3-Clause License - Copyright (c) 2019, Philip Salmony - All rights reserved.

hadesfcs's People

Contributors

pms67 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.