I'm new in robotics. My problem is the next one: I have a 6DOF robot manipulator and because the implementation was for real-time application my calculation time had to be really fast so that I used Wrist Center position(Geometrical solution). After using some calibration machine(I don't know much about this machine) I got the real DH parameters of the robot and of course are not the same. I can't use the real DH parameters in my IK cause is no longer valid for the new DH parameters and If I implement a numerical solution I don't know really how much time it will take. So, my questions are :

  • Do you know any IK method for this case with no more than 0.5ms for each IK calculation?
  • Is there any information about how can compensate the position without change the IK but knowing the real DH information?
  • Do you know any other solution to this problem?

Finally, I was reading kinematics calibration. I think I got the idea but in the end is the same problem, you got new DH parameters and How to use those new DH parameters or maybe I understood wrong this information, basically is using this equation: enter image description here Thanks for help!!!


The 0.5 ms limit might be a bit harsh. Usually 1 ms should be enough for solving the IK numerically on reasonable hardware (industrial PC, maybe RasPi as a worst case).

Numerical solutions always depend on the initial guess the calculations are starting from. Calibration is meant to compensate for the small misalignments in the joints. It can be concluded that the "distance" from the point in joint space obtained by the analytical (ideal) inverse kinematics and the numerical inverse kinematics (for the real DH values) is small. This can be exploited and the ideal analytical IK can supply the initial guess for the real numerical IK. Since the distance is small the numerical IK will converge in 3-5 iterations to a solution that is below the acceptable precision threshold.

Industrial robot controllers (e.g. ABB, Kuka) have a cycle time of 2 - 16 ms. A significant amount of the cycle time is spent on calculating different calibration and compensation functions (e.g. joint misalignment compensation, static load deflection compensation, gear backlash compensation, thermal dilatation compensation, etc.)


With a 6 DoF arm, you should be able to use a closed form for IK. I would avoid a numerical solution if you need it to be fast. You might want to try IKFast in OpenRave. It can supposedly handle "robots with arbitrary joint complexity like non-intersecting axes". However, after kinematic calibration my joint axes were no longer at right angles. When I tried my new robot kinematics in IKFast it would crash and I was never able to get valid IK solutions. I had a 7 DoF arm on a 1 DoF torso though. You might have better luck with a 6 DoF robot.

I don't think there is a general way to use your nominal IK, then apply some transform to account for your modified kinematics. The kinematics is just too non-linear. But this does work in small sections of the workspace. In fact, I wrote a paper on the subject:

B. Axelrod, W. Huang, "Improving Hand-Eye Calibration for Robotic Grasping and Manipulation" IEEE TePRA, 2012.

To better understand kinematic calibration, the best (clearest) source of information I could find on the subject is in the book "Robotics: Modelling, Planning and Control" by Bruno Siciliano, Lorenzo Sciavicco, Luigi Villani, Giuseppe Oriolo, chapter 2.11. Which requires a description of the arm in DH parameters, multiplying out the kinematics equation, partial differentiation w.r.t. each DH parameter, then a least-squares fit (with the left pseudo-inverse), then iterate.

But I was never able to get this technique to work for me. What did work was using PoE (Product of Exponentials). In PoE, the kinematic parameters of the model vary smoothly with changes in joint axes and can handle kinematic singularities naturally. I followed this paper and was successful in kinematically calibrating my 7 DoF arm:

I. Chen, G. Yang, C. Tan, and S. Yeo, “Local POE model for robot kinematic calibration,” Mech. Mach. Theory, vol. 36, no. 11/12, pp. 1215– 1239, 2001.

  • $\begingroup$ Thanks for your answer, Got it, so basically, any calibration method uses different ik calculation after get the real dh parameters( of course if current ik method is no longer valid). I was wonderig how the companies do that cause I don't think they use different ik after each calibration and , the time for them is also important for them? Finally, if you have any clear information about position compensation I'd be very greatful. That is another topic which still is fuggy for me $\endgroup$ – Paul Tumbaco Dec 2 '17 at 6:42

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.