I just pushed Arducopter 2.2 to the Mission planner. This version went through extensive testing by a brave group of flyers and with both HIL and SIL testing.

See this link for more:

http://www.diydrones.com/forum/topics/arducopter-2-1-1-alpha

If you run into any problems please let me know here. If you find a reproducible bug, please add it to the issues list.

tuning tips:

If you run into Loiter issues, try adjusting LOITER_P. It's 2.0 right now which may or may not be to aggressive for your copter. Nav is no longer used in Loiter control, which should make tuning easier.

If you run into a circling issue, try lowering LOITER_I to 0 and see if it goes away. If not, check your compass declination. A negative error will produce CCW rotations, a positive error CW.

If you have issues with alt hold, try lowering your THROTTLE_P, it may be too high for higher thrust copters.

If you have wobbles and can't seem to get rid of them, there is a new term called STAB_D, which is a derivative term used to tune out the wobbles. You can increase it until they stop, but just like driving a cadillac, you loose some performance and handling. In the CLI "tune 16" in setup will let you control this in flight, and "tune" in test menu will let you see the value printed out interactively before flight. See the wiki for more detail.

Many testers gave me a thumbs up on the code, so if you have an issues please post the flash log from the copter. The tLog isn't that much help to me for debugging as it doesn't capture the needed values at high enough rates.

