Sie sind auf Seite 1von 33

 Duale Hochschule Baden-Württemberg - Mannheim 

Skript zur Vorlesung


Robotik
vorläufige Fassung...

Dipl. Ing. Matthias Dehof


Inhaltsverzeichnis
1 Überblick........................................................................................................................................................................................3
1.1 was ist ein Roboter .............................................................................................................................................................3
1.2 Historie und Personen .......................................................................................................................................................3
1.3 Mobile Roboter ...................................................................................................................................................................4
1.4 Industrieroboter..................................................................................................................................................................4
1.5 Koordinaten und Freiheitsgrade......................................................................................................................................5
2 Kinematiktypen .............................................................................................................................................................................6
2.1 Unterschiedliche Typen von Industrierobotern ............................................................................................................7
2.1.1 Portal-Roboter ................................................................................................................................................................7
2.1.2 Hybrid-Kinematik............................................................................................................................................................8
2.1.3 Knickarm-Kinematik.......................................................................................................................................................9
2.1.4 Delta- und Hexapod-Kinematiken ............................................................................................................................ 10
2.2 Anwendungen .................................................................................................................................................................. 11
2.3 Genauigkeit....................................................................................................................................................................... 11
2.3.1 Wiederholgenauigkeit................................................................................................................................................ 12
2.3.2 Absolut-Genauigkeit................................................................................................................................................... 12
2.4 Simulation......................................................................................................................................................................... 12
3 Transformationen ...................................................................................................................................................................... 12
3.1 Position und Orientierung.............................................................................................................................................. 13
3.2 Zeit und Bewegung .......................................................................................................................................................... 14
3.3 Transformationen ............................................................................................................................................................ 14
3.4 Anwendungen .................................................................................................................................................................. 18
3.5 Singularitäten und Mehrdeutigkeiten .......................................................................................................................... 18
3.6 DH-Transformation.......................................................................................................................................................... 19
4 Roboter-Steuerung .................................................................................................................................................................... 22
4.1 Steuerung KRC .................................................................................................................................................................. 22
4.2 Bediengerät....................................................................................................................................................................... 22
4.3 Architektur der Steuerung ............................................................................................................................................. 23
5 Greifen und Handling................................................................................................................................................................ 23
5.1 Greifersysteme ................................................................................................................................................................. 23
5.2 Formschluß........................................................................................................................................................................ 24
6 Programmierung........................................................................................................................................................................ 26
6.1 Allgemein........................................................................................................................................................................... 26
6.1.1 Teach-By-Showing....................................................................................................................................................... 26
6.1.2 Programmiersprachen................................................................................................................................................ 26
6.1.3 Aufgabenbasierte Programmierung ........................................................................................................................ 27
6.2 Programmstrukturen....................................................................................................................................................... 27
6.2.1 Was ist wichtig............................................................................................................................................................. 27
6.2.2 Der lineare Happy-Day............................................................................................................................................... 28
6.2.3 Modulbauweise........................................................................................................................................................... 28
6.2.4 Ablaufsteuerung .......................................................................................................................................................... 28
7 MRK .............................................................................................................................................................................................. 29
8 Programmierung in KRL............................................................................................................................................................ 29
8.1 Programm-Strukturen ..................................................................................................................................................... 30
8.2 Bewegungsbefehle .......................................................................................................................................................... 30
8.3 Ablaufsteuerung............................................................................................................................................................... 31
9 todo Themen zum Einsortieren............................................................................................................................................... 31
9.1 Automatisierung .............................................................................................................................................................. 31
10 Literaturempfehlungen und Querverweise..................................................................................................................... 33

Version #02a / 6.12.2019

Seite 2 von 33
1 Überblick
Die Vorlesung "Robotik" soll einen Überblick über Roboter im Allgemeinen geben, auf dem Bereich
Industrieroboter liegt ein Schwerpunkt.

Die Disziplin "Robotik" umfasst ein derart großes Feld verschiedenster und teilweise hochspezialisierter
Technologien, daß eine Unterteilung notwendig ist:
• Kinematiken, mechanische Manipulatoren
• Bewegung (locomotion)
• Bildverarbeitung (computer vision)
• künstliche Intelligenz

Der Rahmen der Vorlesung zielt überwiegend auf Kinematiken, Mechaniken, Steuerungssysteme und
Roboter-Anwendungen. Mechanische, bewegliche Konstruktionen, bzw. Kinematiken, werden auch als
Manipulator bezeichnet.

1.1 was ist ein Roboter


Der Begriff "Roboter" wurde 1921 von dem tschechischen Schriftsteller Karel Capek in dessen Drama "R.U.R
- Rossum's Universal Robots" geprägt und bedeutet Arbeit, Zwangsarbeit oder Fronarbeit.
Die Tatsache, daß Roboter oftmals schneller, genauer und stärker sind (oder zumindest so erscheinen) als
menschliche Arbeiter führt dazu, daß man den Maschinen auch weitere Eigenschaften zuschreibt, vor allem
werden technische, nicht trivial nachvollziehbare Abläufe auch gerne mit "Intelligenz" verwechselt.

Welche Typen Roboter kennen Sie ?


• mobile Roboter, Laufroboter, fahrerlose Transporter (AGV)
• Industrie: Knickarm- oder Gelenkarm-Roboter, Portale, Delta, Scara
• humanoide Roboter
• Saug- und Rasenmäh-Roboter
• Assistenzsysteme

1.2 Historie und Personen


1955 Denavit-Hartenberg-Konvention : Transformation von homogenen Matrizen
1961 Joe Engelberger: Gründer von Unimation, baut den ersten Industrieroboter Unimate
1973 KUKA bringt den FAMULUS auf den Markt, der ersten 6-Achs Roboter mit elektro-mechanischen
Antrieben

Seite 3 von 33
1.3 Mobile Roboter
In diesen Bereich fallen folgende Maschinen
§ Haushaltshelfer: Staubsauger- und Rasenmäh-Roboter
§ Humanoide: DLR Justin

1.4 Industrieroboter
Als Industrieroboter werden Maschinen bezeichnet, die für den industriellen Einsatz gedacht sind, also
folgende Merkmale aufweisen
§ meistens stationär montiert
§ hohe (Wiederhol-) Genauigkeit : 0.1-0.2 mm
§ Traglasten von ca. 3 kg – 1000 kg
§ industrieller 24/7 Dauerbetrieb
§ hohe Performance: Bewegungen mit ca. 2-3 m/s bei voller Genauigkeit und Traglast
§ robust: auch für sehr raue Umgebungen geeignet (normal: 5°C – 40°C, teilweise -18°C – 60°C, Gießerei
auch bis zB 180 °C für 10s/min)
§ Lebensdauer: ca 20-25 Jahre (Erfahrungswert)

In 2018 waren in Deutschland (geschätzt) ca 250.000 Industrieroboter im Einsatz


Die Mehrheit der Industrieroboter wird (immer noch) im Bereich der Automobilindustrie und deren
Zulieferer eingesetzt, der Anteil liegt bei ca. 60-80%.
Hersteller (weltweit)
§ FANUC, Japan
§ Kuka, Deutschland
§ ABB, Schweden
§ Motoman, Yaskawa, Reis, Stäubli, Adept, Comau, Epson, Universal Robotics, Panasonic, Franka Emika,

Die Anschaffungskosten für ein Robotersystem (nur Kinematik und Steuerung) liegen etwa (je nach
Traglast) im Bereich 30.000 € - 80.000 € - diese Kosten sind in den letzten 25 Jahren leicht gesunken.

Seite 4 von 33
1.5 Koordinaten und Freiheitsgrade
Für eine Position im Raum wird in aller Regel die kartesische Position X,Y,Z in Bezug auf ein Referenz- oder
Ursprungskoordinatensystem betrachtet. Üblicherweise wird man X-Y in eine horizontale Ebene legen und
Z vertikal ausrichten. Damit ergeben sich für die Position im Raum 3 Freiheitsgrade.

Z A Z

A B
B
Y Y

C
X C X

translatorisch rotatorisch 6 Freiheitsgrade

Seite 5 von 33
Anmerkung: im Gegensatz dazu wird bei 3D-Computergrafik bzw. Bildverabeitung oft X-Y in der Ebene des
Bildschirms betrachtet und Z zeigt zum Betrachter hin.
Eine Orientierung im Raum wird unterschiedlich beschrieben:
• Verwendung der Euler-Winkel A -B-C : A = RotZ / B = Rot Y / C = RotX
• Angabe von RPY – roll / pitch / yaw
• Quaternion Q = {q1,q2,q3,q4} welches eine Drehung im Raum beschreibt

Es ist weitgehend üblich mit einem Rechte -Hand-System zu arbeiten


• X = Daumen
• Y = Zeigefinger
• Z = Mittelfinger
• zeigt der Daumen in eine Richtung, beschreiben die Finger die positive Drehrichtung

Die Achsen X-Y-Z werden meistens wie RGB-Farben rot=X / grün=Y / blau=Z dargestellt.

(todo : Positionsdaten zB bei AGVs – im Orbit, etc betrachten)

Ein Manipulator der Schachfiguren bewegen soll, kommt mit diesen 3 Freiheitsgraden aus, er muß in der
Lage sein eine Figur anzuheben und absenken zu können – eine Bewegung in Z. Die Position auf dem
Schachbrett kann als (X,Y) beschrieben werden. Eine mögl. Verdrehung der Figuren würde einen weiteren
Freiheitsgrad - Rotation A - erfordern.
Eine Werkzeugmaschine, die einen Fräser führt, kann mit 3 Freiheitsgraden nur für einfache Arbeiten und
zum Nuten verwendet werden. Schräge Fasen erfordern zusätzlich eine Kipp- oder Schwenkmöglichkeit und
daher 2 weitere Freiheitsgrade. CNC-Maschinen mit 5 Gelenken sind daher weit verbreitet.
Weil sich der eben betrachtete Fräser um die eigene Achse dreht ist hier keine weitere Drehbewegung
sinnvoll – aber aus genau diesem Grund haben Industrieroboter oft 6 Achsen, um damit alle 6
Freiheitsgrade – 3 translatorische und 3 rotatorische – abdecken zu können.

