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
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!
It looks like copass 1 was cutting out but I will have to let Randy an Paul handle this one as this isn't my strong suit.
Sorry I can't help more!!
thanks anyway for having a look.
I think this is a good example for maybe detecting a failure in ArduCopter (if there is one), because there were almost no control inputs and all of a sudden the aircraft flies away while not responding to control (this is probably because of the failsafe?).
So I am now hoping that anyone else can help me find the cause of the flyaway/crash.
Thanks in advance :)
I've had a look and as Leonard says, the compass failures during this flight at total of 7 times with the first failures appearing 3 minutes before the final crash (the vehicle is disarmed/armed twice during this last 3 minutes).
The compass failure leads to an EKF failsafe which triggers a LAND. This should be a pilot controlled land meaning the pilot should have had control of the roll and pitch (much like AltHold).
Things go horribly wrong soon after it switches to Land. I think the Pilot was requesting full Pitch back (see diagram below) but as you've noticed the actual pitch and roll separate from the desired (see 2nd pic below).
This suggests a mechanical failure. The pilot/controllers are asking the vehicle to pitch back but instead it pitches forward. During this time the front two motors (#1 and #3) go high as does the back left (#2) while the back right (#4) goes low but still this doesn't correct the attitude error.
Another suspicious thing is the battery voltage. If the battery monitor is functioning correctly the battery voltage drops an incredible 8V when the motors go to full. This happens during the crash but also much earlier in the logs as well (at 6min30sec). This suggests the battery's C rating is far less than is required by the motors.
thank you very much for having a look at this.
In the moment you investigated in your post above, the aircraft already tried to fly through the wall, crushing the props.
Unfortunately it didn't quite make it (maybe because of the battery C rating :D).
(the aircraft flew at the wall and didn't stop the motors until 2 seconds passed. The sound of this moment was fearing! As you can see in the logs, motors didn't stop although the throttle was put to minimum there was absolutely no reaction to the RC commands given!)
Thank you for the identification of the problem and also thanks for telling Paul.
thanks for your answer, Richard.
I didn't do motor/compass yet, but as you can see, I was just hovering in this test and there was almost no power drawn by the motors.
No pre flight checks were turned off.
I don't know what my offsets were anymore, sorry.
Thanks, will do this kind of calibration, if it is built up again.
Great job. installed today, just waiting for the weather to clear. Thank you for your efforts to make this system great,
So did autotune on Roll with AUTOTUNE_MIN_D set to 0.001. It wasn't that calm, but it's winter here I'm afraid.
The tune completed and gave me PID values of 0.0466/0.0466/0.0016
The copter flew pretty well. I then landed and set Roll_P on channel 6 and tuned this up in flight. I was able to get to about 0.15 before I noticed some small vibration in the wind. So again a 300% increase on what autotune had given me. The copter then felt much more responsive.
Both logs attached.
Had a strange GPS experience with 3.3.2-rc2.
Basically you can see that late into the flight the num sats drops to 0 and the HDOP goes to 99 and the copter hits RTL. However, nothing else is awry - including in the UBX messages. The GPS appears healthy and the signal quality appears healthy. Is this just a glitch or is something else going on here? The thing that is puzzling is that in the GPS glitch in the first part of the flight all of these things move in tandem, but for the second its only HDOP and numsats.
Thank you very much for looking into this.
I have a few further questions:
Did both compasses fail? I have an additional external compass.
What caused the fail? I want to avoid it for the future. Was it a wrong calibration?
Why does the aircraft fly away? The GPS reception was perfect and as I was in Loiter, the position should be held.
I thought the compass is just used for the heading.
So Copter-3.3 only ever uses one compass and it won't fall back to the internal one if the main one fails (this may change in Copter-3.4 if the EKF can determine that the internal compass is ok).
In this case, the EKF's heading estimate became off by 90 degrees because it "reset" the heading when the compass recovered. It sounds like Paul will add some extra protection before it does the reset.
Because the EKF's heading was off, the vehicle flew off in the wrong direction. So for example, if the GPS says it's too far east then the vehicle tries to fly west. But with a bad heading it might fly south. After a few seconds it figures out that it's flying in the wrong direction but it can fly rather far and fast in that time.
I'd just like to clarify that you only have 1 external GPS attached right? Trying to attach two external GPSs won't work and could explain the compass health failures (and possibly the bad data).
Randy, could you please clarify if this flight would have been recoverable under normal control if the mode was switched back to stabilise?