Inhaltsverzeichnis:
- Schritt 1: Sammeln Sie Hardware, die Sie benötigen
- Schritt 2: Installieren Sie Ubuntu auf Joule und den erforderlichen Bibliotheken, die zum Ausführen erforderlich sind
- Schritt 3: Streamen Sie die RealSense-Kamera
- Schritt 4: Walabot einrichten
- Schritt 5: Erstellen eines Wifi-Hotspots aus Joule
- Schritt 6: Android als Bildschirm erstellen
- Schritt 7: Alles testen
- Schritt 8: Ausprobieren an einem echten Auto
- Schritt 9: Verwenden Sie es in der Welt
Video: Fahrzeughecksicht - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
Warum bauen wir Fahrzeugrückblick?
Rückfahrkollisionen waren ein großes Problem. Das U. S. Center for Disease Control berichtete, dass von 2001 bis 2003 schätzungsweise 7.475 Kinder (2.492 pro Jahr) unter 15 Jahren wegen Rückfahrunfällen mit Autos behandelt wurden. Rund 300 Todesopfer pro Jahr resultieren aus Backup-Kollisionen. Bis 2018 benötigen alle in den USA verkauften Autos eine obligatorische Rückfahrkamera.
Wie lösen wir das Problem?
Die meisten Autos auf dem heutigen Markt haben immer noch keine Rückfahrkamera, dies umfasst etwa die Hälfte der Autos, die heute in den USA verkauft werden, und weit mehr als die Hälfte auf der ganzen Welt. Wir können dieses Problem lösen, indem wir eine Kamera auf der Rückseite des Autos installieren und den Platz des Nummernschilds nutzen.
Walabot wird in der Lage sein, die Entfernung des Ziels zu erkennen, das dem Fahrzeug am nächsten ist.
Die Intel RealSense R200-Kamera gibt uns mehr Details zu dem, was gesehen wird, einschließlich der Situation bei schwachem Licht.
Das Intel Joule Developer Kit ist leistungsstark genug, um RealSense-Kameras zusammen mit Walabot auszuführen. Raspberry Pi ist nicht leistungsstark genug, um eine RealSense 3D-Kamera zu betreiben, in die wir in Zukunft viele weitere Funktionen hinzufügen können, die die Funktionalität des Autos verbessern können. Dieselbe Version kann mit einer normalen USB-Kamera mit Pi verwendet werden, ist jedoch nicht für die Nacht geeignet.
Wird ein Android-Telefon/-Tablet verwendet, um die Rückfahrkamera anzuzeigen, sollen die Kosten für einen zusätzlichen Bildschirm gesenkt werden. iOS-Version kann auf Anfrage erstellt werden.
Durch diese Komponenten werden wir in der Lage sein, eine Heckansicht zu bauen, die dem Benutzer die Rückseite des Autos zeigt.
Schritt 1: Sammeln Sie Hardware, die Sie benötigen
- Intel Joule
- Walabot Pro
- Intel R200 RealSense-Kamera
- Android-Smartphone/-Tablet mit Version 5.0 oder höher
- Autoadapter für Steckerausgang und 12VDC AC Adapter (dies ist für eine Demo zum Einschalten des Joule, die Produktionsversion enthält einen anderen Antriebsmechanismus)
- USB-Hub zum Anschließen von Kamera und Walabot (USB3 für Kamera und USB2 für Walabot)
- Gleichstrom-zu-Wechselstrom-Wechselrichter mit direktem Plug-in-Anschluss
- Generischer 3D-Drucker zum Ausdrucken des kundenspezifischen Nummernschildrahmens
Schritt 2: Installieren Sie Ubuntu auf Joule und den erforderlichen Bibliotheken, die zum Ausführen erforderlich sind
Da wir uns für die Linux-Route entschieden haben, folgen Sie der Anleitung https://developer.ubuntu.com/core/get-started/intel-joule, um Ubuntu auf Joule zu installieren. Ubuntu bietet uns große Flexibilität, ein tatsächliches Betriebssystem auf einem IoT-basierten Chip auszuführen.
Schritt 3: Streamen Sie die RealSense-Kamera
Da wir ein Android-Telefon/-Tablet verwenden, um die Kosten für die Stückliste zu sparen, die auch für die Benutzer zugänglicher ist, werden wir die Bewegungsbibliothek verwenden, um die Kamera ähnlich wie die Überwachungskameras zu hosten. Sobald Ubuntu installiert und mit WLAN verbunden ist, können wir das Terminal öffnen und den folgenden Befehl verwenden. Wir verbinden die Kamera zuerst über den USB3-Anschluss mit Joule und führen dann die folgenden Schritte aus.
A. Motion auf Ubuntu installieren:
sudo apt-get updatesudo apt-get install motion
B. Konfigurationsdateien kopieren:
mkdir.motion sudo cp /etc/motion/motion.conf ~/.motion/motion.conf
C. Wenn Sie die Datei konfigurieren, können Sie für diejenigen, die mit Ubuntu vertraut sind, Sublime installieren, um die Textbearbeitung zu erleichtern, andernfalls können wir sie in der Befehlszeile bearbeiten.
sudo nano ~/.motion/motion.conf
D. Nach dem Einstecken der R200-Kamera können wir die folgenden Zeilen in der motion.conf ändern
Dies ist, um es in den Hintergrundmodus zu versetzen:
# Starten Sie im Daemon-Modus (Hintergrund) und geben Sie das Terminal frei (Standard: aus) Daemon an
Dies dient dazu, die Kameraansicht von RealSense Camera zu verwenden.
# Für die Aufnahme zu verwendendes Videogerät (Standard /dev/video0) # für FreeBSD ist der Standard /dev/bktr0 Videogerät /dev/video2
Das Ändern der Breite und Höhe, 1280 x 720, hat für mich gut funktioniert, aber Sie können mit den Abmessungen herumspielen, um zu sehen, was Ihren Bedürfnissen entspricht.
# Bildbreite (Pixel). Gültiger Bereich: Kameraabhängig, Standard: 352 Breite 1280 # Bildhöhe (Pixel). Gültiger Bereich: Kameraabhängig, Standard: 288 Höhe 720
Ich stelle hier 30 ein, je höher Sie die Zahl einstellen, desto mehr Rechenleistung wird benötigt. Sie können herumspielen, um zu sehen, was der Maßstab dafür ist, aber 30 hat für mich großartig funktioniert.
# Maximale Anzahl von Frames, die pro Sekunde erfasst werden sollen. # Gültiger Bereich: 2-100. Standard: 100 (fast unbegrenzt). Bildrate 30
Da wir immer vom Auto zurück streamen, können wir einen dedizierten Port einstellen, wir verwenden 5001
################################################ ######### # Live-Stream-Server ##################################### ####################### # Der Mini-http-Server lauscht auf diesen Port auf Anfragen (Standard: 0 = deaktiviert) stream_port 5001 # Qualität des jpeg (in Prozent) produzierte Bilder (Standard: 50) stream_quality 50 # Frames mit 1 fps ausgeben, wenn keine Bewegung erkannt wird, und auf die von stream_maxrate angegebene Rate erhöhen, wenn Bewegung erkannt wird (Standard: off) stream_motion off # Maximale Framerate für Stream-Streams (Standard: 1) stream_maxrate 60 # Stream-Verbindungen nur auf localhost beschränken (Standard: on) stream_localhost off
Sie können dann ifconfig ausführen und die IP-Adresse herausfinden und im Terminal ausführen, der Port ist 5001.
Bewegung
Wenn keine Fehler vorliegen, können Sie die Kamera einfach von Ihrem Computer aus mithilfe der IP überprüfen und die Fehler wie Berechtigungsprobleme beheben, falls vorhanden.
Sobald dies ausgeführt wird, können wir dies zur Startanwendung in Ubuntu hinzufügen.
Bewegungsstart für Kamera
Motion.conf wird im Code-Bereich angehängt, Sie können dort weitere Einstellungen überprüfen.
Schritt 4: Walabot einrichten
Wenn die Kamera installiert ist, müssen wir noch einen Walabot einrichten, der den Abstand zwischen dem Fahrzeug und dem Objekt dahinter erkennen kann und eine klare Vorstellung davon gibt, wie wir sollten
a, laden Sie die Deb-Datei von https://www.walabot.com/WalabotInstaller/Latest/walabot-maker.deb herunter
Folgen Sie den Anweisungen von https://api.walabot.com/_install.html#_linuxInstall, um die Walabot-API zu installieren, damit sie in Python-Projekte importiert werden kann.
Es gibt einen Fehler auf der Website auf dem Teil, auf dem die Walabot-API installiert wird https://walabot.com/api/_pythonapi.html#_installingwalabotapi, wo angegeben
python -m pip „/usr/share/walabot/python/WalabotAPI-1.0.21.tar.gz“
Das sollte sein
python -m pip install "/usr/share/walabot/python/WalabotAPI-1.0.21.tar.gz"
B. Verbinden Sie Walabot Pro über USB 2, ich konnte die USB3-Funktion nicht erhalten, aber USB2 funktioniert einwandfrei, wenn Sie eine Verbindung zu Linux herstellen. Da Joule nur über einen USB3-Port verfügt, schließen Sie hier einen zusätzlichen USB2-Port für Walabot Pro an
C. Testen Sie das Walabot-Projekt wie https://github.com/Walabot-Projects/Walabot-Senso…, indem Sie den folgenden Befehl im Ordner ausführen
python SensorTargets.py
Dies sollte Ihnen einen guten Test geben, um zu sehen, ob Walabot richtig läuft und wie Sie die Entfernung zu den gewünschten Dingen messen können. Das DistanceMeasure-Beispiel war bei der Messung nicht allzu konsistent und zPosCm scheint extrem genau zu sein, daher habe ich mich entschieden, das zPosCM für die Demo zu verwenden.
D. Wir müssen die Daten noch an das Anzeigegerät weitergeben, da wir dies auf Android ausführen, um die Materialkosten zu senken, können wir Steckdosen verwenden. Wir verwenden den folgenden Code, um den Socket und UDP in Python einzurichten.
MYPORT = 5002 import sys, time from 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)
Der folgende Befehl sendet Daten beim Update
s.sendto(str(targets[0].zPosCm), ('255.255.255.255', MYPORT))
e. Wenn dies erledigt ist, können wir es in der Startanwendung einrichten
F. Walabot ist jetzt eingerichtet und überträgt Daten über UDP, vollständiger Python-Code ist im Code-Anhang-Bereich zu sehen. Der Screenshot unten ist der Ausdruck, wie er aussehen sollte, wenn kein Bereich vorhanden ist. Der Code ist im Codeabschnitt angehängt.
Schritt 5: Erstellen eines Wifi-Hotspots aus Joule
Wir erstellen unseren eigenen WLAN-Hotspot für Android-Geräte, um Daten zu übertragen. Wenn Sie den folgenden Befehl beim Start verwenden, wird es automatisch eingerichtet. Dies wird für Ubuntu 16.04 oder höher verwendet, da dies verwendet wird. Wir werden dies im nächsten Schritt automatisch über die Android-App verbinden. Verwenden Sie diesen Befehl bei den Startanwendungen.
nmcli gerät wifi Hotspot con-name fahrzeug-rücksicht ssid fahrzeug-rücksicht band bg passwort safedriving
In der Python-Datei von Walabot werden wir sie auch aktualisieren, indem wir UDP-Nachrichten an Geräte senden, die über einen privaten Hotspot verbunden sind. Dies soll sicherstellen, dass kein Paket verloren geht.
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))
Schritt 6: Android als Bildschirm erstellen
Die Android-App wurde für die Anzeige des Geräts entwickelt, vor allem, weil sie die Stückliste reduziert, da ansonsten ein separater Bildschirm teuer und schwierig zu installieren sein kann. Für dieses Projekt können wir ein Android-Telefon/-Tablet verwenden.
Android konzentriert sich auf 3 Teile, die wir zuvor gemacht haben,
- Verbinden Sie sich mit dem über das IoT-Gerät erstellten WLAN-Hotspot (Intel Joule)
- Streamen Sie die RealSense-Kamera per Bewegung über WLAN
- Messen der Entfernung vom Walabot-Ziel durch udp
Nachdem Sie alles eingerichtet und die Android-App (hier Open Source) installiert haben, können Sie sehen, wie die Kamera zusammen mit Walabot arbeitet
Schritt 7: Alles testen
Jetzt haben wir alles zum Laufen gebracht, wir sollten ein grundlegendes Setup aller angeschlossenen Komponenten haben. Wenn wir das Joule-Board starten, sollte der Hotspot automatisch eingerichtet werden, die Motion- und Walabot-App wird gleichzeitig gestartet, und wenn wir unsere Android-App einschalten, sollten wir in der Lage sein, von der Kamera zu streamen. Das bedeutet, dass die Tastatur/Maus und der Monitor nicht mehr benötigt werden, damit das IoT-Gerät funktioniert. Wenn in diesem Moment Probleme auftreten, z. B. nicht richtig installierte Bibliotheken, sollten wir dies beheben, bevor Sie mit dem nächsten Schritt fortfahren.
Der 3D-Druck des Gehäuses, das die Kamera aufnehmen kann, ist sehr wichtig.
Beim Bau der Hardware sollten wir unser benutzerdefiniertes 3D-gedrucktes Gehäuse für die Kamera bereithalten. Da es sich um einen Prototypen handelt, kann er sich etwas lockern, aber wenn wir einen benutzerdefinierten Nummernschildhalter bauen, erwarten wir, dass sich alle Komponenten im Halter befinden.
Schritt 8: Ausprobieren an einem echten Auto
Nachdem wir jetzt alles zum Laufen gebracht haben, können wir es an einem echten Auto testen. Da es sich um einen Prototypen handelt, können die Dinge etwas rau sein, wir verwenden für einige der Komponenten Klebeband.
Um das Joule IoT Kit mit Strom zu versorgen, haben wir einen DC-zu-AC-Direkt-Plug-in-Wechselrichter verwendet und dann einfach eine lange Steckdose zum Kofferraum geführt.
Wir werden den vorderen Teil und den hinteren Teil haben. Dies ist derzeit nur ein Prototyp, die nächste Version würde die Chips in den Nummernschildhalter integrieren.
Und für den vorderen Teil können wir entweder einen Telefonhalter oder einfach nur Klebeband Android Tablet verwenden.
Schritt 9: Verwenden Sie es in der Welt
Mit diesem Tool können wir Autos sicher zu anderen Autos sichern und Fußgänger überwachen. Sie können sich das Demo-Video am Anfang ansehen. Ziel des Projekts ist es, sicherere Fahrpraktiken zu fördern.
Sie können das Projekt unter https://github.com/Nyceane/vehicle-rear-vision überprüfen