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: 129063

Reply to This

Replies to This Discussion

@Guido: if the quad fly in all the direction and you are in Stabilized (not Acro, i hope) there's a lot of vibration or something wrong with your board.
The compilation work fine, use Arduino relax patch 1.0.1, if there's something wrong is only in your system, sorry... :-)
When you have this kind of problems please post a video with the issue, thanks!

My quad vibrations is very small. I get many many less vibration with motors calibrations and propellers calibrations. I can test it with iphone app (named vibration). Using a go pro i don't get any vibrations, the video is perfect. 2.7.3 compiled and reupload the old parameters. Now all is working very good. I will make a video with 2.8.1 of my quad soon.


Guido. I've seen the iPhone app 'Vibration' (or some such) but wondered if the measurements would be accurate since having the iPhone touching (mounted on) the copter would distort, throw off, the measurements? Your thoughts, please. 

I just spent 2 battery packs just tuning up the Rate PID's.  This is with my DwarfStar, overpowered Octo with SimonK firmware ESC's. 

I started with:

Rate_P: 0.110

Rate_I: 0.050

Rate_Imax: 100

Rate_D: 0.002

I was really not happy with this setup.  I was fighting a battle where, the Rate P was driving a rate-judder so I had to hold it back, but then it was also unstable in the slightest breeze because it didn't have enough response. Also, with Rate_Imax set at 500 with these params, I had a really bad flip on take-off.

Then I went to:

Rate_P: 0.090

Rate_I: 0.030

Rate_Imax: 100

Rate_D: 0.006

This was much more stable at steady state, but I still wasn't happy with the stability in a little wind.  But the larger D-term really seemed to have calmed it down.  I reduced Imax to 100 to prevent flip on take-off.  But then I also found that it wasn't strong enough to hold well in fast-forward flight.  I had to keep pushing a LOT of stick to get it to fly forward.

Now I have:

Rate_P: 0.135

Rate_I: 0.100

Rate_Imax: 500

Rate_D: 0.008

As you can see, I've got Rate P much higher now.  The key to all of this, I think, is that D-term.  You've got to get it high enough.  Now I have no judder, but it's also stable in a breeze.  Fast forward flight should also be better but I haven't tested that.  And with Rate_Imax at 500, no flip on take-off.  I even tried to force the issue by sitting on the ground throttled up with the octo off-level, or pushing the stick over, then jumping into the air.  The wound-up I-term causes it to fly off-level a bit for about 1-2 seconds, but then it stops.  I think having a high I-max with a low I can cause the flip on takeoff, because they I-term can't wind down fast enough.

But really, the D-term is key to the whole thing.  I'll probably try pushing it a little higher.

Interesting. Thanks for writing about this. I must admit that I don't really yet grok how the different terms interact. D, in particular, eludes me. My quad was pretty stable before, but then I installed 2.8.1 and SimonK ESCs and now I am back to fiddling with tuning. Not helped by all the rain and wind lately.

Simply put, the D-term is a damper.  Any time a wind gust would try to make the copter move, it will resist it. However, anytime the P-term tries to make the copter move, it also resist that.  So the D-term has to be used in concert with the P and I terms. 

So, generally, the way I would do it is to turn I and D down.  Tune P so that you get rid of any oscillations.  Then increase the I some until you get some oscillations, and back down.  Then bring in a bit more D-term.  Now it should be fairly stable, but maybe a bit slow.  Now you can come back and turn up the P and I terms a little more so that you just get a bit of oscillation.  Then you can try adding in even more D-term.

Some people do P, then I, then D, and they're done.  I usually go back and add more P and I after the D-term is increased, because you can.

Eventually you'll find that it's tuned, tight as a drum.  You'll hear the motors really responding after any gust of wind.  But I don't think it should feel too tight, though that's hard to explain in words. You want to hear them working, but not over-reacting. 

I had one mildly not-perfect landing, which broke my crappy landing gear (From the HAL quad, it's probably not even strong enough for the quad), and put one motor into the dirt  I removed what is left of the gear and flew without it.  I then noticed that that engine mount is bent (yeah, they can't take much), but the octo didn't have any trouble flying with a bad yaw vector.  So, I decided what better time than now to try with a prop gone.
So I removed Prop #8 with the bent mount, and tried flying.  With the PIDS as stated before, it actually flew fairly well, except for a lean to the right that I had to resist with stick.  So I landed, and tried Imax of 1000.  Now, it flew perfectly!  It was really pretty amazing.  I actually flew it around and almost wouldn't notice there was a problem!  It was just a bit soft in roll.
So then I decided to really test it, and removed Prop #6.  I lifted off again, with little problem!  I could hear the motors juddering, but it wasn't too bad.  Control was pretty wobbly, but I flew it.
Then I removed Prop #1.  I lifted off, but this time it was not so good.  I couldn't really control the yaw and attitude at the same time, I had it in simple mode, but was kind of wandering all over.  I had to put it down before I hit something.
But, amazingly, it flew with 3 motors out on an Octo!  I think if I'd had some altitude, I probably could have had a reasonable crash landing.  On two motors, as long as they weren't directly adjacent, I bet it could be flown home.  Pretty amazing.


I disconnect all the motors, then i put the iphone on one of the arm of my quad and then (prop removed) i give throttle only to the motor of that arm (attaching the esc directly to the receiver). Sometimes there are so much vibrations that the iphone slide and fall, so you must attach a little pice of tape on one side of the motors and check again to find the best solution (less vibrations).

Arducopter 2.8.1 compiled with # define RECEIVER_RSSI_PIN 6
I sent the APM 2.0 and does not work rssi
something else to do

Thanks Randy, sorry for the delay getting back, I've had internet troubles.

The ESC's are Turnigy Plush 30A. It's always been very stable in a full power climb out, I'll try MOT_TCRV... tomorrow and report back.

Can we not invent a power factor.  Can this be tied in to throttle percentage at take off perhaps or thrust per motor ?

I'm still not sure if my Octo is more or less powerful than the 3dr quad for example. Yes the octo weighs a lot more but its got 4S power on 770KV motors and there's 8 motors. I've been turning down the Rate PIDs because I think it has more power but I have nothing to prove it, I've also turned the Rate PIDS way up high. There  seems to be a very wide range that flys ok in calm conditions.

Whoo-Hoo! ROI works perfectly! Seems a bit more wobbly in Auto mode though.

Think I ran out of battery at the end. *sigh*

Reply to Discussion


© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service