Learn robot system identification through experiments
A robot can work well in simulation and behave differently on hardware. System identification helps us learn from experimental data, improve the model, and test whether it can predict new motions.
Start with one rotating joint, then work toward actuators, robot structures, and hardware experiments. See why models make errors, how data can improve them, and how to evaluate the result.
For robotics engineers who can read a time-series plot. You can read the lessons without installing software; L0, L0-E and L1 include local reproduction instructions; the other L pages are design drafts.
Start here
Understand why identification is useful, learn the quantities in an experiment, then study a joint. These three lessons take you from the question to your first validation.
- K0
Why identification matters
See an inaccurate model and understand the problem we want to solve.
- K1
Understand the first experiment
Learn the inputs, states, observations, and parameters in a simple experiment.
- L0
Complete your first identification
Estimate joint inertia and damping, then check predictions on a new motion.
Already familiar with these ideas? Open L0 or continue to L1 · Command delay and friction.
How to combine K and L lessons
K0–K8 organize knowledge by topic; L0–L6 increase experiment complexity. Their numbers do not pair one to one. Follow the experiments, add knowledge when needed, and revisit it with your results.
Formal pages cover K0–K8, L0, L0-E, L1, L1-O, L1-S, and L2–L6, with different delivery classes and evidence states. The sequence below is a recommendation for the full course; hardware lessons remain outside this rollout.
- 01
K0 → K1 → L0 · Complete your first identification
Understand the question and basic quantities, then use inertia and damping to complete a small cycle of experiment design, fitting, and validation.
- 02
K4 → K5 → K6 → L0-E · Understand the method
Revisit L0, then compare inputs in L0-E to understand when parameters can be separated, how fitting works, and why predictions need a new motion for validation.
- 03
K2 → K3 → L1 → L1-O · Actuators and observations
Read the dynamics and command-to-torque basics, then study delay and friction in L1 and observation noise in L1-O. Torque saturation in L1-S is an elective branch.
- 04
K7 → L2 → L3 · Understand coupling and contact
Distinguish physical parameters from effective values that compensate for errors. Revisit coupling and contact in K2, validating the free-space model before adding contact.
- 05
K8 → L4 → L5 · Scale to a complete robot
Use K8 to distinguish prediction from downstream performance. Compare fitting routes and test control outcomes in L4, then study sharing in L5. Reuse K4–K7 for diagnosis.
- 06
L6 · From structural mismatch to cross-engine prediction
Return to a small plant, isolate structural mismatch, then test predictions across genuinely different simulators. Revisit uncertainty in K8. L6 is accessible after L4; L5 is not required.
This is a suggested sequence. Each lesson also lists necessary prerequisites, which equivalent experience can satisfy. Reuse experiment design, fitting, and validation from K4–K6 throughout. See the curriculum design for dependencies and extensions.
All lessons
Knowledge lessons explain the ideas, synthetic experiments let you test them, and hardware experiments apply the method to physical systems. Browse the categories below by topic, or follow the combined reading order for a study sequence. Formal pages are classified as Reading, Concept, Runnable, or Design draft; publication does not certify an experiment or video delivery. Hardware lessons marked “Coming later” remain outside this rollout.
See evidence and video status for all 19 lessons
Knowledge
Learn the ideas you need to design experiments and interpret their results.
- K0Why system identification mattersSee why a plausible model can make poor predictions and how to check an improvementConcept
- K1System identification fundamentalsDistinguish inputs, states, observations, and parameters before your first experimentReading
- K2Robot dynamicsUnderstand how inertia, gravity, coupling, and contact affect motionConcept
- K3Actuator modelsFollow the path from a control command to applied torqueConcept
- K4Design an identification experimentChoose inputs and measurements that reveal the parameter effectsConcept
- K5Estimate model parametersLearn how fitting works and how to examine its resultConcept
- K6Test model predictionsUse new experiments and residuals to test where a model worksConcept
- K7Interpret fitted parametersAsk whether fitted values represent physical properties or compensate for errorsConcept
- K8Use models for control and transferUse identification results to inform control design and policy trainingConcept
Synthetic experiments
Start with a simple joint and work toward actuators and complete robots.
- L0Estimate inertia and dampingFit two parameters from motion data, then predict a new motion; read L0-E for excitation limitsRunnable
- L0-EHow excitation constrains parametersCompare slow and chirp inputs with coverage, sensitivity and held-out evidenceRunnable
- L1Actuator delay and frictionSeparate timing error from resisting-torque mismatch; continue to L1-O or elective L1-SRunnable
- L1-OObservation noiseExperiment contract written; numerical run and report pendingDesign draft
- L1-STorque saturation (elective)Saturation contract written; numerical run and report pendingDesign draft
- L2A fixed-base legSeparate actuator and link-model errors when joints are coupledDesign draft
- L3Add ground contactStudy how foot contact changes a model checked in free spaceDesign draft
- L4The complete MicroduckCompare fitting components first with fitting the whole robot directlyDesign draft
- L5The Microban humanoidExplore when similar joints can share parametersDesign draft
- L6Test across simulatorsTest what a model can predict when it cannot exactly match the systemDesign draft
Hardware experiments
Apply the method to physical measurements and validation.
- H0An actuator test benchCalibrate sensors, record timing, and check measurement errorsComing later
- H1Microduck / MicrobanEvaluate physical robot models with component and whole-robot experimentsComing later
- H2A full humanoidBuild a reproducible process for data collection, identification, and hardware evaluationComing later
How an identification experiment works
Choose the properties you want to understand, then design an experiment and record data. After fitting the model, check its predictions using observations that were withheld from fitting.
01Choose a questionChoose the input, observations, and unknown parameters02Design the experimentUse motion that reveals the parameter effects03Record dataRecord input and motion; check units and timing04Fit the modelAdjust parameters to approach the observations05Test predictionsCheck data that was withheld from fitting06Examine errorsLook for patterns that guide the next experiment