Copter-3.5-rc3 released for beta testing

We’ve just released Copter-3.5-rc3 for beta testing. This has a few important bug fixes over -rc2 which are listed below and in the ReleaseNotes.

  1. OLED Display fixes:
    a) can be connected to either I2C bus
    b) last character on line correctly cleared
  2. bug fix to detect SBUS failsafe on Pixracer
  3. bug fix to Gimbal servo reversing
  4. ensure WPNAV_LOIT_SPEED is non-zero to avoid divide-by-zero
  5. Fence pre-arm check failure messages clarified

I suspect we are getting fairly close to the official release now although we’ve got one unexplained crash (detailed on this thread) involving a main loop performance issue that we will need to get to the bottom of.

Thanks for helping us out with testing!

2 Likes

Flew 3.5.rc3 on UAUV Pixracer on a 450 clone.
Compass Calibration was reporting off and I redid using the onboard with Tx method ( is that mentioned in Wiki yet?)
Stab, Loiter, Alt Hold, Circle, PosHold, and Mission with RTL landing, all OK.
OLED reads OK and updates.

Did drift a lot when doing Auto tune when it was repositioning for pitch, (I think). it really started to drift toward neighbors and I terminated Auto Tune… I will try Auto tune later and post log if it happens again… Winds were 5 mph or so. Same drifting using Loiter and Poshold Auto tune modes.

Looking great so far. Thanks for all the work you all have put into this.
Joe

Thanks for testing.
The position hold in autotune is a very soft position hold. It doesnt hold position like in loiter or poshold modes. So its very likely that it will drift around 10m or so.

1 Like

Makes sense. … Later flew a X545 with a Pixhawk 2.4.8 with 3.5.rc3 and all went well, no issues so far.
Thanks again,
Joe

Hi Randy,

Just completed a couple of flights on V3.50 RC2, and had a look at the specific params you mentioned in that tread.
Can it have something to do with the activation of EKF3 ?

On my earlier flights in RC2 I switched the EKF3 option off, and on the last one it was turned on…
In the logs you can see there is a major difference in NLON, see both log’s

This may be insignificant, but could also help pinpointing the problem…(just trying to help).

See links:
https://drive.google.com/file/d/0BwKkz56PHqS0RUFFbzZBRkxOZ2c/view?usp=sharing
https://drive.google.com/file/d/0BwKkz56PHqS0eDNOSHlYLW44dmc/view?usp=sharing

In the last flight the NLON is around 533 on average (EKF3 = on) and without the value is around 116…

Same hardware, just one GPS UBLOX M8N nothing special…

Erik,
Very nice catch on the performance issue reported as a secondary issue on that thread by johnnyruz. It makes sense that having EKF3 turned on is causing the performance issues. I’ll check with Paul and Tridge about this. I would have expected that enabling both EKF2 and EKF3 at the same time would be OK because there should still only be 1 EKFs in total running. Still I can imagine performance problems could arise because:

  • both might be using the first, higher speed IMU instead of one using the high-speed one, the other using the lower speed IMU.
  • there’s logic to stop two EKF cores from trying to run their occasional high load processes (specifically the compass correction code) at exactly the same time… this may not work across the EKF2-EKF3 barrier. i.e. that load balancing may only work when both EKFs are of the same type.

sory frame type wrong
lidarlite3 work

Servo gimbal reverse is working :slight_smile: Thanks very much!

@rmackay9 in an effort to gather some data on the EKF performance, I conducted 3 short test flights with different settings for the EKF IMU Mask. Between each parameter change, I did a complete reboot (disconnect battery and reconnect). It was a pretty windy day and the copter was doing OK holding its place but was twitching quite a bit.

Test 1: EK2_IMU_MASK = 1, EK3_IMU_MASK = 2
Initial observation is that NLon starts off good (right around 20), but halfway through the flight jumps to over 140.

Test 2: EK2_IMU_MASK = 2, EK3_IMU_MASK = 1
Right after activating position hold, NLon climbs to 100-110 and stays there for the duration of the flight.

Test 3: EK2_IMU_MASK = 3, EK3_IMU_MASK = 3
NLon slowly climbs up to 600-650 where it remains for the rest of the flight

Here’s a link to the log files from each flight: EKF Testing Logs

I guess I should also test the NLon performance when switching off one or the other EKF but I ran out of time today. Maybe a test for tomorrow. Let me know if there’s anything more I can do to help test.

