Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Realtime bewegingsplanning voor autonome auto's in meerdere situaties, onder gesimuleerde stedelijke omgeving

Geavanceerde autonome auto's hebben een revolutionaire betekenis voor de auto-industrie. Terwijl steeds meer bedrijven al begonnen zijn met het bouwen van hun eigen autonome auto's, heeft nog niemand een praktische autonome auto op de markt gebracht. Een belangrijk probleem van hun auto's is het ontbreken van een betrouwbaar actief realtime bewegingsplanningssysteem voor de stedelijke omgeving. Een realtime bewegingsplanningssysteem zorgt ervoor dat auto's veilig en stabiel onder de stedelijke omgeving kunnen rijden. Het uiteindelijke doel van dit project is het ontwerpen en implementeren van een betrouwbaar realtime bewegingsplanningssysteem om het aantal ongevallen in autonome auto's in plaats van menselijke bestuurders te verminderen. Het realtime bewegingsplanningssysteem omvat rijstrookbehoud, het vermijden van obstakels, het vermijden van rijdende auto's, adaptieve cruisecontrol en het vermijden van ongevallen. In het onderzoek zullen EGO-voertuigen worden gebouwd en uitgerust met een beeldverwerkingseenheid, een LIDAR en twee ultrasone sensoren om de omgeving te detecteren. Deze omgevingsgegevens maken het mogelijk om een ​​volledig besturingsprogramma in het realtime bewegingsplanningssysteem te implementeren. Het besturingsprogramma wordt geïmplementeerd en getest in een verkleind EGO-voertuig met een verkleinde stedelijke omgeving. Het project is verdeeld in drie fasen:bouw EGO-voertuigen, implementeer het besturingsprogramma van het realtime bewegingsplanningssysteem en verbeter het besturingsprogramma door te testen onder de verkleinde stedelijke omgeving. In de eerste fase wordt elk EGO-voertuig gebouwd met een EGO-voertuigchassiskit, een Raspberry Pi, een LIDAR, twee ultrasone sensoren, een batterij en een voedingskaart. In de tweede fase zal het besturingsprogramma van het realtime bewegingsplanningssysteem worden geïmplementeerd onder het rijstrookbehoudprogramma in Raspberry Pi. Python is de programmeertaal die zal worden gebruikt om het programma te implementeren. Lane-keeping, obstakel vermijden, rijdende auto vermijden, adaptieve cruise control-functies zullen in dit controleprogramma worden ingebouwd. In de laatste fase worden de test- en verbeteringswerken afgerond. Betrouwbaarheidstesten zullen worden ontworpen en uitgevoerd. Hoe meer gegevens uit tests worden gehaald, hoe stabieler het realtime bewegingsplanningssysteem kan worden geïmplementeerd. Ten slotte zal er één betrouwbaar bewegingsplanningssysteem worden gebouwd, dat zal worden gebruikt in

normale schaal EGO-voertuigen om het aantal ongevallen in een stedelijke omgeving aanzienlijk te verminderen.

Inleiding

