Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Echtzeit-Bewegungsplanung für autonome Autos in mehreren Situationen, Unter simulierter städtischer Umgebung

Fortschrittliche autonome Autos haben eine revolutionäre Bedeutung für die Automobilindustrie. Während immer mehr Unternehmen bereits damit begonnen haben, eigene autonome Autos zu bauen, hat noch niemand ein praxistaugliches autonomes Auto auf den Markt gebracht. Ein zentrales Problem ihrer Autos ist das Fehlen eines zuverlässigen aktiven Echtzeit-Bewegungsplanungssystems für die städtische Umgebung. Ein Echtzeit-Bewegungsplanungssystem sorgt dafür, dass Autos sicher und stabil in der städtischen Umgebung fahren können. Das endgültige Ziel dieses Projekts ist es, ein zuverlässiges Echtzeit-Bewegungsplanungssystem zu entwickeln und zu implementieren, um die Unfallraten in autonomen Autos anstelle von menschlichen Fahrern zu reduzieren. Das Echtzeit-Bewegungsplanungssystem umfasst Spurhaltung, Hindernisvermeidung, Fahrzeugvermeidung, adaptive Geschwindigkeitsregelung und Unfallvermeidungsfunktion. In der Forschung werden EGO-Fahrzeuge gebaut und mit einer Bildverarbeitungseinheit, einem LIDAR und zwei Ultraschallsensoren zur Erfassung der Umgebung ausgestattet. Diese Umgebungsdaten ermöglichen die Implementierung eines vollständigen Steuerprogramms im Echtzeit-Bewegungsplanungssystem. Das Steuerungsprogramm wird in einem verkleinerten EGO-Fahrzeug mit verkleinerter städtischer Umgebung implementiert und getestet. Das Projekt wurde in drei Phasen unterteilt:EGO-Fahrzeuge bauen, das Steuerungsprogramm des Echtzeit-Bewegungsplanungssystems implementieren und das Steuerungsprogramm durch Tests in einer verkleinerten städtischen Umgebung verbessern. In der ersten Phase wird jedes EGO-Fahrzeug aus einem EGO-Fahrzeug-Chassis-Kit, einem Raspberry Pi, einem LIDAR, zwei Ultraschallsensoren, einer Batterie und einem Powerboard aufgebaut. In der zweiten Phase wird das Steuerungsprogramm des Echtzeit-Bewegungsplanungssystems unter dem Spurhalteprogramm in Raspberry Pi implementiert. Python ist die Programmiersprache, die verwendet wird, um das Programm zu implementieren. Spurhaltung, Hindernisvermeidung, Vermeidung von fahrenden Autos, adaptive Geschwindigkeitsregelungsfunktionen werden in dieses Steuerungsprogramm integriert. In der letzten Phase werden die Test- und Verbesserungsarbeiten abgeschlossen. Zuverlässigkeitstests werden entworfen und durchgeführt. Je mehr Daten aus Tests entnommen werden, desto stabiler kann das Echtzeit-Bewegungsplanungssystem implementiert werden. Schließlich wird ein zuverlässiges Bewegungsplanungssystem gebaut, das in

EGO-Fahrzeuge im normalen Maßstab, um die Unfallrate in städtischen Umgebungen erheblich zu senken.

Einführung

Es gibt bereits viele autonome Autos der Stufe 3 auf dem Markt, die es dem Fahrer ermöglichen, die Augen vollständig zu entfernen, indem der Computer die Fahraufgabe übernimmt. Allerdings haben Verbraucher aufgrund von Sicherheitsbedenken beim Fahren ihrer autonomen Fahrzeuge der Stufe 3 nur eingeschränkten Zugang zu diesen Funktionen, da Fahrzeuge der Stufe 3 die Fahraufgabe nicht vollständig vom Menschen übernehmen können. Daher betrachten die meisten Länder Fahrzeuge der Stufe 3 als nicht absolut sicher und zuverlässig. Obwohl Level-3-Autos technisch autonom sein könnten, sind die Computer noch nicht ausgereift im Umgang mit Notfällen. Ein autonomes Auto der höheren Stufe (Stufe 4) wird benötigt, um die Fahrer physisch und sogar psychisch zu befreien. Daher ist es die Forschungspriorität, das autonome Auto der Stufe 4 zu bauen und auf den Markt zu bringen. Um dies im täglichen Leben praktikabel zu machen, müssen viele Systeme ausgestattet werden, darunter das Echtzeit-Bewegungsplanungssystem. Es empfängt verarbeitete Signale von der Bildverarbeitungseinheit, LIDAR und Ultraschallsensoren, um viele nützliche Funktionen für Fahrzeuge der Stufe 4 zu erreichen. Wie zum Beispiel eine zuverlässige Hindernisvermeidungsfunktion usw. Das Problem besteht jedoch darin, dass die meisten dieser Funktionen, die in Autos auszustatten sind, immer noch passive Funktionen sind und nur für die Autobahn ausgelegt sind. Kurz gesagt, in dieser Forschung ist es erforderlich, ein intelligenteres und zuverlässigeres Echtzeit-Bewegungsplanungssystem für die städtische Umgebung zu entwickeln. Die Forschung wird auf einer verkleinerten städtischen Umgebung mit verkleinertem EGO-Fahrzeug basieren, um Algorithmen in einem Echtzeit-Bewegungsplanungssystem zu entwerfen und zu testen. Autosteuerungslogiken und zuverlässige Algorithmen sind Schlüsselpunkte für die Entwicklung eines intelligenten und zuverlässigen Echtzeit-Bewegungsplanungssystems für die städtische Umgebung. In der ersten Phase des Projekts wird das Hardware-Team die EGO-Fahrzeuge mit gekaufter Hardware bauen. Jedes EGO-Fahrzeug wird mit einem Fahrzeug-Chassis-Kit, einem Raspberry Pi, einem LIDAR, zwei Ultraschallsensoren, einer Batterie und einem Powerboard gebaut. Die zweite Phase des Projekts des Echtzeit-Bewegungsplanungssystems wird gestartet, sobald die Hardwarevorbereitung abgeschlossen ist. Das Kontrollteam verwendet den erstellten Code des Bildverarbeitungsteams, um zuerst einen Spurhaltealgorithmus zu erstellen. Das Echtzeit-Bewegungsplanungssystem des Fahrzeugs wird aufgebaut, nachdem der Spurhaltealgorithmus erstellt wurde. Im Echtzeit-Bewegungsplanungssystem wird der LIDAR als Hauptsensor des Fahrzeugs verwendet. Es wird eine geeignete Methode gefunden, die es dem LIDAR ermöglicht, Hindernisse zu erkennen und nutzbare Signale zur späteren Programmierung zurückzusenden. Es gibt drei Hauptfunktionen, die in das Projekt des Echtzeit-Bewegungsplanungssystems eingebaut werden. Die erste Funktion ist die Hindernisvermeidung, die die EGO-Fahrzeugkraft vor Hindernissen stoppen kann. Die zweite Funktion ist das Ausweichen von Autos, wodurch das EGO-Fahrzeug die Fahrspur wechseln kann, um einen Autounfall zu vermeiden und auf die ursprüngliche Fahrspur zurückzufahren. Die letzte Funktion ist der adaptive Tempomat, mit dem das EGO-Fahrzeug seine eigene Geschwindigkeit anpassen kann, um den Sicherheitsabstand zum Vorderwagen einzuhalten. Basierend auf diesen drei Funktionen wird im Echtzeit-Bewegungsplanungssystem eine grundlegende Unfallvermeidungsfunktion gebildet. In der letzten Phase des Projekts wird das eingebaute Echtzeit-Bewegungsplanungssystem

