So… I like to mess with things which usually ends up with me breaking everything and running up my credit card balances but that’s how I learn. Being said, I ran across something I’d like some insight on. This is for educational purposes and yes, props were definitely off as they always are on the bench. I hadn’t tested this before and figured why not? Note, this collection of parts has not been flown prior to my experimentation.
I made a quadcopter using the most recent stable release of Ardupilot on a Cube Orange and set it up on the bench with a param configuration for the chosen hardware typical of prior to a maiden flight.
I armed the little monster in stabilize mode and all seemed to function as intended until I… switched into alt hold. Oh that was fun. At mid-throttle (1515 pwm) everything was fine until I raised it just a bit and then Ardupilot decided that the bench was made of lava and it tried to yeet itself out of the room by sending the throttle full tilt.
Mashing the controller’s stabilize mode button did nothing except throw the error of ‘throttle too high.’ I eventually pushed enough buttons all at once like I was losing a game of Street Fighter on the original Nintendo and lowered the stick all at the same time to tame things back down so I could disarm.
With the history lesson out of the way, what is the expected behavior of alt hold prior to Ardupilot learning what hover throttle is? Did this perhaps happen because there was no change in baro when the throttle was raised and it tried to maintain altitude but wasn’t able to? Should there be a more graceful oh crap response from Ardupilot should this happen with props on?
While this is not a typical real-world scenario; in America where people shoot drones with shotguns (don’t get me started on RemoteID disclosing pilot locations…) or even a bird strike (21 Days reference) in the rest of the world, there is a chance something could cause a bucket of expensive parts to lose thrust on a maiden flight prior to Ardupilot learning hover params.
Please educate me on expected behaviors, what might have caused the exciting outcome of this experiment, and what we might recommend to the awesome devs on possible changes to code if necessary to mitigate possible unintentional oops’.