In figura
è riportata l'immagine del
corridoio, e il corrispondente modello di profondità del
corridoio. Il risultato finale del modulo di stereo-visione è
riportato in figura
. La struttura globale
del sistema completo è descritta nella figura
.
Figure: Immagine del corridoio e corrispodente immagine di
disparità del modello del corridoio, calcolata dai dati sonar.
Nell'immagine di disparità i punti chiari corrispondono a
disparità grandi, quindi a oggetti vicini
all'osservatore. Viceversa, i punti scuri corrispondono a oggetti
lontani.
Figure: Immagini di disparità del corridoio. Sopra, l'immagine
ottenuta dall'algoritmo di stereo senza fare uso del modello, sotto
l'immagine ottenuta facendo uso del modello. Nell'immagine di
disparità i punti chiari corrispondono a disparità grandi,
quindi a oggetti vicini all'osservatore. Viceversa, i punti scuri
coorispondono a oggetti lontani. Si noti come l'introduzione del
modello permetta di ricostruire la struttura delle pareti.
Figure: Il sistema completo, dalle immagini del corridoio alla
generazione dell'immagine di disparità
La realizzazione software del sistema è costituita da un insieme
di classi in linguaggio Sather. In accordo con il metodo di
progettazione del software orientato agli oggetti, ogni classe
realizza un ``oggetto'', cioè una componente software discreta e
autonoma. Gli oggetti raccolgono in un insieme uniforme i dati che
rappresentano un oggetto reale. Lo schema delle classi del sistema di
stereo-visione è riportato in figura
. Il
sistema si compone delle seguenti classi, indicate con nomi in
maiuscolo, secondo le convenzioni di Sather:
Figure: Flusso dei dati tra le classi che compongono il sistema di
stereovisione. Le frecce indicano la direzione dei flussi di dati
nella struttura del sistema.
Il sistema è progettato in modo da poter funzionare sia direttamente sul robot, sia su sequenze registrate. Solo le tre classi inferiori, ROBOT, SONAR_LOW, FRAMEGRABBER, variano nei due casi: nel caso del funzionamento sul robot si occupano dell'interazione con i devices del robot; nel caso del funzionamento su sequenze registrate leggono i dati dal disco. Le altre classi funzionano in modo del tutto identico in entrambe le situazioni.