Innholdsfortegnelse:

Bruke ekkolodd, lidar og datasyn på mikrokontrollere for å hjelpe synshemmede: 16 trinn
Bruke ekkolodd, lidar og datasyn på mikrokontrollere for å hjelpe synshemmede: 16 trinn

Video: Bruke ekkolodd, lidar og datasyn på mikrokontrollere for å hjelpe synshemmede: 16 trinn

Video: Bruke ekkolodd, lidar og datasyn på mikrokontrollere for å hjelpe synshemmede: 16 trinn
Video: Машинное обучение для разработчиков Java: переход на стек технологий ИИ. 2024, Juli
Anonim
Bruk Sonar, Lidar og Computer Vision på mikrokontrollere for å hjelpe synshemmede
Bruk Sonar, Lidar og Computer Vision på mikrokontrollere for å hjelpe synshemmede

Jeg vil lage en intelligent "stokk" som kan hjelpe mennesker med synshemming mye mer enn eksisterende løsninger. Stokken vil kunne varsle brukeren om objekter foran eller på sidene ved å lage støy i hodetelefoner av typen surroundlyd. Stokken vil også ha et lite kamera og LIDAR (Light Detection and Ranging) slik at den kan gjenkjenne objekter og mennesker i rommet og varsle brukeren ved å bruke hodetelefonene. Av sikkerhetsmessige årsaker vil ikke hodetelefonene blokkere all støy, da det vil være en mikrofon som kan filtrere bort alle unødvendige lyder og holde bilhornene og folk snakke. Til slutt vil systemet ha en GPS, slik at den kan gi veibeskrivelser og vise brukeren hvor han skal dra.

Vennligst stem på meg i Microcontroller og Outdoor Fitness -konkurransene!

Trinn 1: Oversikt over prosjektet

Oversikt over prosjektet
Oversikt over prosjektet
Oversikt over prosjektet
Oversikt over prosjektet
Oversikt over prosjektet
Oversikt over prosjektet

Ifølge World Access for the Blind er fysisk bevegelse en av de største utfordringene for blinde. Å reise eller bare gå ned en overfylt gate kan være veldig vanskelig. Tradisjonelt var den eneste løsningen å bruke den vanlige "hvite stokken" som først og fremst brukes til å skanne omgivelser ved å treffe hindringene i nærheten av brukeren. En bedre løsning ville være en enhet som kan erstatte den seende assistenten ved å gi informasjon om plasseringen av hindringer, slik at den blinde kan gå ut i ukjente miljøer og føle seg trygg. Under dette prosjektet ble en liten batteridrevet enhet som oppfyller disse kriteriene utviklet. Enheten kan oppdage størrelsen og plasseringen av objektet ved hjelp av sensorer som måler posisjonen til objekter i forhold til brukeren, videresende informasjonen til en mikrokontroller, og deretter konvertere den til lyd for å gi informasjon til brukeren. Enheten ble bygget ved hjelp av tilgjengelig kommersiell LIDAR (Light Detection and Ranging), SONAR (Sound Navigation and Ranging), og datasynsteknologier knyttet til mikrokontrollere og programmert til å gi nødvendig lydinformasjon ved hjelp av ørepropper eller hodetelefoner. Deteksjonsteknologien var innebygd i en "hvit stokk" for å indikere for andre brukerens tilstand og gi ekstra sikkerhet.

Trinn 2: Bakgrunnsforskning

Bakgrunnssjekk
Bakgrunnssjekk
Bakgrunnssjekk
Bakgrunnssjekk
Bakgrunnssjekk
Bakgrunnssjekk
Bakgrunnssjekk
Bakgrunnssjekk

I 2017 rapporterte Verdens helseorganisasjon at det var 285 millioner synshemmede over hele verden, hvorav 39 millioner er helt blinde. De fleste tenker ikke på problemene som synshemmede mennesker står overfor hver dag. Ifølge World Access for the Blind er fysisk bevegelse en av de største utfordringene for blinde. Å reise eller bare gå ned en overfylt gate kan være veldig vanskelig. På grunn av dette foretrekker mange synshemmede å ta med en seende venn eller et familiemedlem for å hjelpe deg med å navigere i nye miljøer. Tradisjonelt var den eneste løsningen å bruke den vanlige "hvite stokken" som først og fremst brukes til å skanne omgivelser ved å treffe hindringene i nærheten av brukeren. En bedre løsning ville være en enhet som kan erstatte den seende assistenten ved å gi informasjon om plasseringen av hindringer, slik at den blinde kan gå ut i ukjente miljøer og føle seg trygg. NavCog, et samarbeid mellom IBM og Carnegie Mellon University, har forsøkt å løse problemet ved å lage et system som bruker Bluetooth -beacons og smarttelefoner for å veilede. Løsningen var imidlertid tungvint og viste seg å være svært kostbar for store implementeringer. Min løsning løser dette ved å eliminere behovet for eksterne enheter og ved å bruke en stemme til å veilede brukeren gjennom dagen (figur 3). Fordelen med å ha teknologien innebygd i en "hvit stokk" er at den signaliserer resten av verden av brukerens tilstand som forårsaker endring i oppførselen til de omkringliggende menneskene.

