I want to help a friend with an art project. She wants to build a robot that can paint pictures with a pen very fast. Since I already have an odrive and some experience building printers and CNC machines, I want to help her. Her goal is to paint the picture as fast a possible, the pen should blur in front of your eyes due to the fast movement. Theorethically this should be possible with a lighweight pen.
I saw this video from the creator of the odrive do something very similar:
And I also found this video from Capo (is he also on this forum?)
He has a slightly different approach, and his solution comes very close to what I want to build, but his plotter seems to make some short “stops” in between the movements.
So I am wondering: what the best way is to control the trajectory of the pen if the input data is a list of coordinates that the pen must be moved to one after the other, and in between these points it should be moved in a straight line? Some of these coordinates can also be located along a straight line or a slightly curved line, so it makes no sense to use step-direction or direct position control as I do not want to stop at each point.
I read that the odrive supports trapezoidal trajectories and they seem to be the best solution to this problem. But how can I feed a list of coordinates into it? The way it is implemented right now will give me a wrong line if I send the next coordinate too early and will make the motor stop and wait if I send it too late. Is there any way to send it a list of coordinates that it must reach time-optimal? Or do I need a different approach?