Hello, I am using Odrive Odesc3.6 with my Ri50 motor, encoder story is a lengthy one, but conclusion is that I am now getting 720 counts per revolution , and i verified it in shadow_count, encoder_isready=True(thats ok). My motor is rotating counter and clockwise when i give command:
odrv0.axis0.requested_state=AXIS_STATE_ENCODER_OFFSET_CALIBRATION
The problem is when I give odrv0.axis0.requested_state=AXIS_STATE_CLOSED_LOOP_CONTROL
It gives errors:
In [452]: odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
In [453]: dump_errors(odrv0)
axis0
axis: Error(s):
AXIS_ERROR_CONTROLLER_FAILED
motor: Error(s):
MOTOR_ERROR_CONTROL_DEADLINE_MISSED
fet_thermistor: no error
motor_thermistor: no error
encoder: no error
controller: Error(s):
CONTROLLER_ERROR_OVERSPEED
axis1
axis: no error
motor: no error
fet_thermistor: no error
motor_thermistor: no error
encoder: no error
controller: no error
In [454]: odrv0.axis0.controller
Out[454]:
error = 0x0001 (int)
input_pos = -1.029995623585153e+18 (float)
input_vel = 2.0 (float)
input_torque = 0.0 (float)
pos_setpoint = -1.029995623585153e+18 (float)
vel_setpoint = 2.0 (float)
torque_setpoint = 0.0 (float)
trajectory_done = True (bool)
vel_integrator_torque = 0.0 (float)
anticogging_valid = False (bool)
config:
gain_scheduling_width = 10.0 (float)
enable_vel_limit = True (bool)
enable_current_mode_vel_limit = True (bool)
enable_gain_scheduling = False (bool)
enable_overspeed_error = True (bool)
control_mode = 3 (int)
input_mode = 1 (int)
pos_gain = 10.0 (float)
vel_gain = 1.2404999732971191 (float)
vel_integrator_gain = 6.202499866485596 (float)
vel_limit = 10.0 (float)
vel_limit_tolerance = 1.2000000476837158 (float)
vel_ramp_rate = 1.0 (float)
torque_ramp_rate = 0.009999999776482582 (float)
circular_setpoints = False (bool)
circular_setpoint_range = 1.0 (float)
homing_speed = 0.25 (float)
inertia = 0.0 (float)
axis_to_mirror = 255 (int)
mirror_ratio = 1.0 (float)
load_encoder_axis = 0 (int)
input_filter_bandwidth = 2.0 (float)
anticogging: …
move_incremental(displacement: float, from_input_pos: bool)
start_anticogging_calibration()
Anyone can tell me, what’s wrong with it, no load is attached