I have watched a number of videos online about the Linear vs. Joint moves and have learned the mechanisms of it however, I was hoping to get a wider array of opinions from you folks with application experience to explain why you would choose one over the other. For example, in my current project, the robot loads a part onto a CNC machine. I think I see why one would not use joint movement inside a machine but because I am still very new at this, I am not sure if my thought on this holds water. Thanks in advance for all the support.
Linear vs. Joint-moves
-
ceilingwalker -
June 30, 2023 at 6:54 PM -
Thread is Unresolved
-
-
Both motion types have a start point and an end point, and the robot "fills in" the motion between them.
A Joint motion basically doesn't care about what the robot does between point A and point B, it just spins every joint enough to get there. The main constraint is that a Joint motion moves all the joints at speeds that let them all start and end at the same time, even if one joint is moving 10deg and another is moving 180deg.
If you're in open air and need to move fast, use Joint.
A Linear motion is more constrained, but give you greater control. The Linear motion command draws a straight line in space between points A and B, and moves the robot tool along that line (and keeps the tool at a constant speed) . However, since the arm is made of rotary joints, keeping the tool on a straight line usually means constantly dialing the speeds of all the axes up and down relative to each other in a constant dance, being tweaked dozens or hundreds of times per second. This is why Linear moves are almost always slower than Joint moves. But if you're painting, or arc welding, or laser-cutting, or laying a glue pattern, Linear is really the only way to go.
Circular moves are the same as Linear moves, it's just that the tool follows a defined curve instead of a straight line.
For short distances, the difference between a Joint and Linear move can become almost inconsequential. In fact, under a microscope, a Linear move is actually a series of very small Joint moves, strung together and smoothed out.
-
Awesome explanation, SkyeFire! Thank you.
-
ceilingwalker
I'm glad you ask.
I've seen programs where the vast majority of the points were J motions an others L motions. They wrote that way and the program works just because going from point A to point B was no accurate or cycle time was not a concern. Luck them !!.
If you combine both motions on the right places it will give the robot a smooth and fast path
I just want to "enhance" SkyeFire last paragraph
" For short distances, the difference between a Joint and Linear move can become almost inconsequential. In fact, under a microscope, a Linear move is actually a series of very small Joint moves, strung together and smoothed out. "
Understanding this paragraph will help you in many situations.
Many times I've seen programmers complicating their lives trying to work is short distances (lets say between one centimeter or two) using L motion where they could have use J motion without any problems. This is a case where the robot is close to singularity or end of reach. Using J motion the robot will move on a curve almost imperceptible but the difference will be you are allowing the robot (motion algorithms) to disregards many of the constraints .
As always be careful, but if the robot is on a really bad spot, use a J motion.
-
This is a case where the robot is close to singularity or end of reach. Using J motion the robot will move on a curve almost imperceptible but the difference will be you are allowing the robot (motion algorithms) to disregards many of the constraints .
As always be careful, but if the robot is on a really bad spot, use a J motion.
Or linear with WJNT modifier.
-
I have seen a robot crash at full speed doing a Linear Wjnt move near a singularity.
Linear Wjnt will at times take a slightly curved path to avoid the singularity. So make sure you thoroughly test it at slow speed if you are both near a singularity and another object.
-
"I have seen a robot crash at full speed doing a Linear Wjnt move near a singularity."
At the risk of sounding incredibly stupid, what is a "Wjnt" move? Are there any tell-tale signs other than a visual on the joints that a robot is nearing singularity? I mean, does the robot appear to make a goofy movement?
-
wjnt (wrist joint) is a modifier for a linear move. It maintains a linear TCP track but doesn't maintain TCP orientation.
Aside from visually confirming that J4 and J6 are lined up, you can usually hear when it's close because both of those joints are moving fast in opposite directions.
-
Wjnt is a modifier to a linear move. It moves the major axes linearly and the wrist axes using joint interpolation. It will try to maintain a linear move while also honoring the turn numbers of your wrist joints. The wrist will flip if it needs to and will also dip to a avoid a J4-J6 singularity. That singularity occurs when J5 is near zero. I think within 3 degrees.
It is noticeable. When you are close to it J4 and J6 spin at high speed in the opposite direction to attempt to maintain a straight line.