Kinematics is at the root of most industrial automation.
"The increasing importance of the subject of dynamics to engineers demands a rigorous exploration of the division of kinematics" -Engineering Kinematics 1941 Sloane Macmillan
Today most industrial automation you will encounter has at the center of it, some kind of machine built and programmed for a task. Tasks can range from, robotic pick and place, nc milling, robotic paint, to whatever you can dream of.
The functionality of these machines results from their kinematic relations. This article will try to oversimplify centuries of engineering work, into one brief, about how those kinematics work, and how we control them in order to complete our task.
A logical place to start is with the kinematic chain
Every single machine tool purpose built for automation, has a kinematic chain. And each of these chains has a BASE chain link. This acts as the root for all relations to work off.
Then following the principles of Rigid Bodies, we use the understanding that these chains need to be built such that the rigid bodies of the links, have solids whose particles remain at the same distance. Aka, the links of the machine don’t change in size over time.
So once the base link has been established, we continue down the chain, and add each link as specified in the drawings of the machine.
You can see here how we establish the kinematic chain for our Lego Robot.
The mathematics of this work can be extremely complex. Fortunately, we just need to focus on a simplification of our chain, which is called the degrees of freedom. Think of a map of each joint in the chain and how the bodies are connected.
Example: we have a 6 axis robot, joint one can rotate 360 degrees at max 1000mm/s, joint two can rotate 270 degrees, etc.
In the case of our Lego robot, we have 3 degrees of freedom, or 3 joints connecting the rigid bodies. Each of these joints has a specific degree it can perform one of two motions. The joint can either move linearly as a prismatic joint. Or rotate as a revolute joint. The Lego robot has 3 revolute joints.
With our kinematic chain defined and an understanding of our degrees of freedom, we then have to break out the calculator so we can program the machine tool… fortunately not.
The value of our forefathers work reveals itself in the software that exists today. In order to program a robot you no longer have to be a MIT servo mechanism engineering student. You simply need to have a base understanding of the principles I am mentioning here.
With that said, we will put the analog tools away, and import or build out kinematic chain in a piece of software. This will complete all of the calculations for us.
But what are we calculating?
Programming the chain for your task
There are two primary methods for programming a kinematic chain.
Linear IK
Joint based FK
Linear programming uses the robots TCP (tool center point) as the driver of its motion. With a properly setup kinematic chain, the software will be able to calculate the various configurations of the joints, inversely (IK inverse kinematics) from the tip of the TCP back down to the base.
Forward kinematics is usually tied with Joint Programming. Joint programming is easier to calculate, but less automated. We simply “Jog” each joint, respecting the kinematics of the chain, into its desired position, and then use those joint values as a target for our task.
Real world example of programming a kinematic chain for automation
So remember that with IK, the driver of the motion is the TCP tool center point, which is simply an XYZ location in space with some rotation. Get the TCP in the location that you want it, then the software will determine the values of the rest of the kinematic chain.
Lets imagine the TCP in this case to be the tip of the welding gun.
With FK, if we had a welding tip on the end of our kinematic chain or robot, we would have to manually move each joint so that the XYZ location + rotation of that welding gun, is exactly how we want it.
(SPOILER ALERT: In a scenario like robotic welding, this is an absolute PITA! I’ll share how we can use it below.)
Inverse kinematics allows us to focus first on where we want that welding TCP to move, for example we could have it automatically follow a curve.
Once the TCP target location is created along the curve, the software will then do its best to calculate the kinematic chain values so the robot can make that welding tip follow its goal precisely.
In summary
Machine automation is at its root, a problem & solution for how we control the kinematic chain of a machine.
All machine tools and therefor kinematic chains, must begin with a BASE link.
From the base link, there will be a specified number of joints and links, that will compile into the machines Degrees of Freedom.
With the kinematic chain defined in our chosen software, we can program it using Inverse kinematics, or Forward kinematics.
Inverse kinematics is first determining where the Robot TCP should be located, then calculating inversely the location of each subsequent joint down to the base link.
Forward kinematics is simply moving each joint into a desired positioned, with the goal to get the machine into a pose we want.
Thank you, Micah
This is an excellent article and opens the doors to many interested in learning more about the machine tools they program and 5 axis math. Thanks a bunch for your contributions to the industry Micah!