Hello there, here we would like to share a recent experimental result on our autonomous flight control system of quadcopter using only web camera and color marker recognitions.
We belong to control engineering research lab., Department of mechanical engineering, Saga University, Japan.
Our laboratory collaborate with enRoute Co. Ltd., a member of Dronecode from Japan.
Three years ago, we began to research about control of quadcopter.
The proposed system uses a MacBook Pro, Web camera (logicool c920), and a transmitter (enRoute D8T-2.4G). The Web camera detects the quadcopter's position by recognizing the two colored balls which mounted on the copter, and try to maintain the quadcopter's position within the center of the PC window. The control is a customized PID loop, using the difference of center of two balls and the center of window. As shown in the video attached, the system automatically control the quadcopter at the reference positions. In this video, the left bottom window video is used for control, and top and right bottom videos are only used for taking movie.
We also carried out same flight control using NVIDIA Jetson TK1 instead use of MacBook Pro.
Currently it only control the hovering flight, and we will show another videos which is shown the 3D position control of quadcopter. are trying to add Z (Depth) and Yaw axis by adding markers and detecting the change in marker size.
In this experiment, we use a quadcopter PG400 which is made by enRote (www.enroute.co.jp).
Same experiment had already been presented by Kai Yan who belong to enRoute and also DIYDrone member.
Might be outside the scope of your investigations; but if you are willing to strap a PSMove controller to the drone (gets you an additional stream of Acc/Gyro/Mag data) you could look at the PSMoveAPI.
Did you look at processing/fusing a 2nd camera feed to help with distance/yaw computation?
Nice work, but that 15fps (seen in 2nd video @ 14s) is probably making task a lot harder. You could try with the PS3 Eye camera which will support much higher frame rate.