After a week of behaving perfectly, our ODrive has starting behaving strangely and I am hoping there is someone out there who recognises the symptoms.
When running in torque control mode, previously you could set input_torque = 0.5 and watch the motor spin up to speed as a result.
Now, on setting input_torque:
- the motor sometimes begins turning, then its speed sort of dies off as it seizes up.
- sometimes motor never turns and is simply locked in place straight away.
- in both cases, when you try to turn it manually, it’s held in place by the applied torque.
- at low torque settings, you can force it around, in which case you feel a very strong ‘cogging’.
- at high settings the torque is too strong to do that so you just have a fixed shaft.
On setting torque to 0 and recording a graph of pos_estimate and vel_estimate while I just turn the shaft this way and that, I see that position seems perfectly smooth, while velocity is highly weird and oscillatory.
Yesterday we did a short test that at one point involved driving the motor with high torque, while not letting it move. This didn’t go on for very long.
There was a hot smell, at which point we immediately stopped and powered everything off.
There was no trip or error from Odrive. The FETs were warm but not massively so. We just wanted to err on the side of caution.
We didn’t do anything further yesterday, so didn’t see whether the motor worked normally or went wrong after that test.
Today I replaced the mount for our encoder’s magnet with a proper 3D printed one. (Our previous one was pretty dodgy. Blutack was involved.)
Previously our magnet visibly wobbled around as you turned the shaft, which we all knew was shit, but it didn’t seem to affect the Odrive’s performance at all. It actually did fine until the 3D printed one arrived and we were able to make the switch.
It was only after that that we turned it on and noticed the motor’s behaviour has now changed.
This was on axis M0, so we prompty swapped to axis M1 and saw the exact same behaviour.
I can’t account for why the motor is now behaving like it does. I have two vague theories:
- somehow our badly mounted encoder was hiding a problem which has now shown itself. This seems rather unlikely to me.
- somehow our experiment yesterday damaged something, so now the ODrive is broken in some way that affects both M0 and M1 axes. Quite what that might be, I have no idea.
I am at a loss for what to do next. Does anyone have any ideas?