URDF
- Detto anche: Unified Robot Description Format
- Categoria: Software & tooling › Tools & formats
- Tag: robot-description, ros
Formato XML per rappresentare modelli di robot, comprese geometria e cinematica.
Definizione
Unified Robot Description Format è un formato XML che descrive un robot come un albero di link rigidi collegati da giunti. Ogni link porta tre geometrie distinte (ciò che va disegnato, ciò contro cui calcolare le collisioni e le proprietà inerziali usate dalla fisica) e ogni giunto dichiara il proprio tipo, l'asse, i limiti e la trasformazione rispetto al link padre.
È questa struttura a rendere un robot portabile tra strumenti diversi. Lo stesso file alimenta i risolutori di cinematica diretta e inversa, fornisce il controllo delle collisioni di cui ha bisogno un pianificatore del movimento, popola un simulatore e indica a un visualizzatore dove disegnare ogni parte. Senza una descrizione condivisa, ciascuno di questi strumenti avrebbe bisogno di un proprio modello della stessa macchina, e i modelli finirebbero per divergere.
Vale la pena conoscerne i limiti. URDF descrive alberi, non anelli chiusi, quindi i meccanismi paralleli come i bracci delta e i quadrilateri articolati non possono essere espressi direttamente. Non ha alcuna nozione di sensori, di materiali oltre all'aspetto o di trasmissioni, ed è per questo che nelle configurazioni pratiche viene esteso: xacro aggiunge macro e parametri per mantenere gestibili i file di grandi dimensioni, e tag specifici dei simulatori portano ciò che lo standard omette. MJCF, il formato di MuJoCo, copre in parte lo stesso ambito con il supporto alle catene chiuse e una modellazione dei contatti più ricca.
In questo catalogo, il fatto che un progetto pubblichi un URDF decide se il suo modello 3D possa essere visualizzato: per questo è un controllo di validazione e non un semplice extra.
Perché è importante
URDF è il formato di file che descrive al software la struttura fisica di un robot: link, giunti, geometria, massa e posizione di montaggio dei sensori. È importante perché è l'unica fonte di verità che simulazione, visualizzazione, cinematica e pianificazione del movimento leggono tutte. Se è corretto, MoveIt, Gazebo e RViz concordano tutti sul robot; se una dimensione è sbagliata, ognuno di loro sbaglia con sicurezza e allo stesso modo, senza nulla che segnali la discrepanza.
Applicazioni principali
- Simulazione in Gazebo, Isaac Sim e strumenti basati su MuJoCo
- Pianificazione del movimento, in cui MoveIt ne ricava la cinematica e la geometria di collisione
- Visualizzazione in RViz e nei visualizzatori web
- Risolutori di cinematica diretta e inversa, che leggono direttamente la catena dei giunti
- Gemelli digitali (digital twin), che mantengono un modello simulato allineato all'hardware
- Condivisione del progetto di un robot in una forma utilizzabile da altri strumenti
In pratica
Un URDF tipico viene generato dal CAD o scritto a mano in XML, e poi di solito racchiuso in Xacro perché le strutture ripetute, come due bracci identici, non debbano essere copiate due volte. Ogni link porta una geometria visiva per la visualizzazione, una geometria di collisione separata e volutamente semplificata per la velocità e le proprietà inerziali per la dinamica. Gli errori pratici più comuni sono una mesh di collisione lasciata uguale alla mesh visiva completa, che rende la pianificazione lentissima, e valori di inerzia che sono segnaposto dall'aria plausibile, che fanno comportare il robot simulato in modo del tutto diverso da quello reale.
Idee sbagliate comuni
- URDF descrive solo l'aspetto: contiene la geometria di collisione e le proprietà inerziali che determinano la fisica simulata
- Le mesh visive e di collisione dovrebbero coincidere: la geometria di collisione è volutamente semplificata, e usare mesh dettagliate compromette le prestazioni della pianificazione
- URDF supporta qualsiasi topologia di robot: descrive alberi, quindi gli anelli cinematici chiusi richiedono soluzioni alternative o un formato diverso
- Un URDF corretto significa un robot preciso: descrive il progetto, non il pezzo prodotto con le sue tolleranze e flessioni
Chi dovrebbe saperlo
- Chiunque porti un nuovo robot in ROS, in simulazione o in MoveIt
- Ingegneri che esportano modelli di robot dal CAD
- Sviluppatori che eseguono il debug di un robot simulato che si comporta diversamente da quello reale
- Studenti che imparano come le descrizioni dei robot alimentano l'intera catena di strumenti
- Chiunque abbia un pianificatore inaspettatamente lento o che segnala collisioni fantasma
Tecnologie correlate
- XACRO (preprocessore di macro XML per URDF)
- SDF (Simulation Description Format)
- MJCF (formato XML di MuJoCo)
- RViz
- Gazebo
- MoveIt
- ros2_control
- Albero delle trasformazioni tf2
Termini correlati
Progetti correlati
- SolidCraft: Open-source parametric 3D CAD in Rust that exports robot assemblies to URDF
- Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
- OpenMower: Open-source project converting commercial mowers into autonomous RTK-GPS guided robots
- PlotJuggler: Fast time-series visualization tool for ROS topics, rosbags, and robot debugging
- ROS 2: Next-gen Robot Operating System for real-time production robotics
- Webots: Cross-platform robot simulator with built-in models, sensors, and development environment
Video
- How do we describe a robot? With URDF!: Articulated Robotics