Automatisierte Generierung und Analyse von DH-Parameters atzen f ur modulare serielle Roboter

Die Seite wird erstellt Horst-Peter Geisler
 
WEITER LESEN
Automatisierte Generierung und Analyse von DH-Parameters atzen f ur modulare serielle Roboter
Automatisierte Generierung und
Analyse von DH-Parametersätzen
  für modulare serielle Roboter
                          Bachelorarbeit
              zur Erlangung des akademischen Grades

            Bachelor of Science (BSc.)

                          im Rahmen des
                    Bachelorstudiums
                      Mechatronik

                           vorgelegt von:

                          Manuel Ferdik

                              betreut von:
                    Dipl.-Ing. Mathias Brandstötter
                                  und
               Univ.-Prof. Dr. techn. Michael Hofbaur
        Institut für Automatisierungs- und Regelungstechnik

  im Rahmen des gemeinsamen Studiums (joint-degree-program) der

     UMIT - Private Universität für Gesundheitswissenschaften,
              Medizinische Informatik und Technik
                              und der
             Leopold-Franzens-Universität Innsbruck

                   Hall in Tirol, im August 2012
Automatisierte Generierung und Analyse von DH-Parameters atzen f ur modulare serielle Roboter
Automatisierte Generierung und Analyse von DH-Parameters atzen f ur modulare serielle Roboter
Eidesstattliche Erklärung

Ich erkläre hiermit an Eides statt durch meine eigenhändige Unterschrift, dass ich die
vorliegende Arbeit selbständig verfasst und keine anderen als die angegebenen Quellen
und Hilfsmittel verwendet habe. Alle Stellen, die wörtlich oder inhaltlich den angegebe-
nen Quellen entnommen wurden, sind als solche kenntlich gemacht.

Ich erkläre mich mit der Archivierung der vorliegenden Bachelorarbeit einverstanden.

Hall in Tirol, August 2012                                                Manuel Ferdik

                                           iii
Automatisierte Generierung und Analyse von DH-Parameters atzen f ur modulare serielle Roboter
Abstract

This bachelor thesis deals with questions about modular serial robots and presents a
method, which can automatically compute Denavit-Hartenberg-parameters and analyze
them afterwards.

First an appropriate input language was defined, which allows the user to enter a modular
serial robot. The language has to be intuitive as well as definite.

The implementation of the MATLAB software was split into three parts. The program
starts by calculating the next axis of rotations. Therefor the coordinate system is pro-
gressively transformed from the input to the output interface of the modules. Finally the
z-axis is coincide with the next axis of rotations. Afterwards the coordinate system will
be transformed, based on the definition of Denavit and Hartenberg, to the final position.
So the DH-parameters can be extracted out of the transformation matrix.

The analysis of a set of parameters was a further object of this thesis. Therefore the
DH-parameters were tested on structural characteristics like orthogonality and ortho-
parallelism.

                                           iv
Automatisierte Generierung und Analyse von DH-Parameters atzen f ur modulare serielle Roboter
Kurzfassung

Die vorliegende Bachelorarbeit beschäftigt sich mit dem Thema modulare serielle Robo-
ter. Es wurde ein Lösungsweg präsentiert, der die Denavit-Hartenberg-Parameter auto-
matisiert berechnet und anschließend analysiert.

Dazu wurde zu Beginn eine geeignete Eingabesprache definiert, die es dem Anwender
ermöglicht, einen modularen seriellen Roboter einzugeben. Diese Sprache sollte sowohl
intuitiv, als auch eindeutig sein.

Darauf aufbauend konnte mit der Implementierung der Software in MATLAB begonnen
werden. Diese wurde in drei Abschnitte aufgeteilt und beginnt mit der Bestimmung der
Folgeachse (Rotationsachse). Dabei wird schrittweise das Koordinatensystem von der
Eingangs- zur Ausgangsschnittstelle der Module transformiert. Schlussendlich fällt die
z-Achse mit der Folgeachse zusammen. Anschließend wird das Koordinatensystem in
jene Lage gebracht, die es zur Bestimmung der DH-Parameter benötigt. Diese werden
durch Auswerten der Transformationsmatrix bestimmt.

Als weiteres Ziel dieser Arbeit wurde die Analyse eines gegebenen DH-Parametersatzes
gesetzt. Dazu wird der zuvor berechnete Parametersatz auf strukturelle Merkmale hin
untersucht. Es handelt sich dabei um spezielle Strukturen wie Orthogonalität, Ortho-
parallelität, Zentralhand und Standardstruktur eines Roboters.

                                          v
Automatisierte Generierung und Analyse von DH-Parameters atzen f ur modulare serielle Roboter
Inhaltsverzeichnis

1 Einleitung                                                                                                                               1
  1.1 Aufgabenstellung und Motivation              .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   1
  1.2 Zielsetzung . . . . . . . . . . . .          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   2
  1.3 Vorgehensweise . . . . . . . . . .           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   2
  1.4 Related Research . . . . . . . . .           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   3

2 Mathematische Grundlagen                                                                                                                 4
  2.1 Homogene Koordinaten . . . . .          .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   4
      2.1.1 Definition . . . . . . . .        .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   4
      2.1.2 Transformationen . . . .          .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   5
  2.2 Fußlotpunkt einer Geraden . . .         .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   7
  2.3 Denavit-Hartenberg-Parameter            .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   9

3 Eingabe                                                                                                                                  12
  3.1 Allgemein . . . . . . . . . . .     .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   12
  3.2 Aktuatoren . . . . . . . . . .      .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   13
      3.2.1 PR-Modul . . . . . . .        .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   13
      3.2.2 PW-Modul . . . . . .          .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   15
  3.3 Verbindungselemente - Winkel        .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   17
      3.3.1 PAM-Modul . . . . . .         .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   17
      3.3.2 PVW-Modul . . . . .           .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   19
      3.3.3 OWN-Modul . . . . .           .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   20
  3.4 Verbindungselemente - Gerade        .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   22
      3.4.1 PAM-Modul . . . . . .         .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   22
  3.5 Beispiele . . . . . . . . . . . .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   23

4 Programmablauf                                                                                                                           26
  4.1 Grafische Benutzeroberfläche   .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   26
      4.1.1 Ein- und Ausgabe . .      .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   27
      4.1.2 Speichern und Laden       .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   27
      4.1.3 Zusatzfunktionen . .      .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   28
  4.2 Eingabe . . . . . . . . . . .   .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   28
      4.2.1 Aufbereitung . . . .      .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   29
      4.2.2 Eingabe Überprüfen      .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   30

                                                  vi
Automatisierte Generierung und Analyse von DH-Parameters atzen f ur modulare serielle Roboter
Inhaltsverzeichnis

   4.3   Berechnung der z-Achse . . . . . . . . . . . .                   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   31
         4.3.1 Standardablauf . . . . . . . . . . . . .                   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   31
         4.3.2 Spezialbehandlung . . . . . . . . . . .                    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   32
   4.4   Transformation . . . . . . . . . . . . . . . . .                 .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   32
         4.4.1 Fußlotpunkt . . . . . . . . . . . . . . .                  .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   32
         4.4.2 Orientierung der x-Achse . . . . . . . .                   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   35
   4.5   Auswertung . . . . . . . . . . . . . . . . . . .                 .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   35
   4.6   Vorbereitung zur nächsten Berechnung . . . .                    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   37
   4.7   TCP . . . . . . . . . . . . . . . . . . . . . . .                .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   37
         4.7.1 PR-Modul . . . . . . . . . . . . . . . .                   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   38
         4.7.2 PW-Modul . . . . . . . . . . . . . . .                     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   38
         4.7.3 Winkelverbindung . . . . . . . . . . . .                   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   38
         4.7.4 Zylindrische oder konische Verbindung                      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   39
   4.8   Fehlerbehandlung . . . . . . . . . . . . . . . .                 .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   40

5 Analyse                                                                                                                             43
  5.1 Zentralhand . . . . . . . . . . . .    .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   43
  5.2 6R-Roboter mit Standardstruktur        .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   44
  5.3 Orthogonale Roboter . . . . . . .      .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   44
  5.4 Orthoparallele Roboter . . . . . .     .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   45

6 Zusammenfassung und Ausblick                                                                                                        46

Literaturverzeichnis                                                                                                                  48

                                            vii
