Page 1 of 1

Controlling individual propellers

Posted: Wed Mar 19, 2014 4:43 pm
by Josh P
Hi Guys!

I'm a 3rd year Computer Science student and am using a Crazyflie for my final year project.

The end aim is to use the Crazyflie in conjunction with an Optitrack camera to run a course with a piece of string attached, to create a tensile structure, or at least something similar.

So far I have been using Python to send values for pitch, roll, yaw-rate and thrust; however, I was wondering if anyone knew of a way to send power values to each individual propeller instead?

Thanks for any help you guys can give :D

Josh

Re: Controlling individual propellers

Posted: Fri Mar 21, 2014 10:13 am
by marcus
Hi Josh,

The easiest way is probably to modify the commander packet to send four extra values and this way you could pick up these values in the commander module in the firmware and set the motor output accordingly. But keeping the platform stable by sending output values for the motors from the PC might be very hard. The control algorithm runs at 250Hz to keep the Crazyflie stable. This means that 250 times per second the orientation measurement is compared to the desired values and the motor PWM is corrected. Keep in mind that latency is very important here. Since the quadcopter platform is inherently very unstable you will have to quickly correct these values, otherwise you will get very poor performance.

If you are interested in automatically controlling the Crazyflie from a computer (like this, this or this) I would definitely recommend just sending roll/pitch/yaw/thrust from the client and not individual motors.

/Marcus

Re: Controlling individual propellers

Posted: Mon Mar 31, 2014 12:03 pm
by Josh P
Hi Marcus,

Thanks for the useful info! Given the difficulties you described and for the purpose of my project, I think I'll stay down the route of roll, pitch, yawrate and thrust.

Thanks again for the help. :)

Josh