Announcements

Between mid-October and November, the content on AREA will be relocated to the Autodesk Community M&E Hub and the Autodesk Community Gallery. Learn more HERE.

Help! Rigging robot arm, IK with locked attributes

Help! Rigging robot arm, IK with locked attributes

exsulator
Advocate Advocate
4,123 Views
11 Replies
Message 1 of 12

Help! Rigging robot arm, IK with locked attributes

exsulator
Advocate
Advocate

I'm not even sure this is possible but...

 

I have a robotic arm that I want an IK on, but as you can see from the image below, the location of the tilt-joint and the twist joint is not the same (both marked by "C"), as it would be on a human arm.

IK_lockedRotation.png

 

So I lock the two attributes that shouldn't move for each joint, but when I test the IK it does this

IK_lockedRotation.gif

 

As you can see, it only works for a few degrees, before it "crashes" at the top, like hitting something invisible. Same problem the other way, not to mention it is unstable. So I'd like to know: how to make IK for joints with locked rotations??(locked on two axises)

0 Likes
Accepted solutions (1)
4,124 Views
11 Replies
Replies (11)
Message 2 of 12

Anonymous
Not applicable

Hey @exsulator

Can you please attach the scene file to take a closer look at this one for you, thank you!

0 Likes
Message 3 of 12

dinofiguera
Collaborator
Collaborator

If you create your IK handle by only using the second and the third joint (counting from the base joint). The rotation will work correctly. There is no reason to start the IK handle from the base joint since this is not supposed to be an elbow-like setup.

0 Likes
Message 4 of 12

exsulator
Advocate
Advocate

Sure, here's a test file. I'm trying different options and different ways to attach IKs, but each time there's a different problem that limits the motion or makes it very unstable. What I want is to make an intuitive controller(s) with IK, perhaps two, but I'm struggling with figuring out the best way to go about it

0 Likes
Message 5 of 12

exsulator
Advocate
Advocate

Sorry, I guess it's difficult for you guys when I didn't provide a file, but I'll explain the problem with your solution; the second joint is locked to tilting only, because that's how the robot was designed. Have a look at the file I provided in a comment earlier. This is how the joints are allowed to move (exclusively!)

1st - twist only (around its aiming axis, which is Y in this case)

2nd - tilt only (perpendicular to its aiming axis, which is Z in this case)

etc...

3rd - twist only

4th - tilt only

5th - twist only

6th - tilt only

0 Likes
Message 6 of 12

dinofiguera
Collaborator
Collaborator

Try this and let me know if it works for you. It has some limitations though, it was a quick test, it would require a bit more time...

0 Likes
Message 7 of 12

exsulator
Advocate
Advocate

What's the ideas at work here? It's a little confusing to make sense of for me.

Also it isn't very stable and when I test it, I unintentionally collapsed the whole thing many times by simply moving a controller somewhere it couldn't handle. Hmm

0 Likes
Message 8 of 12

dinofiguera
Collaborator
Collaborator

Well, I did it pretty fast and did not lock the no-touchy attributes. Sorry for that. 
It is hard to do a rig if you don´t know exactly the movement and the animation you have in mind.

0 Likes
Message 9 of 12

dinofiguera
Collaborator
Collaborator

I post you an example of the  kind of animation you can do with this setup,

Yes there are probably some mistakes I did, some rotation order is  not correct,

but it is still possible to do some nice animations.

I needed to use some aim Constraint together with the IK-handle to Achieve the motion.
Probably there are many more better ways to do this but it requires some R&D

0 Likes
Message 10 of 12

exsulator
Advocate
Advocate

I'm not too worried about the mistakes, I appreciate the time you spent anyway.

 

What I tried to say was, I would like to know why it was made the way it was - what is the purpose of the aimconstraints, why are there multiple joints at the same location, why was the pole vector placed where it was...

 

I suppose in reality, I need to find a good tutorial for these things, seeing I'm not used to rigging robots.

 

Thanks for your help so far 🙂

0 Likes
Message 11 of 12

dinofiguera
Collaborator
Collaborator
Accepted solution

At the moment I have no time to be very detailed, but I can give you some hints about what I did (which is not necessarily the best solution, maybe you will find a much better one).
The problem here is that we are trying to give a bit too many tasks to the poor IK-handle. 😄
So my purpose is to divide the rig in parts and to give each part a main task to cover all the motions I want.
The Ik handle´s task is mainly to bend the arm in an Arm-like way. So I build a joint chain just for that.
It is a good habit, to have your main joints deforming or driving the geometry and then create other joints chains depending on your purpose.
In order to make the IK handle not only move the arm but also making the whole thing rotate around one axes, 
I create the aim constraint-setup  which makes the arm aim to the IK controller. (I personally would not do that, I will use FK for this rotation but I took the test as a challenge).
So basically the rig has an FK part, to rotate everything in FK, an aim part, which rotates the arm following the IK controller, and a IK-part that resolves the arm motion.

Last but not least: the poleVector is a great way to control the elbow motion and sometimes (like in this case)
Is used only to lock the arm elbow to the wanted rotation plane, in order to prevent unwanted rotations by moving controllers around.
To be correctly evaluated, an IK handle Needs to know what imaginary plane we want it to rotate into , and that is a poleVector job 🙂 
Cheers

 

0 Likes
Message 12 of 12

exsulator
Advocate
Advocate

Ok, I think I see what you've done based on this description. Thanks for clearifying this 🙂

 

I'll do R&D untill I've got a satisfactory result.

 

Just to answer the stuff about what this arm is for,although the arm appears to be a factory arm, it's actually attached to a humanoid-ish robot. I'll need the arms to bend all the way around at the elbow joint, therefore it will be tricky to make it stable with IK and pole vectors. Yet that would save a lot of time, or so I thought


But I find your insight valuable, at least now I know there's no magic fix; I just need to try things untill I get it right 🙂

0 Likes