Motion Planning
- Detto anche: Path Planning, Trajectory Planning
- Categoria: Planning & manipulation › Motion planning
- Tag: planning, navigation
Algoritmi che calcolano percorsi del robot privi di collisioni dalla configurazione iniziale a quella obiettivo.
Definizione
Gli algoritmi di pianificazione del movimento calcolano percorsi privi di collisioni con cui i robot passano da una configurazione all'altra. Tra gli approcci ci sono metodi basati sul campionamento (RRT, PRM), sull'ottimizzazione (CHOMP, TrajOpt) e sull'apprendimento. È fondamentale per la navigazione autonoma e la manipolazione.
Perché è importante
La pianificazione del movimento trova un percorso da dove si trova un robot a dove deve arrivare senza urtare nulla: sé stesso, l'area di lavoro o una persona. È ciò che distingue un robot a cui si può indicare un obiettivo da uno a cui bisogna insegnare a mano ogni posizione intermedia. Il problema è davvero difficile perché lo spazio da esplorare è lo spazio di tutte le configurazioni dei giunti, che per un braccio a sei giunti ha sei dimensioni, e gli ostacoli del mondo vi diventano regioni proibite dalle forme scomode.
Applicazioni principali
- Movimento del braccio privo di collisioni in aree di lavoro ingombre
- Navigazione dei robot mobili, pianificando un percorso attraverso un ambiente mappato
- Sequenze di pick-and-place, pianificando separatamente avvicinamento, presa e allontanamento
- Coordinamento multi-robot in cui i bracci condividono un'area di lavoro
- Ripianificazione in risposta a un ostacolo appena rilevato
- Verifica di fattibilità durante la progettazione della cella, prima di impegnarsi sull'hardware
In pratica
MoveIt con un pianificatore OMPL basato sul campionamento come RRT-Connect è la soluzione standard per i bracci: campiona configurazioni casuali, ne verifica le collisioni e le collega in un percorso, poi accorcia e leviga il risultato. Il campionamento spiega il comportamento che sorprende molti: i piani non sono ripetibili, e la stessa richiesta può dare ogni volta un percorso diverso. Spiega anche il fallimento tipico: i passaggi stretti, come entrare in una scatola, vengono trovati solo per caso, quindi un pianificatore può andare in timeout su un compito che all'occhio umano è ovviamente fattibile.
Idee sbagliate comuni
- Il pianificatore trova il percorso più breve: i pianificatori a campionamento trovano un percorso valido, e la post-elaborazione si limita ad accorciarlo
- La pianificazione è deterministica: la maggior parte dei pianificatori a campionamento produce un percorso diverso a ogni esecuzione, a meno di fissare il seed
- Un piano fallito significa che l'obiettivo è irraggiungibile: spesso significa che il pianificatore non ha trovato il passaggio stretto entro il tempo a disposizione
- Il piano tiene conto della dinamica: la maggior parte dei pianificatori è geometrica, e velocità, accelerazione e carico utile vengono applicati dopo
Chi dovrebbe saperlo
- Chiunque comandi un braccio robotico verso obiettivi invece di insegnargli waypoint fissi
- Sviluppatori che configurano MoveIt, Nav2 o uno stack simile
- Ingegneri che indagano su piani che vanno in timeout o seguono percorsi strani
- Studenti che imparano lo spazio delle configurazioni e la ricerca basata sul campionamento
- Chiunque progetti una cella di lavoro in cui un braccio deve raggiungere spazi ristretti
Tecnologie correlate
- RRT e RRT* (Rapidly-exploring Random Trees)
- PRM (Probabilistic Roadmap)
- A* e algoritmo di Dijkstra
- MoveIt (framework di pianificazione del movimento per ROS)
- OMPL (Open Motion Planning Library)
- Ottimizzazione della traiettoria (TrajOpt, CHOMP)
- Rappresentazione dello spazio delle configurazioni
- Rilevamento delle collisioni (FCL, Bullet)
Termini correlati
Progetti correlati
- Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
- DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
- ROS Motion Planning: One repo implementing 40+ classic and learning-based robot path planners as ROS plugins
- MRPT: Comprehensive C++ toolkit for mobile robotics, SLAM, and sensor-based navigation
- TurtleBot3: ROS packages for TurtleBot3 — the standard educational mobile robot platform
- IR-SIM: Lightweight pure-Python 2D robot simulator for navigation, control and RL research
Video
- Path Planning with A* and RRT | Autonomous Navigation: MATLAB