I’m building a delta-robot using 3 ODrive S1’s and an Arduino. I’ve got a prototype set up and I can get the robot to move from one point to another.
I’m using UART with the ODrive Arduino library, so I call SetPosition
(TrapezoidalMove
also works) to get the motors to move, which in turn moves the end-effector.
The issue is that the end-effector doesn’t move in a straight line because motor 1 might have to move 2 turn, whereas motor 2 and 3 might only have to move 1 turn, which means that the actual movement will not be a straight line:
Could I somehow use TrapezoidalMove
or set velocity_feedforward
and current_feedforward
in SetPosition
to get the motors to move within the same timeframe? Or would you simply call SetPosition
many times to from point A to point B to get it to move straight? Any suggestions on what the best way would be to handle this issue?