am EGO-Fahrzeug in der verkleinerten städtischen Umgebung implementieren und testen. Mehrere Tests werden entwickelt, um die Zuverlässigkeit des Echtzeit-Bewegungsplanungssystems zu testen und die zukünftige Verbesserung des Echtzeit-Bewegungsplanungssystems zusammenzufassen.

Hardware

Als Testobjekte werden in diesem Projekt verkleinerte EGO-Fahrzeuge in Abbildung 1 verwendet. Diese Roboter basieren auf Roboter-Chassis-Kits mit DC-Motoren. Roboter-Chassis-Kit mit DC-Motoren bringen einen brauchbaren Rahmen und ein Antriebssystem für die EGO-Fahrzeuge. Aufgrund seiner Erweiterbarkeit können einem Chassis weitere Komponenten hinzugefügt werden, darunter Raspberry Pi, Motorschaltung, ein LIDAR, zwei Ultraschallsensoren und eine Batteriebank. Als Rechenplattform für dieses Projekt wurde Raspberry Pi gewählt, da es sich um eine ausgereifte Plattform handelt und Python-Code darauf implementiert werden kann. Motorschaltkreise werden verwendet, um die Gleichstrommotoren in geeigneter Weise mit Strom zu versorgen und die Roboter durch die Anweisung der Steuerlogik in Bewegung zu setzen. Ein LIDAR wird als Hauptsensor für dieses Echtzeit-Bewegungsplanungssystem verwendet, da es diesen verkleinerten EGO-Fahrzeugen eine Hinderniserkennungsfähigkeit (mehr als 15 cm) verleihen kann, und die Hinderniserkennungsfähigkeit ist die wichtigste Grundfähigkeit für diese Echtzeit Bewegungsplanungssystem in diesem Projekt. Ultraschallsensoren können EGO-Fahrzeuge in die Lage versetzen, nähere Objekte unter einer Reichweite von 15 cm zu erkennen, die LIDAR nicht erkennen kann. Batteriebänke werden als Stromquelle für diese EGO-Fahrzeuge verwendet und können Raspberry Pi, LIDARs und Motoren mit Strom versorgen. Das detaillierte Blockschaltbild der Hardwareverbindung ist unten in Abbildung 2 dargestellt.

Verkleinertes EGO-Fahrzeug-Chassis:

Adafruit (PID 3244) Mini 3-Layer Round Robot Chassis Kit – 2WD mit DC-Motoren zeigt in Abbildung 3 werden als Chassis für dieses Projekt verwendet. Durch die Erweiterbarkeit des Chassis können Komponenten hinzugefügt werden. Außerdem enthält das Chassis-Kit zwei Motoren und Räder, was bedeutet, dass in diesem Kit auch ein Antriebssystem enthalten ist. Dieses Antriebssystem ermöglicht es dem Hardware-Team, das EGO-Fahrzeug ganz einfach zu bauen, ohne dass zusätzliche Zeit benötigt wird, um ein passendes Antriebssystem für das Roboterchassis zu finden.

Himbeer-Pi:

Es gibt mehrere Modelle von Raspberry Pi, die für dieses Projekt verwendet werden können, und Raspberry Pi 3B+ zeigt in Abbildung 4 wurde für dieses Projekt ausgewählt. Der Hauptgrund, sich für Raspberry Pi 3B+ zu entscheiden, ist die ausreichende Rechenleistung für dieses Projekt. Außerdem verfügt es über integriertes Wi-Fi und die Wi-Fi-Übertragungseffizienz ist schneller als beim Vorgängermodell. Darüber hinaus benötigt der Raspberry Pi 3B+ nur 5V/1,5A Stromquelleneingang und auf dem Markt gibt es viele Batteriebänke, die diesen Strombedarf decken. Dies ist auch der gleiche Grund, warum Raspberry Pi 4 nicht gewählt wurde. Raspberry Pi 4 benötigt 9V/2A Stromquelleneingang, und auf dem Markt sind Batterien mit einem Ausgang von 9V/2A teuer und selten. Nicht nur das, auch Raspberry Pi 4 hat einen höheren Preis als Raspberry Pi 3B+, und selbst diese beiden Modelle haben eine ähnliche Rechenleistung. GPIO-Pins auf Raspberry Pi werden als Eingangspins verwendet, um Signale von einem LIDAR, zwei Ultraschallsensoren, zu empfangen; Außerdem sind GPIO-Pins Ausgangspins, um ein Signal an einen Motortreiber zu senden.

