I'm trying to obtain the dynamic model of a 3D robot (academic problem), I have obtained the D-H table, the transformation matrix for each pair of links and the total transformation matrix. Now I'm struggling with computing the total Kinetic energy (for using it in the Lagrangian approach).

In some texts, only the linear velocity is used in computing the kinetic energy, even if there are revolute links, that is:


But in some others, both the linear and the angular velocities are considered :

$K=\frac{1}{2}m~v^2 + \frac{1}{2} I~\omega^2$

I'm a little bit confused with this, when and when not to use the angular contribution to the Kinetic energy?


It all depends on your robot design, the joint category (linear/revolute) can have an impact but what you need to consider is the final motion of the parts for which you compute the Kinetic energy.

The total Kinetic energy is the sum of all links and motors individual Kinetic energy. This is used because it makes the computation way easier as usually one consider a center of mass (CoM) for each motor and link.

So you should consider both linear and angular components of Kinetic energies. Sometimes, based on your robot design, there are parts with no angular or linear velocity, which results in no contribution to the total Kinetic energy.

Think for example about gantry crane which only have linear motion.

  • $\begingroup$ Thank you, I see for example the answer to this manipulator . From what I understaf, the kinetic energy is computed using only linear velocities, but there are only revolute joints. I'm I understanding something wrong? Thank you so much! $\endgroup$ – Ma ya Jun 4 '18 at 14:24
  • $\begingroup$ As stated in the answer it was written quickly. The reference provided in the question (J. J. Craig "Introduction to Robotics: Mechanics and Control (Third Edition)") considers both linear and angular velocities, see equation 6.69 . Note also that typically people separate link and motors if they CoM are not coinciding, because typically motors represents a good portion of the link weight. $\endgroup$ – N. Staub Jun 4 '18 at 14:57
  • $\begingroup$ Thank you, is still necessary compute the angular kinetic energy if each link is a massless rod with a point mass attached at the end of each link? Does it even have a inertia tensor if we're assuming the previous statement? If yes, can you help me with some basic advices about how can I start computing the inertia tensor? $\endgroup$ – Ma ya Jun 10 '18 at 5:02
  • $\begingroup$ Has said it depends of the possible motion of your system. The weight distribution assumption you describe, could be equivalent to only consider the mass of the motors located at each joint. I suggest you to look at the parallel axis theorem for inertia. $\endgroup$ – N. Staub Jun 11 '18 at 14:22

In general you can represent a motion of a rigid body by two parts: rotation about some axis and linear motion of that axis.

In robotic arm previous link movement affects the following ones by moving their rotation axes. It means that you have to use both parts of KE in your formula.

You can compute linear and angular velocities that are used in formula by using a Jacobian:

$ \dot x = J^{-1}\dot q $.

You can compute Jacobian geometrically for each COM frame and easily find angular and linear velocities of link's COM. Also note that $J$ is not always invertible so take a look at Damped least-squares inverse which is a standard way of approximating matrix inverse in case of it being non-square or singular.

Quite a good example of computing KE you can find here.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.