I want to find the equations of motion of an RRRR robot.I have studied about it a bit but I am having some confusion.

Here, in one of the lectures I found online, it describes an Inertia matrix of a link as $\bf{I}_i$ which is computed by $\tilde{\bf{I}}_i$ also described below?

In conclusion, the kinetic energy of a manipulator can be determined when, for each link, the following quantities are known:

  • the link mass $m_i$;
  • the inertia matrix $\bf{I}_i$, computed with respect to a frame $\mathcal{F}_i$ fixed to the center of mass in which it has a constant expression $\tilde{\bf{I}}_i$;
  • the linear velocity $\bf{v}_{Ci}$ of the center of mass, and the rotational velocity $\omega_i$ of the link (both expressed in $\mathcal{F}_0$);
  • the rotation matrix $\bf{R}_i$ between the frame fixed to the link and $\mathcal{F}_0$.

The kinetic energy $K_i$ of the i-th link has the form:

$$ K_i = \frac{1}{2}m_i\bf{v}_{Ci}^T\bf{v}_{Ci} + \frac{1}{2}\omega_i^T\bf{R}_i\tilde{\bf{I}}_i\bf{R}_i^T\omega_i \\ $$ It is now necessary to compute the linear and rotational velocities ($\bf{v}_{Ci}$ and $\omega_i$) as functions of the Lagrangian coordinates (i.e. the joint variables $\bf{q}$).

So $\tilde{\bf{I}}_i$ is computed wrt to fixed frame attached to the centre of mass.

However in another example below from another source there is no rotation matrix multiplication with ${I}_{C_1}$ and $I_{C_2}$ as shown above. Am I missing something?

$\underline{\mbox{Matrix M}}$

$$ M = m_1 J_{v_1}^TJ_{v_1} + J_{\omega_1}^TI_{C_1}J_{\omega_1} + m_2 J_{v_2}^TJ_{v_2} + J_{\omega_2}^TI_{C_2}J_{\omega_2} \\ $$

What is the significance of multiplying Rotation matrix with $I_{C_1}$ or $\tilde{\bf{I}}_i$?

I am using former approach and getting fairly large mass matrix. Is it normal to have such long terms inside a Mass matrix? I still need to know though which method is correct.

(A series of images showing Mathematica output of a 4x4 matrix with some very, very long terms - A, B, C)

The equation I used for the mass matrix is:

$$ \begin{array}{lcl} K & = & \displaystyle{\frac{1}{2}} \displaystyle{\sum_{i=1}^{n}} m_i\bf{v}_{Ci}^T \bf{v}_{Ci} + \displaystyle{\frac{1}{2}} \displaystyle{\sum_{i=1}^{n}} \omega_i^T\bf{R}_i\tilde{\bf{I}}_i\bf{R}_i^T\omega_i \\ & = & \boxed{ \frac{1}{2} \dot{\bf{q}}^T \sum_{i=1}^{n}\left[ m_i {\bf{J(\bf{q})}_{v}^{i}}^T {\bf{J(\bf{q})}_{v}^i} + {\bf{J(\bf{q})}_{\omega}^i}^T\bf{R}_i\tilde{\bf{I}}_i\bf{R}_i^T\bf{J(\bf{q})}_{\omega}^i \right] \dot{\bf{q}} } \\ & = & \displaystyle{\frac{1}{2}} \dot{\bf{q}}^T\bf{M(q)}\dot{\bf{q}} \\ & = & \displaystyle{\frac{1}{2}} \displaystyle{\sum_{i=1}^{n}} \displaystyle{\sum_{j=1}^{n}} M_{ij}(\bf{q})\dot{q}_i \dot{q}_j \\ \end{array} $$

  • $\begingroup$ You've given a method from one source, an example from a different source, no information on which method this is or where you got them. You provide an output dump from what appears to be Matlab with no details on what you did to get that answer. There are many ways to setup and solve dynamics problems. Without more information, namely the method you're trying to implement and the code you're using, with a picture of what your terms mean, I don't think you're going to get a lot of help. $\endgroup$
    – Chuck
    Feb 1, 2016 at 0:14
  • $\begingroup$ Welcome to robotics Muhammad Qasim and thanks for your question. On robotics we are fortunate enough to have MathJax support enabled, allowing you to easily create subscripts, superscripts, fractions, square roots, greek letters and more. This allows you to add both inline and block element mathematical expressions in robotics questions and answers. For a quick tutorial, take a look at How can I format mathematical expressions here, using MathJax?. Converting your images into MathJax would make your equations much easier to read. $\endgroup$
    – Mark Booth
    Feb 1, 2016 at 2:27
  • $\begingroup$ thanks, I will surely look into MathJax. regarding my mass Matrix,I just want to know that getting lengthy terms inside it is usual or not? I am new in Robotics so I don't know what other methods are. I have used Eular lagrange Robotics approach . First I did forward kinemetics using denavit hartenberg parameters. From here on I calculated Transformation matrix of each link. with the help Iof it I calculated Jacobian matrices.I dont know what the ambiguity is. then i used the equation I have now inserted in my question at bottom $\endgroup$ Feb 1, 2016 at 8:09

1 Answer 1


I am not sure what exactly your question is. Here is something that might help.

The rotation matrix converts inertial matrix with respect to body fixed frame (F$_1$) to that in space fixed frame (F$_0$) in which the angular velocity has been expressed.

If you carefully read the derivation of Lagrange equation, you can see that both the Inertial matrix and angular velocity must be expressed in the same reference frame.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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