The are two classes of problems: never getting off the ground, or alternatively, leaping off the ground.
The inability to get off the ground regardless of prop type was due to my code disbelieving that near zero G readings were invalid; discarding the zero G readings meant the velocity integrated higher during warm-up phase, meaning the motion processing code thought it was rising faster than it actually was. Once the zero G readings were included, then the floppy props worked, but for some reason the carbon ones still struggled to get off the ground.
The reason for this CF prop problem turned out to be the jitters during the prolonged spin up of the props. The code tries to keep Zoe on the ground while the code winds the props up to hover speed. At a micro level, this means the feet would lift off, the code would slow down the props, and the feet would hit the hard take-off surface; this hard micro-collision causes a low reading which integrates to a falling velocity event though the quad was sat on the floor. When the flight-plan finally flips to ascent, it has to overcome the integrated negative velocity, and so leaps into the air. The fix is three-fold:
- don’t take off from hard surfaces
- get the quads off the ground ASAP – don’t wait around for the props to spin up
- add physical buffering so the 0g impacts don’t make it to the sensors – for example sitting the HoG on a soft foam pad, and adding soft balls to the feet.
This is work in progress.
There’s a third problem though which was troubling me with the CF props even once the previous two had been (partially) fixed – they still struggled getting Zoe off the ground compared to the floppy props despite their profiles being very similar. I finally spotted the problem when I was swapping prop types. The floppy props have a deliberately rough surface whereas the CF ones are coated in the gloss varnish, presumably to cover splinters in the CF. Airflow at the prop surface is better over rough surfaces due to micro-turbulence, and that causes a better airflow and lift at the macro level. The higher speed CF probs gloss surface was causing the air-flow to break away from the props at lower revs. This results in a lack of expected lift, so the code spin the props faster making the situation worse. Some sanding of the CF props to roughen the gloss surface improved matters significantly but again this is still work in progress.