Inhaltsverzeichnis:

Fahrzeughecksicht - Gunook
Fahrzeughecksicht - Gunook

Video: Fahrzeughecksicht - Gunook

Video: Fahrzeughecksicht - Gunook
Video: Atwi Automobile Hannover - Heckansicht der aktuellen Fahrzeuge 2024, November
Anonim
Image
Image

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

Installieren Sie Ubuntu auf Joule und den notwendigen Bibliotheken, die zum Ausführen erforderlich sind
Installieren Sie Ubuntu auf Joule und den notwendigen Bibliotheken, die zum Ausführen erforderlich sind
  1. Intel Joule
  2. Walabot Pro
  3. Intel R200 RealSense-Kamera
  4. Android-Smartphone/-Tablet mit Version 5.0 oder höher
  5. 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)
  6. USB-Hub zum Anschließen von Kamera und Walabot (USB3 für Kamera und USB2 für Walabot)
  7. Gleichstrom-zu-Wechselstrom-Wechselrichter mit direktem Plug-in-Anschluss
  8. 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

Streamen Sie die RealSense-Kamera
Streamen Sie die RealSense-Kamera
Streamen Sie die RealSense-Kamera
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

Walabot einrichten
Walabot einrichten
Walabot einrichten
Walabot einrichten
Walabot einrichten
Walabot einrichten
Walabot einrichten
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

WLAN-Hotspot aus Joule erstellen
WLAN-Hotspot aus Joule erstellen

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

Android als Bildschirm erstellen
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

Image
Image
Alles testen
Alles testen
Alles testen
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

Image
Image
Ausprobieren an einem echten Auto
Ausprobieren an einem echten Auto
Ausprobieren an einem echten Auto
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

Nutze es in der Welt
Nutze 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