Er zijn al veel autonome auto's van niveau 3 op de markt geproduceerd, die bestuurders in staat stellen volledig hands-off te zijn, hun ogen uit te kijken, door de computer de rijtaak te laten overnemen. Consumenten hebben echter beperkte toegang om deze functies te gebruiken vanwege veiligheidsredenen tijdens het besturen van hun autonome auto's van niveau 3, omdat auto's van niveau 3 de rijbaan niet volledig van mensen kunnen overnemen. Daarom beschouwen de meeste landen auto's van niveau 3 niet helemaal veilig en betrouwbaar. Hoewel auto's van niveau 3 technisch autonoom kunnen zijn, zijn de computers nog niet volwassen in het omgaan met noodsituaties. Een autonome auto van een hoger niveau (niveau 4) is nodig om bestuurders fysiek en zelfs psychologisch te bevrijden. Het is dus de onderzoeksprioriteit om de autonome auto van niveau 4 te bouwen en op de markt te brengen. Om dit praktisch te maken in het dagelijks leven, zijn er veel systemen die moeten worden uitgerust, en een daarvan is het realtime bewegingsplanningssysteem. Het ontvangt verwerkte signalen van de beeldverwerkingseenheid, LIDAR en ultrasone sensoren om veel nuttige functies voor auto's van niveau 4 te bereiken. Zoals een betrouwbare functie voor het vermijden van obstakels, enz. Het probleem is echter dat de meeste van deze functies die in de auto moeten worden uitgerust, nog steeds passieve functies zijn en alleen zijn ontworpen voor snelwegen. Kortom, in dit onderzoek is het ontwerpen van een slimmer en betrouwbaarder realtime bewegingsplanningssysteem voor de stedelijke omgeving nodig. Het onderzoek zal gebaseerd zijn op een verkleinde stedelijke omgeving met verkleind EGO-voertuig om algoritmen te ontwerpen en te testen in een realtime bewegingsplanningssysteem. Autobesturingslogica en betrouwbare algoritmen zijn belangrijke punten voor het ontwerpen van een slim en betrouwbaar realtime bewegingsplanningssysteem voor stedelijke omgevingen. In de eerste fase van het project zal het hardwareteam de EGO-voertuigen bouwen met aangekochte hardware. Elk EGO-voertuig wordt gebouwd met een voertuigchassiskit, een Raspberry Pi, een LIDAR, twee ultrasone sensoren, een batterij en een voedingskaart. De tweede fase van het real-time project voor het bewegingsplanningsysteem zal worden gestart zodra de hardwarevoorbereiding is voltooid. Het controleteam zal de ingebouwde code van het beeldverwerkingsteam gebruiken om eerst een algoritme voor het bijhouden van de rijstrook te bouwen. Het real-time bewegingsplanningssysteem van het voertuig zal worden gebouwd nadat het algoritme voor het bijhouden van de rijstrook is gebouwd. In het realtime bewegingsplanningssysteem zal de LIDAR worden gebruikt als de belangrijkste sensor van het voertuig. Er zal een geschikte methode worden gevonden, waarmee de LIDAR het mogelijk maakt om obstakels te detecteren en bruikbare signalen terug te sturen voor latere programmering. Er zijn drie hoofdfuncties die zullen worden ingebouwd in het real-time motion planning-systeemproject. De eerste functie is het vermijden van obstakels, waardoor de EGO-voertuigkracht kan stoppen voor obstakels. De tweede functie is het vermijden van auto's, waardoor het EGO-voertuig van rijstrook kan veranderen om een ​​auto-ongeluk te voorkomen en terug te rijden naar de oorspronkelijke rijstrook. De laatste functie is adaptieve cruisecontrol, waarmee het EGO-voertuig zijn eigen snelheid kan aanpassen om de veiligheidsafstand tot de voorste auto te behouden. Op basis van deze drie functies zal een basisfunctie voor het vermijden van ongevallen worden gevormd in het realtime bewegingsplanningssysteem. In de laatste fase van het project zal het ingebouwde realtime bewegingsplanningssysteem

implementeren en testen op het EGO-voertuig onder de verkleinde stedelijke omgeving. Er zullen verschillende tests worden ontworpen om de betrouwbaarheid van het realtime bewegingsplanningssysteem te testen en de toekomstige verbetering van het realtime bewegingsplanningssysteem samen te vatten.

Hardware

In dit project worden verkleinde EGO-voertuigen in figuur 1 gebruikt als testobjecten. Deze robots zijn gebouwd op basis van robotchassiskits met DC-motoren. Robotchassiskit met DC-motoren brengt een bruikbaar frame en een aandrijfsysteem voor de EGO-voertuigen. Op basis van zijn uitbreidbaarheid kunnen andere componenten op een chassis worden toegevoegd, waaronder Raspberry Pi, motorcircuit, een LIDAR, twee ultrasone sensoren en batterijbank. Raspberry Pi is gekozen als het computerplatform voor dit project omdat het een volwassen platform is en Python-code erop kan worden geïmplementeerd. Motorcircuits worden gebruikt om de juiste hoeveelheid stroom naar DC-motoren te verdelen en de robots te laten bewegen, door de instructie van de besturingslogica. Een LIDAR wordt gebruikt als de hoofdsensor voor dit real-time bewegingsplanningssysteem omdat ze het vermogen om obstakels te detecteren (verder dan 15 cm) naar deze verkleinde EGO-voertuigen kunnen brengen, en het vermogen om obstakels te detecteren is de belangrijkste basisvaardigheid voor dit realtime motion planning systeem in dit project. Ultrasone sensoren kunnen het EGO-voertuig in staat stellen om dichterbij gelegen objecten te detecteren onder een bereik van 15 cm die LIDAR niet kan detecteren. Batterijbanken worden gebruikt als stroombron voor deze EGO-voertuigen en ze kunnen stroom leveren aan Raspberry Pi, LIDAR's en motoren. Het gedetailleerde hardware-verbindingsblokdiagram wordt hieronder getoond in figuur 2.

Verkleind EGO-voertuigchassis:

Adafruit (PID 3244) Mini 3-laags ronde robotchassiskit - 2WD met DC-motoren, getoond in figuur 3, worden gebruikt als chassis voor dit project. Door de uitbreidbaarheid van het chassis kunnen er componenten aan worden toegevoegd. De chassiskit bevat ook twee motoren en wielen, wat betekent dat er ook één voedingssysteem in deze kit zit. Dit voedingssysteem zorgt ervoor dat het hardwareteam gemakkelijk het EGO-voertuig kan bouwen zonder extra tijd om een ​​match-voedingssysteem voor het robotchassis te vinden.

Raspberry Pi:

