# Dynamic model of a robotic arm

I have a question regarding the dynamic model of a robotic manipulator. It is commonly written as follows: $$\tau = M(q)\ddot{q} + C(q,\dot{q})\dot{q} + G(q) + J^\intercal F_{ext}$$ From what I have seen, the equation $$\tau_{ext}=J^\intercal F_{ext}$$ only holds true at very low velocities, so authors usually remove the velocity and acceleration terms and write: $$\tau = G(q) + J^\intercal F_{ext}$$ So my question is, what happens when our task is highly dynamic with high velocities and accelerations ?

1. The first equation is always true. So at high velocities and accelerations, you use the first equation. See this

2. At low velocities $$\dot{q}<<$$ and low accelerations $$\ddot{q} <<$$, the first two terms are negligible, and thus you use the last equation.

3. $$\tau_{ext} = J^T F_{ext}$$ is also always true. It is the contribution of external forces. See this

4. There are control laws, when you want to exert a desired force $$F_d$$ at the environment, when the end effector does not move (thus $$\dot{q}=0$$ and $$\ddot{q}=0$$): $$\tau_{control} = J^T F_{d}$$ and this can be even more precise if you add the gravity term. This leads to your last equation. See this

• So if I understand correctly, (3) is always true even at high velocities, but it is the (4) that assumes a quasistatic condition, right ? Jul 14, 2023 at 14:36
• Yes, but (4) is a control law, it doesn't describe the dynamics. The dynamics are again : $M\ddot{q} + C \dot{q} + G + J^T F_{ext}= \tau_{control} = J^T F_d$ . In quasistatic conditions, $\dot{q}$ and $\ddot{q}$ are negligible, and thus $J^TF_{ext} =\tau_{control}-G$ Jul 17, 2023 at 8:25

I suggest you bring all the external forces on the same side i.e., consider

$$M \ddot{q} + C \dot{q} + G = \tau - J^T F_{\text{ext}}$$

This equation is always valid.

On the right member, there is the net external force acting on the joints (a vector in the joint space). Vector $$\tau$$ is the force (or torque for revolute joints) in the joint space determined by the controller. Force $$F_{\text{ext}}$$ is the force (in the task space) exerted by the hand over the environment (non-zero only if the hand is in contact with the environment). The reaction force, $$-F_{\text{ext}}$$, is the force (in the task space) exerted by the environment on the robot's hand. Using the concept of kineto-static, we know that we can determine the force from the environment reflected back on the joints (in the joint space) using the transpose of the (Geometric) Jacobian. Therefore, $$-J^T F_{\text{ext}}$$ is the force on the joint determined by contact with the environment.

If the arm is pushing toward a concrete wall (static situation) the joints' velocities and accelerations are zero, from which $$\tau = J^T F_{\text{ext}}$$ that is the results you have from the kineto-static analysis. Roughly speaking, the force exerted by the arm on the environment must be exactly compensated by the force (torque) on the joints from the controller.