(Remember, if you'd rather pull the code from the repository and load it with Arduino, you must use the "relaxpatch" version of Arduino in our downloads section.)

 

Update 2.2b2

I believe I found the simple mode error. It was a bug that was working OK until Tridge fixed it so it was declared properly. Then the bug became active. I made the Simple mode function internal variables static and this should fix it hopefully.

I updated alt hold to not use dampener for now until we get more testing. Some folks saw a latency induced oscillation which was pumped up by the D term.

I added the automatic throttle cruise or hold value as a compile time option for testers. This basically looks at your throttle and climb rate while in stabilize or acro and determines your optimal hover value. This means you can enter any autopilot mode and not have to worry about your throttle position. It should make alt hold more reliable if it works. This is off by default until we get good field tests back.

Update pushed to GIT.

Update 2.2b3

Just some refinements. I added JLN's throttle curve mod for landing. Hopefully that's correctly implemented. 

Made the landing delay from RTL user settable

removed the ADC gyro filter, I was doing a lot of testing and determined it wasn't worth it.

Enabled the auto-throttle control by default. Please test in the sim

Altitude no longer resets when flying in Loiter mode

Pitch and roll dampening is smoother now. try values up to .08 for very dampened flight.

Mavlink can now trigger auto-land

I'll push a hex when I hear some good news from HIL testers.

Update 2.2b4

Flew today and saw the WP speed governor wasn't quite working right. It was going down to 0 rather than the minimum.
Made internal switch to CM for distance calcs. This should not make any change to gains or MP.
Modified a few default gains for jDrones frame based on AP test flights of this code in some heavy wind on my roof.
Fixed an issue with the landing code not kicking in right away.
Decreased the slowdown near WPs
Added a limit to the amount the pitch compensation can effect the throttle if the throttle input is really high or maximum

 

Update 2.2b6

This is a rollup of all the code that's been flying around for the last week as well as a few bug fixes. I'll be posting it saturday night after reviewing all of my logs.
A dampening term called STAB_D has been refined. A D term for all of the Rate based control loops has been added based on Igor's work. Landing for Baro and Sonar has been refined based on JLN's work. A slightly new approach to Loiter and Navigation is being used to try and linearize the pitch and roll for rate control. It tends to use lower gains, yet has a more assertive response in the air.
I have one small loiter control issue to sort out tonight based on my logs, then I'll post to GIT.
Here is the auto-landing code in action. 

OK, 2.2b6 is on GIT. The Mission planner is going to be out of sync until the release code. until then you can use the APM_Config.h or the parameters list in the Mission planner. 

STAB_D : This is the gyro accretion dampener. This can remove small wobbles during sharp changes in angle commands. Making this too high can have a negative effect in performance and add a memory effect that can cause temporary loss in control. The in flight tuning is ranged so you are just below that effect.

If you haven't noticed before the control loops are in two stages. The first is a PI stage that converts some sort of position or angle error into a desired rate. These generally do not need to be tuned. They are more of a user preference on how fast you want the copter to perform a motion. 

The second stage is the actual PID loop that needs to be tuned for the copter. This converts the desired rate into a motor command of some sort. I added a D term based on Igor's recommendation to the PI's for each rate controller. These should show up soon in the mission planner for the release. I cannot give you a concrete answer for how to tune the D terms, because they each depend on their function such as alt hold or loiter, etc.

Still, the absolute most important term is always the Rate_P term for each loop. Start tuning here.

The default PIDs are in the what flies great for a stock jDrones/3DR Quad with the purple motors in X mode.

Thanks,

Jason

 

 

 

 

Views: 52778

Reply to This

Replies to This Discussion

Afernan, I tried with sim the new loiter "position hold" metod and for me is "NO GO".
If you have lost control of the quad away and engage loiter now the quad does not stop because traslating... what is this? :-/

I asked
Jason to put it back as before, is very convenient especially for beginners, if the quad is translating the hook and loiter not stop now, not good.
In the sim the "Stabilize" is more reactive then the "Acro", and this is another little strangeness.


In the previous release, ACRO rates ware dedicated regulations.

And MY ACRO ***P  rates were much higher than MY Stabilize Rates P.

Why having merged the ACRO and Stabilize Rates again ?

Jason, that sounds great, just what I was after, can't wait to try it, thanks, Bill

Hi Jason

 

just like to find out more inforamtion about the current PID system.

is it only feed back or feed forward aswell?

I really wish I knew more about feed forward systems. The only thing fancy is the thrust to angle ratio is more linear in this version. If the AP is asked to move 1m/s it will get a much stronger angle command than before. but if it is asked for 6m/s it will get much less of an angle command. This expo curve is to intended to tighten up loiter and avoid overshoot for big errors.

Hi Jason

 

reason why I was asking was becuase I read about alot of PID systems and over the last few days and this page seemed to be the best for info and the maths behind it. http://en.wikipedia.org/wiki/PID_controller  there is alot of info about forward feeding PIDs but what caught my attension was the following. I relize that its alot more complicated to implement but the basics should. work.

Assuming you are using the standard PID library from Arduino which has the same formula as stateded in the link above then the AP is working out on continues bases what the VP or veriable point is between the desired setpoint and error value named y(t) in the fomula. this is a digital value of the compensation needed for "perfect" flight it would seem But because this is only one value you wont know how to input it in the PID inputs . well turns out there is Alot of PID tuner Apps on the net (i have a app for it) that takes that value and outputs the values in P ,I and D terms to input.   so That said assuming once again you are calculating the error value or Percentage  can you chnage it so it safes this value to the logs .

 

So what would happen is a guy with his custom frame would use defualt pids fly his copter pull the logs check the value that was saved convert it into PIDs and input for perfect tuned frame? this would of course be advanced if the AP would fill in its own Pids from this value in real time. does this make sence in  theory  that it could work ?   

 

2.2b6 looks to be very exciting after reading the positive feedback from Igor and Jean-Louis' mods that have been incorporated.

Another thing that Jason doesn't mention is that it would seem that the code has been updated so that it now compiles with Arduino 1.0! Progress!! Hourah!

1.0 seems to compile slightly smaller than 0022. With 0022 I get:

Binary sketch size: 126044 (of a 126976 byte maximum)

With 1.0 I get:

Binary sketch size: 125878 (of a 126976 byte maximum)

(those sizes are based on a 1280 (logging is forced to disabled), tricopter frame with all other options default).

2.2b6 - default params, stabilise mode - very nice flight, needs tuning for my quad slightly.

I've started to try to tune b6, Igors method.  I notice that rate_***_D values are all ZERO by default.

I change all stab_***_P/I to ZERO

I change all rate_***_P/I to ZERO

Hold quad in hand, about 40% throttle

I then apply small amounts of rate_***_D. At low levels (0.002 ish) the quad does not oscillate. Any higher - 0.01 for example - the quad oscillates, but the weird thing is it stops after 5 seconds - just like the initial wobbling problem with PIDT1. 

I will try to tune it up leaving D at zero for now. And I'll try to tune with D, ignoring the wobble. But if we want to use the D term as a matter of course does the previous fix for initial wobble still apply? Thanks 

Dave, in the sim is the same, takeoff and after 5 second the quad decrease the agility in Stabilize more than 50% compared to that during takeoff.
In reality after 5 seconds I think it should stop wobble (in theory).

Evening,

 

I opened up my mail this morning and couldn't believe my eyes. More than a 100 reply's on the 2.2b thread. There had to be a brakethrough .... But no, there seemed to be a problem. A quad came down! Condoleances go out to Marco. Hail to the brave I would say for testing the newest releases.

After this incident you could do two things, support the AC dev team or buy a dji wookong.

As I allready an owner of two APM1 boards I decided to stay and hope the dev team gained someting from Marco's loss.  

 

Now for some flying reports.

First off I got myself a new sonar and everything seems to workfine. Quad doesn't rise anymore and log is quite flat concerning sonar height. So thats a besic feature that works again.

I've loaded the 2.2ß2XP2_PIDT1 version on my xaircaft X650 frame with 2814 tigermotors at 710KV and using 13x4,5 EPP props. Theres lot of thrust but it seemes that the quad doesn't stay in one place in stable. It wonders around and sometime it nodges a bit. (no bullet connectors) I also hear a lot of clicking sounds coming from the motors. I use Plush 25A ESC's.

Nevertheless, AH is quit good even when doing some strong maneuvers it stays at the correct height.

In Loiter a noticed a big improvement. The quad would stay in a diameter of a metre and worked to keep it in place. Nevertheless it was a windless condition.

In some previous posts it was noted that during take off the quad would woblle a bit. I didn't notice this.

Can someone point me to the "Igor tuning explination"???

And with the new B6 version, do we have to do the Igor tuning procedure???  

 

http://www.diydrones.com/profiles/blogs/arducopter-changing-from-pi...

Trying this method now but having probs at the first stage, rate_***_D

Any amount of rate_***_D i put in causes the quad to have the 5 secs of initial instability, seen in the PIDT1 original version, then settle. At very low d (0.001 ish) it seems to have little effect. Anything above that causes glitch like tiny movements (in the time after the initial wobble has settled). For now i have left D alone at zero. Working on I and P now, excluding D from the equation currently.

Starting to get really good indoor hovering and slow forward flight results. I have forgotten about D for now,its ZERO, and find that 'I' is adding little to anything so its on ZERO too for rate and stab. The 'trick' now seems to lie in a careful balance between rate_***_P and Stab_***P.

I'm working between 0.1 and 0.2 rate_***_P, and 3 and 7 stab_***_P. The lower rate_P the softer it flies but you need more stab_p to keep it locked. If you want an aggressive fly up rate_P and then back off on stab_p to reduce/eliminate oscillations.

More test results soon. It's eating batteries this hand testing.

And if anyone would prefer me to shift this discussion to Rui's PID thread don't hesitate to shout at me :)

RSS

Social Networking

Contests

Season Two of the Trust Time Trial (T3) Contest has now begun. The fourth round is an accuracy round for multicopters, which requires contestants to fly a cube. The deadline is April 14th.

A list of all T3 contests is here

Groups

Advertisement

© 2013   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service