Posizionamento robot indoor attraverso trilaterazione ultrasuoni

Ho letto molto sull'argomento posizionamento indoor sia sul forum che "all'estero", ho sviluppato un idea che vorrei mettere in opera ma ho diversi dubbi sulla sua fattibilità.

Il progetto prevede di localizzare con un margine d'errore più ridotto possibile un robot aspirapolvere all'interno di un capannone industriale, 50m x 30m circa, munito di base di ricarica su punto fisso. Al momento il motivo principale della localizzazione è riuscire a tornare alla base, ma in futuro vorrei utilizzare il sistema per creare una mappatura dell'ambiente e ottimizzare il processo di pulizia.

Ho scartato queste idee per i seguenti motivi:

trilaterazione con radiofrequenze, trasmettitori all'interno del capannone - le velocità in gioco sono troppo elevate e gli spazi troppo ristretti per una definizione precisa della posizione, nonchè rendono difficile la sincronizzazione degli apparati. Non escludo comunque che con qualche trucco si possa riuscire a bypassare questo ostacolo, ma per ora resta un ipotesi da valutare nel dettaglio.

encoder volano/ruota - Potrei puntare un vettore che torna alla base ed aggiornarlo ad ogni spostamento, ma il robot è in grado di funzionare per diverse ore, accumulando errori di volta in volta (sassolino sotto la ruota, approssimazione dell'encoder, rilievi particolari sul pavimento) potrebbe arrivare a collezionare metri e metri di errore.

triangolazione/sistemi AoA - antenne direzionali, ergo servomotori posti alla base, ergo tanti soldi e tanto lavoro che vorrei evitare.

Tutte le tecnologie che sfruttano bluetooth wlan e ir - Hanno portate esigue e risentono parecchio degli ostacoli, tuttavia non escludo del tutto l'ipotesi che potrebbe essere comunque valida se ben studiata (ir ovviamente escluso)

L'unica idea che ho al momento è quella di utilizzare 3 generatori di ultrasuoni a 3 frequenze diverse, con un guadagno che possa coprire l'intera area del capannone, attivi in loop e sincronizzati da un rtc per generatore, in maniera che emettano 2 impulsi ciascuno senza incrociarsi ogni x secondi. Sul robot monterò una capsula microfonica e filtrerò selettivamente le 3 frequenze dei segnali ricevuti. ad elaboazione dati individuerò i 2 segnali "madri" per frequenza dai rimbalzi ambientali del suono e il resto immagino vi siate fatti un idea di come arriverò alla posizione esatta.
Se mi tornano i conti, considerando solo la velocità di acquisizione del segnale da arduino, dovrei avere un margine d'errore intorno ai 4 decimi... Mettiamo un errore di sincronizzazione degli rtc di qualche us, avrei comunque una tolleranza sui 2 3 millimetri, che non è male (pratica permettendo).

Il principale dubbio che ho è sulla riflessione dei segnali: se nella traiettoria generatore-robot è presente un ostacolo, questo assorbirà l'onda sonora (nella maggior parte dei casi dovrebbe viaggiare più velocemente che nell'aria) e continuerà la sua traiettoria verso il robot o verrà riflesso, sfalsando (non di poco) la misura?
Avete qualche altra idea per localizzare il robot in uno spazio così ampio?

Per via delle dimensioni, ma anche degli ostacoli, il problema è risolvibile solo utilizzando un sistema basato sul line following, righe dipinte per terra che tracciano i possibili percorsi, è il sistema utilizzato in tutti i magazzini con carrelli robot, oppure tramite SLAM.