Autonomous flight using Kinect2 for position control

So we are back at our office and the “great” Swedish weather. We don’t miss the California sunshine at all, we promise.

We have spent the last days documenting the setup we used to fly the Crazyflie autonomous using the Kinect2 for position control. It is still a work in progress but we think it worth sharing as we think many of you out there will be way better at improving it than we are. What we like so much with this setup is that it’s affordable compared to the professional systems such as VICON and PhaseSpace which makes it possible to play with at home, in the office or at school. It might be limiting in volume but until an affordable system such as the Valve’s lighthouse is available it is a pretty good alternative.

We have put all documentation on the wiki and hopefully it should be pretty straight forward to setup and get up and running.

crazyflie vision architecture


The Kinect uses its IR time of flight sensor to detect the altitude of the copter. The image processing is detecting the copter and then gets its position. The controller can the compare the current versus wanted position and then sends correction to bring the copter closer to the wanted position. These correction are sent to the copter until a new image is taken by the Kinect and a new correction is calculated. This closed loop process will keep the Crazyflie in the wanted position.

Here is a short video showing it in action.

We also thought it would be nice to show some more pictures from the Makar Faire Bay Area and our visit to USC!

5 comments on “Autonomous flight using Kinect2 for position control

  • hi,
    I’m really interested about your work on this project. I’m currently working on something similar. I have a question about the position of the kinect. Why do you decide to put it on the floor instead of on the celling? if it’s on the celling you can control its take off ?
    That is what i want to do actually, and i’d like to know it there is a particular reason of choosing the position of the kinect.
    Thank you :)

    • Hi,
      The main reason is mechanics: it was much simpler and safer for the Kinect to install it on the floor on 2 Crazyflie box (we are mostly electronic engineer here :-).
      Also it was easier to put reflector bellow the motors: if the reflector is on top of the copter I guess it can only be in the middle so measuring the yaw angle might be a bit harder.
      Good luck with your project! And do not hesitate to share results on the Forum ;-).

      • Hi,
        thanks for your answer :) Ok so i’ll probably try to put the kinect on the celling.
        Sure i’ll share my project (if it works).
        Thanks again

  • Hi arnaud,

    Nice project, I am also working on localizing the Crazyflie. I am really interested in the red frame mounted around the quadcopter on one of the photos. Do you have the CAD file so I can build it as well? also if you can point out where can I find some CAD files of the quadcopter parts it would be nice.

    Thank you very much

Leave a Reply

Your email address will not be published. Required fields are marked *