Self-Contained Autonomous Quadrotor

An autonomous quadrotor for indoors hovering and linefollowing

Similar projects worth following
At my university an annual competition for autonomous robots is held. In the competition an autonomous robot must pass through "gates" and solve different task to earn points. Most "gates" are connected by tape lines on the ground, that the robot can follow. My plan is to be the first to complete the track with a quadrotor.

As the final project of my Bachelor in Electrical Engineering I designed and constructed an autonomous quadrotor capable of hovering any flying at low speed over a flat surface.
The quadrotor has a size of 30x35cm including a guard around propellers and weight around 650g. A downwards facing camera is used to track features on the ground to estimate motion, while an ultrasonic distance sensor is used for altitude estimation.

Here are some demo videos of the quadrotor from the end of the bachelors project.

Flying through one of the mentioned "gates", this is fully autonomous flight with a shell script passing set-point to the position controller to follow way-points:

A video of me pushing the drone around to test stability under external disturbances:

A downside of the current implementation of visual odometry is that it relies heavily on having distinct features to track between images. As the features have to be corners, it only works, if the structure of the floor is textured enough (here the tape is used to create extra features).

  • 1 × Hardkernel oDroid U3 v0.5 Embedded Linux computer
  • 1 × Custom Flight Controller Based on TM4C123 from TI and MPU9250 from invensense
  • 1 × Custom Power Distribution PCB Switch mode PSU to convert 12v from Li-Po to 5/3.3v
  • 1 × Li-Po Battery 2200mAh, 40C. 3S
  • 4 × EMAX MT1806 BLDC Motors

View all 12 components

  • Plan

    skrogh07/10/2015 at 21:59 0 comments


    The state of the documentation of software and hardware implementation at the moment is virtually nonexistent. I must admit that I don't plan on documenting every aspect of the project to every detail, but would much rather pick a few topics and elaborate on the to the point, where people can learn something.

    I don't expect this page to be a "How-to" guide for building an autonomous quadrotor, the same as mine. Neither do I expect that much of the software or hardware that I have designed will be used as a general platform. I simply don't have the time to write that much, while studying, working and completing the rest of the project.

    I do however, hope to write a couple of interesting and inspiring posts, explaining the thought and theory behind the project.

    Feel very free to comment on which aspects of the project you would like me to elaborate more on.

    Visual Odometry:

    If I have to get the quadrotor to successfully fly in the Robocup competition, I will have to find an alternative to the current visual odometry. One solution I am "toying" with at the moment is to rely primarily on the tape-lines that will be on the ground and use the edges to estimate my position, relatively to the center of the lines. This will hopefully allow the quadrotor to stay on the line, but the state estimate in the direction of the line will be quite imprecise.

    Ideas are very welcome.


    I will be away on holiday trip for some time, so don't expect new updates in the forthcoming week or two. Sorry about that.

  • Thesis and Source Code

    skrogh07/10/2015 at 21:39 0 comments

    While I know it might not be super use full for the group of "hackers" here I will post a link to my thesis. There might be some mistakes, technical or grammatical. Feel free to contact me, if you find any.

    The thesis is available in the GitHub repo


    I was a bit hesitant to add a link to the source code as it, at the moment, is super super messy. I got a bit hurried in the end and have not had time to clean the code up.
    Only the source code for the visual odometry and position controller is online at the moment.

View all 2 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates