Costruire veicolo che eviti ostacoli e segua un percorso.

Salve a tutti, so che esistono già diversi progetti in questo senso e sto facendo ricerche, comunque sia volevo un consiglio da parte vostra, vi spiego il problema.

Per un progettino per un esame volevamo costruire un veicolo che assolva a due compiti. 1) Deve poter andare da un punto A ad un punto B, dato che non possiamo perderci in problemi di triangolazione l'idea era quella di mettere un trasmettitore nel punto B e direzionare il veicolo in base all'intensità del segnale tra veicolo e trasmettitore. Abbiamo pensato di usare il Wi-Fi con un router come punto B ma non sappiamo se in spazi ridotti come stanze o androni possa andare bene e possano essere apprezzabili differenze di intensità sufficienti. Una seconda idea sarebbe stata quella di usare come punto B un emettitore luminoso che dovrebbe essere individuato da un sensore apposito montato sul veicolo ma questo renderebbe poco fattibile la seconda parte. 2) Il veicolo (che dovremmo dotare anche di magnetometro) dovrebbe poter andare da A a B evitando eventuali ostacoli nel mezzo, vorremmo anche che non si fermasse e cambiasse direzione in tempo reale (come quando si guida la macchina), per questo pensavamo di usare un sensore ad ultrasuoni montato su un servo per il panning.

L'implementazione non è banale perché dobbiamo far calcolare ad Arduino in tempo reale una traiettoria e poi fare in modo che la segua.

Accetto suggerimenti di qualsiasi tipo, sia hardware (materiali, sensori, pezzi da procurarsi) sia software (librerie già esistenti, codice già scritto ecc...).

Ringrazio anticipatamente chiunque mi potrà e vorrà consigliare.

Scarterei subito il WiFi in quanto le pareti di una stanza riflettono le microonde come uno specchio ed avresti problemi a determinare la fonte del segnale.

Rimangono gli ultrasuoni e gli IR, entrambi validi se, però, trasmettitore e ricevitore sono in linea ottica, cioè se gli ostacoli del punto 2 non si frappongono al percorso ottico.

Se avete la possibilità di sollevare il trasmettitore rispetto al ricevitore, la presenza di eventuali ostacoli non sarebbe un problema e forse potrebbe essere una possibilità.

Grazie della risposta.

Infatti agendo in spazi ristretti anche io ho avuto subito dei dubbi sul Wi-Fi, sia per i rimbalzi sia perché non credo che misurare l'intensità del segnale sarebbe affidabile in quanto (anche a causa dei rimbalzi) è piuttosto instabile.

Per quanto riguarda l'IR il problema son proprio gli ostacoli richiedendo di poter sempre visualizzare l'obiettivo. Potremmo anche posizionarlo in alto rispetto agli eventuali ostacoli ma non rappresenterebbe una soluzione utilizzabile con qualsiasi tipo di ostacolo, inoltre vorremmo simulare in piccolo (molto piccolo) qualcosa che si avvicini ad un veicolo automatico. Deve quindi poter funzionare con qualsiasi tipo di ostacoli. L'ultrasuono avrebbe lo stesso problema, quello lo utilizzeremmo per visualizzare gli ostacoli.

Non esiste qualche tipo ri rice-trasmettitore che permetta con una precisione sufficiente di essere utilizzato a questo scopo? O magari qualche altra soluzione che non preveda la linea ottica diretta con l'obiettivo?

D4NI3L3: Non esiste qualche tipo ri rice-trasmettitore che permetta con una precisione sufficiente di essere utilizzato a questo scopo? O magari qualche altra soluzione che non preveda la linea ottica diretta con l'obiettivo?

A questo problema non solo non esiste una soluzione semplice, non esiste nemmeno una soluzione definitiva anche disponendo di grandi budget.

Allora bisogna risolvere la cosa a livello software.

Suggerirei un "faro" IR ed un veicolo che dispone a bordo di un ricevitore IR capace di ruotare a 360° (una sorta di radar ottico).

Anche se non "vede" il faro, inizia a camminare sino ad arrivare nei pressi di un superficie (muro) e quindi segue il percorso del muro fermandosi ogni tanto per usare il radar e vedere se becca anche un riflesso del raggio IR.

Se lo trova lo segue sino ad arrivare al faro.

astrobeed:

D4NI3L3: Non esiste qualche tipo ri rice-trasmettitore che permetta con una precisione sufficiente di essere utilizzato a questo scopo? O magari qualche altra soluzione che non preveda la linea ottica diretta con l'obiettivo?

A questo problema non solo non esiste una soluzione semplice, non esiste nemmeno una soluzione definitiva anche disponendo di grandi budget.

Beh qualche soluzione ci deve pure essere, mica mi aspetto grandi cose. In rete ho già trovato alcuni articoli interessanti sul Wi-Fi ma nutrivo alcuni dubbi in proposito per l'utilizzo in spazi ristretti. A meno di non usarlo per la triangolazione, in tal caso servirebbero diversi access point, almeno tre. Potresti gentilmente circostanziare il perché di tale affermazione? :)

cyberhs: Allora bisogna risolvere la cosa a livello software.

Suggerirei un "faro" IR ed un veicolo che dispone a bordo di un ricevitore IR capace di ruotare a 360° (una sorta di radar ottico).

Anche se non "vede" il faro, inizia a camminare sino ad arrivare nei pressi di un superficie (muro) e quindi segue il percorso del muro fermandosi ogni tanto per usare il radar e vedere se becca anche un riflesso del raggio IR.

Se lo trova lo segue sino ad arrivare al faro.

Questa potrebbe essere una buona idea anche se il veicolo (immaginando una griglia di ostacoli messi in posizioni casuali) potrebbe proprio non riuscire a vedere il faro finché non è giunto all'ultima linea di ostacoli.

D4NI3L3: Potresti gentilmente circostanziare il perché di tale affermazione? :)

Perché per fare quello che chiedi serve dead reckoning, path planning, obstacle avoidance, tre cose per le quali esistono tonnellate di testi e nessuna soluzione definitiva, inoltre le soluzioni valide sono tutte molto complesse dal punto di vista matematico, tanto complesse da risultare indigeste ad Arduino. Il modo più "semplice" per risolvere il dead reckoning è utilizzare sistemi con proiezione, tramite ir, di costellazioni di punti sul soffitto che vengono acquisite tramite un apposito sensore, ad alta risoluzione, e successiva elaborazione degli stessi per ricavare la posizione assoluta in base a quella della costellazione, cosa che richiede una potenza di calcolo, e risorse, totalmente fuori range per Arduino.

Capisco, beh dovremo trovare una soluzione più semplice e meno elaborata. Sicuramente avremmo a disposizione anche schede di controllo molto più potenti ma preferivamo usare Arduino per realizzare qualcosa di semplice e funzionale.

Grazie per la spiegazione.