-
Notifications
You must be signed in to change notification settings - Fork 498
Description
Currently, the propeller test turns each motor in a sequence and calculates for each one the combined acceleration variance on X and Y axes, measured by the accelerometer. Then, it checks if the combined variance is inside the acceptable threshold ([0 to 2.5 by default) and decides if the motor/propeller passed or failed the test. If the test is failed, the motor spins again and we get a console print.
e.g. HEALTH: Propeller test on M2 [FAIL]. low: 0.0, high: 2.50, measured: 6.78
It has been observed that in most cases the propeller test fails for all four motors, even though the Crazyflie is able to fly. (see this discussion) This results from these factors:
- The default threshold was tuned just for Crazyflie 2.1 and not for Crazyflie 2.1+ or Crazyflie 2.1 Brushless.
- The acceleration variance depends on external conditions, such as the surface on which the Crazyflie is placed.
That being said, the current propeller test is not really useful for an absolute measurement of the motor's/propeller's condition. However, it could be used as a relative measurement between the four motors/propellers on the Crazyflie. For example, if the variance of M2 is significantly larger than the others, this probably indicates an issue on the motor M2 or on its propeller.
A possible solution is to update the console outputs so that no [FAIL]
messages are printed.
However, using the propeller test for measuring the relative condition of the motors/propellers could be an useful feature for all platforms.
Also, it would be interesting to investigate if there is a better way to measure the condition rather than the acceleration variance on X and Y axes.