Summary
I’m getting a strange system error called ODriveError.MISSING_ESTIMATE
which I can’t find in the documentation.
My setup
- Odrive 3.6 24V board running firmware 0.5.4
- The D5065 motor on the ODrive shop.
- The 8192 CPR AMT102 encoder on the ODrive shop
What I did:
I put the ODrive into torque control mode and asked for 0.1Nm of torque, expecting it to spin slowly and consistently. Instead, there’s a brief jolt, and I can see the current go up on my power supply. But immediately afterwards, the current is back down to AXIS_STATE_IDLE
levels, and I get the following error:
system: Error(s):
ODriveError.MISSING_ESTIMATE
axis0
axis: no error
motor: Error(s):
MotorError.SYSTEM_LEVEL
DRV fault: none
sensorless_estimator: no error
encoder: no error
controller: no error
axis1
axis: no error
motor: Error(s):
MotorError.SYSTEM_LEVEL
DRV fault: none
sensorless_estimator: no error
encoder: no error
controller: no error
I can’t find the MISSING_ESTIMATE
error anywhere in the v0.5.4 documentation. I’m confident that my motor/encoder are working, because I plugged into a different board (still ODrive 3.6 hardware, but running v0.5.1 firmware), and everything works fine there.
I tried doing position mode as well, and similar behavior happens in position mode - it jolts, then goes to idle.
Terminal output below:
n [1]: odrv0.vbus_voltage
Out[1]: 23.857324600219727
In [2]: odrv0.fw_version_revision
Out[2]: 4
In [3]: odrv0.fw_version_minor
Out[3]: 5
In [4]: odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
In [5]: odrv0.axis0.requested_state = AXIS_STATE_IDLE
In [6]: odrv0.axis0.controller.config.control_mode = CONTROL_MODE_TORQUE_CONTROL
...:
In [7]: odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
In [8]: odrv0.axis0.controller.input_torque = 0.1
In [9]: dump_errors(odrv0)
system: Error(s):
ODriveError.MISSING_ESTIMATE
axis0
axis: no error
motor: Error(s):
MotorError.SYSTEM_LEVEL
DRV fault: none
sensorless_estimator: no error
encoder: no error
controller: no error
axis1
axis: no error
motor: Error(s):
MotorError.SYSTEM_LEVEL
DRV fault: none
sensorless_estimator: no error
encoder: no error
controller: no error
Any help would be appreciated.