Automatisierte Generierung und Analyse von DH-Parameters atzen f ur modulare serielle Roboter
Abbildungsverzeichnis
 2.1   Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   .    6
 2.2   Rotation um die z-Achse . . . . . . . . . . . . . . . . . . . . . . . . . .     .    7
 2.3   Fußlotpunkt zweier Geraden . . . . . . . . . . . . . . . . . . . . . . . .      .    8
 2.4   Konvention der Koordinatensystems zur Berechnung der DH-Parameter               .    9
 2.5   Grafische Darstellung der DH-Parameter . . . . . . . . . . . . . . . . .        .   10

 3.1  Rotationsmodul PR90 von Schunk . . . . . . . . . . . . . . . . . . . . . .           13
 3.2  Nummerierung der PR Module . . . . . . . . . . . . . . . . . . . . . . .             15
 3.3  Montage eines PW-Moduls an ein PR-Modul mittels zylindrischer Ver-
      bindungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      16
 3.4 Möglichkeiten zur Montage eines PW-Moduls an eine Winkelverbindung                   17
 3.5 Winkelverbindung PAM von Schunk . . . . . . . . . . . . . . . . . . . .               17
 3.6 Vier Möglichkeiten zwei Winkelmodule miteinander zu verbinden . . . .                19
 3.7 Vorgabe zur Definition eigener Winkel-Verbindungen . . . . . . . . . . .              21
 3.8 Montage eines PR90-Moduls an eine Winkelverbindung . . . . . . . . . .                23
 3.9 Verwendung einer zylindrischen Verbindung zwischen zwei PR-Modulen .                  24
 3.10 Einbau eines Winkelmoduls an ein Rotationsmodul . . . . . . . . . . . .              25

 4.1   Die grafische Benutzeroberfläche der implementierten Software . . . . . .          26
 4.2   Ergebnisdarstellung nach einer Berechnung . . . . . . . . . . . . . . . . .         27
 4.3   Dialogbox beim Öffnen einer Datei . . . . . . . . . . . . . . . . . . . . .        28
 4.4   Laden eines Roboters aus der History . . . . . . . . . . . . . . . . . . . .        29
 4.5   Transformationsmatrix in den TCP . . . . . . . . . . . . . . . . . . . . .          38
 4.6   Orientierung des TCP-Koordinatensystems bei PR-Modulen (z-Achse zeigt
       aus der Ebene) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      39
 4.7   Orientierung des TCP-Koordinatensystems bei Winkelverbindungen . . .                39
 4.8   Fehlermeldung mit Error Code . . . . . . . . . . . . . . . . . . . . . . . .        41

 5.1   Mögliche Konfiguration eines Handgelenks . . . . . . . . . . . . . . . . .         43
 5.2   Orthogonale und Orthoparallele Strukturen . . . . . . . . . . . . . . . .           45

                                          viii
Automatisierte Generierung und Analyse von DH-Parameters atzen f ur modulare serielle Roboter
Tabellenverzeichnis
 3.1   Übersicht von zylindrischen und konischen PAM-Modulen         . . . . . . . .   22

 4.1   Übersicht über mögliche Error Codes . . . . . . . . . . . . . . . . . . . .   41

                                           ix
Automatisierte Generierung und Analyse von DH-Parameters atzen f ur modulare serielle Roboter
1 Einleitung

1.1 Aufgabenstellung und Motivation

Der Begriff des Roboters geht auf den tschechischen Dramatiker Karel Capek zurück. In
einem seiner Theaterstücke verwendete er 1921 erstmals das Wort robota“, welches in
                                                                 ”
der tschechischen Sprache für Zwangsarbeit“ steht. Heutzutage lautet eine Definition
                               ”
des Robot Institute of America (RIA) [Neh02]:

          Roboter sind multi-funktionale Manipulatoren (oder Vorrichtungen), deren
         ”
         Programm verändert werden kann. Sie sind in der Lage, Materialien, Bauteile,
         Werkzeuge oder Spezialgeräte in variablen programmierten Abläufen so zu
         bewegen, dass eine Vielfalt von verschiedenen Aufgaben ausgeführt wird.“

Roboter lassen sich anhand ihrer Architektur in weitere Gruppen unterteilen (serielle,
parallel, etc). Die in dieser Arbeit betrachteten seriellen Roboter, werden von [Gfr08]
wie folgt definiert:

          Ein serieller Roboter Rn ist eine kinematische Kette mit (n + 1) Systemen
         ”
         Σ0 , ..., Σn und n Gelenken G1 , ..., Gn , wobei Gi die Systeme Σi−1 und Σi
         verbindet. Jedes der Gelenke Gi ist entweder ein Dreh- oder ein Schubgelenk.
         Das System Σ0 bzw. Σn heißt Basis bzw. Endeffektor des seriellen Roboters.“

Serielle Roboter spielen in der industriellen Automatisierungstechnik eine wichtige Rolle,
wie beispielsweise in den Fertigungsstraßen von Automobilherstellern. Bei diesen Ferti-
gungsstraßen tritt jedoch das Problem auf, dass bei einer Prozessänderung die vorhan-
denen Roboter teilweise komplett ausgetauscht werden müssen. Eine Abhilfe für dieses
Problem könnte der Einsatz modularer serieller Roboter schaffen. Dabei handelt es sich
um eine spezielle Art von Robotern, die aus einzelnen Modulen (Aktoren) aufgebaut
sind. Die einheitlichen Schnittstellen dieser Module ermöglichen den Aufbau komplexer
Roboterstrukturen durch zusammensetzen und verbinden der Aktoren mittels geome-
trisch beliebig konstruierten Verbindungselementen. Durch das Konzept der Modula-
rität ergeben sich Vorteile sowohl für Erweiterbarkeit und Optimierung des Roboters für
verschiedene Aufgaben, als auch für das Austauschen und Ersetzen defekter Teile1 .
 1
     Quelle: www.modular-machines.at

                                              1
1.2. ZIELSETZUNG

Da für eine sinnvolle Steuerung serieller Roboter die Lage des Endeffektors (EE) im Raum
bekannt sein muss, benötigt man eine dafür geeignete mathematische Beschreibung. Die
direkte Kinematik, oder auch Vorwärtskinematik genannt, bietet hierfür das geeignete
mathematische Instrument. Ihre Aufgabe ist es, aus den Gelenkswinkeln die pose“, d.
                                                                                 ”
h. die Position und Orientierung des EE, relativ zur Basis, zu bestimmen.[HKSS97]

Wie der gegebene Manipulator konfiguriert ist, beschreiben die sogenannten Denavit-
Hartenberg (DH) Parameter. [HD64]

Die manuelle Bestimmung bzw. Berechnung der DH Parameter ist bereits für kleine Auf-
bauten modularer serieller Roboter zeitintensiv und erfordert einigen Rechenaufwand. Ei-
ne mögliche Erleichterung dieses Vorgangs durch eine weitgehende automatisierte Lösung
ist Gegenstand dieser Arbeit.

1.2 Zielsetzung

Ziel dieser Arbeit ist es, einen Weg zur automatisierten Generierung der DH Parameter
zu finden. Dabei ist eine Software gesucht, die es einem Anwender ermöglicht modu-
lare serielle Roboter, unter der Vorgabe einer definierten Eingabesprache, textuell zu
beschreiben. Hierbei soll eine weitgehend intuitive Syntax der Sprache vorherrschen.

Die Software muss die Eingabe für eine anschließende Berechnung soweit aufbereiten,
dass eine Tabelle mit den Parametern ausgegeben werden kann. Weiters ist eine Ver-
waltung (Speichern und Laden) der berechneten Parametersätze zu implementieren. Ein
abschließendes Kapitel wird sich der Analyse von DH Parametersätzen widmen. Dabei
soll auf das Erkennen von strukturellen Merkmalen näher eingegangen werden.

1.3 Vorgehensweise

Zu Beginn der Arbeit wurde eine geeignete Eingabesprache definiert, die einerseits intui-
tiv und andererseits die Aufbereitung für die anschließende Berechnung weitestgehend
einfach gestaltet. Die Lage der Module im Raum muss eindeutig festgelegt sein, was das
Erreichen des Kriteriums intuitive Eingabe“ erschwert.
                          ”
Nachdem die Eingabesprache festgelegt war, konnte mit der Implementierung der Soft-
ware begonnen werden. Als Entwicklungsumgebung wurde MATLAB gewählt, welche
uns sowohl die Berechnung der DH-Parameter, als auch die Implementierung einer gra-
fischen Benutzeroberfläche (GUI) zur Ein- und Ausgabe ermöglicht. Aus Gründen der
Übersichtlichkeit wurde die Berechnung in Teilaufgaben zerlegt. Jede Teilaufgabe wird

                                           2
1.4. RELATED RESEARCH

von einer MATLAB Funktion berechnet und anschließend im aufrufenden Programm zu-
sammengeführt. Weiters ermöglichen eindeutig definierte Schnittstellen, die Erweiterung
bzw. das Austauschen von Funktionsblöcken.

Im Anschluss an die abgeschlossene Berechnung, konnte mit dem Erstellen einer GUI
begonnen werden. Neben den Hauptaufgaben der Ein- und Ausgabe, wurden Funktionen
zum Speichern und Laden von Berechnungen implementiert.

Das fertige Programm wurde abschließend durch Eingabe von DH-Parametern bekannter
Robotern getestet und verifiziert.

Im zweiten Teil der Arbeit stand die Analyse der Denavit-Hartenberg Parameter im
Fokus, die dabei auf strukturelle Merkmale eingehen soll.

1.4 Related Research

Da sich die Berechnung der DH-Parameter per Hand meist als aufwändig erweist, war
die automatisierte Generierung bereits Thema verschiedener Arbeiten.

In [KK88] wird eine Methode zur automatisierten Generierung der Kinematik von mo-
dularen Manipulatoren vorgestellt. Ein Algorithmus bestimmt dabei zuerst die DH-
Kinematik-Parameter um mit ihnen anschließend die direkte oder indirekte Kinema-
tik zu bestimmen. Die dargelegte Methode wurde sehr generell definiert und ist daher
unabhängig von der Anzahl der Module oder vom Typ der Gelenke.

