What's a good Library for Solving Inverse Kinematics?

Started by
3 comments, last by Dunoid 8 years, 1 month ago

I've been looking for a "Full Body IK" system for Unreal Engine 4. Then I realised I don't actually need one. I can set it up myself. All I need is a library that handles all the math / solving related to inverse kinematics, and after a quick google search it seems there are a lot of them.

So my question is: are there any that stand out and should be recommended?

Advertisement

Which ones have you looked at so far?

I'd be interested in recommendations too :D because I haven't had time to evaluate any yet, but I'm going to need one soon...

I was also looking at stuff like HumanIK, which gets bundled with Stingray.

Well, to be honest, the only one I have looked at is this. And that was before I knew that there are lots of free libraries out there, and now IKinema seems like a bit of an overkill for me. Besides, I don't necessarily want to spend money, if all I need is a "math-solver". The UE-integration I can handle myself.

Anyway, a google search for "inverse kinematics solver library c++" gives out so many results, I haven't started comparing them yet. I've been working on other stuff in the meantime, hoping that someone has some good advice here :/

But if I pick one, I will post it here.

I have looked at some of the search results now. Most of them are actually academic projects intended to be used with actual robots :/

So there is IKinema (not free), Autodesk HumanIK (probably not free, but I can't really tell, because if I click anything on the site, it wants me to login...), and then I found this and this.

Both are academic projects and not open-source. I have read somewhere that SmartBody also has IK, but it isn't even listed in the features list, so it can't play a big role. Anyway, this might be something worth looking into. I'm not so sure about RBDL.

Will keep looking.

Depending on the complexity of your project and your programming experience, the simplest method may be to write your own. I referred to this paper for my own IK solving, which takes a bit to understand, but it's surprisingly simple if you're familiar with vectors: https://www.math.ucsd.edu/~sbuss/ResearchWeb/ikmethods/iksurvey.pdf

For things like having a character's feet sit properly on the ground, it's even simpler, since you just need to send a ray to the ground and then use some trigonometry to determine the angles of the leg based on the length of the ray. You'll need to draw some triangles to figure it out, but it's really simple to implement once you understand what you want.

Neither of these methods required more than 100 fairly simple lines of code. Of course, it all depends on what you want, but IK is actually easier to implement than I expected.

This topic is closed to new replies.

Advertisement