Open Source Robotics

A curated collection of high-quality open source robotics projects, tools, and software to propel the robotics community forward.

System Identification

  • Also called: SysID, Sys ID, model identification, parameter identification
  • Category: Learning & autonomy › RL & simulation
  • Tags: dynamics, modeling, sim-to-real, parameter-estimation, control, simulation

The process of building a mathematical model of a robot or other dynamic system from measured input and output data, so that its predicted behavior matches the real hardware.

Definition

System identification is the practice of estimating a model of a dynamic system from experimental data. Engineers apply known inputs (motor commands, torques, voltages), record the resulting outputs (joint positions, velocities, forces), and fit the parameters of a model so that its predictions match what was measured. The field has its own textbook tradition, with Lennart Ljung's System Identification: Theory for the User as a standard reference.

Approaches are often described by how much physics they assume. White-box or grey-box identification starts from known equations, such as rigid-body dynamics, and estimates unknown constants: link masses, centers of mass, inertias, friction coefficients, motor constants and gear efficiencies. Black-box identification fits a generic model, such as a transfer function or a neural network, with little prior structure. For serial manipulators, rigid-body dynamics is linear in the inertial parameters, so these can be estimated with least squares once the regressor is built from measured joint trajectories.

Data quality decides the result. The input must be persistently exciting, meaning it moves the system enough to reveal every parameter being estimated; a robot that only moves slowly cannot reveal its inertia, and one that never reverses direction hides its friction. Teams therefore design excitation trajectories, filter noisy velocity and acceleration estimates, and validate the model on data that was not used for fitting.

In robot learning, system identification is used to calibrate simulators so that a policy trained in simulation meets a closer match on real hardware. It sits alongside domain randomization, which covers what identification cannot pin down, and alongside learned residual models, which capture effects the chosen model structure leaves out. Some learned controllers perform a form of identification online, adapting to the dynamics they observe during operation.

Why it matters

Every model-based controller, simulator and planner is only as good as the model behind it. System identification is how a team turns a CAD model and a datasheet into a model that predicts the real robot, which directly affects tracking accuracy, safety margins and how well simulated training transfers to hardware.

Key applications

  • Calibrating physics simulators to match real robots before sim-to-real transfer
  • Estimating inertial and friction parameters for feedforward and computed-torque control
  • Modeling actuators, including motor constants, delays and torque limits
  • Identifying payload mass and inertia so a manipulator can compensate for a grasped object
  • Building models of soft or compliant systems whose parameters are hard to compute from first principles

In practice

A team bringing up a new robot arm typically starts from the URDF and CAD inertias, then runs excitation trajectories on each joint or on the whole arm while logging joint positions, currents and commanded torques. They estimate friction (often Coulomb plus viscous terms), motor torque constants and the base inertial parameters with least squares, check the fitted model against a held-out trajectory, and load the identified values into both the controller's feedforward terms and the simulator. When training policies in simulation, the same identified values set the center of the domain randomization ranges, and actuator effects such as latency or torque saturation are measured separately and modeled explicitly.

Common misconceptions

  • System identification produces an exact model — it finds the best fit within the chosen model structure and the range of the data; unmodeled effects remain
  • Any recorded motion is good enough data — the inputs must excite every parameter being estimated, or some parameters are simply unobservable
  • System identification and domain randomization are competing approaches — they are complementary, with identification narrowing the ranges that randomization then covers

Who should know this

  • Control engineers designing model-based controllers
  • Robot learning researchers working on sim-to-real transfer
  • Simulation engineers building digital twins of physical robots
  • Hardware engineers characterizing new actuators

Related technologies

  • Domain Randomization
  • Sim-to-Real Transfer
  • Least Squares Estimation
  • Kalman Filter
  • Adaptive Control
  • Digital Twin

Related terms

  • Sim2Real
  • Domain Randomization
  • Digital Twin
  • Differentiable Simulation

Related projects

  • GENESIS: World's fastest physics engine: 43M FPS for embodied AI learning
  • LeRobot: HuggingFace ML library for real-world robotics in PyTorch
  • PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
  • RLinf: Scalable infrastructure for post-training foundation models via RL
  • Webots: Cross-platform robot simulator with built-in models, sensors, and development environment
  • NVIDIA Isaac Sim: NVIDIA Omniverse app for AI-driven robot simulation and testing

Videos

  • System Identification Methods: Brian Douglas
  • What Is System Identification? | System Identification, Part 1: MATLAB

Wikipedia

  • System identification

This website requires JavaScript to function properly. Please enable JavaScript to explore our collection of open source robotics projects.