Das automatisierte Ableiten der DH-Parameter aus den Design-Variablen modularer
Roboter ist auch Gegenstand von [BZCL07]. Zusätzlich werden die Unterschiede zwischen
modularer und nicht-modularer Architektur behandelt.

Einige Arbeitsgruppen beschäftigen sich mit dem Rekonfigurieren von modularen Ro-
botern. In diesem Bereich ist die, in dieser Arbeit dargestellte, Software von großem
Nutzen, da jede Rekonfiguration die DH-Parameter verändern kann. Die Neuberechnung
per Hand wäre dabei mit großem Aufwand verbunden.

In [PWJ+ 10] wird eine topologische Analyse von rekonfigurierbaren modularen Robotern
durchgeführt. Dabei wird aufbauend auf die Moduldefinition und Einteilung der Module
ein Algorithmus präsentiert, welcher die Konfiguration eines Roboters darstellt. Diese
wird anschließend einer Analyse unterzogen.

                                           3
2 Mathematische Grundlagen

2.1 Homogene Koordinaten

Zur Berechnung der Denavit-Hartenberg-Parameter ist es nötig Bewegungen im Raum
mathematische beschreiben zu können. Dazu werden im Allgemeinen homogene Koordi-
naten verwendet. Diese ermöglichen es, Bewegungen (auch Transformationen genannt)
durch Matrixmultiplikationen zu beschreiben. Dieser Abschnitt beschäftigt sich mit der
Definition und den Eigenschaften von homogene Koordinaten.

Die Nomenklatur und Definitionen, die in diesem Abschnitt angeführt werden, sind aus
[Bra07] übernommen.

2.1.1 Definition

Eine Punktdarstellung im n-dimensionalen Raum benötigt für eine Beschreibung in ho-
mogene Koordinaten eine zusätzliche Dimension. Dies hat zur Folge, dass ein Punkt im
R3 vier homogene Koordinaten benötigt um eindeutig bestimmt zu sein.

Betrachten wir zu Beginn die homogenen Koordinaten eines eigentlichen (endlichen)
Punktes:                          
                                x0
                               x1 
                            ρ x2  wobei ρ, x0 6= 0                        (2.1)
                                   

                                x3
                                    1
Durch die geschickte Wahl von ρ =   x0
                                          ergeben sich die Koordinaten zu
                                              
                                         x0         1
                                        x1   x 
                                                
                                 ρ            =      ,                          (2.2)
                                        x2   y 
                                         x3         z
mit den affinen Koordinaten des Punktes
                                 x1     x2               x3
                            x= , y= ,               z=      .
                                 x0     x0               x0

                                             4
2.1. HOMOGENE KOORDINATEN

Gleichung 2.2 stellt daher die Überführung eines eigentlichen Punktes mit den homogenen
Koordinaten x0 , x1 , x2 , x3 in dessen affine Koordinaten x, y, z dar. Andererseits ist es
dadurch auch möglich, einen eigentlichen Punkt unmittelbar in homogenen Koordinaten
darzustellen. Durch setzten von x0 = 1 können x1 = x, x2 = y und x3 = z festgelegt
werden.

Diese Definition beschränkt sich, wie in Gleichung 2.1 festgelegt, auf eigentliche Punk-
te mit x0 6= 0. Der große Vorteil homogener Koordinaten ist jedoch die Möglichkeit
der Beschreibung von sogenannten Fernpunkten (auch uneigentliche Punkte genannt).
Ein Fernpunkt stellt einen Punkt im Unendlichen dar. Anders formuliert stellt er je-
nen Punkt dar, in dem sich eine Schar paralleler Geraden schneiden. Bei einem solchen
Punkt degeneriert x0 zu 0. Das bedeutet, ein Punkt im Unendlichen lässt sich wie folgt
anschreiben:                            
                                      0
                                    x1 
                                 ρ x2  wobei ρ 6= 0.
                                         

                                     x3
Uneigentliche Punkte werden auch als homogene Richtungsvektoren bezeichnet.

2.1.2 Transformationen

Zur Berechnung der DH-Parameter ist es notwendig Koordinatensysteme zu bewegen.
Unter Verwendung homogener Koordinaten ist es möglich Transformationen durch Ma-
trixmultiplikationen darzustellen. Jede Matrix stellt dabei eine Transformation dar und
bietet sich die Möglichkeit die Hintereinaderausführung von Bewegungen, durch Multi-
plikation der Transformationsmatrizen abzubilden. Eine Transformation kann dabei eine
Rotation, Translation oder beides sein. Es wurden bereits mehrere Varianten zur Defini-
tion dieser Matrizen gefunden und festgelegt. Die in dieser Arbeit verwendete Notation
lehnt sich wie auch [Bra07] an [SHV05] an.

   • Translation: Eine Translation oder Verschiebung eines Punktes wird Allgemein
     durch Addition des Punktes mit ∆x, ∆y und ∆z beschrieben:
                                                    
                              x       ∆x         x + ∆x
                            y  +  ∆y  =  y + ∆y 
                              z       ∆z         z + ∆z

     Für den ebenen Fall ist dies in Abbildung 2.1 dargestellt. Nun ermöglichen es
     homogene Koordinaten, dass die Verschiebung eines Punktes durch Multiplikation
     einer Transformationsmatrix mit dem Punkt selbst erfolgt.

                                            5
2.1. HOMOGENE KOORDINATEN

                             y

                                                    (x + ∆x, y + ∆y)

                      ∆y

                                 (x, y)                   x

                                          ∆x

                             Abbildung 2.1: Translation

    Die Transformationsmatrix T besitzt folgende Form:
                                                                  
                                               1 0 0             0
                                             ∆x 1 0             0 
                         T(∆x, ∆y, ∆z) =    ∆y 0 1
                                                                   
                                                                 0 
                                              ∆z 0 0             1

    Die Translation erfolgt demnach mit:
                                                                  
                             1 0 0 0               1          1
                          ∆x 1 0 0              x   x + ∆x
                                                                     
                                                    =               
                          ∆y 0 1 0              y   y + ∆y        
                            ∆z 0 0 1               z       z + ∆z

  • Rotation: Eine Rotation dreht einen Punkt um den Koordinatenursprung um
    einen bestimmten Winkel ϕ. Dabei ist es möglich eine Drehung um jeweils eine
    Koordinatenachse (Abbildung 2.2 zeigt eine Rotation um z) durchzuführen. Dies
    bedeutet, es stehen im R3 folgende drei Basisrotationen zur Verfügung:
                                                             
                                       1 0     0        0
                                      0 1     0        0     
                          Rx (ϕx ) = 
                                      0 0 cos ϕx − sin ϕx 
                                                              

                                       0 0 sin ϕx cos ϕx
                                                                 
                                        1    0           0    0
                                       0 cos ϕy         0 sin ϕy 
                           Ry (ϕy ) = 
                                       0
                                                                  
                                             0           1    0 
                                        0 − sin ϕy       0 cos ϕy

                                               6
2.2. FUSSLOTPUNKT EINER GERADEN

                                                                 
                                        1    0      0           0
                                       0 cos ϕz − sin ϕz       0 
                           Rz (ϕz ) = 
                                       0 sin ϕz cos ϕz
                                                                  
                                                                0 
                                        0    0      0           1

                                    y

                                ϕ

                                                            x
                                    z

                       Abbildung 2.2: Rotation um die z-Achse

2.2 Fußlotpunkt einer Geraden

[MM11] definiert den Fußlotpunkt oder Fußpunkt des Lotes, als Schnittpunkt einer Gera-
den oder Ebene mit dessen Lot. In unseren Berechnung wird das Lot als Normalenvektor
zwischen zwei Geraden definiert. Der Normalenvektor steht orthogonal auf beide Geraden
und besitzt demnach zwei Fußpunkte (f1 und f2 ). Abbildung 2.3 bildet diese Situation
ab.
Gegeben sind zwei Geraden in Parameterform und dargestellt in homogenen Koordina-
ten:
                                                    
                                         1          0
                                       p1 
                                            + λ  r1  λ 6= 0
                                                      
                     g1 : p~ + λ ~r = 
                                       p2       r2 
                                        p3         r3
                                                    
                                         1          0
                                       s1 
                     g2 : ~s + µ ~t =      + µ  t1  µ 6= 0.
                                                      
                                       s2       t2 
                                        s3         t3

                                            7
2.2. FUSSLOTPUNKT EINER GERADEN

                                                                g1

                                          f1                         g2
                           z
                                                   ~n

                                  y                        f2

                                                        x

                     Abbildung 2.3: Fußlotpunkt zweier Geraden

Der Normalenvektor der beiden Geraden wird mit dem Kreuzprodukt der beiden Rich-
tungsvektoren berechnet. Dabei werden die affinen Koordinaten verwendet:
                                                     
                                            t1       r1
                           ~n = ~t × ~r =  t2  ×  r2 
                                            t3       r3

Nach der Normierung von ~n erhält man schlussendlich:
                                                ~t × ~r
                                      ~n0 =
                                               |~t × ~r|
