In che modo gli algoritmi SLAM gestiscono un ambiente in evoluzione?


13

Sto facendo alcune basi per un progetto e ho una domanda sullo stato attuale delle tecniche SLAM.

Quando un dispositivo dotato di SLAM rileva un oggetto, la sua posizione viene memorizzata. Se osservi la nuvola di punti generata dal dispositivo, vedrai i punti per questo oggetto e qui i modelli generati includeranno la geometria.

Se un oggetto viene posizionato in uno spazio precedentemente vuoto, viene rilevato e vengono aggiunti punti. I modelli successivi presenteranno la geometria che descrive questo nuovo oggetto.

Come reagisce il dispositivo se l'oggetto viene rimosso? Per quanto ho visto, i sistemi SLAM tenderanno a lasciare i punti sul posto, risultando in una geometria "fantasma". Esistono algoritmi che ignoreranno i punti solitari causati da contatti transitori, ma gli oggetti che sono rimasti abbastanza a lungo per costruire un modello solido rimarranno nella memoria del dispositivo. Esistono sistemi in grado di rilevare che lo spazio precedentemente occupato è ora vuoto?


Questa domanda non ha molto a che fare con l'apprendimento automatico.
Josh Vander Hook,

Forse no; Non ero sicuro al 100% di quali tag si sarebbero adattati. L'applicazione che ho in mente sembrava adattarsi, ma forse senza quel contesto è meno applicabile ...
anaximander

Risposte:


5

Dipende molto. Poiché SLAM è un problema (o almeno una tecnica), non una soluzione, non esiste un algoritmo SLAM definitivo. Semanticamente, devi decidere cosa succede su una "mappa" dell'ambiente e questo determina come il tuo algoritmo dovrebbe gestire segnali transitori (ovvero in movimento). Ma questa è una digressione.

Mappe permanenti:

Le mappe permanenti dovrebbero contenere informazioni sufficienti per localizzarti rispetto alla geometria nota. Tipicamente utilizzato negli edifici. In genere leggibile dall'uomo. Vedi il lavoro di Willow-Garage. o qualsiasi altra cosa di Thrun nel suo libro di testo piuttosto famoso. Se perdi questa mappa, devi ricostruirla nel tempo.

  1. Rimozione di oggetti. Sì, l'oggetto apparirà in una mappa statica per un certo periodo. Se non vengono prese misure per rimuovere oggetti rilevati in precedenza, allora persisterà. Una tipica rappresentazione 2D basata su griglia utilizzerà ciascuna cella della griglia per rappresentare la probabilità di un oggetto, quindi dopo un certo tempo l'oggetto "sbiadirà".

  2. Aggiunta di oggetti Come sopra.

Mappe locali:

In realtà, SLAM viene solitamente utilizzato per localizzare un robot mentre si muove e la mappa non viene mantenuta in modo permanente (o, viene mantenuta in modo permanente, ma vengono utilizzate solo le funzionalità Y più vicine). Le mappe locali sono tutto ciò che il robot deve sapere per determinare come si è spostato negli ultimi X minuti, dove X dipende dall'applicazione. Se perdi la mappa, puoi comunque volare bene usando qualunque funzionalità sia in vista in questo momento.

  1. I metodi batch come la regolazione del pacchetto utilizzando le funzionalità visive sono una tecnica molto comune in questa direzione. Le funzionalità possono essere mantenute nel tempo e persino rivisitate, ma una funzionalità in movimento è solo una funzione inaffidabile e verrà ignorata quando si cerca di capire dove si trova il robot.

  2. Visual SLAM è esattamente questo. È uno stimatore delta-P (change in pose), non un algoritmo di localizzazione basato su mappa.

  3. In breve, fintanto che la maggior parte delle cose non si sta muovendo, non importa se si rimuove un oggetto quando il robot non lo "guarda".

Esempio

