I'm getting closer and closer to being ready to test my UAV, but I still have one failure case nagging the back of my mind: what to do if the board resets in mid-air and clears the DCM matrix? I mean, I don't plan on having mid-air resets, but what if it happens?
I've played with the idea of writing the position to the EEPROM every once in a while, but it would have to be very often given how much orientation can change in a second. And given certain instabilities in the flight characteristics, I don't trust it not to crash while the accelerometers slowly sort out the gyroscopes if it resets in, say, a 45 degree bank.
What methods have some of you employed to deal with a mid-air reset of your IMU variables?
I think answer is the same for all multicopters: if the controller board crashes, the copter will too. Unlike planes, which can revert to manual control while the board restarts, multicopters aren't controllable without the IMU. Even a one-second reboot time is probably too long to regain control unless you're flying pretty high.
Yup i can safely say if you have a mid air reset, you are going to crash.
It happened to me when my board did it according to the logs four times. not nice seeing the heli doing flips and rolls.
Least i know what the problem was.
We are, actually. I'm using the ArduImu board but not the accompanying code - its part of my project to write the code myself. So should I just have it assume its something close to level whenever it starts?
Ah, sorry for the misunderstanding. With fixed wing it's pretty easy. On APM we have a whole system for this, called "air start" that does a fast reboot that retains last calibration settings. Works great.
If you have a few seconds, would it be possible to run a few calculations with the accelerometers? If it is fixed wing, then can assume forward airspeed. I wonder if it is mathematically feasible to isolate your vector, then "look" for the earth's gravity, then compute for best-guess of perpendicular to ground? Without GPS speed/position data, I do not think it is practical, but given that you are 1) fixed wing 2) forward motion (and more motion) and 3) have streaming GPS speed and direction from which the vector might be taken, I wonder if it is possible. Or is that a masters thesis in INS?