Für die weitere Berechnung wird ~n0 in homogene Koordinaten umgewandelt und dazu
eine Koordinate x0 = 0 vorangestellt.
Im nächsten Schritt wird eine Ebene mithilfe der Geraden und des Normalenvektors
gebildet. Wird dies mit der Geraden g1 durchgeführt, berechnet man im Anschluss den
Schnittpunkt der Ebene mit g2 . Der zweite Fußlotpunkt erhält man, wenn die Geraden
vertauscht werden und die Ebene mit g2 gebildet wird und der Schnitt mit g1 berechnet
wird. Wir beschränken uns hier auf ersterer Variante.
Die Ebene

                                 ε1 : p~ + λ ~r + η ~n0

wird zum berechnen des Schnittpunktes mit der Gerade g2 gleichgesetzt:

                               p~ + λ ~r + η ~n0 = ~s + µ ~t.

Nach kurzer Umformung erhält man das Gleichungssystem

                               λ ~r + η ~n0 − µ ~t = ~s − p~.

                                               8
2.3. DENAVIT-HARTENBERG-PARAMETER

Aufgrund der Tatsache, dass auf der linken Seite lediglich Richtungsvektoren mit x0 = 0
stehen und da rechts durch die Subtraktion x0 = 1 − 1 = 0 entsteht, ergibt sich ein linea-
res 3 × 3 Gleichungssystem. Zur Lösung stehen dazu, wie in [Kap10] ausgeführt, mehre-
re Algorithmen (LR-Zerlegung, Cholesky-Verfahren, Gauß-Newton-Verfahren, etc.) zur
Verfügung. Durch Rückeinsetzen der berechneten Werte λ, µ, η ergibt sich der erste Fuß-
punkt. Die Berechnung des zweiten Fußlotpunktes erfolgt äquivalent.

2.3 Denavit-Hartenberg-Parameter

Denavit-Hartenberg-Parameter, oder kurz DH-Parameter, spielen in der Robotik eine
wichtige Rolle. Sie sind die übliche Methode zur Beschreibung der geometrischen Konfi-
guration der Roboterachsen. Diese wird sowohl zur Berechnung der direkten Kinematik
als auch der indirekten Kinematik benötigt. Die in diesem Abschnitt vorkommenden
Definitionen und Notationen sind an [SHV05], [Gfr08] und [Ang07] angelehnt.

Bevor man beginnt die DH-Parameter zu bestimmen, benötigt es einer Konvention über
die Lage der Koordinatensysteme, die im Folgenden mit Σ bezeichnet werden. Gegeben
seien zwei Achsen gi−1 und gi . Wie in Abbildung 2.4 zu sehen, definieren wir zi in
Richtung der Achse gi . Um das Koordinatensystem eindeutig festzulegen benötigen wir
nun noch eine Einschränkung. Dazu wird xi in Richtung des Gemeinlotes von gi und gi−1
gedreht. yi ergibt sich aus dem Kreuzprodukt von xi und zi .

                                                           xi

                                                 yi
                                                                zi

                                                      gi

                                   xi−1

                            yi−1
                                          zi−1                   gi−1

Abbildung 2.4: Konvention der Koordinatensystems zur Berechnung der DH-Parameter

Ein DH-Parametersatz besteht nun aus vier Werten: ai , di , αi , θi (siehe Abbildung 2.5).

                                             9
2.3. DENAVIT-HARTENBERG-PARAMETER

   • ai : beschreibt den Minimalabstand der Geraden gi und gi+1 (Länge des Gemein-
     lots).

   • di : ist definiert als der Abstand zwischen Oi und Pi . Dabei beschreibt Oi den
     Fußlotpunkt (siehe Abschnitt 2.2) auf gi mit der Geraden gi−1 und Pi mit der
     Geraden gi+1 .

   • αi : stellt den Winkel zwischen zi und zi+1 dar

   • θi : ist durch den Winkel zwischen xi und xi+1 oder äquivalent zwischen yi und yi+1
     definiert

                                                 xi+1

                                                        zi+1
                                                        αi                                     zi
                                     yi+1
                                                        Oi+1

                                              gi+1        ai

                          xi
                               θi                Pi
                                     zi
                         yi                 di
                                Oi
                    gi

                Abbildung 2.5: Grafische Darstellung der DH-Parameter

Anhand der Abbildung 2.5 lässt sich feststellen, dass es möglich ist, Σi in Σi+1 mit Hilfe
von maximal vier Transformationen überzuführen. Dazu wird mit einer Rotation um die
z-Achse begonnen, sodass xi in Richtung des Geimeinlotes und damit in Richtung von
xi+1 zeigt. Im Anschluss wird eine Translation entlang der z-Achse durchgeführt, bis sich
der Koordinatenursprung des Systems Σi im Fußlotpunkt Pi befindet. Weiters führt eine
Translation entlang des Gemeinlots bis zum Fußlotpunkt Oi+1 dazu, dass die Achsen
xi und xi+1 bereits zusammen fallen. Nun muss nur noch eine Rotation um xi+1 -Achse
durchgeführt werden, damit beide Koordinatensystem übereinstimmen.

                                            10
2.3. DENAVIT-HARTENBERG-PARAMETER

Die dafür benötigten Transformationsmatrizen lauten:
                                                             
                                        1   0       0       0
                                       0 cos θi − sin θi   0 
                           Rz (θi ) = 
                                       0 sin θi cos θi
                                                              
                                                            0 
                                        0   0       0       1
                                                       
                                            1 0 0     0
                                           0 1 0     0 
                               Tz (di ) = 
                                           0 0 1
                                                        
                                                      0 
                                            di 0 0    1
                                                       
                                            1 0 0     0
                                           ai 1 0    0 
                               Tx (ai ) = 
                                           0 0 1
                                                        
                                                      0 
                                            0 0 0     1
                                                             
                                        1 0    0        0
                                      0 1     0        0     
                          Rx (αi ) =                         
                                      0 0 cos αi    − sin αi 
                                        0 0 sin αi    cos αi
Durch die Darstellung der Transformationsmatrizen in homogenen Koordinaten (Ab-
schnitt 2.1), ist es möglich eine Hintereinanderausführung von Bewegungen mit Hilfe
von Matrixmultiplikationen durchzuführen. Daraus folgt, dass eine Transformation des
Systems Σi in Σi+1 durch die Matrix

                Vi = Rz (θi ) Tz (di ) Tx (ai ) Rx (αi )
                                                                       
                            1         0            0          0
                      ai cos θi cos θi − sin θi cos αi sin θi sin αi               (2.3)
                   = ai sin θi sin θi cos θi cos αi − cos θi sin αi
                                                                        
                                                                        
                           di         0          sin αi    cos αi

beschrieben wird. Werden die Transformationsmatrizen V0 bis Vn miteinander multipli-
ziert, erhält man eine Matrix, die das EE-Koordinatensystem in das Basiskoordinatensys-
tem überführt. Damit ist es möglich die Position des EE bezüglich der Basis anzugeben.
Die Basiskoordinaten P~B eines Punktes der in EE-Koordinaten P~EE gegeben ist, werden
nun wiefolgt berechnet:
                                   P~B = V0 V1 ... Vn P~EE

                                             11
3 Eingabe

Um ein Matlab Programm zur automatisierten Berechnung der DH-Parameter eines mo-
dular seriellen Roboters zu erstellen, ist es von Vorteil eine geeignete und weitestgehend
intuitive Eingabesprache zu definieren.

Die in dieser Arbeit festgelegte Sprache basiert auf den Modulen der ’PowerCubes’-Serie
der Firma Schunk. Aus diesem umfangreichen Sortiment wurden einige Aktuatoren und
Verbindungselemente (siehe Abschnitt 3.2 - 3.4) ausgewählt und im Programm imple-
mentiert. Damit es dem User möglich ist, einen speziellen Roboter, bestehend aus den
vorhandenen Modulen, einzugeben, müssen zuvor einige Definitionen (siehe folgene Ab-
schnitte) eingeführt werden.

Das Problem beim Erarbeiten einer Eingabesprache ist das Finden und Festlegen von
Bezugspunkten, um die exakte Lage des Moduls bezüglich der Basis zu definieren. Die-
se elementare Überlegung legt den Grundstein für eine solide und geeignete Sprache.
So ergab sich zu Beginn der Entwicklung die Idee einer Eingabe der Orientierung der
Module mit Hilfe von Koordinatensystemen. Diese Möglichkeit bringt den Vorteil einer
einfacheren Implementierung der Software mit sich. Jedoch entsteht dadurch eine für den
Anwender komplizierte, und damit weit entfernt von einer intuitiv gestalteten, Eingabe.
Daher musste eine andere Methode gefunden werden, die gegebenenfalls den Aufwand
der Implementierung erhöht, jedoch die Eingabe des Anwenders erleichtert. Aus diesen
Vorgaben heraus entwickelte sich die Überlegung, die Lage des Moduls im Raum durch
Angabe von Flächen mit dem selben Normalenvektor zu definieren. Dies stellte sich als
gut geeignete Methode heraus, um dem Anwender eine einfache Eingabe zu ermöglichen.

Mit diesem Grundgerüst konnte nun die gezielte Definition der Sprache, wie in den
folgenden Abschnitten beschrieben, festgelegt werden.

3.1 Allgemein