Er zijn verschillende modellen van Raspberry Pi die voor dit project kunnen worden gebruikt, en de Raspberry Pi 3B+ in figuur 4 is gekozen om in dit project te gebruiken. De belangrijkste reden om voor Raspberry Pi 3B+ te kiezen, is dat deze voldoende rekenkracht heeft voor dit project. Het heeft ook ingebouwde Wi-Fi en de efficiëntie van de Wi-Fi-transmissie is sneller dan het vorige model. Verder heeft de Raspberry Pi 3B+ slechts 5V/1,5A stroombroningang nodig en op de markt zijn er veel batterijbanken die kunnen worden gekozen om aan deze stroombehoefte te voldoen. Dit is ook dezelfde reden waarom Raspberry Pi 4 niet is gekozen. Raspberry Pi 4 heeft een 9V/2A-stroombroningang nodig, en op de markt hebben batterijen een uitgang van 9V/2A is duur en zeldzaam. Niet alleen dat, ook Raspberry Pi 4 heeft een hogere prijs dan Raspberry Pi 3B+, en zelfs deze twee modellen hebben vergelijkbare rekenkracht. GPIO-pinnen op Raspberry Pi zullen worden gebruikt als invoerpinnen om signaal te ontvangen van een LIDAR, twee ultrasone sensoren; ook zullen GPIO-pinnen outputpinnen zijn om een ​​signaal naar een motordriver te sturen.

Motorbesturingscircuit (voedingskaart):

Voor dit project is gekozen voor de DRV8833-motorstuurprogramma's in figuur 3. Motordriver kan stroom naar motoren verdelen en stuurcommando's ontvangen van Raspberry pi. Er zijn vier input-pinnen (AIN1,2; BIN1,2), vier output-pinnen (AOUT1,2; BOUT1,2), één aardingspin (GND), één SLP-pin en één VM-pin worden in dit project gebruikt (afbeelding 5). Uitgangspennen worden gebruikt om de stroom naar deze twee motoren te verdelen en deze twee motoren aan te sturen om EGO-voertuigen te laten bewegen. Invoerpinnen worden gebruikt om stuursignalen van GPIO-pinnen op Raspberry Pi te ontvangen en deze twee motoren te laten draaien als de operator dat nodig heeft. De VM-pin krijgt stroom van de '+'-pin van de batterijbank, ook wel VCC genoemd. SLP-pin maakt verbinding met VM-pin, het is de activeringspin voor de motordriver. Sluit het aan op VCC om het in te schakelen of een GPIO-hoge pin voor controle. GND-pin verbindt zowel de '-'-pin van de batterijbank als de grondpin van de Raspberry Pi. Afbeelding 6 toont de detailaansluiting van de voedingskaart in blokdiagramvorm.

Printplaten zullen platforms zijn voor motorbestuurders om stroomkaarten te maken. Op deze printplaatcircuits kunnen eenvoudig motordrivers worden in- en uitgeschakeld. Dit voorkomt dat de motordriver direct op printplaten wordt gesoldeerd. Aangezien de voortgang voor het bevestigen van motorstuurprogramma's die op de printplaten zijn gesoldeerd, moeilijker is dan het bevestigen van de printplaten met deze circuits, kan deze procedure projectteamleden in staat stellen te voorkomen dat de motorstuurprogramma's direct op de printplaten worden gesoldeerd. (figuur 7 en figuur 8)

LIDAR:

Voor dit project is gekozen voor LIDAR in figuur 9. De omgeving kan door LIDAR worden gedetecteerd om afstands- en hoekgegevens te genereren. Op basis hiervan zullen EGO-voertuigen detectievermogen hebben en kunnen obstakels, vermijding van bewegende auto's en adaptieve besturingsfuncties worden ingebouwd in het realtime bewegingsplanningssysteem. LIDAR heeft één micro-USB-poort die direct op Raspberry Pi kan worden aangesloten, zodat Raspberry Pi gegevens van LIDAR kan lezen. LIDAR krijgt ook stroom van Raspberry Pi via dezelfde USB-poort.

Batterij:

De grootte van de batterijbank is een belangrijk probleem van dit project. Omdat het EGO-voertuig een beperkte ruimte heeft om de batterij te plaatsen, kiezen de slanke batterijen ervoor om te kiezen. Batterijbanken moeten een stroomcapaciteit van ten minste 10000 mAh hebben om ervoor te zorgen dat twee motoren, twee Raspberry Pi en één LIDAR op de juiste manier op elk EGO-voertuig kunnen worden gebruikt. De grootte van de batterijen moet ook zo goed mogelijk passen bij de grootte van EGO-voertuigen. Dus de Anker Power Core 13000 draagbare oplader die in figuur 10 wordt weergegeven, is gekozen voor dit project omdat het niet alleen past in de grootte van EGO-voertuigen, maar ook een stroomcapaciteit van 13000 mAh heeft.

Ultrasone sensoren:

