3D Robotics

ArduCopter 2.3 released

Jason is travelling this week, so I'll take the helm for the next software release post. 

UPDATE: the motor remapping thing was confusing everyone, so we took that out and returned to the regular motor mapping. That means that APM 2 users with Hexas and Octos should wait for the next version. APM 1 users should be fine with any frame.  

NOTE: Hexa and Octo users: there have been motor mapping changes that may affect you. Please don't upgrade until we can update the documentation to reflect the changes. This should happen by the end of the day today (Feb 1).

ArduCopter 2.3 is now available in the Mission Planner.  This is the next revision of the ArduCopter 2.2B6 code, which is perhaps the most tested code we've ever released (1288 comments in the thread!)  and certainly in my experience the best code, too. 

The default PIDs are optimized for a 3DR/Jdrones quad with 850 motors and 10" props. If you're using more powerful motors/props, start by turning down Rate Roll P (default is 0.14, so start by turning it down to 0.1. In general tune PIDs in 25% steps).

Now that we've got solid code out there, we can turn to collecting suggested gains for standard frames, and a better guide to how to tune PIDs for your unique setups. 

Here are Jason's note on the latest changes (mostly from 2.2B6)

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.

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.

Note the Mission Planner does not yet highlight these D terms on the main tuning page (it will soon), but you can find them and modify them on in the Parameters list.

Autolanding should now work well (see video above) and the Tri servo issue is now resolved. 

The code should now compile with Arduino 1.0 (thank, Randy!), but remember that you need to use the "relaxpatch" version of Arduino in our downloads section