Motortreiberschaltung (Leistungsplatine):

Für dieses Projekt wurden die DRV8833-Motortreiber-Shows in Abbildung 3 ausgewählt. Der Motortreiber kann die Leistung an die Motoren verteilen und Steuerbefehle vom Raspberry Pi empfangen. In diesem Projekt werden vier Eingangspins (AIN1,2; BIN1,2), vier Ausgangspins (AOUT1,2; BOUT1,2), ein Massepin (GND), ein SLP-Pin und ein VM-Pin verwendet (Abbildung 5). Ausgangspins werden verwendet, um die Energie auf diese beiden Motoren zu verteilen und diese beiden Motoren zu steuern, damit sich EGO-Fahrzeuge bewegen können. Eingangspins werden verwendet, um Steuersignale von GPIO-Pins auf Raspberry Pi zu empfangen und diese beiden Motoren nach Bedarf des Bedieners drehen zu lassen. Der VM-Pin erhält Strom vom '+'-Pin der Batteriebank, der als VCC bekannt ist. Der SLP-Pin wird mit dem VM-Pin verbunden, es ist der Aktivierungspin für den Motortreiber. Verbinden Sie es mit VCC, um es zu aktivieren, oder mit einem GPIO-High-Pin zur Steuerung. Der GND-Pin verbindet den '-'-Pin der Batteriebank und den Massepin des Raspberry Pi. Abbildung 6 zeigt den Detailanschluss der Leistungsplatine in Form eines Blockschaltbilds.

Leiterplatten werden Plattformen für Motortreiber sein, um Leistungsplatinen herzustellen. Auf diesen Leiterplatten können Motortreiber einfach ein- und ausgesteckt werden. Dadurch wird vermieden, dass der Motortreiber direkt auf Leiterplatten gelötet wird. Da der Fortschritt beim Befestigen von auf Leiterplatten gelöteten Motortreibern schwieriger ist als das Befestigen der Leiterplatten mit diesen Schaltungen, kann dieses Verfahren es den Projektteammitgliedern ermöglichen, das Löten der Motortreiber direkt auf den Leiterplatten zu vermeiden. (Abbildung 7 und Abbildung 8)

LIDAR:

LIDAR in Abbildung 9 wurde für dieses Projekt ausgewählt. Die Umgebung kann von LIDAR erkannt werden, um Entfernungs- und Winkeldaten zu generieren. Auf dieser Grundlage verfügen EGO-Fahrzeuge über eine Erkennungsfähigkeit, und Hindernisvermeidung, Fahrzeugvermeidung und adaptive Steuerungsfunktionen können in das Echtzeit-Bewegungsplanungssystem eingebaut werden. LIDAR hat einen Micro-USB-Port, der direkt mit Raspberry Pi verbunden werden kann, damit Raspberry Pi Daten von LIDAR lesen kann. Außerdem wird LIDAR über denselben USB-Port vom Raspberry Pi mit Strom versorgt.

Batterie:

Die Größe der Batteriebank ist ein zentrales Problem dieses Projekts. Da die EGO-Fahrzeuge nur begrenzten Platz zum Platzieren von Batterien haben, sind die schlanken Batterien bevorzugt. Batteriebänke müssen eine Leistungskapazität von mindestens 10000 mAh haben, um sicherzustellen, dass zwei Motoren, zwei Raspberry Pi, ein LIDAR an jedem EGO-Fahrzeug ordnungsgemäß betrieben werden können. Auch die Größe der Batterien sollte möglichst auf die Größe der EGO-Fahrzeuge abgestimmt sein. Daher wurde das in Abbildung 10 gezeigte Anker Power Core 13000 Portable Charger für dieses Projekt ausgewählt, da es nicht nur für die Größe von EGO-Fahrzeugen geeignet ist, sondern auch eine Stromkapazität von 13000 mAh hat.

Ultraschallsensoren:

Ultraschallsensoren in Abbildung 11 werden verwendet, um den Nahabstand zu erkennen, da der minimale Erkennungsabstand für den LIDAR 15 cm beträgt, alle anderen Hindernisse, die näher als 15 cm sind, werden vom LIDAR nicht erkannt. Ultraschallsensoren können den Nahbereich sogar unter 5cm erkennen. So wurden auf der linken und rechten Seite des EGO-Fahrzeugs zwei Ultraschallsensoren montiert, um das Auto auf der Rückfahrspur zu erkennen. Der VCC-Pin ist mit Pin 2 oder Pin 4 verbunden, der der VCC-Pin des Raspberry Pi ist, und GND ist mit dem Erdungspin des Raspberry Pi verbunden

Software

In diesem Projekt sollen EGO-Fahrzeuge drahtlos gesteuert werden. Um dies zu ermöglichen, müssen Monitor und Shell auf dem Raspberry Pi drahtlos mit dem lokalen PC/Mac verbunden sein. Um dies zu erreichen, müssen ein drahtloser Shell-Befehl und eine VNC-Verbindungssoftware [7] verwendet werden. Auch in diesem Projekt wurde Python 3 als Programmiersprache gewählt, da es ausgereift und einfach zu bedienen ist. Es gibt eine beträchtliche Anzahl von Paketen für Python, die in diesem Projekt verwendet werden können, zum Beispiel hat Python ein LIDAR-Paket [6], das zur Steuerung des in diesem Projekt verwendeten LIDAR verwendet werden kann. Das LIDAR-Paket kann nur in einer Python 3-Umgebung implementiert werden. Die gesamte Software läuft im Raspbian-Betriebssystem auf Raspberry Pi.

