Open Source Robotics

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

Safety Filter

  • Categoria: Control › Feedback control
  • Tag: safety, safe-control, optimization, learning-based-control, runtime-assurance

Uno strato a runtime che verifica ogni comando di un controllore nominale, di una persona o di una policy appresa e lo sostituisce con il comando più vicino che mantiene il sistema, in modo dimostrabile, all'interno di un insieme sicuro.

Definizione

Un filtro di sicurezza (safety filter) si colloca tra un controllore nominale e gli attuatori. Il controllore nominale, che può essere una legge tarata a mano, un pianificatore, un teleoperatore o una policy appresa, propone un comando u_nom. Il filtro verifica se applicarlo mantiene il sistema all'interno di un insieme di stati sicuri e, in caso contrario, lo sostituisce con un comando sicuro, di solito quello più vicino a u_nom. Quando il comando proposto è già sicuro, passa invariato. Questa separazione consente agli ingegneri di progettare il controllore nominale per le prestazioni e di imporre la sicurezza in un componente piccolo e analizzabile.

Sono comuni diverse costruzioni. I filtri basati su funzioni barriera di controllo risolvono un piccolo programma quadratico a ogni passo di controllo: minimizzare ‖u − u_nom‖² soggetto a un vincolo lineare che impedisce a una funzione barriera di diminuire troppo rapidamente, più i limiti degli attuatori. I filtri di raggiungibilità di Hamilton-Jacobi calcolano offline l'insieme degli stati da cui la sicurezza può essere mantenuta e passano a un controllore sicuro, o lo miscelano con quello nominale, quando lo stato si avvicina alla sua frontiera. I filtri di sicurezza predittivi usano il controllo predittivo basato su modello: verificano se il comando proposto può essere seguito da una traiettoria di riserva sicura su un orizzonte e, in caso contrario, lo modificano. I lavori orientati all'apprendimento usano idee strettamente correlate con nomi come shield e safety layer.

Un filtro di sicurezza è valido solo quanto il modello e la stima dello stato su cui si basa. Errori di modello, ritardi, saturazione degli attuatori ed errori di percezione possono tutti invalidare la garanzia, perciò le varianti robuste restringono i vincoli in base ai limiti di questi errori, per esempio per tenere conto di stime dello stato prodotte da una percezione appresa. I filtri possono anche causare comportamenti indesiderati, come un robot che si ferma vicino a un ostacolo quando l'obiettivo nominale si trova dietro di esso, perché agiscono localmente e non ripianificano. La voce funzione barriera di controllo descrive il certificato in sé; il filtro di sicurezza è l'architettura a runtime che usa tale certificato, o un insieme raggiungibile o una verifica predittiva, per modificare i comandi.

Perché è importante

Le policy apprese e gli operatori umani non hanno garanzie di sicurezza, e riaddestrarli perché siano sicuri in ogni situazione è raramente pratico. Un filtro di sicurezza aggiunge uno strato verificabile che impone limiti come la prevenzione delle collisioni, i limiti dei giunti o i geofence indipendentemente da ciò che fa il controllore nominale, il che lo rende uno schema comune per impiegare il controllo basato sull'apprendimento su robot reali.

Applicazioni principali

  • Prevenzione delle collisioni attorno a controllori appresi o teleoperati
  • Imposizione di limiti dei giunti, di velocità e dello spazio di lavoro sui manipolatori
  • Geofencing ed evitamento degli ostacoli per i droni
  • Esplorazione sicura durante l'apprendimento per rinforzo sull'hardware
  • Autonomia condivisa, in cui un comando umano viene corretto in misura minima

In pratica

Un gruppo impiega una policy di apprendimento per rinforzo su un robot mobile in un laboratorio con persone. La avvolge in un filtro di sicurezza basato su CBF: per ogni ostacolo vicino, la funzione barriera è la distanza meno un margine, e un programma quadratico eseguito alla frequenza di controllo trova il comando di velocità più vicino all'uscita della policy che soddisfa tutti i vincoli di barriera e i limiti di velocità del robot. Poiché le posizioni degli ostacoli provengono da un rilevatore appreso con limiti di errore noti, il gruppo allarga il margine di tale limite. Durante i test registra quanto spesso e con quale intensità interviene il filtro, il che mostra dove la policy stessa ha bisogno di più addestramento.

Idee sbagliate comuni

  • Un filtro di sicurezza rende sicuro qualsiasi controllore — la sua garanzia dipende dalla correttezza del modello, della stima dello stato e dei limiti degli attuatori; gli errori in questi elementi devono essere limitati e tenuti in conto
  • Un filtro di sicurezza sostituisce la pianificazione — modifica i comandi localmente e può lasciare il robot bloccato o in stallo; serve ancora un pianificatore per raggiungere gli obiettivi
  • Filtro di sicurezza e funzione barriera di controllo sono la stessa cosa — una CBF è un tipo di certificato; i filtri possono essere costruiti anche a partire da insiemi raggiungibili o da traiettorie di riserva predittive

Chi dovrebbe saperlo

  • Ingegneri del controllo che impiegano controllori basati sull'apprendimento
  • Ingegneri della sicurezza per robot mobili e droni
  • Ricercatori di apprendimento per rinforzo che lavorano sull'esplorazione sicura
  • Sviluppatori di teleoperazione e autonomia condivisa

Tecnologie correlate

  • Programmazione quadratica (Quadratic Programming)
  • OSQP
  • Raggiungibilità di Hamilton-Jacobi (Hamilton-Jacobi Reachability)
  • Filtro di sicurezza predittivo (Predictive Safety Filter)
  • Shielding

Termini correlati

  • Control Barrier Function
  • Hamilton-Jacobi-Bellman Equation (HJB)
  • Model Predictive Control
  • Region of attraction
  • Obstacle Avoidance
  • Reinforcement Learning

Progetti correlati

  • Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
  • GTSAM: Factor-graph optimization library powering many modern SLAM backends
  • PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization
  • NeuPAN: Real-time end-to-end planner that maps raw lidar points directly to robot actions
  • OpEn (Optimization Engine): Embedded nonconvex optimization solver in Rust for real-time MPC on robots
  • ProxSuite: High-performance QP/LP solver for robotics control and optimization

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