Inhoudsopgave:

Achterzicht voertuig: 9 stappen (met afbeeldingen)
Achterzicht voertuig: 9 stappen (met afbeeldingen)

Video: Achterzicht voertuig: 9 stappen (met afbeeldingen)

Video: Achterzicht voertuig: 9 stappen (met afbeeldingen)
Video: Als Dit Niet Was Gefilmd Zou Niemand Het Geloven 2024, Juli-
Anonim
Image
Image

Waarom bouwen we Vehicle Rear Vision?

Aanrijdingen achterop waren een groot probleem. Het U. S. Center for Disease Control meldde dat van 2001-2003 naar schatting 7.475 kinderen (2.492 per jaar) onder de 15 jaar werden behandeld voor back-over-incidenten met auto's. Ongeveer 300 dodelijke slachtoffers per jaar zijn het gevolg van back-upbotsingen. Tegen 2018 hebben alle auto's die in de Verenigde Staten worden verkocht een verplichte achteruitrijcamera nodig.

Hoe lossen we het probleem op?

De meeste auto's die tegenwoordig op de markt zijn, hebben nog steeds geen achteruitrijcamera, waaronder ongeveer de helft van de auto's die tegenwoordig in de VS worden verkocht, en veel meer dan de helft over de hele wereld. We kunnen dit probleem oplossen door een camera aan de achterkant van de auto te installeren, gebruikmakend van de ruimte van de kentekenplaat.

Walabot kan de afstand detecteren van het doel dat zich het dichtst bij het voertuig bevindt.

De Intel RealSense R200-camera geeft ons meer details over wat er wordt gezien, inclusief situaties met weinig licht.

Intel Joule-ontwikkelaarskit is krachtig genoeg om RealSense-camera's samen met Walabot te gebruiken. Raspberry Pi is niet krachtig genoeg om een RealSense 3D-camera te draaien, waarin we in de toekomst veel meer functies kunnen toevoegen die de functionaliteit van de auto kunnen verbeteren. Dezelfde versie kan worden gebruikt met Pi met een normale USB-camera, maar het zal niet goed zijn voor de nacht.

Android-telefoon/-tablet die wordt gebruikt om de achteruitrijcamera weer te geven, dit is om de kosten van een extra scherm te verlagen. iOS-versie kan op verzoek worden gebouwd.

Door middel van deze componenten kunnen we een Rear End Vision bouwen die de gebruiker de achterkant van de auto laat zien.

Stap 1: Verzamel hardware die u nodig hebt

Installeer Ubuntu op Joule en noodzakelijke bibliotheken die nodig zijn om het uit te voeren
Installeer Ubuntu op Joule en noodzakelijke bibliotheken die nodig zijn om het uit te voeren
  1. Intel joule
  2. Walabot Pro
  3. Intel R200 RealSense-camera
  4. Android-telefoon/-tablet met 5.0 of hoger
  5. Auto-adapter voor stekkeruitgang en 12VDC AC-adapter (dit is voor een demo om de Joule van stroom te voorzien, de productieversie zal een ander voedingsmechanisme bevatten)
  6. USB Hub voor het aansluiten van camera en Walabot (USB3 voor Camera en USB2 voor Walabot)
  7. DC naar AC directe plug-in omvormer
  8. Generieke 3D-printer om het op maat gemaakte kentekenplaatframe af te drukken

Stap 2: Installeer Ubuntu op Joule en noodzakelijke bibliotheken die nodig zijn om het uit te voeren

Aangezien we hebben besloten om voor de Linux-route te gaan, volgt u de gids https://developer.ubuntu.com/core/get-started/intel-joule om Ubuntu op Joule te installeren. Ubuntu geeft ons een grote flexibiliteit om een echt besturingssysteem te draaien op een op IoT gebaseerde chip.

Stap 3: Stream de RealSense-camera

Stream de RealSense-camera
Stream de RealSense-camera
Stream de RealSense-camera
Stream de RealSense-camera

Omdat we Android-telefoons/tablets gebruiken om de materiaalkosten te besparen, ook toegankelijker voor de gebruikers, zullen we de bewegingsbibliotheek gebruiken om de camera te hosten, vergelijkbaar met de beveiligingscamera's. Zodra Ubuntu is geïnstalleerd en verbonden met wifi, kunnen we de terminal openen en de volgende opdracht gebruiken. We verbinden de camera eerst met de Joule via de USB3-poort en voeren vervolgens de volgende stappen uit.

A. Motion installeren op ubuntu:

sudo apt-get updatesudo apt-get install motion

B. Kopieer configuratiebestanden:

mkdir.motion sudo cp /etc/motion/motion.conf ~/.motion/motion.conf

C. Het bestand configureren, voor degenen die bekend zijn met ubuntu kunnen Sublime installeren om gemakkelijker tekst te bewerken, anders kunnen we het binnen de opdrachtregel bewerken.

sudo nano ~/.motion/motion.conf