Shell in Raspberry Pi mit lokalem PC/MAC verbinden:


EGO-Fahrzeuge müssen drahtlos gesteuert werden und die Shell im Raspberry Pi muss mit der lokalen PC/MAC-Shell verbunden werden. Um Shells zu verbinden, sollte der folgende Befehl eingegeben werden:
Geben Sie zuerst den Befehl ‘sudo raspi-config’ in die Pi-Shell ein, um den SSH-Server in Pi zu aktivieren. Geben Sie als nächstes den Befehl ‚ifconfig‘ in der Pi-Shell ein, die IP-Adresse ‚192.168.xxx.xxx‘ wird nach diesem Befehl gefunden. Geben Sie in der lokalen PC/MAC-Shell den Befehl „ssh [email protected]“ ein, um die Pi-Shell zu verbinden. Der Standardbenutzername des Raspberry Pi ist "pi", und das Standardpasswort des Raspberry Pi ist "raspberry". Schließlich kann die Raspberry Pi-Shell über die lokale PC/MAC-Shell gesteuert werden.

Python-Version:


In der Raspberry Pi 3B+-Version ist Python 2 die Standardprogrammumgebung, das LIDAR-Paket kann jedoch nur unter der Python3-Umgebung verwendet werden. Der folgende Befehl wird verwendet, um Python 3 als Standardprogrammumgebung in der Shell festzulegen:

Geben Sie zuerst „sudo rm /usr/bin/python“ ein, um den Standard-Python-Link aus dem Systemstandard zu entfernen

Verknüpfung. Geben Sie als Nächstes „sudo

. ein

-s /usr/bin/python3.X

Befehl zum Neuzuordnen des neuen

Der Standard-Python-Link zur Python-Version muss verwendet werden. In diesem Befehl bedeutet ‚X‘ das Python3

bereits installierte Version. Geben Sie danach ‘Python’ ein, um die Standard-Python-Version zu überprüfen.

LIDAR-Paket:

Das LIDAR-Paket muss installiert werden, damit das Signal vom LIDAR programmierbar ist. Geben Sie unter Python3-Umgebung im Shell-Fenster den folgenden Befehl ein, um das LIDAR-Paket zu installieren:Geben Sie ‚sudo pip3 install LIDAR‘ ein, um das LIDAR-Paket zu installieren.

VNC-Verbindung:

VNC-Server und VNC-Connect-Programm wurden für die Verwendung in diesem Projekt ausgewählt, damit der lokale PC/MAC den Raspberry Pi drahtlos überwachen kann. Um den VNC-Server zu aktivieren und VNC-Connect zu installieren, sollte der folgende Befehl eingegeben werden:
Geben Sie zuerst den Befehl ‚sudo raspi-config‘ ein, um in das Einstellungsmenü des Raspberry Pi zu gelangen. Geben Sie als Nächstes den Befehl „vncserver“ ein, um den VNC-Server im Raspberry Pi zu aktivieren (nach dem Neustart des Pi muss diese Einstellung erneut aktiviert werden). Laden Sie dann die VNC-Verbindung herunter und installieren Sie sie auf dem lokalen PC/MAC. Geben Sie danach die zuvor gefundene Raspberry Pi IP-Adresse in die Adressleiste von VNC connect ein. Geben Sie den Benutzernamen und das Passwort von Raspberry Pi ein, die bereits im Shell-Teil erwähnt wurden. Schließlich kann der lokale PC/MAC den Raspberry Pi drahtlos überwachen.

Methode

Phase1:

Das EGO-Fahrzeug wird aus Raspberry Pi, Powerboard, LIDAR, zwei Ultraschallsensoren und einer Batteriebank zusammengebaut. Nach dem Zusammenbauen enthält die Software Python, LIDAR-Paket, VNC-Verbindung und Shell-Verbindung, die installiert und entsprechend eingestellt werden. Es wird ein Weg gefunden, um LIDAR von lesbaren Rohdaten in verwendbare Detektionsdaten für die nächste Phase der Programmierung zu übertragen. Das EGO-Fahrzeug wird nach den vorherigen drei Schritten vorbereitet und ist bereit für die Programmierung und Tests.

Phase2:

Drei Szenarien zum Testen der Hindernisvermeidungsfunktion, der Fahrzeugvermeidungsfunktion und der adaptiven Geschwindigkeitsregelungsfunktion werden entwickelt. Im Anschluss an drei Szenarien wird eine Steuerlogik von drei Funktionen entworfen und drei Flussdiagramme von drei Steuerlogiken skizziert. Nachdem die Flussdiagramme generiert wurden, sollten die Flussdiagramme mehrmals überarbeitet werden, bis die Steuerungslogiken logisch akribisch sind. Dann werden Programme und Algorithmen von getrennten drei Funktionen durch die Flussdiagramme programmiert. Das EGO-Fahrzeug wird in der letzten Phase zum Testen von drei Funktionen bereit sein.

Phase3:

