After my previous crash I've rebuilt my quad and had finally got it flying well, with excellent loiter performance which I tested earlier this week in strong winds and accurate RTL.
Thought I was home and dry on the setup so tonight I set up Auto mode as a new mode on my flight modes and hoped to test it out in calm conditions. I took off and switched to Loiter. It wasn't playing ball at all and kept flying off in one direction (not toilet bowling as far as I can tell). I landed, rechecked, restarted everything, made doubly sure GPS was good, and tried again, still the same behaviour.
I let it go a bit to see if the loiter controller would sort itself out. It didn't and headed off faster and faster in one direction. I switched flight mode back to stabilise. It didn't respond. I tried out and into stabilise again. No response. Eventually I tried switching my transmitter off to trigger RTL failsafe. (I have used this before and it has worked).
The quad stopped, changed direction and headed back to me and downwards faster and faster, over my head, and smashed into the ground at absolutely full tilt. I have a nice onboard video of me running like hell out of the way.
I have absolutely no idea what is going on. To me the log looks like it went into Auto mode (which I am certain I did not request as I have a separate override switch for Stabilise, and even so it wasn't flying anywhere near the waypoints I set). Then RTL was activated OK, but did the wrong thing: it flew in the opposite direction from what it was supposed to, and made more and more extreme corrections until it was flying at full tilt and max throttle. I had to pull the battery to get it to stop, which wasn't hard as all the motors were smashed :-(
Log attached. Please, please can someone come up with some idea what happened here?
Out of curiosity, since this is leaning toward a compass issue, what compass are you using?
I've had a look at the logs and it looks like the heading was far off from reality. Normally that's caused by compass interference but it could also be caused by a compass failure (although this would often be caught by the pre-flight checks), having the incorrect orientation set for the compass say for example if an external compass was recently attached but the compass orientation was not updated. Toilet bowling occurs when the heading is off by less than 90 degrees. When the error is larger than 90 degrees the copter simply heads off in the wrong direction. The best way to check this is with the tlogs.
The compass/heading looks like the problem because the desired velocity (x=lat, y=lon) does not match the actual velocity. In the graph below the RTL is between 6200 ~ 7000 (the crash). The red and green lines should be moving together (red = desired lat velocity, green = actual lat velocity) as should blue and pink (blue=desired lon vel, pink = actual lon vel). Instead they go in the opposite direction. If this was a case of the copter wanting to fly off in the wrong direction we would see the desired and actuals stick together but both be incorrect.
Unfortunately as the copter is pitched over heavily it's unable to maintain altitude. In the graph below the desired altitude is in green and the actual (baro) altitude is red. You can see how the red (baro alt) drops off even as the green (target) goes up. The throttle being sent out to the motors (shown in blue) goes to full but it's not enough. This is not good of course and what we'd probably prefer is that the copter maintain's it's altitude and sacrifices some roll and pitch angle. I'm a little surprised it let's it get this bad so I'll do a test in the simulator. I notice the throttle rate P is a bit low at 2.8 (default is 6) but we should still investigate that.
Re the switch to Auto, we can only see the individual pwm values in the tlogs. If you have those we can have a look. I've actually never seen a case where the copter has switched to AUTO mode when it wasn't requested by the pilot or ground station. The normal cause of incorrect flight modes is confusion over the switch positions or having the pwm values too close to the edge between the flight modes (the "edges" are printed to the right of the flight mode drop downs on the Mission Planner's Flight Modes screen along with the current pwm at the top).
A somewhat unrelated thing I noticed, the FS_THR_VALUE is 998 which is quite close to the RC3_MIN which is only 13 pwm higher at 1011. what pwm value do you get when you turn off your transmitter? FS set-up instructions are here.
For me, whenever a copter acts strangely, I bring it home and don't fly it until I've figured out what's wrong. I know I have the luxury of understanding the system very well so I can nearly always find the issue but still, these things rarely just sort themselves out it seems.
I am having the same kind of problems with RTL and LOITER...the hexacopter just want to fly away at high speed and right into the ground.
I'm very much concern about flyaways too. I experience it this weekend, luckily I didn't hurt someone in the field.
how could this prevented?
Here's an image from the log showing the section of the flight after RTL failsafe was triggered.
You can see that immediately RTL is engaged it starts giving a large pitch and roll input, matched by an increasing throttle which is probably coming from the angle boost, this continues until pitch is pretty much at the maximum 45 degrees and throttle is maxed out at 1000. I guess it's "lucky" that there wasn't enough throttle available to maintain altitude at full pitch so it ended up crashing hard rather than flying away.
And yet the copter is getting _further_ away from where it should be going. So it looks like every input was working fine and the copter knew exactly what it was doing, but it just went mad.
Really hope someone can help shed some light on this. It's a little concerning that there seem to be three or four threads at the moment regarding what are basically flyaways that unlike previously haven't been satisfactorily explained.