Quindi fai questo. Quando leggi un documento SLAM, decidi quanto segue:

  1. Stanno davvero costruendo una mappa?

  2. Stanno solo tenendo un elenco di funzionalità e posizioni?

  3. In tal caso, quali "caratteristiche" vanno nella mappa? Linee, punti, caratteristiche visive?

  4. È probabile che queste funzioni si spostino?

  5. In tal caso, come possono gestirlo?

  6. Infine, il rumore del sensore spesso "sembra" simile a funzioni in movimento. Come gestiscono il rumore del sensore? Perché questo determinerà spesso cosa succede alle funzioni in movimento.

Riceverai una risposta diversa per ogni articolo / autore / libro / domanda. In breve, sono in genere omessi poiché non aiutano molto la localizzazione del robot e possono essere evitati semplicemente avendo un pianificatore di percorso di basso livello che utilizza solo informazioni locali.

Buona fortuna, lo slam è un argomento enorme.


Grazie! Conosci qualche tecnica che tiene traccia di dove gli oggetti sono stati "acquisiti" e "persi"? Sto esaminando le applicazioni di un sottoinsieme di algoritmi di tipo SLAM e un'area di interesse è l'identificazione di aree di "transizione" come porte e angoli occlusi da cui potrebbero apparire gli oggetti. Questa applicazione trasforma la solita metrica di probabilità di dissolvenza in testa - invece di avere gli oggetti "sbiaditi" quando fuori dalla vista, le aree non osservate aumentano lentamente il loro valore per indicare che non sappiamo cosa c'è qui perché non abbiamo guardato di recente, quindi abbiamo dovrebbe essere cauto quando ci si sposta in questo spazio.
anaximander

Molto più difficile. L'unico modo per farlo correttamente è identificare in modo univoco gli oggetti. Metti un codice a barre su di loro. In caso contrario, l'oggetto A potrebbe essere spostato nella posizione B, o forse A e B scambiati, ecc. Leggi la mappatura semantica. Hai bisogno di un algoritmo in grado di "riconoscere" che le cose in movimento sono in realtà "porte" che dovrebbero essere attaccate a "muri" ma solo quando sono "dentro" ma cosa significa "dentro" per un robot? Penso che dovresti leggere di più e riferire.
Josh Vander Hook,

Sì, l'idea qui è di eludere il problema della semantica semplicemente evidenziando "questa è un'area in cui continuo a vedere cose che prima non c'erano, o smetto di vedere cose che erano lì". È probabile che questa zona sia una sorta di transizione: porta, scatola, finestra, angolo occluso. Di chi abbiamo a che fare è meno importante; questo è puramente per evitare le collisioni, quindi vogliamo evitare tutte queste aree. Allo stesso modo, non abbiamo particolarmente bisogno di sapere quale oggetto è quale; solo che c'è un cambiamento significativo nella quantità complessiva di spazio occupato da Stuff.
anaximander

Revisione. Letteratura. Un simile problema sorge da A) Stuff moving. B) robot in movimento. C) Il robot si perde. D) mappe errate. Ognuna di queste 4 cose ha 4 diverse soluzioni corrette. Se non gestisci tutti e 4, costruirai mappe completamente errate. Questo è il motivo per cui SLAM non è risolto, e ancora difficile. Leggi e torna con domande specifiche relative a ciò che hai imparato.
Josh Vander Hook,

1
È quello che sto facendo; più leggo, più lunga diventa la mia lista di cose da leggere! Questa è stata la prima delle molte domande che la mia lettura ha sollevato. Si scusa per l'estensione della domanda in qualche modo nei commenti; Non ho ricevuto molte risposte, e SLAM è un argomento così grande ... sembravi sapere di cosa stai parlando, quindi speravo di ottenere qualche suggerimento. Ho dei documenti di mappatura semantica nella mia lista, ma ce ne sono alcuni che devo leggere come base per questo ... Comunque, suppongo che sia tornato alla lettura per ora.
anaximander
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.