# What is the required theory behind building a robotic arm?

I am currently planning on building a robotic arm. The arm's specs are as follows:

• 3 'arms' with two servos each (to move the next arm)
• single servo clamp
• mounted on revolving turntable
• turntable rotated by stepper motor
• turntable mounted on baseplate by ball bearings to allow rotation
• baseplate mounted on caterpillar track chassis
• baseplate is smaller in length and width than caterpillar chassis

What are the required formulas in determining how much torque each servo must produce, keeping in mind that the arm must be able to lift weights of up to 1 kilogram? Also, considering that the ball bearings will take the load of the arm, how strong does the stepper have to be (just formulas, no answers)?

As far as overall dimensions are concerned, the entire assembly will be roughly 255mm x 205mm x 205mm (l x w x h). I have not finalized arm length, but the aforementioned dimensions give a general estimate as to the size.

There are 2 (or 3, depending on how the planned lifetime of the robot is) thing thats you have to consider.

Static load: The motors stall (zero revolution) torques have to be able to hold the weight in the robots most unfavorable pose (usually the arm stretched out). You can determine this by static modelling, that involves only an equilibrium of forces for a given pose (no motion). The motors stall torques have to be at least equal (but larger is recommended) then the torques obtained from the static model.

Dynamic load: This is the case where you need to consider both forces and motions. determine the target maximum speed of the robot for its end-effector (tool center point, TCP). Besides your mentioned maximum payload, you will need to know the moment of inertia of your payload (or you can approximate it if you consider that it is e.g. sphere shaped or square shaped). You will also need to approximate the masses and inertia of your linkages (incl. motors). These all are input to the dynamical analysis. The dynamic model calculates the motions of the centers of gravities of all your solids then attaches the necessary forces that act on them and then does a force equilibrium (as in the static model, but completed with "motion forces").

The fastest way to model the dynamics is with a software for dynamic modeling (e.g. SimMechanics package of Matlab). If not you will have to write the equations. I would recommend the Newton-Euler approach since it is the simplest. Here you can find more about it:

http://www.diag.uniroma1.it/~deluca/rob2_en/06_NewtonEulerDynamics.pdf

The static model is a subcase of your dynamic model. If in the dynamic model you set velocities and accelerations to zero you end up with a static model. However, to find the worst case pose for your robot (the one that requires the maximum amount of torque, or produced the highest force on the bearings) is not simple in the dynamic case (when you have motions, not just standstill). You need to find the worst case load pose in order to be sure that the maximum load on the bearings and maximum torque on your motors does not exceed the maximum allowable forces/torques in the datasheet of your motor/bearings Trial and error with large increments, see where the forces peak and investigate that interval with smaller increments. A more complicated approach would be to use an optimization algorithm to find which pose maximizes your torques or reaction forces...

If you want to plan the lifetime of your robot a fatigue analysis will also be required. I assume you do not need this...

• I did not expect such a detailed answer...but thanks this is a great help. Can you please explain to me in greater depth about the TCP? I haven't quite understood how it fits in. Oct 22, 2015 at 8:39
• The TCP is the "most interesting point" of your robot. If you have a tool it is usually the tip of the tool. One is usually interested in positioning the tooltip somewhere (e.g. to glue something if the tool is a glueing gun) with a given precision and for some applications you are interested in how fast the tool (TCP) moves and how it is oriented. For a glueing application you'd want your glueing gun to be perpendicular to the surface and you'd want it to move with constant velocity and follow a given curve. The tooltip (=TCP) has to have the constant velocity, you do not care about the rest
– 50k4
Oct 22, 2015 at 11:19

It sounds like you are developing a robotic manipulator from scratch so I also assume you will be writing software for position control too. Both the design and control depend on not only the dynamics but also the kinematics of your robot.

Kinematics cover the relationships between the joint angles and link lengths (each "arm" is referred to as a link) so that you can determine the position and orientation (as well as velocities and accelerations) along any part of the robot. One method of modeling the kinematics is to break your set of links into the corresponding series of Denavit-Hartenberg parameters. This is not difficult to do, you just have to familiarize yourself with coordinate frames and determine the coefficients for your particular links.

Keep in mind that we are always considering the robot states to be the angles of the joints (or extension of any prismatic joint). Given any set of angles we can then use the kinematics to determine the Cartesian positions of the robot components. Same goes for angular rates to Cartesian velocities and angular accelerations to Cartesian accelerations (of course the velocities and accelerations depend on the angles and rates as well).

To get the torques we then look at the dynamics, where we use the kinematics to model the robot motion and then examine the reaction forces and moments between links based on the inertia of the moving masses. Again, this is not actually too difficult and reduces to a series of free-body diagrams that can be solved in series. The torque on each joint is then simply the moment being applied to it projected onto the joint axis of rotation.

This is known as the computed torque method whereby we prescribe a trajectory for the manipulator joints over time (angles, angular velocities, and angular accelerations) then use the kinematics to determine the Cartesian motion of the joints and finally solve for the reaction torques in the joints. Essentially we are saying "if the manipulator were to perform this motion, what torques will it need to apply through the motors".

When you control the manipulator, you can then input those computed torques for your desired motion and include a layer of feedback control to correct for errors since our model is never perfect. Of course you can use the kinematics and dynamics to approach the problem in different ways, but you'll always need to include them both.

As 50k4 mentioned in the other answer, there are plenty of software packages to help you do this. However, you will most definitely have to understand the underlying principles in order to translate your particular design into the configuration that the software expects (i.e., DH parameters or some other accepted convention). Manipulators can be a bit daunting so take it in stride!