IK robot arm rig question


#1

hi,

i have to rig a simple robotic arm and it seems i can’t get my head around it. i’m relatively new to rigging, so this question may sound stupid to many of you, but anyway here it comes:

the arm is functioning similar to the rig shown in the pic below. it is attached to a box shaped body. now the question is: how do i rig an IK setup for this while constraining the single parts to their axes? the IK part is simple, i can manage that perfectly well, but how do i constrain the blue part to rotate only around the blue axis and the green part to the green axis? and if i want to be able to stretch or squash or deform the box in any way, how do i keep the blue part sticking to its relative position on the box?

any help would be greatly appreciated! thx


#2

do you have to use IK? Because this could be very easily done with just four joints and 3 control curves. The only thing I see with using ik is that you will have a minor issue with being able to have it bend in both directions. But if you can go without IK I would simply put a joint at each point that you want to bend/rotate and then parent the control curves in as well as parent each piece of geometry under its controlling joint and then lock the degrees of rotation you dont want used. As for squash and stretch you would want to actually bind your geometry instead of parent then set up your squash and stretch. If you need to use IK I would have to look into this a little more.


#3

thanks for the answer, but i have to use IK, otherwise i won’t be able to animate it properly…


#4

Select the blue joint and open the attribute panel. Uncheck Y and Z in the line “Degrees of Freedom” in the “Joint” section.
Similarly, uncheck X and Z for the green joint.
The IK will not rotate locked axes.

You might find those X Y Z directions are incorrect if your joint rotation axes were changed from the world axes shown in your diagram… the fix would basically be the same, but the axes would change if the joint has a rotation on it.

<* Wes *>


#5

I wish it was that easy, wes.
The IK stops working the second you lock any axis with the degrees of freedom function…


#6

You made me check this. While there are issues with the overall usefulness of the solution, the limits themselves do not kill the IK. However, it does not work in a very intuitive or useful manner, and I did not find it a very useful way to animate this. But it does work, after a fashion.

I built a little test rig with a box, and a pair of torus/cylinder combinations.
To get it working, I built a 4 joint chain, so that the IK effector was attached beyond the 3rd joint, otherwise it would not have any effect on joint3.
I limited joint1 to X, joint2 to Z, but put no limit on joint 3.
I made a really quick playblast of a few keyframes.


#7

Hey Wes,

What you might try is having two versions of your rig. The first version is your joint chain with no limits or degrees of freedom imposed upon it and an ik to drive it. The second version is your joint chain with limits and no IK. Constrain only the axis that you want to move from the second joint chain to the first and you should have something that works half way decently.

Setting it up this way lacks a bit of control and it can be a pain to animate, but it may get you closer to a solution. As you know I encountered this problem awhile back and we eventually ended up coding the rig in python to give us the most flexibility.

-Colin


#8

thanks to you all for your answers, but duplicating and constraining the jout chain seems only half a solution to me. anyway, i figured out a way using aim- and orient constraints - or lets say i’m halfway through it. if anyone is interested, i’ll post the solution once i finished it.

cheers


#9

Could you post your final method of IK control for the limited joint robot arm, having alot of problems at the moment :S


#10

sorry for viewing this post of so late…or i would have tried it earlier…
here is a try for the solution, dont know if u were looking for the same.
http://www.youtube.com/watch?v=qk0lFbC9-6E
hope you all like it.


#11

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.