Ultrasone sensoren in figuur 11 worden gebruikt om de korte afstand te detecteren, aangezien de minimale detectieafstand voor de LIDAR 15 cm is, elk ander obstakel dichterbij dan 15 cm kan niet worden gedetecteerd door de LIDAR. Ultrasone sensoren kunnen het korte bereik zelfs onder de 5 cm detecteren. Zo zijn er twee ultrasone sensoren gemonteerd aan de linker- en rechterkant van het EGO-voertuig om de auto op de achteruitrijstrook te detecteren. VCC-pin is verbonden met pin 2 of pin 4, wat de Raspberry Pi VCC-pin is, en GND is verbonden met Raspberry Pi-aardpin

Software

In dit project moeten EGO-voertuigen draadloos worden bestuurd. Om dit mogelijk te maken, moeten monitor en shell op Raspberry Pi draadloos zijn verbonden met een lokale pc/Mac. Om dit te bereiken, moeten draadloze shell-commando's en VNC-verbindingssoftware [7] worden gebruikt. Ook is in dit project Python 3 gekozen als programmeertaal omdat het volwassen en gebruiksvriendelijk is. Er is een aanzienlijk aantal pakketten op python die in dit project kunnen worden gebruikt, python heeft bijvoorbeeld LIDAR-pakket [6] dat kan worden gebruikt voor het besturen van de LIDAR die in dit project wordt gebruikt. Het LIDAR-pakket kan alleen worden geïmplementeerd in een Python 3-omgeving. Alle software draait in het Raspbian-besturingssysteem op Raspberry Pi.

Verbind Shell in Raspberry Pi met lokale pc/MAC:


EGO-voertuigen moeten draadloos worden bestuurd en de shell in Raspberry Pi moet worden verbonden met de lokale pc/MAC-shell. Om shells te verbinden, moet het volgende commando worden ingevoerd:
Voer eerst het commando 'sudo raspi-config' in de Pi-shell in om de ssh-server in Pi in te schakelen. Voer vervolgens de opdracht 'ifconfig' in de Pi-shell in, het IP-adres '192.168.xxx.xxx' zal na deze opdracht worden gevonden. Voer in de lokale pc/MAC-shell de opdracht 'ssh [email protected]' in om de Pi-shell te verbinden. De standaard gebruikersnaam van Raspberry Pi is 'pi' en het standaardwachtwoord van de Raspberry Pi is 'raspberry' moet worden ingevoerd. Ten slotte kan de Raspberry Pi-shell worden bestuurd door een lokale pc/MAC-shell.

Python-versie:


In het Raspberry Pi 3B+-versiebord is de Python 2 de standaardprogrammaomgeving, maar het LIDAR-pakket kan alleen worden gebruikt in een Python3-omgeving. Het volgende commando wordt gebruikt om Python 3 in te stellen als de standaard programmaomgeving in shell:

Voer eerst 'sudo rm /usr/bin/python' in om de standaard Python-link uit de systeemstandaard te verwijderen

koppeling. Voer vervolgens 'sudo

. in

-s /usr/bin/python3.X

commando om de nieuwe

. opnieuw toe te wijzen

standaard python-link naar Python-versie moet worden gebruikt. In dit commando betekent 'X' de Python3

versie die al is geïnstalleerd. Voer hierna ' Python' in om de standaard Python-versie te controleren.

LIDAR-pakket:

Het LIDAR-pakket moet worden geïnstalleerd om het signaal van de LIDAR programmeerbaar te maken. Voer onder Python3-omgeving, in shell-venster, de volgende opdracht in om het LIDAR-pakket te installeren:Voer 'sudo pip3 install LIDAR' in om het LIDAR-pakket te installeren.

VNC-verbinding:

VNC-server en VNC-verbindingsprogramma zijn gekozen om in dit project te gebruiken, zodat lokale pc/MAC de mogelijkheid heeft om de Raspberry Pi draadloos te bewaken. Om de VNC-server in te schakelen en VNC connect te installeren, moet de volgende opdracht worden ingevoerd:
Voer eerst de opdracht 'sudo raspi-config' in om in het instellingenmenu van de Raspberry Pi te komen. Voer vervolgens de opdracht 'vncserver' in om de VNC-server in Raspberry Pi in te schakelen (na het opnieuw opstarten van de Pi moet deze instelling opnieuw worden ingeschakeld). Download en installeer vervolgens de VNC-verbinding op de lokale pc/MAC. Voer daarna het eerder gevonden Raspberry Pi IP-adres in de adresbalk van VNC connect in. Voer de gebruikersnaam en het wachtwoord van Raspberry Pi in die al in het shell-gedeelte zijn genoemd. Ten slotte kan de lokale pc/MAC de Raspberry Pi draadloos bewaken.

Methodologie

Fase1:

