# In search of a practical IK algorithm

This topic is 3719 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

Hi, Could anyone point me to a site for a *more* practical IK Solution (best to include source code)? :) I am working on an autonomous agent, and I'd like to use quaternion and SLERP Don't want to use euler. Some examples I found on the net are at a very superficial level and produce unnatrual poses. Could anyone please help me out? Don't mind investing in new books :) Thanks Jack [Edited by - lucky6969b on May 13, 2008 3:08:26 AM]

##### Share on other sites
If you can implement it with Euler angles, it's fairly trivial to replace it with quaternions. Also, they won't alleviate the unnatural pose problem by alone; you still have to set limits and constraints yourself.

##### Share on other sites
Quote:
 Original post by erissianIf you can implement it with Euler angles, it's fairly trivial to replace it with quaternions. Also, they won't alleviate the unnatural pose problem by alone; you still have to set limits and constraints yourself.

Because there are 2 or more possible ways for the IK to solve, how can you tell which contraint is better?
For example,
1) I use upper_arm as the base with 3 manipulators
2) The goal is anywhere within the object space
3) Sometimes the elbow joint is being bent upwards which is very unnaturnal

Maybe I just limit it brutally and saying "that" is not allowed and put a negative branching statement in my program... or something like that?

What can be done?
Jack

##### Share on other sites
Quote:
Original post by lucky6969b
Quote:
 Original post by erissianIf you can implement it with Euler angles, it's fairly trivial to replace it with quaternions. Also, they won't alleviate the unnatural pose problem by alone; you still have to set limits and constraints yourself.

Because there are 2 or more possible ways for the IK to solve, how can you tell which contraint is better. For example,
1) I use upper_arm as the base with 3 manipulators
2) The goal is anywhere within the object space
3) Sometimes the elbow joint is being bent upwards which is very unnaturnal

What can be done?
Jack

First, I give each node a weight. This lets me choose the option that takes the least energy.

Second, I give every node a rest position. This is used to resist movement, so that the resulting motion is "comfortable" for the model.

For instance, say you wanted a humanoid model to grasp something a short distance in front of their heart, using their right hand. The elbow will be near a certain angle for that distance, but the shoulder could be twisted in any number of ways to make this work, and the hand itself could be bend at an awkward angle. These are mathematically correct, but unacceptable. Using these parameters, the elbow will be very low because this is the least-energy solution, and looks natural. Also, the hand will be fairly straight instead of very bent because this is closer to its rest position.

1. 1
Rutin
26
2. 2
3. 3
JoeJ
20
4. 4
5. 5

• 10
• 9
• 9
• 46
• 41
• ### Forum Statistics

• Total Topics
631751
• Total Posts
3002076
×