Bildverstehen II: Robot Vision - TUM · 2014-12-08 · © 2014 MVTec Software GmbH, München 538 Hand-Auge-Kalibrierung Problemdefinition Koordinatensysteme und –transformationen
Post on 01-Feb-2020
3 Views
Preview:
Transcript
© 2014 MVTec Software GmbH, München538
Hand-Auge-Kalibrierung
Problemdefinition Koordinatensysteme und –transformationen Ansätze, die Gleichungen der Form lösen Ansätze, die Gleichungen der Form lösen Optimale Hand-Auge-Kalibrierung
XBAX YBAX
© 2014 MVTec Software GmbH, München539
Problemdefinition
Ein wichtiges Anwendungsgebiet von Objekterkennungsverfahren ist das Greifen der erkannten Objekte mit einem Roboter, z.B. um Objekte zusammenzufügen oder an einer vorgegebenen Stelle abzulegen
Ein Roboter besitzt typischerweise nur Informationen über seine eigene Geometrie, da er diese Information zur Steuerung seiner Bewegungen benötigt
Er besitzt typischerweise auch die Information über den Endeffektor (Werkzeug; end effector, tool), mit dem der Greifvorgang ausgeführt wird
Der Roboter besitzt keine Information darüber, wo die Kamera, mit der das Objekt erkannt wird, relativ zum Roboter liegt
Die relative Lage der Kamera zum Roboter ist aber unerläßlich, um die Lage des Objektes von Kamerakoordinaten in Roboterkoordinaten umzurechnen, und somit dem Roboter mitteilen zu können, wohin er greifen soll
© 2014 MVTec Software GmbH, München540
Problemdefinition
Es gibt zwei unterschiedliche Konfigurationen von Kamera und Roboter: Die Kamera ist am Endeffektor des Roboters montiert (bewegte
Kamera oder auch Auge-in-Hand-Konfiguration) Die Kamera ist außerhalb des Roboters angebracht und
beobachtet den Arbeitsraum des Roboters (stationäre Kamera)
© 2014 MVTec Software GmbH, München541
Bewegte Kamera
Video © Sensor Control 2010
Kamera
© 2014 MVTec Software GmbH, München542
Stationäre Kamera
Video © ABB 2009
Kamera
© 2014 MVTec Software GmbH, München543
Roboter
Ein Roboter besteht aus einer Anzahl von Gliedern (links), die über Gelenke (joints) miteinander verbunden sind
Die Gelenke erlauben relative Bewegungen der Glieder zueinander Typische Gelenkarten:
Schubgelenk (prismatic joint, sliding joint): Lineare Bewegung der zwei benachbarten Glieder zueinander
Drehgelenk (rotary joint, revolute joint): Rotationsbewegung der zwei benachbarten Glieder zueinander um eine feste Achse
Rotoidgelenk (spherical joint): Drehbewegung der zwei benachbarten Glieder zueinander in drei Freiheitsgraden um einen festen Punkt (typischerweise als eine Kombination von drei Drehgelenken konstruiert, bei denen sich die drei Drehachsen in einem Punkt schneiden)
© 2014 MVTec Software GmbH, München544
Koordinatensysteme an Industrierobotern
Die Struktur, mit der das erste Glied eines Industrieroboters befestigt wird, wird als Basis (base) bezeichnet
Die Basis des Roboters wird auf einer Basismontagefläche (base mounting surface) befestigt
Am letzten Glied des Roboters befindet sich die mechanische Schnittstelle (mechanical interface) des Roboters
Die Lage der mechanischen Schnittstelle läßt sich aus den Gelenkstellungen und der Geometrie der Gelenke und Glieder berechnen (vorwärtsgerichtete Kinematik; forward kinematics)
Das Werkzeug wird an der mechanischen Schnittstelle befestigt Falls der Robotersteuerungssoftware die relative Lage des
Werkzeugs bekannt gemacht wird, kann auch die Lage des Werkzeugs durch die Robotersteuerungssoftware berechnet werden
© 2014 MVTec Software GmbH, München545
Beispiel: Anthropomorpher Roboter
BasismontageflächeGlied 0Gelenk 1
Glied 1Gelenk 2
Glied 2Gelenk 3
Glied 3
Gelenk 4Glied 4
Gelenk 5 Glied 5 Gelenk 6
Glied 6 =mechanischeSchnittstelle
Robotermodell © Martin Rohrmeier, DLR 1998
© 2014 MVTec Software GmbH, München546
Koordinatensysteme an Industrierobotern
Es wird häufig ein von der Roboterbewegung unabhängiges Koordinatensystem definiert, das als Weltkoordinatensystem (world coordinate system) bezeichnet wird:
Die Basis definiert ein Basiskoordinatensystem (base coordinate system):
Die mechanische Schnittstelle definiert ein Koordinatensystem der mechanischen Schnittstelle (mechanical interface coordinate system):
Aufgrund der wenig intuitiven Bezeichnungen der Norm ISO 9787 im folgenden Verwendung von für das Weltkoordinatensystem und von für das Basiskoordinatensystem
0000 zyxo
1111 zyxo
mmmm zyxo
wwww zyxobbbb zyxo
© 2014 MVTec Software GmbH, München547
Koordinatensysteme an Industrierobotern
mzmy
mx
mo
wy
wxwo
wz
bxbo
bz by
© 2014 MVTec Software GmbH, München548
Koordinatensysteme an Industrierobotern
Falls ein Roboter kameragesteuert Greifvorgänge ausführen soll, kommen mindestens noch drei weitere Koordinatensysteme hinzu
Das Werkzeug definiert ein Werkzeugkoordinatensystem (tool coordinate system, TCS):
Der Ursprung des Werkzeugkoordinatensystems wird häufig als Werkzeugarbeitspunkt (tool center point, TCP) bezeichnet
Es kann aber auch ein anderer Punkt als Werkzeugarbeitspunkt definiert werden
Die Kamera definiert ein Kamerakoordinatensystem (camera coordinate system):
Das zu erkennende Objekt definiert ein Objektkoordinatensystem (object coordinate system): (wenig intuitive Bezeichnung gemäß ISO 14539: )
Die Norm ISO 14539 definiert zusätzlich noch ein Aufgabenkoordinatensystem (task coordinate system), das im weiteren nicht benötigt wird (Bezeichnung: )
tttt zyxo
cccc zyxo
oooo zyxojjjj zyxo
kkkk zyxo
© 2014 MVTec Software GmbH, München549
Stationäre Kamera
tzty
tx
to
co
cz
cxcy
bz
bo
by
bx
wywz
wo wx
© 2014 MVTec Software GmbH, München550
Bewegte Kamera
tzty
tx
to
co
czcxcy
bz
bo
by
bx
wywz
wo wx
© 2014 MVTec Software GmbH, München551
Problemdefinition
Bei der Hand-Auge-Kalibrierung eines Roboters mit einer stationären Kamera ist die wesentliche Aufgabe, die Lage des Kamerakoordinatensystems relativ zum Basiskoordinatensystem zu bestimmen
Bei der Hand-Auge-Kalibrierung eines Roboters mit einer bewegten Kamera ist die wesentliche Aufgabe, die Lage des Kamerakoordinatensystems relativ zum Werkzeugkoordinatensystem zu bestimmen
Es gibt aber noch weitere Kamerakonfigurationen und Systeme, die auch mit der Hand-Auge-Kalibrierung kalibriert werden können, z.B.: Schwenk-Neige-Kameras (pan-tilt cameras) Endoskope (Schmidt et al., 2003; Schmidt und Niemann, 2008) Computertomographie (Mitschke und Navab, 2000) Erweiterte Realität (augmented reality) (Baillot et al., 2003)
© 2014 MVTec Software GmbH, München552
Beispiel: Robonaut 2 der NASA
Bilder © NASA 2010
© 2014 MVTec Software GmbH, München553
Koordinatensysteme und –transformationen
Zum Verständnis der Algorithmen zur Hand-Auge-Kalibrierung ist ein tieferes Verständnis der verschiedenen Arten, Koordinatensysteme (coordinate systems oder frames) und Transformationen zwischen Koordinatensystemen zu beschreiben, notwendig
Ein Koordinatensystem in einem -dimensionalen Raum wird beschrieben durch seinen Ursprung (origin) und orthogonale Koordinatenachsen bzw. (d.h. im weiteren oder )
Die Koordinatenachsen werden durch Einheitsvektoren (Vektoren der Länge 1) beschrieben
Das Koordinatensystem ist somit kartesisch Es wird angenommen, daß die Koordinatensysteme rechtshändig
sind Transformationen zwischen Koordinatensystemen sind starre
Abbildungen im -dimensionalen Raum
n
2nno
xyzxy 3n
n
© 2014 MVTec Software GmbH, München554
Koordinaten in Koordinatensystemen
Beispiel: Darstellung einesPunktes in zweiKoordinatensystemen
Beachte: der Punkt existiertals geometrisches Objektunabhängig von der Wahl desKoordinatensystems
Notation: und : Koordinatensysteme und : Koordinaten des Punktes im Koordinatensystem
und Im Beispiel: und Der Ursprung eines Koordinatensystems ist ein Punkt, der in
einem anderen Koordinatensystem dargestellt werden kann Im Beispiel: und
p
000 yxo 111 yxox0
y0
x1y1
o0
o1p 1
p 0
p
p
0p 1p p
T)2,2(0 p000 yxo 111 yxo
T)21,21(1 p
T)2,3(01 o T)21,25(1
0 o
© 2014 MVTec Software GmbH, München555
Relative Lage von Koordinatensystemen
Die Position eines Koordinatensystems 1 in einem Koordinatensystem 0 läßt sich als Translationsvektordarstellen
Es bleibt noch das Problem, wie die Rotation zwischen zwei Koordinatensystemen beschrieben werden kann
Dies kann analog zur Translation dadurch erfolgen, daß die Koordinaten der Achsen des Koordinatensystems 1 im Koordinatensystem 0 ausgedrückt werden
Beispiel im 2D: Rotation desKoordinatensystems 1 um denWinkel relativ zuKoordinatensystem 0
01
01 ot
y0
o0 o1
x1
y1
sin
cos x0
cossin
,sincos 0
101 yx
© 2014 MVTec Software GmbH, München556
Rotation von Koordinatensystemen
Die Koordinaten der transformierten Koordinatenachsen können zu einer Matrix zusammengefaßt werden:
Eine Matrix dieser Form ist eine 2D-Rotationsmatrix Die Spaltenvektoren einer Rotationsmatrix sind die Koordinaten
der Achsen des Koordinatensystems 1 ausgedrückt in Koordinaten des Koordinatensystems 0
Die Herleitung über trigonometrische Funktionen kann nicht direkt auf Dimensionen ≥ 3 übertragen werden
cossinsincos0
101
01 yxR
© 2014 MVTec Software GmbH, München557
Rotation von Koordinatensystemen
Die trigonometrischen Terme in der 2D-Rotationsmatrix sind geometrisch gesehen die Projektionen der Achsen des Koordinatensystems 1 auf die Achsen des Koordinatensystems 0
Die Projektion eines Einheitsvektors auf einen anderen wird durch das Skalarprodukt der beiden Vektoren berechnet:
Daher gilt:
Diese Formel erweitert sich in offensichtlicher Weise für Dimensionen ≥ 3
0101
010101
01
01 yyyx
xyxxyxR
n
iiiwv
1wvwv T
01
0101
01
0101 ,
yyxy
yyxxx
x
© 2014 MVTec Software GmbH, München558
Rotation von Koordinatensystemen
Wenn die Lage des Koordinatensystems 0 im Koordinatensystem 1 ausgedrückt wird, ergibt sich:
Daher gilt:
Da und geometrisch betrachtet inverse Transformationen sind, gilt:
Matrizen dieses Typs heißen orthogonale Matrizen Sie umfassen auch Spiegelungen ( ) Um eine Rotation zu erhalten, muß gelten:
1010
101010 yyyx
xyxxR
T01
10 RR
10R
01R
101
01
RR
T
1det 01 R
1det 01 R
© 2014 MVTec Software GmbH, München559
Umrechnung von Punktkoordinaten
In vielen Anwendungen müssen Punkte, die in einem Koordinatensystem gegeben sind in ein anderes Koordinatensystem umgerechnet werden
Beispiel: der Punkt sei imKoordinatensystem 1 gegebendurch
Dann gilt: Die Projektion auf die Achsen des
Koordinatensystems 0 ergibt dieKoordinaten des Punktes imKoordinatensystem 0:
pT),,(1 wvup
111 zyxp wvu
0
0
00
zpypxp
p
1y
p
1z
1x
0y
0z
0x10 oo
© 2014 MVTec Software GmbH, München560
Interpretation von Rotationsmatrizen
Einsetzen ergibt:
Die Rotationsmatrix repräsentiert nicht nur die Orientierung von Koordinatensystem 1 in Bezug auf Koordinatensystem 0, sondern transformiert auch Punkte von Koordinatensystem 1 in Koordinatensystem 0
Wenn einen Punkt in Koordinatensystem 1 repräsentiert, repräsentiert denselben Punkt im Koordinatensystem 0
101
010101
010101
0101010 p
zzzyzxyzyyyxxzxyxx
p R
wvu
01R
1p10
10 pp R
© 2014 MVTec Software GmbH, München561
Interpretation von Rotationsmatrizen
Eine Rotationsmatrix kann auch dazu verwendet werden, eine starre Bewegung eines Objektes in einem festen Koordinatensystem zu beschreiben
Sei der Punkt vor der Bewegung und der Punkt nach der Bewegung (im festen Koordinatensystem 0)
Indem man sich ein lokales Koordinatensystem 1 vorstellt, das fest an dem transformierten Objekt angebracht ist, sieht man:
Vor der Rotation gilt:
Daher gilt:
ap bp
101
0bb pp R
01ab pp
0001
0aab ppp RR
10 oo
10 zz 10 xx
10 yy
10 oo
0z0x
10 yy
1z1x
bp
ap
© 2014 MVTec Software GmbH, München562
Interpretation von Rotationsmatrizen
Zusammenfassung: Eine Rotationsmatrix kann auf folgende Weisen interpretiert werden: Sie spezifiziert die Orientierung eines Koordinatensystems 1 in
Bezug auf ein anderes Koordinatensystem 0 Sie repräsentiert eine Koordinatentransformation, die die
Koordinaten eines Punktes in einem Koordinatensystem 1 in die Koordinaten desselben Punktes im Koordinatensystem 0 umrechnet
Sie repräsentiert einen Operator, der einen Punkt in einem gegebenen Koordinatensystem rotiert und in demselben Koordinatensystem zurückliefert
Beachte: die Inverse der Rotationsmatrix spezifiziert die Transformation, die das Koordinatensystem 1 in das Koordinatensystem 0 rotiert, wobei die Punkte als fest angesehen werden (d.h. Transformation von Koordinatensystemen; im weiteren nicht verwendet)
© 2014 MVTec Software GmbH, München563
Durchführung mehrerer Rotationen
Es seien drei Koordinatensysteme (0, 1, 2) gegeben Dann gilt:
Einsetzen ergibt:
Daher gilt:
Multiplikation einer gegebenen Rotationsmatrix mit einer Rotationsmatrix von rechts rotiert das aktuelle (d.h. lokale) Koordinatensystem
202
0
212
1
101
0
pppppp
R
R
R
212
01
0 pp RR
12
01
02 RRR
© 2014 MVTec Software GmbH, München564
Durchführung mehrerer Rotationen
In manchen Anwendungen ist es einfacher, die Rotationen relativ zu einem festen (d.h. globalen) Koordinatensystem anzugeben
Es läßt sich leicht zeigen (z.B. Spong, Hutchinson, Vidyasagar, 2006), daß in diesem Fall die Rotationsmatrizen von links mit einer bestehende Rotationsmatrix multipliziert werden müssen:
Beachte: Da die Rotation im festen Koordinatensystem spezifiziert wird, muß diese Rotation korrekterweise mit bezeichnet werden (und nicht etwa mit )
Interpretation von zusammengesetzten Rotationsmatrizen: Multiplikation von rechts: Rotation des lokalen
Koordinatensystems Multiplikation von links: Rotation relativ zu einem globalen
Koordinatensystem
01
02 RRR
R12R
© 2014 MVTec Software GmbH, München565
Starre Abbildungen
Starre Abbildungen (oft auch starre Bewegungen genannt; rigid motions) setzen sich aus einer Rotation und einer Translation zusammen:
Es seien drei Koordinatensysteme (0, 1, 2) gegeben Dann gilt:
Einsetzen ergibt:
Daher gilt:
01
101
0 tpp R
02
202
0
12
212
1
01
101
0
tpptpptpp
R
R
R
01
12
01
212
01
0 ttpp RRR
01
12
01
02
12
01
02
ttt
R
RRR
© 2014 MVTec Software GmbH, München566
Homogene Transformationsmatrizen
Die Darstellung einer längeren Sequenz von starren Abbildungen als Rotation + Translation ist sehr umständlich
Sie wird stark erleichtert durch die Verwendung von homogenen Koordinaten: Punkte werden um eine dritte (2D) oder vierte Koordinate (3D)
mit dem Wert 1 erweitert Die Transformationen werden als 3×3- oder 4×4-Matrix wie folgt
beschrieben:
Beispiel:
1T0tR
H
11111
01
101
101
01
101
0 tpptpp RRH T0
© 2014 MVTec Software GmbH, München567
Homogene Transformationsmatrizen
Im weiteren werden homogene Koordinaten nicht explizit gekennzeichnet, da aus dem Kontext klar ist, ob ein Vektor in homogenen oder inhomogenen Koordinaten dargestellt ist
Beispiel:
Die Inverse einer starren Abbildung ist gegeben durch:
Für die Interpretation von zusammengesetzten homogenen Transformationsmatrizen gilt dasselbe wie für zusammengesetzte Rotationsmatrizen: Multiplikation von rechts: Transformation des lokalen
Koordinatensystems Multiplikation von links: Transformation relativ zu einem
globalen Koordinatensystem
101
0 pp H
11
T
TT
0tRR
H
© 2014 MVTec Software GmbH, München568
Darstellung von Rotationen im 2D
Rotationen im 2D können durch eine Rotationsmatrix dargestellt werden:
Umgekehrt ist jede Matrix der Form
für die gilt, eine Rotationsmatrix
cossinsincos
R
cssc
R
122 sc
© 2014 MVTec Software GmbH, München569
Darstellung von Rotationen im 2D
Vektoren im 2D können auch durch komplexe Zahlenrepräsentiert werden
Komplexe Zahlen können auch in Polarkoordinaten dargestellt werden:
Eine komplexe Zahl vom Betrag 1 (d.h. ) bewirkt bei der Multiplikation eine Rotation um den Winkel :
Die Darstellung einer Rotation im 2D als Multiplikation mit einer komplexen Zahl der Länge 1 ist in gewisser Weise das Analogon der später behandelten Darstellung von Rotationen im 3D als Quaternionen
iyxz
ireiyxz
1r
)cossin()sincos())(sin(cos)(
yxiyxiyxiiyxez i
© 2014 MVTec Software GmbH, München570
Darstellung von Rotationen im 2D
Rotationsmatrizen können im 2D auch wie folgt dargestellt werden:
Hierbei gilt:
Diese Darstellung folgt unmittelbar aus den Darstellungen als Rotationsmatrizen oder als komplexen Zahlen bei Verwendung des halben Winkels und zweimaliger Rotation
Diese Darstellung der Rotation im 2D ist ein weiteres Analogon der später behandelten Darstellung von Rotationen im 3D als Quaternionen
22
22
22baababba
R
)2sin()2cos(
ba
© 2014 MVTec Software GmbH, München571
Darstellung von Rotationen im 3D
Im 3D ist die Darstellung von Rotationen deutlich vielfältiger als im 2D
Beachte: Rotationen im 2D sind kommutativ, im 3D hingegen nur, falls die Rotationen um parallele Achsen erfolgen (also nur in Ausnahmefällen)
Eine Rotation im 3D hat drei Freiheitsgrade Die verschiedenen Darstellungen unterscheiden sich darin, ob die
Parametrisierung minimal oder überparametrisiert ist und welche Art von Singularitäten die Parametrisierung aufweist
Beispiel: Die Darstellung von Rotationen als 3×3-Matrizen mit 9 Parametern ist eine Überparametrisierung
Es gelten sechs Nebenbedingungen, die sich aus herleiten lassen
IRR T
© 2014 MVTec Software GmbH, München572
Eulerwinkel
Jede Rotation im 3D läßt sich als Sequenz von drei Rotationen um Koordinatenachsen beschreiben, wobei zwei aufeinanderfolgende Rotationen nicht um dieselbe Koordinatenachse erfolgen dürfen (Kuipers, 1999)
Die Transformationen werden durch Elementarrotationen um die orthogonalen Koordinatenachsen ausgedrückt
Es gibt 12 verschiedenen Arten, 3D-Rotationen mit drei Winkeln (den sogenannten Eulerwinkeln) auszudrücken
Beispiele für Sequenzen von Rotationen: XYZ oder ZYZ Bei Unterscheidung zwischen Transformationen des lokalen
Koordinatensystems und Transformationen von Objekten in einem globalen Koordinatensystem verdoppelt sich die Anzahl
Die Unterscheidung wirkt sich aber lediglich auf die Reihenfolge aus, in der die Rotationsmatrizen multipliziert werden
XYZ (lokal) entspricht ZYX (global) und liefert dieselbe Matrix
© 2014 MVTec Software GmbH, München573
Elementarrotationen
Rotation um die -Achse um den Winkel :
Rotation um die -Achse um den Winkel :
Rotation um die -Achse um den Winkel :
y
cs
sc
y
0010
0
cos0sin010sin0cos
,R
z
10000
1000cossin0sincos
,
cssc
zR
x
csscx
00
001
cossin0sincos0001
,R
© 2014 MVTec Software GmbH, München574
Eulerwinkel
Beispiel: XYZ (lokal) bzw. ZYX (global):
Beispiel: ZYZ (lokal):
ccssccscscsscsssscccssscssccc
zyxxyz ,,,),,( RRRR
csscsssccscsscccssccssccssccc
zyzzyz ,,,),,( RRRR
© 2014 MVTec Software GmbH, München575
Eulerwinkel
Beispiel: XYZ (lokal) mit , und 30 40 50
© 2014 MVTec Software GmbH, München576
Eulerwinkel
Beispiel: ZYX (global) mit , und 30 40 50
© 2014 MVTec Software GmbH, München577
Eulerwinkel
Berechnung der Eulerwinkel am Beispiel XYZ (lokal) Rotationsmatrix:
Falls :
Beide Lösungen führen zur selben Rotationsmatrix Die Eulerwinkel sind nur dann eindeutig bestimmbar, falls
konsistent eine der beiden Lösungen gewählt wird
333231
232221
131211
rrrrrrrrr
R
00 1211 rr
),(atan2),(atan2
),(atan2
),(atan2),(atan2
),(atan2
1112
212
21113
3323
1112
212
21113
3323
rrrrr
rr
rrrrr
rr
oder
© 2014 MVTec Software GmbH, München578
Eulerwinkel
Falls
Für sind und nicht eindeutig bestimmbar, sondern nur
Dieses Problem wird als kardanische Blockade (gimbal lock) bezeichnet
Es tritt für beliebige Arten, Eulerwinkel zu spezifizieren immer dann auf, wenn eine Rotation so gewählt wird, daß die Rotationsachsen koplanar werden
Für die Sequenz ZYZ (lokal) tritt die kardanische Blockade z.B. fürund auf
00 1211 rr
00100
00100
),,(
sccs
sccsccsssscccssc
R
0cos
0
2
© 2014 MVTec Software GmbH, München579
Eulerwinkel
Mechanische Kreiselkompasse verwenden häufig eine kardanische Aufhängung, die der Sequenz XYZ (lokal) entspricht
Falls die kardanische Blockade eintritt, kann der Kreiselkompaß die Orientierung nicht mehr bestimmen (daher der Name kardanische Blockade)
Die letzten drei Gelenke von Robotern (die Nebenachsen; wrist) werden häufig in einer Konfiguration angeordnet, die der Sequenz ZYZ (lokal) entspricht
Hier kann es bei der Bewegung des Handgelenks des Roboters zu einem sog. wrist flip kommen (einer extrem schnellen Drehung des Handgelenks um 180°), falls die erste und dritte Achse des Handgelenks kollinear sind
In Algorithmen, die die Eulerwinkel aus einer Rotationsmatrix berechnen müssen, kann die kardanische Blockade zu numerischen Problemen führen
© 2014 MVTec Software GmbH, München580
Kardanische Blockade
Beispiel: Flugzeug oder Raumschiff mit Kreiselkompaß
Flugzeug in Ausgangslage: Alle Flugzeugbewegungen können
vom Kreiselkompaß kompensiert werden
Flugzeug nach Rollen und Nicken um 90°: Der Kreiselkompaß ist bei
Rollbewegungen blockiert
© 2014 MVTec Software GmbH, München581
Rotationsachse und Rotationswinkel
Eine Rotation kann im 3D beschrieben werden durch eine Rotationsachse und einen Rotationswinkel
Die Rotationsachse ist dabei ein Einheitsvektor ( ) Die Rotationsmatrix ist gegeben durch:
Hierbei ist
Daher gilt:
T),,( 321 nnnn1n
2, )cos1(sin nn IR n
00
0
12
13
23
nnnnnn
n
ccnsncnnsncnnsncnnccnsncnnsncnnsncnnccn
n
)1()1()1()1()1()1()1()1()1(
23132231
13222321
23132121
,R
© 2014 MVTec Software GmbH, München582
Rotationsachse und Rotationswinkel
Beispiel: Rotation um die Achse um(entspricht XYZ (lokal) und ZYX (global) mit ,
und )
T)6495.0,4899.0,5814.0(n 52.71 30
50 40
© 2014 MVTec Software GmbH, München583
Rotationsachse und Rotationswinkel
Die Darstellung ist nicht eindeutig: und beschreiben dieselbe Rotation:
Die Repräsentation ist eine Überparametrisierung: 4 Parameter, Nebenbedingung
In manchen Anwendungen wird daher eine minimale Parametrisierung durch Kombination von Rotationsachse und Rotationswinkel gewählt:
Eine andere Art der minimalen Parametrisierung kann durch die Darstellung als Rodriguesvektor erreicht werden (Lenz, 1988; Morawiec und Field, 1996):
Vorteil: Einfache Umrechnung mit quadratischen Termen Nachteil: Rotationen mit können nicht dargestellt werden
),( n ),( n ,, nn RR
1n
nn
nr )2tan(
23
22
21132231
13223
22
21321
23132123
22
21
23
22
21 1)(2)(2
)(21)(2)(2)(21
11
rrrrrrrrrrrrrrrrrrrrrrrrrrr
rrrrR
180
© 2014 MVTec Software GmbH, München584
Rotationsachse und Rotationswinkel
Berechnung der Rotationsachse: Eine 3D-Rotationsmatrix besitzt die Eigenwerte , und Der Eigenvektor zum Eigenwert ist die Rotationsachse Der Rotationswinkel kann aus einem der beiden komplexen
Eigenwerte berechnet werden Ein weiterer Algorithmus zur Berechnung der Rotationsachse wird
häufig wie folgt angegeben:
Um diesen Algorithmus numerisch stabil zu machen, sind allerdings Modifikationen notwendig, falls (hier nicht näher behandelt; siehe (Hanson, 2006))
1221
3113
2332332211
sin21,
21arccos
21)(trarccos
rrrrrr
rrr
nR
0)(tr R
1 ie ie
1
© 2014 MVTec Software GmbH, München585
Quaternionen
Quaternionen sind 4D-Vektoren , die mit den folgenden Rechenregeln ausgestattet werden: Multiplikation:
Konjugation:
Einheitsquaternionen sind Quaternionen, für die gilt
),( 0000
12213003
31132002
23321001
33221100
qppqqp
qpqp
qpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqp
pq
),(),,,( 03210 qqqqqqq
),(),,,( 03210 q qqqqqq1qq
© 2014 MVTec Software GmbH, München586
Quaternionen
Quaternionen können mit folgenden Definitionen als Verallgemeinerung der komplexen Zahlen aufgefaßt werden:
Aus der Multiplikationsregel folgt:
Daher gilt:
Die Multiplikationsregel läßt sich leicht aus den obigen Beziehungen herleiten
Die Komponente einer Quaternion wird als Skalarteil oder Realteil bezeichnet
Die Komponente einer Quaternion wird als Vektorteil oder Imaginärteil bezeichnet
Eine Quaternion, deren Realteil 0 ist, wird als reine Quaternion bezeichnet
)1,0,0,0(),0,1,0,0(),0,0,1,0(),0,0,0,1(1 kji
1,11 2222 ijkkji
ikjkikjijkjikij ,,
q
0q
© 2014 MVTec Software GmbH, München587
Quaternionen
Beachte: Die Multiplikation von Quaternionen ist nicht kommutativ, d.h. im allgemeinen gilt
Die Multiplikation von Quaternionen kann auch über Matrizen definiert werden:
Die Inverse einer Quaternion ist gegeben durch:
Für Einheitsquaternionen gilt offensichtlich:qqqq 1
qq 1
qppq
3
2
1
0
0123
1032
2301
3210
3
2
1
0
0123
1032
2301
3210
pppp
qqqqqqqqqqqqqqqq
qqqq
pppppppppppppppp
pq
© 2014 MVTec Software GmbH, München588
Quaternionen
Jede Einheitsquaternion läßt sich in der folgenden Form darstellen ( ):
Hierbei ist ein 3D-Einheitsvektor Sei eine reine Quaternion Man kann zeigen (Rooney, 1977; Kuipers, 1999), daß folgende
Beziehungen gelten: Das Produkt kann geometrisch als eine Rotation
des Punktes um die Achse um den Winkel interpretiert werden
Das Produkt kann geometrisch als eine Rotation des Koordinatensystems um die Achse um den Winkel interpretiert werden (Umrechnung der Koordinaten von )
))2sin(),2(cos( nqn),0( pp
qqpqpq 1
p n
pqqpqq 1
np
40
© 2014 MVTec Software GmbH, München589
Quaternionen
Das Produkt ist ein linearer Operator bzgl. , der in eine Rotationsmatrix umgerechnet werden kann:
Für das Produkt gilt: Das Produkt von zwei Einheitsquaternionen und entspricht der
Hintereinanderausführung von zwei Rotationen Für das erste Produkt entspricht dies der Multiplikation von
Rotationsmatrizen von links (globales Koordinatensystem):
Für das zweite Produkt entspricht dies der Multiplikation von Rotationsmatrizen von rechts (lokales Koordinatensystem)
qqp p
23
22
21
2010322031
103223
22
21
203021
2031302123
22
21
20
222222222222
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
qR
pqq Tqq RR
1q 2q
12qqq
21qqq
© 2014 MVTec Software GmbH, München590
Quaternionen
Quaternionen können in Analogie zu den komplexen Zahlen auch in einer exponentiellen Form geschrieben werden
Sei Dann gilt: Die Berechnung einer Quaternion aus einer Rotationsmatrix erfolgt
analog zur Extraktion der Rotationsachse und des Rotationswinkels (hier nur der Fall ):
Für den Fall siehe (Hanson, 2006)
0)(tr R
1221
3113
2332
03
2
1
0
41
1)(tr21
rrrrrr
qqqq
q R
0)(tr R
),,( kjii)2sin()2cos(2 nini eq
© 2014 MVTec Software GmbH, München591
Quaternionen
Die Elementarrotationen entsprechen den folgenden Quaternionen:
Damit lassen sich beliebige Eulerwinkel direkt in Quaternionen umrechnen
Beispiel: XYZ (lokal) bzw. ZYX (global):
)2sin()2cos(
)2sin()2cos()2sin()2cos(
,
,
,
kqjqiq
z
y
x
)2cos()2sin()2sin()2sin()2cos()2cos()2sin()2cos()2sin()2cos()2sin()2cos()2sin()2sin()2cos()2cos()2cos()2sin()2sin()2sin()2sin()2cos()2cos()2cos(
),,( ,,,
zyxxyz qqqq
© 2014 MVTec Software GmbH, München592
Quaternionen
Die Darstellung ist nicht eindeutig: und beschreiben dieselbe Rotation:
Die Repräsentation ist eine Überparametrisierung: 4 Parameter, Nebenbedingung
In vielen Anwendungen ist die Parametrisierung über Einheitsquaternionen die am besten geeignete Parametrisierung von Rotationen
Insbesondere kann mit Einheitsquaternionen auch eine sinnvolle Interpolation zwischen zwei Koordinatensystemen erreicht werden, z.B. zur Animation von bewegten Objekten (hier nicht näher behandelt)
Starre Abbildungen können leider mit Quaternionen nicht in einem einheitlichen Ansatz (z.B. analog zu homogenen Matrizen) behandelt werden
q qqq RR
1qq
© 2014 MVTec Software GmbH, München593
Schraubungen
Aufgrund der Eleganz der Darstellung von Rotationen durch Quaternionen ist eine Repräsentation wünschenswert, in der sich starre 3D-Abbildungen ähnlich kompakt beschreiben lassen
Die Herleitung dieser Repräsentation basiert auf dem Satz von Chasles: Jede starre Abbildung im 3D läßt sich als eine Schraubung darstellen
Eine Schraubung ist eine Rotationum eine Schraubenachse um einenWinkel gefolgt von einerTranslation entlang der Achseum den Abstand
Eine Gerade im 3D besitzt vierFreiheitsgerade, so daß sich mitdem Winkel und dem Abstand diesechs Freiheitsgerade einerstarren Abbildung ergeben
d
d
© 2014 MVTec Software GmbH, München594
Plückerkoordinaten
Geraden im 3D lassen sich durch zwei verschiedene Punkte undauf der Geraden sowie durch einen Punkt auf der Geraden und
den Richtungsvektor der Geraden beschreiben
Eine Gerade läßt sich auch durchPlückerkoordinaten beschreiben
Dabei ist der Richtungsvektor derGeraden und das Moment derGeraden bzgl. des Ursprungs:
Es gilt: Plückerkoordinaten sind homogene
Koordinaten: und( ) beschreiben dieselbe Gerade
Normierung durch
pq
llppqp )(g
),( mll
m
qplpm 0 mlml T
),( ml ),( ml0
1l
p
o
p
q
pql
l
m
y
x
z
© 2014 MVTec Software GmbH, München595
Plückerkoordinaten
In der projektiven Geometrie werden Plückerkoordinaten über die folgende Konstruktion (oder eine dazu äquivalente) definiert:
Die zwei Punkte auf der Geraden seien durch homogene Koordinaten und dargestellt
Dann ergeben sich die Plückerkoordinaten aus:
Es gilt: Es gibt sechs verschiedene Plückerkoordinaten, von denen
typischerweise die folgenden ausgewählt werden:
Durch Einsetzen von inhomogenen Punktkoordinaten ( ) läßt sich leicht zeigen:
In dieser Darstellung gilt:
T),,,( 4321 ppppp T),,,( 4321 qqqqq
ijjijj
iiij qpqp
qpqp
l
jiij ll
),,,,,( 344223141312 llllll144 qp
),,(),,( 121323344214 llllll ml0231442133412 llllllml
© 2014 MVTec Software GmbH, München596
Berechnung der Schraubungsparameter
Eine starre Abbildung sei gegeben durch und Dann sind und gegeben durch die Rotationsachse und den
Rotationswinkel von Der Abstand ist die Projektion von auf : Das Moment der Schraubenachse ist gegeben durch (Daniilidis,
1999):
Umrechnung der Schraubungsparameter in eine starre Abbildung: kann aus und wie zuvor beschrieben berechnet werden ist gegeben durch:
Beachte: ist der Punkt auf der Geraden mit dem kürzesten Abstand zum Ursprung
R t
Rl
d t l ltlt Td
))2cot()((21))2cot()((
21 ltltltlltm d
m
R l t
lmlt d ))(( RIml ),( ml
© 2014 MVTec Software GmbH, München597
Duale Zahlen
Im folgenden werden zur Beschreibung von starren Abbildungen duale Zahlen benötigt
Erinnerung: Komplexe Zahlen sind Zahlen der Form , wobei gilt
Analog hierzu sind duale Zahlen definiert als Zahlen der Form, wobei gilt
heißt der Realteil und der Dualteil von Modelle für beide Zahlensysteme können leicht mit 2×2-Matrizen
mit reellen Zahlen konstruiert werden: Komplexe Zahlen:
Duale Zahlen
iyxz 12 i
baz ˆ 02
0110
1001
1 i
0010
1001
1
a zb
© 2014 MVTec Software GmbH, München598
Rechenregeln für duale Zahlen
Für duale Zahlen gelten folgende Rechenregeln: Addition:
Multiplikation:
Konjugation:
Inversion (nur für ):
Division (nur für ):
)()()()(ˆˆ dbcadcbawv
)())((ˆˆ bcadacdcbawv
baz ˆ
21
ˆˆˆˆ
aba
zzzz
2
)(ˆˆ
cadbcac
dcba
wv
0a
0c
© 2014 MVTec Software GmbH, München599
Funktionen von dualen Zahlen
Funktionen von dualen Zahlen können über eine formelle Taylorentwicklung von definiert werden:
Wichtige Funktionen für die Darstellung von starren Abbildungen:
)ˆ(zf
)(2
)()()()ˆ( 2 afbafbafbafzf
02 )()()()ˆ( afbafbafzf
)sin()cos()cos()ˆcos()cos()sin()sin()ˆsin(ababazababaz
© 2014 MVTec Software GmbH, München600
Duale Vektoren
Analog zu normalen 3D-Vektoren über den reellen Zahlen können 3D-Vektoren über den dualen Zahlen definiert werden:
In vollkommen analoger Weise zu reellen Vektoren können das Skalarprodukt und das Vektorprodukt definiert werden:
Geraden in Plückerkoordinaten können als duale Vektoren dargestellt werden:
bav
33
22
11
3
2
1
ˆˆˆ
ˆbababa
vvv
)()()(ˆˆ)()()(ˆˆcbdacadcbawvcbdacadcbawv
mll ˆ
© 2014 MVTec Software GmbH, München601
Geraden als duale Vektoren
Für reelle Einheitsvektoren liefert das Vektorprodukt die gemeinsame Normale der beiden Vektoren und das Skalarproduktden Kosinus des Winkels zwischen den beiden Vektoren
Für duale Einheitsvektoren (d.h. Plückerkoordinaten) und liefert das Vektorprodukt die Gerade, die senkrecht zu den beiden Geraden ist und durch den kürzestenAbstand der Geraden verläuft
Für duale Einheitsvektoren liefertdas duale Skalarprodukt einen dualenWinkel , der den Winkelzwischen den beiden Geraden sowieihren Abstand beinhaltet:
Beachte: Die zwei orientierten Geradendefinieren eine eindeutige Schraubung
lklk ˆˆ
d ˆ
sincosˆcosˆˆ d lk lk ˆˆ
lk
d
© 2014 MVTec Software GmbH, München602
Geraden als duale Vektoren
Falls das duale Skalarprodukt zweier nichtparalleler Geraden reell ist (d.h. falls der duale Teil 0 ist), schneiden sich die Geraden
Falls zusätzlich der Realteil des dualen Skalarprodukts 0 ist, schneiden sich die Geraden im rechten Winkel
Für das duale Vektorprodukt gilt in Analogie zum reellen Vektorprodukt ( ist ein dualer Einheitsvektor, der die Gerade, die senkrecht zu den beiden Geraden liegt, beschreibt):
Falls das Vektorprodukt zweier Geraden ein reiner dualer Vektor ist (d.h. falls der Realteil 0 ist), sind die Geraden parallel
Falls zusätzlich der Dualteil 0 ist, sind die Geraden kollinear
)cos(sinˆˆsinˆˆˆ d eelk
e
© 2014 MVTec Software GmbH, München603
Duale Quaternionen
Duale Quaternionen sind Vektoren über den dualen Zahlen mit folgenden Rechenregeln: Multiplikation:
Konjugation:
)ˆˆˆˆˆˆ,ˆˆˆˆ(
ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ
ˆˆ 0000
12213003
31132002
23321001
33221100
qppqqp
qpqp
qpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqp
qp
)ˆ,ˆ()ˆ,ˆ,ˆ,ˆ(ˆ 03210 qqqqqqq
)ˆ,ˆ()ˆ,ˆ,ˆ,ˆ(ˆ 03210 q qqqqqq
© 2014 MVTec Software GmbH, München604
Duale Quaternionen
Einheitsquaternionen sind Quaternionen, für die gilt Duale Quaternionen können auch mit reellen Quaternionen und
wie folgt geschrieben werden: ist eine duale Einheitsquaternion, falls und Die Inverse einer dualen Quaternion ist gegeben durch:
Beachte: Die Inverse existiert genau dann, wenn der Realteil vonnicht 0 ist:
Für Einheitsquaternionen gilt offensichtlich: Eine duale Quaternion, deren Realteil 0 ist, wird als reine duale
Quaternion bezeichnet
1ˆˆ qq
rqq ˆq r
q 1qq 0 rqrq
qqqqˆˆˆˆ 1
q0q
qq ˆˆ 1
© 2014 MVTec Software GmbH, München605
Duale Quaternionen
Reine duale Quaternionen können zur Repräsentation von Geraden in Plückerkoordinaten verwendet werden:
Jede duale Einheitsquaternion läßt sich in der folgenden Form darstellen:
Dabei definieren und die Parameter einer Schraubung: ist die Schraubenachse ( ) sind der Winkel und der Abstand der Schraubung
Eine duale Einheitsquaternion läßt sich auch als explizite Funktion der Parameter der starren Abbildung schreiben (Daniilidis, 1999):
Eine Gerade wird mittels einer dualen Einheitsquaternion wie folgt transformiert (Rooney, 1978; Daniilidis, 1999):
),0(),0()ˆ,0(ˆ mll l
))2ˆsin(ˆ),2ˆ(cos(ˆ nq
d ˆ
n onn ˆ
qlqk ˆˆˆˆ
l q
0,1 onn
)2sin,2)(cos2,1(ˆˆ nt qtq
© 2014 MVTec Software GmbH, München606
Duale Quaternionen
Eine starre Abbildung sei durch gegeben Die duale Quaternion kann wie folgt in eine homogene
Transformationsmatrix umgerechnet werden: Die Rotation ist gegeben durch die Umrechnung der
Quaternion :
Die Translation ist gegeben durch den Vektorteil von :
Die homogene Transformationsmatrix ist gegeben durch:
rqq ˆq
qqRR
R
qr2),0( tqr2
1T0tR
H
© 2014 MVTec Software GmbH, München607
Duale Quaternionen
Die Darstellung ist nicht eindeutig: und beschreiben dieselbe starre Abbildung
Die Repräsentation ist eine Überparametrisierung: 8 Parameter, 2 Nebenbedingungen:
Die Parametrisierung von starren Abbildungen als duale Einheitsquaternionen ist die Darstellung, die für die Transformation von Geraden vorzuziehen ist (Rooney, 1978)
Falls Punkte mit einer starren Abbildung transformiert werden sollen, ist allerdings die Darstellung als homogene Matrizen vorzuziehen (Rooney, 1978)
q q
1ˆˆ qq
© 2014 MVTec Software GmbH, München608
Hand-Auge-Kalibrierung
Die Hand-Auge-Kalibrierung wird wie die normale Kamerakalibrierung mit einem Kalibrierkörper durchgeführt
Das Werkzeug des Roboters wird zur Kalibrierung in unterschiedliche Posen (Position und Orientierung; pose) bewegt
Die Kamera nimmt an jeder Pose ein Bild eines Kalibrierkörpers auf
Für bewegte Kameras liegt der Kalibrierkörper an einer festen Pose im Arbeitsraum des Roboters
Für stationäre Kameras wird der Kalibrierkörper vom Werkzeug gehalten und bewegt sich somit
n
© 2014 MVTec Software GmbH, München609
Hand-Auge-Kalibrierung
Video © Sensor Control 2010
© 2014 MVTec Software GmbH, München610
Hand-Auge-Kalibrierung
Falls die innere Orientierung der Kamera unbekannt ist, werden die Kalibrierbilder dazu verwendet, die Kamera komplett zu kalibrieren, d.h. die innere Orientierung der Kamera sowie die äußere Orientierung des Kalibrierkörpers in jedem Bild zu bestimmen
Falls die innere Orientierung der Kamera bekannt ist, werden die Kalibrierbilder dazu verwendet, die äußere Orientierung des Kalibrierkörpers in jedem Bild zu bestimmen
In jedem Fall ist die Pose des Kalibrierkörpers in jedem Bild bekannt
Die Pose des Werkzeugs relativ zur Basis in jedem Bild wird aus der Robotersteuerung ausgelesen und ist somit bekannt
Falls die Robotersteuerung nur die Pose der mechanischen Schnittstelle zurückliefert, muß die Pose des Werkzeugs von Hand hinzugerechnet werden
© 2014 MVTec Software GmbH, München611
Stationäre Kamera
tzty
txcz
cy
bz
bo
by
oy
oz
oo
ox
co cx
bx
to
© 2014 MVTec Software GmbH, München612
Stationäre Kamera
Bekannte TransformationUnbekannte Transformation
co
bc
tb
to HHHH
coHb
cH
tbH
toH
© 2014 MVTec Software GmbH, München613
Bewegte Kamera
tzty
tx
toco
czcxcy
bz
bo
by
bx oy
ozoo
ox
© 2014 MVTec Software GmbH, München614
Bewegte Kamera
Bekannte TransformationUnbekannte Transformation
co
tc
bt
bo HHHH
boH
btH
tcH
coH
© 2014 MVTec Software GmbH, München615
Hand-Auge-Kalibrierung
Für stationäre Kameras gilt:
Für bewegte Kameras gilt:
Beachte: Die Robotersteuerung liefert entweder oder Je nach Konfiguration (stationäre oder bewegte Kamera) muß
die von der Robotersteuerung gelieferte Pose geeignet ungerechnet (d.h. evtl. invertiert) werden
In beiden Fällen sind bzw. und für Posen des Roboters bekannt
Beide Systeme von Gleichungen haben die Struktur
wobei die Pose des Werkzeugs relativ zur Basis oder umgekehrt beschreibt und die Pose der Kamera relativ zum Kalibrierkörper, jeweils an der i-ten Pose des Roboters
co
bc
tb
to HHHH
co
tc
bt
bo HHHH
btH
tbH
tbH
btH
coH n
iiXBAY
iBiA
© 2014 MVTec Software GmbH, München616
Hand-Auge-Kalibrierung
In den Gleichungen ist die wesentliche Unbekannte Sie repräsentiert die Pose der Kamera relativ zur Basis bei
stationären Kameras bzw. die Pose der Kamera relativ zum Werkzeug bei bewegten Kameras
Für zwei unterschiedliche Posen und des Roboters gilt:
Daher kann die unbekannte Pose eliminiert werden:
Diese Gleichung kann umgeformt werden zu:
Eine Möglichkeit zur Hand-Auge-Kalibrierung besteht darin, Gleichungen der Form zu lösen
stellt die relative Pose des Werkzeugs und die relative Pose der Kamera dar
iiXBAY X
jiiiXBAY
Y
jjii XBAXBA
11 ijij BXBXAA
XBAX
jjXBAY
BA
© 2014 MVTec Software GmbH, München617
Lösung von Gleichungen der Form AX XB
Die geometrischen Beziehungen, die durch die Gleichungausgedrückt werden, können durch homogene Matrizen beschrieben werden:
Dieser Ansatz führt zu separaten Gleichungen zur Berechnung der Rotation und Translation:
In homogenen Koordinaten kann zuerst der Rotationsanteil der gesuchten Pose bestimmt werden und dann der Translationsanteil
Die Gleichungen können z.B. in der Darstellung Achse + Winkel (Tsai und Lenz, 1989) oder in der Darstellung als Quaternionen gelöst werden (Chou und Kamel, 1991)
XBAX
1111BBXXXXAA
TTTT 0000tttt RRRR
ABXXA
BXXA
)( ttt RIR
RRRR
BXXA RRRR
© 2014 MVTec Software GmbH, München618
Hand-Auge-Kalibrierung: duale Quaternionen
Die separate Bestimmung der Rotation und Translation ist suboptimal, da sich Fehler bei der Bestimmung der Rotation zu größeren Fehlern in der Translation fortpflanzen
Es ist daher besser, die Rotation und Translation gemeinsam zu bestimmen
Die gemeinsame Bestimmung der Rotation und Translation wird durch die Darstellung der Posen als duale Quaternionen ermöglicht (Daniilidis, 1999)
Es gilt:
bxxa ˆˆˆˆ
xbxa ˆˆˆˆ
© 2014 MVTec Software GmbH, München619
Hand-Auge-Kalibrierung: duale Quaternionen
Erinnerung: Der Skalarteil einer dualen Quaternion enthält den Winkel und Abstand der Schraubung:
Der Skalarteil einer dualen Quaternion ist gegeben durch
Daher gilt:
Der Winkel und der Abstand der Schraubung der Kamera ist identisch zum Winkel und Abstand der Schraubung des Werkzeugs zwischen zwei Roboterposen
)2sin(2)2cos()2ˆcos()ˆ(Sc dq
2)ˆˆ()ˆ(Sc qqq
)ˆ(Scˆˆ)ˆ(Scˆ)ˆ(Scˆ
2)ˆ)ˆˆ(ˆ(2)ˆˆˆˆˆˆ(2)ˆˆ()ˆ(Sc
bxxbxbx
xbbxxbxxbxaaa
© 2014 MVTec Software GmbH, München620
Hand-Auge-Kalibrierung: duale Quaternionen
Nur der Vektoranteil von liefert Bedingungsgleichungen für die Bestimmung von :
Falls der Winkel der Schraubung nicht 0° oder 360° ist, ergibt sich:
Dabei sind und die Schraubenachsen der Kamera und des Werkzeugs
Die Hand-Auge-Kalibrierung ist äquivalent zur Bestimmung einer starren Abbildung, die zwei Konfigurationen von ( ) Geraden (den Schraubenachsen der Kamera und des Werkzeugs) möglichst gut aufeinander abbildet
xbxa ˆˆˆˆ x
xx ˆ)ˆ)2ˆsin(,0(ˆ)ˆ)2ˆsin(,0( ba ba
xx ˆ)ˆ,0(ˆ)ˆ,0( ba ba
m 1 n
© 2014 MVTec Software GmbH, München621
Hand-Auge-Kalibrierung: duale Quaternionen
Die Bedingungen, unter denen dieses Problem gelöst werden kann, sind von Chen (1991) vollständig beschrieben worden: Es sind zwei nichtparallele Schraubenachsen notwendig, um
die Hand-Auge-Kalibrierung eindeutig lösen zu können Falls nur eine Schraubenachse vorliegt (d.h. zwei
Roboterposen), kann der Winkel und Abstand der Schraubungnicht bestimmt werden (d.h. zwei Parameter sind
unbestimmbar) Falls alle Schraubenachsen parallel sind, kann der Abstand der
Schraubung nicht bestimmt werden (d.h. ein Parameter ist unbestimmbar)
Es gibt weitere degenerierte Fälle falls der Winkel der Kamera-und Werkzeugschraubung 0° ist oder falls der Winkel 180° und der Abstand 0 sind (Chen, 1991; hier nicht näher behandelt)
x
x
© 2014 MVTec Software GmbH, München622
Hand-Auge-Kalibrierung: duale Quaternionen
Die Real- und Dualteile einer dualen Quaternion seien mit und bezeichnet, d.h.
Aus folgt:
Multiplikation von rechts mit und Anwendung vonergibt:
q q qqqq ˆ
xbxa ˆˆˆˆ
xbxxbxxxbaxxba
q 0 qqqq
bxbxxaxaxbax
0)()(0
bxxabxxaxbax
© 2014 MVTec Software GmbH, München623
Hand-Auge-Kalibrierung: duale Quaternionen
Seien , , und Dann können die Gleichungen
in Matrixform geschrieben werden als:
Jede Relativbewegung liefert eine 6×8-Matrix Aus Roboterposen, d.h. Relativbewegungen, läßt sich
eine Matrix (Dimension: ) wie folgt konstruieren:
),0( aa),0( aa ),0( bb ),0( bb
0)()(0
bxxabxxaxbax
000
xx
S
][][][
babababababa
iS1 nmn
T
TTTTmSSST ,,, 21
86 m
© 2014 MVTec Software GmbH, München624
Hand-Auge-Kalibrierung: duale Quaternionen
Falls kein Rauschen (Fehler in den Schraubenachsen) vorliegt, hat die Matrix den Rang 6
Falls alle Schraubenachsen parallel sind, hat den Rang 5 Die Lösungen sind Linearkombinationen aus dem Kern von Im allgemeinen sind die Schraubenachsen mit Fehlern behaftet Numerisch besitzt typischerweise den Rang 8 (und nicht den
geometrisch zu erwartenden Rang 6) Zur Berechnung der Basis des Kerns von kann die
Singulärwertzerlegung (singular value decomposition, SVD) verwendet werden:
Es gilt: , , und
Die Werte heißen die Singulärwerte von
TT
T
T
T
TUSVT IUU T IVV T ),,,(diag 21 n S
021 n
i T
© 2014 MVTec Software GmbH, München625
Hand-Auge-Kalibrierung: duale Quaternionen
Für fehlerfreie Schraubenachsen gilt: Für fehlerbehaftete Schraubenachsen gilt dies im allgemeinen
nicht Die Singulärwerte und werden aber im allgemeinen sehr viel
kleiner sein, als die restlichen Singulärwerte Falls zusätzlich der Singulärwert sehr klein ist, sind die
Schraubenachsen alle parallel, d.h. es existiert keine eindeutige Lösung
Die Basis des Kerns von ist gegeben durch die Spalten von , die den Singulärwerten von 0 entsprechen (bzw. hinreichend kleinen Singulärwerten), d.h. den Spalten 7 und 8 von
087
7 8
6
T V
2
22
1
118271 v
uvu
vv xx
V
© 2014 MVTec Software GmbH, München626
Hand-Auge-Kalibrierung: duale Quaternionen
Damit die Lösung eine duale Einheitsquaternion ist, mußund gelten
Dies ist äquivalent zu und Einsetzen ergibt:
Der Ansatz ergibt eine quadratische Gleichung für :
Einsetzen von ergibt:
Das Problem hat neben der gesuchten Lösung noch die unerwünschte Lösung
Zur Vermeidung der unerwünschten Lösung werden beide Werte von in eingesetzt und die Lösung mit dem größeren Wert gewählt ,
x
1xxT 0xxT
1xx0 xxxx
0)(
12
222212212111
21
2222212111
21
vuvuvuvuuuuuuuTTTT
TTT
21 s0))(( 22122111
221 vuvuvuvu TTTT ss
s
21 s1)2( 222111
222 uuuuuu TTT ss
),( xx ),0( x
s 2221112 2 uuuuuu TTT ss
1 2
© 2014 MVTec Software GmbH, München627
Anforderungen an die Roboterbewegungen
Die Genauigkeit der Hand-Auge-Kalibrierung kann erhöht werden, wenn folgende Punkte (insbesondere bei der Planung der Roboterbewegungen) berücksichtigt werden (Tsai und Lenz, 1989): Der Roboter (die Roboterkinematik) sollte möglichst genau
kalibriert sein, d.h. die Lage des Werkzeugs relativ zur Basis sollte möglichst genau bekannt sein
Der Winkel zwischen den Schraubenachsen zwischen zwei Roboterposen sollte so groß wie möglich sein
Der Rotationswinkel der Schraubung zwischen zwei Roboterposen sollte so groß wie möglich sein
Der Abstand des Projektionszentrums der Kamera zum Kalibrierkörper sollte so klein wie möglich sein
Der Abstand der Werkzeugarbeitspunkte zwischen zwei Roboterposen sollte so klein wie möglich sein
Es sollten möglichst viele Roboterposen verwendet werden
© 2014 MVTec Software GmbH, München628
Automatische Auswahl der Relativbewegungen
Die obigen Kriterien können durch umsichtige Wahl der Roboterposen erfüllt werden
In vielen Fällen sind die Anwender aber mit der Planung der Posen unter den obigen Nebenbedingungen überfordert
In einigen Anwendungen (z.B. Endoskopie) ist eine gezielte Planung der Roboterposen nicht möglich
Eine automatische Auswahl der relativen Posen aus vorgegebenen Roboterposen ist wie folgt möglich (Schmidt et al., 2003): Sei die Rotationsachse (parallel zur Schraubenachse) der
relativen Pose zwischen den Roboterposen und Bestimme (z.B. ) Relativbewegungen durch:
Ein robusterer und effizienterer Algorithmus ist in Schmidt und Niemann (2008) beschrieben (hier nicht näher behandelt)
ijni j
m 1 nm
min klijnnT
© 2014 MVTec Software GmbH, München629
Lösung von Gleichungen der Form AX YB
Erinnerung: Für stationäre Kameras gilt und für bewegte Kameras gilt
Dies kann wie folgt umformuliert werden: Stationäre Kameras:
Bewegte Kameras:
Beide Systeme von Gleichungen haben die Struktur
wobei die Pose der Basis relativ zum Werkzeug oder umgekehrt beschreibt und die Pose der Kamera relativ zum Kalibrierkörper, jeweils an der i-ten Pose des Roboters
Beachte: Statt wird in der Literatur auch manchmal verwendet( )
co
bc
tb
to HHHH
co
tc
bt
bo HHHH
co
bc
to
bt HHHH
co
tc
bo
tb HHHH
ii YBXA iA
iB
ZBAX Y Z
© 2014 MVTec Software GmbH, München630
Lösung von Gleichungen der Form AX YB
Die geometrischen Beziehungen, die durch die Gleichungausgedrückt werden, können durch homogene Matrizen beschrieben werden:
Dieser Ansatz führt zu separaten Gleichungen zur Berechnung der Rotation und Translation:
Die Gleichungen können z.B. in der Darstellung als Quaternionen gelöst werden (Dornaika und Horaud, 1998)
Die separate Lösung der Rotationen und Translationen ist aber suboptimal, da sich Fehler in den Rotationen in erhöhte Fehler in den Translationen fortpflanzen
YBAX
1111BBYYXXAA
TTTT 0000tttt RRRR
YBYAXA
BYXA
tttt RR
RRRR
BYXA RRRR
© 2014 MVTec Software GmbH, München631
Lösung von Gleichungen der Form AX YB
Es ist besser, die Rotationen und Translationen gemeinsam zu bestimmen
Eine einfache Methode ist die Minimierung der Frobenius-Norm der Darstellung der Transformationen als homogene Matrizen:
Dornaika und Horaud (1998) verwenden eine nichtlineare Minimierung einer Fehlerfunktion der folgenden Art:
Die Startwerte können in beiden Fällen z.B. mit den Ergebnissen des linearen Verfahrens von Daniilidis (1999) berechnet werden
In beiden Fällen muß sichergestellt sein, daß die Translationen in etwa gleiches Gewicht wie die Rotationsanteile erhalten (durch geeignete Wahl der Einheiten oder über und )
min1
2
YBYAXA2
2
BYXA1
n
iiiiiitttt RRRRRR
n
iii
1
2YBXA
1 2
© 2014 MVTec Software GmbH, München632
Optimale Hand-Auge-Kalibrierung
Die bisher vorgestellten Verfahren sind nicht optimal, da sie die Genauigkeiten der als bekannt vorausgesetzten Transformationen nicht berücksichtigen und da sie teilweise algebraische Fehler optimieren
Strobl und Hirzinger (2006) beschreiben ein Verfahren, das diese Probleme behebt
Wenn die Transformationen alle auf eine Seite der definierenden Gleichung gebracht werden, ergibt sich eine geschlossene Kette von Transformationen:
Beide Arten von Gleichungen haben dieselbe Struktur:
IHHHH otco
bc
tb
IHHHH obco
tc
bt
IYXBA ii
© 2014 MVTec Software GmbH, München633
Optimale Hand-Auge-Kalibrierung
Aus den Gleichungen folgen Gleichungen für die Rotation und Translation
Für die Rotationen muß gelten:
Ein geeignetes Fehlermaß ist der Winkel der Rotation :
Der Winkel ist gegeben durch:
Für die Translation lassen sich aus den geschlossenen Ketten von Abbildungen folgende Fehlermaße herleiten:
IYXBA ii
IRRRR YBXA ii
1AAYBXA~
iiii
RRRRRRR
2)1)(tr(arccosBA Riii
2~
~
BA
BBB
AAA
1
1
ii
iii
iii
i ttt
ttt
ttt
R
© 2014 MVTec Software GmbH, München634
Optimale Hand-Auge-Kalibrierung
Das zu minimierende Fehlermaß ist gegeben durch:
Die Standardabweichungen und sind typischerweise unbekannt
Eine Schätzung für und läßt sich wie folgt mittels der optimierten Posen berechnen:
Initialisierung und und iterierte Optimierung vonkonvergiert in wenigen Iterationen (typischerweise 3)
min1
2
2
2
2
n
i t
ii
t2
2t
2
2
2t
n
iit
n
ii nn 1
22
1
22 11 t und
12 12 t2
© 2014 MVTec Software GmbH, München635
Zusammenfassung Hand-Auge-Kalibrierung
Wichtige Punkte, die man sich merken sollte Koordinatensysteme und –transformationen
Eulerwinkel Rotationsachse und Rotationswinkel Quaternionen Schraubungen Duale Quaternionen
Koordinatensysteme an Robotern Problemdefinition (stationäre und bewegte Kamera) Lösungsmethoden
Ansätze, die Gleichungen der Form lösen Ansätze, die Gleichungen der Form lösen Optimale Hand-Auge-Kalibrierung
XBAX YBAX
© 2014 MVTec Software GmbH, München636
Literatur
Yohan Baillot, Simon J. Julier, Dennis Brown, Mark A. Livingston: A Tracker Alignment Framework for Augmented Reality, International Symposium on Mixed and Augmented Reality, S. 142–150, 2003
Homer H. Chen: A Screw Motion Approach to Uniqueness Analysis of Head-Eye Geometry, International Conference on Computer Vision and Pattern Recognition, S. 145–151, 1991
Jack C. K. Chou, M. Kamel: Finding the Position and Orientation of a Sensor on a Robot Manipulator Using Quaternions, International Journal of Robotics Research 10(3):240–254, 1991
Konstantinos Daniilidis: Hand-Eye Calibration Using Dual Quaternions, International Journal of Robotics Research 18(3):286–298, 1999
Fadi Dornaika, Radu Horaud: Simultaneous Robot-World and Hand-Eye Calibration, IEEE Transactions on Robotics and Automation 14(4):617–622, 1998
© 2014 MVTec Software GmbH, München637
Literatur
Andrew J. Hanson: Visualizing Quaternions, Morgan Kaufmann Publishers, 2006
ISO 8373:1994: Manipulating industrial robots — Vocabulary, 1994 ISO 9787:1999: Manipulating industrial robots — Coordinate
systems and motion nomenclatures, 1999 ISO 14539:2000: Manipulating industrial robots — Object handling
with grasp-type grippers — Vocabulary and presentation of characteristics, 2000
Jack B. Kuipers: Quaternions and Rotation Sequences: A Primer with Applications to Orbits, Aerospace, and Virtual Reality, Princeton University Press, 1999
Reimar Lenz: Viedeometrie mit CCD-Sensoren und ihre Anwendung in der Robotik, Habilitationsschrift, Lehrstuhl für Nachrichtentechnik der Technischen Universität München, 1988
© 2014 MVTec Software GmbH, München638
Literatur
Matthias M. Mitschke, Nassir Navab: Recovering Projection Geometry: How a Cheap Camera Can Outperform an Expensive Stereo System, IEEE Conference on Computer Vision and Pattern Recognition, Bd. 1, S. 193–200, 2000
A. Morawiec, D. P. Field: Rodrigues parameterization for orientation and misorientation distributions, Philosophical Magazine A 73(4): 1113–1130, 1996
J. Rooney: A survey of representations of spatial rotation about a fixed point, Environment and Planning B 4(2):185–210, 1977
J. Rooney: A comparison of representations of general spatial screw displacement, Environment and Planning B 5(1):45–88, 1978
Jochen Schmidt, Florian Vogt, Heinrich Niemann: Robust Hand–Eye Calibration of an Endoscopic Surgery Robot Using Dual Quaternions, in: Bernd Michaelis, Gerard Krell, Hrsg.: Pattern Recognition, Lecture Notes in Computer Science, Bd. 2781,S. 548–556, Springer Verlag, 2003
© 2014 MVTec Software GmbH, München639
Literatur
Jochen Schmidt, Heinrich Niemann: Data Selection for Hand–Eye Calibration: A Vector Quantization Approach, International Journal of Robotics Research 27(9):1027–1053, 2008
Mark W. Spong, Seth Hutchinson, M. Vidyasagar: Robot Modeling and Control, John Wiley & Sons, 2006
Klaus H. Strobl, Gerd Hirzinger: Optimal Hand-Eye Calibration, International Conference on Intelligent Robots and Systems,S. 4647–4653, 2006
Roger Y. Tsai, Reimar K. Lenz: A New Technique for Fully Autonomous and Efficient 3D Robotics Hand/Eye Calibration, IEEE Transactions on Robotics and Automation 5(3):345–358, 1989
top related