Sommario:

Utilizzo di Sonar, Lidar e Computer Vision su microcontrollori per aiutare gli ipovedenti: 16 passaggi
Utilizzo di Sonar, Lidar e Computer Vision su microcontrollori per aiutare gli ipovedenti: 16 passaggi

Video: Utilizzo di Sonar, Lidar e Computer Vision su microcontrollori per aiutare gli ipovedenti: 16 passaggi

Video: Utilizzo di Sonar, Lidar e Computer Vision su microcontrollori per aiutare gli ipovedenti: 16 passaggi
Video: Microcontrollori per Maker, QUALE USARE e COME SCEGLIERE? Confronto Arduino ATMEGA ATtiny ESP STM32 2024, Luglio
Anonim
Utilizzo di Sonar, Lidar e Computer Vision su microcontrollori per aiutare i non vedenti
Utilizzo di Sonar, Lidar e Computer Vision su microcontrollori per aiutare i non vedenti

Voglio creare un "bastone" intelligente che possa aiutare le persone con disabilità visive molto più delle soluzioni esistenti. Il bastone sarà in grado di avvisare l'utente di oggetti davanti o sui lati emettendo un rumore nelle cuffie di tipo surround. Il bastone avrà anche una piccola telecamera e LIDAR (Light Detection and Ranging) in modo che possa riconoscere oggetti e persone nella stanza e avvisare l'utente utilizzando le cuffie. Per motivi di sicurezza, le cuffie non bloccheranno tutto il rumore poiché ci sarà un microfono in grado di filtrare tutti i suoni non necessari e mantenere i clacson e le persone che parlano. Infine il sistema avrà un GPS in modo che possa dare indicazioni e mostrare all'utente dove andare.

Votami per i concorsi Microcontroller e Outdoor Fitness!

Passaggio 1: panoramica del progetto

Panoramica del progetto
Panoramica del progetto
Panoramica del progetto
Panoramica del progetto
Panoramica del progetto
Panoramica del progetto

Secondo World Access for the Blind, il movimento fisico è una delle maggiori sfide per le persone non vedenti. Viaggiare o semplicemente camminare per una strada affollata può essere molto difficile. Tradizionalmente l'unica soluzione consisteva nell'utilizzare il comunemente noto “bastone bianco” che viene utilizzato principalmente per scansionare l'ambiente urtando gli ostacoli in prossimità dell'utente. Una soluzione migliore sarebbe un dispositivo in grado di sostituire l'assistente vedente fornendo informazioni sulla posizione degli ostacoli in modo che il non vedente possa uscire in ambienti sconosciuti e sentirsi al sicuro. Durante questo progetto è stato sviluppato un piccolo dispositivo a batteria che soddisfa questi criteri. Il dispositivo è in grado di rilevare la dimensione e la posizione dell'oggetto mediante sensori che misurano la posizione degli oggetti in relazione all'utente, trasmettono tali informazioni a un microcontrollore e quindi le convertono in audio per fornire informazioni all'utente. Il dispositivo è stato costruito utilizzando LIDAR (Light Detection and Ranging), SONAR (Sound Navigation and Ranging) e tecnologie di computer vision disponibili in commercio collegate a microcontrollori e programmato per fornire l'output di informazioni udibili richiesto utilizzando auricolari o cuffie. La tecnologia di rilevamento è stata incorporata in un "bastone bianco" per indicare agli altri le condizioni dell'utente e fornire ulteriore sicurezza.

Passaggio 2: ricerca di base

Ricerca di base
Ricerca di base
Ricerca di base
Ricerca di base
Ricerca di base
Ricerca di base
Ricerca di base
Ricerca di base