[Update: we've reverted the below. See update at the top of the post]

Important for Octo users:


We've changed some of the motor orders for some more exotic airframes. We'll be updating the docs on the Wiki in a day or two to reflect this. Pat Hickey explains:

As before, the hexa plus APM2 motor setup has changed from the ordering [1, 2, 3, 4, 5, 6] to [ 5, 6, 1, 2, 3, 4 ].

The Octa V layout for APM2 is:
6            4
  2        5
    8    1
      3 7
Motors 1 through 4 spin clockwise, and 5 through 8 spin counterclockwise.
Support for roll/tilt camera control on APM 2 should be coming in the next version. Traditional Heli will also be updating to this latest code as well once we track down a memory issue. 
As always, you can see a complete list of changes in the changelogs.

You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –

Replies

  • Only done 2 flights on 2.3 but am really impressed. No wind, but loiters have been pretty tight. Alt Hold looked fine and smooth, and it did drift so the loiters were not coincidence. RTL/Autoland worked absolutely fine. Even did a simple Auto mission including an RTL and it seemed to work fine (did not actually time the loiters at each waypoint). Have been using Tomas Soedegren's parameters - really good starting point for stock 3DRs. Am really encouraged by this - I'll say it again, great job by the dev/test teams, many thanks.

    A couple of minor observations - the last command in the mission was Return_To_Launch, which it did and then did an auto-land. It did not however disarm - what is the expected behaviour?

    Secondly, I then clicked it out of Auto, took off again and went to a loiter - the Mission Planner had the quad heading for Waypoint 65535, bit of a mouthful for my voice alerter to get through!

    Have fun with this code - Bill

  • Developer

    Now John to test well the yaw hang the quad in 4 points, not just two sides.
    Anyway have you ever flown with this octa quad (i mean with previous release of AC)?
    Because the yaw value is high,
    and I think that it is impossible not to have a good control of the yaw with those parameters... have you tried in the both side of way control?
    Put the "RATE_YAW_D" to "0,008" and increase "RATE YAW P" to "0,2".
    The octa quad is very difficult to set... the "I" term
    allows to have better stability on the downhills, if the quad tends to wobble in that situation increases the term of RATE R / P to "0.02/0,03".

  • Here's a quick shot of my babies, both now running 2.3 :)

    3692348016?profile=original

    I'm still, as others, confused as to how the new d terms function, I find leaving them, and Rate_I terms at 0 gove me the best and most stable results, with Stab_D at default 0.12, so basically default params as it comes when setup.

    I dont understand the RateXXXD terms and how they relate to the Stab_D term ?? How would they improve my already very stable and solid settings at 0 / 0.12 ?

  •  

    Hello,

    First, I just want to say that this is by far the best code I've flown from the Arducopter community, great job and keep it up!!

    So I decided not to troubleshoot some of the issues I had with 2.2b6 and start with the 2.3 code. I did a couple of test flights today, indoor first for PID tuning. I started by tuning down my P_RATE to about .065 and STB_P to about 3.5, flew as expected however, like with the previous code, I still couldn't completely get rid of random twitching(which I assume is because the frame I'm testing on is in a pretty bad shape). I read on Chirs' announcement about the STAB_D term and decided to give it a try..dropped it from the .12 default .06 and presto...completely smooth flight!!

    Next I decided to test the loiter, unfortunately today in Dubai we're having a sand storm and I wasn't sure if I wanted to take the chance. In the end I couldn't wait and did go out anyway. 15mph wind with higher speed gusts...I was expecting a complete disaster but in fact I think it performed quite well considering that I had to give about 70% pitch back and roll right to keep it from drifting away in the strong winds! I will wait for a calmer day before I try Chris' recommendations on tuning the LOITER_P term to get better loiter behavior. Of course any advice you guys may have for me would be much appreciated!!!

     

    This is a very short video of the test(to those of you who may have seen the latest Mission Impossible: this is what sand storms look like in Dubai :))

    http://youtu.be/KX7l8jx0AIo

     

    Below are some configuration information as well as the param and log files used for this test:

    Frame: Scarab Euro(61.5cm motor to motor)

    Motors: KDA 1050Kv

    Props: 8X4(the Gaui 330x props)

    Battery: TGY 2200mah

     

     

    LoiterTest.zip

    ScarabEuro.param

  • Im a bit in the dark here where to start with the PID settings on 2.3.

    My rigs is as follow.

    Firmware: 2.3

    Quad X8 (coaxial 2 motors per arm)

    3300mAh 4C or 5000mAh 3C

    Droidworx ADR Quad HL, (72cmx72cm across)

    Flight weight 2.4kgs

    8 x Motors 880kv

    8 Props 12x4.5

    ESC 30A Jdrones

    APM power supply. 5V, 3amp switching regulator (SVR3 Tahmazo)

    Sonar XL-EZ0 (MB1200)

    Declination: -0.5899

    I see the default PIDs are for jdrones/3D quads and I see mentioned if more powerful then to lower the PIDs. Although I have 8X quad the power to weight ratio is probably only slightly more comperd the the defaults quad PID settings.

    I had previously on 2.2b4 adjusted the it from 4.500 to 3.800 and that seemed to be reasonable, although I never had a real chance to try it in no wind conditions.

    Now with 2.3 I have no idea where to start with on the settings for D and Stab D tune and so on. I really don't want to go and crash my rig again to find out the hard way, so any advise where to start from would very much be appreciated. Thanks in advance. John

  • A quick one again, the auto hover/throttle line that's been added, what exactly does this do ? I seems to be struggeling to keep the quad at a certain alt manually, it would drop or rise by itself, would this be the effect of this code ?

    Can I disable it via MP ?

  • Woke up this morning hoping that the motor re-mapping was reverted for us octo guys, and it seems it has, thanks! I will test with my big machine and give some feedback.

    Regards

    Duran

  • Ok I made up a rig out of a clothes rack to test 2.3 with and see how it works. This is a clip of the first test. I'm not sure if the wobble if because of the rig or because if the settings. Any ideas? http://youtu.be/_i1mM0IlNx4

  • Well done to all testers :-)

    I cant wait to test the new 2.3 on my Y-6 and report back weather permitting

  • Developer

    Question for some PID gurus.... Does the rate integral gain help compensate for CG imbalances like the stab integral gain? The attitude tuning wiki says that using the rate integral gain in favor of the stab integral gain may perform better, but I need to understand if it will effectively compensate for CG issues.

This reply was deleted.

Activity