No power when vel_integrator_gain=0

Hi,

I am using longboard hub motors which have those values:

Power: 150 W.
Rated voltage: 24V/36V
Idle speed: 1600 rpm.
No-load current: 0.3 A.
Maximum current: 12 A.
Speed: 15-20 km/h.

Here are my motor calibration values:

odrv0.axis0.motor.config.pole_pairs = 14
odrv0.axis0.motor.config.calibration_current = 5
odrv0.axis0.motor.config.resistance_calib_max_voltage = 10
odrv0.axis0.motor.config.requested_current_range = 25
odrv0.axis0.motor.config.current_control_bandwidth = 100
odrv0.axis0.motor.config.torque_constant = 8.27 / 60

odrv0.axis0.encoder.config.mode = ENCODER_MODE_HALL
odrv0.axis0.encoder.config.cpr = 84
odrv0.axis0.encoder.config.calib_scan_distance = 150
odrv0.axis0.encoder.config.bandwidth = 100

odrv0.axis0.controller.config.vel_integrator_gain = 0
odrv0.axis0.controller.config.vel_gain = 0.40

When I set vel_integrator_gain to 0 and vel_gain is properly tuned I can hold the wheels by hand. So there is not enough power to make the robot move. It works by increasing vel_integrator_gain but it acts like ramped velocity. For example, the more load the more overshooting.

What other params can I tune to make it working?

Nevermind, I found a working solution for me:

odrv0.axis0.controller.config.vel_integrator_gain = 0.3
odrv0.axis0.controller.config.vel_gain = 0.65
1 Like