I had hoped yesterday to get going with Sweep integration, with a sanity check flight beforehand just to ensure all is running well – I can’t afford to have crashes with sweep installed.
And sure enough, Hermione crashed. In the middle of the climbing phase of the flight, she suddenly leapt into the air, and the protection code killed her at the point her height exceeded the flight plan height by 50cm. At the speed she was climbing, she continued to rise to a couple more meters before crashing down into a shrub bed, luckily minimising damage to components I had spares for.
A second mandatory flight to collect diagnostics (and more crash damage) revealed a conflict over I2C by the IMU and ground facing LiDAR. The LiDAR won, and the IMU started seeing gravity as just about 0g. This isn’t the first time this has happened, and I’ve tried various guessed solutions to fix it.
The left graph is height: blue is Garmin and is right; orange is the target – what should be happening, and grey is double integrated acceleration which is a very close match to Garmin right up to the point it all goes very wrong. Looking in more detail at the right graph shows the accelerometer results dropped just before 3.5s and about 0.5s before hover would have started.
This ain’t my code; best guess is an interaction over I2C of the LiDAR and IMU, and the IMU loses. I’ve seen similar IMU damage before, and without more detail, my only option is to add a new one and try again.