Die erste Gruppe zuverlässiger Tests wird unter drei entworfenen Szenarien mit drei separaten Funktionen durchgeführt. Durch diese Tests werden Probleme und zukünftige Verbesserungen gefunden. Als nächstes werden im Anschluss an diese gefundenen Probleme und zukünftigen Verbesserungen die Steuerlogik, Programme mit drei Funktionen, Algorithmus und Hardware verbessert; Probleme werden behoben. Drei separate Funktionen werden mit dem Spurhalteprogramm zu einem voll funktionsfähigen Echtzeit-Bewegungsplanungssystem für dieses Projekt kombiniert. Mit dieser bereits kombinierten Funktion wird die zweite Gruppe zuverlässiger Tests unter drei entworfenen Szenarien durchgeführt. Nachdem zwei Gruppen zuverlässiger Tests abgeschlossen sind, wird die endgültige Version des Echtzeit-Bewegungsplanungssystems dieses Projekts fertiggestellt.

LIDAR

Es gibt vier Datentypen, die von LIDAR gelesen werden können, und in diesem Projekt werden nur zwei Datentypen verwendet, nämlich Winkel und Entfernung. Die Messung des Winkels in der Einheit Grad [0,360) und die Messung der Entfernung sind größer als 15 cm (andere Entfernungen niedriger als 15 cm, der 0-Wert wird zurückgesendet). Das Problem war, dass nur Entfernungs- und Winkeldaten aus dem LIDAR gelesen werden können, aber wie können diese Daten bei der Hinderniserkennung verwendet werden? Die Lösung besteht darin, den LIDAR-Erkennungsbereich in 4 Abschnitte zu unterteilen und den Hindernisabstandswert zu erkennen, um die Entscheidung zu treffen, die nächste Schrittbewegung des Fahrzeugs zu steuern. Wie in Abbildung 12 gezeigt, sind 315 bis 45 Grad der vordere Abschnitt und 135 bis 225 Grad der hintere Abschnitt. Da der Lidar das Objekt nur in einer Entfernung von mehr als 15 cm erkennen kann, werden daher vorerst nur diese beiden Abschnitte verwendet. Für den linken und rechten Abschnitt kann der Ultraschallsensor die Erkennungsaufgabe für diese beiden Abschnitte übernehmen.

Dies ist die Grafik, die zeigt, wie diese beiden Erkennungsabschnitte auf der Straße funktionieren:

Wie die Abbildung 13 zeigt, fährt das EGO-Fahrzeug auf der rechten Fahrspur und das Auto B fährt auf der Rückwärtsfahrspur. Der grüne Kreis um das EGO-Fahrzeug ist der zuvor erwähnte gültige Erfassungsbereich. Der Erfassungsbereich wird in vier Abschnitte unterteilt und der Erfassungsabstand beträgt mehr als 15 cm. Wie getestet, wird dieser vordere Erkennungsabschnitt von Fahrzeug B nicht beeinflusst, es sei denn, Fahrzeug B überschreitet die gestrichelte Linie zwischen zwei Fahrspuren.

Problemformulierung

Hindernisvermeidung:

Es wurden drei Szenarien in Betracht gezogen. Das erste Szenario dient zum Testen der Hindernisvermeidungsfunktion, die in Abbildung 14 dargestellt ist. Es befindet sich ein Hindernis in der Mitte der Straße, und das EGO-Fahrzeug bewegt sich in seiner Nähe, und Auto B fährt rückwärts auf der anderen Spur direkt neben dem EGO-Fahrzeug . Das EGO-Fahrzeug kann die Fahrspur nicht ändern, um einen Unfall zu vermeiden, da es auf Auto B prallt. Die einzige Möglichkeit für Auto A bleibt, vor dem Hindernis vollständig anzuhalten.

Vermeiden von fahrenden Autos (ein weiteres Szenario zur Vermeidung von Hindernissen):

Das zweite Szenario basiert auf einem anderen Hindernisvermeidungsszenario und wird in Abbildung 15 als Bewegungsauto-Vermeidungsfunktion bezeichnet. Fahrzeug B fährt in die falsche Richtung und auf derselben Fahrspur des EGO-Fahrzeugs. Diesmal befindet sich kein Auto oder Hindernis auf der anderen Spur, daher kann das EGO-Fahrzeug wählen, die Spur zu ändern, um Auto B auszuweichen, und nachdem es Auto B ausgewichen ist, kann das EGO-Fahrzeug auf die richtige Spur zurückkehren.

Das letzte Szenario dient zum Testen der adaptiven Geschwindigkeitsregelung in Abbildung 16. Auto B bewegt sich in Vorwärtsrichtung, EGO-Fahrzeug muss einen Sicherheitsabstand zu Auto B einhalten, um Unfälle zu vermeiden. Das EGO-Fahrzeug passt seine eigene Geschwindigkeit an, um den Sicherheitsabstand einzuhalten.

Adaptive Geschwindigkeitsregelung:

Steuerungslogik

Variablen definieren:

Steuerlogik zur Vermeidung von Hindernissen:

Die Steuerlogik zur Hindernisvermeidung zeigt in Abbildung 17, dass das Fahrzeug vorwärts bleibt, wenn die Abstandserkennung am weitesten entfernt ist. Wenn sich die Distanzerkennung im Gefahrenbereich befindet und die Winkelerkennung anzeigt, dass sich das Hindernis im vorderen Erkennungsbereich befindet. Dann erkennt das EGO-Fahrzeug die Rückfahrspur, und wenn sich Hindernisse oder Autos auf der Rückfahrspur befinden, wird das EGO-Fahrzeug vollständig angehalten.

Steuerlogik zur Vermeidung von fahrenden Autos:

