Closed-Loop Inverse Kinematics for Redundant Robots: Comparative Assessment and Two Enhancements

Adrià Colomé and Carme Torras

Motivated by the need of a robust and practical Inverse Kinematics (IK) algorithm for the WAM robot arm, we reviewed the most used Closed-Loop IK (CLIK) methods for redundant robots, analysing their main points of concern: convergence, numerical error, singularity handling, joint limit avoidance, and the capability of reaching secondary goals. As a result of the experimental comparison, we propose two enhancements. The first is a new filter for the singular values of the Jacobian matrix that guarantees that its conditioning remains stable, while none of the filters found in literature is successful at doing so. The second is to combine a continuous task priority strategy with selective damping to generate smoother trajectories. Experimentation on the WAM robot arm shows that these two enhancements yield an IK algorithm that improves on the reviewed state-of-the-art ones, in terms of the good compromise it achieves between time step length, Jacobian conditioning, multiple task performance, and computational time, thus constituting a very solid option in practice. This proposal is general and applicable to other redundant robots.

Offline experiment

As a first experiment, a circular trajectory in a cartesian space is translated to a trajectory in the joint space (offline) with some of the reviewed and proposed IK algorithms, and reproduced with a real robot using splines to track the obtained trajectory.In some cases, the trajectory obtained needed an assembly mode change, which was given extra time in order to avoid dangerous robot behaviour. The following videos show the results.


Joint Clamping


Task Agumentation


Jacobian Weighting


Continuous Task Priority + Selective Damping + Singular Value Filtering

Online Experiment

For an online experiment, we built a tracking system to work online, with the following form:


Experiment setting

Where Td is the homogeneous transformation having both rotation and position information, The IK solves for a desired joint position and sends it as a new goal for a Dynamic Movement Primitive (DMP), which will build a desired trajectory to that point, including velocity and acceleration, and a variable time scaling constant which will depend on how far the robot is from that desired position. Finally, this trajectory is sent to the robot controller to compute a proper torque and track the desired commands with precision.


All the solutions for the IK of the chosen trajectory. The X-axis shows the possible values for joint 1 that result in a valid solution for the IK at each timestep. The Y-axis shows joints 2-7, and their possible values. In this video we can see that, at a certain point, the solution set dissapears, thus the IK having no possible solution.

We used this scheme to perform several trajectories and obtained the results which follow. First we show a table with the cummulative joint variation along the whole trajectory (the sum of the absolute value of all the joint changes), and also the sum of the cartesian error of all the 13 different poses sent to the robot.


Numerical Results for some algorithms

As we can see in the table, our proposal has, with difference, the smallest cummulative error compared to the other CLIK algorithms. While JT, GP and other algorithms may show less joint variation, this total joint variation is secondary to the cummulative error, so we can affirm that our proposed CTP+SD+SVF outperforms the rest CLIK algorithms. Upcoming videos will show the real robot behaviour while executing such experiments.


Tracking of a circle (y-z cartesian coordinates) for different algorithms. The different plots show the desired end-effector trajectory (black) and the data collected from the real robot while moving (blue)