HELP: Constraints: Complex Shoulder Joint

I’m trying to create a shoulder joint for a robot with freedom of rotation on all axes.
Red: Arm
Blue: Shoulder-jnt
Green: Jnt
Gray: Shoulder

The Shoulder-jnt object is parented to the Shoulder object.
The Arm object is also parented to the Shoulder object.

My structure looks like <diagram.png>. The joints are color-coded to the axis on which they rotate.


I set up a copy rotation constraint on the green object:
[ OB:Arm, X:OFF, Y:On, Z:On, TargetSpace:World, OwnerSpace: Local ]
and a copy location constraint:
[ OB:Arm, X:On, Y:On, Z:On, TargetSpace:World, OwnerSpace: Local ]
So when I rotate the Arm object, I get this image:



Which is good.

But once I rotate the Shoulder object, it breaks, like this:


Could someone help me?

Are you using bones, or just parenting?

I’m just parenting, but I’ll use bones in the future.

I suggest it breaks because of the parenting. Rotating the shoulder also rotates the arm. Why not just parent along the joint heirachy and restrict rotation on each joint to the appropriate axis? Also I’d suggest reversing your joint order, well at the least not having the x rot in your case at the arm.

Thanks for the help, I restarted and got it working. I parented everything to the shoulder. And added a single constraint on the green jnt [OB: Arm, Offset: ON, Local, Local] and magically it worked. I swear I tried that before, but I guess it works now. Thanks again.