Hi! I’m fairly new to robotics, and I happen to have access to an odrive S1 and a 90kv bldc motor that I’m using to learn. I’m controlling the Odrive from an Arduino using CAN and have it set to position control mode.
I see that when I call odrv0.setPosition(…) the motor always runs at the maximum velocity. Still, I want to try and control the velocity at which the motor turns, just like on the web GUI where I can set the maximum velocity (Dashboard/PositionControl/TuningParameters/VelocityLimit). I’m not finding a way to do this. I’ve tried calling odrv0.setLimits(float velocity_limit, float current_soft_max) but it’s not working how I would expect. I may be doing something wrong, I’m misunderstanding something, or possibly both T.T.
Is there any way to do this? And if not, I was thinking of interpolating from the start of the movement to its end target and feed those incremental positions one by one to control the speed. I’m not sure if that’s a bad idea.
I’m in position control because for my application I need to set a desired position rather than velocity or torque, but it would also be important to control the speed at which it moves from one place to another.
Thanks a lot in advance for any help!