I am able to do a Full motor calibration where the motor spins in one direction then reverses with no issue and no errors. However when I attempt to run closed loop control I can’t get the motor to move on its own accord except for sudden runaway events. I followed the getting started guide and have previously set up a different motor with a different encoder which run fine.
I have verified current is being applied to the motor by plotting Iq_measured and Iq_setpoint and when I attempt to rotate the motor by hand (under current control of a few amps) I feel resistance to movement (which scales with the current setpoint) but am able to turn it manually. I am suspicious of some commutation issue but don’t know how to troubleshoot further. Below is a list of what I have tried:
- Checked shadow counts after rotating motor a full rotation. I’ve verified as close as 9999 counts and figure that’s good enough to verify that it’s not missing counts.
- Plotted the current control parameters as described above to verify current is getting to the coils
- Attempted to do velocity control of 0.1 Turns/sec and 1.0 Turns/sec by setting the velocity gain to ~0 and velocity integrator gain 0.01 to see the current climb until there’s movement. When doing this it will start with no movement at all and at some point it will jump really quickly (fraction of a second) then hit a current limit and stop
- Tried a different ODrive with factory firmware v3.6 56V
- Tried ODrive firmware devel branch sha: a406aa06
- Checked the encoder quadrature using a logic analyzer, parsed data from the logic analyzer shows the correct number of counts and no illegal transitions
I have a 20 pole pair KV90 R100 motor from T-Motor and am using a US digital 10,000 CPR encoder mounted on the motor shaft for commutation (haven’t tried the motor halls yet). Any ideas what might be going wrong here or any steps to help troubleshoot?