Hi! I’m having problems doing the calibration for a hub wheel motor (RBE-102024-003):
The steps I’m doing are as follows:
odrv0.erase_configuration()
odrv0.reboot()
odrv0.config.brake_resistance=0
odrv0.axis0.motor.config.pole_pairs=15
odrv0.axis0.motor.config.motor_type =MOTOR_TYPE_HIGH_CURRENT
odrv0.axis0.encoder.config.cpr=3200
odrv0.axis0.motor.config.torque_constant = 8.27 / 16
odrv0.axis0.motor.config.resistance_calib_max_voltage = 4
odrv0.axis0.motor.config.requested_current_range = 25
odrv0.axis0.motor.config.current_control_bandwidth = 100
odrv0.axis0.encoder.config.bandwidth = 100
odrv0.axis0.controller.config.pos_gain = 1
odrv0.axis0.controller.config.vel_gain = 0.02 * odrv0.axis0.motor.config.torque_constant * odrv0.axis0.encoder.config.cpr
odrv0.axis0.controller.config.vel_integrator_gain = 0.1 * odrv0.axis0.motor.config.torque_constant * odrv0.axis0.encoder.config.cpr
odrv0.axis0.controller.config.vel_limit = 10
odrv0.axis0.controller.config.control_mode = CONTROL_MODE_VELOCITY_CONTROL
odrv0.save_configuration()
odrv0.reboot()
odrv0.axis0.requested_state = AXIS_STATE_MOTOR_CALIBRATION
Then the motor moves a tiny tiny bit and then it stops… I proceed to dump the errors: dump_errors(odrv0, True)
and I got the next:
axis0
axis: Error(s):
AXIS_ERROR_MOTOR_FAILED
motor: Error(s):
MOTOR_ERROR_PHASE_RESISTANCE_OUT_OF_RANGE
fet_thermistor: no error
motor_thermistor: no error
encoder: no error
controller: no error
axis1
axis: no error
motor: no error
fet_thermistor: no error
motor_thermistor: no error
encoder: no error
controller: no error
What can I do?
Thanks!!
towen
May 16, 2021, 4:22pm
2
What motor are you using?
You may need to increase motor.config.resistance_calib_max_voltage to 5 or more (if it is a high-resistance motor)
If the motor’s resistance is more than resistance_calib_max_voltage / calibration_current then it will fail to calibrate.
This is my motor: 24v 6.5 Inch Wheel Hub Motor Rbe-102024-003 With Encoder For Robot - Buy Electric Hub Motor,Bldc Motor,Hub Motor Price Product on Alibaba.com
I tried to find all the data of this motor from a datasheet and found the next:
30 magnetic poles
encoder AEDR-8300, 800±2 encoder lines (3200 cpr)
I couldn’t find the motor torque constant, but I’m using 8.24 / 16
I increased resistance_calib_max_voltage = 5
and tried again and still did not worked…
I’m using a power source 30v-10a (LW-K30100)
I read that cables sometimes are the problem… as I have several motors, I used one directly using their pins (as it came from the factory) and I did another test cutting the cable pins and connecting it directly… still no luck
Update!
I increased resistance_calib_max_voltage = 10
then the calibration worked!! thanks Towen!
1 Like
Hi @alduxvm ,
Can you tell me how you have calculated the encoder AEDR-8300 CPR value? Or where did you find this value?
I am looking at the AEDR-8300/8400/8500/8700: Achieving Low CPR Options through a Spiral Codewheel Design Guide but I am not sure which encoder AEDR-8300 model is mounted to this motor and I am using the next formula pointed there,
I cannot reach your CPR value. Can you help me?
Regards,
Jorge
soeren
August 13, 2021, 9:22am
7
Hi,
I bought the same wheels. Increasing resistance_calib_max_voltage to 10 solved my problem at the
AXIS_STATE_MOTOR_CALIBRATION step too. Thanks a lot.
However, I am still getting an error “ENCODER_ERROR_ILLEGAL_HALL_STATE” for the last calibration step: “AXIS_STATE_ENCODER_OFFSET_CALIBRATION”.
I read about possible noise or hardware issues. Did you came across the same issue as well?
NOTE: I have not wired the NTC (20k) cable and I am using a power supply with 26v 5A.
Best,
Soeren
soeren
August 15, 2021, 9:58am
8
I fixed it. I extended my cables with longer wires but it seems that it was causing noise.
1 Like
soeren
August 16, 2021, 3:32pm
9
@alduxvm Hi, when connecting the wires for Encoder A (white) and Encoder B (grey) I get an ENCODER_ERROR_NO_RESPONSE
error when running odrv0.axis1.requested_state = AXIS_STATE_ENCODER_OFFSET_CALIBRATION
. Hall Mode works but I wanna use INCREMENTAL_MODE. Did it work for you?