Skip to main content
Robotics & Embodied AI

⏱ About 20 min20 XP

Dynamics and Forces

Kinematics describes where things are and how they move. Dynamics asks why they move that way — the forces and torques that cause acceleration. A kinematics-only controller can specify desired joint angles, but it cannot compute how hard the motor must push to achieve them. For precise, high-speed, or force-aware manipulation, understanding dynamics is not optional. It is the difference between a robot that gracefully moves a fragile object and one that crushes it.

Newton's Laws in Robotic Context

Newton's second law for linear motion — F = ma — says that force equals mass times acceleration. For rotational motion, the analog is tau = I * alpha, where tau is torque, I is moment of inertia, and alpha is angular acceleration. Both equations say the same thing: applying a force (or torque) to a mass (or inertia) causes acceleration. For a robot joint, the motor applies a torque tau_motor. The joint resists with several opposing forces: inertial resistance (the link mass resisting acceleration), gravity (the torque required to hold the link against gravitational pull), friction (viscous and Coulomb), and external loads (if the robot is carrying a payload or in contact with an environment). The equation of motion for a single rotational joint is: tau_motor = I * alpha + c * omega + tau_gravity + tau_friction + tau_external where omega is joint angular velocity and c is a viscous damping coefficient. In a multi-link arm, these equations couple together — the acceleration of one joint depends on the configuration and velocities of all other joints. This coupling is what makes robot dynamics genuinely complex.

Inertia Is Configuration-Dependent

The effective inertia a motor must overcome changes dramatically with the robot's posture. When an arm is fully extended horizontally, the motor at the shoulder bears a much larger gravitational torque than when the arm hangs vertically. High-performance controllers compute this in real time using the robot's dynamic model, allowing them to pre-compensate rather than react after the fact.

The full dynamics of an n-joint robot arm are described by the manipulator equation of motion: tau = M(q) * q_ddot + C(q, q_dot) * q_dot + g(q) where: tau is the vector of joint torques (the control inputs) q, q_dot, q_ddot are the vectors of joint positions, velocities, and accelerations M(q) is the n x n mass-inertia matrix (depends on configuration) C(q, q_dot) * q_dot captures Coriolis and centrifugal forces (velocity-dependent) g(q) is the gravity torque vector (configuration-dependent) This equation is the heart of model-based robot control. If you know M, C, and g (derived from the robot's link masses, moments of inertia, and geometry), you can compute exactly what torques are needed to produce any desired acceleration. This is called inverse dynamics: given desired motion, compute required torques. Feedforward control uses inverse dynamics to pre-compute the torques that would produce the desired trajectory without relying on feedback to correct errors. Combined with a feedback controller, feedforward dramatically improves tracking performance — the feedback controller only needs to handle residual errors from model inaccuracies, not bear the full control burden.

Gravity compensation is one of the most important applications of dynamics modeling. Without gravity compensation, a horizontal arm will droop under its own weight the moment the controller stops actively pushing against gravity. A gravity-compensating controller continuously computes g(q) and adds the gravity torques to whatever the main controller commands — so the arm behaves as if it were weightless from the perspective of the motion controller. This matters enormously for safety in collaborative robots. A cobot (collaborative robot) designed to work next to humans can be put in 'gravity compensation mode,' where its joints float freely while still supporting their own weight. A human can then guide the arm by hand to any position, and the robot follows effortlessly. This feel is only possible with an accurate dynamics model computing g(q) in real time. Friction is the antagonist of dynamics modeling. Joints have complex friction behavior: static friction (stiction) must be overcome to start motion; kinetic friction opposes motion and is approximately proportional to velocity; in gearboxes, backlash and elasticity add further nonlinearity. Precise friction models require careful system identification — running controlled experiments to measure friction parameters for each robot unit individually.

Match each dynamic quantity to its physical meaning in a robot arm.

Terms

Mass-inertia matrix M(q)
Gravity torque vector g(q)
Coriolis term C(q, q_dot) * q_dot
Inverse dynamics
Gravity compensation mode

Definitions

The configuration-dependent resistance of the robot's links to angular acceleration
Computing required joint torques from a desired acceleration trajectory using the dynamics model
The torques joints must apply just to hold the arm stationary against gravitational pull
Controller mode that cancels gravitational torques so joints float freely under their own weight
Velocity-dependent forces arising from rotation of the moving reference frames of each link

Drag terms onto their definitions, or click a term then click a definition to match.

Impedance and Admittance: Controlling Forces, Not Just Motion

A purely motion-based controller tries to track a position trajectory exactly. This works in free space but is dangerous during contact: if the robot hits an obstacle while trying to hit a commanded position, the contact force grows without limit until something breaks. Impedance control reframes the control law to shape the robot's mechanical behavior during contact. Instead of commanding position exactly, the robot behaves like a virtual spring-mass-damper: when contact force pushes the end-effector away from the desired position, the controller allows the end-effector to yield, as if connected to the target by a spring. The stiffness, damping, and inertia parameters of this virtual mechanism are programmable. A high-stiffness impedance makes the robot behave like a rigid wall — contact forces are large, motion deviation is small. A low-stiffness impedance makes it compliant — contact forces stay small, motion deviation is large. By tuning these parameters, engineers can design robotic behaviors from 'rigid fixture for precision milling' to 'soft assistant that yields when touched.' This physical reasoning about forces and compliance is the link between dynamics and the safe physical interaction with humans covered later in this module.

A robot arm is holding a heavy payload at a 45-degree angle from vertical. Which component of the manipulator equation of motion is primarily responsible for the additional motor torque required compared to when the arm holds the same payload vertically?

A robot arm controlled by a pure position controller (no force sensing, no compliance) accidentally contacts a rigid wall while executing a programmed trajectory. What will most likely happen?

Torque Estimation at a Robot Joint

  1. You will estimate the gravitational torque at a shoulder joint for a simplified robot arm.
  2. Setup:
  3. The robot arm has one link of length L = 0.5 meters and mass m = 3 kg concentrated at the midpoint (0.25 m from the joint).
  4. Gravity: g = 9.81 m/s^2.
  5. The joint can rotate from 0 degrees (arm pointing straight up) to 180 degrees (arm pointing straight down).
  6. Physics reminder: Gravitational torque = m * g * horizontal_distance_from_joint_to_center_of_mass
  7. horizontal_distance = L/2 * sin(theta), where theta is measured from vertical.
  8. Part 1: Calculate the gravitational torque at theta = 0, 30, 45, 60, 90, 120, and 150 degrees.
  9. Part 2: Plot your results (theta on x-axis, torque on y-axis). Describe the shape.
  10. Part 3: At which angle is the gravitational torque maximum? Why?
  11. Part 4: A motor stall torque specification says it can continuously produce 8 N*m. At which angles could this motor hold the arm stationary? At which angles would it stall?
  12. Part 5: What happens to all your torque values if the robot picks up a 1 kg object at the end of the link? Recalculate the maximum torque with the payload.