EDIT: One last note is that nothing has changed with regards to my setup other than flashing RC3 and changing my pwm gimbal control to leverage one of the Aux pins on the Pixhawk rather than just through my RX.

@johnnyruz,

thanks for the testing. I confirmed with @priseborough that with the EK2_IMU_MASK and EK3_IMU_MASK set to “3” we will actually be running 4 EKFs so it makes sense the performance is as bad as you saw.

It seems like the EKF3 does have some negative impact on performance.

One last test you might try if you have time is to set EK2_ENABLE to zero, EK3_IMU_MASK to 3. That means it’s all EKF3 (not EKF2 being used). This is slightly risky as there is absolutely no fall back to EKF2 if something goes wrong with EKF3. It’ll probably be fine but no problems if you’d rather not do that test for now.

Following this discussion I also had a look at NLon where I had set EK2_IMU_MASK and EK3_IMU_MASK to “3”. The result is the same on a Pixracer quad and a AUAV-X2 hexa:

I have already tested from the beginning of 3.5. with only EK3_enable, EK3_IMU_MASK to 3. Quad+ 700, AUAV-X2, oneshot, Ultra-ESC, Tiger U3 at 4s, Jeti sBus,
About ten flights with good performance. NLon between 200 - 250, MaxT 4,2

What is the maximum NLon value, which is regarded normal.

actually I don’t know more than here already written
http://discuss.ardupilot.org/t/autotune-mishap-with-ac3-5-rc-2/15926/9

Some tests from today with only one EKF running on all IMUs:

EKF		NLon 	Firmware	Board		Copter
2 only 	40-70 	3.5rc2		AUAV-X2		Hexa
2 only	45-75	3.5rc3		Dropix		Hexa
3 only	130-160	3.5rc3		PixRacer	Quad

Flew a couple tests yesterday with some issues that I worked out, on the full good flight with just EKF 3 enabled my NLon bounced between 60 - 100.

At first I had just set the EKF2_ENABLE parameter to 0 with the EKF3_ENABLE set to 1 and EKF3_IMU_MASK set to 3. Upon startup it would not pass pre-arm checks. I continuously got a “gyros still settling” message. I then found the AHRS_EKF_TYPE parameter and changed it from 2 to 3. As soon as I did that, the copter indicated it was ready to arm.

I was connected via wireless telemetry when I updated the AHRS parameter, so after the copter indicated it was ready to fly, I armed and took off without rebooting. It flew absolutely fine at first but then in fast forward flight in position hold, I started receiving “Bad Horiz Pos” errors and it would slowly descend or suddenly climb as if it was having a hard time determining altitude. I was able to bring it back and land safely.

After swapping the battery with the same parameters set, I was able to fly successfully in Stabilize, PosHold, Loiter, and execute an Auto Mission without any errors, however I did see the “gyros still settling” message for about 20 seconds until, I assume, the EKF3 fully initialized.

My question would be is the AHRS_EKF_TYPE parameter value of 3, combined with the EKF2_ENABLE = 0 and EKF3_ENABLE = 1, and EKF3_IMU_MASK = 3 the correct setup to test with EKF3 only?

according Wiki complete parameter list
EK3_ENABLE: Enable EKF3
Note: This parameter is for advanced users
This enables EKF3. Enabling EKF3 only makes the maths run, it does not mean it will be used for flight control. To use it for flight control set AHRS_EKF_TYPE=3. A reboot or restart will need to be performed after changing the value of EK3_ENABLE for it to take effect.

AHRS_EKF_TYPE: Use NavEKF Kalman filter for attitude and position estimation

Note: This parameter is for advanced users
This controls which NavEKF Kalman filter version is used for attitude and position estimation

when I changed EKF there was a massage in MP like reboot required
never tried what happen without reboot

I’m happy with EKF3 exept sometimes in poshold or Loiter he want to drift very fast. Never tried how far. switched back to stab then loiter again and it holds position.

so it’s the correct setting to use EKF3 in your question

Thank you @Cipta, must have missed that when I was reviewing the documentation.

I was curious about difference ekf2 - 3 so I did a Test with AUAV-X2, one GPS, one ext-Compass
EKF2

EKF3

and ekf3 strange poshold maybe its because the close roof of steel? Its only sometimes and I don’t know if its related to ekf3