Reading an absolute encoder on the third joint of a 3-joint robot arm

Hello we are trying to read an absolute encoder on the wrist of our arm. Our arm acts like a four bar and we noticed that the values read by our absolute encoder are dependent on where our shoulder and elbow joints are. You can look at our OA thread for more info; Robodox 599. Any programming advice?

1 Like


It looks like the wrist (the joint closest to the end of the arm) is on a virtual four-bar using a belt. As in if the wrist motor does not move, but the joint it is connected to does, then the wrist still stays at the same angle relative to the ground.

If I am right about that, then you might be in luck. Since, as far as the code is concerned, you can just set the angle of the wrist relative to the ground.

If that is not what you want and you want to know the angle of the wrist relative to the arm member that it is attached to, then you are going to need to do a little bit of math. Assuming that the gear ratio of your virtual four-bar is 1:1, then the below diagram should work:

Sorry for the poor art, but if you are assuming that the 0 point of the arm and wrist is perfectly horizontal (a standard that helps a lot) then you can just do (AngleOfArm + 180 - AngleOfWrist) to get the angle of the wrist relative to the arm. Feel free to mess around with what is relative to what. Whatever you choose. I recommend you diagram out multiple scenarios with multiple values to make sure that your math maths proper.

Hope this helped and good luck.

3 Likes