Rover-4.7.0-beta2 available for beta testing!

Rover-4.7.0-beta2 has been released for beta testing and can be downloaded using Mission Planner, QGC or directly downloaded from firmware.ardupilot.org.

The list of changes vs 4.7.0-beta1 are in the ReleaseNotes and copied below.

As per previously releases there should be no need to backup and restore parameters as part of the upgrade. This should all be handled automatically.

We are actively tracking issues here and all feedback whether positive or negative is greatly appreciated!

Changes from 4.7.0-beta1

  1. Board specific changes
  • UAV-DEV GmbH Powermodule changes for production (@mirkix, PR:32417)
  • X-MAV_AP-H743r1 switch to SPL06 baro only (@TompsonTan, PR:32480)
  1. Driver changes
  • External AHRS variances used in arming checks and EKF failsafe (@oursland, PR:32364)
  • Precision landing ORIENT parameter only visible on Rover (@rmackay9, PR:32403)
  • RunCam parameter conversion fix (@IamPete1, PR:32428)
  • Trimble PX-1 GNSS-RTX-INS External AHRS support (@Ryanf55, PR:30232)
  1. Copter/Tradheli specific changes
  • Copter CTUN climb rate logging converted to m/s (@piVerified, PR:32474)
  • TradHeli attitude controller leaky-I term during power-off fixed (@Ferruccio1984, PR:32273)
  1. Plane specific changes
  • Throttle slew fixed during first takeoff (@IamPete1, PR:32381)
  • EXTENDED_SYS_STATE during AIRBRAKE fixed (@robertlong13, PR:32422)
  1. Scripting changes
  • param-set script renamed to param-lockdown (@rmackay9, PR:32489)
  • PlaneFollow scripting parameter case fixed (@timtuxworth, PR:32456)

Upgraded from a pretty dated 4.7-dev version (testing GPS stuff) to 4.7-beta2. No surprises or issues across ~3 hours of runtime. New u-Blox driver is working well with Zed-F9P moving baseline modules. Did some nav tuning, including experimenting with PSC_VEL_FF with maybe a little improvement, but that’s not exactly 4.7 related.

I run a solid handful of Lua scripts using a fair amount of the available feature set, and happy to report no breakage there.

I intend to test Zed-X20P modules in more depth as soon as u-Blox releases the update to include moving baseline (rumored to be soon).

1 Like

@Yuri_Rage,

Here are some items that are new to 4.7 that I’ve personally not tested but would be good to get some feedback on if you have time to test a couple of them out

  • Arm automatically after arming checks complete (set ARMING_REQUIRE=3) (@peterbarker, PR:29066)
  • DCM fallback disabled by default (see AHRS_OPTIONS) (@rmackay9, PR:31632)
  • MOT_REV_DELAY allows delaying before reversing motors (@tridge, PR:30188)
  • Pivot turn control improved with steering deceleration max parameter (see ATC_STR_DEC_MAX) (@stephendade, PR:30539)
  • Rover AMP limiter added (see BATTn_WATT_MAX, MOT_BAT_WATT_TC) (@SpiciestMayo, PR:31285)
1 Like

Hi,

Board: Pixhawk 6C Mini

GPS: 2x Ublox RTK-NEO-F9P –> Used for Yaw

using this version I have encountered following issue:

When starting up, GPS indicates flashing green LED as expected. When arming (via RC channel) get red/green flashing LED and message on GCS ā€œEKF varianceā€.

–> After disarming I get a ā€œEKF failsafe clearedā€ message and back to the flashing green LED.

This keeps happening practically with every arm/ disarm action.

Hi @Karl_S,

Thanks for the report.

An onboard log would be good if possible. Ideally with LOG_DISARMED = 1 so that we can see the logs from before the vehicle is armed.

I’d like to check if the AHRS_OPTIONS are set so that the fall back to DCM is disabled.

I’d also like to check which mode the vehicle is being armed in.

Was already working on downloading the log.

….here it is:

Armed in ā€œMANUALā€

Hi @Karl_S,

Txs for the log. I compared it to our GPS-for-yaw wiki instructions and a few things popped up:

  • EK3_MAG_CAL = 6 which is a deprecated option. I think this should be returned to ā€œ2ā€ (the default)

I wanted to run the log through our hardware report tool but we don’t support .log for that tool sadly. Perhaps you can try it yourself.

The vehicle is outside of course? I think the issue is just that the GPSs haven’t calculated their yaw yet. The 1st GPS in particular only has a status of ā€œ3ā€ while the 2nd one only has 19 satellites. The GPS log message’s ā€œyawā€ field are always zero.

Could you give stable a try? I think this will help us determine if it’s an ArduPilot issue or something external. I’m pretty confident that this isn’t an AP issue actually.

Hi @rmackay9

Thanks for that.

Have changed to EK3_MAG_CAL=2

Yes, rover being used outdoors.

Have already changed back to stable as this EKF issue didn’t appear in such a fashion previously.

The ArduPilot Hardware Report indicated the presence of a compass which is no longer there. (Previous setup). - Trying to remove it now.

But what I’ve discovered is the COMPASS_USE is showing ā€œENABLEDā€ (on all 3 comopass units) which I would have thought should change to ā€œDISABLEDā€ by setting GPS for yaw as per GPS for Yaw (aka Moving Baseline) — Rover documentation

Could you please clarify if it does in facxt need to go to DISABLED or remain ENABLED?

……the notes within QGC popping up when selecting this parameter, state: ā€œEnable or disable the use of the compass (instead of GPS) for determining heading.ā€

Thanks

Had a test of this. First note was that it’s not included in any default builds, so I used the custom build server instead. Would be useful to note that in the documentation.

I was a bit confused as to whether it was working or not, as it did not always reduce the throttle when the power limit was exceeded (on a real vehicle):


(BATT_WATT_MAX=15, MOT_BAT_WATT_TC=2)

From the above graph, the 15W limit was regularly exceeded, but the throttle was only reduced when it was greater than ~30%

Trying again in SITL:


(BATT_WATT_MAX=36, MOT_BAT_WATT_TC=5)

Note the area around 15:30:45 - 15:31:00 where the power is ~60W and the throttle does not reduce. But once I increased the throttle further, the throttle limit came into effect.

It would appear that the thresholding is not quite how I expected (maybe something to do with MOT_BAT_WATT_TC?). I’ll need to look a bit more closely at the maths.

To correct this - turns out this is included in the default build. There is, however, an issue with it not being included by default on the custom build server (Rover/CustomBuildServer: battery current limiter showing as not-included Ā· Issue #32666 Ā· ArduPilot/ardupilot Ā· GitHub)

2 Likes

I’ve now had a better look at the Rover AMP limiter.

Due to the limiter using a low-pass filter, there is some lag in entering/exiting power limiting. This is particularly visible for power levels slightly (>150%) over BATT_WATT_MAX.

I’ve create a reference table showing the % throttle decrease per second, based on the value of MOT_BAT_WATT_TC and ā€œPower Ratioā€ (measured power / BATT_WATT_MAX:

Power Ratio MOT_BAT_WATT_TC=1 MOT_BAT_WATT_TC=2 MOT_BAT_WATT_TC=5
1.1 -9.80% -4.95% -1.99%
1.5 -49.02% -24.75% -9.96%
2 -98.04% -49.50% -19.92%
5 -392.16% -198.02% -79.68%
10 -882.35% -445.54% -179.28%

So a MOT_BAT_WATT_TC=5 and MOT_BAT_WATT_TC=200, and the vehicle is running at (for example) 300W power and 50% throttle. The power limiter will reduce throttle at 9.96%/sec, so it will take >5 seconds to reduce throttle to under 50%.

From a user perspective, the Rover AMP limiter is useful for large sudden spikes (ie motor stalling) where the stalling power is >2 times the usual running speed.

Additionally, the limiter only applies to throttle (forward/back movement). It will not affect skid-steer turning. So if a motor is stalling in a pivot turn, it won’t be limited.

So I think

  1. Rover AMP limiter documentation needs to explain the ā€œreaction timeā€ a bit more clearly, so the user knows when the limiter will activate
  2. Reduce the default value of MOT_BAT_WATT_TC to 2 (instead of 5) for a quicker response
  3. Add a statustext warning when the limiter is active

I’ll create some PR’s for the above.

EDIT:

2 Likes

Hi @stephendade,

Thanks very much for the analysis and fixes! Let’s get those into 4.7!