Trinn 3: Designkrav

Designkrav
Designkrav

Etter å ha undersøkt teknologiene som er tilgjengelig, diskuterte jeg mulige løsninger med synspersoner om den beste tilnærmingen for å hjelpe synshemmede å navigere i miljøet. Tabellen nedenfor viser de viktigste funksjonene som kreves for at noen skal overgå til enheten min.

Funksjon - Beskrivelse:

  • Beregning - Systemet må gi en rask behandling for utvekslet informasjon mellom brukeren og sensorene. For eksempel må systemet kunne informere brukeren om hindringer foran som er minst 2 meter unna.
  • Dekning - Systemet må tilby sine tjenester innendørs og utendørs for å forbedre kvaliteten på synshemmede menneskers liv.
  • Tid - Systemet skal fungere like godt på dagtid som om natten.
  • Område - Området er avstanden mellom brukeren og objektet som skal oppdages av systemet. Ideell minimumsområde er 0,5 m, mens maksimal rekkevidde bør være mer enn 5 m. Ytterligere avstander ville vært enda bedre, men mer utfordrende å beregne.
  • Objekttype - Systemet skal oppdage plutselig utseende av objekter. Systemet skal være i stand til å fortelle forskjellen mellom objekter i bevegelse og statiske objekter.

Trinn 4: Teknisk design og utstyrsvalg

Teknisk design og utstyrsvalg
Teknisk design og utstyrsvalg
Teknisk design og utstyrsvalg
Teknisk design og utstyrsvalg
Teknisk design og utstyrsvalg
Teknisk design og utstyrsvalg

Etter å ha sett på mange forskjellige komponenter, bestemte jeg meg for deler valgt fra de forskjellige kategoriene nedenfor.

Pris på utvalgte deler:

  • Zungle Panther: $ 149,99
  • LiDAR Lite V3: 149,99 dollar
  • LV-MaxSonar-EZ1: $ 29,95
  • Ultralydsensor - 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

Trinn 5: Valg av utstyr: Metode for samhandling

Utstyrsvalg: Interaksjonsmetode
Utstyrsvalg: Interaksjonsmetode
Utstyrsvalg: Interaksjonsmetode
Utstyrsvalg: Interaksjonsmetode

Jeg bestemte meg for å bruke stemmestyring som metode for å samhandle med enheten fordi det kan være utfordrende å ha flere knapper på en stokk for en synshemmet, spesielt hvis noen funksjoner krever en kombinasjon av knapper. Med stemmestyring kan brukeren bruke forhåndsinnstilte kommandoer til å kommunisere med stokken som reduserer potensielle feil.

Enhet: Fordeler --- Ulemper:

  • Knapper: Ingen kommandofeil når høyre knapp trykkes --- Det kan være utfordrende å sikre at de riktige knappene trykkes inn
  • Stemmekontroll: Enkelt fordi brukeren kan bruke forhåndsinnstilte kommandoer --- Feil uttale kan forårsake feil

Trinn 6: Valg av utstyr: Mikrokontroller

Utstyrsvalg: Mikrokontroller
Utstyrsvalg: Mikrokontroller
Utstyrsvalg: Mikrokontroller
Utstyrsvalg: Mikrokontroller
Utstyrsvalg: Mikrokontroller
Utstyrsvalg: Mikrokontroller

Enheten brukte Raspberry Pi på grunn av den lave kostnaden og tilstrekkelig prosessorkraft for å beregne dybdekartet. Intel Joule ville ha vært det foretrukne alternativet, men prisen ville ha doblet kostnaden for systemet, noe som ikke ville være ideelt denne enheten som er utviklet for å gi et lavere alternativ for brukere. Arduinoen ble brukt i systemet fordi den lett kan få informasjon fra sensorer. BeagleBone og Intel Edison ble ikke brukt på grunn av lavt forhold mellom pris og ytelse, noe som er dårlig for dette lavkostnadssystemet.

