HSSE – OpenProject c HSSE 2005, Version: 18. September 2006 Thomas Müller-Wipperfürth Die Wilde 13: Grundlagen der inversen Kinematik http://www.sandbox.at Die Wilde 13: Grundlagen der inversen Kinematik Inhaltsverzeichnis 1 Einleitung Das vorliegende Dokument beschreibt Grundlagen der inversen Kinematik und deren Anwendung für die Programmierung der Wilden 13. Zur Begriffsbestimmung: Die direkte Kinematik berechnet aus der Geometrie eines Roboters und den aktuellen Winkeln der ”Gelenke” die Position der ”Hand”. Im Gegensatz dazu versucht die inverse Kinematik aus der Geometrie des Roboters die entsprechenden Winkel der Gelenke zu berechnen, um einen vorgegebenen Punkt mit der Hand zu erreichen. Die Lösung von Gleichungssystemen und numerische bzw. geometrische Verfahren (z.B. Anwendung des Cosinussatzes) werden zur Lösung dieser Problematik eingesetzt. Als Grundlage zur Programmierung der Wilden 13 bietet dieses Dokument eine Einführung in das geometrische Verfahren. Grenzfälle und Einschränkungen werden nicht explizit behandelt. Die mathematische Modellierung ersetzt das experimentelle Vorgehen, um flüssige Bewegungen der Wilden 13 zu erzielen. 2 Grundlagen Als Grundlage für den geometrischen Ansatz dienen die Zusammenhänge von Seitenlängen und Winkeln im Dreieck. Abbildung 1: Seiten und Winkel des Dreiecks Für die Seiten im rechtwinkeligen Dreieck gilt: c2 = a2 + b2 Für die Winkel im rechtwinkeligen Dreieck gilt: sin α = cos α = tan α = a c b c a b Der Cosinussatz beschreibt die Zusammenhänge zwischen den Seitenlängen und einem Winkel in beliebigen Dreiecken: a2 b2 c2 = b2 + c2 − 2bc cos α = a2 + c2 − 2ac cos β = a2 + b2 − 2ab cos γ 3 Die Wilde 13 Der Öffnungswinkel der Servos wird in den weiteren Überlegungen auf 90◦ eingeschränkt. Die Berechnungen der Winkel des Hüftgelenks, des Oberschenkelgelenks und des Unterschenkelgelenks zum Anfahren des Punktes P (x, y, z) werden anhand des Beins 5 der Wilden 13 erläutert. 3.1 Hüftgelenk φh Abbildung ?? zeigt eine Teilaufsicht der Wilden 13. Der Abstand der Achse des Hüftservos vom Koordinatenursprung wird mit xB bezeichnet und beträgt 8 cm für alle Beine der Wilden 13. Abbildung 2: Teilaufsicht der Wilden 13 zur Berechnung des Winkels φh des Hüftservos. Für die Koordinaten des Punktes P (x, y, z) gelten für die Berechnung des Hüftwinkels φh die Einschränkungen x > xB und |y| ≤ (x − xB ). Damit muss der Punkt P innerhalb des Öffnungswinkels des Hüftservos liegen. In Abbildung ?? ist dieser Öffnungswinkel durch die punktierten Linien dargestellt. Es ist zu beachten, dass diese Einschränkungen nur für die Berechnung des Hüftwinkels gelten und noch nicht sicherstellen, dass der Punkt P tatsächlich erreicht werden kann. Im Kapitel ?? werden weitere Einschränkungen definiert, die bei der Berechnung des Oberschenkelwinkels zu berücksichtigen sind und die Erreichbarkeit des Punktes P sicherstellen. Der Hüftwinkel φh kann wie folgt bestimmt werden: 2 φh = tan φ0h = φ0h = 45 − φ0h y x − xB arctan y x − xB Beispiel: Gesucht ist die Stellung des Hüftgelenks für den Punkt P (168, −47, z). Die z-Koordinate spielt keine Rolle für die Berechnung des Winkels φh . φ0h φ0h φh = arctan(−0, 53) = −28 = 45 − (−28) = 73 Für den Punkt P (168, 47, z) ergibt sich φh = 17◦ . 3.2 Oberschenkelgelenk φo Zur Berechnung des Oberschenkelwinkels φo wird die vom Ober- und Unterschenkel aufgespannte Ebene um die zur z-Achse parallele Gerade durch den Beinursprung in die xz-Ebene gedreht. Die z-Koordinate bleibt durch diese Drehung unverändert; die x-Koordinate des Punktes P (x, y, z) wird zu x0 , wobei gilt (siehe Abbildung ??): p y 2 + (x − xB )2 x0 = Für die Berechnung von φo werden die Werte H, O, U und S benötigt (siehe Abbildung ??). Die Länge der Strecke S ist gegeben durch: S2 S = z 2 + (x0 − H)2 p = z 2 + (x0 − H)2 Abbildung 3: Berechnung des Oberschenkelwinkels φo . Die Ebene des Beines wird durch die zur z-Achse parallele Gerade durch den Beinursprung in die xz-Ebene gedreht. Die Position des Punktes P 0 (x0 , z) wird im Folgenden eingeschränkt, so dass x0 > H gilt. Soll der Endpunkt des Beines weiter in Richtung Körpermittelpunkt bewegt werden können, sind weiterreichende Überlegungen anzustellen. Insbesonders für x0 = H ist ein Sonderfall zu berücksichtigen. Die Bedingung z ≥ 0 stellt sicher, dass nur Punkte unterhalb der Achse des Hüftservos angesteuert werden können. Außerdem darf der Punkt P 0 (x0 , z) nicht außerhalb des Kreises liegen, dessen Mittelpunkt durch die Achse des Oberschenkelservos definiert ist und dessen Radius durch die Längen O und U festgelegt ist. Punkte außerhalb können durch die festgelegten Längen des Oberund Unterschenkels nicht erreicht werden. Zusammenfassend werden folgende Einschränkungen für die Berechnung von φo angenommen: z = z0 x0 0 2 (x − H) + z 2 ≥ 0 > H ≤ (O + U )2 3 Der Winkel φo kann jetzt durch φ00o − φ0o berechnet werden. Wobei für φ00o gilt: z tan φ00o = x0 − H z φ00o = arctan 0 x −H Zur Berechnung des Winkels φ0o kommt der Cosinussatz zur Anwendung: = S 2 + O2 − 2SO cos φ0o U 2 − S 2 − O2 cos φ0o = −2SO 2 S + O2 − U 2 cos φ0o = 2SO S 2 + O2 − U 2 φ0o = arccos 2SO Damit ergibt sich für den Oberschenkelwinkel φo : U2 φo = arctan x0 z S 2 + O2 − U 2 − arccos −H 2SO 3.3 Unterschenkelgelenk φu Abbildung ?? zeigt, dass der Winkel φu des Unterschenkelservos durch 180−φ0u berechnet werden kann. Der Winkel φ0u ergibt sich aus der Anwendung des Cosinussatzes wie folgt: S2 cos φ0u cos φ0u φ0u = O2 + U 2 − 2OU cos φ0u S 2 − O2 − U 2 = −2OU 2 O + U 2 − S2 = 2OU O2 + U 2 − S 2 = arccos 2OU Abbildung 4: Berechnung des Unterschenkelwinkels φu . Der Winkel φu des Unterschenkelgelenks ist damit beschrieben durch: φu 4 = 180 − arccos O2 + U 2 − S 2 2OU 3.4 Transformation kartesischer Koordinaten Das Koordinatensystem der Wilden 13 wurde so gewählt, dass die x-Achse des Koordinatensystems durch die Achse des Hüftservos des Beines 5 verläuft. Die Achse des Hüftservos des Beines 2 liegt auf der negativen x-Achse. Die Berechnung der Servowinkel der Beine 1,3,4, und 6 kann durch die Drehung des kartesischen Koordinatensystems um den Körperursprung vereinfacht werden. Die Berechnung der Servowinkel erfolgt im gedrehten Koordinatensystem - dies erfordert die Berechnung von P 0 gefolgt von den Berechnungen für φh , φo und φu . Die berechneten Winkelwerte sind unabhängig von der Drehung des Koordinatensystems. Abbildung ?? illustriert die Drehung des xy-Koordinatensystems um den Winkel φ gegen den Uhrzeigersinn um den Ursprung des Koordinatensystems. Abbildung 5: Drehung eines kartesischen Koordinatensystems. Durch diese Drehung ergeben sich folgende Zusammenhänge: x0 y0 = x cos φ + y sin φ = −x sin φ + y cos φ x = x0 cos φ − y 0 sin φ y = x0 sin φ + y 0 cos φ 4 Schlussbemerkung Dieses Dokument gibt eine Einführung in den geometrischen Ansatz der inversen Kinematik. Anhand der Geometrie der Wilden 13 werden die Zusammenhänge zwischen einem Punkt P (x, y, z) und Winkeln der Hüft-, Ober- und Unteschenkelservos hergestellt. Dabei werden aus Gründen der Einfachheit Einschränkungen für den Punkt P definiert. Dieses Dokument stellt also keine vollständige Lösung des Problems der inversen Kinematik für die Wilde 13 bereit, sondern gibt eine erste Einführung in die Thematik. 5