Het EGO-voertuig wordt geassembleerd door Raspberry Pi, powerboard, LIDAR, twee ultrasone sensoren en batterijbank. Na montage wordt de software inclusief python, LIDAR-pakket, VNC-verbinding en shell-verbinding geïnstalleerd en op de juiste manier ingesteld. De manier om LIDAR over te zetten van leesbare onbewerkte gegevens naar bruikbare detectiegegevens voor programmering in de volgende fase, zal worden gevonden. Het EGO-voertuig wordt na de vorige drie stappen voorbereid en klaar voor programmering en tests.

Fase2:

Er zullen drie scenario's worden ontworpen om de functie voor het vermijden van obstakels, de functie voor het vermijden van bewegende auto's en de adaptieve cruise control-functie te testen. Aan de hand van drie scenario's wordt de besturingslogica van drie functies ontworpen en worden drie stroomschema's van drie besturingslogica's geschetst. Nadat de stroomdiagrammen zijn gegenereerd, moeten de stroomdiagrammen meerdere keren worden herzien, totdat de besturingslogica logisch nauwkeurig is. Vervolgens worden programma's en algoritmen van afzonderlijke drie functies geprogrammeerd via de stroomschema's. Het EGO-voertuig zal in de laatste fase gereed zijn om drie functies te testen.

Fase3:

De eerste groep betrouwbare tests zal worden uitgevoerd onder drie ontworpen scenario's met drie afzonderlijke functies. Problemen en toekomstige verbeteringen zullen door deze tests worden gevonden. Vervolgens zullen, na deze gevonden problemen en toekomstige verbeteringen, besturingslogica, programma's met drie functies, algoritme en hardware worden verbeterd; problemen zullen worden opgelost. Voor dit project zullen drie afzonderlijke functies worden gecombineerd met het Lane Keeping-programma als één volledig functioneel realtime bewegingsplanningssysteem. De tweede groep betrouwbare tests zal worden uitgevoerd onder drie ontworpen scenario's met deze reeds gecombineerde functie. Nadat twee groepen betrouwbare tests zijn voltooid, zal de definitieve versie van het realtime bewegingsplanningssysteem van dit project worden voltooid.

LIDAR

Er zijn vier soorten gegevens die uit LIDAR kunnen worden gelezen en in dit project zullen slechts twee soorten gegevens worden gebruikt, namelijk hoek en afstand. De meting van de hoek in gradeneenheid [0,360), en de meting van de afstand zal groter zijn dan 15 cm (andere afstand lager dan 15 cm, de 0-waarde wordt teruggestuurd). Het probleem was dat er alleen afstands- en hoekgegevens uit de LIDAR kunnen worden gelezen, maar hoe kunnen deze gegevens worden gebruikt bij het detecteren van obstakels? De oplossing is om het LIDAR-detectiebereik in 4 secties te verdelen en de afstandswaarde voor obstakels te detecteren om de beslissing te nemen om de volgende stapbeweging van het voertuig te regelen. Zoals te zien is in figuur 12, is 315 graden tot 45 graden het voorste gedeelte en 135 graden tot 225 graden is het achterste gedeelte. Omdat de Lidar alleen het object verder dan 15 cm kan detecteren, worden deze twee secties voorlopig alleen gebruikt. Voor de linker- en rechtersectie kan de ultrasone sensor de detectietaak voor deze twee secties aan.

Dit is de afbeelding die laat zien hoe deze twee detectiesecties op de weg werken:

Zoals figuur 13 laat zien, rijdt het EGO-voertuig op de rechterrijstrook en rijdt auto B op de achteruitrijstrook. De groene cirkel rond het EGO-voertuig is het eerder genoemde geldige detectiebereik. Het detectiebereik wordt in vier secties verdeeld en de detectieafstand is groter dan 15 cm. Zoals getest, heeft dit voorwaartse detectiegedeelte geen invloed op auto B, tenzij auto B over de stippellijn tussen twee rijstroken stapt.

Probleemformulering

Obstakel vermijden:

Er zijn drie scenario's overwogen. Het eerste scenario is voor het testen van de functie voor het vermijden van obstakels, zoals weergegeven in figuur 14. Er is één obstakel in het midden van de weg en het EGO-voertuig komt er dichtbij, en auto B rijdt achteruit op de andere rijstrook, net naast het EGO-voertuig . Het EGO-voertuig kan de rijstrook niet veranderen om een ​​ongeval te voorkomen, omdat het op auto B zal botsen. De enige keuze die auto A nog heeft, is volledig stoppen voor het obstakel.

Het vermijden van rijdende auto's (een ander scenario voor het vermijden van obstakels):

Het tweede scenario is ontworpen op basis van een ander scenario voor het vermijden van obstakels en wordt genoemd als de functie voor het vermijden van rijdende auto's in figuur 15. Auto B rijdt in de verkeerde richting en op dezelfde rijstrook van het EGO-voertuig. Deze keer is er geen auto of obstakel op de andere rijstrook, dus het EGO-voertuig kan ervoor kiezen om van rijstrook te wisselen om auto B te vermijden, en na het vermijden van auto B kan het EGO-voertuig teruggaan naar de juiste rijstrook.

