# Angles Measurement to control (move) a robotic arm

I am working on a robotic arm, I am going to use servo motors, those are going to be controlled from the PC with command (it is a chess-game arm) so the command will be some thing like move piece from A1 to E7 for example.

How can I calculate the angle that I am going to pass to the servos for each specific command?

• Please can you supply a diagram of your robot arm? The answer depends on how your motors/axes are arranged. That said, since there is only a finite number of fixed positions on a chess board, you could always manually calibrate it (using jog functions to move the arm to the correct position), and then note down the 'coordinates' for each square. – Jonathan R Swift Dec 21 '17 at 13:58
• Also wanted to get the calculations for this type of arm youtu.be/q117azE5pMU – LCarvalho Jun 10 '18 at 0:11

## 2 Answers

The act of calculating the angles of a robot from the position of the end eflector is called inverse kinematics. Incidenttally the reverse, calculating end efflector position from angles is called forward kinematics. Kinematics being the study of motion of interconnected bodies.

Now there are many ways to attack kinematics problems, and the exact solution depends on your particular geometry and hardware in the control loop. You can do either iterative or closed form solutions for the IK.

Personally i would look into using something IKFast for closed form solutions for your chain (but that depends on the chain really). Although seems to me based on your design and control unit description that you probably dont have much motion planning in mind. You are more planning to use more pose to pose quick moves which may not work too well.

Angle measurement

If you want to measure the angle (that is what I read in your question), I would go for rotary potentiometers. They are super cheap, lightweight, and easy to read out with a simple microcontroller.

Control

The control of the servos should work with a PID loop to which you feed your setpoint (desired angle) and the measured angle. By adapting the three constants P, I, and D you can define the "behavior of your movements". To control the motors I would recommend you to use a microcontroller instead of the computer. Let the computer calculate the angles for the robotic arm, pass it to your microcontroller, and the latter should take care of measuring the angles and moving your servos.

Angle calculation

If your question is how you calculate the angles of the robot's arm as a function of the end-effector's position, we need to know how many axis you are using, which length the robotic limbs have etc. However, I would have a look at coordinate transformations. Tell us more about the robot's geometry and I will try to help you :).