Zur Gliederung der Eingabe werden Klammern verwendet. Jedes Modul beginnt mit einer
öffnenden Klammer und endet mit einer Schließenden. Dabei dürfen sowohl geschwun-
gene “{ }“ als auch runde “( )“ Klammern verwendet werden. Zur besseren Lesbarkeit

                                           12
3.2. AKTUATOREN

der Eingabe ist es sinnvoll einen Typ von Klammern für Aktuatoren und einen für Ver-
bindungselemente zu wählen und während der Eingabe beizubehalten. Empfohlen wird
dabei Erstere in geschwungene Klammern zu schreiben, da Verbindungselemente häufiger
vorkommen und runde Klammern meist einfacher einzufügen sind.

Wird nun ein modularer serieller Roboter unter Einhaltung der oben angeführten Vor-
gaben eingegeben, kann dies wie folgt aussehen:

                   {P R, 90, 1, 1, 9} (P V W, 97, 60, 5) {P R, 70, 2, 1, 8}
                   |      {z        }|       {z        }|       {z        }
                        Aktuator      W inkelverbindung       Aktuator

3.2 Aktuatoren

3.2.1 PR-Modul

Das Rotationsmodul ’PR’ (siehe Abb.3.1) ist ein Basiselement der PowerCube Serie
von Schunk. Damit wird eine Rotation um die z-Achse von ±160◦ mit einer maximalen
Winkelgeschwindigkeit von 150 − 470 [◦ /s], abhängig vom Typ, möglich. Um ein solches

                  Abbildung 3.1: Rotationsmodul PR90 von Schunk

Modul im Programm zu verwenden und dabei dessen Lage eindeutig festzulegen, wird
zur Eingabe ein Quintupel benötigt.

                        { PR , K , IN , ORIENT , OUT }

   • PR... Modultyp
     Zeigt an, dass es sich bei dem eingegebenen Modul um ein Rotationsmodul handelt.

                                             13
3.2. AKTUATOREN

  • K... Kantenlänge des Moduls
    Die PowerCube Serie umfasst Aktuatoren mit verschiedenen Schnittstellen. Imple-
    mentiert wurden die Module mit einer Kantenlänge von 70 mm und 90 mm.

  • IN... Eingangsschnittstelle
    PR-Module besitzen neun mögliche Schnittstellen, um es mit dem Vorgängerele-
    ment zu verbinden. Dazu wurde jeder Fläche eine Nummer zugewiesen. Die Num-
    merierung ist in Abbildung 3.2 dargestellt.

  • ORIENT... Orientierung
    Da es prinzipiell vier Möglichkeiten gibt, bei gegebener Eingangsschnittstelle das
    PR-Modul auszurichten, wird ORIENT verwendet um die Lage eindeutig festzule-
    gen. Dabei gibt es drei Szenarien:

      – Module: Mi = PR; Mi−1 = Basis.
        Wird ein PR-Aktor als erstes Modul an der Basis montiert, kann ORIENT
        beliebig zwischen 1 − 9 gewählt werden.

      – Module: Mi = PR; Mi−1 = Winkelverbindung.
        In diesem Fall beschreibt ORIENT jene Fläche, die bei gedachten 90◦ des
        Mi−1 die selbe Normalenvektorrichtung besitzt wie die Eingangsschnittstelle
        der Winkelverbindung Mi−1 . Zum besseren Verständnis siehe Abschnitt 3.5,
        Beispiel 1.

      – Module: Mi = PR; Mi−1 ...Mk = zylindrische oder konische Verbindung; Mk−1
        = Winkelverbindung.
        Wird ein PR Modul an eine Winkelverbindung ausschließlich mit Hilfe von zy-
        lindrischen oder konischen Verbindungen montiert, können die Zwischenstücke
        vernachlässigt werden. ORIENT beschreibt nun jene Fläche von Mi , die bei
        gedachten 90◦ des Mk−1 die selbe Normalenvektorrichtung besitzt wie die Ein-
        gangsschnittstelle der Winkelverbindung Mk−1 .

      – Module: Mi = PR; Mi−1 ...Mk = zylindrische oder konische Verbindungen;
        Mk−1 = PR.
        Werden ausschließlich zylindrische oder konische Module zum Verbinden zwei-
        er PR’s verwendet, ist ORIENTi eine zweistellige Zahl und gibt zwei Flächen
        der PR-Module an, deren Normalenvektor die selbe Richtung besitzt (siehe
        Abschnitt 3.5, Beispiel 2). Dabei beschreibt die erste Ziffer das vorige PR-
        Modul und die Zweite den aktuellen Aktuator. Ausgenommen sind dabei jene
        Flächen die parallel zur Ein- bzw. Ausgangsschnittstelle des Zylinder oder
        Konus sind.

  • OUT... Ausgangsschnittstelle
    Dabei wird die selbe Nummerierung verwendet, als bei der Beschreibung von IN.

                                         14
3.2. AKTUATOREN

     Einzige Einschränkung: IN und OUT dürfen nicht auf dem selben Würfel des zwei-
     teiligen PR-Moduls liegen. Dies bedeutet, im Falle dass IN eine der Flächen 1 - 4
     belegt, OUT nur auf 5 - 9 liegen darf. Umgekehrt gilt die selbe Regel.

Überblick über die Eingabemöglichkeiten:

                             Eingabe
                K            70,90
                IN           1-9
                ORIENT       1 - 9, zweistellige Kombinationen aus 1 - 9
                OUT          1-9

                     Abbildung 3.2: Nummerierung der PR Module

3.2.2 PW-Modul

Schunk bietet neben den Rotationsmodulen auch Schwenk-Neige-Einheiten (PW) an, die
es ermöglichen am Ende eines modularen seriellen Roboters ein Handgelenk nachzubil-
den. Die Eingabe eines PW-Moduls sieht wie folgt aus:

                               { PW , K , ORIENT }

   • PW... Modultyp
     Zeigt an, dass es sich bei dem eingegebenen Modul um eine Schwenk-Neige-Einheit
     handelt.

   • K... Kantenlänge des Moduls
     Schwenk-Neige-Einheiten werden von Schunk in den Größen 70 mm und 90 mm
     Kantenlänge angeboten.

                                              15
3.2. AKTUATOREN

  • ORIENT... Orientierung

       – Module: Mi = PW; Mi−1 = Basis.
         Wird ein PW-Aktor als erstes Modul an der Basis montiert, kann ORIENT
         beliebig zwischen 1 und 2 gewählt werden.

       – Module: Mi = PW; Mi−1 = Winkelverbindung.
         In diesem Fall bestehen zwei Möglichkeiten. Zeigt bei gedachten 90◦ der Win-
         kelverbindung Mi−1 einer der beiden horizontalen Stumpfe des PW in Rich-
         tung der Eingangschnittstelle des Winkels so ergibt sich ORIENT = 1. Ist
         dies nicht der Fall wird ORIENT = 2 gesetzt (siehe Abbildung 3.4).

       – Module: Mi = PW; Mi−1 = zylindrische oder konische Verbindung; Mi−2 =
         Winkelverbindung.
         ORIENT wird wie vorher bestimmt. Das Zwischenstück hat keinen Einfluss.

       – Module: Mi = PW; Mi−1 ...Mk = zylindrische oder konische Verbindungen;
         Mk−1 = PR.
         Auch in diese Fall ergeben sich zwei Möglichkeiten. Zeigt einer der beiden
         horizontalen Stumpfe des PW in Richtung des Anschlussblocks des Moduls
         Mk−1 , muss ORIENT = 1 gesetzt werden. Andernfalls wird ORIENT = 2.
         Diese beiden Fälle sind in Abbildung 3.3 dargestellt.

Abbildung 3.3: Montage eines PW-Moduls an ein PR-Modul mittels zylindrischer
               Verbindungen

                                         16
3.3. VERBINDUNGSELEMENTE - WINKEL

Abbildung 3.4: Möglichkeiten zur Montage eines PW-Moduls an eine Winkelverbindung

Überblick über die Eingabemöglichkeiten:

                                                   Eingabe
                                 K                 70,90
                                 ORIENT            1,2

3.3 Verbindungselemente - Winkel

3.3.1 PAM-Modul

Da Aktuatoren niemals direkt aneinander montiert werden, beinhaltet das Sortiment
von Schunk auch Verbindungselemente. Diese werden mit ’PAM’ bezeichnet und tragen
je nach Form (Zylinder, Konus oder Winkel) eine zusätzliche Kennzahl. Abbildung 3.5
zeigt eine Winkelverbindung aus der PAM-Serie.

                  Abbildung 3.5: Winkelverbindung PAM von Schunk

                                              17
3.3. VERBINDUNGSELEMENTE - WINKEL

