Motion Primitive
- Detto anche: movement primitive, motor primitive, action primitive, skill primitive
- Categoria: Planning & manipulation › Motion planning
- Tag: motion-planning, manipulation, skills, learning-from-demonstration, task-planning
Un blocco riutilizzabile del movimento di un robot, come un'abilità parametrizzata (spostarsi a una posa, aprire la pinza) o un breve segmento di traiettoria, che pianificatori e policy combinano in comportamenti più lunghi.
Definizione
Primitive di movimento (motion primitives) scompongono il comportamento di un robot in unità riutilizzabili che si possono concatenare. Invece di pianificare o apprendere ogni movimento al livello dei comandi ai giunti, un sistema richiama una primitiva con pochi parametri, come una posa target, un'apertura della pinza o una direzione di spinta, e la primitiva produce il movimento dettagliato. Il termine copre diverse idee affini, che differiscono per come la primitiva è rappresentata e per ciò che sceglie tra le primitive.
Nella manipolazione e pianificazione dei compiti, le primitive sono abilità parametrizzate: spostarsi a una posa, afferrare, posare, spingere, versare, aprire o chiudere la pinza. Pianificatori di compiti, behavior tree o modelli linguistici scelgono una sequenza e completano i parametri; diversi sistemi recenti fanno scrivere a un modello linguistico un breve programma che chiama tali funzioni. Nella pianificazione del movimento, le primitive sono brevi segmenti di traiettoria precalcolati che rispettano la dinamica di un veicolo, e i pianificatori a reticolo (lattice planner) li uniscono su una griglia regolare di stati per cercare percorsi ammissibili per auto, robot mobili e droni. Nell'apprendimento da dimostrazione, le primitive di movimento sono modelli di traiettoria appresi da esempi che possono essere adattati: le dynamic movement primitives (DMP), sviluppate da Ijspeert, Nakanishi e Schaal, codificano una dimostrazione come un sistema dinamico stabile con un termine forzante appreso, così che inizio e obiettivo possano cambiare, mentre le probabilistic movement primitives (ProMP) rappresentano una distribuzione sulle traiettorie.
Il compromesso centrale è tra struttura e portata. Una libreria fissa rende il comportamento prevedibile, verificabile e rapido da pianificare, poiché il pianificatore cerca tra poche scelte discrete e i loro parametri. Al tempo stesso limita il robot a ciò che la libreria può esprimere: movimenti ricchi di contatti, reattivi o strettamente coordinati possono richiedere primitive con retroazione integrata, oppure policy apprese. Scegliere la granularità delle primitive è quindi una decisione progettuale a pieno titolo.
Perché è importante
Le primitive di movimento rendono trattabili i compiti a lungo orizzonte per pianificatori e modelli linguistici, fornendo loro un piccolo insieme di azioni collaudate. Separano le decisioni di alto livello dal controllo di basso livello, così che ogni strato possa essere sviluppato e verificato separatamente.
Applicazioni principali
- Manipolazione guidata da pianificatori di compiti o modelli linguistici
- Pianificazione del movimento a reticolo per veicoli e droni
- Apprendimento da dimostrazione con dynamic movement primitives
- Behavior tree che richiamano abilità riutilizzabili
- Riposizionamento su scaffali, imballaggio e assemblaggio a lungo orizzonte
In pratica
Un team che costruisce un sistema per riporre oggetti sugli scaffali definisce una libreria di primitive come spingere, spazzare, inserire e afferrare e posare, ciascuna implementata come un breve controllore con parametri come punto di contatto, direzione e distanza, e ciascuna con precondizioni verificate prima dell'esecuzione e condizioni di terminazione su forza o posizione. Un modello appreso predice come si muovono gli oggetti sotto ogni primitiva parametrizzata, un pianificatore cerca tra sequenze e parametri, e il robot esegue il primo passo e ripianifica. Su un drone, la stessa idea compare come una libreria di brevi traiettorie polinomiali campionate sulle velocità finali e verificate rispetto alla mappa degli ostacoli a ogni ciclo di pianificazione.
Idee sbagliate comuni
- Una primitiva di movimento è sempre una traiettoria fissa e codificata a mano — molte sono parametrizzate o includono retroazione, e le DMP si adattano a nuovi obiettivi durante l'esecuzione
- Usare primitive significa rinunciare all'apprendimento — le primitive vengono spesso apprese da dimostrazioni, e si usano modelli appresi per sceglierle e parametrizzarle
- Qualsiasi compito si può risolvere con una libreria abbastanza grande — i compiti che richiedono un contatto reattivo continuo possono uscire da ciò che le primitive discrete esprimono, e la libreria stessa va progettata e mantenuta
Chi dovrebbe saperlo
- Ingegneri di manipolazione che costruiscono librerie di abilità
- Ingegneri di pianificazione del movimento che lavorano con pianificatori a reticolo
- Ricercatori di robot learning che lavorano sull'apprendimento da dimostrazione
- Sviluppatori che collegano modelli linguistici o pianificatori di compiti ai robot
Tecnologie correlate
- Dynamic Movement Primitives (DMP)
- Probabilistic Movement Primitives (ProMP)
- Pianificatore a reticolo di stati (State Lattice Planner)
- Behavior Trees
- Pianificazione dei compiti e pianificazione del movimento (Task and Motion Planning)
- Librerie di abilità (Skill Libraries)
Termini correlati
- Motion Planning
- Trajectory Planning
- Task and Motion Planning
- Task Planning
- Imitation Learning
- Behavior Tree
Progetti correlati
- LeRobot: HuggingFace ML library for real-world robotics in PyTorch
- Isaac Lab: NVIDIA robot learning framework: one task API across Newton, PhysX and Isaac Sim
- NVIDIA Isaac GR00T: NVIDIA open foundation model for humanoid robot reasoning and skills
- OpenVLA: 7B-parameter Vision-Language-Action model for robotic manipulation
- BehaviorTree.CPP: C++ behavior tree library for robot task planning, powering Nav2 and ROS 2 systems
- Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design