Rig a robot arm - with rotation

I have this pretty basic robot arm here:

which works fine.

I constraint my bones like this:

so moving around my controller it works (i know it “jumps” and i can fix that with a pole target).

rig works

In the IK settings, i can check “rotation” so that the last bone (the ik bone) rotates perfectly with the controller rotation…but…

that comes with the downside, that my robot arm doesn’t follow my controller anymore, because the rig cannot meet the expectations anymore of position AND rotation

But i want both!
i would love to first position my claw and afterwards or by another bone or whatever technique rotate it at that point as i want. is this somehow possible and how?

here the “downside” if i check “rotation” in IK:

rotation checked

rig arm rotation question.blend (3.6 MB)

One thing you can do, to get kinda rotation, is to add non-deforming bones into the chain:

By adding in a final, non-deforming bone to the chain, locked in all but Y, I can enable rotation on the IK, but without any limitations on the “twist” of the chain-- and for you, the twist of the chain is the limiting factor on the rotation.

We could do something similar with XZ, if we insert two bones:

The final two bones are non-deforming; the final bone is locked in all axes, so the final IK bone and the final deforming bone still point their tails at the same location. Setting high stiffness for the permitted axes means that these bones won’t be used to meet rotational demands unless they need to be used.

Something similar is to constrain the IK target to only have rotations (and/or positions) that you want to allow:

Here, I’m basically permitting free twist again, same thing, but I’m doing it by setting up my IK target’s rotation in a way that doesn’t create any twist on the arm.

2 Likes

Hi Bandages,

thank you very much for your answer. Unfortunately i couldn’t reproduce what you did because i am not sure what you mean by “final” bone and which bone is parented to which. Would you mind providing a blend file so i can figure it out? So maybe that’s easier than explaining everything.
Thank you and have a great day.

Sorry, I’m not really feeling like doing that. The final bone in the IK chain is always the one with the IK constraint. The parenting should be pretty obvious from the pics-- bones are all connected head to tail, save for first example where the new IK-constrained bone is just parented to the old IK-constrained bone.

There’s another way to do this, slightly different, which is to run your IK chain backwards:

I’ve reversed the chain-- what used to be the IK target is now the parent of an IK chain, and what used to be the parent, is now the IK target, with rotation enabled. The new parent of the chain is limited to valid positions so that the chain will always reach. The first point in the chain has high IK stiffness, so it will attempt to follow the rotation of its parent unless it can’t. These values can be tuned to eye to give more or less respect to its inherited rotation.

reverseik.blend (112.0 KB)

2 Likes