2 Kinematiktypen
Die Beweglichkeit von kinematisch verbundenen Elementen wird auf folgende Bewegungstypen
zurückgeführt

• T = translatorische Bewegung, dh. eine Verschiebung zweier Elemente, zB. eine Schubladenschiene.
Wird in der Literatur auch als P = prismatische Bewegung bezeichnet
• R = rotatorische Bewegung, diese kann axial oder radial erfolgen.

Roboter bzw. Kinematiken bestehen üblicherweise aus einer Kombination verschiedener Typen

Seite 6 von 33
Kinematik

Linear Hybrid Rotatorisch

TRT, RTT,
TTT TRR, RRT
RRR

Ausleger Schwenkarm Vertikal-


Portal Scara Knickarm-R

Man unterscheidet im weiteren offene (engl. serial or single chain) und geschlossene (engl. closed)
kinematische Ketten.
Eine offene Kinematik liegt dann vor, wenn – beginnend am Wurzel- bzw. Fußpunkt (root) – jedes Gelenk
nur durch eine mechanische Kopplung mit dem nächsten Gelenk verbunden ist. Hier bestimmt – meistens –
die Anzahl der Gelenke auch die Anzahl der Freiheitsgrade.
Bei einer geschlossenen Kinematik gibt es mehrere mechanische Kopplungen zwischen den Gelenken. Die
Anzahl der Gelenke ist hier oft viel höher als die Zahl der Freiheitsgrade; der Zusammenhang ist nicht
einfach zu ermitteln (siehe: Formel von Grübler). Beispiele sind Delta- und Hexapod-Kinematiken,
Paralellogramme etc.
Diese Unterscheidung ist insofern wichtig, weil sie Auswirkungen auf die Berechnung (forward/inverse) hat.
Nicht für jede Kinematik ist eine analytische Lösung möglich – genau das will man aber für zuverlässige
Anwendungen.

2.1 Unterschiedliche Typen von Industrierobotern

• Portal-Roboter (zB. 3 kartesische Achsen)


• Knickarm-Roboter mit zB. 5 oder 6 Gelenken
• Scara-Roboter (Selective Compliance Assembly Robot Arm)
• Delta-Roboter
• Hexapod-Roboter
• Hybrid Bauformen

2.1.1 Portal-Roboter
Roboter mit 3 linearen, orthogonalen, translatorischen Achsen werden auch als Portale bezeichnet. Die
translatorische Bewegung basiert oft auf Antriebswellen, dies hat zur Folge daß der Roboter steif ist und
Kräfte von außen aufnehmen kann – diese Maschine ist für zB. zerspanende Fräs-Prozesse oder Mess-
Aufgaben geeignet.

Seite 7 von 33
Merkmale
• linear-Kinematik auf Basis von Wellen mit definierter Steigung ist sehr genau (1 µm Bereich)
• Quaderförmiger Arbeitsraum
• großer Platzbedarf (beliebig groß)
• eher niedrige Arbeitsgeschwindigkeit

2.1.2 Hybrid-Kinematik
Eine Hybrid-Kinematik kombiniert translatorische und rotatorische Gelenke. Roboter mit 4 Achsen RTRR
oder RRTR werden auch als SCARA Mechanik bezeichnet. Die Bezeichnung SCARA = "Selective Compliance
Assembly Robot Arm" bezeichnet eine selektive Nachgiebigkeit: der Roboter ist steif in Z-Richtung aber
nachgiebig in X/Y - man spricht auch von 'weichen Achsen'.
Diese Nachgiebigkeit kann genutzt werden, wenn zB äußere Kräfte auf den Roboter wirken. Beispiel 1: der
Roboter soll Bauteile aus einer Spritzgußmaschine entladen. Der Roboter fährt in Position und schliesst den
Greifer, dann stößt die Maschine das Bauteil aus und schiebt so den Roboter zur Seite. Beispiel 2: der
Roboter soll Objekte eng in einen Behälter setzen - die letzte Absetzbewegung fährt der Roboter mit
weichen Achsen und kann so Objekte einfädeln ohne dass es zur Kollision kommt.
Merkmale
• häufig: 3 x Rotation und 1 x Translation
• Zylinderförmiger Arbeitsraum
• typ. 100 – 1000 mm Arbeitsraum
• Traglast ca. bis 20 kg

Seite 8 von 33
Hybrid : SCARA-Roboter

Hybrid : Schwenkarm-Roboter

2.1.3 Knickarm-Kinematik
Bei Industrierobotern ist der Typ 6-Achs Knickarm Roboter die am weitesten verbreitete Kinematik, vor
allem wegen ihrer Flexibilität.

Merkmale
• meistens 6xR = RRRRRR Konfiguration mit Achsen 1-6 = axial - radial - radial - axial - radial - axial
• Kugelförmiger Arbeitsraum
• typ. ca 500 – 3000 mm Arbeitsraum
• Traglasten 3 kg bis > 1000 kg
• gute Erweiterbarkeit mit zB. externe Achsen : Dreh- oder Dreh-Kipp-Tisch, linear

Seite 9 von 33
Der 6-Achs Knickarmroboter ist wegen seiner Vielseitigkeit die Kinematik, die am häufigsten für Industrie-
Anwendungen eingesetzt wird.

2.1.4 Delta- und Hexapod-Kinematiken

schematisch Hexapod 3D-Drucker mit Delta-Kinematik

In beiden Fällen handelt es sich um geschlossene kinematische Ketten.

Merkmale Hexapod
• 18 Gelenke: 6 Universal (Dreh/Kipp) – 6 prismatisch – 6 Kugelgelenke : 6 Freiheitsgrade
• 6 angetriebene Achsen = 6 prismatische Gelenke

Seite 10 von 33
• annähernd Kugelförmiger Arbeitsraum
• mit hydraulischen Antrieben: geeignet für schwere Lasten im Bereich 100e-1000e kg

Merkmale Delta (3D-Drucker: Bauform 'Kossel')


• verschiedene Bauformen möglich
• hier: 15 Gelenke: 3 prismatisch – 12 Kugelgelenke : 3 Freiheitsgrade
• hier: 3 angetriebene Achsen, prismatisch, per Zahnriemen
• sehr hohe Dynamik bzw. Geschwindigkeit

2.2 Anwendungen
Welcher Roboter ist für welche Aufgabe geeignet ? Hier einige Beispiele
§ Scara-Kinematiken sind – wie der Name sagt – selektiv nachgiebig und oft recht schnell. Damit lassen
sich Pack-Aufgaben gut erledigen, denn sie können Werkstücke ggf. "weich" einpacken. Die Roboter
haben meistens 4 Achsen und sind damit preiswerter als eine 6-Achs Maschine.
§ Delta-Roboter sind sehr schnell und erreichen Pick -n-Place Zyklen unter 1 Sekunde – ideal für das
schnelle Umsetzen von Objekten, zB. Pralinen von Förderband in die Schachtel. Delta-Roboter sind oft
hängend montiert (Deckenmontage) und damit auch im Hygiene-Bereich gut einsetzbar.
§ MRK-Roboter können für die Kollaboration Mensch-Maschine genutzt werden, weil diese im Hinblick
auf mögliche Impact-Kräfte und die damit verbundenen Sicherheits-Merkmale optimiert sind
§ Roboter mit in den Achsen integrierten Kraft-Momenten-Sensoren können sehr feinfühlig arbeiten,
Arbeitsaufgaben "ertasten" und damit auch komplizierte Montage -Aufgaben wahrnehmen
§ Hexapods sind für schwere Lasten geeignet oder für Bearbeitungsvorgänge bei denen hohe Kräfte
entstehen (Schleifen, Polieren)
§ 6-Achs Roboter sind universell nutzbar. Die Reichweite und Traglast sind in der Regel vom Typ
abhängig. Andere Faktoren wie Genauigkeit, Geschwindigkeit, Sensorik, Regel- oder
Kommunikationsschnittstellen können oft als Option erweitert werden.
§ AGV (autonomous guided vehicle) sind selbstfahrende Fahrzeuge, oft zum Transport von Waren
innerhalb einer Firma, mit unterschiedlichen Navigationsfähigkeiten. Teilweise operieren die Fahrzeuge
autark sensorisch, teilweise lernen sie die Umgebung und andere werden komplett von außen
gesteuert.

Beispiele aus der Industrie:

2.3 Genauigkeit
Bei der Frage nach den Vorteilen von Robotern fallen immer wieder die Begriffe 'schneller', 'zuverlässiger'
und natürlich auch 'genauer'. Der Begriff 'Genauigkeit' zielt im Allgemeinen auf folgendes ab: wie genau dh.
mit welcher Abweichung kann der Roboter ein vorgegebenes Maß erreichen bzw. einhalten.
§ wie genau wird eine Zielposition erreicht, bzw. gehalten ?
§ wie genau wird eine Bahn/Traj ektorie abgefahren ?
§ wie genau hält der Roboter eine vorgegebene Geschwindigkeit ?
§ wie genau können Kräfte bzw Momente eingehalten werden ?
Relevante Norm : ISO 9283 " Leistungskenngrößen und zugehörige Prüfmethoden"
Abweichungen haben verschiedene Ursachen, eine ist die beschränkte Genauigkeit mit der die
mechanischen Bauteile produziert werden können, technisch und kommerziell bedingt. Typische
Fertigungstoleranzen liegen zB. im Bereich 50 µm bis 0.5 mm.

