Self Driving Car with Lane Detection using Raspberry Pi | OpenCV p.1

Murtaza's Workshop - Robotics and AI
20 Jun 202012:53

Summary

TLDRIn diesem Video zeigt der Ersteller, wie man ein selbstfahrendes Auto mit Spurenerkennung unter Verwendung eines Raspberry Pi baut. Die Hardware umfasst einen Raspberry Pi 4, vier Motoren, zwei Batterien, eine Kamera und ein 7-Zoll-Display zur Unterstützung bei der Feinabstimmung. Die Software ist modular aufgebaut, mit separaten Modulen für Aufgaben wie die Steuerung des Fahrzeugs und die Spurverfolgung. Die Spurenerkennung nutzt eine einfache Pixel-Summationstechnik, um die Kurve der Spur zu berechnen und die Richtung des Autos anzupassen. Der Code wird auf einem Desktop entwickelt und später auf den Raspberry Pi übertragen.

Takeaways

  • 😀 Die Erstellung eines selbstfahrenden Autos mit Lane Detection wird mit einem Raspberry Pi durchgeführt.
  • 😀 Die Hardware besteht aus einem Raspberry Pi 4, vier Motoren, zwei Batterien, einer Kamera und einem 7-Zoll-Bildschirm.
  • 😀 Die Softwarearchitektur nutzt Modularität, um separate Module für verschiedene Aufgaben wie Motorsteuerung und Lane Detection zu haben.
  • 😀 Der Raspberry Pi wird über ein H-Brücken-Modul mit den Motoren verbunden, während zwei separate Batterien die Stromversorgung gewährleisten.
  • 😀 Ein 7-Zoll-Bildschirm wird hinzugefügt, um die Tuning-Prozesse zu erleichtern und die Bildverarbeitung schneller zu überprüfen.
  • 😀 Die Lane Detection nutzt eine einfache Technik namens Pixel Summation, bei der die Helligkeit der einzelnen Spaltenpixel summiert wird.
  • 😀 Durch die Summierung der Pixelwerte können wir die Richtung und den Grad der Kurve der Straße bestimmen.
  • 😀 Der Code wird zunächst auf einem Desktop geschrieben und getestet, bevor er auf den Raspberry Pi übertragen wird.
  • 😀 Das Video verwendet eine einfache A4-Papierbahn als Testumgebung, um die Lane Detection zu verifizieren.
  • 😀 Das Projekt folgt einer schrittweisen Vorgehensweise, wobei alle unterstützenden Funktionen in einer Utility-Datei organisiert werden, um das System sauber und modular zu halten.

Q & A

  • Welche Hardware-Komponenten werden für das selbstfahrende Auto verwendet?

    -Das selbstfahrende Auto verwendet einen Raspberry Pi 4, vier Motoren, einen H-Brücken-Motorcontroller, zwei Batterien (eine für den Raspberry Pi und eine für die Motoren), eine Kamera (Standard 1,3 MP Raspberry Pi Kamera) und einen 7-Zoll-Bildschirm für die Feinabstimmung.

  • Warum wird der 7-Zoll-Bildschirm in diesem Projekt verwendet?

    -Der Bildschirm wird verwendet, um den Abstimmungsprozess zu erleichtern. Ohne Bildschirm wäre es schwierig, die Werte und das Verhalten des Systems zu beobachten, was beim Feintuning der Systemparameter hilfreich ist.

  • Was ist das Konzept der Modularität im Softwaredesign dieses Projekts?

    -Modularität bedeutet, dass der Code in separate Dateien oder Module unterteilt wird, die jeweils eine bestimmte Aufgabe erfüllen, wie zum Beispiel die Steuerung der Motoren oder die Lane-Detection. Diese Module können unabhängig voneinander getestet und bei Bedarf in andere Projekte integriert werden.

  • Warum wird der Webcam-Code in einem separaten Modul verwaltet?

    -Der Webcam-Code wird in einem separaten Modul verwaltet, um Flexibilität zu gewährleisten. Später könnten zusätzliche Module (wie ein Verkehrszeichen-Erkennungsmodul) ebenfalls auf Bilddaten zugreifen, ohne redundante Bildverarbeitungslogik in jedem Modul zu wiederholen.

  • Was ist das Pixel-Summationsverfahren zur Spurverfolgung?

    -Beim Pixel-Summationsverfahren werden die Pixel in jeder Spalte eines Bildes summiert. Schwarze Pixel (Wert 0) und weiße Pixel (Wert 255) werden verwendet, um die Spur zu erkennen. Der Algorithmus summiert die weißen Pixel in jeder Spalte, um zu bestimmen, wie stark das Fahrzeug nach links oder rechts abbiegen muss.

  • Warum wird OpenCV in diesem Projekt verwendet?

    -OpenCV wird verwendet, weil es eine leistungsstarke Bibliothek zur Bildverarbeitung bietet. Sie hilft bei der Erfassung von Videodaten, der Bildverarbeitung und der Analyse der Spur, um den Abbiegewinkel zu bestimmen.

  • Was passiert, wenn der Video-Stream in der Testumgebung endet?

    -Wenn der Video-Stream endet, wird ein Fehler angezeigt, da das Programm keine weiteren Frames zum Verarbeiten hat. Dies ist jedoch normal, da der Stream einfach aufhört und keine weiteren Daten zur Verfügung stehen.

  • Welche Vorteile bietet das Testen des Codes auf einem Desktop-Computer anstelle des Raspberry Pi?

    -Das Testen des Codes auf einem Desktop-Computer ist schneller und effizienter, da die Rechenleistung des PCs die Debugging- und Entwicklungsprozesse beschleunigt. Sobald der Code auf dem Desktop funktioniert, wird er einfach auf den Raspberry Pi übertragen.

  • Welche Bibliotheken müssen für dieses Projekt importiert werden?

    -Für das Projekt müssen die Bibliotheken OpenCV (cv2) und NumPy (NP) importiert werden, um die Bildverarbeitung und numerische Berechnungen durchzuführen.

  • Warum ist die Trennung der Code-Module wichtig für dieses Projekt?

    -Die Trennung der Code-Module ist wichtig, um den Code sauber und übersichtlich zu halten. Es ermöglicht eine einfache Fehlerbehebung und eine wiederverwendbare Struktur für zukünftige Projekte, da man Module in verschiedenen Projekten ohne Änderungen verwenden kann.

Outlines

plate

هذا القسم متوفر فقط للمشتركين. يرجى الترقية للوصول إلى هذه الميزة.

قم بالترقية الآن

Mindmap

plate

هذا القسم متوفر فقط للمشتركين. يرجى الترقية للوصول إلى هذه الميزة.

قم بالترقية الآن

Keywords

plate

هذا القسم متوفر فقط للمشتركين. يرجى الترقية للوصول إلى هذه الميزة.

قم بالترقية الآن

Highlights

plate

هذا القسم متوفر فقط للمشتركين. يرجى الترقية للوصول إلى هذه الميزة.

قم بالترقية الآن

Transcripts

plate

هذا القسم متوفر فقط للمشتركين. يرجى الترقية للوصول إلى هذه الميزة.

قم بالترقية الآن
Rate This

5.0 / 5 (0 votes)

الوسوم ذات الصلة
Selbstfahrendes AutoRaspberry PiSpurenerkennungRobotikProgrammierungKünstliche IntelligenzModularer CodeTechnologie TutorialHardware ProjektBildverarbeitung
هل تحتاج إلى تلخيص باللغة الإنجليزية؟