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:
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.