Hi, drone developers. I am a master student at department of Aeronautics and Astronautics, University of Tokyo.

Let me share our ‘Completely Autonomous (Onboard Processing) Palm-sized Quadcopter’, developed in our lab.



Check out <video1> to see how it flies without any control by external equipments. All the processing required to maintain stable flight is done inside the onboard computer.



This performance is realized by processing images obtained by the camera attached at the bottom of quadcopter and by real-time self localization. As mentioned above, all these calculation is processed onboard. So it needs no external system to fly stably. (Actually the quadcopter is communicating with PC only to transmit flight log. It receives no signal.)



Here is the list of components.

- frame (3D printer)

- motor + motor driver + propeller(x4)

- main board

  - MCU(Cortex-M4)

  - FPGA(Spartan-6)


  - IMUs

     -- KXRB5-2050( 3 axis accelerometer)

     -- LPR4150AL (roll, pitch gyro)

     -- LY3100ALH (yaw gyro)

     -- HMC5883L (3 axis compass)

- battery (x2)

- camera

- sonar sensor

Circuit Overview


Back Side


Side View


The quadcopter in the top picture and the video is an old version. The current version has two cameras - one horizontal and the other downward.


current version of prototype 


Length(motor to motor): 120mm (4.7inches)

Weight: 70g



The system consists of a CPU(ARM), FPGA and a memory. FPGA enables the very fast onboard processing. 

For further information, please leave comments. (We are now writing more detailed technical description. I hope you will enjoy.)



Horiken engineering,


E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • That's awesome. If ya'll like palm sized quadcopters then you should definitely try the Estes 4606 Proto X Nano. It's about the size of a quarter and flies smoothly. It is a lot more stable than you would think.

    It's on sale, 59% off. Only $24.54 here


  • Why the use of different gyros ... why didnt u use  imu650 ... is there a particular reason?

    could u let me know info about motor & props ...

  • excellent work


  • *This post vanished three days ago for unknown reason and has been reposted on January 10. There were these comments before the post vanished. 

    - - - 

    Comment by Hugues 16 hours ago

    Incredible. What kind of algorithms are you using to convert a monocular view with an inertial 3 axis reference ?

    Comment by Mustafa TULU 14 hours ago

    Hi nice project. What is the max altitude you can reach with this setup? I gues you are using flow camera method for localization and the object below as markers. The image detail should lost as you increase your altitude and this can effect the stabilization and position hold.

    Lastly, does this setup require training?

    Comment by Mark Harrison 11 hours ago

    Very Nice!

    Please keep us updated on your project. I'm especially interested in learning moure about your FPGA processing of your video input.

    Comment by Randy 10 hours ago

    That's really impressive especially considering how small it is.  I guess it needs that little plate with the special picture on it below the copter?

    I do a lot of the arducopter coding and I'm also based in Japan by the way...Karuizawa to be more precise.

    Comment by Horiken engineering 9 hours ago

    Hi All, Thank you for comments!


    Camera view  is used to calculate self translation using attitude calculated by 9-DOF IMUs. I will post the detail lator.


    If enough corner points (FAST-corner) exist in the scene,  altitude is not problems though travelling long distance cumulates error. And no training method is required.


    Yes, of course!!


    The robot only detect corner in image, so no special landmark is requied.

This reply was deleted.