Het laatste scenario is bedoeld om de adaptieve cruisecontrol-functie in figuur 16 te testen. Auto B rijdt in voorwaartse richting, het EGO-voertuig moet op veilige afstand van auto B blijven om ongelukken te voorkomen. Het EGO-voertuig past zijn eigen snelheid aan om de veilige afstand te bewaren.

Adaptieve cruisecontrol:

Besturingslogica

Variabelen definiëren:

Logica voor het vermijden van obstakels:

In de logica van het vermijden van obstakels in figuur 17, zal de auto vooruit rijden als de afstandsdetectie zich op de verste afstand bevindt. Als de afstandsdetectie zich op een gevaarlijke afstand bevindt en de hoekdetectie laat zien dat het obstakel zich in het voorwaartse detectiegedeelte bevindt. Vervolgens detecteert het EGO-voertuig de achteruitrijstrook en als er obstakels of auto's op de achteruitrijstrook zijn, wordt het EGO-voertuig volledig gestopt.

logica voor het vermijden van rijdende auto's:

Bij het vermijden van rijdende auto's toont de logica in figuur 18 dat als de afstandsdetectie zich op de verste afstand bevindt, de auto vooruit blijft rijden. Als de afstandsdetectie zich op een gevaarlijke afstand bevindt en de hoekdetectie laat zien dat het obstakel zich in het voorwaartse detectiegedeelte bevindt. Vervolgens zal het EGO-voertuig de achteruitrijstrook detecteren en als er geen obstakels of auto's op de achteruitrijstrook zijn gedetecteerd door ultrasone sensoren, zal het EGO-voertuig naar de achteruitrijstrook schakelen om de auto in de verkeerde richting te vermijden. Zodra er geen obstakels of auto's op de oorspronkelijke rijstrook zijn, schakelt het EGO-voertuig terug naar de oorspronkelijke rijstrook.

Adaptive Cruise Control Functie Controle Logica:

In het scenario met de adaptieve cruisecontrolfunctie zijn er twee problemen:het ene is dat het EGO-voertuig te snel rijdt en het andere is dat het EGO-voertuig te langzaam rijdt. In afbeelding 19 ziet u de volledige controlelogica van de adaptieve cruisecontrolfunctie.

  • Als de afstandsdetectie zich op de vooraf ingestelde veilige afstand bevindt, zal het EGO-voertuig vooruit blijven rijden om het voorste voertuig te volgen.
  • Als de afstandsdetectie zich in Speedup-afstand bevindt, ook als het detectiebereik de sectie voorwaartse detectie is. De huidige snelheid zal ongeveer 5% van de huidige snelheid versnellen. Detecteer opnieuw, als de afstandsdetectie zich op de vooraf ingestelde veilige afstand bevindt, zal het EGO-voertuig vooruit blijven rijden; zo niet, dan versnelt de huidige snelheid met ongeveer 1% van de huidige snelheid en blijft scannen totdat de afstandsdetectie de vooraf ingestelde veilige afstand bereikt, waarna het EGO-voertuig het versnellingsproces beëindigt en de huidige snelheid behoudt.
  • Als de afstandsdetectie zich op een vertragingsafstand bevindt, ook als het detectiebereik een voorwaartse detectiesectie is. De huidige snelheid zal ongeveer 5% van de huidige snelheid vertragen. Detecteer opnieuw, als de afstandsdetectie zich op de vooraf ingestelde veilige afstand bevindt, zal het EGO-voertuig vooruit blijven rijden; zo niet, dan vertraagt ​​de huidige snelheid met ongeveer 1% van de huidige snelheid en blijft scannen totdat de afstandsdetectie de vooraf ingestelde veilige afstand bereikt, waarna het EGO-voertuig het vertragingsproces beëindigt en de huidige snelheid behoudt.

Gecombineerde besturingslogica:

Hier zijn de stroomschema's van de besturingslogica voor gecombineerde besturingslogica van de vorige drie besturingslogica's:

In gecombineerde logica zullen het programma voor rijstrookbehoud en adaptieve cruisecontrol niet worden gewijzigd. De functie voor het vermijden van obstakels en de functie voor het vermijden van bewegende auto's worden echter als één functie gecombineerd. Voorheen kon de functie voor het vermijden van obstakels de auto alleen volledig laten stoppen bij het obstakel in het midden van de weg, maar wat is de volgende stap van de controle? Deze functie kan worden gecombineerd met de functie voor het vermijden van rijdende auto's, die de aankomende auto kan passeren en van rijstrook kan wisselen. In de functie voor het vermijden van obstakels kan de auto ultrasone sensoren en LIDAR gebruiken om de omgeving te detecteren, om te controleren of er een andere auto op de andere rijstrook is, nadat deze volledig voor het obstakel is gestopt. Als er geen auto of obstakel op de achteruitrijstrook staat, kan de auto door het obstakel rijden en zijn reis voortzetten.

Resultaten

Vorige resultaten:

