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 42 58 13 7Motors 1 through 4 spin clockwise, and 5 through 8 spin counterclockwise.
Hi I have just see your video http://diydrones.com/profiles/blogs/arducopter-2-3-nav-tuning-video... and I have found this to be a grate help to me and I am sure it will be to others, the fact that you are putting your settings on your video for all to see and what affect it has on your quad is a great idea PLEASE PLEASE keep this up I can wait for the next one :-)...
As there is so much changing in this thread it had to keep up and a video diary is a GREAT Idea maybe one of the testing team would do one to ?
Thanks Graham...I'm glad you found it usefull...I'll try to follow the same format for every testing session I do and post it in the blog section.
Alt_hold behabiour is controled by several parameters, in my understanding:
Throttle_rate: P, I, D and IMax
Alt_Hold: P, I , Imax
Throttle_Hold_KP (in the CH6 option). I guess this is ALT_HOLD_P
Has anyone more info about this?
Here a video of one of the test flight with the firmware ArduCopter v2.3 installed on my QRO quadcopter that I have done on feb 4, 2012.
Wind 9 Km/h, gusting at 15 Km/h. Temperature: -7°C (Windchild)
In spite of strong gusts and turbulences due to the presence high trees around the field, the firmware v2.3 has been able give a good stability (see the onboard video). There is no wooble during the takeoff...
Yes, I am currently using the DJI flameWheel F450 quad frame, this is a cheap and very robust frame (look at HERE the endurance tests done by DJI) ... The arms are very rigid and I like this for the tuning. This frame have also a very compact size and it is very usefull for the walking...
No problem about the arms twisting with the flame wheel they are very very very (x3) rigid... ;-)
I knew as soon as i gave up on my flame wheel someone would have success :P
I can vouch that it is very strong, i caught my 3 yr old trying to dig a hole with it in the garden, and its frozen solid round here atm...
Well done JLN!
Dave, i'd presumed the arm twisting and vibrations were the source of my probs... JLN has obviously sorted it!
Any chance of your set up list (motors, props etc) and params for this flight so i have a better starting point next time i try.
Looks like it's all moulded in one piece, so if you get a nicely squared one, then it flies well. But, if it comes out of the factory off-squared, then you're SOL.
Below my Quadcopter setup with the F450 FlameWheel:
- ArduPilot Mega v2
- firmware Arducopter V2.3
- Receiver: Turnigy 9X8C v2
- Transmitter: Turnigy 9x
- uBec 5V @ 5A Turnigy
Quacopter frame: DJI Flame Wheel F450
- four brushless motors RC Timer BC-2836/11 (750 KV)
- two CW propellers 12 x 4.5
- two CCW propellers 12 x 4.5
- fours ESC 40A RC Timer speed controllers
- one Lipo battery 3S Turnigy Nano-Tech 2200 mAh
- Take Off Weight (TOW): 1088 g without payload
- Flight time: about 10 min
Camera: GoPro HD wide
and my working PIDs: