Open Source Robotics

Una raccolta curata di progetti, strumenti e software di robotica open source di alta qualità per la comunità della robotica.

System Identification

  • Detto anche: SysID, Sys ID, model identification, parameter identification
  • Categoria: Learning & autonomy › RL & simulation
  • Tag: dynamics, modeling, sim-to-real, parameter-estimation, control, simulation

Il processo di costruzione di un modello matematico di un robot o di un altro sistema dinamico a partire da dati misurati di ingresso e uscita, così che il comportamento previsto corrisponda all'hardware reale.

Definizione

Identificazione dei sistemi (system identification) è la pratica di stimare un modello di un sistema dinamico a partire da dati sperimentali. Gli ingegneri applicano ingressi noti (comandi ai motori, coppie, tensioni), registrano le uscite risultanti (posizioni e velocità dei giunti, forze) e regolano i parametri di un modello in modo che le sue previsioni corrispondano a quanto misurato. La disciplina ha una propria tradizione di manuali, con System Identification: Theory for the User di Lennart Ljung come riferimento standard.

Gli approcci vengono spesso descritti in base a quanta fisica presuppongono. L'identificazione a scatola bianca o a scatola grigia parte da equazioni note, come la dinamica dei corpi rigidi, e stima le costanti sconosciute: masse dei link, centri di massa, inerzie, coefficienti di attrito, costanti dei motori e rendimenti dei riduttori. L'identificazione a scatola nera adatta un modello generico, come una funzione di trasferimento o una rete neurale, con poca struttura a priori. Per i manipolatori seriali, la dinamica dei corpi rigidi è lineare nei parametri inerziali, quindi questi possono essere stimati ai minimi quadrati una volta costruito il regressore dalle traiettorie dei giunti misurate.

La qualità dei dati decide il risultato. L'ingresso deve essere persistentemente eccitante, cioè deve muovere il sistema abbastanza da rivelare ogni parametro stimato; un robot che si muove solo lentamente non può rivelare la sua inerzia, e uno che non inverte mai il verso nasconde il suo attrito. Per questo i team progettano traiettorie di eccitazione, filtrano le stime rumorose di velocità e accelerazione e validano il modello su dati non usati per la regressione.

Nell'apprendimento robotico, l'identificazione dei sistemi serve a calibrare i simulatori, così che una policy addestrata in simulazione trovi una corrispondenza più stretta sull'hardware reale. Si affianca alla domain randomization, che copre ciò che l'identificazione non riesce a determinare, e ai modelli residui appresi, che catturano gli effetti lasciati fuori dalla struttura di modello scelta. Alcuni controllori appresi eseguono una forma di identificazione online, adattandosi alla dinamica che osservano durante il funzionamento.

Perché è importante

Ogni controllore, simulatore e pianificatore basato su modello vale quanto il modello su cui si basa. L'identificazione dei sistemi è il modo in cui un team trasforma un modello CAD e una scheda tecnica in un modello che predice il robot reale, il che incide direttamente sulla precisione di inseguimento, sui margini di sicurezza e su quanto bene l'addestramento in simulazione si trasferisce all'hardware.

Applicazioni principali

  • Calibrazione dei simulatori fisici perché corrispondano ai robot reali prima del trasferimento sim-to-real
  • Stima dei parametri inerziali e di attrito per il controllo in feedforward e a coppia calcolata
  • Modellazione degli attuatori, comprese costanti dei motori, ritardi e limiti di coppia
  • Identificazione di massa e inerzia del carico utile affinché un manipolatore possa compensare un oggetto afferrato
  • Costruzione di modelli di sistemi soft o cedevoli i cui parametri sono difficili da calcolare a partire dai principi primi

In pratica

Un team che mette in servizio un nuovo braccio robotico di solito parte dall'URDF e dalle inerzie del CAD, poi esegue traiettorie di eccitazione su ciascun giunto o sull'intero braccio registrando posizioni dei giunti, correnti e coppie comandate. Stima l'attrito (spesso termini coulombiani più viscosi), le costanti di coppia dei motori e i parametri inerziali di base ai minimi quadrati, verifica il modello ottenuto su una traiettoria tenuta da parte e carica i valori identificati sia nei termini di feedforward del controllore sia nel simulatore. Quando si addestrano policy in simulazione, gli stessi valori identificati fissano il centro degli intervalli di domain randomization, e gli effetti degli attuatori, come la latenza o la saturazione di coppia, vengono misurati separatamente e modellati in modo esplicito.

Idee sbagliate comuni

  • L'identificazione dei sistemi produce un modello esatto — trova il miglior adattamento all'interno della struttura di modello scelta e dell'intervallo dei dati; gli effetti non modellati restano
  • Qualsiasi movimento registrato va bene come dato — gli ingressi devono eccitare ogni parametro stimato, altrimenti alcuni parametri sono semplicemente non osservabili
  • Identificazione dei sistemi e domain randomization sono approcci in concorrenza — sono complementari: l'identificazione restringe gli intervalli che la randomizzazione poi copre

Chi dovrebbe saperlo

  • Ingegneri del controllo che progettano controllori basati su modello
  • Ricercatori di apprendimento robotico che lavorano sul trasferimento sim-to-real
  • Ingegneri di simulazione che costruiscono gemelli digitali di robot fisici
  • Ingegneri hardware che caratterizzano nuovi attuatori

Tecnologie correlate

  • Domain randomization
  • Trasferimento sim-to-real (Sim-to-Real Transfer)
  • Stima ai minimi quadrati (Least Squares Estimation)
  • Filtro di Kalman (Kalman Filter)
  • Controllo adattativo (Adaptive Control)
  • Gemello digitale (Digital Twin)

Termini correlati

  • Sim2Real
  • Domain Randomization
  • Digital Twin
  • Differentiable Simulation

Progetti correlati

  • 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

Video

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

Wikipedia

  • Identificazione di sistemi dinamici

Questo sito richiede JavaScript. Attiva JavaScript per esplorare i nostri progetti di robotica open source.