Arducopter 2.8.1 is now in the mission planner and in the downloads area! Remember to do your MP configuration again after loading this code, since it erases your EEPROM and sets it to the new defaults. 

Note: Issues with APM1 user's level feature not working are now resolved.  If you installed 2.8 we highly recommend you upgrade to 2.8.1 as 430 extra bytes of RAM have been freed up which reduces the chance of memory corruption (although we haven't seen any cases of this on the APM2 at least) .

Note #2: this release has not gone out for Traditional Helicopters until they can be tested fully.  Flip and Toy mode have also not been fully tested.

Improvements over 2.7.3:

  • Improved ACRO mode (Leonard Hall)
  • Improved stability patch to reduce "climb-on-yaw" problem (Leonard, Rob Lefebvre, Randy)
  • Rate controller targets moved to body frames (yaw control now works properly when copter is inverted) (Leonard/Randy)
  • Less bouncy Stabilize yaw control (Leonard)
  • OpticalFlow sensor support for APM2.5 (Randy)
  • DMP works again by adding "#define DMP_ENABLED ENABLED" to APM_Config.h You can also log DMP vs DCM to the dataflash by adding "#define SECONDARY_DMP_ENABLED ENABLED" (Randy)
  • Watch dog added to shutdown motors if main loop feezes for 2 seconds (Randy)
  • Thrust curve added to linearize pwm->thrust. Removes deadzone found above 90% throttle in most ESC/motors (Randy)
  • More timing improvements (main loop is now tied to MPU6000s interrupt) (Randy)
  • GPS NMEA bug fix (Alexey Kozin)
  • Logging improvements (log I terms, dump all settings at head of dataflash log) (Jason)


Bug Fixes / Parameter changes:

  • fixed skipping of last waypoint (Jason)
  • resolved twitching when no GPS attached (Tridge)
  • fixed loss of altitude if alt hold is engaged before first GPS lock (Randy/Jason)
  • moved Roll-Pitch I terms from Stabilize controllers to Rate controllers
  • TILT_COMPENSATION param tuned for TradHeli (Rob)

Code Cleanup:

  • HAL changes for platform portability (Pat Hickey)
  • Removed INSTANT_PWM (Randy)

As per usual PIDs are optimised for the 3DR/jDrones quad with 850 motors and 10" props. If you're using more powerful motors/props and are seeing bad flight behaviour in stabilize, start by turning down Rate Roll P in 25% steps.

Please note that on this release we've moved the Roll and Pitch I terms from the Stabilize controller to the Rate controller. There's some evidence that says this can lead to flips on take-off if you move the roll or pitch sticks around as you take-off so we recommend you leave these sticks in the middle until you're in the air.

Please feel free to report issues you find in the discussion below and/or add them to the issues list.

Thanks and enjoy!

Views: 128963

Reply to This

Replies to This Discussion

Hi Crashpilot,

The I term isn't being multiplied by any prescaler. The Dev team has implemented this by the book, but I am not sure what other controllers have done. They may have combined the deltaT term with the I and D terms to reduce the computational complexity. You can see this from the (poorly explained) equations below:

P is multiplied by the Error

D is multiplied by (Error-Error_Last)/deltaT (the rate of change of Error)


I is multiplied by Error_Integration = Error*deltaT + Error_Integration_Last (sum of all past errors multiplied by deltaT)

Sorry if I haven't explained this very well.....

Dave, I really can't tell you anything that you are "missing" about that Rate_I term.  My tuning values, and my impression is very much the same as yours.  I think it's just a case that these high Rate_I values were just a "missing link", something we had never thought about before.

I know not that long ago, Jason had said that he had looked at people's logs, and seen that it too *minutes* for the I-term to finish ramping up, and he suggested we try an I-term of 0.100.  Then Jonathan Challinger took it to another level and said 1.0.  Most of us just too a while to listen.  I started pushing it hard here in this thread, and it's like a new revolution. ;)

Personally, I cannot believe how well my Octo flies now.  It's just perfect.