Die Eingabe eines solchen Moduls geschieht mittels Quadrupel der Form:

                          ( PAM , KZ , IN, ORIENT )

   • PAM... Modultyp
     Zeigt an, dass es sich hierbei um ein Verbindungselement der Firma Schunk handelt.

   • KZ... Kennzahl
     Je nach Typ der Winkelverbindung beträgt KZ ’120’ für 70 auf 70 mm Verbindung
     und ’121’ für 90 auf 90 mm.

   • IN... Eingangsschnittstelle
     Da PAM120 und PAM121 nicht symmetrisch gefertigte Winkelverbindungen sind,
     wird eine Angabe der Eingangsschnittstelle benötigt. Die Module besitzen eine
     kurze Seite (IN = 1) und eine lange Seite (IN = 2).

   • ORIENT... Orientierung

       – Module: Mi = PAM; Mi−1 = Basis.
         Wird eine PAM-Winkelverbindung als erstes Modul an der Basis montiert,
         kann ORIENT beliebig zwischen 1 − 9 gewählt werden.

       – Module: Mi = PAM; Mi−1 = PR.
         Bei der Montage eines PAM-Winkels an ein PR-Modul, muss angegeben wer-
         den welche Fläche des vorhergehenden Aktuators, bei gedachten 90◦ des Win-
         kels, die selbe Normalenvektorrichtung besitzt wie die Ausgangssschnittstelle
         der Winkelverbindung (siehe Abschnitt 3.5, Beispiel 3).

       – Module: Mi = PAM; Mi−1 = PAM/PVW/OWN.
         Wird ein PAM-Winkel an eine andere Winkelverbindung montiert, gibt es
         vier mögliche Orientierungen. Diese sind in Abbildung 3.6 dargestellt.

       – Module: Mi = PAM; Mi−1 ...Mk = zylindrische oder konische Verbindungen;
         Mk−1 = PR/PAM/PVW/OWN.
         Die Eingabe von ORIENT für die Montage eines PAM-Winkels an eine koni-
         sche oder zylindrische Verbindung erfolgt analog zu den ersten Punkten. Die
         Geraden-Verbindungen werden nicht beachtet und die Montage wird auf das
         letzte Modul ungleich einer zylindrischen oder konischen Verbindung bezogen.

                                          18
3.3. VERBINDUNGSELEMENTE - WINKEL

Überblick über die Eingabemöglichkeiten:

                                              Eingabe
                              KZ              120, 121
                              IN              1, 2
                              ORIENT          1 - 9 bzw. 1 - 4

   Abbildung 3.6: Vier Möglichkeiten zwei Winkelmodule miteinander zu verbinden

3.3.2 PVW-Modul

Da die PAM-Winkelverbindung einen vorgegebenen Winkel von 90◦ besitzen, ist es für
die Konstruktion eines allgemeinen Manipulators nötig, selbst gefertigte Module zu ver-
wenden. Diese haben auch den Vorteil, dass sie symmetrisch konstruiert werden können
und damit die Angabe der Eingangsschnittstelle wegfällt. Weiters ist es möglich belie-
bige Winkel zu verwenden und den Eingangs- bzw Ausgangsschnittstellen verschiedene
Kantenlängen zu geben.

Im Programm implementiert sind bereits Winkel mit 60◦ , 90◦ und 120◦ . Diese können
jederzeit mit Angabe der Transformationsmatrix mit wenig Aufwand erweitert werden.
Um einen bereits implementierten PVW-Winkel eingeben zu können, muss lediglich fol-
gender Quadrupel eingegeben werden:

                         ( PVW , K , GRAD, ORIENT )

                                              19
3.3. VERBINDUNGSELEMENTE - WINKEL

   • PVW... Modultyp
     Gibt an, dass es sich hier um eine selbstgefertigte symmetrische Winkelverbindung
     handelt.

   • K... Kantenlänge
     Da die Eingangs- und Ausgangsschnittstelle unterschiedliche Kantenlängen besit-
     zen können, wird zur Eingabe eine zweistellige Zahl benötigt. Dabei beschreibt die
     erste Ziffer die Größe der Eingangs- und Zweitere der Ausgangsschnittstelle. Dabei
     werden die Größen in Zentimeter angegeben, dies Bedeutet für eine Winkelverbin-
     dung von 70 mm auf 90 mm müsste ’79’ eingegeben werden.

   • GRAD...Winkel des Moduls in Grad
     Implementiert wurden 60◦ , 90◦ und 120◦ .

   • ORIENT... Orientierung
     Erfüllt die selbe Funktion wie bei PAM-Winkelverbindung.

Überblick über die Eingabemöglichkeiten:

                                              Eingabe
                              K               77, 79, 99, 97
                              GRAD            60, 90, 120
                              ORIENT          1 - 9 bzw. 1 - 4

3.3.3 OWN-Modul

Neben den schon implementierten Winkel-Modulen gibt es für den Benutzer die Option
eine eigene Winkel-Verbindung zu definieren. Dazu muss lediglich in der Datei own.m Die
Transformationsmatrix angegeben werden. Um dem Benutzer die Möglichkeit zu geben
mehrere Verbindungen zu speichern, wurde im m-File bereits eine beliebig erweiterbare
switch-case-Abfrage programmiert:

function T = own(nr)
switch nr
     case ’1’
        %HIER EDITIEREN%
     otherwise
        assignin(’base’, ’err_code’,’107’);
        error(’Fehler’);
end

                                              20
3.3. VERBINDUNGSELEMENTE - WINKEL

Die Transformationsmatrix muss der Variable T zugewiesen werden, da diese als Rück-
gabewert bereits definiert wurde. Die einzige Vorgabe für den Benutzer ist die Orientie-
rung der Koordinatensysteme für die Eingangs- und Ausgangsschnittstelle. Abbildung
3.7 zeigt die Festlegung der Koordinatenachsen.
Der Aufruf eines selbst definierten Winkels lautet:

                             ( OWN , NR , ORIENT )

   • OWN... Modultyp
     Gibt an, dass es sich hier um eine selbstdefinierte Winkelverbindung handelt.

   • NR... Nummer
     Da es dem Benutzer möglich ist mehrere Winkel-Verbindungen zu definieren, kann
     mit NR einzeln auf die verschiedenen Transformationsmatrizen zugegriffen werden.

   • ORIENT... Orientierung
     Erfüllt die selbe Funktion wie bei PAM-Winkelverbindung.

                                          zi

                            yi
                                                   zi−1

                                   yi−1

         Abbildung 3.7: Vorgabe zur Definition eigener Winkel-Verbindungen

Überblick über die Eingabemöglichkeiten:

                                              Eingabe
                                 NR           N
                                 ORIENT       1 - 9 bzw. 1 - 4

                                              21
3.4. VERBINDUNGSELEMENTE - GERADE

3.4 Verbindungselemente - Gerade

3.4.1 PAM-Modul

Neben Winkelverbindungen werden auch zylindrische und konische Verbindungen durch
Schunk angeboten. Zylindrische PAM-Module eigenen sich zum Verbinden zweier Modu-
le mit gleicher Schnittstellengröße. Im Gegensatz dazu, werden konische Verbindungen
verwendet, um verschiedene Schnittstellengrößen zusammenzufügen. Zur Eingabe eignet
sich dazu ein Tripel, welches wie folgt aufgebaut ist:

                             ( PAM , KZ , TWIST )

   • PAM... Modultyp

   • KZ... Kennzahl
     Je nach Typ der Verbindung beträgt KZ 100 - 103 für zylindrische und 110 bzw.
     111 für konische Verbindungen.

            KZ    Zylinder/Konus      Kantenlänge [mm]     Länge [mm]
            100       Zylinder            70 auf 70              35
            101       Zylinder            70 auf 70              70
            102       Zylinder            90 auf 90              45
            103       Zylinder            90 auf 90              90
            110        Konus              70 auf 90              45
            111        Konus              70 auf 90              90

       Tabelle 3.1: Übersicht von zylindrischen und konischen PAM-Modulen

   • TWIST... Verdrehung in Grad
     Bei Geraden Verbindungen ist es zusätzlich möglich eine Verdrehung anzugeben.
     Da die z-Achse der PR-Module normal auf der Oberfläche steht, ist das Vorzeichen
     durch den mathematisch positiven Drehsinn eindeutig definiert.

                                        Eingabe
                             KZ         100-103/110/111
                             TWIST      R [◦ ]

                                         22
3.5. BEISPIELE

3.5 Beispiele

Um die oben definierte Eingabesprache in einer praktischen Anwendung zu demonstrie-
ren, werden hier Beispiele angeführt.

   • Beispiel 1:
     Gegeben:

                          #       Modultyp                  Kennung
                          Mi−1    90◦ Winkelverbindung      PVW90
                          Mi      Rotationsmodul            PR90
                          Mi+1    90◦ Winkelverbindung      PVW90

     Gesucht: Eingabebefehl für den Einbau des Modules Mi wie in Abbildung 3.8 zu
     sehen ist.

       Abbildung 3.8: Montage eines PR90-Moduls an eine Winkelverbindung

     Lösung:

                                 ...{ PR , 90 , 1 , 3 , 8 }...

     Die Eingabe eines Rotationsmoduls beginnt mit dem Parameter ’PR’. Anschließend
     zeigt ’90’, dass der Aktuator eine Kantenlänge von 90 mm besitzt. Die Eingangs-
     schnittstelle ist jene Fläche, die an das Vorgängermodul (in Abbildung 3.8 dunkel-
     grau dargestellt) grenzt. Diese wäre in unserem Beispiel die Fläche ’1’. Als nächstes
     beschreibt ORIENT jene Fläche die bei 90◦ des vorhergehenden Winkels die selbe
     Normalenvektorrichtung besitzt wie die Eingangsschnittstelle des Vorgängers. Dies
     trifft in unserem Beispiel sowohl für ’3’ als auch für ’7’ zu und kann somit gewählt
     werden. Der Wert ’8’ für die Ausgangsschnittstelle ergibt sich aus der Montage des
     Nachfolgemoduls (in Abbildung 3.8 transparent eingezeichnet) an diese Fläche des
     Aktuators.

                                            23
