Botsingsdetectie

From Control Systems Technology Group

Jump to: navigation, search

De drone is verantwoordelijk voor het detecteren van de robots, en analyseren of ze een overtreding begaan.

Contents

definitie botsing

Om over een daadwerkelijke overtreding, in dit geval botsing, te spreken, moet eerst de definitie ervan geformaliseerd worden.

De robots hebben een maximale versnelling. Bij een botsing wordt er een impuls doorgegeven, die zorgt voor een hoge, plotselinge versnelling.
Deze versnelling ligt hoger dan de robot's maximale versnelling. Als dit per frame bij wordt gehouden dan is dit een grote richtlijn.

Wat daar verder bij komt kijken is de manier van contact tussen robots. De meest duidelijke situatie is wanneer een van de robots stilstaat.
Lastiger wordt het als er een botsing plaatsvindt waarin beide partijen een initiƫle snelheid hebben.

Een lastig punt blijft echter de interpretatie van een botsing en de juiste beslissing nemen. Zelfs voor een getrainde scheids en robotscheids is dit
een lastig karwei. Het is mogelijk een soort AI in te bouwen, en die te laten leren van echte spelmomenten. Natuurlijk vereist dit maanden van verfijning
om de robotscheidsrechter nauwkeurig te laten functioneren.

Analysemethode

Er wordt gebruik gemaakt van kleurdetectie op de turtles. Het 'rugnummer' (nr 5, zie hieronder) van de robot heeft een bepaalde kleur, zodat deze als robot gezien wordt en in een team ingedeeld kan worden.
Verder wordt de huidige en vorige positie per frame berekend, waardoor een richtingsvector opgesteld kan worden. Als deze richting ver afwijkt van de vorige richting,
dan is er een botsing opgetreden. Nogmaals, is deze methode onnauwkeurig en toegankelijk voor fouten.

File:turtle.jpg

Kalman Filter

De bewegende beelden van de camera onder de drone bevatten veel signalen en zodoende veel ruis. Om het juiste eruit te filteren, de bewegende robots, wordt een Kalman-filter gebruikt. De Kalman-filter is een methode om de ruis uit meetgegevens te verwijderen. De Kalman-filter gaat uit van een proces dat wiskundig te modelleren is. De uitkomst van het model voorspelt de te bepalen waarde op elk gewenst moment. De daadwerkelijke meting wordt met de voorspelde waarde verrekend tot een gewogen gemiddelde. Deze uitkomst is de gefilterde waarde en wordt meteen ook gebruikt om het procesmodel aan te passen.

Botsing

Om de botsingsdetectie te coderen worden in Matlab een aantal stappen genomen, die in het script zelf (m.b.v. comments) dieper uitgelegd worden.
Om tot een daadwerkelijke oplossing te komen zijn de volgende 'ingredienten' nodig

  1. Een lege track maken om alle eigenschappen bij te houden. Denk aan ID, 'leeftijd', frames zichtbaar of onzichtbaar.
  2. Lees het frame
  3. Detecteer objecten in beeld met behulp van kleur en beweging
  4. Voorspel de volgende positie van het object
  5. Geef detectie aan voor de tracks
  6. Update de gedetecteerde tracks
  7. Maak nieuwe tracks als er een ongelabeld object in beeld komt
  8. Geef de tracking resutaten weer
  9. Sla de vorige locatie op van de objecten
  10. Check of er een botsing opgetreden is

Uiteindelijk leidt dit tot het volgende resultaat.
File:collisiondetection.gif
Het is echter nog niet mogelijk dit met een livestream aan input video te doen.

Matlab Script

Alles is geanalyseerd in Matlab. Het script is op de volgende pagina te vinden: Matlabscript Botsingsdetectie



Terug naar: PRE2015_2_Groep2

Personal tools