8000 GitHub - simondlevy/Hackflight: Minimalist flight-control toolkit for makers
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

simondlevy/Hackflight

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Intro

Hackflight is a minimalist software toolkit for building multirotor flight controllers and simulators. It is geared toward people like me who want to tinker with flight-control firmware, and use it to teach students about ideas like state estimation and PID control. If you are in the 99% percent of users who just want to get your vehicle flying without getting into firmware hacking, I recommend Betaflight (great for getting started when you're on a budget) the Ardupilot system (for sophisticated mission planning with waypoint navigation and the like), or the Crazyflie platform, for a safe, inexpensive introduction to quadcopters as a research platform. In addition to big user communities and loads of great features, these platforms have safety mechanisms that Hackflight lacks, which will help avoid injury to you and damage to your vehicle.

Design principles

Hackflight attempts to maintain a simple relationship between the code and the elements of the flight-control dataflow diagram shown below. Boxes represent data, ovals represent functions, and feedback arrows represent the need for functions that have state (instance variables); for example, the maintenance of an error integral in a PID controller:

By using header-only C++ classes whenever possible and avoiding C-style macros and null pointers, Hackflight supports a composable approach to taming the complexity of flight control. The Hackflight codebase is under 5,000 lines of code.

Hardware

Hackflight currently runs on a custom-built micro quadcopter that uses the Crazyfle Bolt 1.1 flight controller for state estimation and PID control, and a Raspberry Pi Zero 2 W board for communications and logging.

Simulator

For flight simulation, Hackflight uses Webots, a free, open-source robotics simulator. Click here to get started.

Haskell support

If you love Haskell as much as I do and want to see how it can be used for flight control, click here.

Citing Hackflight

Please cite Hackflight as:

@ARTICLE{10.3389/fnbot.2020.00016,
AUTHOR={Levy, Simon D.},   
TITLE={Robustness Through Simplicity: A Minimalist Gateway to Neurorobotic Flight},      
JOURNAL={Frontiers in Neurorobotics},      
VOLUME={14},           
YEAR={2020},      
URL={https://www.frontiersin.org/articles/10.3389/fnbot.2020.00016},       
DOI={10.3389/fnbot.2020.00016},      
ISSN={1662-5218}
}

About

Minimalist flight-control toolkit for makers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 15

0