3.5. BEISPIELE

   • Beispiel 2:
     Gegeben:

                         #       Modultyp                 Kennung
                         Mi−2    Rotationsmodul           PR90
                         Mi−1    Zylinderverbindung       PAM103
                         Mi      Rotationsmodul           PR90
                         Mi+1    Winkelverbindung 90◦     PVW90

     Gesucht: Richtige Eingabe der Module Mi−1 und Mi wie in Abbildung 3.9 zu sehen
     ist.

Abbildung 3.9: Verwendung einer zylindrischen Verbindung zwischen zwei PR-Modulen

     Lösung:

                     ...( PAM , 103 , 0 ){ PR , 90 , 6 , 17 , 1 }...

     Die Eingabe eines Zylinder- oder Konus-Moduls beginnt mit dessen Bezeichnung
     ’PAM’. Der zweite Parameter ’103’ bildet die Kennzahl des Moduls ab und kann
     wie in Tabelle 3.1 gewählt werden. Abschließend wird mit ’0’ angegeben, dass keine
     Verdrehung des Zylinders vorhanden ist.
     Das Rotationsmodul beginnt wieder mit dessen Bezeichnung ’PR’, gefolgt von der
     Kantenlänge ’90’. Die Eingangsschnittstelle wird mit ’6’ festgelegt, da der Zylinder
     an die Fläche ’6’ des PR-Moduls montiert wurde. Der Parameter ’17’ für ORI-
     ENT des PR-Moduls ergibt sich daraus, dass die Flächen 1 von Mi−2 und 7 von
     Mi in die selbe Richtung zeigen. Neben ’17’ wären noch weitere Parameter wie
     ’13’, ’31’, ... möglich. Die Ausgangsschnittstelle ’1’ ist jene Fläche, die mit der
     Eingangsschnittstelle des Folgemoduls (In Abbildung 3.9 als transparenter Winkel
     dargestellt) zusammenfällt.

                                           24
3.5. BEISPIELE

  • Beispiel 3:
    Gegeben:

                        #        Modultyp                    Kennung
                        Mi−1     Rotationsmodul              PR90
                        Mi       Winkelverbindung 60◦        PVW60

    Gesucht: Befehl zur Eingabe des PVW-Moduls Mi laut Abbildung 3.10.

                  (a) Tatsächlicher Einbau    (b) Einbau bei gedachten 90◦

        Abbildung 3.10: Einbau eines Winkelmoduls an ein Rotationsmodul

    Lösung: Ist der Einbau einer Winkelverbindung wie in Abbildung 3.10a gewünscht,
    muss der Winkel auf 90◦ gedreht werden (Abbildung 3.10b) und anschließend fol-
    gender Befehl eingegeben werden:

                                 ...( PVW , 99 , 60 , 3 )...

    Die Eingabe beginnt mit der Bezeichnung des Moduls ’PVW’. Der Parameter ’99’
    folgt aus der Tatsache, dass sowohl die Eingangs- als auch die Ausgangsschnittstelle
    der Winkelverbindung 90 mm Kantenlänge besitzt. Die Winkelverbindung besitzt
    ’60’ Grad und besitzt bei 90◦ die selbe Normalenvektorrichtung wie die Fläche ’3’
    des Vorgängermoduls.

                                              25
4 Programmablauf

Die Implementierung der Software erfolgt mit MATLAB in der Version R2010a. Das
geschriebene Programm wurde in fünf Teilaufgaben eingeteilt: Eingabe, Berechnung der
z-Achse, Transformation, Auswertung und Ausgabe.

4.1 Grafische Benutzeroberfläche

Als Schnittstelle zwischen Benutzer und Software dient eine grafische Benutzeroberfläche
(kurz: GUI) wie sie in Abbildung 4.1 dargestellt ist. Sie ermöglicht dem Anwender einen
modularen seriellen Roboter einzugeben und gibt anschließend die berechneten DH-
Parameter aus. Die einzelnen Funktionen der GUI werden in diesem Abschnitt näher
erklärt.

    Abbildung 4.1: Die grafische Benutzeroberfläche der implementierten Software

                                           26
4.1. GRAFISCHE BENUTZEROBERFLÄCHE

4.1.1 Ein- und Ausgabe

Die Eingabe eines modularen seriellen Roboters erfolgt in das dafür vorgesehene Textfeld.
Nach dem anschließenden Betätigen des Knopfes ’Berechnen’, startet die Berechnung im
Hintergrund. Im Falle der Einhaltung der in Abschnitt 3 festgelegten Konventionen,
färbt sich die Eingabe Grün und die berechneten DH-Parameter werden in der Tabelle
im unteren Teil der GUI angezeigt (Abbildung 4.2a). Sollte in der Bestimmung der Pa-
rameter ein Fehler auftreten, wird die Eingabe Rot und es erscheint eine Fehlermeldung
(Abbildung 4.2b).

               (a) Richtige Eingabe                      (b) Falsche Eingabe

              Abbildung 4.2: Ergebnisdarstellung nach einer Berechnung

4.1.2 Speichern und Laden

Um das wiederholte Eingeben häufig verwendeter Roboterbeschreibungen zu erleichtern,
wurde eine Speicher- und Lade-Funkion implementiert. Zum Speichern eines Roboters
kann entweder das Diskettensymbol in der Toolbar oder in der Menüleiste ’Datei’ -
’Speichern unter’ gedrückt werden. Nach Auswahl eines Speicherortes und Dateinamens
wird die Eingabe in einem ’.txt’-File gesichert.

Beim Öffnen einer Datei, durch ’Datei’ - ’Öffnen...’ oder dem Öffnen-Symbol in der Tool-
bar, stehen mehrere Optionen zur Verfügung. Sollte das Eingabefeld leer sein, wird dies
mit der zu öffnenden Roboterbeschreibungsdatei gefüllt werden. Ist jedoch zum Zeit-
punkt des Öffnens das Eingabefeld nicht leer, kann in einer Dialogbox (siehe Abbildung
4.3) zwischen folgenden Möglichkeiten gewählt werden:

   • Überschreiben: Das Eingabefeld wird gelöscht und die zu öffnende Roboterbeschrei-
     bungsdatei wird geladen.

                                            27
4.2. EINGABE

   • Anhängen: Um dem Benutzer jedoch die Möglichkeit zu geben, häufig verwende-
     te Abschnitte einer Roboterbeschreibung einzufügen, kann die ausgewählte Datei
     auch an den bestehenden Inhalt des Eingabefeldes angehängt werden.

                  Abbildung 4.3: Dialogbox beim Öffnen einer Datei

4.1.3 Zusatzfunktionen

Neben dem Speichern und Laden stehen noch weitere Funktionen zur Verfügung:

   • DH/TCP Speichern: Zusätzlich zum Speichern der Roboterstrukturen besteht
     die Möglichkeit zum Sichern der DH-Parameter und der letzten Transformation
     in den TCP. Nach Betätigen des Knopfes ’DH/TCP Speichern’ auf der grafi-
     schen Oberfläche und Auswahl eines Speicherortes und -namens, werden die DH-
     Parameter aus der Tabelle in einem ’.mat’-File gesichert. Dieser Dateityp ist ein
     spezielles Format von MATLAB und ermöglich das Sichern und Laden von Daten in
     den Workspace. Zusätzlich wird eine Datei mit dem Namen ’Dateiname TCP.mat’
     erzeugt um die letzte Transformation in den TCP zu speichern.

   • History: Als weitere Zusatzfunktion wurde eine History implementiert. Bei er-
     folgreichen Berechnungen wird dabei die Eingabe in einer Liste gespeichert. An-
     schließend besteht die Möglichkeit eine Roboterbeschreibung aus der History zur
     öffnen (siehe Abbildung 4.4). Dabei stehen die gleichen Optionen (Überschreiben,
     Anhängen) wie beim Öffnen einer Datei zur Verfügung.

   • OWN editieren: Wie bereits in Abschnitt 3.3.3 beschrieben, kann der Benut-
     zer in einem m-File eigene Winkel definieren. Dazu kann in der Menüleiste unter
     ’Bearbeiten’ - ’OWN editieren’ dieses File geöffnet werden.

4.2 Eingabe

Bereits in Kapitel 3 wurde eine Eingabesprache definiert die es dem Anwender erlaubt
einen modularen seriellen Roboter zu beschreiben. Die Eingabe einer strukturbezoge-

                                          28
4.2. EINGABE

                  Abbildung 4.4: Laden eines Roboters aus der History

nen Roboterbeschreibung erfolgt nun über eine grafische Benutzeroberfläche die im Pro-
gramm implementiert wurde. Nachdem die Eingabe fertiggestellt wurde und der Benut-
zer die Berechnung startet, wird im Hintergrund eine Aufbereitung vorgenommen um
eine für die Software berechenbare Eingabe zu erhalten. Diese wird im Anschluss einer
Kontrolle unterzogen. Die genaue Vorgehensweise wird in diesem Abschnitt beschrieben.

