Home    About me    Publications    Blog    Undergrad memories

Fabio Ruini’s blog

Because Italians do it better! What the f**k? Ehm… the blogs, I mean… obviously! :-/

Distribuzioni triangolari e pasticci in GPS

Ancora al lavoro sul codice del controller da testare sullo swinglet, oggi sono andato alla ricerca di qualche funzione che mi permettesse di estrarre valori secondo una distribuzione normale nella maniera computazionalmente piu’ efficiente possibile. Le soluzioni pronte per l’uso che ho trovato in giro per la rete (vedi un buon riassunto qui dentro) richiedevano la compilazione di un po’ di librerie da usarsi a mo’ di prerequisito e mi sono sembrate eccessive per il semplice uso che deve farne il sottoscritto. Una soluzione alternativa l’ho individuata seguendo questa interessante discussione. Soluzione che riguarda l’impiego, in luogo di una distribuzione normale, di una Triangular distribution. La distribuzione triangolare e’ una distribuzione di probabilita’ continua, con limiti inferiori e superiori a e b e moda c. I risultati che produce non sono ovviamente gli stessi di una distribuzione normale, ma nel caso in cui se ne usi una con valori a e b tali da renderla simmetrica, allora puo’ essere considerata un’approssimazione discretamente valida di una gaussiana.

Example of a triangular distribution with lower limit a, mode c and upper limit b

Altro argomento toccato oggi e’ stato il GPS. Lo swinglet e’ dotato di ricevitore GPS, che nel mio caso verra’ utilizzato per emulare un sistema sensoriale nei vari MAVs. L’idea e’ quella di non utilizzare quindi informazioni posizionali “assolute”, ma andare per un approccio piu’ bio-inspirato, utilizzando queste informazioni per ricreare una sorta di sistema percettivo degli aeroplanini, il quale determinera’ poi il loro comportamento. Presupposto fondamentale per questo genere di applicazioni e’ poter accedere ai dati del GPS e trasformarli da gradi in qualcosa di piu’ maneggevole (come ad esempio metri). Questo e’ esattamente quello che fa il codice qui sotto, che ho trovato per Matlab ma che puo’ essere convertito in una frazione di secondo in un qualsiasi altro linguaggio. La funzione qui sotto riceve in input un vettore composto da due valori, a rappresentare rispettivamente longitudine e latitudine di un certo punto, e converte questi valori in metri.

Per rimanere in tema vi segnalo poi questa simpatica paginetta, all’interno della quale e’ possibile specificare delle coordinate random e poi visualizzare, tramite l’engine di Google Maps, dove il punto corrispondente alle coordinate immesse si trova. Simpatico.

Non ci sono ancora commenti. Vuoi essere il primo?

Lascia un commento