Robotics / Control

Robot Manipulator Parameter Estimation

Inertial, friction, and payload parameter identification for high-accuracy control

Introduction

Industrial robot manipulators (6-DOF arms) perform precision tasks in manufacturing, assembly, and surgery. Accurate trajectory tracking requires precise knowledge of dynamic parameters—link masses, inertias, friction coefficients, and payload properties—which vary due to tool changes, wear, and manufacturing tolerances.

The challenge: manufacturers provide nominal parameters, but real robots deviate by 10–30% due to assembly variations, cable routing, and unknown payloads (grippers, tools, parts). How do we identify these parameters from measured joint positions, velocities, and motor currents during test trajectories?

Why this matters: Accurate parameter estimation reduces tracking errors by 40–60%, eliminates retuning when tools change, and enables model-based control strategies (computed torque, adaptive control) that improve throughput and reduce cycle time by 10–20% in high-speed pick-and-place operations.

Rigid-Body Mechanics

A serial manipulator with n revolute joints obeys the Euler-Lagrange equations:

Governing Dynamics: Manipulator Equations

The equations of motion for a 6-DOF manipulator:

State vector: $$\begin{aligned} q &= [q_1, q_2, q_3, q_4, q_5, q_6]^T \quad \text{[joint angles, rad]} \\ \dot{q} &= [\dot{q}_1, \dot{q}_2, \dot{q}_3, \dot{q}_4, \dot{q}_5, \dot{q}_6]^T \quad \text{[joint velocities, rad/s]} \end{aligned}$$ ODE: $$M(q) \ddot{q} + C(q, \dot{q}) \dot{q} + g(q) + F(\dot{q}) = \tau$$ Where: $$\begin{aligned} M(q) &= \text{inertia matrix (6}\times\text{6, symmetric, positive definite)} \\ C(q, \dot{q}) &= \text{Coriolis/centrifugal matrix (6}\times\text{6)} \\ g(q) &= \text{gravity torque vector (6}\times\text{1)} \\ F(\dot{q}) &= \text{friction torque vector (6}\times\text{1)} \\ \tau &= \text{motor torque vector (6}\times\text{1)} \end{aligned}$$ Inertia matrix structure: $$M(q) = \sum_i \left[ m_i J_{v,i}^T J_{v,i} + J_{\omega,i}^T R_i I_i R_i^T J_{\omega,i} \right]$$ $$\begin{aligned} m_i &= \text{mass of link } i \\ I_i &= \text{inertia tensor of link } i \text{ (3}\times\text{3)} \\ J_{v,i}, J_{\omega,i} &= \text{linear/angular velocity Jacobians} \end{aligned}$$ Friction model: $$F_i(\dot{q}_i) = \underbrace{f_{c,i} \cdot \text{sign}(\dot{q}_i)}_{\text{Coulomb}} + \underbrace{f_{v,i} \cdot \dot{q}_i}_{\text{Viscous}} + \underbrace{f_{s,i} \cdot \exp(-|\dot{q}_i|/\dot{q}_s) \cdot \text{sign}(\dot{q}_i)}_{\text{Stribeck at low speed}}$$

Unknown Parameters (30+ for 6-DOF robot)

Parameter Description Per Link Typical Uncertainty
mᵢLink mass6±5–15%
rᵢ = [rx, ry, rz]Center of mass position18±10–20 mm
Iᵢ = [Ixx, Iyy, Izz, Ixy, Ixz, Iyz]Inertia tensor36±15–30%
fc,ᵢCoulomb friction6±20–50%
fᵥ,ᵢViscous friction coefficient6±30–60%
mp, rpPayload mass and position4Unknown (changes per task)
Im,ᵢ, kg,ᵢMotor inertia, gear ratio12±5% (datasheet errors)

Parameter reduction: Not all 80+ parameters are identifiable. We use the base parameter set (lumped combinations like "inertial parameter products") reducing to 30–40 identifiable parameters via symbolic regression.

Parameter Estimation Problem

Given measurements from a robot test stand:

The inverse problem uses linear-in-parameters regression by rewriting dynamics:

