Check linear path before doing it

• Is it possible to verify that robot can do linear movement before starting movement itself?

Starting point is given as POS structure (with defined Status and Turn), end point as POS structure without defined Status and Turn (as I understand going from point to point using LIN or SLIN ignores endpoint Status and Turn trying to keep trajectory and speed along movement). Required trajectory is straight line between start and end points.

I have tried to check start, end and some artificial points between them using INVERSE function, but ability to reach all this point on trajectory do not ensure that robot can do linear movement described by checked points.

• I have tried to check start, end and some artificial points between them using INVERSE function

That's probably what you'll have to do. There's no way to check the entire path, but you can calculate an arbitrary number of points along that path at whatever spacing you wish. It's just a matter of how many loops of the calculation you want to run -- trying to check a 1m linear path at 0.01mm resolution would probably take the processor quite a few seconds.

• That's probably what you'll have to do. There's no way to check the entire path, but you can calculate an arbitrary number of points along that path at whatever spacing you wish. It's just a matter of how many loops of the calculation you want to run -- trying to check a 1m linear path at 0.01mm resolution would probably take the processor quite a few seconds.

I have checked points with 100mm step, so step was not small enough, got it. INVERSE function can accept a point as starting position parameter. So, to properly check whole path with artificial points I shall use previous points as starting point for next check?
Time doesn't matter, if it will take hours, I'll hold safety button on teach pendant the hole time

• So, to properly check whole path with artificial points I shall use previous points as starting point for next check?

Hmm... maybe? I'd have to think about that one. Either that, or use the original start point of the entire desired LIN move for each INVERSE check. You might want to try both and see how they compare.

• So, to properly check whole path with artificial points I shall use previous points as starting point for next check?

yea that it is, getting the shortest way to dest. This is called L2 norm

• How do calculate the frames of points along the linear path including A, B and C ?

For example if I would try the INVERSE function for every 1° change in orientation.

example:

Code
``````xStart={X 162.764755,Y 126.033981,Z 0.170230865,A -1.54621744,B -0.234725028,C -27.6503887,S 'B00010010',T 'B00101010',E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}

xEnd={X 162.764755,Y 128.033981,Z 25.1702309,A -6.54615211,B -0.203361109,C -0.631258070,S 'B00010010',T 'B00101010',E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}``````
• How do calculate the frames of points along the linear path including A, B and C ?

For example if I would try the INVERSE function for every 1° change in orientation.

example:

Code
``````xStart={X 162.764755,Y 126.033981,Z 0.170230865,A -1.54621744,B -0.234725028,C -27.6503887,S 'B00010010',T 'B00101010',E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}

xEnd={X 162.764755,Y 128.033981,Z 25.1702309,A -6.54615211,B -0.203361109,C -0.631258070,S 'B00010010',T 'B00101010',E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0} or p``````

You will want to use linear spherical interpolation (SLERP), because use of simple linear interpolation on angles runs into some issues.

Overall if you are just learning, then writing a motion planner in KRL is ok, but if this is needed or could grow into something serious, then drop KRL and do these calculations externally.

• you can use INTERPOLATE