Nel 2017, l'Organizzazione Mondiale della Sanità ha riferito che c'erano 285 milioni di persone ipovedenti in tutto il mondo, di cui 39 milioni sono completamente ciechi. La maggior parte delle persone non pensa ai problemi che le persone ipovedenti affrontano ogni giorno. Secondo World Access for the Blind, il movimento fisico è una delle maggiori sfide per le persone non vedenti. Viaggiare o semplicemente camminare per una strada affollata può essere molto difficile. Per questo motivo, molte persone ipovedenti preferiscono portare un amico o un familiare vedente per aiutare a navigare in nuovi ambienti. Tradizionalmente l'unica soluzione era utilizzare il comunemente noto “bastone bianco” che viene utilizzato principalmente per scansionare l'ambiente circostante urtando gli ostacoli in prossimità dell'utente. Una soluzione migliore sarebbe un dispositivo in grado di sostituire l'assistente vedente fornendo informazioni sulla posizione degli ostacoli in modo che il non vedente possa uscire in ambienti sconosciuti e sentirsi al sicuro. NavCog, una collaborazione tra IBM e Carnegie Mellon University, ha tentato di risolvere il problema creando un sistema che utilizza beacon Bluetooth e smartphone come guida. Tuttavia, la soluzione era ingombrante e si è rivelata molto costosa per implementazioni su larga scala. La mia soluzione risolve questo problema eliminando la necessità di dispositivi esterni e utilizzando una voce per guidare l'utente durante il giorno (Figura 3). Il vantaggio di avere la tecnologia incorporata in un "bastone bianco" è che segnala al resto del mondo la condizione dell'utente che provoca un cambiamento nel comportamento delle persone circostanti.

Passaggio 3: requisiti di progettazione

Requisiti di progettazione
Requisiti di progettazione

Dopo aver ricercato le tecnologie disponibili, ho discusso delle possibili soluzioni con i professionisti della vista sull'approccio migliore per aiutare i non vedenti a navigare nel loro ambiente. La tabella seguente elenca le funzionalità più importanti necessarie affinché qualcuno passi al mio dispositivo.

Caratteristica - Descrizione:

  • Calcolo - Il sistema deve fornire un'elaborazione veloce per le informazioni scambiate tra l'utente e i sensori. Ad esempio, il sistema deve essere in grado di informare l'utente della presenza di ostacoli davanti a una distanza di almeno 2 m.
  • Copertura - Il sistema deve fornire i propri servizi all'interno e all'esterno per migliorare la qualità della vita delle persone ipovedenti.
  • Ora - Il sistema dovrebbe funzionare bene sia di giorno che di notte.
  • Portata - La portata è la distanza tra l'utente e l'oggetto che deve essere rilevato dal sistema. La portata minima ideale è 0,5 m, mentre la portata massima dovrebbe essere superiore a 5 m. Ulteriori distanze sarebbero ancora migliori, ma più difficili da calcolare.
  • Tipo di oggetto: il sistema dovrebbe rilevare l'apparizione improvvisa di oggetti. Il sistema dovrebbe essere in grado di distinguere tra oggetti in movimento e oggetti statici.

Fase 4: Progettazione tecnica e selezione dell'attrezzatura

Progettazione ingegneristica e selezione delle attrezzature
Progettazione ingegneristica e selezione delle attrezzature
Progettazione ingegneristica e selezione delle attrezzature
Progettazione ingegneristica e selezione delle attrezzature
Progettazione ingegneristica e selezione delle attrezzature
Progettazione ingegneristica e selezione delle attrezzature

Dopo aver esaminato molti componenti diversi, ho deciso le parti selezionate dalle diverse categorie di seguito.

Prezzo delle parti selezionate:

  • Pantera Zungle: $ 149,99
  • LiDAR Lite V3: $ 149,99
  • LV-Max Sonar-EZ1: $ 29,95
  • Sensore a ultrasuoni - HC-SR04: $3.95
  • Raspberry Pi 3: $ 39,95
  • Arduino: $ 24,95
  • Kinect: $ 32,44
  • Floureon 11.1v 3s 1500mAh: $ 19,99
  • LM2596HV: $ 9,64

