1. Percezione/rilevamento: Algoritmi che consentono al robot di comprendere il suo ambiente attraverso i sensori.
* Vision per computer:
* Rilevamento di oggetti: YOLO, SSD, più veloce R-CNN, Mask R-CNN, Transformers (Detr, Deformabile Detr)-Identificazione e localizzazione di oggetti in immagini/video.
* Segmentazione delle immagini: U -Net, DeePlab - Dividendo un'immagine in regioni significative, assegnando un'etichetta a ciascun pixel.
* Rilevamento delle funzionalità e corrispondenza: Seta seta
* Struttura dal movimento (SFM): Ricostruzione della struttura 3D da una serie di immagini 2D.
* Visual Slam (localizzazione e mappatura simultanea): Orb-SLAM, DSO-SLAM-Costruire contemporaneamente una mappa dell'ambiente e determinare la posizione del robot all'interno di quella mappa usando la visione.
* Flusso ottico: Lucas -Kanade, Farneback - Stima del movimento degli oggetti e del robot stesso in base alle modifiche alle caratteristiche visive.
* Stima di profondità: Visione stereo, stima della profondità monoculare con apprendimento profondo (ad esempio, usando i trasformatori).
* Elaborazione lidar:
* Registrazione di punti cloud: ICP (punto più vicino iterativo), ransac - nuvole di punti di allineamento da più scansioni per creare un modello 3D completo.
* Riconoscimento e classificazione degli oggetti: PointNet, PointNet ++, DGCNN - Elabora direttamente i dati del cloud point per identificare e classificare gli oggetti.
* Segmentazione: Sezione di coltivazione della regione, piano piano, segmentazione delle nuvole di punti basata sull'apprendimento profondo.
* Lidar Slam: Pulsolini (odometria e mappatura del lidar), LEGO -LOAM - Simile a Visual Slam, ma usando i dati lidar.
* Mappatura della griglia di occupazione: Rappresentare l'ambiente come una griglia in cui ogni cella indica se è occupata o libera.
* Fusione del sensore: Combinando i dati di più sensori per ottenere una percezione più accurata e solida dell'ambiente.
* Filtro Kalman: Stima dello stato di un sistema (ad es. Posizione del robot e velocità) combinando dati di sensore rumorosi con un modello dinamico. Filtro Kalman esteso (EKF), il filtro Kalman non profumato (UKF) sono variazioni per i sistemi non lineari.
* Filtro bayesiano: Un framework generale per combinare conoscenza preliminare con i dati del sensore per aggiornare le credenze sull'ambiente. I filtri delle particelle sono un'implementazione specifica.
* Filtro complementare: Mescolando l'output di diversi sensori in base alle loro caratteristiche di frequenza (ad es. Utilizzo dell'accelerometro per il movimento ad alta frequenza e il giroscopio per l'orientamento a lungo termine).
2. Localizzazione e mappatura: Algoritmi che consentono al robot di conoscere la sua posizione e creare una rappresentazione di ciò che circondava. Spesso si sovrappone alla percezione.
* slam (localizzazione e mappatura simultanea): Come accennato in precedenza, sia lo slam visivo che quello lidar sono fondamentali. Gli algoritmi chiave includono:
* ekf slam: Un approccio precoce che utilizza il filtro Kalman esteso.
* Slam basato su grafici: Rappresentare la mappa come grafico in cui i nodi sono pose robot e bordi sono vincoli tra le pose. G2O, il risolutore di Ceres è biblioteche di ottimizzazione comuni.
* Slam filtro particelle (Fastslam): Utilizzando una serie di particelle (ipotesi) per rappresentare le possibili pose e mappa del robot.
* Grafici fattori: Una generalizzazione del grafico che consente una modellizzazione più flessibile di rumore e vincoli del sensore.
* solo localizzazione:
* Localizzazione Monte Carlo (MCL): Usando un filtro particella per stimare la posa del robot data una mappa nota.
* AMCL (localizzazione adattativa Monte Carlo): Un'estensione di MCL che può adattare il numero di particelle basate sull'incertezza nella posa del robot.
* GPS (sistema di posizionamento globale): Per gli ambienti esterni in cui è disponibile il segnale GPS. Spesso fuso con altri sensori.
* Mappatura:
* Mappatura della griglia di occupazione: Costruire una mappa probabilistica dell'ambiente.
* Mappatura basata sulle funzioni: Creazione di una mappa di caratteristiche salienti nell'ambiente (ad es. Angoli, bordi).
* Mappatura topologica: Rappresentare l'ambiente come grafico di luoghi e connessioni tra di loro. Utile per la navigazione di alto livello.
* Mappatura semantica: Aumentando la mappa con informazioni semantiche sugli oggetti e nei luoghi nell'ambiente (ad esempio, "cucina", "tavolo", "persona").
3. Pianificazione e navigazione: Algoritmi per determinare il percorso migliore da seguire per il robot per raggiungere un obiettivo.
* Pianificazione del percorso:
* A* Search: Un algoritmo di ricerca grafico che trova il percorso più breve dall'inizio a un obiettivo, usando un euristico per guidare la ricerca.
* Algoritmo di Dijkstra: Un altro algoritmo di ricerca del grafico che trova il percorso più breve, ma senza un euristico.
* RRT (albero casuale che esplora rapidamente): Un algoritmo che costruisce un albero di possibili percorsi campionando casualmente lo spazio di configurazione. RRT*, RRT* RRT* sono varianti che migliorano le prestazioni.
* PRM (roadmap probabilistica): Un algoritmo basato sul campionamento che costruisce una tabella di marcia dell'ambiente, che può quindi essere utilizzato per pianificare percorsi tra due punti.
* Field potenziali: Creare un campo potenziale artificiale in cui l'obiettivo è attraente e gli ostacoli sono ripugnanti. Il robot segue il gradiente del campo.
* Ottimizzazione della traiettoria: Formulare il problema della pianificazione del percorso come problema di ottimizzazione e risolverlo utilizzando tecniche come la discesa gradiente o la programmazione quadratica sequenziale. Chomp, Trajopt.
* Pianificazione del movimento: Considera le dinamiche e i vincoli del robot (ad es. Velocità, accelerazione, limiti congiunti) durante la pianificazione di un percorso. Spesso utilizza l'ottimizzazione della traiettoria.
* Navigazione:
* Controllo PID: Un algoritmo di controllo ampiamente usato per regolare il movimento del robot. Termini proporzionali, integrali, derivati.
* Controllo predittivo del modello (MPC): Una tecnica di controllo avanzata che ottimizza la traiettoria del robot su un orizzonte finito, tenendo conto delle dinamiche e dei vincoli del robot.
* Apprendimento di rinforzo: Formazione del robot per navigare in un ambiente attraverso prove ed errori. Q-Learning, Deep Q-Networks (DQN), ottimizzazione della politica prossimale (PPO). Particolarmente utile per ambienti complessi e dinamici.
* Robotica basata sul comportamento: Progettare il comportamento del robot come una raccolta di moduli reattivi che rispondono a diversi input di sensori. Architettura di subita.
* Pianificazione delle attività: Pianificazione di livello superiore che prevede la scomparsa di un compito complesso in una sequenza di azioni. Network di attività gerarchiche (HTNS).
4. Controllo: Algoritmi per l'esecuzione del percorso pianificato e il mantenimento della stabilità.
* Controllo PID: (Come accennato in precedenza, utilizzato anche in navigazione).
* FeedForward Control: Utilizzando un modello del sistema per prevedere gli input di controllo richiesti.
* Stima dello stato: (Filtri Kalman, ecc.) Stima dello stato interno del robot (posizione, velocità, ecc.) Da dati del sensore. Questo è fondamentale per il controllo del feedback.
* Controllo della forza: Controllo delle forze esercitate dal robot sull'ambiente. Controllo ibrido di posizione/forza, controllo dell'impedenza, controllo di ammissione. Importante per i compiti di manipolazione.
* Controllo adattivo: Regolazione dei parametri di controllo in tempo reale per compensare le modifiche nell'ambiente o le dinamiche del robot.
* Controllo robusto: Progettazione di controller insensibili a incertezze e disturbi.
* Controllo non lineare: Tecniche per il controllo dei robot con dinamiche non lineari. Controllo in modalità di scorrimento, in modalità di scorrimento.
5. Manipolazione: Algoritmi per afferrare, manipolare e assemblare oggetti.
* GRASPING:
* GRASP Planning: Determinare il modo migliore per cogliere un oggetto in base alla sua forma e alla pinza del robot.
* Chiusura della forza: Garantire che la presa sia stabile e possa resistere alle forze esterne.
* Grapsh di qualità Metriche: Valutazione della qualità di una presa basata su fattori come stabilità, robustezza e destrezza.
* Deep Learning per afferrare: Formazione delle reti neurali per prevedere la presa in posa direttamente da immagini o nuvole di punti. GRASPNET, dex-net.
* Pianificazione del movimento per la manipolazione:
* Pianificazione basata sul campionamento: (RRT, PRM) Pianificare il movimento del braccio del robot evitando le collisioni con l'ambiente e l'oggetto è manipolato.
* Ottimizzazione della traiettoria: Ottimizzazione della traiettoria del robot per ridurre al minimo il consumo di energia o il tempo di esecuzione.
* Controllo della forza per la manipolazione: (Come menzionato sopra)
* Pianificazione dell'Assemblea: Pianificazione della sequenza di azioni necessarie per assemblare un oggetto complesso.
* Manipolazione abile: Algoritmi per l'uso di più dita o armi per eseguire compiti di manipolazione complessi.
6. Apprendimento automatico e intelligenza artificiale:
* Apprendimento di rinforzo: (Come menzionato sopra)
* Apprendimento supervisionato: Formazione di modelli per prevedere il comportamento del robot o classificare i dati del sensore.
* Apprendimento senza supervisione: Scoprire i modelli nei dati del sensore senza esempi etichettati.
* Deep Learning: Utilizzo di reti neurali profonde per la percezione, la pianificazione e il controllo.
* IMITAZIONE APPRENDIMENTO: Formazione di un robot per imitare il comportamento di un dimostratore umano.
* Modelli generativi: Creazione di modelli in grado di generare nuovi dati (ad es. Immagini, nuvole di punti) per la simulazione o l'aumento dei dati. Gans, Vaes.
* Elaborazione del linguaggio naturale (NLP): Consentendo ai robot di comprendere e rispondere ai comandi del linguaggio naturale.
Considerazioni importanti:
* Performance in tempo reale: Molti algoritmi di robotica devono essere utili in tempo reale per essere utili.
* robustezza: Gli algoritmi devono essere robusti per il rumore, l'incertezza e i cambiamenti nell'ambiente.
* Complessità computazionale: La complessità computazionale dell'algoritmo deve essere considerata, in particolare per i robot con potenza di elaborazione limitata.
* Integrazione: Diversi algoritmi devono essere integrati insieme per creare un sistema robotico completo.
* Simulazione: La simulazione viene spesso utilizzata per sviluppare e testare gli algoritmi di robotica prima di distribuirli su robot reali. Gazebo, V-Rep/Coppeliasim, Pybullet sono ambienti di simulazione comuni.
* Framework e librerie: ROS (Robot Operating System) è un framework ampiamente utilizzato che fornisce una raccolta di strumenti e librerie per lo sviluppo di software di robotica. Sono anche essenziali OpenCV (per la visione informatica), PCL (Libreria delle nuvole di punti), Tensorflow, Pytorch (per l'apprendimento automatico).
Questo elenco non è esaustivo, ma fornisce una buona panoramica degli algoritmi chiave utilizzati in robotica. Gli algoritmi specifici utilizzati in un particolare robot dipenderanno dall'attività, dall'ambiente e dall'hardware del robot. Il campo della robotica è in costante evoluzione, quindi nuovi algoritmi e tecniche sono sempre in fase di sviluppo.
Domanda © www.354353.com