Giter Site home page Giter Site logo

roflcopter's Introduction

RoflCopter quadrotor project

The result of hundreds of hours of research work on our quadrotor (http://en.wikipedia.org/wiki/Quadrotor) (the ROFLcopter), shared and open sourced for your pleasure.

There are quite a few RC UAV platforms out there, but not too many with an HTML5 control interface, so if you like the idea, feel free to incorporate in your (non-commercial) project the best ideas you find here.

Body Flight control

Beta Warning: Frontent looks messy. It's under heavy development.

How it works

The flight platform is an Atmega8 based circuit. The attached sensors are:

  • 3x ADXRS610 angular rate sensor
  • 1x LIS3LV02DQ 3-axis acceleration sensor

The communication link is provided by an XBee Pro 60mW I/O device used in point-2-point raw serial mode.

In our model, the four TowerPro 2410-08T 890kv engines are driven by four modified TowerPro 18A BEC ESC. (Reprogrammed to use I2C instead PPM input. See http://www.mikrokopter.de/ucwiki/TowerPro18A-I2C)

On the computer (PC/Mac/whatever) side sits an XBee Exporer USB, that with the installed FTDI driver appears as a serial device on the computer. The HTML5 control interface is ready to establish the communication link to the RoflCopter, so here comes the node.js proxy, that makes it possible. It effectively creates a tunnel: /dev/tty-usb-xyz <-> socket.io, making it possible in the browser to have full async access to the XBee serial interface.

The HTML5 interface provides controlling and debugging functionalities, that can be easily implemented/extended given the simplicity of html/js. Current features include:

  • Pull-in HEX file to bootload new firmware (HTML5 File Api)
  • Copter orientation 3D display (CSS3 transformations)
  • Engine status display (new progress tag)
  • Sensor output graphs (canvas element)
  • RC Transmitter inputs display (canvas element)

Structure

atmega8-platform

The platform firmware itself. Not too much magic (as of now), quite consistent and self-describing function and variable names. The main modules are:

  • USART communication: This is the interface toward the computer through the XBee. Checksum validation, re-synching, and handles the debug- and control messages received from the HTML5 side.
  • TWI/I2C communication: Sending thrust data to engines, interrogating the acceleration sensor.
  • RC receiver: Decoding the HobbyKing 2.4GHz 6-channel rx data. (See: some RCgroups thread... cant find now)
  • Analog Digital Converter (ADC): To read the rate sensors' output signal.
  • Business Logics: The part that calculates the actual engine thrust values from all the inputs.

nodejs-server

First install node.js and npm, then proceed with installing the neccessary modules:

npm install express socket.io serialport

Finally start it (sudo is only neccessary to bind to port 80):

sudo node xbee-proxy.js

All the HTML5 goodie can be found under the /web directory. It is automatically served by the node.js process: Just open http://localhost/ in your browser (preferably Chrome), and enjoy!

tools/bootloader8

The SparkFun atmega wireless bootloader modified to have a stronger integrity check (instead 1-byte checksum, 4-byte hash), because we faced some noisy reception issues. Basically this is a 2K program code residing in the upper section of the atmega flash, and is write protected with appropriate fuses. Every time the atmega starts up, code execution starts from this address, and it can update the firmware with data received from XBee on USART, or otherwise, simply jump to the execution to our main function.

tools/matlab-simulation

A quadrotor stability & autopilot simulation written in MATLAB. Uses rigid body mechanics theory to derive the differential equations.

License

(C) 2011 Attila Incze [email protected], Balazs Nagy [email protected]

http://atimb.me

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.

roflcopter's People

Contributors

atimb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

piksel

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.