Una rapida introduzione:
Stiamo sviluppando un sistema di posizionamento che funziona come segue. La nostra fotocamera è situata su un robot ed è rivolta verso l'alto (guardando il soffitto). Sul soffitto abbiamo qualcosa come punti di riferimento, grazie ai quali possiamo calcolare la posizione del robot. Ecco come si presenta:Correzione programmatica dell'inclinazione della telecamera in un sistema di posizionamento
Il nostro problema:
La fotocamera è inclinata un po '(0-4 gradi credo), perché la superficie del robot non è perfettamente uniforme. Ciò significa che quando il robot gira ma rimane con le stesse coordinate, la telecamera guarda una posizione diversa sul soffitto e quindi il nostro programma di posizionamento produce una posizione diversa del robot, anche se si è girato e non è stato spostato po.
La nostra soluzione attuale (hardcoded):
Abbiamo scattato alcune foto di prova dalla fotocamera, ruotandola attorno all'asse dell'obiettivo. Dalle immagini abbiamo dedotto che è inclinato di ca. 4 gradi nella "direzione verso l'alto" dell'immagine. Utilizzando alcune semplici trasformazioni geometriche siamo riusciti a ridurre l'effetto di inclinazione e trovare la posizione reale della telecamera. Nelle immagini seguenti il punto grigio indica il centro dell'immagine, il punto nero è il vero punto sul soffitto al di sotto del quale è posizionata la fotocamera. Il punto nero è stato trasformato dal punto grigio (la sua posizione è stata calcolata correggendo la posizione del punto grigio). Come puoi facilmente notare, i punti grigi formano un cerchio sul soffitto e il punto nero è il centro di questo cerchio.
Il problema con la nostra soluzione:
Il nostro approccio è completamente portabile. Se spostassimo la fotocamera su un nuovo robot, l'angolo e la direzione di inclinazione dovrebbero essere completamente ricalibrati. Pertanto abbiamo voluto lasciare all'utente la fase di calibrazione, che richiederebbe alcune immagini, valutando i parametri di inclinazione da lui e quindi impostandoli nel programma. La mia domanda è: puoi trovare una soluzione migliore (più automatica) per calcolare i parametri di inclinazione o correggere l'inclinazione sulle immagini?
Non riesci a mettere una specie di piattaforma di livellamento sotto la telecamera?Sono sicuro che ci sia una soluzione software a questo, ma probabilmente non sarà banale, potenzialmente difficile da implementare, e come saprai che funziona in tutti i casi? Il livellamento della fotocamera sembra una soluzione molto più semplice e completa. – Richard
Sì, abbiamo anche pensato a una soluzione hardware, in particolare con un occhio di bue, ma ci piacerebbe anche conoscere altre possibilità, se esistono. – Wojtek