Odrive motor tunning

I have some questions about that if i want to achieve variable speed control.How can I tunning the parameter of Innermost ring or Torque ring.

The torque/current loop is automatically tuned according to the phase_resistance, phase_inductance, and motor.config.current_control_bandwidth.

The velocity tuning can be done by putting the ODrive in Velocity Control mode and tuning it like any other PI controller. Set integrator to 0, increase vel_gain until it’s too aggressive, back it off about 30-40%, and then increase vel_integrator_gain until it looks good.

@Wetmelon
In VELOCITY_CONTROL_MODE how can increase quickly current?
When there is an obstacle in front of the robot and actual velocity = 0 and input_vel = 3, robot to stand still.

You likely need to improve the tuning of your vel gains.

@solomondg
my config
“vel_gain”: 0.6000000238418579,
“vel_integrator_gain”: 5.5,
when increase vel_gain - the motor tremble
how can I solving my problem other method?

Are you using hall sensors?

Yes, I used hall sensor

Hall sensors are intrinsically very low resolution, it’s typically not possible to achieve precise velocity control at low speeds. Your only recourse is likely to add an additional higher-resolution external encoder, such as a quadrature encoder.

@solomondg thank for your recommendation
the main key of my problem is current increase slow and had limit that not equals software limit in configure ODrive