Gerard Bush at servo motion specialist INMOCO explains what machine builders need to know about motion control for SCARA robot arms.
Machine builders, system integrators and automation engineers are increasingly called upon to provide two-dimensional positioning systems for applications such as packing multiple products into a tray. Normally a Cartesian mechanism is used for this, with two perpendicular linear actuators working in unison, one providing the x-axis movement, the other the y-axis.
But in some applications a jointed, articulated robot arm is better. These look intriguingly like a human arm, with a shoulder joint and an elbow joint. But programming one to be able to move to positions defined by XY co-ordinates can seem a bit daunting at first. The mathematical discipline used to calculate the necessary movements of the upper and lower arms is known as 'motion kinematics'; while this may seem complicated, it is in fact based on some simple trigonometric principles.
Articulated robot arms are often referred to as SCARA (Selective Compliant Assembly Robot Arm) robots, or PUMA (Programmable Universal Manipulation Arm) robots. In the most common SCARA robot configurations there are four axes of motion, although only two - the shoulder rotation and the elbow rotation - contribute to the positioning of the load point in the XY plane. The third axis is the wrist (or load point), which is often a tool or end effector, and the fourth axis moves the entire arm up and down.
How do the two main motion actuators, the shoulder joint and the elbow joint, position the end effector? To answer this, we must calculate the 'forward kinematics' of the arm, ie equations that translate the combined shoulder and elbow rotations into the X and Y co-ordinates of the load point.
This is basic trigonometry. If we know the lengths of the upper and lower arm parts and the angles of the two joints, we can calculate the X and Y axis co-ordinates of the end effector.
But there is an obvious problem here - the mathematical procedure is the reverse of the practical situation. What we actually know is the desired XY co-ordinates; what we want to calculate is the two joint angles. So we need to use 'inverse kinematics' - which is more complicated.
The above equations are used to calculate positions for the load point, but when it moves from one position to another the natural trajectory is not a straight line but a curve. This is due to the effect of the combined rotation of the two joints. The curved trajectory leads to extra energy consumption compared with a straight line, and can make tracking the load point more difficult. Thus a straight line motion, while not always strictly necessary, is usually preferable.
In order to achieve a straight line motion the speed of rotation of both joints must be constantly varied. This is, in fact, the primary challenge of controlling non-Cartesian mechanisms: to continuously calculate and reset the speed of each joint's rotation to produce direct-line travel.
Fortunately, there are a number of ways to do this. For instance, some motion controllers allow you to download equations, and have sufficient computing power to perform inverse kinematic calculations on the fly.
Another approach, and perhaps the most common method used until relatively recently, is to break the curved trajectory into discrete steps and use standard motion control programs to convert each one into a straight line. Even just a few steps will improve the straightness, and if you break the movement into dozens or hundreds of pieces, very smooth motions will be achieved. The main downside of this segmented approach is that it requires a lot of work from the supervisory software program.
The third approach, now becoming increasingly popular, uses software lookup tables to perform 'reference frame conversions' on the fly. It works like this: you program the starting and ending XY co-ordinates, plus several intermediate co-ordinates that are on the straight line trajectory. Offline the software does all the calculations to move the end effector through each point in turn. Execution of the profile by the motion controller then happens in real time, via a simple and fast lookup operation.
Lookup tables could require fairly powerful controllers. In fact a table that contained every possible movement would take up an impractical amount of memory. So the practical answer is to use only a specific library of moves that are needed for the application. Thus most motion systems have instructions for moves such as 'extend straight out', 'retract straight in' and 'move from station #3 to station #8'.
This library method is useful and convenient, but has certain limitations. The main one is that you must create a separate table for each application. Another is that you cannot use the feedforward techniques employed by servo engineers working with Cartesian systems to compensate for load inertia.
The fundamental mathematics of control for SCARA robot arms and similar systems are described by forward and inverse kinematics. But these equations can be complex, and create challenges for managing path execution. There are techniques to manage this complexity, of which translation tables that convert XY points to phi and theta angular movements are increasingly the most popular.
This branch of motion control mathematics can seem daunting but, with practice, it can be mastered. And it is always a good idea to seek the assistance of the experts from your motion control provider - after all, they practise the techniques day in and day out.
For more information about motion control for articulated robot arms, visit the Inmoco website at www.inmoco.co.uk.