I wanted to start a conversation around the roll and pitch of Arducopter drifting as you fly.
The reason is I just assembled new hardware and problems that weren't there before have now shown up in a bad way. Flying indoors in a 5ft space I was able to get up to 30° error in roll and around 10-15° in pitch. I was able to control it and it flew perfectly level the whole time, I just had to hold the stick into the corner of the radio. Lading and waiting corrects the issue.
What could cause this. I had been flying an older version of the IMU this whole time. This version has an analogue filter for the gyros where the new hardware has it as an option. You must solder the pads around the gyros to enable them. I was also flying with two slightly tweaked motors giving off a lot of vibration. This could affect the accels.
My question is: If you have a problem like this, what is the vibration level on your copter, and do you have the filter pads soldered?
And notice I didn't say "loss of control" or "it didn't fly stable". I had control, and it flew perfectly. It just lost it's reference to the ground and I had to compensate with the stick. Had it been worse than 45° I would have lost control.
There are three pairs of pads, each with a white outline. (look for GYRO-XY near the relay).
Jani Solders his to enable the filter. I have never flown this board until now. I will solder them to test the filters this week.
Replies
It seems strange that some of us have this problem, while others do not. We all use the same hardware, except one little thing.. I came to think of the dip switches on the board. Is the DIP switches in use by Arducopter code? In ArdupiratesNG the DIP switches is used to activate stable/acro mode etc. I have not touched this after loading Arducopter code. Is there any chance some hidden settings are still configured by the DIP switches, causing drift problems..?
I just did some tests with the 2.0.20 and 23 code.
There was absolutly no wind outside.
Both codes flew very stable and I had full control. Very very little drift.
Did some agressive maneuvers and looked at drift again. I noticed nothing special.
The only difference with last time was the wind. But the drift was in all directions. And very uncontrolable.
Strange.
Hello every one. I think I have an idea what's going on here. This is all theory as I have no actual data yet (haven't finished my tri yet). I have been following this problem since I saw the discussion.The schematics and device shorcuts are on my desktop cause I look so much(what a geek!). From all the available data I see 2 factors, aggressive maneuvering and vibration. This brings me back to my original suspicion, gyro saturation, exasperated by vibration. In Jason's old board the analog filtering was handling it. Remember, this is not real vibration, which would be perpendicular to the shafts, but aliasing artifacts from the gyros, and mimicking rate vibration in the X/Y, like the gyros would output. I haven't looked, but I would expect digital filtering in the code.
The gyro limit is 500 deg/s. I could see a powerful quad exceeding this if it was commanded to. If the aliased frequency gets thru the analog filter(or lack of) then it in addition to the true DC signal could cause saturation and result in a offset X/Y DCM solution. Think of a sine wave on top of the true signal. If the digital filter is averaging, it's not a problem. If you reach the limit then the solution is crap.
What we need to do is get some real (analog scope) data. In the mean time we could:
1) use the analog filters
2) limit aggressive maneuvers
@ Jason, I think your approach is a fix to a problem. We need to prevent the problem if possible. What if your flying at high tilt/speed? It would try to correct. Check for speed? It gets complicated.I would keep it in for a back up if you could(mem).
I propose that there is a throttle differential limit. It would be adjustable for the airframes specific moment, and you would have to have the throttle input some where in there. The limit setting would be found through flight testing or a conservative default setting.
I hope this helps. Now get to work Jason! ;)
Jason,
There was a discussion earlier this winter regarding noise in the gyros.
I believe that I showed then that there is aliasing in the sampling of the gyros, i.e. the built in lowpass filter of the gyros is far from beeing strong enough and/or the sampling rate is way to low.
This was with motors without propellers on my desktop, i.e. I presume that with propellers the problem might be elevated considerably.
I did some experiments in order to increase the sampling rate and implement in software antialiasing filter, but unfortunatly the CPU is hardly powerful enough for that solution. So I think the only real solution for our setup is to have good analog filter applied to the gyros. It looked to me that the interference from the vibration is so strong that a higher order filter is needed.
Regards
D