In Abbildung 18 zeigt die Steuerlogik zur Ausweichsteuerung bei fahrendem Auto, dass das Auto vorwärts bleibt, wenn die Abstandserkennung am weitesten entfernt ist. Wenn sich die Distanzerkennung im Gefahrenbereich befindet und die Winkelerkennung anzeigt, dass sich das Hindernis im vorderen Erkennungsbereich befindet. Dann erkennt das EGO-Fahrzeug die Rückfahrspur, und wenn sich keine Hindernisse oder Autos auf der Rückfahrspur befinden, die von Ultraschallsensoren erkannt werden, wechselt das EGO-Fahrzeug auf die Rückfahrspur, um dem Fahrzeug in der falschen Richtung auszuweichen. Sobald sich keine Hindernisse oder Autos auf der ursprünglichen Spur befinden, wechselt das EGO-Fahrzeug wieder auf die ursprüngliche Spur.

Steuerungslogik der adaptiven Geschwindigkeitsregelung:

In dem Szenario der adaptiven Geschwindigkeitsregelung treten zwei Probleme auf:Das eine ist, dass sich das EGO-Fahrzeug zu schnell bewegt, und das andere ist, dass das EGO-Fahrzeug zu langsam fährt. In Abbildung 19 ist die vollständige Steuerlogik der adaptiven Geschwindigkeitsregelungsfunktion dargestellt.

Kombinierte Steuerlogik:

Hier sind die Steuerlogik-Flussdiagramme für die kombinierte Steuerlogik der vorherigen drei Steuerlogiken:

Bei kombinierter Logik, Spurhalteassistent und adaptivem Tempomat wird das Programm nicht geändert. Jedoch werden die Funktion zur Vermeidung von Hindernissen und die Funktion zur Vermeidung von fahrenden Autos als eine Funktion kombiniert. Bisher konnte die Hindernisvermeidungsfunktion das Auto nur am Hindernis mitten auf der Straße vollständig anhalten lassen, aber was ist der nächste Schritt der Steuerungsempfehlung? Diese Funktion kann mit einer Ausweichfunktion für fahrende Autos kombiniert werden, die das kommende Auto überholen und die Spur wechseln kann. In der Hindernisvermeidungsfunktion kann das Auto Ultraschallsensoren und LIDAR verwenden, um die Umgebung zu erkennen und zu überprüfen, ob sich andere Autos auf der anderen Spur befinden, nachdem es vollständig vor dem Hindernis angehalten hat. Wenn sich kein Auto oder Hindernis auf der Rückfahrspur befindet, kann das Auto das Hindernis passieren und seine Fahrt fortsetzen.

Ergebnisse

Vorherige Ergebnisse:

EGO-Fahrzeuge werden erfolgreich mit ausgewählter Hardware montiert. Das Spurhalteteam implementiert erfolgreich ein brauchbares Spurhalteprogramm basierend auf der Arbeit des Bildverarbeitungsteams, das das Signal von der Kamera verwendet. Die LIDAR-Rohdaten werden durch das zuvor erwähnte Verfahren zur Programmierung in geeigneter Weise in nutzbare Daten umgewandelt. Das Echtzeit-Bewegungsplanungssystem mit Hindernisvermeidung, Fahrzeugvermeidung und adaptiver Geschwindigkeitsregelung wurde als drei separate Steuerprogramme basierend auf dem Spurhalteprogramm erstellt. Frühere Tests basieren auf diesen drei separaten Kontrollprogrammen, um die Stabilität zu testen, da es schwieriger ist, sie zusammen zu kombinieren, um die Stabilität zu testen, als sie einzeln zu testen. Die Hindernisvermeidungsfunktion funktioniert gut, das EGO-Fahrzeug kann das Anhalten vor dem voreingestellten Hindernis erzwingen. Allerdings ist das EGO-Fahrzeug mit zwei Raspberry Pi-Boards und einem  LIDAR zu schwer, manchmal das EGO-Fahrzeug

wird herunterklappen, da sein hohes Gewicht. Bei der Ausweichfunktion für sich bewegende Fahrzeuge funktioniert die Spurwechsellogik gut, ihre Umgehungsroute ist jedoch nicht genau wie erwartet. Zwei Ultraschallsensoren sollten am EGO-Fahrzeug hinzugefügt werden, damit das EGO-Fahrzeug Objekte erkennen kann, die näher als 15 cm sind, insbesondere Hindernisse auf der linken und rechten Seite. Bei der adaptiven Geschwindigkeitsregelung funktioniert das Abstandsanpassungs-Steuerungsprogramm, jedoch ist die Geschwindigkeit des EGO-Fahrzeugs während des Anpassungsprozesses des Abstands nicht wie erwartet stabil. Der Grund dafür ist, dass die Steuerlogik der adaptiven Geschwindigkeitsregelung das Auto nur in der gleichen Geschwindigkeit beschleunigen und verlangsamen lässt. Ein intelligenterer Abstandsanpassungsalgorithmus sollte in die Steuerlogik der adaptiven Geschwindigkeitsregelungsfunktion aufgenommen werden.

Ergebnisse erwarten:

Nach den Testergebnissen früherer Tests wurden mehrere Verbesserungen an den Steuerprogrammen und dem EGO-Fahrzeug vorgenommen. Erstens wurden das Gewicht und die Höhe des EGO-Fahrzeugs reduziert, um das Risiko eines Umkippens zu verringern. Als nächstes wurden zwei Ultraschallsensoren und ein begleitendes Programm im Steuerprogramm zur Vermeidung von fahrenden Autos hinzugefügt, wodurch das EGO-Fahrzeug eine genauere Erkennungsfähigkeit für den linken und rechten Objektabstand zum EGO-Fahrzeug hat. Dann wurde dem adaptiven Tempomaten ein intelligenterer Abstandsanpassungsalgorithmus hinzugefügt. Anders als bei der vorherigen Steuerlogik wurde ein Beschleunigungs- und Verlangsamungsalgorithmus hinzugefügt, das EGO-Fahrzeug kann je nach Bedarf in einem Prozent der aktuellen Geschwindigkeit oder in fünf Prozent der aktuellen Geschwindigkeit beschleunigen und verlangsamen. Schließlich werden diese drei Funktionen mit dem Spurhalteprogramm als letzte Version des Echtzeit-Bewegungsplanungssystems in diesem Projekt kombiniert.