EGO-voertuigen worden met succes geassembleerd met hardware die is gekozen om te gebruiken. Het Lane Keeping-team implementeert met succes een bruikbaar Lane Keeping-programma op basis van het werk van het beeldverwerkingsteam dat het signaal van de camera zal gebruiken. De onbewerkte LIDAR-gegevens worden op de juiste manier overgedragen naar bruikbare gegevens door de eerder genoemde methode voor programmeren. Realtime bewegingsplanningssysteem met het vermijden van obstakels, het vermijden van rijdende auto's en adaptieve cruisecontrol-functies zijn gebouwd als drie afzonderlijke besturingsprogramma's op basis van het rijstrookbehoudprogramma. Eerdere tests zijn gebaseerd op deze drie afzonderlijke controleprogramma's om de stabiliteit te testen, omdat het moeilijker is om ze te combineren om de stabiliteit te testen dan om ze afzonderlijk te testen. Obstakelvermijdingsfunctie werkt goed, het EGO-voertuig kan geforceerd stoppen voor het vooraf ingestelde obstakel. Het EGO-voertuig is echter te zwaar met twee Raspberry Pi-borden en één  LIDAR, soms het EGO-voertuig

zal naar beneden klappen vanwege het hoge gewicht. Bij het vermijden van rijdende auto's werkt de logica van het wisselen van rijstrook goed, maar de vermijdingsroute is niet precies zoals verwacht. Er moeten twee ultrasone sensoren aan het EGO-voertuig worden toegevoegd, zodat het EGO-voertuig objecten dichterbij dan 15 cm kan detecteren, met name obstakels aan de linker- en rechterkant. In de adaptieve cruise control-functie werkt het programma voor het aanpassen van de afstand, maar tijdens het aanpassingsproces van de afstand is de snelheid van het EGO-voertuig niet stabiel zoals verwacht. De reden is dat de besturingslogica van adaptieve cruisecontrol de auto alleen met dezelfde snelheid laat versnellen en vertragen. Er moet een slimmer algoritme voor het aanpassen van de afstand worden toegevoegd aan de besturingslogica van de adaptieve cruisecontrol-functie.

Resultaten verwachten:

Na testresultaten van eerdere tests zijn er verschillende verbeteringen aangebracht aan de besturingsprogramma's en het EGO-voertuig. Ten eerste is het gewicht en de hoogte van het EGO-voertuig verminderd om het risico op neerklappen te verminderen. Vervolgens zijn twee ultrasone sensoren en een begeleidend programma toegevoegd aan het programma voor het vermijden van bewegende auto's, waardoor het EGO-voertuig een nauwkeuriger detectievermogen heeft voor de linker- en rechterobjectafstand tot het EGO-voertuig. Vervolgens is er een slimmer afstandsaanpassingsalgoritme toegevoegd in het adaptieve cruisecontrol-gedeelte. Anders dan de vorige besturingslogica, is er één versnellings- en vertragingsalgoritme toegevoegd, het EGO-voertuig kan naar behoefte versnellen en vertragen in één procent van de huidige snelheid of vijf procent van de huidige snelheid. Eindelijk zullen deze drie functies worden gecombineerd met het Lane Keeping-programma als de definitieve versie van het realtime bewegingsplanningssysteem in dit project.

Voor de eerste verbetering is het gewicht en de hoogte van het EGO-voertuig verminderd, ze zullen het risico van neerklappen aanzienlijk verminderen. Gewichtsvermindering van het EGO-voertuig zal de traagheidskracht van het EGO-voertuig tijdens het krachtstopproces verminderen. Volgens de tweede bewegingswet van Newton is de traagheidskracht gelijk aan de versnellingstijden tot de massa van het object. Omdat, bij dezelfde acceleratiesnelheid als voorheen, het verminderen van de massa (gewicht) van het EGO-voertuig de traagheidskracht die het EGO-voertuig verdraagt, aanzienlijk zal verminderen. Dit vermindert het risico dat u tijdens het geforceerd stoppen direct naar beneden klapt. Ook zal hoogtereductie de positie van het zwaartepunt verminderen

