Robot Motion Command Types Explained
Programming robots may seem like a simple task of moving from point to point, like a really expensive game of connect-the-dots. Linear, joint, and circular motion commands affect the robot motion differently, each meant to be used in certain settings.
Figure 1. Robots are used in industries from automotive, to textiles, to electronics, and everything in between. Image courtesy of ABB
It is no secret that industrial robots have become a common staple of the factory floor. With the ability to attach nearly unlimited custom grippers, or even collaborative robots that don’t require safety guarding, these industrial robots are finding their way into more applications every year. Being able to program a robot to make smooth, quick, and safe movements requires an understanding of how a robot can be commanded to move from point A to point B.
The Cartesian Coordinate Systems (Frames)
Before we discuss the motion commands, we need to understand how the robot determines direction. Robots rely on the use of a cartesian system, much like the graphing systems you learned in algebra. The cartesian space is defined via two perpendicular horizontal axes, the X-axis Y-axis, with the Z-axis occupying the vertical space to make a 3D space, like a square cardboard box. Every robot will have a base cartesian coordinate system, then additional ones for the tool, the work environment around the robot, and the actual part being handled. Some manufacturers refer to these coordinate systems as ‘frames’.
It is important to know which frame is currently being used for the move, otherwise, the final position could put the robot in a dangerous situation. For example, if we teach a position at x=100, y=0 (which is 100mm directly in front of the robot) then we switch to a different coordinate system located 100mm along the y-axis, the robot will travel to x=100, y=100 (with respect to the base frame). This new position may be outside of the guarding, which could damage the robot or injure personnel. At the very least, the robot will miss the target by a fair distance.
Be sure to record the points in the correct frame, and then ensure that frame is properly active when the robot attempts to make the move.
Figure 2. Difference between the fixed, immobile base (zero) coordinate system, and the mobile end effector (EE) coordinate system, identifying the center of the tool. Image used courtesy of Quanser
Types of Moves
There are three primary types of moves that a robot system uses to navigate around the physical world: linear, joint, and circular moves. While the goal of all those moves is the same - moving from point A to point B - the path that the robot takes along the way is the major determining factor for each move type.
As the name suggests, when a linear move is instructed to the robot, it will move in a straight line from its current position to the final position. All the joints will rotate as needed to ensure the TCP stays on path and with a consistent orientation. This type of move is typically used when traveling from an offset position or pounce position down to the part, or if the robot has to enter a confined space. Welding paths also require carefully controlled linear motions.
If there is a downside to linear moves, it’s that they are slower than joint moves. When the robot is moving in a straight line some joints need to move more than others in order to keep the robot on that path, this can result in a slower overall move. The joint motors will have a maximum speed they can travel, so if a joint is required to rotate above the maximum speed to keep the TCP on the calculated path and at the requested speed, the TCP speed will be reduced to prevent errors and damage. Linear moves are listed in mm/second, as compared to joint moves which are listed as a % of maximum speed, explained next.
If you used exclusively linear moves, the motion might be very predictable, but you would sacrifice a good deal of cycle speed and efficiency for this added consistency.
Figure 3. Joint move showing slight (and sometimes unpredictable) arc radius - not a straight line. Image used courtesy of ABB
A joint move is similar to a linear move with the exception that the robot does not move along a straight path. The robot will move to the destination along a non-linear path - even for very short travel distances. This path could swing the robot way out in front of itself, or the robot could decide to swing inwards towards itself. A joint move is not as predictable as a linear move and because of this unpredictability, it is best to use linear moves when the robot is not safely confined by guarding. Since different joints have different maximum rotational speeds, it is entirely possible for the robot to change paths when moving from a slow test speed to a higher operating speed, when the robot must rely on the faster base joints to achieve higher maximum velocities.
Joint moves are best used when the robot is in open space for example, when traveling from the home position to a pounce position. If the positions and speeds haven't changed, the robot will always take the same path so if a joint move is determined to be safe there is no fear the robot will change its mind someday. Joint moves are much faster than linear moves and are often used to decrease the cycle time of the robot, if a linear move can be changed to a joint move safely the cycle time can be greatly reduced.
Figure 4. Circular command, which can also create an arc segment using a beginning, end, and a point along the radius. Image used courtesy of ABB
Circular (or Arc) Moves
This move, known either as a circular or arc motion, is used to move the robot TCP around a constant radius. Welding robots use this move quite frequently because as the robot moves around the circle the TCP orientation doesn’t change making for a smooth circle. To make a complete circle four points are needed from the starting of the circle; first midpoint, first endpoint, second midpoint, and back to the start point. In some languages, this may be a combination of two separate arcs where the points along the radius must be carefully measured. Others allow this motion to be done with only three points along the radius, much like a 3-point circle in CAD sketches.
You do not need to always make a complete circle, as this move can be used to direct the robot in a radius or arc with a finite endpoint. The placement of these points is important for the accuracy of the path. The midpoint should be roughly halfway from the starting position to the end of the arc, since a point taught too close to one of the endpoints may require the robot to travel outside of its allowable work envelope when the entire arc is extrapolated.
Figure 5. Large tools require careful planning to understand where the ‘center’ of the tool should be located. Image used courtesy of Mckinsey
The Tool Center Point, or Tool Frame
The TCP, as the tool center point is commonly known, is another cartesian system centered on the end effector of the robot. The TCP identifies the single point where the robot will pivot while moving. If this position is not accurate, offset commands and calculated positions may not perform as expected. The TCP is also used to determine the speed of the move command. When issuing a speed in the move parameter the robot will try to maintain that speed at the TCP.
Linear, joint, and circular motion commands allow the programmer to choose the most appropriate path to accomplish a task. Again, it’s not about getting from A to B as quickly as possible - it’s about getting from A to B in the way that is correct for the job.