0
$\begingroup$

So I have build a 6-axis manipulator having all the degree of freedom. Currently I have used TeensyStep library for controlling synchronization of 6 stepper axis. Also I have tried AccelStepper library for controlling 6-axis stepper synchronization. Until now everything works great.

But now I have to move the robot (all 6-axis), with the help of numeric control code. (Basically what happens in 3D printer control with Gcode)

For example :

N001   A1 150,  A2 32.6, A3 -50, A4 -75.8, A5 50, A6 10.2

N002   A1 120,  A2 42.6, A3 -55.0, A4 88, A5 150, A6 10.8

N003   A1 50,  A2 3.6, A3 -5.50, A4 -5.8, A5 150, A6 1.2

N004   A1 158,  A2 38, A3 80, A4 7.8, A5 44.4, A6 100.2

where A1 to A6 represents angle values in degree.

With AccelStepper or TeensyStep library I can move to give code line(N00x) in a synchronous move. So when I feed this code lines it will go from current position accelerating-to maxSpeed- then deaccelerating to target position.

What I want to do is to move from one code line to next code line and to next in One-Continuous move. That is no accelerating from start position to setSpeed/maxSpeed to first point - then to next point - then to next point and deaccelerating finally at the end of code line. So if there is new code line in the buffer it will not deaccelerate, go to current target with maxSpeed/setSpeed and then to new target with updated speed and so on.

Basically what Computer Numeric Control(CNC) machines do.

I tried searching regarding this in many different platforms but can't find anything closely related to this.

Thank you.

$\endgroup$
3
  • 1
    $\begingroup$ you cannot change direction without decelerating in one direction and accelerating in another direction $\endgroup$
    – jsotola
    Commented May 23, 2022 at 0:18
  • $\begingroup$ Yes of course. But we can have smooth curved path optimized before hand. And it will be fed to the controller. Also we can have an input for continuous and non-continuous move. Where in continuous movement will not decelerate and approach current target with constant speed. While non-continuous move will decelerate to current target, stops and moves on to next target ramping up the speed. Just like what happens in KUKA, FANUC controller or Marlin and GRBL. $\endgroup$ Commented May 23, 2022 at 5:21
  • $\begingroup$ Have you tried searching for "corner rounding"? I had a similar problem, but I noticed that it varies greatly depending on the CNC, some in axis parameters, others in G code. Here is a solution for Schneider CNC (Codesys), I hope it helps you. $\endgroup$
    – dwpessoa
    Commented Jan 4 at 19:33

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.