33
Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms ® Mathias Magdowski Lehrstuhl für Elektromagnetische Verträglichkeit Institut für Medizintechnik Otto-von-Guericke-Universität, Magdeburg 23. Februar 2017 Lizenz: cba CC BY-SA 3.0 (Namensnennung, Weitergabe unter gleichen Bedingungen) Lego-Torwart 1

Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Embed Size (px)

Citation preview

Page 1: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Webcam-Ballverfolgung und Umsetzung einesPong-Torwarts mit LEGO Mindstorms®

Mathias MagdowskiLehrstuhl für Elektromagnetische Verträglichkeit

Institut für MedizintechnikOtto-von-Guericke-Universität, Magdeburg

23. Februar 2017

Lizenz: cba CC BY-SA 3.0 (Namensnennung, Weitergabe unter gleichen Bedingungen)

Lego-Torwart 1

Page 2: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation

Page 3: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Motivation

„Pong game on TV“ von Marcin Wichary via Flickr, CC BY 2.0,https://commons.wikimedia.org/w/index.php?curid=48423746

Lego-Torwart 3

Page 4: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Umsetzung

Vereinfachungen:

I einseitigI nur „Halten“,

kein „Zurück-spielen“

I Kreisbahnstatt Linie

I BallverfolgungdurchWebcam

Lego-Torwart 4

Page 5: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Gliederung

Motivation

Aufbau und Ansteuerung

Probleme

Demo

Zusammenfassung

Lego-Torwart 5

Page 6: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Aufbau und Ansteuerung

Page 7: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Aufbau

Motor

Sichtfeldder Kamera

Lego-Torwart 7

Page 8: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Ansteuerung der Kamera

Anlegen der Kamera als Objekt:camera=videoinput(’winvideo’)

Übertragen eines Bildes:frame=getsnapshot(camera)

Anzeigen des Bildes:image(frame) oder imagesc(frame)

Lego-Torwart 8

Page 9: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Ansteuerung der Kamera

Anlegen der Kamera als Objekt:camera=videoinput(’winvideo’)

Übertragen eines Bildes:frame=getsnapshot(camera)

Anzeigen des Bildes:image(frame) oder imagesc(frame)

Lego-Torwart 8

Page 10: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Ansteuerung der Kamera

Anlegen der Kamera als Objekt:camera=videoinput(’winvideo’)

Übertragen eines Bildes:frame=getsnapshot(camera)

Anzeigen des Bildes:image(frame) oder imagesc(frame)

Lego-Torwart 8

Page 11: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Algorithmus zur Ballerkennung

Farbbild:

Lego-Torwart 9

Page 12: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Algorithmus zur Ballerkennung

Graustufenbild:set(camera,’ReturnedColorSpace’,’grayscale’)

Lego-Torwart 10

Page 13: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Algorithmus zur Ballerkennung

Schwarz-Weiß-Bild:framebw=frame<borderspy(framebw)

Lego-Torwart 11

Page 14: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Algorithmus zur Ballerkennung

Erkennung des Balls:frameblackx=any(framebw,1)frameblacky=any(framebw,2)posx=(find(frameblackx,1,’first’)+find(frameblackx,1,’last’))/2posy=(find(frameblacky,1,’first’)+find(frameblacky,1,’last’))/2

Lego-Torwart 12

Page 15: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Algorithmus zur Ballerkennung

Verfolgung der Trajektorie:fehlersumme=@(parameter) sum(((posy-modell(posx,parameter)).ˆ2))

parameter=fminsearch(fehlersumme,parameter)

Lego-Torwart 13

Page 16: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Ansteuerung des Motors

Absolute Positionierung bei position_soll:position_ist=motor.ReadFromNXT().Position

motor.TachoLimit=abs(position_soll-position_ist)

if position_soll-position_ist>0motor.Power=power

elsemotor.Power=-power

end

if position_soll-position_ist˜=0motor.SendToNXT()

end

Lego-Torwart 14

Page 17: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Ansteuerung des Motors

Absolute Positionierung bei position_soll:position_ist=motor.ReadFromNXT().Position

motor.TachoLimit=abs(position_soll-position_ist)

if position_soll-position_ist>0motor.Power=power

elsemotor.Power=-power

end

if position_soll-position_ist˜=0motor.SendToNXT()

end

Lego-Torwart 14

Page 18: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Ansteuerung des Motors

Absolute Positionierung bei position_soll:position_ist=motor.ReadFromNXT().Position

motor.TachoLimit=abs(position_soll-position_ist)

if position_soll-position_ist>0motor.Power=power

elsemotor.Power=-power

end

if position_soll-position_ist˜=0motor.SendToNXT()

end

Lego-Torwart 14

Page 19: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Ansteuerung des Motors

Absolute Positionierung bei position_soll:position_ist=motor.ReadFromNXT().Position

motor.TachoLimit=abs(position_soll-position_ist)

if position_soll-position_ist>0motor.Power=power

elsemotor.Power=-power

end

if position_soll-position_ist˜=0motor.SendToNXT()

end

Lego-Torwart 14

Page 20: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Probleme

Page 21: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Elastischer vs. unelastischer Stoß

Elastischer Stoß an der Bande:

x

y

Lego-Torwart 16

Page 22: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Elastischer vs. unelastischer Stoß

Unelastischer Stoß an der Bande:

x

y

Lego-Torwart 17

Page 23: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Probleme mit der Framerate

Lego-Torwart 18

Page 24: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Algorithmus mit einer Schleife

Start

Frame

Ballver-folgung

Abbruch StopJaNein

Lego-Torwart 19

Page 25: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Algorithmus mit einer Callback-Funktion

Start Stop

Kamera Frame

Ballver-folgung

Callback

Lego-Torwart 20

Page 26: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Ergebnis −→ gleichmäßigere Framerate

Lego-Torwart 21

Page 27: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Demo

Page 28: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Grafische Benutzeroberfläche

Lego-Torwart 23

Page 29: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Zusammenfassung

Page 30: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Zusammenfassung

„Oliver Kahn Fussballer Torhüter“von Memorex (CC0 Public Domain,https://pixabay.com/de/oliver-kahn-fussballer-torh%C3%BCter-749853/

Lego-Torwart 25

Page 31: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Zusammenfassung

„Oliver Kahn Fussballer Torhüter“von Memorex (CC0 Public Domain,https://pixabay.com/de/oliver-kahn-fussballer-torh%C3%BCter-749853/

„WRE footballer tim wiesesdebut match“ von Nitu Ku-mari (CC BY-SA, https://youtu.be/YAP_33k-XKs

Lego-Torwart 25

Page 32: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Zusammenfassung

„Oliver Kahn Fussballer Torhüter“von Memorex (CC0 Public Domain,https://pixabay.com/de/oliver-kahn-fussballer-torh%C3%BCter-749853/

„WRE footballer tim wiesesdebut match“ von Nitu Ku-mari (CC BY-SA, https://youtu.be/YAP_33k-XKs

Lego-Torwart 25

Page 33: Webcam-Ballverfolgung und Umsetzung eines Pong-Torwarts mit LEGO Mindstorms

Motivation Aufbau und Ansteuerung Probleme Demo Zusammenfassung

Vielen Dank für Ihre Aufmerksamkeit!

Gibt es Fragen?

Lego-Torwart 26