van het EGO-voertuig, waardoor ook het risico op neerklappen wordt verkleind. Voorheen was er nog een Raspberry Pi-bord op de bovenkant van het EGO-voertuig, om het te verwijderen zal de positie van het zwaartepunt van het EGO-voertuig verminderen. De reden is simpel, de positie van het zwaartepunt van het EGO-voertuig beïnvloedt de stabiliteit ervan. Hoe lager het zwaartepunt, hoe stabieler het EGO-voertuig. De eerste verbetering zal dus met succes het risico op neerklappen tijdens het proces van de toegepaste objectvermijdingsfunctie verminderen.
Voor de tweede verbetering zijn twee ultrasone sensoren toegevoegd aan het EGO-voertuig om de linker- en rechterzijde te detecteren - zijobjectafstand tot het EGO-voertuig. In eerdere tests kon het EGO-voertuig de objectafstand aan de linker- en rechterkant tot het EGO-voertuig niet detecteren, omdat de LIDAR geen object kan detecteren dat zich dichter dan 15 cm bij het EGO-voertuig bevindt. Nadat twee ultrasone sensoren aan het EGO-voertuig zijn toegevoegd en de besturingslogica van het vermijden van bewegende auto's, kan het EGO-voertuig op een veel nauwkeuriger route rijden tijdens het wisselen naar de achteruitrijstrook en teruggaan naar de oorspronkelijke rijstrook. Voorheen was de LIDAR alleen geschikt voor omgevingsdetectieapparatuur die kan worden gebruikt voor het vermijden van bewegende auto's, de route van het vermijden van bewegende auto's is vooraf ingesteld. EGO-voertuig aan kan de vooraf ingestelde route volgen zodra er objecten (auto's) voor staan. Dit is de reden waarom de vermijdingsroute niet precies vóór de verbetering kan zijn. Na de verbetering zal het EGO-voertuig de afstand tussen objecten aan de linker- en rechterkant tot het EGO-voertuig detecteren. Het EGO-voertuig begint het vermijdingsproces om van rijstrook te veranderen zodra er objecten voor worden gedetecteerd door LIDAR, waarna de ultrasone sensoren beginnen met het detecteren van de objectafstand aan twee kanten. Zodra de ultrasone sensoren detecteren dat er geen object minder dan 10 cm van het EGO-voertuig is, kan het EGO-voertuig het terugrijproces starten om terug te rijden naar de oorspronkelijke rijstrook. Kortom, de tweede verbetering zorgt ervoor dat het EGO-voertuig een nauwkeurigere route heeft tijdens het vermijden van bewegende auto's.
Voor de laatste verbetering zal een slimmer algoritme voor afstandsaanpassing worden toegevoegd. Dit algoritme zorgt ervoor dat het EGO-voertuig sneller en langzamer gaat versnellen dan het vorige, aangezien de ingestelde snelheid geen vaste waarde meer is, maar een dynamische waarde. Omdat het algoritme in eerdere tests niet slim genoeg is, kan de auto alleen versnellen en vertragen van een vooraf ingestelde vaste snelheidswaarde. Het adaptieve cruise control-proces zal niet soepel genoeg zijn en het EGO-voertuig ziet er bedraad uit tijdens het afstandsaanpassingsproces naar de voorste auto. Nadat het slimmere algoritme dat is toegevoegd aan het besturingsprogramma van adaptieve cruisecontrol, het EGO-voertuig kan versnellen en vertragen in één procent van de huidige snelheid of vijf procent van de huidige snelheid, zal het proces soepeler verlopen dan voorheen. De reden is dat de snelheid gebaseerd zal zijn op de huidige snelheid om dynamisch aan te passen, en het EGO-voertuig zal soepeler versnellen en vertragen omdat de snelheid continu is en een beetje fluctueert. Kortom, de laatste verbetering zorgt ervoor dat het EGO-voertuig soepeler rijdt tijdens het afstandsaanpassingsproces onder de adaptieve cruisecontrol-functie.

Na drie verbeteringen in drie afzonderlijke besturingsprogramma's van drie functies in het realtime bewegingsplanningssysteem, zullen deze drie afzonderlijke besturingsprogramma's worden gecombineerd met het rijbaanbeheerprogramma om een ​​definitief realtime bewegingsplanningssysteem te genereren. Aangezien deze drie afzonderlijke besturingsprogramma's goed zullen werken, gevolgd door deze verbeteringen, kan het programma voor het bijhouden van de rijstrook er gemakkelijk mee worden gecombineerd. Nadat het rijstrookbehoudprogramma is toegevoegd, zal het EGO-voertuig alleen in de rijstrook rijden en de lijn niet overschrijden. Het zorgt ervoor dat het EGO-voertuig stabieler rijdt dan voorheen onder de verkleinde stedelijke omgeving.

Toekomstige verbetering

Er zijn veel toekomstige verbeteraspecten uit dit project denkbaar. Ten eerste is de functie van realtime bewegingsplanning niet voldoende. 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.

Conclusie

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].

Productieproces

  1. Computervisie als bewegingssensor voor SmartThings
  2. DIY infrarood bewegingssensorsysteem voor Raspberry Pi
  3. Autonoom rijden AI voor vuilniswagen van ezels
  4. Onderhoudsplanning:wat levert het u op?
  5. Voorbereiden op een autonome toekomst
  6. Meerdere toepassingen voor een platformwagen
  7. 3D-bewegingsvolgsysteem voor autonome technologie
  8. Autonome sensortechnologie voor realtime feedback over koeling en verwarming
  9. Spiraalvormige tandheugel voor lineaire beweging
  10. Hoe kiest u een turbolader voor uw auto?
  11. Wat zijn de redenen voor olielekkage in mijn auto wanneer deze is ingepakt?