Low torque for gimbal motor with Odrive 24V

#1

Hello,

I am using the AS5047P encoder with V3.5 Odrive 24V and the following brushless DC motor:

https://www.iflight-rc.com/index.php?route=product/product&path=25_35&product_id=242

Here are the configuration settings I have at the moment. The torque of the motor is super low, I can put my finger on the plate that I have mounted to it and it stops without a fight. Any idea what settings I need to change to up the torque?

I have tried upping the current limit but then position control trips the over bus voltage error and speeds of above 1 rotation per second (4000 counts/s for encoder) also give motor error 0x0080.

odrv0.axis0.motor.config.pole_pairs = 14
odrv0.axis0.motor.config.resistance_calib_max_voltage = 10 ## Originally 1V  
odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_GIMBAL
odrv0.axis0.controller.config.control_mode = CTRL_MODE_VELOCITY_CONTROL

odrv0.axis0.motor.config.calibration_current = 10 
odrv0.axis0.motor.config.pre_calibrated = False
odrv0.axis0.encoder.config.pre_calibrated = False
odrv0.axis0.encoder.config.cpr = 4000
odrv0.axis0.motor.current_control.Iq_setpoint = 5

odrv0.config.brake_resistance = 0.489 #increase by 0.01 to account for wiring

odrv0.axis0.controller.config.pos_gain = 10 # [(counts/s) / counts]
odrv0.axis0.controller.config.vel_gain = 0.0049 #[A/(counts/s)]
odrv0.axis0.controller.config.vel_integrator_gain = 0.0008 # [A/((counts/s) * s)]
odrv0.axis0.motor.config.current_lim = 10

Thanks!

#2

I’m only going to be moderately helpful as I’ve not used MOTOR_TYPE_GIMBAL.
First, the link you provided takes me to a catalog page with dozens of motors, so I don’t know what motor you’re using.

Second, if you read around in the forum here, Gimbal mode changes from current mode to a voltage mode. So the settings Iq_setpoint and current_lim are now misleading, as they are really voltages.
Search the forum for “gimbal” and you’ll find some definitive information, but I think your settings are really low.

#3

Thanks, I fixed the link there!

Yes, the forum said to set calib_current to half the max current value, so assuming the max voltage for the gimbal motor is 20V, I selected 10V as the limit. If I go much higher, position control no longer works and trips the over bus voltage error.