Als erste Verbesserung wurden das Gewicht und die Höhe des EGO-Fahrzeugs reduziert, wodurch das Risiko des Herunterklappens erheblich verringert wird. Die Gewichtsreduzierung des EGO-Fahrzeugs verringert die Trägheitskraft des EGO-Fahrzeugs während des Kraftstoppvorgangs. Nach dem zweiten Newtonschen Bewegungsgesetz ist die Trägheitskraft gleich der Beschleunigung mal der Masse des Objekts. Denn bei der gleichen Beschleunigungsrate wie zuvor wird die Reduzierung der Masse (Gewicht) des EGO-Fahrzeugs die vom EGO-Fahrzeug ertragene Trägheitskraft erheblich reduzieren. Dadurch wird das Risiko des Herunterklappens während des Kraftstoppvorgangs direkt verringert. Außerdem verringert die Höhenverringerung die Position des Schwerpunkts

des EGO-Fahrzeugs, wodurch auch die Gefahr des Herunterklappens verringert wird. Zuvor befindet sich oben auf dem EGO-Fahrzeug eine weitere Raspberry Pi-Platine, deren Entfernung die Schwerpunktlage des EGO-Fahrzeugs verringert. Der Grund ist einfach, die Schwerpunktlage des EGO-Fahrzeugs beeinflusst dessen Stabilität. Je tiefer der Schwerpunkt liegt, desto stabiler ist das EGO-Fahrzeug. Somit wird die erste Verbesserung erfolgreich das Risiko des Herunterklappens während des Prozesses der angewendeten Objektvermeidungsfunktion reduzieren.
Für die zweite Verbesserung wurden zwei Ultraschallsensoren am EGO-Fahrzeug hinzugefügt, um die linke und rechte Seite zu erkennen - seitlicher Objektabstand zum EGO-Fahrzeug. Im vorherigen Test konnte das EGO-Fahrzeug den linken und rechten Objektabstand zum EGO-Fahrzeug nicht erkennen, da der LIDAR kein Objekt erkennen kann, das näher als 15 cm zum EGO-Fahrzeug ist. Nach zwei Ultraschallsensoren am EGO-Fahrzeug und der Steuerlogik der Moving-Car-Ausweichfunktion kann das EGO-Fahrzeug beim Wechsel auf die Rückfahrspur auf einer viel präziseren Route fahren und auf die ursprüngliche Fahrspur zurückwechseln. Bisher kann der LIDAR nur Umgebungserkennungsgeräte für die Funktion zur Vermeidung von fahrenden Autos verwendet werden, die Route zur Vermeidung von fahrenden Autos ist voreingestellt. Das EGO-Fahrzeug kann der voreingestellten Route folgen, sobald sich Objekte (Autos) davor befinden. Dies ist der Grund, warum die Vermeidungsroute nicht genau vor der Verbesserung liegen kann. Nach der Verbesserung erkennt das EGO-Fahrzeug den linken und rechten Objektabstand zum EGO-Fahrzeug. Das EGO-Fahrzeug beginnt mit dem Ausweichprozess, um die Spur zu ändern, sobald sich Objekte vor ihm befinden, die von LIDAR erkannt werden, und dann beginnen die Ultraschallsensoren, den Objektabstand auf zwei Seiten zu erkennen. Sobald die Ultraschallsensoren erkennen, dass sich kein Objekt unter 10 cm zum EGO-Fahrzeug befindet, kann das EGO-Fahrzeug den Rückfahrvorgang starten, um auf die ursprüngliche Fahrspur zurückzufahren. Kurz gesagt, die zweite Verbesserung führt dazu, dass das EGO-Fahrzeug während des Vermeidungsprozesses von sich bewegenden Autos eine genauere Route hat.
Für die letzte Verbesserung wird ein intelligenterer Abstandsanpassungsalgorithmus hinzugefügt. Dieser Algorithmus sorgt dafür, dass das EGO-Fahrzeug schneller beschleunigt und verlangsamt wird als der vorherige, da die Einstellgeschwindigkeit kein fester Wert mehr ist, sondern ein dynamischer Wert. Da der Algorithmus in früheren Tests nicht intelligent genug ist, kann das Auto nur um einen voreingestellten festen Geschwindigkeitswert beschleunigen und verlangsamen. Der adaptive Tempomat-Prozess wird nicht glatt genug sein, und das EGO-Fahrzeug sieht während des Abstandsanpassungsprozesses zum Vorderwagen verkabelt aus. Nachdem der intelligentere Algorithmus im Steuerungsprogramm der adaptiven Geschwindigkeitsregelung hinzugefügt wurde, kann das EGO-Fahrzeug in einem Prozent der aktuellen Geschwindigkeit oder fünf Prozent der aktuellen Geschwindigkeit beschleunigen und verlangsamen, der Prozess wird reibungsloser als zuvor sein. Der Grund dafür ist, dass die Geschwindigkeit auf der aktuellen Geschwindigkeit basiert, um sich dynamisch anzupassen, und das EGO-Fahrzeug wird sanfter beschleunigen und verlangsamen, da die Geschwindigkeit kontinuierlich ist und leichte Schwankungen aufweist. Kurz gesagt, die letzte Verbesserung wird das Fahren des EGO-Fahrzeugs während des Abstandsanpassungsprozesses unter der adaptiven Geschwindigkeitsregelungsfunktion reibungsloser machen.