Passaggio 5: Selezione dell'attrezzatura: metodo di interazione

Selezione dell'attrezzatura: metodo di interazione
Selezione dell'attrezzatura: metodo di interazione
Selezione dell'attrezzatura: metodo di interazione
Selezione dell'attrezzatura: metodo di interazione

Ho deciso di utilizzare il controllo vocale come metodo per interagire con il dispositivo perché avere più pulsanti su un bastone può essere difficile per una persona ipovedente, soprattutto se alcune funzioni richiedono una combinazione di pulsanti. Con il controllo vocale, l'utente può utilizzare i comandi preimpostati per comunicare con il bastone, riducendo potenziali errori.

Dispositivo: Pro --- Contro:

  • Pulsanti: nessun errore di comando quando si preme il pulsante destro --- Potrebbe essere difficile assicurarsi che vengano premuti i pulsanti corretti
  • Controllo vocale: facile perché l'utente può utilizzare i comandi preimpostati --- La pronuncia errata può indurre errori

Passaggio 6: selezione dell'attrezzatura: microcontrollore

Selezione dell'attrezzatura: microcontrollore
Selezione dell'attrezzatura: microcontrollore
Selezione dell'attrezzatura: microcontrollore
Selezione dell'attrezzatura: microcontrollore
Selezione dell'attrezzatura: microcontrollore
Selezione dell'attrezzatura: microcontrollore

Il dispositivo utilizzava il Raspberry Pi a causa del suo basso costo e della potenza di elaborazione sufficiente per calcolare la mappa di profondità. L'Intel Joule sarebbe stata l'opzione preferita, ma il suo prezzo avrebbe raddoppiato il costo del sistema, il che non sarebbe l'ideale per questo dispositivo sviluppato per fornire un'opzione a basso costo per gli utenti. L'arduino è stato utilizzato nel sistema perché può facilmente ottenere informazioni dai sensori. BeagleBone e Intel Edison non sono stati utilizzati a causa del basso rapporto prezzo/prestazioni che è negativo per questo sistema a basso costo.

Microcontrollore: Pro --- Contro:

  • Raspberry Pi: ha una potenza di elaborazione sufficiente per trovare ostacoli e ha WiFi/Bluetooth integrato --- Non molte opzioni per ricevere dati dai sensori
  • Arduino: ricevi facilmente dati da piccoli sensori. cioè. LIDAR, Ultrasonic, SONAR, ecc --- Potenza di elaborazione insufficiente per trovare ostacoli
  • Intel Edison: può elaborare rapidamente gli ostacoli con un processore veloce --- Richiede pezzi di sviluppo aggiuntivi per funzionare per il sistema
  • Intel Joule: ha il doppio della velocità di elaborazione di qualsiasi microcontrollore sul mercato consumer fino ad oggi --- Costo molto elevato per questo sistema e difficile interazione con GPIO per l'interazione del sensore
  • BeagleBone Black: Compatto e compatibile con i sensori utilizzati nel progetto utilizzando il General Purpose Input Output (GPIO) --- Potenza di elaborazione insufficiente per trovare efficacemente gli oggetti

Passaggio 7: Selezione dell'attrezzatura: sensori

Selezione dell'attrezzatura: sensori
Selezione dell'attrezzatura: sensori
Selezione dell'attrezzatura: sensori
Selezione dell'attrezzatura: sensori
Selezione dell'attrezzatura: sensori
Selezione dell'attrezzatura: sensori

