My attempt at autotuning resulted in a crash this morning.
I fiew the quadcopter previously with a 2S battery. It was quite stable but underpowered.
After upgrading to a 3S battery I set the PIDs to what I believe is the default values:
Stabilize P: 4.5
Rate P: 0.15
Rate I: 0.1
Rate D: 0.004
Taking off and switching to Alt Hold went smooth. I then switched to Autotune and nothing happened. I believe this is because I had the throttle still a tad above hover. Closing the throttle down slightly to get it in the hover range started autotuning and on the first or second autotune roll it started oscillating ending in a crash. I was way too slow to recover it.
The way I read the log file, theses values were used for autotune:
Stab P: 4
Rate P: 0.2
Rate D: 0.005
Dataflash log attached. No CoG issues. Props and motors tuned recently, so low vibrations.
My primary question is:
What caused this crash?
My theory is that the motors may now even be slightly overpowered and I guess that an average PID settings may caused it to respond too violently. But I would appreciate if anyone else can confirm that from the log or share their own experiences.
Is there a way to tell autotune to cool things down a bit and use a range of lower PID values?
Which frame, motors, props, ESCs?
Frame: Tarot FY450
Motors: SUNNYSKY X2212 980KV
Props: 10 x 4.5
ESCs: Hobbywing Platinum Pro 30
No camera / gimbal
From an Auto Analysis:
Size (kb) 3650.150390625
No of lines 46173
Firmware Version V3.3.2
Firmware Hash 7f16e4d6
Free Mem 0
Skipped Lines 0
Test: Autotune = NA -
Test: Balance/Twist = NA -
Test: Brownout = GOOD -
Test: Compass = GOOD - No MAG data, unable to test mag_field interference
Test: Dupe Log Data = GOOD -
Test: Empty = GOOD -
Test: Event/Failsafe = FAIL - ERR found: CRASH
Test: GPS = FAIL - Min satellites: 0, Max HDop: 99.99
Test: IMU Mismatch = FAIL - Check vibration or accelerometer calibration. (Mismatch: 1.77, WARN: 0.75, FAIL: 1.50)
Test: Parameters = GOOD -
Test: PM = NA -
Test: Pitch/Roll = NA -
Test: Thrust = NA -
Test: VCC = GOOD -
could you attach all log files ?
To study true nature behind your ddrone crash I need to know technical specifications
for every hardware item installed on your drone.
I need to know at what frequency is clocked your GPS, IMU, Compass, every sensor
and at what frequency is run PID loop and how PID loop is implemented.
I need wire frame for PID, maybe one of developers could be of help.
Earlier or later I hope to find true nature of Drone Fly-Away Syndrome and Drone Fly-Away Crash but I need your cooperation.
At FabLab we plan to set up Drone Labs to study every drone crash case, if anyone is interested.
In the meantime pls join
Peer To Drone Crash Investigators
How do you interpret the Auto Analysis?
If I look at the 'FAILS':
1. Even/Failsafe shows 'CRASH'. I know this bit already. I'm interested in what caused it.
2. GPS: Well spotted. I did not notice it as I did not have live telemetry during this flight. But as far as I know the GPS is not used by Altitude hold or Autotune. Should be investigated, but I don't think it contributed to this crash.
3. IMU issues: The vibration graph seems fine up to the point where the oscillation starts. There appears to be a correlation between vibration / roll oscillations, but I think the vibration may be a consequence and not a cause.
What do you read in this analysis?
I am using a Pixhawk controller. As far as I could figure out the dataflash log file (includedin the first message) is as detailed as it gets. All the configuration parameters are included at the start of the file. I am using a Pixhawk controller. I still have all the other files, but I think they all get wrapped up in the log file. Most of the hardware specs for the components can be googled.
Let me know if you need any specific file or bit of technical detail.
Sorry to hear about your crash. Autotune is only operating during the first half of the twitch and at all other times it is using exactly the same controllers as Alt_Hold (identical to Stabilize for roll, pitch and yaw). This type of crash happens because the pids you are flying with are not stable. Autotune assumes that the pids you have selected are capable of correcting the attitude after a minor disturbance (Autotune asks for a maximum of 90 degrees per second during its rate tests and 20 degrees during its angle tests). With the pid values you had set you would have had a very similar crash if you had attempted any quick attitude change in roll.
You have set your PID's for roll and pitch to:
Stab P: 4
Rate P: 0.2
Rate I: 0.01
Rate D: 0.005
I think the defaults are (it depends on your frame):
Stab P: 4.5
Rate P: 0.1
Rate I: 0.1
Rate D: 0.004
Before attempting autotune you should ensure the copter can be flown around in Alt Hold and is capable of recovering after you hit the sticks to any side.
If you are increasing your cell count you should scale your pids by the ratio (old_number_of_cells/new_number_of_cells), especially if you are increasing the cell count.
Again, sorry to hear about your crash. I hope this post has explained what happened.
I think it was vibrations, but I haven't had a chance to look at the data yet.
In the meantime read this: http://copter.ardupilot.com/wiki/altholdmode/ , expecially the Common Problems section.
And while we are on the subject of vibrations, how did you balance the props, and how is the flight controller mounted to the frame?
That make perfect sense to me. 2 questions from this:
1. Where do I get good default values? I didn't want to use the PIDs that I used for the 2S system because I was worried about this exact problem. What I ended up doing is starting the SITL, went to the config advanced menu and restored all the defaults. I then used those PIDs values for my frame as I thought the defaults would be a fairly conservative starting point. Obviously I was wrong and it is frame / power setup dependant. So is there any good source for conservative starting PID values?
2. Thanks for the scaling function based on cell count. Do I scale all PID values this values? Rate and stab?
Also my 2S setup used these values:
Stab P: 3
Rate P: 0.3
Rate I: 0.01
Rate D: 0.035
Scaling them down by 30% would put some values below the values allowed in 'Extend Tuning'.
But thanks for your input. I didn't realise the current PID values are used between autotune commands. I will tune things down a bit and try again once I've repaired the damage.
The defaults are good for most quads but I have a number of 250 quads that require much lower pids. The first flight is the scariest as if the quad oscillates it can fly into the air and need to be shut down followed by a crash. A very short tether can reduce the risk of this process.
If the default pids cause oscillation I will reduce them until there is no oscillation. I do this by reducing P and D with 50% steps.
I then do a flight and I test for stability at approximately 1m of the ground. I give the roll and pitch axis a poke (one at a time). I start with about 5 degrees and work up to 45 degrees (I increase the hight as my confidence improves). If at any time I see wobbling as it returns to level I reduce the pids. I am looking for a mushy but very stable tune that I feel confident will always level after an input.
Then I do autotune on roll and pitch, then yaw. I then repeat the autotune on all axis.
After that I back of the ATC_Accel_XXX (XXX is RLL, PIT, YAW) and RC_FEEL to taste.
This seems a little long winded but it gives very good results.
Based on your 2s results I would set:
Stab P: 3
Rate P: 0.2
Rate I: 0.2
Rate D: 0.02
But looking at your Stab P value and the fact that Rate P is not equal to Rate I, I suspect your 2s tune isn't very good to start with.
I did go through a fair bit of trouble to minimize vibrations based on the reference on the wiki page you provided. The Pixhawk is attached to the frame using 3M foam tape.
I waxed the carbon fibre props and used a du-bro prop balancer for the props.
I then used Mission Planner's real time vibration monitor and run the motors one by one and rotated the propellers on the motor shaft until I found the lowest vibrations.
The wiki indicates normal vibrations as under 15 with an occasional peak into 30. Previous flights show vibrations of < 10. The first bit of this flight was the same.
Vibrations did increase right at the end of the flight, but I think it was in response to the oscillations that was already ungoing.
But thanks for the feedback. I will tune down the initial PIDs as leonard suggested and check vibrations when doing more aggressive control inputs before doing the autotune again..
One tip is to assign Rate Roll/Pitch P value with channel 6 dial - I always do this when flying a new frame or motor type as if it starts oscillating or doesn't respond enough then you can very quickly adjust the values to something that works, hopefully before it crashes!
I use this and then adjust the values inflight until I find the most stable, then start autotune.