Hopefully the long road of beta is almost over.
I've done my best to address DCM drift issues. Again, this is not the ability for the quad to hold a perfectly level spot, it's the 20-30° error introduced by vibration and rapid maneuvers.
We've upped the gain on the DCM to recover faster. There is still room to tune these gains even more aggressively. I'll be looking for input from everyone on this. To edit the gains, go into system.pde.
To optimize the hardware, please be sure to add a windscreen to your barometric sensor and solder the filter pads on your IMU shield. A piece of felt works best. No closed cell foam.
To get the best yaw performance, calibrate your ESCs, and adjust any tilted motors. The copter should NOT yaw when lifting off. If it does it's you, not me! If you want higher performance Yaw, switch from the default to rate based yaw in APM_config.h.
I added two in-field calibrations to the arming and disarming gestures. Hold disarm for ~ 10 seconds to level the copter. Hold arm for ~ 20 seconds to fly in auto-trim mode for about 45 seconds. It will exit auto-trim automatically and fly normally. Don't worry about counting out the time, just wait for the flashing lights to enter either mode.
Alt hold has been re-written and uses a single PID for both Baro and Sonar. Baro has been more heavily filtered so the D term could be brought up. It's essential for smoother alt changes. It also helps that the internal PID integrator is the same value for both now. From 3 to 6 meters, the Baro altitude is mixed with sonar for a smoother transition. The alt hold PID could use more fine tuning, let me know your experience.
This version also now includes Randy's Heli code.
Replies
Heartfelt thanks Jason, for your sharing your expertise.
Bit of a storm here in Cape Town, so can only fly in my living room (small).
Loaded the new code, soldered the pads, soft foam over the baro.
Sonar appears to work well, 500mm hold over carpet.
I get gps lock inside, but doubt that 2m x 3m is big enough to test loiter !
Flew 2.0.24b today and things went very well. Fairly windy, but stabilize flies well - yaw holds well, and response is good. Flew alt-hold and it is very nice flying well 5 - 10 feet and holds nicely at 18 feet with wind gusts. Alt-hold pids on baro look good on my quad. I tried loiter and it is basically holding with overhoots - I need PID tuning in loiter. Flight time 8 minutes and it flies very well.
Thanks Jason and the team.
Heino
Wow I did fly the 2.0.24Beta today!
what a nice piece of code!
I have an issue with one motor that turns too slow compared to other ones but I will just redo ESC to recalibrate tonight and try again (never had that issue before)
but even with that motor that I needed to compensate for it was (once compensated) super stable.
Thanks Jason, I did not push hard due to the motor/esc issue but tonight or tomorrow I will repeat the experience.
Upgraded to 2.0.24 through the Mission Planner today and now my baro is crazy. No change in the hardware since yesterday's flights - my baro is covered with a small piece of foam from a pair of headphones, no sonar but I have magnetometer and GPS - and in 2.0.23 when I ran the altitude test in CLI over USB, with the copter stationary on my floor, it would fluctuate over about a 20cm range or so - I can't remember the exact value. In 2.0.24 it fluctuates more than +/- 200cm. Not surprisingly, flying in alt hold or loiter mode, it freaks out, takes off vertically or plunges down, but it hovers quite well in Stabilize.
I tried running with sonar again to test this. Putting the sonar back on, alt hold is very good down low, and once it gets to an altitude of 6' or so it takes off vertically. I don't have telemetry yet so I can't really watch what it's saying in flight.
Any thoughts?
Correct me if I'm wrong.
The 10 second disarm is for leveling the quad on the ground like CLI "level" command.
The 20 sec arm is for leveling (fine tune) the quad in the air.
Thus 20 sec arm, leds will flash, lift off and fly as level as possible until leds go out.
Trim of tx should stay in the middle?
this for?