Viene utilizzata una combinazione di più sensori per ottenere un'elevata precisione di localizzazione. Il Kinect è il sensore principale a causa della quantità di area che può scansionare gli ostacoli contemporaneamente. LIDAR, acronimo di Light Detection and Ranging, è un metodo di telerilevamento che utilizza la luce sotto forma di laser pulsato per misurare rapidamente le distanze dal punto in cui si trova il sensore agli oggetti; quel sensore viene utilizzato perché può tracciare un'area fino a 40 metri (m) di distanza e poiché può scansionare da varie angolazioni, può rilevare se ci sono gradini che salgono o scendono. I sensori SOund Navigation And Ranging (SONAR) e Ultrasonic vengono utilizzati come traccia di backup nel caso in cui il Kinect manchi un palo o un urto nel terreno che rappresenterebbe un pericolo per l'utente. Il sensore a 9 gradi di libertà viene utilizzato per tracciare la direzione in cui è rivolto l'utente in modo che il dispositivo possa memorizzare le informazioni per una maggiore precisione dirigendo la prossima volta che la persona cammina nello stesso posto.

Sensori: Pro --- Contro:

  • Kinect V1: può tracciare oggetti 3D con --- Solo una telecamera per rilevare l'ambiente circostante
  • Kinect V2: ha 3 telecamere a infrarossi e una telecamera rossa, verde, blu, di profondità (RGB-D) per il rilevamento di oggetti 3D ad alta precisione --- Può surriscaldarsi e potrebbe richiedere una ventola di raffreddamento ed è più grande di altri sensori
  • LIDAR: raggio che può tracciare posizioni fino a 40 m di distanza --- Deve essere posizionato verso l'oggetto e può guardare solo in quella direzione
  • SONAR: raggio che può tracciare a 5 m di distanza ma in un raggio lontano --- Piccoli oggetti come le piume possono attivare il sensore
  • Ultrasuoni: ha una portata fino a 3 m ed è molto economico --- Le distanze possono occasionalmente essere imprecise
  • Sensore a 9 gradi di libertà: ottimo per rilevare l'orientamento e la velocità dell'utente --- Se qualcosa interferisce con i sensori, i calcoli della distanza possono essere calcolati in modo errato

Passaggio 8: Selezione dell'attrezzatura: Software

Selezione dell'attrezzatura: Software
Selezione dell'attrezzatura: Software
Selezione dell'attrezzatura: Software
Selezione dell'attrezzatura: Software
Selezione dell'attrezzatura: Software
Selezione dell'attrezzatura: Software

Il software selezionato per i primi prototipi realizzati con il sensore Kinect V1 era Freenect ma non era molto accurato. Passando a Kinect V2 e Freenect2, i risultati di tracciamento sono stati notevolmente migliorati grazie al tracciamento migliorato poiché il V2 ha una videocamera HD e 3 videocamere a infrarossi rispetto a una singola videocamera sul Kinect V1. Quando usavo OpenNi2 con Kinect V1, le funzioni erano limitate e non potevo controllare alcune delle funzioni del dispositivo.

Software: Pro --- Contro:

  • Freenect: ha un livello di controllo inferiore per controllare tutto --- Supporta solo Kinect V1
  • OpenNi2: può creare facilmente i dati della nuvola di punti dal flusso di informazioni da Kinect --- Supporta solo Kinect V1 e non supporta il controllo di basso livello
  • Freenect2: ha un livello inferiore di controllo per la barra del sensore --- Funziona solo per Kinect V2
  • ROS: Sistema operativo ideale per programmare le funzioni della fotocamera --- Deve essere installato su una scheda SD veloce in modo che il software funzioni

Passaggio 9: Selezione dell'attrezzatura: altre parti

Selezione dell'attrezzatura: altre parti
Selezione dell'attrezzatura: altre parti
Selezione dell'attrezzatura: altre parti
Selezione dell'attrezzatura: altre parti

Le batterie agli ioni di litio sono state selezionate perché sono leggere, hanno un'elevata capacità di potenza e sono ricaricabili. La variante 18650 della batteria agli ioni di litio ha una forma cilindrica e si inserisce perfettamente nel prototipo della canna. Il primo prototipo di canna è realizzato in tubo di PVC perché è cavo e riduce il peso della canna.

