Open Source Robotics

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

Task and Motion Planning

  • Detto anche: TAMP, integrated task and motion planning, combined task and motion planning
  • Categoria: Planning & manipulation › Task-level
  • Tag: task-planning, motion-planning, manipulation

Pianificazione integrata che risolve congiuntamente quale sequenza di azioni eseguire e come eseguire ogni azione con movimenti del robot fattibili.

Definizione

La pianificazione di compiti e movimenti (TAMP) è un approccio di pianificazione integrato che risolve congiuntamente il problema di alto livello della pianificazione dei compiti (quale sequenza di azioni eseguire) e quello di basso livello della pianificazione del movimento (come eseguire fisicamente ogni azione) per compiti di manipolazione e di manipolazione mobile. La TAMP affronta un limite fondamentale della soluzione separata di questi problemi: un piano dei compiti che ignora la geometria può proporre azioni fisicamente impossibili, mentre un pianificatore del movimento che ignora la struttura del compito non può ragionare su obiettivi in più passaggi.

Si consideri un robot che deve prendere una tazza nascosta dietro diversi oggetti su uno scaffale ingombro. Un puro pianificatore dei compiti potrebbe proporre "prendi la tazza" senza considerare che la tazza è coperta e irraggiungibile. Un puro pianificatore del movimento non può ragionare sulla strategia di spostare prima gli oggetti che la bloccano. La TAMP alterna le due cose: propone sequenze di azioni di alto livello verificando continuamente la fattibilità geometrica, torna indietro quando un'azione risulta irrealizzabile ed esplora strategie alternative.

Tecnicamente la TAMP opera su due livelli di astrazione collegati da un ponte chiamato grounding geometrico. Il livello dei compiti usa rappresentazioni simboliche (oggetti, predicati come "on(mug, shelf)", azioni con precondizioni ed effetti) e cerca sequenze di azioni con algoritmi classici di pianificazione dell'IA. Il livello del movimento usa rappresentazioni geometriche continue (configurazioni del robot, pose degli oggetti, geometria di collisione) e calcola traiettorie, prese e posizionamenti fattibili. Lo strato di grounding geometrico genera le pose di presa, le posizioni di appoggio e i piani di movimento specifici che concretizzano ogni azione simbolica.

Tra i principali algoritmi di TAMP c'è PDDLStream, che estende il linguaggio di pianificazione PDDL con funzioni stream che generano in modo lazy valori geometrici (prese, soluzioni di IK, percorsi) su richiesta durante la ricerca. La Logic-Geometric Programming formula la TAMP come un problema combinato di ottimizzazione logica e non lineare. Gli approcci di pianificazione gerarchica scompongono il problema in livelli, ciascuno dei quali raffina il piano del livello superiore.

La ricerca moderna sulla TAMP integra l'apprendimento a più livelli: campionatori appresi che propongono prese e posizionamenti probabilmente fattibili (al posto della ricerca geometrica esaustiva), euristiche apprese che orientano la ricerca a livello dei compiti verso sequenze di azioni promettenti e foundation model che forniscono conoscenze a priori di senso comune per la manipolazione degli oggetti. La combinazione del ragionamento strutturato della TAMP con componenti apprese è una strada promettente verso robot capaci di pianificare in modo affidabile in ambienti complessi e ingombri.

Perché è importante

La TAMP è il quadro di pianificazione di cui i robot hanno bisogno per affrontare compiti di manipolazione reali che coinvolgono più oggetti, dipendenze sequenziali e vincoli fisici. Preparare un panino, caricare una lavastoviglie o riempire una scatola richiedono tutti di ragionare su che cosa fare (pianificazione dei compiti) in stretta integrazione con il come farlo (pianificazione del movimento). Nessuna delle due componenti basta da sola. La TAMP è particolarmente importante man mano che i robot entrano in ambienti non strutturati, dove i compiti non si possono predefinire e la sequenza specifica di azioni va pianificata al momento in base alla geometria della scena attuale.

Applicazioni principali

  • Manipolazione in ambienti ingombri: pianificare sequenze di riordino per raggiungere gli oggetti obiettivo su scaffali o in contenitori molto pieni
  • Pianificazione dell'assemblaggio: stabilire l'ordine di assemblaggio verificando che ogni passaggio sia geometricamente fattibile dato lo stato attuale del prodotto parzialmente assemblato
  • Compiti in cucina e domestici: compiti in più passaggi come la preparazione dei pasti, in cui ogni azione cambia la scena e vincola le azioni future
  • Logistica e pallettizzazione: pianificare disposizioni di imballaggio efficienti nello spazio e realizzabili dati i vincoli di sbraccio e di presa del robot
  • Manipolazione multi-robot: coordinare quale robot esegue quale azione e quando, con verifiche di fattibilità geometrica per ogni assegnazione
  • Robotica per l'edilizia: pianificare le sequenze di costruzione di strutture in cui ogni elemento va posato in un ordine geometricamente valido

In pratica

Il framework PDDLStream del MIT è stato usato per pianificare compiti di manipolazione complessi per un braccio Franka Panda in scenari ingombri su un tavolo. Dato un obiettivo come "metti il blocco rosso sopra il blocco blu", il pianificatore dei compiti di PDDLStream individua che vanno prima spostati gli oggetti che bloccano, poi interroga le funzioni stream per generare pose di presa candidate per ogni oggetto, soluzioni di IK per ogni presa e piani di movimento senza collisioni per ogni trasferimento. Se una presa proposta è irraggiungibile o un piano di movimento urta altri oggetti, il pianificatore torna automaticamente indietro e prova azioni alternative, per esempio spostare prima un altro oggetto che blocca o usare un diverso orientamento di presa. Il sistema gestisce scenari con 10 e più oggetti su un tavolo e produce piani di manipolazione completi in meno di 10 secondi.

Idee sbagliate comuni

  • La TAMP consiste solo nell'eseguire un pianificatore dei compiti e poi un pianificatore del movimento: l'idea chiave è l'alternanza; la fattibilità del movimento informa le decisioni a livello dei compiti, e le azioni irrealizzabili innescano il backtracking e la ripianificazione a livello dei compiti
  • La TAMP è troppo lenta per la robotica in tempo reale: la TAMP completa può essere costosa dal punto di vista computazionale, ma gli approcci moderni usano euristiche apprese e valutazione lazy per ottenere tempi di pianificazione di pochi secondi su problemi pratici
  • Gli LLM rendono obsoleta la TAMP: gli LLM forniscono utili conoscenze a priori di senso comune ma non possono verificare la fattibilità geometrica; il punto di forza della TAMP è garantire che i piani siano fisicamente eseguibili, cosa che gli LLM da soli non possono fare
  • La TAMP funziona solo con modelli del mondo perfetti: i sistemi TAMP moderni tengono conto dell'incertezza della percezione, ripianificano dopo ogni osservazione e usano la pianificazione nello spazio delle credenze per gestire l'osservabilità parziale

Chi dovrebbe saperlo

  • Ricercatori di robotica che lavorano sulla manipolazione in ambienti ingombri
  • Ingegneri della pianificazione del movimento che costruiscono sistemi per compiti in più passaggi
  • Ricercatori di IA che combinano ragionamento simbolico e calcolo geometrico
  • Ingegneri dell'automazione di magazzino che sviluppano sistemi flessibili di prelievo e imballaggio
  • Dottorandi e studenti magistrali che studiano l'intersezione tra pianificazione dell'IA e robotica

Tecnologie correlate

  • PDDLStream
  • Logic-geometric programming
  • Fast Downward
  • OMPL (pianificazione del movimento)
  • Toolbox Drake
  • Manipulation Station

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

Video

  • MIT Robotics - Florian Shkurti - Learning to Plan and Planning to Learn: MIT Robotics
  • Lecture 22: MIT 6.800 Robotics Manipulation - Task and Motion Planning: underactuated

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