An open firmware for the Parrot AR Drone 2 written in Go.
This project is a work in progress, but the following things should work:
- Navboard driver
- Motorboard driver
- Complementary flight stablization filter
- Gamepad control via WebSocket / HTML5 Gamepad API
- Basic flight!
A 0.1 release will be announced soon. It will come with binary installers for OSX, Linux and Windows.
The following things still need to be implemented:
- Ultrasound height detection
- Battery status
- Reset motor emergency mode
- High level API for writing apps
- Camera Access
- Optical flow tracking for bottom camera / better hover stabilization
- Kalman filter (supposedly better performance than complementary filter)
- Parrot UDP protocol
- Parrot TCP Video Protocol
- JS scripting
This project is mainly a personal challenge I set for myself.
However, if it turns out well, this firmware may become a viable replacement for the Parrot AR Drone firmware, allowing for a few interesting use cases:
- Education: Demonstrate quad copter physics, by controlling motors individually.
- Autonomy: Write autonomous drone software that requires no Wi-Fi connection / client to be connected.
- HTML client: Control the drone from the web browser of any device via HTML / JS / WebSockets. No need for custom apps.
- Acrobatics: Teach the drone new acrobatic tricks and allow for more aggresive flight.
- Hackability: Easy support for additional devices connected to the drone (GPS, Sensors, Lasers, etc.)
Package attitude contains algorithm for determining the drones position relative to the ground.
|Package attitude contains algorithm for determining the drones position relative to the ground.|
Command deploy allows people to deploy and run GoDrone binaries on their ardrone.
|Command deploy allows people to deploy and run GoDrone binaries on their ardrone.|
Command godrone implements the GoDrone firmware.
|Command godrone implements the GoDrone firmware.|
Package control implements flight stablization.
|Package control implements flight stablization.|
Package motorboard implements a driver for the Parrot AR Drone 2.0 motorboard.
|Package motorboard implements a driver for the Parrot AR Drone 2.0 motorboard.|
Package navboard implements a driver for the Parrot AR Drone 2.0 navboard.
|Package navboard implements a driver for the Parrot AR Drone 2.0 navboard.|
Package http implements the HTTP interface for GoDrone.
|Package http implements the HTTP interface for GoDrone.|
Package fs holds the assets for the HTML UI.
|Package fs holds the assets for the HTML UI.|
Package imu holds the generic imu.Data type.
|Package imu holds the generic imu.Data type.|
Package log provides the log interface used by all godrone packages.
|Package log provides the log interface used by all godrone packages.|