Regressor formulation: $$\begin{aligned} \tau &= M(q) \ddot{q} + C(q, \dot{q}) \dot{q} + g(q) + F(\dot{q}) \\ &= Y(q, \dot{q}, \ddot{q}) \cdot \pi \end{aligned}$$ Where: $$\begin{aligned} Y(q, \dot{q}, \ddot{q}) &= \text{observation matrix (6}\times p \text{ per time step)} \\ \pi &= \text{base parameter vector (}p\times\text{1, typically } p = 30\text{–40)} \end{aligned}$$ $Y$ is constructed so dynamics are LINEAR in $\pi$: Example: $M_{11}(q) \ddot{q}_1 = [\ddot{q}_1 \cos^2(q_2) \mid \ddot{q}_1 \sin^2(q_2) \mid \ldots] \cdot [I_{zz,1} \mid m_2 L_1^2 \mid \ldots]$ Least squares solution: $$\text{Minimize: } ||\tau_{\text{meas}} - Y \cdot \pi||^2$$ Stacking $K$ time samples: $$\begin{aligned} Y_{\text{stacked}} &= [Y(t_1); Y(t_2); \ldots; Y(t_K)] \quad (6K \times p) \\ \tau_{\text{stacked}} &= [\tau(t_1); \tau(t_2); \ldots; \tau(t_K)] \quad (6K \times 1) \end{aligned}$$ Closed-form: $$\hat{\pi} = (Y^T Y)^{-1} Y^T \tau_{\text{stacked}}$$ Condition number: $\kappa(Y^T Y)$ indicates excitation quality
Identifiability key insight: Parameters are only identifiable if the trajectory "excites" them—e.g., joint 2 must accelerate at various angles q₂ to separate Izz,2 from m₃L₂². Optimal trajectories use finite Fourier series with carefully chosen frequencies.

Simulation Design

Generate test trajectories for parameter estimation:

  1. Exciting trajectory design:
    • Each joint follows: qᵢ(t) = Σ aᵢⱼ sin(ωⱼt + φᵢⱼ), where ωⱼ chosen to avoid resonances
    • Duration: 10–30 seconds per trajectory
    • Amplitude: qᵢ ∈ [qmin + 10°, qmax - 10°] to stay within workspace
    • Velocity limits: |q̇ᵢ| < 80% of max to avoid saturation
  2. Forward dynamics simulation: Integrate M(q)q̈ = τ - C(q,q̇)q̇ - g(q) - F(q̇) with true parameters
  3. Add measurement noise: Position: ±0.001 rad, torque: ±0.5 Nm
  4. Numerical differentiation: Estimate q̈(t) from noisy q̇(t) using Savitzky-Golay filter (acceleration noise amplification is a major issue)
  5. Multi-payload tests: Repeat with 3–5 different payloads (0 kg, 2 kg, 5 kg, 10 kg) to improve mass/inertia identifiability

Estimation Methods

1. Weighted Least Squares (WLS)

Closed-form solution with noise weighting:

2. Recursive Least Squares (RLS)

Online adaptation during robot operation:

At each time step $k$: $$\begin{aligned} &\text{1. Prediction error: } e_k = \tau_k - Y_k \hat{\pi}_{k-1} \\ &\text{2. Gain update: } K_k = P_{k-1} Y_k^T (Y_k P_{k-1} Y_k^T + R)^{-1} \\ &\text{3. Parameter update: } \hat{\pi}_k = \hat{\pi}_{k-1} + K_k e_k \\ &\text{4. Covariance update: } P_k = (I - K_k Y_k) P_{k-1} \\[1em] &\text{Forgetting factor: Use } \lambda = 0.98\text{–}0.995 \text{ to track time-varying friction} \end{aligned}$$

3. Extended Kalman Filter (EKF)

For joint state and parameter estimation:

4. Moving Horizon Estimation (MHE)

Constrained optimization over sliding window:

Identifiability and Trajectory Optimization

Key results from optimal experiment design:

Identifiability conditions:

Trajectory optimization: Minimize condition number κ(YᵀY) or maximize minimum singular value σₘᵢₙ(Y). Genetic algorithms or gradient-based methods design Fourier coefficients. Typical result: optimized trajectories reduce parameter uncertainty by 50–70% vs. random motion.

Validation Strategy

Validation Test Method Acceptance Criterion
Parameter recovery Synthetic data with known π_true |π̂ - π_true| / π_true < 15%
Torque prediction Predict τ on hold-out trajectory RMSE < 3% of max torque
Tracking performance Computed-torque control with π̂ vs. π_nominal Tracking error reduced by > 40%
Payload generalization Identify with mp=5kg, test with mp=8kg Torque prediction error < 5%
Repeatability 10 repeated identification experiments σ(π̂) / mean(π̂) < 10%

Control Performance Impact

Accurate parameter estimation enables advanced control:

Case study: An automotive assembly line implemented online parameter estimation for 20 robot arms. Adaptive computed-torque control reduced tracking errors from 3.2 mm to 1.1 mm, eliminated weekly retuning (saving 40 hours/month of downtime), and increased throughput by 12% by enabling more aggressive trajectories within accuracy specs.

Try ProcessLM

ProcessLM simplifies robot calibration: describe your manipulator (DH parameters, joint limits), upload test trajectory data, and it generates the regressor matrix, solves for base parameters, and validates against hold-out data—no symbolic math toolbox required.

Request Early Access