Integrazioni al testo dell'esercizio per rendere necessario un approccio di filtraggio non parametrico.
Al fine di introdurre nell'esercizio una sana dose di realismo (ovvero introdurre le reali stramberie prodotte dei sensori) e per esercitarsi sul filtraggio non parametrico, si consideri la presenza di fino ad altre 3 uscite sensoriali, oltre a quella relativa al target. Si ricorda che ciascuna uscita sensoriale coincide con le 4 coordinate immagine dei 2 punti P1 e P2 trovati dal sensore (sensore = l'unione dell'hardware di acquisizione immagini + il software che elabora l'immagine, segmenta l'area del robot, riconosce P1 e P2, etc. etc.).
- UscitaSensoriale1 è generata in corrispondenza al target vero.
- UscitaSensoriale2 è generata ad intermittenza casuale (ovvero ad ogni tempo, in modo casuale, è presente oppure non è presente) in corrispondenza di un target virtuale che si trova sempre in una medesima pose, diversa da quella del target vero.
- UscitaSensoriale3 è generata ad intermittenza casuale (ovvero ad ogni tempo, in modo casuale, è presente oppure non è presente) in corrispondenza di un target virtuale che si trova in una pose determinata pure in modo casuale ad ogni tempo.
- UscitaSensoriale4 rappresenta invece un caso davvero disgraziato per un problema di tracking, ma che ha però analogie con problemi reali in percezione robotica, ad esempio, nel problema di autolocalizzazione (si pensi al caso in cui siano presenti ambiguità dovute alle simmetrie nell'ambiente): UscitaSensoriale4 viene generata in corrispondenza ad un target virtuale che si trova alla partenza in una pose diversa da quella di partenza del target vero, ma che si sposta con gli stessi atti di moto del target vero. In questo modo si crea una ambiguità insolubile, dal momento che, in assenza di una accurata stima iniziale sulla pose del target (cosa che accade ad esempio, quando si ha un belief uniforme su tutto lo spazio di stato), non si ha l'informazione per discriminare il target da quello che genera UscitaSensoriale4 ovvero per capire se c'è un solo target o se ci sono 2 target. Introduciamo questo caso con lo scopo didattico di mostrare la capacità di un approccio non parametrico di gestire situazioni di belief multi-modale. Non è quindi importante che si tratti, come in questo esercizio, di una situazione in cui è a voi noto che esiste un solo target e che si osserva una ambiguità dovuta a misure "pazze" oppure che si tratti di una situazione in cui sono presenti due target reali. Del resto è del tutto corretto affermare bayesianamente che in questa situazione ci sono 2 target che si muovono dello stesso moto partendo da diverse pose di partenza.
Ad ogni tempo, in modo casuale, verrà deciso se generare UscitaSensoriale2 e poi lo stesso sarà fatto per UscitaSensoriale3. Qualora debba essere generata, il valore di UscitaSensoriale2 sarà determinato a partire sempre dalla stessa pose del target virtuale, pose decisa a caso alla partenza. UscitaSensoriale3 invece sarà determinata, qualora debba essere generata, a partire da una pose del target virtuale generata in modo causale ad ogni tempo.
In tutti i casi: non avete alcuna aspettativa a priori sulla posizione del/dei target.
Noi predisporremo un software che, come per il simulatore usato per generare i dati per la consegna su KF (singolo target), produce i dati per la consegna su PF. Il formato di ogni riga (una riga rappresenta un intervallo del tempo di simulazione) sarà: sdx, ssx, u1, v1, u2, v2 di UscitaSensoriale1, u1, v1, u2, v2 di UscitaSensoriale2, u1, v1, u2, v2 di UscitaSensoriale3, u1, v1, u2, v2 di UscitaSensoriale4. Se (u1, v1, u2, v2) di UscitaSensoriale2 o di UscitaSensoriale3 dovessero non essere presenti ci saranno dei caratteri "-" (-, -, -, -,).
Si predisponga, seguendo il template messo a disposizione, un software che, leggendo da file i dati messivi a disposizione e consentendo la modifica dei valori dei parametri, effettui la determinazione ricorsiva del belief ad ogni tempo secondo l'approccio particle filtering (o, se qualcuno lo preferisce, usando l'approccio histogram) e lo visualizzi.
Nota: nella visualizzazione del belief mediante particles non effettuerete alcuna clusterizzazione del particle set, ma vi limiterete alla visualizzazione di tutte le particles del particle set. Raccomando di mantenere coscienza del fatto che, in una applicazione reale, una stima del valore dello stato la potreste dover fornire per forze e che, se il belief non è unimodale, effettuare la media di tutte particles non ha molto senso. In questo ultimo caso, in una situazione reale, si dovrà effettuare una clusterizzazione del particle set per scoprire quale sia il cluster "più di moda" e poi calcolare la media delle particles su quel solo cluster, da fornire come uscita del sistema di filtraggio. Questo lavoro non vi viene richiesto in questo esercizio.
Si ricorda che le particles vivono nello spazio di stato (che in questo nostro caso è \( \mathbb{R}^{3} \)) e non nello spazio delle misure (che in questo nostro caso è \( \mathbb{R}^{4} \)). Quindi il particle set viene disegnato mediante un vettore, per ogni particle, che viene applicato nel punto \( (x,y) \) ed ha direzione \( \vartheta \), non da una coppia di punti \( <(u_1,v_1), (u_2,v_2)> \) uniti da una linea!