Calibrare uno scanner 2d montato su un asse rotante


9

Uno scanner laser 2d è montato su un asse rotante. Vorrei determinare la matrice di trasformazione dal centro dell'asse al centro dello scanner, usando solo l'input dallo scanner e l'angolo di rotazione.

inserisci qui la descrizione dell'immagine

Si presume che lo scanner 2d stesso sia calibrato, misurerà accuratamente la posizione di qualsiasi oggetto all'interno del piano del laser, rispetto all'origine dello scanner.

Anche l'asse rotante è calibrato, misurerà accuratamente l'angolo del proprio movimento.

Lo scanner è allineato e montato vicino al centro di rotazione, ma l'offset esatto non è noto e potrebbe spostarsi nel tempo.

Supponiamo che non sia pratico misurare direttamente la posizione e l'orientamento dello scanner. Sto cercando un modo per determinare i valori esatti per i 6 gradi di offset che lo scanner potrebbe avere in relazione all'asse, determinato esclusivamente dalle informazioni 2d dallo scanner e dall'angolo di rotazione dall'asse.

inserisci qui la descrizione dell'immagine

Sono principalmente interessato ai 4 offset qui rappresentati, poiché gli altri due non contano per quanto riguarda la generazione di una nuvola di punti 3d coerente dai dati di input.

Scansionando un oggetto di calibrazione noto, dovrebbe essere possibile determinare questi offset. Quali sono le formule matematiche per questo?

Che tipo di informazioni di calibrazione sono richieste come minimo? È ad esempio possibile determinare tutti i parametri semplicemente scansionando una superficie piana, senza sapere nulla della superficie se non che è piatta?

(Anche la matrice di trasformazione dall'asse di rotazione al mondo è sconosciuta, ma è banale determinare una volta che la trasformazione dall'asse alla telecamera è nota.)


Esempio

inserisci qui la descrizione dell'immagine

A sinistra la telecamera è posizionata esattamente sull'asse di rotazione. La telecamera esegue la scansione di un oggetto planare con i punti di riferimento AB e C. In base alle misurazioni della distanza laser e all'angolo dell'asse, questo oggetto planare può essere ricostruito.

A destra, la telecamera ha un offset sconosciuto rispetto all'asse. Analizza lo stesso oggetto. Se la nuvola di punti viene costruita senza conoscere questo offset, la superficie planare viene mappata su una superficie curva.

Posso calcolare l'offset in base alla curvatura della superficie?

Se conosco le distanze e gli angoli del mondo reale tra A, B e C, come posso calcolare gli offset della fotocamera da quello? Quale sarebbe il numero minimo di punti di riferimento di cui ho bisogno per tutte e 4 le compensazioni?

Risposte:


1

Se puoi permetterti di nascondere una piccola parte del tuo campo visivo, potresti prendere in considerazione l' idea di avere un oggetto fiduciario da qualche parte in vista.

Con un oggetto fiduciale adatto, scansionandolo mentre l'asse ruota, dovresti essere in grado di calcolare i quattro offset che desideri.

Se non puoi permetterti di nascondere il tuo campo visivo durante il normale funzionamento, potrebbe essere necessario posizionare il tuo fiducial su un attuatore a sé stante, mostrandolo quando vuoi calibrarlo ed estraendolo per il normale funzionamento. L'unico problema qui è che si limita l'accuratezza della calibrazione dall'accuratezza dell'attuatore fiduciale.

Nota che se una parte del tuo campo visivo è già oscurata da un'altra parte del tuo robot, e potrebbe essere adatto da usare come fiduciale, o almeno come punto di montaggio per uno.


Il mio problema non è posizionare un oggetto fiduciario, è abbastanza semplice. Il mio problema è il calcolo degli offset. Come dici tu, dovrebbe essere possibile calcolare i quattro offset in base a un oggetto di calibrazione, ma come? Diciamo che scannerizzo un cubo di dimensioni note. Posso facilmente vedere che i miei offset sono sbagliati se quel cubo è mappato su una nuvola di punti non planare, non rettangolare. Ma come posso ottenere gli offset corretti da quello?
HugoRune,

Grazie per il chiarimento @HugoRune: se è possibile modificare la domanda per includere queste informazioni, si spera che la prossima persona a cui rispondere sia in grado di fornire una risposta migliore. Ho sempre fatto questo tipo di calibrazione avendo già semplificato il problema fino al 2D, quindi posso solo dare consigli generali.
Mark Booth

1

Il metodo più semplice in questo caso è quello di forzare essenzialmente il problema, ma di forzarlo in modo intelligente.

Ciò di cui avrete bisogno è un insieme di dati dallo scanner mentre sta eseguendo la scansione di un oggetto, preferibilmente un oggetto matematicamente semplice come un cubo o una sfera e l'esatta posizione di offset o offset di quell'oggetto rispetto al montaggio di questo scanner.

Se si dispone di queste due informazioni, il trucco successivo consiste essenzialmente nel testare varie combinazioni di offset dello scanner (che normalmente definirei valori di calibrazione) fino a quando non si trovano offset che fanno sì che i dati dello scanner rappresentino accuratamente l'oggetto. Per questo puoi indovinare casualmente valori che possono prendere per sempre e non arrivare ovunque (ma in teoria alla fine ti darebbe la risposta giusta) oppure puoi usare un metodo di ottimizzazione

Per utilizzare un metodo di ottimizzazione è necessario sviluppare una sorta di metrica per stabilire se un determinato set di offset funziona meglio di un altro set. Quindi qualsiasi metodo di ottimizzazione che stai usando utilizzerà quel punteggio per dire se regolare i valori in una determinata direzione. Alla fine si accontenterà di un particolare insieme di valori che sembrano funzionare meglio.

Questa è una descrizione piuttosto breve e scadente di un argomento molto approfondito, ma spero che ti induca in una direzione. Se desideri una descrizione più dettagliata di qualsiasi cosa, lascia un commento.

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.