I've just released ArduPlane 2.68
This key features of this release are changed in the MPU6000 filtering, and several bug fixes (including HIL fixes).
The changes are:
The MPU6000 filtering changes are perhaps the most significant. We previously samples the MPU6000 at 200Hz and set an internal filter of 98Hz. The ArduPlane code then averaged over 4 samples to get a 50Hz update to DCM. Here is a graph of the accelerometer readings on my HotDog with the old code:
this is rather extreme, as I've setup my HotDog with the APM2 directly touching the fuselage close to the nitro engine. I wanted it to vibrate a lot to test the filtering, and it sure does! A value of 1000 on that graph is 1g, so we're seeing vibrational noise of about 6g in this plane.
I now fly my HotDog with INS_MPU6K_FILTER set to 10, which applies a 10Hz filter inside the MPU6000. We also run the MPU6000 at a sample rate of 50Hz, which means no averaging needed in the APM code. Here is a graph of the accelerometer readings now:
It actually flew OK with the previous code, as the DCM code is quite noise robust these days, but I do prefer making DCM work less hard, and it will help it to reduce aliasing and recover from attitude errors faster.
You can see graphs of other filter settings and also of the gyros for the same plane here. I think the default of 20Hz will be the best for most planes, but if you have a lot of vibration you can try 10Hz, like I now use for the HotDog.
Thanks Dario, to you too.
I'd like to see this behaviour taken out completely as a default rather than have to modify code and add buzzers, LED's etc. I have those on my quad but don't feel the need for them in ArduPlane.
Even having it as a user selectable option is better than what we have now but that would require an extra parameter and we already have enough of those.
I'd like to see the LED status lights broken out like the ArduCopter code through the MP in ArduPlane as the APM board is often buried inside the fuselage in a fixed wing plane. I think perhaps replacing the current wagging of the control surfaces to indicate ready status would be OK if there were a ready made way of bringing the ready status to the operator. I think your idea of a buzzer or the like would be a good idea, but I still think that if that wasn't a standard hardware feature shipped with the APM that you would still need some means of communicating the ready status for those who don't want to add any other hardware. That's why the current behavior of wagging the control surface works so well, because it makes use of what you inherently already have. I think an option that was configurable through the MP for all Arduxxx platforms would be the best solution. You already have from what I understand remote LED behavior configured in ArduCopter code and in the MP for basic LED behavior. It would be nice to see this migrated to the other Ardu code. Once that is done adding the option to disable the control surface wagging and enable a buzzer if required would be good too.
I use an APM1 for my Plane. (FPV-EPP)
Now i read, that there is a new firmware for the Mediatek GPS and the PPM Encoder.
Is the new 1.9 Firmware from the GPS compatible with the actual APM1 Arduplane Code?
And should i update my PPM Encoder, if i fly with a MX-20 from Graupner?
I was an long time not in the forums, so i dont know, what actual is "the newest" Info.
Hope u can help.
altitude change problems in home mode.
and I noticed when I give problems changing altitude of 100 m to 200 m, the plane begins to climb but angle exceeds its limit to make a loop. this occurs when there is wind of 20 km / h. what would be the parameter to adjust?
any explanation for this behavior?
Can someone give an attention? is very important!
hire my log files..
using sw condor and set PID from Djalma C Jr
test for stabilizer,FBW from flight mode on remote
and RTH,loiter command from AMP planer
Thank you very much. Very appreciated!
great friend! thanks!
Hi friends, I would like an answer, always hear talk about calibrating the compass offsets X Y Z, but then .. What's that for? and what is the correct way to calibrate? because I already tried to calibrate with the logs through flight, and every time this show a different value.
I would like a clear answer about it, and that would result in a good calibration
Looking at the code (I'm new to ardupilot, but have worked in flight controls for some years) I can't see where the cross-track correction for wind gets applied in auto mode. Looking at the navigation.pde file on lines 31-33
// nav_bearing will includes xtrac correction
nav_bearing_cd = target_bearing_cd;
the nav bearing has been calculated previously using the bearing from current position to next waypoint and looks as though it should subsequently have the cross-track correction (including wind applied using an update_crosstrack(); function call.
Looking at the update_crosstrack function I believe there would be some benefit in an additional gain term based on cross track velocity to provide some damping to the track capture. I'm currently taking time to understand the structure of the exisiting loops before inplementing some ideas for improvements. In particular I'm trying to improve track accuracy with varying crosswinds.