Nach drei Verbesserungen in drei separaten Steuerprogrammen mit drei Funktionen im Echtzeit-Bewegungsplanungssystem werden diese drei separaten Steuerprogramme mit einem Spurhalteprogramm kombiniert, um ein endgültiges Echtzeit-Bewegungsplanungssystem zu erzeugen. Da diese drei separaten Steuerprogramme nach diesen Verbesserungen hervorragend funktionieren, lässt sich das Spurhalteprogramm leicht damit kombinieren. Nach dem Hinzufügen des Spurhalteprogramms fährt das EGO-Fahrzeug nur auf der Spur und vermeidet das Überqueren der Linie. Dadurch wird das EGO-Fahrzeug in der verkleinerten städtischen Umgebung stabiler als zuvor.

Zukünftige Verbesserung

Es gibt viele zukünftige Verbesserungsaspekte, die man sich von diesem Projekt vorstellen kann. Erstens reicht die Funktion der Echtzeit-Bewegungsplanung nicht aus. In the future, there are many ways to combine and improve these three functions makes the EGO vehicle have more and more functions, to generate a real-time motion planning system in fully functional. Secondly, the algorithm of lane keeping, adaptive cruise control, and moving car avoidance are not smart enough. There exists more advance algorithm for these three functions need to be found. For example, even the distance detection algorithm in adaptive cruise control already has been improved, however, there is still have possibility to improve the algorithm. Currently, the speed adjustment is based on five percent

of current speed or one percent of current speed, however, the speed adjustment is not dynamically. If there is an algorithm of memory for saving current speed or speed calculation based on distance and time can be added, then, the adaptive cruise control will be prefect. Also, multiple EGO vehicle driving on the same scaled-down urban environment, and EGO vehicle communication system need to be added in the real-time motion planning system to manage the traffic. In short, there will be a lot of aspects in the real-time motion planning system need to be improved in the future work.

Schlussfolgerung

Hardware and software are assembled and set appropriately in this project. The LIDAR raw data are appropriately transfer to usable data by the previous mentioned method for programing. Three different scenarios have been designed for testing obstacle avoidance function, moving car avoidance function, and adaptive cruise function. The control logic based on obstacle avoidance scenario, moving car avoidance scenario, and adaptive cruise control scenario have been designed and programmed. If the test results as expect, the real-time motion planning system has been implemented and works perfect in these three scenarios. However, the current real-time motion planning system is not perfect yet, it needs more works and more times to improve it. These three functions are the most basic function in real-time motion planning system. The final goal is to make this EGO vehicle has accident avoidance function; however, these three functions cannot let the EGO vehicle has the fully functional accident avoidance function. Apply permutations and combinations of these three basic functions will generate more possibility, which will bring a lot of different new functions in the real-time motion planning system.

Acknowledgements

First and foremost, I would like to show my deepest gratitude to my research advisor, Dr. Lisa Fiorentini, who has provided me with valuable guidance in every stage of the project and writing of this thesis. Without her instruction, kindness and patience, I could not have completed my thesis. I shall extend my thanks to my mom for all her encouragement and mental help. The work of last two semesters exhausted me, since I have onerous courses, individual research, and written work for applying graduate school. Without her encouragement and mental help, I cannot stick to now. Finally, I would like to thank all my friends, for their encouragement and support.

Reference

  1. Aqib, “What is Raspberry pi? Getting Started with Raspberry Pi 3,” Electronics Hobbyists, 18-Jan-2019. [Online]. Available:https://electronicshobbyists.com/tutorial-1-what-is-raspberry-pi-getting-started-with- raspberry-pi-3/. [Accessed:25-Apr-2020].
  2. Adafruit Industries, “Mini 3-Layer Round Robot Chassis Kit – 2WD with DC Motors,” adafruit industries blog RSS. [Online]. Available:https://www.adafruit.com/product/3244. [Accessed:25-Apr-2020].
  3. Adafruit Industries, “Adafruit DRV8833 DC/Stepper Motor Driver Breakout Board,” adafruit industries blog RSS. [Online]. Available:https://www.adafruit.com/product/3297. [Accessed:25-Apr-2020].
  4. T. Huang, “RPLIDAR-A1 360°Laser Range Scanner _ Domestic Laser Range Scanner,” SLAMTEC. [Online]. Available:https://www.slamtec.com/en/Lidar/A1. [Accessed:25-Apr-2020].
  5. “PowerCore 13000,” Anker. [Online]. Available:https://www.anker.com/store/powercore- 13000/A1215011. [Accessed:25-Apr-2020].
  6. “Welcome to lidar’s documentation! ¶,” Welcome to lidar’s documentation! – lidar documentation. [Online]. Available:https://lidar.readthedocs.io/en/latest/. [Accessed:25-Apr-2020].
  7. “RealVNC,” Download VNC Viewer for macOS | VNC® Connect. [Online]. Available:https://www.realvnc.com/en/connect/download/viewer/macos/. [Accessed:25-Apr-2020].
  8. Adafruit Industries, “HC-SR04 Ultrasonic Sonar Distance Sensor 2 x 10K resistors,” adafruit industries blog RSS. [Online]. Available:https://www.adafruit.com/product/3942. [Accessed:25-Apr-2020].

Herstellungsprozess

  1. Computer Vision als Bewegungssensor für SmartThings
  2. DIY Infrarot-Bewegungssensorsystem für Raspberry Pi
  3. KI für autonomes Fahren für Donkey Car Garbage Collector
  4. Wartungsplanung:Was haben Sie davon?
  5. Vorbereitung auf eine autonome Zukunft
  6. Mehrfachverwendung für einen Plattformwagen
  7. 3D-Bewegungsverfolgungssystem für autonome Technologie
  8. Autonome Sensortechnologie für Echtzeit-Feedback über Kühlung und Heizung
  9. Schrägverzahnte Zahnstange für lineare Bewegung
  10. Wie wählt man einen Turbolader für sein Auto aus?