Seite 11 von 33
Der Unterschied einer realen 6-Achs-Kinematik zum N ominalmodell beinhaltet 6-dimensionale
Fehlerquellen in jedem Gelenk - allein die messtechnische Ermittlung ist sehr aufwändig und erfordert zB.
Laser-Messgeräte (Faro, Leica, Preis > 150.000 €).
In der Regel werden daher die mechanischen Bauteile mit einem hohen, aber kommerziell vertretbarem
Aufwand hergestellt und die Steuerung rechnet mit den Nominaldaten.
Hinweis: die hier exemplarisch genannten Zahlenwerte beruhen auf Erfahrungen mit 6-Achs
Industrierobotern, bei Traglasten von ca. 6-500 kg und Reichweiten 500-3500 mm.

2.3.1 Wiederholgenauigkeit
Hersteller von Industrierobotern geben im Datenblatt meistens die Wiederholgenauigkeit an, dieser Wert
liegt für viele Maschinen im Bereich 0.05-0.2 mm - und wird oft fälschlich als der Wert für Genauigkeit
missverstanden.
Die Wiederholgenauigkeit meint aber: wie genau trifft der Roboter eine geteachte Position immer wieder,
wenn dieselbe Pose, gleicher Annäherungsvektor und Geschwindigkeit vorausgesetzt sind. Dieses Szenario
ist aber nicht für alle Anwendungen gültig.
Beispiele
§ ein Roboter soll Objekte greifen, die Position wird durch ein Kamerasystem erfasst
§ Bearbeitung von Werkstücken auf Basis von CAD-Daten
Ermittelt man die Ist-Position eines realen Roboters messtechnisch, dann kann die Abweichung auch
durchaus im Bereich 0.5-5 mm liegen - obwohl die og. Wiederholgenauigkeit eingehalten wird.

2.3.2 Absolut-Genauigkeit
Der Unterschied zwischen Nominal-Modell und einer realen, fehlerbehafteten Kinematik bewirkt, daß die
berechnete Ist-Position von der tatsächlichen abweicht.
Eine Verbesserung der mechanischen Genauigkeit ist irgendwann technisch und finanziell nicht mehr
sinnvoll. Stattdessen versucht man die Abweichungen einer realen Kinematik messtechnisch zu erfassen
und diese in das Rechenmodell miteinzubeziehen.
Bei der Vermessung bringt man den Roboter in bestimmte Achs-Positionen und ermittelt dann mit einem
Mess-System (zB. Messbank, Stereo-Vision, Laser-Tracker) die tatsächliche Position am Flansch. Eine direkte
Berechnung der Transformations-Parameter ist mathematisch nicht möglich. In der Praxis nutzt man daher
ca. 200 Messpunkte und berechnet dann zB. mit einem Best-Fit Algorithmus die DH-Parameter.
Im Bezug auf die Positionier-Genauigkeit kann man mit der Absolut-Vermessung durchaus eine
Verbesserung um den Faktor 3..5 erreichen, dh. die Abweichung der Ist-Position kommt in den Bereich 0.2
bis 0.5 mm.

2.4 Simulation
....
§ RobCAD
§ RoboDK
§ Visual-Components
§ RobotMaster

3 Transformationen
Das manipulieren von Objekten und Werkzeugen mittels Roboter impliziert zwangsläufig, daß es
Mechanismen (auch im Sinne von Mechaniken) gibt, die die Position dieser Elemente im Raum verändern
können. Dies erfordert eine Methode, um die Position und die Orientierung dieser Elemente im Raum
beschreiben zu können bzw. um die Mechanismen selbst beschreiben zu können.

Seite 12 von 33
Wir nehmen an, daß es ein universelles Koordinatensystem gibt, auf das alles referenziert werden kann.
Dieses kartesische Koordinatensystem wird als WORLD bezeichnet – und wir werden alle Positionen und
Orientierungen von Objekten in Bezug zu WORLD oder zu anderen kartesischen Koordinatensystemen
betrachten.

3.1 Position und Orientierung


Positionen
Ein Punkt bzw. eine Position AP im Raum kann als Endpunkt eines Vektors [ p x py pz ] betrachtet werden, der
in einem orthogonalen Koordinatensystem liegt, dessen drei Achsen X, Y, Z Einheitslänge haben. Die
Zahlenwerte werden üblicherweise in einem Maßsystem betrachtet, wenn nicht anders angegeben
nehmen wir [mm] Millimeter an.
Z
A
P

Orientierung
In der Regel müssen wir nicht nur die Lage – im Sinne einer Position oder Verschiebung – eines Objekts im
Raum beschreiben, sondern auch dessen Orientierung, dh. eine Verdrehung um die Raumachsen.
Die Orientierung beschreiben wir, indem wir an einem Objekt ein Koordinatensystem festmachen und dann
die Lage dieses Koordinatensystems {B} relativ zu {A} beschreiben.

{B}
{A}
A
P

Wir bezeichnen die Koordinatenvektoren des Systems {B} als X B, YB und ZB – wollen wir diese Vektoren im
Bezug auf das System {A} beschreiben, dann schreiben wir AXB, AYB und AZB .
Diese drei Vektoren fassen wir zu einer 3 x 3 Matrix zusammen, die wir als Rotations-Matrix bezeichnen
und weil diese Matrix beschreibt wie die Orientierung von {B} realtiv zu {A} ist verwenden wir dafür die
Schreibweise ABR . Dies bringt zum Ausdruck, daß diese Matrix das System {A} nach {B} überführt bzw.
abbildet.
r11 r12 r13
r21 r22 r23
A
R = [ X Y Z ] = r31 r32 r33
B
A
B
A
B
A
B

Zusammenfassung: wir verwenden einen Satz von drei Vektoren um eine Orientierung im Raum zu
beschreiben, die wir in die Spalten einer 3 x 3 Matrix schreiben. Eine Position im Raum ist durch einen
Vektor gegeben, eine Orientierung durch eine Matrix.
Die Skalarwerte rij können einfach berechnet werden, weil sie lediglich die Projektion der Vektoren in das
Referenzkoordinatensystem darstellen und daher mit dem Skalarprodukt berechnet werden können.

Seite 13 von 33
XB· XA YB· XA ZB· XA
XB·YA YB ·YA ZB ·YA
A A A A XB· ZA Y B· ZA Z B· ZA
BR = [ XB Y B ZB ] =

Frame
Die Angabe der Lage eines Objekts durch das Paar "Position" und "Orientierung" wird in der Robotik so oft
benötigt, daß wir dafür den Begriff des FRAME einführen. Dies ist ein Set von vier Vektoren, die die Position
und Orientierung angeben.
Hinweis: ein FRAME ist daher ein Koordinatensystem, welches durch Verschiebung und anschliessende
Rotation relativ zu einem Ursprungs- oder Referenzkoordinatensystem zu sehen ist. Beispiel: das Frame {B}
ist gegeben durch die Rotation (Orientierung) ABR und APBORG – wobei APBORG als (Versatz-) Vektor des Frame
{B} zu seinem Ursprungs- bzw. Originalsystem zu verstehen ist.
{B} = { ABR , APBORG }
Ein Frame wird im Skript – wie bei Koordinatensystemen üblich – grafisch als drei Pfeile in Richtung der
Hauptachsen X, Y und Z dargestellt. Diese werden ggf. passend mit X, Y und Z beschriftet – die Farbgebung
X = rot, Y = grün und Z = blau ist allgemein üblich. Man kann sich das leicht merken, wenn man an das RGB
Farbmodell denkt.

ZB
{B}

YB

XB
Zusammenfassend können wir sagen, daß ein Frame als Mechanismus dient, um ein Koordinatensystem in
anderes überführen zu können. Ein Pfeil der vom Ursprung des einen zum anderen Koordinatensystem
zeigt repräsentiert einen Vektor, der die Lageverschiebung verdeutlicht (dieser Pfeil kann aus Gründen der
Darstellung auch gebogen sein). Die Richtung des Pfeils gibt an, daß wir die Lage von {C} relativ zu {B}
kennen – und nicht umgekehrt.

ZB
{B} {C}

YB

XB
Bei einem Frame gilt die Konvention: Translation vor Rotation. Zuerst wird die Lageänderung APBORG
angewendet, erst dann die Orientierung ABR – warum wird im nächsten Abschnitt deutlich.

3.2 Zeit und Bewegung


todo...

3.3 Transformationen
Transformationen

Seite 14 von 33
Es ergeben sich Situationen bei denen ein Vektor in Bezug auf ein Frame {B} bekannt ist und wir möchten
seine Lage in Bezug auf anderes Frame {A} wissen.
Der Vektor, der den Ursprung von {B} in Bezug auf {A} beschreibt ist APBORG und {B} wird in Bezug auf {A}
verdreht, was durch ABR gegeben ist. Nehmen wir an, daß BP gegeben ist, dann möchten wir AP berechnen
können.

{A} A
{B}
P
B
P
A
PBORG

Wir können uns zunächst ein Hilfs-Frame ausdenken, welches dieselbe Orientierung wie {A} hat, aber
seinen Ursprung genau wie {B} und BP relativ zu diesem System betrachten. Rechnerisch erreichen wir das
durch eine (linksseitige) Multiplikation mit ABR – erst dann wenden wir die Verschiebung APBORG an und
erhalten damit folgendes:
A
P = ABR BP + APBORG .
Diese Darstellung vereinfachen wir dadurch, daß wir eine Transformation T einführen
A
P = AB T BP .
Diese Transformation ABT schreiben wir als 4 x 4 Matrix Operator wie folgt:
A B
P A
R A
P BORG P
= B
1 000 1 1