Passaggio 10: sviluppo del sistema: creazione della parte hardware 1

Sviluppo del sistema: creazione dell'hardware, parte 1
Sviluppo del sistema: creazione dell'hardware, parte 1
Sviluppo del sistema: creazione dell'hardware, parte 1
Sviluppo del sistema: creazione dell'hardware, parte 1
Sviluppo del sistema: creazione dell'hardware, parte 1
Sviluppo del sistema: creazione dell'hardware, parte 1

Per prima cosa dobbiamo smontare il Kinect per renderlo più leggero e in modo che si adatti all'interno della canna. Ho iniziato rimuovendo tutto l'involucro esterno dal Kinect poiché la plastica utilizzata pesa MOLTO. Poi ho dovuto tagliare il cavo in modo da poter rimuovere la base. Ho preso i cavi dal connettore mostrato nell'immagine e li ho saldati a un cavo USB con cavi di segnale e le altre due connessioni erano per l'alimentazione in ingresso a 12V. Dato che volevo che la ventola all'interno della canna funzionasse a piena potenza per raffreddare tutti gli altri componenti, ho tagliato il connettore dalla ventola del Kinect e ho cablato 5V dal Raspberry Pi. Ho anche realizzato un piccolo adattatore per il cavo LiDAR in modo che possa collegarsi direttamente al Raspberry Pi senza altri sistemi in mezzo.

Ho saldato accidentalmente il filo bianco a quello nero quindi non guardare le immagini per gli schemi elettrici

Passaggio 11: sviluppo del sistema: creazione dell'hardware, parte 2

Sviluppo del sistema: creazione dell'hardware parte 2
Sviluppo del sistema: creazione dell'hardware parte 2
Sviluppo del sistema: creazione dell'hardware parte 2
Sviluppo del sistema: creazione dell'hardware parte 2
Sviluppo del sistema: creazione dell'hardware parte 2
Sviluppo del sistema: creazione dell'hardware parte 2
Sviluppo del sistema: creazione dell'hardware parte 2
Sviluppo del sistema: creazione dell'hardware parte 2

Ho creato un pezzo di regolatore per fornire alimentazione a tutti i dispositivi che richiedono 5V come il Raspberry Pi. Ho sintonizzato il regolatore mettendo un misuratore sull'uscita e regolando il resistore in modo che il regolatore fornisse 5,05 V. L'ho messo un po' più alto di 5V perché nel tempo la tensione della batteria si abbassa e incide leggermente sulla tensione di uscita. Ho realizzato anche un adattatore che mi permette di alimentare fino a 5 dispositivi che richiedono il 12V dalla batteria.

Fase 12: Sviluppo del sistema: Programmazione del sistema Parte 1

Sviluppo del sistema: Programmazione del sistema Parte 1
Sviluppo del sistema: Programmazione del sistema Parte 1
Sviluppo del sistema: Programmazione del sistema Parte 1
Sviluppo del sistema: Programmazione del sistema Parte 1
Sviluppo del sistema: Programmazione del sistema Parte 1
Sviluppo del sistema: Programmazione del sistema Parte 1

Una delle parti più impegnative di questo sistema è la programmazione. Quando ho fatto in modo che Kinect ci giocasse per la prima volta, ho installato un programma chiamato RTAB Map che prende il flusso di dati dal Kinect e lo converte in una nuvola di punti. Con la nuvola di punti, ha creato un'immagine 3D che può essere ruotata in modo da vedere la profondità di dove si trovano tutti gli oggetti. Dopo averci giocato per un po' e aver regolato tutte le impostazioni, ho deciso di installare alcuni software sul Raspberry Pi per permettermi di vedere il flusso di dati dal Kinect. Le ultime due immagini sopra mostrano cosa può produrre il Raspberry Pi a circa 15-20 fotogrammi al secondo.

Consigliato: