I came across robotics library (RL), but quite unclear about its real purpose. Is it a FK/IK solver library or simply an graphical simulator?. RL has poor documentation, so its not clear how to use it. Im looking for some C++ library where there APIs to solve FK/IF analytically. Thank you.


3 Answers 3

  1. The best way to understand forward and inverse kinematics is to write a library for its own. A good starting point is to implement Cyclic Coordinate Descent.
  2. So called "ready-to-run" librarys like OpenRave or OMPL have an extensive C++ tutorial section too but are notorius difficult to install. Most of them only run under linux, and are not even part of Ubuntu's package manager.
  3. And a short informal note: C++ is not a high-level-language, especially not in scientific environment.
  • $\begingroup$ Just a quick comment: doing real robotics (with real robots I mean) tends to be extremely difficult without knowing C/C++. $\endgroup$ Commented Sep 2, 2016 at 19:07
  • 1
    $\begingroup$ (-1) for "C++ is not a high-level-language" and (-1) for "especially not in scientific environment". $\endgroup$
    – CroCo
    Commented Sep 6, 2016 at 17:54
  • $\begingroup$ Why would you implement cyclic coordinate descent, which is iterative, when closed-form equations are derivable? $\endgroup$
    – SteveO
    Commented Mar 31, 2017 at 18:11

I haven't used it personally (yet; it's only a matter of time), but I believe the Rigid Body Dynamics Library is what you're looking for - efficient forward and inverse kinematics.

I did a lot of work with the underlying math behind that library, and even wound up (creating my account here to) asking a couple questions about it, one of which was answered by the guy that wrote that library. I'll warn you - the math isn't for the faint of heart, but I believe that, like with a lot of things, you don't really need to understand all the underlying math to understand how to apply something.

Give it a shot, and feel free to ask if you have any questions!

  • $\begingroup$ Hello @Chuck :) Thank for your comment. I looked up upon the RL kinematic solver APIs, but I was only able to find the numerical iterative solver instead of an analytical solver. I am worried because of the computational cost and time incurred in using a numerical solver instead of an analytical solver. Now I'm thinking of solving and deriving the kinematic equation for my arm and write my own functions in my code to speed up the process. Any advices/thoughts? Thank you :) $\endgroup$
    – Vino
    Commented Sep 2, 2016 at 5:38
  • $\begingroup$ @VinokanthVelu - If it's possible to get an analytical solution, then you could absolutely go that route. Numeric solutions will always take longer than a pre-solved analytic solution, but they shouldn't take a long amount of time. $\endgroup$
    – Chuck
    Commented Sep 2, 2016 at 12:29

I recommend KDL. It is kind of de facto kinematic library for the robotics community. It has both forward and inverse kinematic solver as well as generic capabilities to model your robot. You can use it as a stand-alone C++ library or with ROS.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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