Kunstmatige intelligentie: botsingspreventie voor Anki Overdrive

Dit artikel gaat over het beroemde Anki Overdrive-gevechtsracesysteem. Het geeft je de mogelijkheid om je eigen AI-systeem te bouwen, dat in de echte wereld werkt, niet alleen op je computer.

Ik heb een aanrijdpreventiesoftware gebouwd (noem het AI), die controleert of een voertuig de kruising mag passeren of moet wachten – totdat de weg vrij is.

Hier vindt u een snel overzicht van het hele systeem.

Ik ben niet gelieerd aan Anki. Alle naamgevingsrechten voor Anki, Anki Drive en Anki Overdrive zijn eigendom van Anki.

Eerste dingen eerst – programmeermogelijkheden

Met de s tandaard Anki Overdrive Kit krijg je twee auto’s en enkele wegstukken om eenvoudige wegenkaarten te maken. Plus: een laadplatform voor de auto’s. Het probleem daarmee is het missen van een botsing . Je moet een extra Anki Collision Kit kopen, inclusief een kruispunt.

Dat gezegd hebbende, de wegenkaart kan worden gebouwd. De eenvoudigste oplossing om een ​​wegenkaart voor botsingen te maken, is door zes bochten en een kruising ertussen te gebruiken.

Maar eerst moet u de firmware van de voertuigen bijwerken. Dit kan eenvoudig worden gedaan door de Anki Overdrive Android- of iOS-app te gebruiken. Start gewoon een nieuw spel – en zorg ervoor dat de apparaten niet worden ontladen.

Dus wat kun je doen door te programmeren?

Met behulp van een Bluetooth Low Energy API (in mijn geval tinyB), en door informatie over het communicatieprotocol (Anki C SDK) aan de andere kant te hebben, is het mogelijk om in elke gewenste taal te programmeren. Je bouwt dan meestal een wrapper rond de functionaliteiten die je nodig hebt.

Hier zijn enkele dingen die u kunt doen om een ​​voertuig te besturen:

Hier zijn enkele dingen die u vanuit een voertuig kunt lezen:

Ten slotte zijn er enkele dingen die u moet vragen om een ​​antwoord via antwoord te krijgen:

Tweede: Bluetooth Low Energy API

Na al deze informatie ben je in ieder geval in staat om de voertuigen te laten rijden, als ze worden ontdekt en verbonden via Bluetooth.

Zoals u kunt zien, is het vrij eenvoudig te gebruiken. Als je meer wilt lezen over Java en tinyB, kijk dan eens op deze pagina.

Derde – Algoritme ter voorkoming van botsingen

Het idee achter het geïmplementeerde algoritme voor het voorkomen van botsingen is eenvoudig. Allereerst moeten alle voertuigen (ik heb er drie gebruikt) naast elkaar worden geplaatst, in dezelfde richting. Vervolgens, nadat ze zijn ontdekt en geïnitialiseerd met de software, wordt een van hen willekeurig gekozen om de wegenkaart te scannen. Dit is nodig om de huidige locatie van de voertuigen te weten.

Na de scan worden twee wegdelen (beide die naar de kruising leiden) gemarkeerd als de ‘kritische secties’. Dat betekent dat als een voertuig zich op het eerste kritieke stuk weggedeelte bevindt (het groene voertuig hierboven), het in een algemene voertuiglijst wordt geplaatst. Deze lijst wordt gebruikt om voertuigen te beperken om de kruising te betreden, door te controleren of deze leeg is.

De groene stippellijn geeft de trigger aan om te controleren of een voertuig de kruising kan passeren of moet stoppen. Elke keer dat een voertuig het kruispunt verlaat en de lijst leegmaakt, worden alle voertuigen geactiveerd om te gaan rijden.

Mijn site