Mikrokontroller: Fordeler --- Ulemper:

  • Raspberry Pi: Har nok prosessorkraft for å finne hindringer og har integrert WiFi/Bluetooth --- Ikke mange alternativer for å motta data fra sensorer
  • Arduino: Mottar enkelt data fra små sensorer. dvs. LIDAR, Ultrasonic, SONAR, etc --- Ikke nok prosessorkraft til å finne hindringer
  • Intel Edison: Kan behandle hindringer raskt med rask prosessor --- Krever ekstra utviklerstykker for å fungere for systemet
  • Intel Joule: Har dobbelt behandlingshastighet for noen av mikrokontrollerne på forbrukermarkedet til dags dato --- Meget høye kostnader for dette systemet og vanskelig å samhandle med GPIO for sensorinteraksjon
  • BeagleBone Black: Kompakt og kompatibel med sensorer som brukes i prosjektet ved bruk av General Purpose Input Output (GPIO) --- Ikke nok prosessorkraft til effektivt å finne objekter

Trinn 7: Valg av utstyr: Sensorer

Utstyrsvalg: Sensorer
Utstyrsvalg: Sensorer
Utstyrsvalg: Sensorer
Utstyrsvalg: Sensorer
Utstyrsvalg: Sensorer
Utstyrsvalg: Sensorer

En kombinasjon av flere sensorer brukes for å oppnå høy posisjonsnøyaktighet. Kinect er hovedsensoren på grunn av mengden område den kan søke etter hindringer på en gang. LIDAR som står for Light Detection and Ranging, er en fjernmålingsmetode som bruker lys i form av en pulserende laser til å måle avstander fra hvor sensoren er til objekter raskt; at sensoren brukes fordi den kan spore et område opptil 40 meter (m) unna, og siden den kan skanne i forskjellige vinkler, kan den oppdage om noen trinn går opp eller ned. SOUND Navigation And Ranging (SONAR) og ultralydsensorer brukes som backup -sporing i tilfelle Kinect savner en stolpe eller støt i bakken som kan utgjøre en fare for brukeren. Sensoren 9 Degrees of Freedom brukes til å spore hvilken retning brukeren vender, slik at enheten kan lagre informasjonen for større nøyaktighet ved neste gang personen går på samme sted.

Sensorer: Fordeler --- Ulemper:

  • Kinect V1: Kan spore 3D-objekter med --- Bare ett kamera for å oppdage omgivelser
  • Kinect V2: Har 3 infrarøde kameraer og et rødt, grønt, blått, dybde (RGB-D) kamera for 3D-objektdeteksjon med høy presisjon --- Kan varme opp og kan trenge en kjølevifte, og er større enn andre sensorer
  • LIDAR: Bjelke som kan spore steder opptil 40 m unna --- Må plasseres mot objektet og kan bare se i den retningen
  • SONAR: Bjelke som kan spore 5 m unna, men i et langt avstand --- Små gjenstander som fjær kan utløse sensoren
  • Ultralyd: Har en rekkevidde på opptil 3 m og er veldig billig --- Avstander kan av og til være unøyaktige
  • 9 grader av frihetssensor: Bra for å føle brukerens orientering og hastighet --- Hvis noe forstyrrer sensorene, kan avstandsberegningene beregnes feil

Trinn 8: Utvalg av utstyr: Programvare

Utstyrsvalg: Programvare
Utstyrsvalg: Programvare
Utstyrsvalg: Programvare
Utstyrsvalg: Programvare
Utstyrsvalg: Programvare
Utstyrsvalg: Programvare

Den valgte programvaren for de første prototypene som ble bygget med Kinect V1 -sensoren var Freenect, men den var ikke veldig nøyaktig. Ved overgang til Kinect V2 og Freenect2 ble sporingsresultatene betydelig forbedret på grunn av forbedret sporing ettersom V2 har et HD -kamera og 3 infrarøde kameraer i motsetning til et enkelt kamera på Kinect V1. Da jeg brukte OpenNi2 med Kinect V1, var funksjonene begrensede, og jeg kunne ikke kontrollere noen av funksjonene til enheten.