4.2.1 Aufbereitung

Der vom Anwender eingegebenen Befehlssatz wird von der Software als Variable vom
Datentyp String gespeichert. Da die Eingabe als Ganzes in einer Variable steht, ist sie für
die Verarbeitung und Berechnung unbrauchbar. Deshalb muss der Befehlssatz in seine
Einzelteile zerlegt werden. Diese Aufgabe erfüllt in der Software das geschriebene m-
File strconvert (string convert). Die einzelnen Schritte werden anhand eines Beispiels
erklärt.

Strconvert besitzt einen Übergabeparameter, nämlich den Befehlssatz in Form eines
String.
                   {P R, 90, 1, 1, 9} (P V W, 97, 60, 5) {P R, 70, 2, 1, 8}
Der erste Schritt teilt die Eingabe in seine einzelnen Befehle auf. Dabei wird von links mit
der Suchen nach einer schließenden Klammer (egal ob geschwungen oder rund) begonnen.
Wurde ein solches Zeichen gefunden, wird der linke Teil in die erste Zeile und Spalte
eines Cell Arrays geschrieben und der String behält den Rest. In einer Schleife werden
die Befehle der Reihe nach in die nächsten Spalten des Cell Array geschrieben. Dieser
Vorgang endet, sobald keine schließende Klammer mehr gefunden wird. Die Eingabe
sieht nach diesem Vorgang wie folgt aus:

                 {P R, 90, 1, 1, 9   (P V W, 97, 60, 5    {P R, 70, 2, 1, 8

                                            29
4.2. EINGABE

Bevor der nächste Schritt beginnen kann, werden die öffnenden Klammern und Leerzei-
chen noch entfernt.

                  P R, 90, 1, 1, 9    P V W, 97, 60, 5   P R, 70, 2, 1, 8

Nun können die Befehle in ihre Parameter zerlegt werden. Dazu dient der gleiche Vorgang
wie in Schritt 1, mit dem Unterschied, dass nun nach einem Komma gesucht wird. Dabei
werden im Anschluss die einzelnen Parameter in die Zeilen des Cell Array geschrieben.

                                     PR    PV W     PR
                                      90    97      70
                                       1    60       2
                                       1     5       1
                                       9             8

Schlussendlich wird das Cell Array und die Anzahl der Befehle an die aufrufende Funk-
tion zurückgegeben. Anzumerken ist, dass die Einträge des Cell Array immer noch vom
Typ String (und damit ASCII kodiert) sind.

4.2.2 Eingabe Überprüfen

Um bereits vor der Berechnung eine einfache Überprüfung durchzuführen, wurde die
Funktion incheck (input check) geschrieben. Sie besitzt drei Aufgaben:

   • Da die Montage zweier Aktuatoren aneinander nicht erlaubt ist, wird mittels ei-
     ner while-Schleife nach einer solchen Konfiguration gesucht. Dabei wird bei einem
     Schleifendurchlauf das aktuelle Modul mit dem Vorgänger verglichen. Liegt ein
     solcher struktureller Fehler vor, wir die Berechnung abgebrochen und ein Error
     Code angezeigt. Die genauere Bedeutung dieser Error Codes wird in Abschnitt 4.8
     behandelt.

   • Laut der Konvention aus Abschnitt 3.2.2 darf ein PW-Modul nur am Ende eines
     seriellen Roboters montiert werden. Diese Vorgabe wird mittels einer while-Schleife
     überprüft. Wie bereits im vorigen Punkte wird im Falle eines Fehlers ein Error Code
     ausgegeben.

   • Als letztes wird überprüft, ob die Eingabe konform mit dem in Abschnitt 3 defi-
     nierten Syntax ist. Betrachtet wird dabei:

        – Anzahl der Parameter zur Eingabe eines Moduls.

        – Korrekte Schreibweise des Modulnamens.

                                            30
4.3. BERECHNUNG DER Z-ACHSE

        – Plausibilitätsprüfung der Parameter (z. B. Flächen des PR-Moduls zwischen
          1 und 9)

     Sollte ein Fehler erkannt werden, wird analog zu den ersten beiden Punkten ein
     Error Code ausgegeben

4.3 Berechnung der z-Achse

Wie bereits in Abschnitt 2.3 beschrieben, stellen die DH-Parameter die relative Lage
zweier aufeinanderfolgender Achsen dar. Zur Berechnung der Achse gi , ausgehend von
Koordinatensystem Σi−1 (die z-Achse entspricht der Rotationsachse) wurde die Funktion
calcaxis (calculate next z-axis) implementiert. Calcaxis gibt eine Transformationsma-
trix M zurück, die Σi−1 in Σi überführt.

Beim Aufruf der Funktion wird sowohl die aufbereitete Eingabe als auch ’Start’, ’Stop’
und ’Prä’ übergeben. Bei ’Prä’ handelt es sich um eine Matrix die unser Koordinatensys-
tem in eine geeignete Ausgangslage bringt, damit bei der Berechnung der Folgeachse von
der Eingangschnittstelle des Start-Moduls ausgegangen werden kann. Wie ’Prä’ zusam-
mengesetzt ist, wird in Abschnitt 4.6 beschrieben. Mit ’Start’ und ’Stop’ wird festgelegt,
von welchem Aktor wir ausgehen und zu welchem Aktor wir transformieren wollen.

Die Achsen gi−1 und gi sind gleichzeitig die z-Achsen der Koordinatensysteme Σi−1 und
Σi und bilden die Rotationsachsen des (i − 1)-ten und i-ten Aktuators. Diese Aktuatoren
sind mittels Verbindungsmodulen aneinander montiert. Zur Berechnung der Transforma-
tionsmatrix wird modulweise vom Koordinatensystem der Eingangs- zum Koordinaten-
system der Ausgangsschnittstelle transformiert. Diese Aufgabe wird in calcaxis iterativ
abgearbeitet, wobei einzig der i-te Aktuator speziell behandelt wird.

4.3.1 Standardablauf

Die Berechnung basiert auf der Grundlage, dass für jedes implementierte Modul ein
Koordinatensystem an allen Schnittstellen festgelegt worden ist. Beispielsweise wurde für
die OWN-Winkelverbindung (Abschnitt 3.3.3) die Koordinatensysteme wie in Abbildung
3.7 festgelegt.

Zu Beginn der modulweisen Transformation wird das Koordinatensystem Σi mit Hil-
fe der ’Prä’-Matrix an die Eingangsschnittstelle des (i − 1)-ten Aktuators verschoben
und entsprechend des für diese Schnittstelle festgelegten Koordinatensystems orientiert.
Anschließend wird Σi zur Ausgangsschnittstelle verschoben und orientiert. Nun findet,

                                           31
4.4. TRANSFORMATION

abhängig von den zu verbindenden Modulen, eine Übergangstransformation statt, die
Σi anhand des für die Eingangsschnittstelle des Folgemoduls festgelegten Koordinaten-
systems orientiert. Darauf folgend wird Σi beim nächsten Modul von der Eingangs- zur
Ausgangsschnittstelle transformiert. Dieser Vorgang wird bis zum i-ten Aktuator wie-
derholt.

4.3.2 Spezialbehandlung

Würde man den selben Vorgang auch für den i-ten Aktuator anwenden, befände sich
Σi zum Schluss an der Ausgangsschnittstelle des Aktuators. Da aber, wie bereits fest-
gelegt, die z-Achse Σi ’s die Rotationsachse bilden soll, muss nun eine Transformation
stattfinden, die diese Vorgabe erfüllt. Damit besitzt Σi nun die richtigen Position und
Orientierung.

Der aufrufenden Funktion wird neben M zusätzlich die Matrix der letzten Transfor-
mation zurückgegeben. Diese wird für die Berechnung der Achse gi+1 ausgehend von gi
benötigt. In Abschnitt 4.6 wird darauf näher eingegangen.

4.4 Transformation

Nachdem nun, ausgehend von einer Rotationsachse gi−1 , die Folgeachse gi bestimmt ist,
muss das Koordinatensystem Σi in eine bestimme Position und Orientierung gebracht
werden, um die Definition der DH-Parameter aus Abschnitt 2.3 einzuhalten. Die Vorge-
hensweise wird in diesem Abschnitt erklärt.

4.4.1 Fußlotpunkt

Bereits in Abschnitt 2.3 wurde festgelegt, dass der Ursprung von Σi im Fußlotpunkt der
Geraden gi sein muss. Der Fußlotpunkt stellt den Schnittpunkt des Normalenvektors,
der Geraden gi−1 und gi , mit gi selbst dar. Da sich nach der Berechnung der Folgeachse
(siehe Abschnitt 4.3) der Ursprung nicht im Fußlotpunkt befinden muss, benötigt es
einer zusätzlichen Transformation. Die dafür benötigte Transformationsmatrix wird in
der Funktion transtoflp (transfer to f ußlotpunkt) berechnet.

Als erstes wird in dieser Funktion der Fußlotpunkt berechnet. Dafür benötigt man den
Normalenvektor zwischen gi−1 und gi . Dieser wird durch die Funktion normvec, aus der
in Abschnitt 4.3 berechneten Transformationsmatrix M, berechnet. Normvec bestimmt

                                          32
Sie können auch lesen