NS. Nadat we de R200-camera hebben aangesloten, kunnen we de volgende regels wijzigen in motion.conf

Dit is om het in de achtergrondmodus te zetten:

# Start in daemon (achtergrond) modus en laat terminal los (standaard: uit) daemon aan

Dit is om de cameraweergave van RealSense Camera te gebruiken.

# Videoapparaat dat moet worden gebruikt voor het vastleggen (standaard /dev/video0) # voor FreeBSD is standaard /dev/bktr0 videoapparaat /dev/video2

De breedte en hoogte veranderen, 1280 x 720 werkte prima voor mij, maar je kunt met de afmetingen spelen om te zien wat bij je past.

# Afbeeldingsbreedte (pixels). Geldig bereik: Camera-afhankelijk, standaard: 352 breedte 1280 # Beeldhoogte (pixels). Geldig bereik: Camera afhankelijk, standaard: 288 hoogte 720

Ik heb dit ingesteld op 30, hoe hoger je het getal instelt, hoe meer rekenkracht het zou vereisen. Je kunt wat spelen om te zien wat de maatstaf ervoor is, maar 30 heeft prima gewerkt voor mij.

# Maximaal aantal frames dat per seconde kan worden vastgelegd. # Geldig bereik: 2-100. Standaard: 100 (bijna geen limiet). framerate 30

Omdat we altijd achter de auto streamen, kunnen we een speciale poort instellen, we gebruiken 5001

################################################## ######### # Live Stream Server ##################################### ####################### # De mini-http-server luistert naar deze poort voor verzoeken (standaard: 0 = uitgeschakeld) stream_port 5001 # Kwaliteit van de jpeg (in procenten) geproduceerde afbeeldingen (standaard: 50) stream_quality 50 # Voer frames uit met 1 fps wanneer er geen beweging wordt gedetecteerd en verhoog naar de # snelheid die wordt gegeven door stream_maxrate wanneer beweging wordt gedetecteerd (standaard: uit) stream_motion uit # Maximale framerate voor streamstreams (standaard: 1) stream_maxrate 60 # Beperk stream-verbindingen tot alleen localhost (standaard: aan) stream_localhost uit

U kunt dan ifconfig uitvoeren en het ip-adres achterhalen en in terminal uitvoeren, de poort zal 5001 zijn.

beweging

Als er geen fouten zijn, is het gemakkelijk om de camera vanaf uw computer te controleren met behulp van het ip, de fouten zoals toestemmingsproblemen op te lossen als die er zijn.

Zodra dit is uitgevoerd, kunnen we dit toevoegen aan de opstarttoepassing in Ubuntu.

Beweging opstarten voor camera

motion.conf wordt toegevoegd in de codesectie, u kunt daar meer instellingen bekijken.

Stap 4: Stel Walabot in

Walabot instellen
Walabot instellen
Walabot instellen
Walabot instellen
Walabot instellen
Walabot instellen
Walabot instellen
Walabot instellen

Met de camera op zijn plaats, moeten we nog steeds walabot instellen, dit kan de afstand tussen het voertuig en het object erachter detecteren, wat een duidelijk beeld geeft van hoe we moeten

a, download het deb-bestand van

Volg de instructies van https://api.walabot.com/_install.html#_linuxInstall om de Walabot API te installeren zodat deze kan worden geïmporteerd in python-projecten.

Er is een fout op de website op het gedeelte waar Walabot API wordt geïnstalleerd https://walabot.com/api/_pythonapi.html#_installingwalabotapi waar staat

python -m pip "/usr/share/walabot/python/WalabotAPI-1.0.21.tar.gz"

Dat zou moeten zijn

python -m pip install "/usr/share/walabot/python/WalabotAPI-1.0.21.tar.gz"

B. sluit Walabot Pro aan via USB 2, ik kon de usb3 niet aan het werk krijgen, maar usb2 werkt prima bij het verbinden met linux. Aangezien de Joule maar één USB3-poort heeft, sluit u hier een extra USB2-poort aan voor Walabot Pro

C. Test het Walabot-project zoals https://github.com/Walabot-Projects/Walabot-Senso… door het volgende commando in de map uit te voeren

python SensorTargets.py

Dit zou je een goede test moeten geven om te zien of Walabot correct werkt, en ook hoe je afstand kunt meten op dingen die je wilt. Het DistanceMeasure-voorbeeld was niet al te consistent bij het meten en zPosCm lijkt extreem nauwkeurig te zijn, dus ik heb besloten de zPosCM te gebruiken voor de demo.

NS. We moeten de gegevens nog steeds doorgeven aan het weergaveapparaat, aangezien we dit op Android gebruiken om de materiaalkosten te verlagen, kunnen we sockets gebruiken. We gebruiken de volgende code om de socket en udp in python in te stellen.

MYPORT = 5002 import sys, tijd vanaf socket import * s = socket(AF_INET, SOCK_DGRAM) s.bind(('', 0)) s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)

De volgende opdracht zendt gegevens uit bij update:

s.sendto(str(targets[0].zPosCm), ('255.255.255.255', MIJNPOORT))

e. Wanneer dit is gebeurd, kunnen we het instellen in Startup Application

F. Walabot is nu ingesteld en draagt gegevens over via UDP, de volledige python-code is te zien in het gebied met codebijlagen. Screenshot hieronder is de afdruk van hoe het eruit zou moeten zien als er geen gebied is. De code is bijgevoegd in het codegedeelte.

Stap 5: Wifi-hotspot maken van Joule

Wifi-hotspot maken van Joule
Wifi-hotspot maken van Joule

We creëren onze eigen wifi-hotspot voor Android-apparaten om gegevens over te dragen. Door het volgende commando bij het opstarten te gebruiken, wordt het automatisch ingesteld. Dit wordt gebruikt voor Ubuntu 16.04 of hoger, aangezien dit wordt gebruikt. We zullen dit in de volgende stap automatisch verbinden via de Android-app. Gebruik deze opdracht bij de Startup Applications.

nmcli-apparaat wifi-hotspot con-name voertuig-achterzicht ssid voertuig-achterzicht band bg wachtwoord veilig rijden

In het python-bestand van walabot zullen we het ook bijwerken waar we udp-berichten zullen verzenden naar apparaten die zijn verbonden via een privéhotspot. Dit is om ervoor te zorgen dat er geen pakket verloren gaat.

out = os.popen('ip neigh').read().splitlines()for i, line in enumerate(out, start=1): ip = line.split(' ')[0] s.sendto(str (targets[0].zPosCm), (ip, MYPORT))

Stap 6: Android bouwen als weergavescherm

Android bouwen als weergavescherm
Android bouwen als weergavescherm

De Android-app is gebouwd voor het weergeven van het apparaat, vooral omdat het de materiaallijst verlaagt, omdat een apart scherm anders zowel duur als moeilijk te installeren kan zijn. Voor dit project kunnen we een Android-telefoon / -tablet gebruiken.

Android richt zich op 3 delen die we eerder hebben gedaan,

  • Maak verbinding met de wifi-hotspot die is gemaakt via het IoT-apparaat (Intel Joule)
  • Stream de RealSense Camera via beweging via wifi
  • Afstand meten van Walabot-doel via udp

Nadat je alles hebt ingesteld en de Android-app hebt geïnstalleerd (hier open source), kun je de camera zien werken samen met walabot

Stap 7: Alles testen

Image
Image
Alles uitproberen
Alles uitproberen
Alles uitproberen
Alles uitproberen

Nu we alles draaiende hebben, zouden we een basisconfiguratie van alle aangesloten componenten moeten hebben. Wanneer we het Joule-bord starten, zou de hotspot automatisch moeten worden ingesteld, beweging en de walabot-app zullen mee starten, en wanneer we onze Android-app aanzetten, zouden we vanaf de camera moeten kunnen streamen. Dit betekent dat het toetsenbord/muis en de monitor niet langer nodig zijn om het IoT-apparaat te laten functioneren. Als er op dit moment problemen optreden, zoals bibliotheken die niet goed zijn geïnstalleerd, moeten we dit oplossen voordat we verder gaan met de volgende stap.

Het 3D printen van de behuizing die de camera kan bevatten is erg belangrijk.

Bij het bouwen van de hardware moeten we onze op maat gemaakte 3D-geprinte behuizing klaar hebben voor de camera. Aangezien dit een prototype is, kan het een beetje losraken, maar wanneer we een aangepaste kentekenplaathouder bouwen, verwachten we dat alle componenten in de houder zitten.

Stap 8: Testen op een echte auto

Image
Image
Testen op een echte auto
Testen op een echte auto
Testen op een echte auto
Testen op een echte auto

Nu we alles werkend hebben gemaakt, kunnen we het testen op een echte auto. Aangezien dit een prototype is, kunnen dingen een beetje ruw zijn, we gebruiken ducttape voor sommige componenten.

Om de Joule IoT-kit van stroom te voorzien, gebruikten we een DC-naar-AC Direct Plug-in Power Inverter, en vervolgens gewoon een lang stopcontact naar de kofferbak.

We zullen het voorste deel en het achterste deel hebben. Dit is op dit moment slechts een prototype, de volgende versie zou de chips in de kentekenplaathouder integreren.

En voor het voorste deel kunnen we een telefoonhouder gebruiken of gewoon een Android-tablet met ducttape.

Stap 9: Gebruik het in de wereld

Gebruik het in de wereld
Gebruik het in de wereld

Met behulp van deze tool kunnen we auto's veilig achteruit rijden naar andere auto's en voetgangers in de gaten houden. U kunt de demovideo aan het begin bekijken. Het doel van het project is om veiliger rijgedrag aan te moedigen.

Je kunt het project bekijken op

Aanbevolen: