EKF position estimation from DroneCAN ESC telemetry

I have Ardurover 4.6.3 installed on Cube Orange Plus build using 4x VESC (6.06) ESC’s over DroneCAN.

Driving in Manual mode everything is fine, I would like to setup Acro mode for closed-loop throttle & steering control.

The rover motors are brushless e-skate motors with Hall sensors, but no encoders.

EKF

  • Is there a way to have EKF ingest ESC Telemetry directly? Is it true WENC_TYPE = 2 (ESC Telemetry) is coming in Rover 4.7? I did install Rover 4.7dev but did not see it there.

RPM Library

  • I have RPM1_TYPE = 7 (DroneCAN) and RPM1_ESC_MASK = 15, however Dataflash log shows zero value over time for RPM[0].RPM
  • Status window rpm1 also remains zero at all times (believe this is the same variable as RPM[0].RPM)

ESC Telemetry

  • Logs show i have valid signed rpm data being published from ESC’s over DroneCAN - ESC[0/1/2/3].RPM all show accurate positive and negative mechanical wheel RPM - therefore should be ready for ingestion into EKF (or RPM Library) if this is possible.
  • I did note in MAVLinkInspector → ESC_TELEMETRY_1_TO_4 → rpm appears to be treating the ESC rpm telemetry as UInt16 instead of signed… so, the escx_rpm variables in Status monitoring only show positive values during forwards driving, remain clipped at 0 when driving backwards.
  • CAN_D1_UC_ESC_RV is set to 15 to designate all 4x ESC’s as reversible

Any assistance greatly appreciated

85 1-01-1970 10-00-00 AM.zip (926.0 KB)

20251221 - CubeOrange Rover 4.6.3 - tuning.param (17.1 KB)

Any Devs out there able to at least confirm if WENC_TYPE = 2 (ESC Telemetry) is coming in Rover 4.7 ?

Cheers,