For usual articulated (6-axis) serial robot arm, given the position and orientation of its end-effector, we can get (at most) 8 possible Inverse kinematic solutions.
While, for redundant (7-axis) robot arm, when the position and orientation of its tool center point (TCP) are given, it still has one DOF in its elbow to move arbitrarily for other purposes, such as avoiding obstacles.
In addition, the kinematic configuration of this kind of robot arms is adopted from the human arm kinematics, whose first three joints work as human’s shoulder, the fourth joints works as human’s elbow, and last three joints work as human’s wrist.
Here, I used PMC 22 robot arm, a 7-axis robot arm, as my research model. For inverse kinematics of PMC 22 robot arm, I used the closed-form method, which is proposed by Dahm, to find the inverse kinematics solution. I re-implement this IK method with MATLAB. The below is the demonstration of kinematic algorithm:
From above the first figure, given position and orientation of its TCP, we first get the wrist position and derive the elbow circle, which are the possible positions of the elbow, from the vector between the wrist and the shoulder of the robot arm. Then, we choose one of the positions from the elbow circle, and the configuration of the robot arm is fixed by given all constraints on 7 DOFs (TCP and elbow). Finally, we were able to find all of the joint positions by the geometric relation between each joint.
In addition, I use C++ to rewrite this program, and the computing time for each closed-form Inverse Kinematic takes about 30 microseconds.
P. Dahm and F. Joublin, “Closed form solution for the inverse kinematics of a redundant robot arm,” Inst. Neuroinf, Ruhr-Univ. Bochum, no. April 1997.