Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

20
Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002

Transcript of Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

Page 1: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

Objekt- und Selbstlokalisationin der Robotik

Arndt Mühlenfeld3.7.2002

Page 2: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

Anfang

• soccerVision liefert Positionen im Bild.

• Die Tore und das Hindernis mit Bounding-Box und Schwerpunkt.

• Auf den Ball wird ein Kreisfitting durchgeführt.

Page 3: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

soccerVision

Page 4: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

Mängel

• Kein Bestimmung der Ballposition im Spielfeld.

• Khepera erkennt die Wand nicht als Hindernis.

• Keksi braucht Selbstlokalisation.

Page 5: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

„goalieVision“

RGB-Image

Segmenter

Linescan

Blob-selection+ Circlefitting

Houghtransform+ Line-selection

MatchModel

Ballposition

Pose

soccerVision

Page 6: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

Selbstlokalisation

1) Finden von potentiellen Linienpunkten

2) Hough-Transformation

3) Ermitteln der Maxima

4) Zählen der Punkte auf jeder Linie

5) Maxima wählen und ähnliche entfernen

6) Vergleich mit gegebenem Modell

Page 7: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

Line-scan

Page 8: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

Kamera-Kalibrierung

Linsen-Verzerrung (k1 k2 p1 p2)

Kamera-Matrix

100

0

0

yy

xx

cf

cf

A

yy

rpxprkrkcvvv

xx

rpyprkrkcuuu

y

x

22~

22~

2

124

22

1

2

214

22

1

Page 9: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

OpenCV

• Funktionen in OpenCV:– cvFindChessBoardCornerGuesses– cvCalibrateCamera

• Aber:– Punkte im Bild müssen den Punkten im

„Schachbrett“ zugeordnet werden.

Page 10: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

FindChessBoardCornerGuesses

Page 11: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

Die Houghtransformation für Geraden

sincos yx

bzw.

sincos)( yxf

Page 12: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

Linien im Bild

Page 13: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

Umrechung in die Boden-EbeneBAXX p 0Ebenengleichung:

b

b

a

z

y

x

z

y

x

z

y

x 0

0

0

0

0

0

y

x

zBlickrichtung

X0

A

B

Höhe

Kalibriertin mm

Roboter

Page 14: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

Kalibrierung für den Khepera

0

60 60

110

120

Page 15: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

Das Modell vom Test-Goalie(Keksi II)

Tor

Hough-Space

h

v

02

600

Page 16: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

Probleme

• Mehrdeutigkeiten in der Position:

Page 17: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

Ballposition

• 2 Möglichkeiten:– Berechnung der Projektion des Mittelpunkts auf

den Boden, über die Ballhöhe kommt man auf die tatsächliche Position.

– Ermitteln der Parameter der Ebene parallel zum Boden durch die Ballmitte.

• Problem:Das Ballzentrum im Bild ist sehr ungenau.

Page 18: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

Ballgeschwindigkeit

• Einfache Differenzbildung zwischen zwei Bildern funktioniert nicht gut.

• Kalman-Filter:

11

1000

0100

010

001

kkk

y

x

pxT

T

x

v

v

y

x

Modell: Messung:

10010

0001

kkk qxz

Page 19: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

Anwendung

• Ableiten des Controllers von visionControllerBase.Überschreiben der virtuellen Methoden:– setBallPosition (timestamp, x, y)– setPose (timestamp, x, y, phi)

• Erzeugen eines goalieVision - Objekts,Übergabe des Controller-Objekts.

• Aufruf der Methode goalieVision::Run()

Page 20: Objekt- und Selbstlokalisation in der Robotik Arndt Mühlenfeld 3.7.2002.

Ende

(Eine detailliertere Beschreibung mit Referenzen ist in Arbeit)