I am trying to understand Newton-Euler inverse dynamics algorithm from Northwestern Modern Robotics course. Think everything is clear except for one issue. Here is a 5 minutes brief video lecture where tutor explains algorithm steps. The issue appears at 4.47 with the following expression:

$$ F_{i} = [Ad_{T_{i+1,i}}]^{T}*F_{i+1} + G_{i}\dot{V_{i}} - [ad_{v_{i}}]^{T}G_{i}V_{i} $$

Where $F_{i}$ is a 6-dimensional wrench, $G_{i}$ is a mass matrix, $V_{i}$ is a 6-dimensional twist, $[Ad_{T_{i+1,i}}]^{T}$ is a transformation from frame $i+1$ to $i$ for wrenches and $[ad_{v_{i}}]^{T}G_{i}V_{i}$ is velocity product wrench. Each frame $i$ is placed in center of mass of link $i$.

What I really miss here is why we take into account only current link's inertial and mass properties. This is a valid equation for a single rigid body when coordinate system is placed in the center of mass. However when we have several rigid bodies connected in a chain via joints how is it possible that link's $i+1$ mass and inertia does not influence link's $i$ joint? What I mean is that joint $i$ in order to accelerate should produce moment proportional to both $G_{i}$ and $G_{i+1}$ merged somehow, however in this equation we use only link's $i$ moment of inertia.


This is a recursive method, and what you have for each link is a force balance, entirely equivalent to $\sum F = F_i-F_{i+1}=m\,a_i$ but with screw quantities.

Do a free body diagram for the {i} link


and write out the NE equations of motion

$$\boldsymbol{F}_{i}^{\{i\}} -\boldsymbol{F}_{i+1}^{\{i\}} = \mathbf{G}_i \boldsymbol{\dot V}_i^{\{i\}} + [ad_{v_i}] \boldsymbol{G}_i \boldsymbol{V}_i^{i} $$

where the superscripts denote the reference frame things are resolved at, or $\boldsymbol{F}_{i+1}^{\{i\}} = [Ad_{T_{i,i+1}}]^\top \boldsymbol{F}_{i+1}^{\{i+1\}}$

BTW, the notation is horrible in this video as if using a common coordinate system for everything a lot of things become a lot simpler. I mean that is one of the greatest advantages of screw theory, the concise expression free of coordinate transformations.

Now, why is only $\mathbf{G}_i$ considered here? Well it is the FBD of the {i}-th body so no other bodies are involved.

But consider the kinematics involved here with the motion of each link depended on the motion of the previous link

$$ \boldsymbol{V}_{i}^{\{i\}} = \boldsymbol{V}_{i-1}^{\{i\}} + \boldsymbol{J}_{i}^{\{i\}} \ddot{\theta}_{i} + \boldsymbol{K}_i^{\{i\}} $$

and you see that the wrench on the i-th joint depends on all the joint forces above the link and all the motions below the link. This causes the overall system to be very coupled overall.

For the inverse dynamics, this is far easier to solve than for forward dynamics. Here all the joint motions are known, and thus all link motions are recursively evaluated base to tip. Then going from the tip back down to the base the link wrenches are evaluated using the expression above.

  • $\begingroup$ Thank you! Having the equations in terms of $F_{i} - F_{i-1}$ makes it rather clear. Could you please fix the first equation because I missed the dot in the original question. By the way I am not completely understand your claim about kinematics, could you please clarify for me what is $J$ and $K$ and why $\ddot{\theta}$ takes part in velocity calculations. $\endgroup$
    – Long Smith
    Apr 12 at 21:16
  • $\begingroup$ Fixed. The notation I am used to looked like this $$\boldsymbol{f}_i - \boldsymbol{f}_{i+1} = \mathbf{I}_i \boldsymbol{a}_i + \boldsymbol{v}_i \times \mathbf{I}_i \boldsymbol{v}_i$$ and $$\boldsymbol{v}_i = \boldsymbol{v}_{i-1} + \boldsymbol{s}_i \dot{q}_i$$ $$ \boldsymbol{a}_i = \boldsymbol{a}_{i-1} + \boldsymbol{s} \ddot{q}_i + \boldsymbol{v}_i \times \boldsymbol{s}_i \dot{q}_i$$ and the joint torque $$\tau_i = \boldsymbol{s}_i^\top \boldsymbol{f}_i$$ $\endgroup$ Apr 12 at 22:02

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.