You know what's really interesting?  As you may or may not have known, TradHelis had no rate controller at all.  They simply used Stab feedback direct to the servos.  There was no rate step at all, because we found that helicopters had way too much vibration to be able to use any rate control.  As you tuned up Rate P, they just went insane with oscillation before you even got control, sometimes shaking themselves to pieces.  So we just skipped the rate step and used only position --> servos.  This worked because the position measurement is a simple way of filtering the rate noise.

Anyway, months ago, Jonathan suggested I try controlling a Heli in Rate mode with NO P term at all.  P=0.  Instead, use a giant Rate I, which, which like position, it's a natural filter for the noise.  So, I gave that a shot.  Guess what, it worked.  And guess what the I-term was that I found worked?  Wait for it....

1.0!  Pretty amazing.  And this was back in June.  Unfortunately that heli crashed hard shortly after and I hadn't had an opportunity to keep testing on it.

I'm just finishing rebuilding it, and I will be working on this more.  With Leonard's help, I'm going to try running much more rate filter for the TradHeli, and then try some direct P term.

Wind resistance test, using two fans, stabilizer mode, 1/3 throttle, using power supply 20 amp 275 watt. 

1.150 kg weight without battery,

apm 2.5 v8.1 test Octaquad, using  Dave C. method PID tuning.

thanks Dave.


Dave, Robert,

thank You for Your great work, now I see results in stability and agility we all were waiting for. This is a huge step You did towards the perfect setup!

Just one little advice to all who are supplying information here in this thread.

PLEASE make a new thread or even a sub-forum or wiki for PID-settings and post your vids, settings and comments on how it flies there. Otherwise this thread and all it's info will get lost in the depths of the forum during time.

Thank you again, Your work really helped a lot of people, including myself, getting an ultra-stable and ultra reliable flying machine that causes super fun!

Yes there will be a proper thread, and updates to the wiki. I just want it to be quick reference so doing the working-out here :)

And since you have all kindly assured me that I'm not going crazy with the I-term I shall continue forthwith!

Multiwii has no delta T in the main - PID - equations at all! It just presumes a fixed cycletime. Thats a real downside because cycletime is not that fixed at all. This can give you most visible problems in multiwii on the yaw axis. When programming i often use prescalers, so i thought apm would use them as well for rate_I. But from my findings with the "I" now (i will post below as response to Dave) it is not necessary. The current rate_I in 2.8.1 is fine.

So long

Kraut Rob

Hi, Dave!

Today i tested your rate_I findings.

I cranked it up to 0.5. The copter wasn't oscillating but it felt rather sluggish in acro-reaction. For my setup (F450 Frame,920KV Motors APC SF 10/4.7 ;1,2 KG total with 3300mAh 3S) the maximum rate_i is between 0.120 and 0.130 before it gets to sluggish for me. So i reduced the rate_I to my old value of 0.100. Just my findings for my setup.

So long

Kraut Rob

Did you reset all parameters?  Does the Hardware tab in the Mission Planner have an option for GPS?  I don't know because I have APM2.0 and the GPS is built in on the Arducopter board (so why ask?)

Had a bad day today.

Weather was fine to do some flying and all went great. Loiter was very good with some wind.

I did some nice turns in stab and teste AH.

Suddenly the quad was losing height while I was flying over some water in the park. I gave it some throttle but it wouldn't react (was still in AH :-() Then I gave some more pitch so that the quad would hit the ground instead of the water but still it didn't react. I just didn't reach the border resulting in a splash.

In the meantime dried everything and retrieved the log.

Can someone have a look why the quad didn't go forward, whats still has to work even in AH? It didn't react anymore to my inputs.

I also retested everything and all works!!! Great hardware!!



Brilliant Norman, that's rock solid. Thanks for posting. It's great to see you have dialed in, interesting that you have managed such a high rate_P with such a powerful beast :) 

The long awaited 'ARDUCOPTER TUNING DISCUSSION' is now live, here..

There's a video and everything, and soon updates, and a part two! Enjoy, and please comment, I'd love some input :D

Thank you, for your excellent tips. I've been a fan of you. I have been very useful in understanding even be more the issue of pid.
when you're changing the wiqui?
Thank you.

Reply to Discussion


© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service