Hello.
I’m having problems starting the motor once the ODrive is rebooted. I’m kinda lost on what exactly to set after the boot to have it running successfuly.
Here’s something I do after the boot:
odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
odrv0.axis0.requested_state = AXIS_STATE_ENCODER_OFFSET_CALIBRATION
odrv0.axis0.requested_state = AXIS_STATE_ENCODER_INDEX_SEARCH
Then, after I request the CLOSED_LOOP state, it doesn’t work. But that’s not always the case. Sometimes it does after resetting the axis error or encoder error and trying everything in various order.
I have AMT10-V encoder with 8192 turns. All of the commands run and turn the motor, but the encoder is not ready. To be honest, I don’t know what exactly sets the encoder is_ready state. It looks like when the is_ready is true, it works, otherwise it does not.
This is the output from the .encoder.
error = 0x0000 (int)
is_ready = False (bool)
index_found = False (bool)
shadow_count = 30996 (int)
count_in_cpr = 6420 (int)
interpolation = 0.5 (float)
phase = -0.05323982238769531 (float)
pos_estimate = 30996.96484375 (float)
pos_cpr = 6420.7685546875 (float)
hall_state = 0 (int)
vel_estimate = 0.0 (float)
config:
mode = 0 (int)
use_index = True (bool)
pre_calibrated = False (bool)
idx_search_speed = 50.0 (float)
cpr = 8192 (int)
offset = 14646 (int)
offset_float = 1.2071046829223633 (float)
bandwidth = 1000.0 (float)
calib_range = 0.05000000074505806 (float)
Motor is RaceStar BL 4076 with 4 Poles and 2000KV.
Thanks in advance.