Hey guys, just kicking around a stability improvement idea in my head. Thought I'd put it out to the group and get some opinions before I got whole hog on it.
A little background:
Some of you may be familiar with AeroQuad code. I feel from a flying standpoint, they are much better at maintaining stability. I think some of that has to do with the in flight levelling that they do. Essentially, they do sensor calibration, on take off. Assuming that all props are balanced, the craft will go up level, and the calibration will zeroes the accelerometer readings.
What I was thinking was to take this one step further. Rather than just zeroing out the accelerometer readings on take off, I would run a motor calibration routine. Since we all may have different motors and frame weights and sizes, and even within the same equipment there may be variance, the calibration routine would use the accelerometers to figure out the weight and power of the motors, and apply this to the stability routines.
The calibration would basically something like this:
1- Place the drone on level ground.
2- Start the motors at the lowest level, and sample the accelerometers.
3- Increase the motor speed, which sampling the accelerometers, and record the readings and pwm to the motors. (making sure that we don't get too high that we take off)
The result is that we now have a power to weight curve, and we now know how much motor power will result in how much force, as well as which motors are stronger than another. We can now apply a correction vector to account for any motor or frame imbalance to the DCM matrix. We can also predict what angle the drone will be when we apply roll and pitch, because we know how much force each motor can apply, and the weight of the drone.
What do you folks think? Will this work, and increase stability and possibly improve the leans problem, which is due to no knowing the difference between inertial acceleration due to motor force, and gravity?(since we now know what force the motor applies for a particular pwm value)