Warning #1: an issue has been found with Tower's Pause button which can cause the vehicle to fly to an old position if the vehicle has not sent a position update to Tower in some time.
Warning #2: Copter-3.3.2 fixes a bug found in Copter-3.3.1's desired climb rate initialisation which could lead to a sudden momentary drop when switching from Stabilize or Acro to AltHold, Loiter or PosHold.
Warning #3: Copter-3.3.2 fixes an issue found in Copter-3.3.1 which could lead to hard landings in RTL or AUTO if the WPNAV_SPEED_DN was set too high (i.e. >400 or 4m/s) and/or the WPNAV_ACCEL_Z was set too low (i.e. <100 or 1m/s/s).
Warning #4: a bug was found in Copter-3.3 which could cause a sudden crash if you abort a Take-off initiated from a ground station. Video description is here. The bug is fixed in Copter-3.3.1 so we recommend upgrading.
Note #1: AC3.3-rc8 corrected a long standing bug in the HDOP reporting. HDOP values will appear about 40% lower than previously but this does not actually mean the GPS position is better than before.
Note #2: if upgrading from AC3.2.1 the vehicle's accelerometer calibration needs to be done again.
Note #3: set SERIAL2_PROTOCOL to "3" and reboot the board to enable FrSky telemetry like in previous versions.
Note #4: the wiki will be updated over the next few weeks to explain how to use the new features
Copter-3.3.1 is available through the mission planner. The full list of changes vs AC3.2.1 can be see in the ReleaseNotes and below are the most recent changes since AC3.3.
Sadly this version (and all future versions) will not run on the APM2.x boards due to CPU speed, flash and RAM restrictions.
Changes from 3.3:
1) Bug fix to prevent potential crash if Follow-Me is used after an aborted takeoff
2) compiler upgraded to 4.9.3 (runs slightly faster than 4.7.2 which was used previously)
Changes from 3.3-rc11:
1) EKF recovers from pre-arm "Compass variance" failure if compasses are consistent
Changes from 3.3-rc10:
1) PreArm "Need 3D Fix" message replaced with detailed reason from EKF
Changes from 3.3-rc9
1) EKF improvements:
a) simpler optical flow takeoff check
2) Bug Fixes/Minor enhancements:
a) fix INS3_USE parameter eeprom location
b) fix SToRM32 serial protocol driver to work with recent versions
c) increase motor pwm->thrust conversion (aka MOT_THST_EXPO) to 0.65 (was 0.50)
d) Firmware version sent to GCS in AUTOPILOT_VERSION message
3) Safety:
a) pre-arm check of compass variance if arming in Loiter, PosHold, Guided
b) always check GPS before arming in Loiter (previously could be disabled if ARMING_CHECK=0)
c) sanity check locations received from GCS for follow-me, do-set-home, do-set-ROI
d) fix optical flow failsafe (was not always triggering LAND when optical flow failed)
e) failsafe RTL vs LAND decision based on hardcoded 5m from home check (previously used WPNAV_RADIUS parameter)
Thanks for your testing!
Replies
Roger,
The vibration levels shouldn't affect flying in stabilize because in that mode (and acro) the throttle is completely controlled by the pilot. It's really modes where the autopilot control altitude (i.e. AltHold, Loiter, etc) that these vibration levels are critical. Saying that, very bad clipping can lead to attitude estimate errors because the accelerometer vector (used to slowly correct the attitude estimate) will be pointing in slightly the wrong direction.
Oh, OK thanks Randy.
It seems to be pretty well behaved in Alt Hold, Loiter, etc, so it's just my poor piloting skills in Stabilize mode that's the problem. My test area is at the crest of a 50 or 60 meter high hill so any breeze at all causes upslope conditions so I'll blame it on that;-) I haven't seen any vibe clipping yet but I'll see if I can reduce them further.
Is it just the high frequency component we should worry about (i.e., ignore the apparent "gravity" offset & other anomalies caused by maneuvering?
Randy, you're extremely dedicated and I really appreciate your efforts.
Andy and all,
somewhere Randy mentioned that 15 should be the maximum. So yours look really high. Luckily, mine seems pretty low in contrast (see below).
For my copters the thresholds in the wiki were too high for a smooth flight. So if you copter flies fine with these vibe values I am interested in your AccXYZ values. Can you post a screenshot?
I also would like to learn more about the vibe vales. I read that is is the standard deviation of the Acc values. Can someone provide more details? Is it the better measure to interpret vibration compared to the AccXYZ values?
I just saw that Randy updated the wiki: http://copter.ardupilot.com/wiki/ac_measuringvibration/
Compared to his Iris your VibeZ is high but maybe not "awfully". Although the difference to X and Y is high.
According to the wiki looking at the vibes seems the way to got for vibration analysis for AC3.3+.
How is the standard deviation calculated?
Randy and Leonhard,
thanks for the explanation and details! I have to look at the formula. Seems a little different to the common stdev.
Another thing: What about a failsafe based on clipping? This would help detect vibration changes during flight. Not sure if RTL is the best option in this case but it could be a two stage approach as well: first engage RTL and when clipping is increasing further switch to stabilize.
Hi Thorsten,
We have been talking about that. Our thoughts so far is we could do a throttle limit in the same way we do if we go over the maximum current. This may help because often the clipping only happens at near maximum throttle.
If it continues to clip we were thinking of dropping into stabilize.
As we can't trust any autonomous modes, land and RTL may not be a good idea.
You are correct that this isn't quite standard deviation.
The formulae for standard deviation is sqrt(sum(samples^2)/No_Samples)
In our case we don't want to include normal motion of the copter so
samples = HighPassFilter(IMU).
We also want an output that represents the recent performance of the copter, not the whole flight. So we replace the sum()/No_Samples with a low pass filter that effectively looks at a decaying average over the last N samples.
So this becomes a moving standard deviation over the last segment of time where that time is defined by the time constant of the low pass filter.
Hi Leonhard and Randy,
thanks a lot for the details!
I was a little confused first because of the low-pass filter step and thought that we might loose some information but looks good :-)
Regarding the failsafe: it would be really good to have something that tells the GCS that the vibrations change to a higher than normal (for a specific UAV) level in flight -due to problems of the motor a broken prop or something. This would good even if the UAV still flies fine this time.
So maybe it is a better idea to use an individual vibe threshold instead of the clipping.
Good idea, but it will be tricky to do as vibration will normally increase with forward flight. So you could get a false positive just from starting to fly forward.
Hi Rob,
yes with the Acc it is the case but the Vibes have the movement of the vehicle removed, which makes a threshold much easier.
Attached the Accs to the vibes I posed above.
Hi Thorsten,
It is calculated by subtracting a low pass filtered IMU from the raw IMU. The result is then squared and filtered again. We then square root the value before outputting it.
So this value is aproximatly the RMS of the last second or so after a high pass filter of 5Hz is applied. (I may be wrong about the actual filter frequency used).