§ wir ergänzen eine "1" als letztes Element der 4 x 1 Vektoren


§ und ergänzen eine Reihe [ 0 0 0 1 ] als letzte Reihe der 4 x 4 Matrix.

Der Sinn des Ganzen ist, daß wir so eine homogene Transformation erhalten.

Translatorische Transformation
Bei einer reinen Lageänderung, also Verschiebung DQ im Raum, wird die Rotationsmatrix nicht benötigt und
stellt eine Einheitsmatrix dar.
1 0 0 qx
0 1 0 qy
DQ (q) =
0 0 1 qz
0 0 0 1

Für den Vektor, bzw. für die Translation spielt die Richtung eine Rolle. Hätten wir anstelle APBORG die
Verschiebung BPAORG gewählt, würden wir geänderte Vorzeichen erhalten. Das Vorzeichen signalisiert den
Unterschied, ob wir eine "Vorwärts-" oder "Rückwärtstransformation" durchführen.

Rotatorische Transformation
Eine Rotationsmatrix kann als rotatorischer Operator betrachtet werden, der einen Vektor AP1 in einen
neuen Vektor AP2 überführt, wobei eine Rotation um eine Koordinatenachse zB. als Funktion eines
Drehwinkels ? (Theta) gewünscht wird. Dieser Operator kann als homogene Transformation in der
folgenden Form geschrieben werden – hier am Beispiel einer Rotation um die Z-Achse.

Seite 15 von 33
cosΘ -sinΘ 0 0
sinΘ cosΘ 0 0
R Z (Θ) =
0 0 1 0
0 0 0 1

Im weiteren Kontext werden die Winkelfunktionen sin(α) als "sα" und cos(α) als "cα" abgekürzt – für die
Winkel Beta und Gamma gilt dementsprechend : sβ – cβ – sγ – cγ
Die dazu gehörenden Rotationsmatrizen haben folgende Form:
cα -sα 0 cβ 0 sβ 1 0 0
R Z (α) = sα cα 0 R Y (β) = 0 1 0 R X (γ) = 0 cγ -sγ
0 0 1 -sβ 0 cβ 0 sγ cγ

Rotation um X-Y-Z feste Winkel


