For the general public, “moving like a robot” means making jerky, linear movements which nobody would describe as graceful. In contrast to this stereotype, many modern robots are able to move very gracefully, thanks to continual advancements in actuation technology. Despite this, as roboticists, we are all too familiar with the occasional strange movements that robotic manipulators make. Why do even the most accurate robots sometimes move in ways we don’t expect? The Answer: Kinematics. In this post, we introduce the “need-to-know” basics to give you a working understanding of this cornerstone topic of robotics.
Robots can make some pretty strange motions. This is true even despite the continual improvements in actuation and motion planning algorithms. Sometimes, you command a seemingly simple move from Point A to Point B, only for the robot to complete the instruction in the most convoluted way possible. It might completely change the configuration of all its joints before coming back to what seems to be exactly the same spot.
What causes robots to move in ways that we don’t expect?
Often, it’s because we don’t have a full, intuitive understanding of the robot’s workspace and kinematics.
During my doctorate, I used the same robotic manipulator continuously for three whole years. By the end of the first year, I could have told you everything about its electronics, joint limits and basic workspace. During the second year, I could have told you everything about its hydraulics, kinematic inaccuracies and control system implementation. However, it wasn’t until a little into my third year that I visually mapped its workspace in 3D to fully understand its “kinematic reachability”. Suddenly, I had a light-bulb moment: The areas of the robot workspace that I had thought were the best for completing tasks, were in fact the areas where the robot had the least dexterity.
Having an intuitive (and for me preferably visual) understanding of your robot’s kinematics is vital if you want to use its workspace most effectively.
What is Kinematics?
It’s perfectly possible for an operator to use a modern robot, day-to-day, without a deep understanding of its kinematic equations. Even so, a basic understanding of robot kinematics brings you one step closer to developing an intuitive understanding of its workspace.
Kinematics is the study of all the possible motions of a robot. It considers the length of each section and the joint limits to answer the basic question: What are all the possible positions (and motions) this robot can achieve?
Kinematics does not consider the forces that cause these motions. That is handled by the related study of “kinetics”. For example, kinematics does not consider whether the force to move from one position to another is supplied by electric motors at the joints, or by a person pushing the end effector by hand. The only thing it considers is whether the motion is achievable or not.
Forward Kinematics vs Inverse Kinematics
Kinematics is split into two parts: Forward Kinematics and Inverse Kinematics.
Each approach takes the kinematic chain (which represents the individual parts and actuators of the robot in their most basic geometrical form) and calculates the relationship between the pose (position and orientation) of the end effector and the position of each joint.
Forward kinematics answers the basic question: If I set the joints to a particular position, what will be the resultant pose of the end effector?
The most common approach is to use the Denavit-Hartenberg (DH) parameters. Each joint of the robot is characterized by four parameters. These are then entered into a set of transformation matrices and multiplied together to give a matrix which describes the pose of the end effector.
Using this method, there is only one solution - if the joints are set to a particular position, the end effector will always end up in the same position.
Involves calculating the inverse kinematic equations required to command a robot to a particular position within the workspace.
Inverse kinematics attempts to answer the basic question: To what positions should I set the robot joints to move the end effector to a particular pose?
However, things are not so simple. Unlike with forward kinematics, most robots with more than two actuators will have multiple possible solutions for the inverse kinematics.
The Problem with Inverse Kinematics
Inverse Kinematics are probably the No. 1 source of headaches for robotics programmers, thanks to the huge number of possible solutions for complex kinematic chains.
A 1R robot (e.g. a stick attached to a motor) will have only one possible inverse kinematic solution to describe the position of the end point. A 2R robot (e.g. a chain of 2 sticks with a motor each) will have two possible solutions to describe the same position of the end point.
Each joint will add more complexity to the inverse kinematics and more possible solutions to choose from. A 6R robot (with 6 revolving joints) can have 16 possible solutions, meaning 16 different ways to set the end effector to the same pose. Switching between the solutions is sometimes possible, but not always straightforward.
When your robot makes an unexpected motion, or isn’t able to reach a position it should be capable of, the important thing to keep in mind is that programmers have made a compromise between all the possible inverse kinematics solutions.
Remembering this will help you to avoid headaches.
Visually Representing the Workspace
One fairly new way to gain an intuitive understanding of a robot’s workspace is to visually map its “kinematic reachability” in 3D. This takes a particular inverse kinematic solution and plots a 3D rendering of which points are reachable, noting the number of different orientations that point is reachable from.
4 Free Online Resources to Learn Kinematics
This post has been a quick introduction to kinematics. But, there are several very good, free resources to learn about kinematics in more detail online.
Professor Oussama Khatib (coauthor of the Springer “bible” of Robotics) has a set of free lectures on YouTube, which displays his full Introduction to Robotics course at Stanford. The second lecture is about kinematics.
LearnAboutRobots gives very simple, one page introductions to forward kinematics and inverse kinematics. This can be useful to jog your memory if you have studied them in the past and just need a refresher.
MIT OpenCourseware provides free, downloadable lecture handouts and example questions for the MIT Introduction to Robotics course, including kinematics.
EMU University also provides downloadable lecture slides and example exam papers on kinematics for its Introduction to Robotics course.
How has an understanding of kinematics been useful for you? What do you find most challenging about kinematics? Are there any examples where you were surprised by the operation of your robot? Tell us in the comments below.