Programvare: Fordeler --- Ulemper:

  • Freenect: Har et lavere kontrollnivå for å kontrollere alt --- støtter bare Kinect V1
  • OpenNi2: Kan enkelt lage punktsky-data fra informasjonsstrømmen fra Kinect --- Støtter bare Kinect V1 og har ikke støtte for lavt nivå kontroll
  • Freenect2: Har et lavere kontrollnivå for sensorstang --- Fungerer bare for Kinect V2
  • ROS: Operativsystem ideelt for programmering av kamerafunksjoner --- Må installeres på et raskt SD-kort for at programvaren skal fungere

Trinn 9: Valg av utstyr: Andre deler

Utstyrsvalg: Andre deler
Utstyrsvalg: Andre deler
Utstyrsvalg: Andre deler
Utstyrsvalg: Andre deler

Litiumionbatterier ble valgt på grunn av at de var lette, hadde høy strømkapasitet og var oppladbare. 18650 -varianten av litiumionbatteriet har en sylindrisk form og passer perfekt inn i stokkprototypen. Den første prototypestokken er laget av PVC -rør fordi den er hul og reduserer stokkens vekt.

Trinn 10: Systemutvikling: Opprette maskinvare Del 1

Systemutvikling: Opprette maskinvaren Del 1
Systemutvikling: Opprette maskinvaren Del 1
Systemutvikling: Lage maskinvaren Del 1
Systemutvikling: Lage maskinvaren Del 1
Systemutvikling: Lage maskinvaren Del 1
Systemutvikling: Lage maskinvaren Del 1

Først må vi demontere Kinect for å gjøre den lettere og slik at den får plass inne i stokken. Jeg begynte med å fjerne alt det ytre foringsrøret fra Kinect ettersom plasten som veier mye. Deretter måtte jeg kutte kabelen slik at basen kunne fjernes. Jeg tok ledningene fra kontakten som er vist på bildet og loddet dem til en usb -kabel med signalkabler, og de to andre tilkoblingene var for 12V inngangseffekt. Siden jeg ønsket at viften inne i stokken skulle kjøre på full effekt for å kjøle alle de andre komponentene, kuttet jeg kontakten av viften fra Kinect og koblet 5V fra Raspberry Pi. Jeg har også laget en liten adapter for LiDAR -ledningen slik at den kan kobles direkte til Raspberry Pi uten andre systemer i mellom.

Jeg loddet den hvite ledningen ved et uhell til den svarte, så ikke se på bildene for koblingsskjemaer

Trinn 11: Systemutvikling: Opprette maskinvare del 2

Systemutvikling: Opprette maskinvare del 2
Systemutvikling: Opprette maskinvare del 2
Systemutvikling: Opprette maskinvare del 2
Systemutvikling: Opprette maskinvare del 2
Systemutvikling: Opprette maskinvare del 2
Systemutvikling: Opprette maskinvare del 2
Systemutvikling: Opprette maskinvare del 2
Systemutvikling: Opprette maskinvare del 2

Jeg opprettet et regulatorstykke for å gi strøm til alle enhetene som krever 5V som Raspberry Pi. Jeg stemte regulatoren ved å sette en måler på utgangen og justere motstanden slik at regulatoren ville gi 5,05V. Jeg la den litt høyere enn 5V fordi batterispenningen over tid går ned og påvirker utgangsspenningen litt. Jeg laget også en adapter som lar meg drive opptil 5 enheter som krever 12V fra batteriet.

Trinn 12: Systemutvikling: Programmering av systemdel 1

Systemutvikling: Programmering av systemet Del 1
Systemutvikling: Programmering av systemet Del 1
Systemutvikling: Programmering av systemet Del 1
Systemutvikling: Programmering av systemet Del 1
Systemutvikling: Programmering av systemet Del 1
Systemutvikling: Programmering av systemet Del 1

En av de mest utfordrende delene av dette systemet er programmeringen. Da jeg først fikk Kinect til å leke med det, installerte jeg et program som heter RTAB Map som tar datastrømmen fra Kinect og konverterer den til en punktsky. Med punktskyen skapte den et 3D -bilde som kan roteres, så se dybden på hvor alle objektene er. Etter å ha lekt med det en stund og justert alle innstillingene, bestemte jeg meg for å installere litt programvare på Raspberry Pi slik at jeg kunne se datastrømmen fra Kinect. De to siste bildene ovenfor viser hva Raspberry Pi kan produsere med omtrent 15-20 bilder per sekund.

Anbefalt: