Obtaining a solution space to an inverse kinematics problem (mapping a higher dimensional space onto a lower one)

81 Views Asked by At

I have a 15 dimensional space (corresponding to 15 joints of a robot, 5 joints for each of two legs, and another 5 joints for the right arm). I'll call this space A. Bear in mind that each of the 15 values in space A is bounded (i.e. there's a minimum possible, and a maximum possible value corresponding to the joint limits). Now, space A maps onto a 9 dimensional space, called space B. This dimensional space contains:

  • 6 dimensions for the position and orientation of the robot's right hand (3 cartesian coordinates + 3 Euler angle rotations)
  • 3 dimensions corresponding to the Cartesian coordinates of the left foot.

Assume that I already have the 9 equations that map the 15 joint values of space A onto each of the 9 dimensions of space B (i.e. I already have a forward kinematic solver). As some of you may have guessed, what I want to do is go the other way i.e. provided that I know the desired values for the 9 dimensions of space B, I want to obtain a solution for space A.

Now being an engineer my theoretical mathematics isn't very strong, but I do know that my solution will actually be a 6 dimensional space(?) What I want is an expression for this 6 dimensional space that also respects the joint limits I mentioned earlier. I know this isn't something that has a straightforward answer, so what I'm looking for is a clear roadmap along with specific methods and theories which I can read up on so I can get the job done without delving too deep into irrelevant stuff.

Additional Info: The position/orientations I'm talking about are all relative to the right foot, so essentially the right foot is assumed stationary. Also, all 15 joints are revolute joints i.e. they apply a rotation along any one of the x, y or z axes. Their 'value' is basically the angle (in radians) by which they are rotated.