In der Robotik werden meistens Rotationen um alle drei Drehachsen benötigt, eine allgemeine Rotation
RXYZ von {B} um die Achsen ( X-Y-Z ) von {A} ist diese:
A
R
B XYZ (γ, β, α) = RZ(α) RY(β) RX(γ) .
Es ist sehr wichtig, daß man die Reihenfolge der Rotationen versteht:
wir beginnen mit einem Frame {B} das zunächst genauso orientiert ist wie das Referenz-Frame {A}.
Nun rotieren wir {B} um X A(γ) – dh. wir drehen um die X-Achse im A-System um den Wert γ (gamma).
Als nächstes rotiert man YA(β) und zum Schluß ZA(α).
Diese Rotation heißt deswegen "feste Winkel" weil um die festen Drechachsen des Systems {A} gedreht
wird. Manchmal wird diese Konvention auch als RPY = 'roll', 'pitch' und 'yaw' bezeichnet – wobei diese
Bezeichnung im englischen Sprachgebrauch auch nicht eindeutig geregelt ist.
Die Schreibweise X-Y-Z ( ohne Apostroph ' ) impliziert feste Winkel.

Rotation um Z-Y-X Euler Winkel


KUKA und andere Roboterhersteller verwenden einen anderen Rotations-Operator, dabei wird eine
Rotation von {B} um die Achsen von {B}
A
R
B Z'Y'X' (γ, β, α) = RZ(α) RY(β) RX(γ) .
Für die Reihenfolge der Rotationen gilt nun:
wir beginnen wieder mit einem Frame {B} das genauso orientiert ist wie {A}. Nun rotieren wir {B} um
ZB(α) – dh. wir drehen zuerst um die Z-Achse im B-System um den Wert α (alpha) . Als nächstes rotiert
man YB(β) und zum Schluß X B(γ).
Diese Rotation wird auch als "moving angles" bezeichnet, weil jede Rotation auf der vorherigen aufbaut
und die Drehachse von der/den vorangegangenen Rotationen abhängt.
Hinweis: die hier genannte Reihenfolge Z-Y-X ist nur eine der 12 möglichen Euler Winkel Konventionen –
die anderen sind aber weniger relevant.
Die Schreibweise Z'-Y'-X' impliziert Euler-Winkel – manchmal findet man auch Z-Y'-X''.
Die komplette Rotationsmatrix hat nun folgende Form (hier in C++ Schreibweise)
r11 = ca*cb; r12 = ca*sb*sc-sa*cc; r13 = ca*sb*cc+sa*sc;
r21 = sa*cb; r22 = sa*sb*sc+ca*cc; r23 = sa*sb*cc-ca*sc;
r31 = -sb; r32 = cb*sc; r33 = cb*cc;

Seite 16 von 33
Als weitere Konvention (wie zB bei KUKA) übernehmen wir hier folgende Bezeichnung für die Winkel –
diese werden im Allgemeinen in der Einheit [°] Grad angegeben – wobei intern natürlich mit [rad]
gerechnet wird.
§ A dreht um Z – entsprechend RZ(α)
§ B dreht um Y – entsprechend RY(β)
§ C dreht um X – entsprechend RX(γ)

In der Praxis wird auch eine Rückrechnung der Winkel aus den Parametern der Rotationsmatrix benötigt.
Aus der og. Rotationsmatrix kann man ableiten, daß mittels r11 und r21 zunächst β (also B) berechnen
kann, aber nur wenn B != 90° ist, weil sonst der atan2() eine Singularität hat. Ohne weitere, detaillierte
Herleitung hier die Berechnung der ABC Winkel als C++ Code.

double A,B,C;
double sa,ca;
double norm = sqrt( r11*r11 + r21*r21 );

if ( norm > 1.0E-5) {


sa = r21/norm;
ca = r11/norm;
A = atan2(sa, ca);
} else {
sa = 0.0;
ca = 1.0;
A = 0.0;
}

B = atan2( -r31, ca*r11 + sa*r21 );


C = atan2( sa*r13 - ca*r23, -sa*r12 + ca*r22 );

Alternative Rotationen
Als Ergänzung zu den bisher genannten Rotations-Operatoren X-Y-Z und Z'-Y'-X' sei erwähnt, daß manchmal
auch mit der Konvention Z-Y-Z in {B} gearbeitet wird.
Ingesamt gibt es 12 Varianten für feste -Winkel und 12 weitere für Euler-Winkel – wobei es Dualitäten gibt,
sodaß es tatsächlich nur 12 echte Varianten gibt. Für weitere Informationen dazu sei auf [Crai05]
verwiesen.

Wichtig zu wissen: die Rotationen um Winkel A,B,C sind mehrdeutig: dh. eine Rotations-Transformation
mittels Frame = {A 90, B 90, C -90} kann auch durch {A 0, B 90, C 180) beschrieben werden – und es gibt
unendlich viele weitere Varianten.
Um dieses Problem zu umgehen, kann eine Rotation auch mittels Drehvektor K und um einen Winkel ?
erreicht werden. Gegeben sei Drehvektor K = [ K x , K y , K z ] und Winkel ?, dann kann dieser Rotations-
operator auch als Vektor mit 4 Komponenten geschrieben werden, was häufig als Quaternion bezeichnet
wird (im engl. = equivalent angle-axis representation)
RK (? ) = [ Kx , K y , K z, ? ]
Diese Variante kann auch anders, mittels Euler-Parameter ε geschrieben werden, diese werden dann wie
folgt angegeben:
ε1 = kx sin ( ? / 2)
ε2 = ky sin ( ? / 2)
ε3 = kz sin ( ? / 2)
ε4 = cos ( ? / 2)
wobei hier folgendes gelten muß : ε 1 ² + ε2 ² + ε 3 ² + ε4 ² = 1.

Seite 17 von 33
Es lässt sich begründen daß hier keine Winkel > PI (=180°) auftreten dürfen – wobei dies keine
Einschränkung darstellt. Auch hier wird der Vektor E = [ε1 ε 2 ε3 ε 4 ] als Quaternion bezeichnet.
Die Verwendung von A,B,C Winkeln kommt der Lesbarkeit bzw. Verständlichkeit für Menschen entgegen
und ist leicht mit der Rechten-Hand-Methode nachvollziehbar. Soll aber ein Frame {B} in ein neues Frame
{C} sanft interpoliert werden, ist ein Quaternion das Mittel der Wahl.
Für bestimmte Rechenverfahren kann das Quaternion auch auf eine 3 x 1 Darstellung "gekürzt" werden.
Wenn man mit einem Gleichungssystem nur drei Parameter einer Rotation eindeutig bestimmen kann, ist
es eine Option den Drehvektor K als [ K x , K y , Kz ] darzustellen, wobei der Vektor allerdings nicht normiert ist
(die Länge 1 hat), sondern nun die Länge dem Drehwinkel entspricht. Es liegt auf der Hand, daß damit keine
Drehung um 0° erreicht werden kann – was dann auch sinnfrei wäre.

3.4 Anwendungen
Nachdem jetzt Transformationen als Werkzeug zur Verfügung stehen: wie ist deren Anwendung ?
Betrachten wir eine planare 2-Achs Kinematik. Das erste Gelenk kann sich um den Ursprung drehen (bzw.
wir haben den Ursprung in das erste Gelenk gelegt) und zwar um den Winkel Theta1. Dort ist ein weiterer
Arm, der sich um Theta2 dreht, dessen Endpunkt sei der Flansch der Kinematik, dort legen wir den TCP
(Tool Center Point) fest. Für eine Anwendung in der Ebene ergibt sich zunächst die Frage: wo befindet sich
der TCP in diesem X-Y Koordinatensystem ?

TCP
TCP

Θ2

Θ1
2-Gelenk-Kinematik mehrdeutige Stellung

Sei L1 die Länge des ersten Arms, dann befindet sich dessen Endpunkt an der Position
PF1 : { X = L1 cos ? 1 / Y = L1 sin ? 1 )
und die Lage des TCP ist dann
TCP : { X = (L1 cos ? 1 + L2 cos (? 1+? 2) / Y = L1 sin ? 1 + L2 sin (? 1+? 2))

3.5 Singularitäten und Mehrdeutigkeiten


Mehrdeutigkeiten entstehen dann, wenn mehrere Gelenkkoordinaten (Achswinkel) zu derselben Stellung in
Weltkoordinaten führen. Das in 2.4 gezeigte Beispiel einer 2-Gelenk-Kinematik ist mehrdeutig.
Es gibt weitere Mehrdeutigkeiten, wenn rotatorische Achsen Wertebereiche von >360° haben. In der Praxis
können zB. die Achse-4 und Achse-6 mechanisch endlos drehen. Damit diese Situationen für den
Programmierer noch anschaulich bleiben, schränkt man den Bereich auf -358° ... +358° ein, dh. man hat
nun ggf. nur noch eine negative und eine positive Lösung zu betrachten.

Seite 18 von 33
Für einen 6-Achs Knickarmroboter RRRRRR mit der üblichen Konfiguration "axial -radial-radial-axial-radial-
axial" gibt es drei Mehrdeutigkeits-Situationen (sofern die Mechanik dies zulässt)
§ Raumpunkte VOR dem Roboter können auch 'Über-Kopf' erreicht werden, wenn die Achse-1 um ca.
180° verdreht wird.
§ die Achsen 2, 3 und 5 (Achse 5 = Handwurzelpunkt) befinden sich in einer Situation wie eben erklärt.
Man unterscheidet zB. ob sich die Achse-3 ober- oder unterhalb einer gedachten A2-A5 Linie befindet.
§ die Achsen 4, 5 und 6 erlauben meistens zwei Lösungen: die zweite unterscheidet sich von der ersten
indem man Achse-5 invertiert und A4 und A6 um jeweils 180° verdreht
Auf diese Weise entstehen für eine kartesische Position 2³ = 8 verschiedene mögliche Achsstellungen. Dazu
kommen weitere Mehrdeutigkeiten, weil oft die Achse-1 einen Bereich >360° hat und die Achse-4 und
Achse-6 sowieso. Damit sind teilweise 64 Lösungen möglich.
Bei der KUKA Steuerung wird deshalb mit zwei Bitfeldern 'Status' und 'Turn' gearbeitet, um eine kart.
Position eindeutig beschreiben zu können.
TODO:

3.6 DH-Transformation
Die DH-Transformation geht auf Jacques Denavit und Richard Hartenberg zurück, die 1955 ein erstes
Konzept zur systematischen Beschreibung von offenen kinematischen Ketten vorgestellt haben. Der 1964
vorgestelle Te xt Kinematic Synthesis of Linkages ist ein Standardwerk der Robotik.
Die DH-Transformation erlaubt die Berechnung von Ortskoordinaten in einer kinematischen Kette, also die
sog. Vorwärts-Transformation, indem Gelenke (Joints) betrachtet werden und die geometrischen
Verhältnisse mitteln einfacher Parameter - der DH-Parameter - beschrieben werden.
Anm.: die Sichtweise von Denavit/Hartenberg betrachtet die Transformation von einem Gelenk (i) zum
nächsten Gelenk (i+1) - wir verwenden im Folgenden die von Craig (1986) modifizierte Version, die
die Transformation vom Gelenk (i-1) zu (i) betrachtet.
Z - wichtig : das Koordinatensystem in einem Gelenk liegt immer so (bzw. wird so gelegt) daß entweder eine
Rotation um Z = θ(i) stattfindet - für radiale oder axiale rotatorische Gelenke vom Typ R - oder eine
Verschiebung entlang Z = d(i) für prismatische oder Schubachsen, Typ P.
Betrachten wir zunächst ein Gelenk (i) - hier rechts - innerhalb einer kinematischen Kette und seinen
Vorgänger (i-1) - beides seien rotatorische Gelenke.

Seite 19 von 33
Die X-Achse wird so festgelegt, daß sie senkrecht auf der Ebene steht die durch Z(i) und Z(i+1) gebildet wird.
Die DH-Transformation besteht aus 4 einzelnen Transformationsschritten, die auf ein Gelenk (i) bezogen
werden:
Rx : α (i-1) die Rotation um X im Punkt/Gelenk (i-1) vor dem Gelenk (i)
Dx : a (i-1) die Verschiebung entlang X von (i-1) vor dem Gelenk (i)
Rz : θ (i) Rotation um die Achse Z im Punkt (i) im Gelenk (i)
Dz : d (i) die Verschiebung entlang Z im Punkt (i) im/nach Gelenk (i)
Die Parameter a und α beschreiben also die starren Eigenschaften einer Gelenkverbindung, während θ und
d variabel sind. Falls das Gelenk R-rotatorisch ist (radial oder axial) dann beschreibt θ den Drehwinkel, falls
es P-prismatisch ist, dann ist d der Schub. Man wird a immer positiv angeben, für α, θ und d spielt das
Vorzeichen keine Rolle.
Wendet man die DH-Parameter auf 4 einzelneTransformationen an, dh. man mulipliziert Rx * Dx * Rz * Dz,
dann erhält man folgendes (Craig 3.6)

Es ist allgemein üblich, die DH-Parameter einer seriellen Kinematik tabellarisch anzugeben - zeilenweise für
die Gelenke 1..n. Die Parameter a und α beschreiben die Situation vor dem Gelenk, daher der Index (i-1)
hier am Beispiel des PUMA 560 :
Joint i α (i-1) a (i-1) d (i) θ (i)
1 0 0 0 θ1

2 -90° 0 0 θ2

3 0 a2 d3 θ3
4 -90° a3 d4 θ4

5 90° 0 0 θ5

6 -90° 0 0 θ6

Diese Werte können nun direkt in die Transformations-Matrizen der sechs Achsen eingesetzt werden und
erlauben so eine Berechnung der Ortskoordinaten, ausgehend vom Gelenk 0 bis 6. Beim PUMA 560 liegt
das Gelenk 0 in Höhe der Achse-1, das Gelenk-6 entspricht dann dem Flansch.
Die meisten 6-Achs Roboter von KUKA verwenden folgende DH-Parameter
Joint i α (i-1) a (i-1) d (i) θ (i)

1 180° 0 d1 θ1

2 90° a1 0 θ2
3 0 a2 0 θ3

4 90° a3 d4 θ4

5 -90° 0 0 θ5
6 90° 0 d6 θ6

F 180° 0 0 0

Seite 20 von 33
Aus historischen Gründen wird bei der 01Transformation eine Drehung um α=180° angewendet und damit
läuft Z quasi rückwärts durch die kinematische Kette (im Vergleich zum PUMA), dies wird zum Schluß durch
eine 6FTransformation (von Achse-6 zum Flansch) korrigiert, sodaß Z senkrecht aus dem Flansch austritt, wie
allgemein üblich.

Seite 21 von 33
4 Roboter-Steuerung
Die Mechanik eines Roboters, der Manipulator, wird in aller Regel durch einen speziellen, für eben diese
Mechanik angepassten Controller angesteuert. Dieser Controller soll folgende Aufgaben erfüllen
§ Steuerung bzw. Regelung der Antriebe: überwiegend elektrisch, manchmal auch hydraulisch
§ Positionsregelung: der Roboter soll eine Position im Raum halten
§ Bahnsteuerung (-regelung): der Roboter soll einer geplanten Bahn im Raum folgen – eine Regelung
findet ggf. meistens durch die Prozeßsteuerung statt
§ Kraftregelung für zB. Handling- und Fügeanwendungen
§ (numerisch) Programmierbare Verhaltensabläufe
§ Diagnosefunktionen, Performance -Optimierung
§ Kommunikation mit anderen Komponenten
§ Safety : Überwachung von Sicherheitsfunktionen
Bei fast allen Herstellern von Roboter ist eine angepasste Steuerung in integraler Bestandteil des
Gesamtsystem - aus den verschiedensten Gründen. Eine Ausnahme ist der SmartController der Fa. adept
(früher Unimation, inzwischen Omron), der sich auch an verschiedene Roboter anderer Hersteller anpassen
lässt.

4.1 Steuerung KRC


Die Robotersteuerung KRC - KUKA Robot Controller i st eine PC-basierte Steuerung und ist als solche seit
1995 auf dem Markt. Vorher wurde bei KUKA die KRC32-Steuerung eingesetzt, eine Entwicklung von
Siemens

4.2 Bediengerät
Fast alle Roboter-Steuerungen verfügen über ein mehr oder weniger komfortables Handbediengerät. Dies
dient einerseits zum manuellen Bewegen des Roboters mittels Verfahrtasten, Joystick oder 6D-Maus. Zum
anderen können damit auch Programme ausgewählt und gestartet werden. Selbst das Erstellen einfacher
Bewegungsprogramme ist in der Regel möglich.

KUKA PHG ca 1995 KUKA SmartPad 2015

Seite 22 von 33
4.3 Architektur der Steuerung
Eine Robotersteuerung muß u.a. folgende Anforderungen erfüllen:

§ Steuerung der Mechanik : Steuerung der Kinematik -> Antriebe und Motoren
§ Bewegungs- bzw Servosteuerung : Lage- und Drehzahl-Regelung
§ Bahnplanung und Interpolation : Transformation und Bahnplanung
§ Ablaufsteuerung : Ausführen von Programm-Dateien

Ablaufsteuerung Motion-Control

Interpreter Bahnplanung Inverse Feininter-


Interpolation Transformation polation

Programm
LIN q i,soll
PTP HL-Queue Servo-Elektronik Leistungsteil
IF (...)
... Lageregelung Drehzahlregelung Stromregelung

.
qi,ist qi,ist I i,ist
Motor

Integration Resolver

5 Greifen und Handling


Bei vielen Anwendungen geht es um das Handhaben (Handling) von Werkstücken und damit verbunden,
auch um das Greifen und Festhalten von Objekten. Auch hier orientiert sich die Technik am Mensch bzw an
der Natur – viele Greifersysteme sind Modellen von Hand und Finger(n) nachempfunden.
Dabei sind folgende Aspekte zu beachten
§ welches Kontaktmaterial kommt zum Einsatz
§ soll eine Greif- bzw Halte-Kraft ausgeübt werden
§ oder soll ein bestimmtes Maß eingehalten werden
§ ist das Werkstück formstabil
§ kann ein Formschluß erreicht werden
§ wie genau kann der Greifer (Roboter) bzw das Werkstück positioniert werden

5.1 Greifersysteme
§ passive Transportsysteme (ohne Klemmung)
§ Parallel-Backen-Greifer
§ Winkel-Greifer
§ pneumatische Greifer
§ elektrische Greifer (Kraft und/oder Servo-Regelung)
§ magnetische Greifer

Seite 23 von 33
A B

(A) Parallel-Greifer : Finger bzw. Backen werden linear verschoben


(B) Winkel-Greifer : Finger bzw. Backen werden um ein Drehgelenk bewegt

5.2 Formschluß
Ein Industrieroboter kann eine Zielposition (in der Regel) mit einer Wiederholgenauigkeit von ca 0.1 mm
erreichen – die Position von Werkstücken ist oftmals ungenauer. Soll ein Werkstück aufgenommen und
dann passgenau in eine Maschine eingesetzt werden, ist es wichtig daß das Objekt sich immer in gleicher
Weise im Greifer befindet.
Um ein Werkstück also immer auf die gleiche, definierte Weise im Greifer zu halten, setzt man nach
Möglichkeit auf einen Formschluß zwischen Greifer und Werkstück, dh. beim Schließen des Greifers wird
das Objekt in einer eindeutigen Art und Weise fixiert – und nach Möglichkeit gibt es dann auch keine
Mehrdeutigkeiten.

A B

Gängige Verfahren für die Positionierung runder Objekte ist die Verwendung eines Prismas (A) oder das
Spannen zwischen drei Punkten (B). Um eine Verspannung zu vermeiden, können die Spannpunkte in (B)
auch als Rollen ausgelegt werden.

C D

Somit scheint es eine gute Idee zu sein einen Parallelgreifer für runde Objekte mit Prismen auszustatten (C).
In der Praxis ist es aber fast unmöglich diese Prismen entsprechend exakt zu fertigen, schon gar nicht wenn
mechanischer Verschleiß berücksichtigt wird. Dann ergibt sich eine Situation (D) bei der Objekt multiple,
nicht definierte Lagen einnehmen kann. Das Ganze wird noch schlechter, wenn das runde Objekt ein zB 1 m
langes Rohr ist und die Prismen eine Länge von mehreren Zentimeter haben: in dem Fall müssten die

Seite 24 von 33
Prismen exakt parallel verlaufen, was üblicherweise nicht der Fall ist. Diese Problematik kann dazu führen
daß die Rohrenden im mm- oder cm-Bereich undefiniert sind.

E F

Um den Versatz in (D) auszugleichen wurde in manchen Fällen bewegliche Backen (E) eingesetzt, die zB. um
±3° variabel sind. Auch damit wird das Problem nur verschlimmert, weil das Objekt nun zwei stabile Lagen
einnehmen kann (F) – als mögliche Abhilfe wird ein Prisma fixiert.

Ganz allgemein, und insbesondere beim Spannen von nicht-runden Werkstücken, sollte eine Überdefinition
vermieden werden, dh. es sollten nur soviele Kontaktpunkte da sein wie benötigt.

Seite 25 von 33
6 Programmierung
6.1 Allgemein
Unter "Programmierung eines Roboters" kann man ... Craig [Crai05] definiert 3 Ebenen der
Programmierung
§ Teach-by-showing
§ Roboter Programmiersprachen
§ Aufgabenbasiertes Programmeiren

6.1.1 Teach-By-Showing
Theach-by-Showing ist eine Methode, bei der der Bediener den Roboter durch einen Prozeß führt, der
Roboter merkt sich die Schritte und kann den Vorgang dann später beliebig wiederholen. Der Bediener
führt den Roboter auf zwei Arten: direkt (per Hand) oder mit Hilfe eines Bediengerätes (Tasten, Joystick,
6D-Maus).
Die direkte Führen eines Roboters erfordert daß die Achsen "weich" geschaltet sind, bzw. sich in einer
Schwerkraft-Regelung befinden, dh. der Roboter ist in der Lage seine eigene Position zu halten, kann aber
auf äußere Kräfte (typ. im Bereich 5-20 N) reagieren.
(Bild)
Diese Technik wird zB. bei Schleif- oder Lackieranwendungen eingesetzt, weil so die Erfahrungswerte des
Werkers an die Maschine übertragen werden kann. Diese Art Programmierung ist intuitiv und verlangt
(zunächst) kein Wissen über eine Programmiersprache. Neue Firmen im Markt (UR, ...) die zudem MRK-
Fähigkeiten fokussieren, nutzen oft diese Technik um den Einstieg für Neukunden attraktiv zu machen.

+ intuitive Programmierung
- wenig flexibel / nicht parametrisch
- erfordert einen "weichen" Roboter (MRK) – oder Guiding-Device

6.1.2 Programmiersprachen
Hier unterscheidet man lt. Craig:
§ spezielle Roboter Programmiersprachen
§ Roboter Bibliotheken für existierende Programmiersprachen
§ allgemeine Roboter Programmiersprachen

Spezielle Programmiersprachen waren vor allem auf die Steuerung von Bewegungen ausgerichtet, wurde
dann später verallgemeinert. VAL wurde von Unimation Inc. entwickelt, konnte aber nicht einmal mit
Floating Point Zahlen umgehen oder kennt keine Zeichenketten. Eine Weiterentwicklung ist V+ : wird heute
hoch bei Adept Steuerungen eingesetzt (stimmt das noch?). Diese speziellen PS sind weitgehend überholt.
Ein anderer Ansatz ist die Programmierung der Maschine als Bibliothek für andere Programmiersprachen
wie Basic, Pascal usw.. JARS war eine Entwicklung der NASA basierend auf Pascal. Die relativ neue Kuka
Sunrise Steuerung basiert auf JAVA mit einer Klassenbibliothek zur Steuerung des Roboters. Für Lego
Mindstorms NXT gibt es eine alternative Firmware LEJOS, welches auch auf Java basiert.
Sprachen wie ABB's RAPID, oder KUKA's KRL – für beide gab es in den 1980ern Versuche einer
gemeinsamen Standardisierung – werden als allgemeine Sprachen bezeichnet, weil sie ein Kompromiß aus
Roboterbewegungsprogrammierung und Ablaufsteuerung darstellen.
Mittlerweile gibt es auch grafische Varianten die oft als Icon-Programmierung bezeichnet wird. Die Original
Programmierung von Lego Mindstorms ist grafisch, der Kuka "Icon Editor" ist ebenfalls ein solcher Ansatz.

Seite 26 von 33
Werkzeugmaschinen (NC/CNC Controller, auch 3D-Drucker) verwenden häufig G-Code als
Programmiersprache. G-Code ist lesbarer ASCII-Text und dient vorrangig zur Steuerung von Bewegungen.
Es gibt wenig bis keine Möglichkeiten der Ablaufkontrolle.

6.1.3 Aufgabenbasierte Programmierung


Die bisher beschriebenen Verfahren stellen den Roboter in den Fokus, nicht die zu lösende Aufgabe.
Beispiel: das Umsetzen eines Würfels mit den og. Verf ahren läuft etwa wie folgt ab
- der Roboter ist in Grundstellung
- bewege den Arm in Stellung P1
- steuere das Ventil zum Schließen des Greifers
- bewege den Arm in Stellung P2
- öffne den Greifer
Als Aufgabe formuliert: der Würfel möchte von Position P1 an P2 gebracht werden.
In diesem Fall "weiß" der Würfel wie (an welchen Kontaktpunkten, mit welcher Kraft) er vom Greifer
gehalten werden will. Ein Software die die Szene kennt, kann dann die Bewegungs-Bahn berechnen, wobei
die Stellungen und Störkonturen des Roboter-Arms als Randbedingungen eingehen.
Diese Art der Programmierung kann aktuell als noch nicht gelöst betrachtet werden, aus verschiedenen
Gründen:
todo...

6.2 Programmstrukturen
Im weiteren wird die Programmiersprache KRL von Kuka Roboter betrachtet, eine strukturierte Sprache die
Ähnlichkeiten mit Pascal, C oder Java aufweist, ähnlich auch zu ABB's RAPID. Viele Techniken, Best-Practices
und Entwurfsmuster (Patterns) etc. die sich bei Hochsprachen bewährt haben, können daher auch bei KRL
angewendet werden.
Ein wichtiger Unterschied zu anderen Hochsprachen ist, dass ein KRL Programm nicht einfach nur
ausgeführt wird, sondern während Inbetriebnahme und Test auch wahlfrei (Satzanwahl) ausgeführt werden
kann. Ebenso kann es notwendig sein, dass auch nicht erfahrenes Personal Änderungen am Programmcode
vornimmt (nachteachen).

6.2.1 Was ist wichtig


Verschiedene Programmier- bzw. Software-Techniken arbeiten auf unterschiedliche Ziele hin – was aber
soll erreicht werden ?
Für IR sollen in der Regel folgende Kriterien möglichst gut erfüllt werden
§ Safety: Sicherheit für das Personal
§ Produktionssicherheit - im Sinne Stabilität
§ kurze Zykluszeiten
§ einfache, verständliche Programmierung
§ geringer Einsatz von Resourcen (Energie, Verbrauchsmaterial)
§ gute Wartbarkeit, für Erweiterungen
§ Support für Debugging, Fehlersuche
§ Security: Sicherheit von Daten
Der Aspekt 'Sicherheit' ist in aller Regel durch die System-Architektur (Hardware oder sichere, redundante
Software) gegeben und vom Anwenderprogramm entkoppelt –> insofern nicht zwingend relevant.
...
Fehler oder schlechte Programmstrukturen können unterschiedlich fatal sein. Personenschäden können
weitgehend ausgeschlossen werden, aber Beschädigungen des Roboters, des Werkzeugs, von Maschinen
und Anlagen kommen durchaus vor, dami t verbunden finanzielle Verluste durch Stillstand, Produktions-

Seite 27 von 33
verlust und für Reparaturen. In der Folge auch Imageverluste, bis hin zu Technologie-Zweifeln und
Vorbehalte gegenüber Robotern allgemein.
...
Ein strukturierter Software-Test, wie er bei Projekten (C/C++, Java, App-Entwicklung etc) sonst durchaus
üblich ist, findet bei Roboter-Programmen nur selten statt.
...
Überlegung: wie wird programmiert (Richtlinien?), wer programmiert und hat welche Kenntnisse, wie sieht
die Lifetime eines Projekts aus
...

6.2.2 Der lineare Happy-Day


Prima geeignet um eine schnelle Lösung zu erhalten...
Mit Happy-Day bezeichnet man eine Art der Programmierung die (zunächst) alle möglichen Fehl- oder
Störsituationen außen vorlässt. Vorteil: man kann sich ganz auf die gestellte Aufgabe konzentrieren und
erhält sehr schnell einen funktionsfähigen Prototyp ... ein solches Programm ist keinesfalls tauglich für
echten Produktionsbetrieb !
'Linear' bedeutet hier, daß nur ein sequentieller Ablauf betrachtet wird - ohne daß man sich Gedanken über
alle möglichen Verzweigungen macht.
Beispiel: ein Roboter soll ein Planetengetriebe montieren
- Roboter nimmt Basisplatte
- montiert zunächst Mittelachse
- montiert dann Sonnenrad (in der Mitte)
- montiert dann Planetenräder
- setzt Gehäuse auf
soweit so gut, aber wie geht das Programm mit Variationen um, zB : es gibt einen Lieferengpass der
Sonnenräder, das Ablaufprogramm soll diese auslassen. Schreibt man nun per copy+paste ein neues
Programm ohne Sonnenräder, oder variiert man das Hauptprogramm "if (mit_Sonnenrad) then" ?

6.2.3 Modulbauweise
Jeder halbwegs erfahrene Programmierer versteht leicht die Vorteile einer modularen Programmierung,
aber was genau ist das eigentlich ?
Es gibt die Regel "wenn du etwas 2x brauchst, dann schreibe eine Funktion dafür" – je nach 'Können' des
Programmierers kann dies zu sehr unterschiedlichem Code führen. Es gibt einige Randbedingungen die das
Vorgehen beeinflussen: Parametrierung, Anpassbarkeit, Wartbarkeit, Debugging ...
Beispiel: Ein Roboter soll die 24 Schrauben eines Motorblocks verschrauben, es gibt 6 unterschiedliche
Motor-Typen.
Man kann diese Aufgabe lösen, indem die Zielpositionen als 2-dimensionales Array ausgeführt werden: PPX
[ Typ, Index ] – und alle Vor- und Nachpositionen relativ berechnet werden. Diese Lösung kann in einem
Modul erfolgen und benötigt vermutlich 50 Zeilen Code. In der Praxis ist ein solcher Code schlank und
elegant – und für Unerfahrene schlecht zu pflegen.
Oftmals wird das modulare Prinzip falsch verstanden und endet dann in 144 einzelnen Programmen, die
jeweils über 4-5 Punkte eine einzelne Schraube eindrehen.

6.2.4 Ablaufsteuerung
§ Einzelaufträge
§ Job-Steuerung
§ Event/Trigger-gesteuert

Seite 28 von 33
7 MRK
MRK = Mensch Roboter Kollaboration
auch : COBOT = collaborating robot
4 Stufen der "Zusammenarbeit"
Vollautomatisierung Koexistenz Kooperation Kollaboration
Schutzzaun, der Mensch Aufenthaltserkennung Eingriffszonen gemeinsamer
"bleibt draußen" Arbeitsraum

Hersteller:
§ UR Universal Robots (Dänemark)
§ Fanuc
§ KUKA
§ ABB

Vorteile:
§ der Roboter kann mit dem Mensch direkt interagieren
§ kein Schutzzaun notwendig
§ "altersgerechte" Arbeitsplätze (demografischer Wandel)

Nachteile:
§ aufwendige Sicherheitsbetrachtung: Werkzeuge, Werkstücke, Umgebung …
§ Roboter arbeitet nur langsam, typ max 500 mm/sec
§ sichere Überwachung notwendig : Geschwindigkeiten, Bahnen/Räume, Kräfte/Momente
§ Betrachtung der Impact Situationen, Schmerzschwellen, 29 Körperzonen

Ein Roboter ist eine "unvollständige Maschine" weil er immer in eine Maschine oder Anlage integriert wird
und daher muß die Sicherheitsbeurteilung auch weit über den eigentlichen Roboter hinausgehen.
Für einen MRK-Roboter gilt bei allen Veränderungen – im Gegensatz zu anderen Robotern – daß hier immer
eine wesentliche Änderung der Maschine anzunehmen ist und daher ist dann auch imme r eine neue
Risikoanalyse notwendig, die dann der Betreiber der Maschine durchzuführen hat.

8 Programmierung in KRL
Im folgenden wird exemplarisch die Programmiersprache KRL vorgestellt – für weitergehende, detaillierte
Informationen wird auf die Dokumentation von KUKA Roboter verwiesen. KRL ähnelt in mancher Hinsicht
Pascal bzw. Delphi und kann daher leicht gelesen werden. Die Sprache ist relativ einfach zu erlernen und
jede Person mit Kenntnissen in einer höheren, strukturierten Programmiersprache (Pascal , Delphi, C/C++,
Java etc) dürfte mit KRL wenig Probleme haben.
Die Erstellung einfacher Programme ist üblicherweise kein Problem, aber die speziellen Aspekte der
Steuerungsarchitektur sind vielfältig und teilweise komplex. Das Erstellen der Programm-Architektur für
reale Projekte und das Beherrschen verschiedener, teilweise konkurrierender Anforderungen ist für
Anfänger kaum machbar und erfordert eine Lernphase von einigen Monaten. Solche Anforderungen sind:
§ flüssige (dh. überschliffene) Bewegungsfolgen
§ kurze Zyklen, hohe Fahrgeschwindigkeiten
§ schonender Betrieb der Maschine, geringe Beschleunigungen und Kräfte
§ flexible, erweiterbare Programmstrukturen
§ Ausnahmebehandlung (Interrupts), Reaktion auf externe Ereignisse
§ Präzises Verhalten auf der Bahn bzw. am Zielpunkt

Seite 29 von 33
§ exaktes Steuern von Prozessen (Schaltbefehle auf der Bahn)
§ Beherrschen von Abbruchszenarien
§ Diagnose, Debug- und Testmöglichkeiten

KRL kombiniert Bewegungs- und Ablaufsteuerung in einem System und kann daher sehr flexibel eingesetzt
werden. Die Sprachelemente und Mechanismen sind auf die Bedürfnisse der Maschine und des
Programmierers optimiert, insbesondere beim Testen und im Handbetrieb ist dies von Vorteil. KRL wird zur
Laufzeit von einem Interpreter ausgeführt und erlaubt daher auch das Stoppen und Fortsetzen eines
Programmes, sowie eine manuelle Satzanwahl – Funktionen die mit einer compilierten Sprache nicht
vereinbar sind, für den Programmierer aber hohen Nutzwert haben.

8.1 Programm-Strukturen
Der Programmcode wird als normaler Text in einer sog. SRC-Datei angelegt, Variablen und Werte in einer
dazugehörigen DAT-Datei. Beides zusammen wird auch als Modul bezeichnet. Variablen in einer DAT-Datei
können persistent sein, ein Merkmal welches viele Vorteile hat.
Eine SRC-Datei hat zB folgende Form
DEF test()
BAS(#INITMOV,0)
PTP myHome
LOOP
IF (bStart) THEN
bStart = FALSE
PTP P_v2 C_PTP
LIN P_v1 C_DIS
LIN P_xx
GRIP_CLOSE()
LIN P_v1 C_DIS
; weitere Befehle...
ENDIF
ENDLOOP
END

Das Aufruf der Basis-Bibliothek BAS macht eine Grundinitialisierung mit Default-Parametern
(Geschwindigkeit, Beschleunigung etc), anschliessend erfolgt eine PTP-Bewegung auf die HOME-Position.
Das Ablauf-Programm wartet auf ein Startsignal (BOOL-Variable bStart) und führt dann eine Bewegung aus,
zB. der Roboter fährt in eine Maschine, greift ein Bauteil und legt dieses woanders wieder ab. Die DAT-
Datei könnte folgendes Aussehen haben
DEFDAT test
AXIS myHOME={a1 0,a2 90,a3 -90,a4 0,a5 90,a6 0}
BOOL bStart=FALSE
FRAME p_v2={x 500,y 100,z 1350,a 0,b 0,c 0}
FRAME p_v1={x 700,y 100,z 1150,a 0,b 0,c 0}
FRAME p_xx={x 700,y 100,z 1100,a 0,b 0,c 0}
; usw...
ENDDAT

8.2 Bewegungsbefehle
KRL unterscheidet folgende Bewegungsarten bzw –Befehle
§ PTP = Point-to-Point: direkte Bewegung aller Achsen zum Zielpunkt
§ LIN = lineare Bewegung zum Zielpunkt, die Bahn ist einer Gerade
§ PTP_REL, LIN_REL = relative Bewegung bzw Position
§ CIRC = Kreis/Kreisbogen, gegeben durch 3 Punkte: aktuelle Position, Hilfs- und Zielpunkt
§ Splines, als Spline-Block oder Einzelsatz
Alle Bewegungsbefehle beziehen sich immer auf die jeweils aktuelle Position als Start und bewirken eine
Bewegung hin zum Zielpunkt. Der Zielpunkt kann direkt als Argument angegeben werden – oder er ergibt

Seite 30 von 33
sich rechnerisch (REL- und Spline-Sätze). Bei CIRC und Splines erfolgt die Bewegung entlang einer Kurve die
sich aus Hilfspunkten oder Stützstellen ergibt.
Normalerweise berechnet die Bahnplanung kurz vor Ende der Bewegung eine Bremsrampe, so daß der
Roboter im Zielpunkt zu einem Stopp kommt (Genauhalt), erst dann wird die nächste Bewegung ausgeführt
usw.. Eine flüssige Bewegung über mehrere Raumpunkte hinweg kann erreicht werden, indem man die
Punkte überschleift, dh. kurz vor dem Erreichen eines Punktes berechnet die Steuerung wie es
anschliessend w eitergehen kann und leitet daraus eine Überschleifbewegung ab.
Zwei LIN-Bewegungen werden durch einen Kurve mit Radius r im kartesischen Raum überschliffen, PTP -
Überschleifen wird im Achsraum gerechnet, für das gemischte LIN-PTP Überschleifen gelten andere Regeln.
Das sichere Beherrschen von Überschleif-Bewegungen durch den Programmierer ist einigermaßen komplex
wird hier nicht weiter im Detail behandelt (siehe: Kuka Programmierhandbuch). Das Überschleifen wird zB.
durch den Zusatz C_PTP oder C_DIS (Continous...) als Argument eines Bewegungsbefehls veranlasst.
Allerdings gibt es hier eine Interaktion zwischen Ablaufprogramm und Bewegung: wenn zB. eine
Schaltaktion an einem Raumpunkt ausgeführt werden soll, dann verursacht dies ggf. einen Vorlaufstopp,
selbst dann wenn eigentlich ein C_PTP programmiert wurde. Es gibt eine Vielzahl von Situationen die einen
Vorlaufstopp verursachen und auch hier würde die Besprechung im Detail den Rahmen des Skriptes
sprengen.
Würde man das Thema Überschleifen und Vorlaufstopp nicht im Kontext von KRL, sondern aus Sicht einer
anderen Programmiersprache (zB Java, C/C++) sehen, würde man vermutlich von synchronen oder
asynchronen Bewegungen sprechen, je nachdem ob das Ablaufprogramm wartet bis ein Bewegungsbefehl
abgearbeitet wurde oder nicht. Andere Robotersteuerungen (zB Adept) sind hier weniger starr gekoppelt
und erlauben im Prinzip ein völlig wahlfreies Absetzen von Bewegungsbefehlen aus verschiedenen Tasks
heraus, wobei dann der Programmierer die Verantwortung für einen geregelten Ablauf hat.

8.3 Ablaufsteuerung
Wie jede andere höhere Programmiersprache kennt KRL Kommandos zur Ablaufsteuerung
§ LOOP .. ENDLOOP Endlossschleife (zB Hauptprogramm)
§ IF .. THEN .. ELSE .. ENDIF bedingte Verzweigung (ELSE ist optional)
§ REPEAT .. UNTIL
§ WHILE .. ENDWHILE

9 todo Themen zum Einsortieren

9.1 Automatisierung
Der Einsatz von Robotern in Automatisierungsanlagen erfordert auch immer eine Modellierung: die
Eigenschaften und Anforderungen der realen Welt müssen in geeigneter Weise als Methode, Prozeduren
oder in Software abgebildet werden können.
Beispiel: das Absetzen von Werkstücken auf eine Palette kann zunächst formal beschrieben werden, dann
gibt es eine Zeichnung die das verdeutlicht. Die Verwaltung der Zielpositionen in Software kann auf
verschiedene Arten erfolgen
§ Berechnung der X-Y-Z Koordinaten, auf Basis von Zählern und bekannten Abständen
§ Berechnung der X-Y-Z Koordinaten, mit drei verschachtelten Schleifen
§ individuelles Teachen aller Zielpositionen

Um ein Projekt charakterisieren zu können, sind verschiedene Merkmale notwendig

Seite 31 von 33
Losgröße
die Losgröße bezeichnet zB. die Anzahl von Werkstücken pro Charge, eine Charge ist dann immer als
typenrein anzusehen. Die Losgröße ist oft durch andere Faktoren einer Fertigungslinie bestimmt (zB
Maschinengrößen) aber auch durch nicht technische Faktoren, zB Auftragsplanung.
Beispiel: ein Hersteller von Joghurts kann in einer Reifephase maximal 300 Liter Milch zu Joghurt
verarbeiten, dh. ein Fertigungslos besteht dann aus 3000 Bechern zu 100 ml – diese werden sortenrein in
Zitrone, Erdbeer usw produziert.

Varianten / Typenvielfalt
In fast jeder Fertigung gibt es mehr oder weniger unterschiedliche Produkte – diese Anforderungen werden
oft durch 'Rezepte' umgesetzt, dh. Parameter die das Verhalten der Anlage bestimmen und steuern. Auch
hier ist ein ggf. individueller Blickwinkel erforderlich.
Für eine Abfüllmaschine spielt es daher eine Rolle, ob Fruchtjoghurt oder Müsli portioniert wird – für den
Palettierroboter ist der Inhalt der Becher egal. Wenn aber derselbe Joghurt auf verschiedene Arten in
Karton-Blister palettiert wird, dann sind das verschiedene Produkte für den Roboter.

In der Praxis trifft man häufig auf folgende Situationen


§ wenig Varianten, hohe Losgrößen (zB Automobilbau)
§ kleine Losgrößen, sehr viele Varianten (zB Lohnfertiger)
§ mittlere Anzahl Varianten und Losgröße

Zykluszeiten
Vom Endkunden werden fast immer verbindliche Zykluszeiten gefordert, damit ist die Anzahl Produkte pro
Zeit gemeint, bzw der Durchsatz. Beispiele: 1000 Autos pro Tag, 40 Joghurts pro Minute etc. Wenn eine
Maschine 600 Artikel pro Stunde verpacken soll, dann sind das 6 Sekunden Zykluszeit – vermeintlich.
Angenommen es passen 50 Artikel in einen Karton, dann muß pro Stunde auch 12 Mal ein Karton
bereitgestellt und abtransportiert werden.

Anforderungsniveau der Automatisierung


Wir unterscheiden hier und für das folgende grob 3 Niveaus.
§ einfache Automatisierung: keine bis wenig Typenvielfalt, kaum unterschiedliche Prozessparameter,
moderate Zeitanforderungen, überwiegend fest geteachte Positionen. Beispiel: Handlings-Roboter in
einem Labor der Probenbecher verschiedenen Analysegeräten zuführt
§ mittlere Automatisierung: moderate Vielfalt, einfache Rezeptverwaltung, wenige Parameter, einfache
Berechnungen. Beispiel: Palettierroboter die 20-30 verschiedene Packmuster beherrschen
§ hohes Automatisierungsniveau: komplexe Prozesse und Technologien, Regelmechanismen (zB.
Feedback durch Sensoren oder Vision-Systeme), parametrische Bewegungen. Beispiel: Griff in die Kiste,
Bahnfahrten auf Basis von CAD/Offline-Daten

Seite 32 von 33
10 Literaturempfehlungen und Querverweise

[Crai05] John J. Craig, Pearson Education, 2005


Introduction to Robotics - Mechanics & Control
[Wiki18] de.wikipedia.org – diverse Begriffsdefinitionen
[Cork11] Peter Corke, Springer, 2011
Robotics, Vision & Control
[Kuka19] diverse Handbücher, Dokumentationen und Spezifikationen
KUKA Roboter Gmbh : www.kuka-roboter.de
Download möglich via Webseite (Service...)
[RoPr20] Zeitschrift: Robotik und Produktion, Ausgabe 4/2020

Schnipsel
Nov 2017 : https://www.studis-online.de/Fragen-Brett/read.php?8,2339372
"Es lohnt sich definitiv nicht mit dem Ziel Robotik irgendein Studium anzufangen, da es keinen großen
Arbeitsmarkt für Robotik-Entwickler gibt"

Seite 33 von 33