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:
- Kinetic energy: T = ½ q̇ᵀ M(q) q̇, where M(q) is the n×n inertia matrix (configuration-dependent)
- Potential energy: U = Σ mᵢ g·rᵢ(q), gravity effects depend on link positions
- Coriolis and centrifugal forces: C(q, q̇) captures velocity-dependent coupling between joints
- Friction: Coulomb (sign-dependent), viscous (velocity-proportional), and Stribeck effects at low speeds
- Actuation: Motor torques τ transmitted through gearboxes with inertia and elasticity
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 mass | 6 | ±5–15% |
| rᵢ = [rx, ry, rz] | Center of mass position | 18 | ±10–20 mm |
| Iᵢ = [Ixx, Iyy, Izz, Ixy, Ixz, Iyz] | Inertia tensor | 36 | ±15–30% |
| fc,ᵢ | Coulomb friction | 6 | ±20–50% |
| fᵥ,ᵢ | Viscous friction coefficient | 6 | ±30–60% |
| mp, rp | Payload mass and position | 4 | Unknown (changes per task) |
| Im,ᵢ, kg,ᵢ | Motor inertia, gear ratio | 12 | ±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:
- Joint encoders: Position q(t), velocity q̇(t) [1 kHz, ±0.001 rad resolution]
- Motor current: Measured current Iₘ(t) → torque τ(t) via kt·Iₘ [1 kHz, ±2% after calibration]
- Optional: Force/torque sensor at end-effector [300 Hz, ±0.5 N resolution]
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:
- 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
- Forward dynamics simulation: Integrate M(q)q̈ = τ - C(q,q̇)q̇ - g(q) - F(q̇) with true parameters
- Add measurement noise: Position: ±0.001 rad, torque: ±0.5 Nm
- Numerical differentiation: Estimate q̈(t) from noisy q̇(t) using Savitzky-Golay filter (acceleration noise amplification is a major issue)
- 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:
- Weight matrix W: higher weight for high-torque samples (better signal-to-noise ratio)
- Solution: π̂ = (YᵀWY)⁻¹ YᵀW τ
- Regularization: Add λ||π - π_prior||² to prevent overfitting when κ(YᵀWY) > 1000
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:
- Augmented state: x = [q, q̇, π]
- Handles nonlinear dynamics and non-Gaussian noise
- Process noise Q models parameter drift (friction wear, temperature effects)
4. Moving Horizon Estimation (MHE)
Constrained optimization over sliding window:
- Enforces physical constraints: mᵢ > 0, Iᵢ positive definite, friction monotonicity
- Window size: 2–5 seconds (balance lag vs. computational cost)
- Recommended for high-precision applications (surgical robotics)
Identifiability and Trajectory Optimization
Key results from optimal experiment design:
Identifiability conditions:
- Mass parameters: Require vertical motion against gravity (separate mᵢ from Iᵢ)
- Inertia tensors: Need rotational acceleration at multiple configurations (Ixx vs. Iyy vs. Izz)
- Friction: Low-speed motion (< 10% max velocity) excites Coulomb term; high-speed excites viscous term
- Payload: Identifiable if end-effector undergoes large accelerations (> 2 m/s²)
- Coupling terms: Off-diagonal inertia (Ixy, Ixz, Iyz) require complex 3D motions (hardest to identify)
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:
- Computed-torque control: Feedforward cancellation of M(q)q̈_des + C + g using π̂ reduces tracking error by 40–60% vs. PID alone
- Adaptive control: RLS parameter updates during operation handle tool changes without retuning (eliminates 30-minute setup per tool swap)
- Trajectory optimization: Accurate dynamics enable time-optimal motion planning (10–20% cycle time reduction in pick-and-place)
- Collision detection: Monitor residual τ_meas - τ_predicted to detect unexpected contact (safety-critical for collaborative robots)
- Payload identification: Automatically detect part mass/position (quality control in assembly lines)
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