Vous êtes sur la page 1sur 83

Software Option KUKA Laboratories GmbH

KUKA Sunrise.Connectivity 1.3

Für KUKA Sunrise.Workbench 1.3


Für KUKA Sunrise.OS 1.3

Stand: 19.08.2014

Version: KUKA Sunrise.Connectivity 1.3 V1


KUKA Sunrise.Connectivity 1.3

© Copyright 2014
KUKA Laboratories GmbH
Zugspitzstraße 140
D-86165 Augsburg
Deutschland

Diese Dokumentation darf – auch auszugsweise – nur mit ausdrücklicher Genehmigung der KUKA
Laboratories GmbH vervielfältigt oder Dritten zugänglich gemacht werden.
Es können weitere, in dieser Dokumentation nicht beschriebene Funktionen in der Steuerung lauffä-
hig sein. Es besteht jedoch kein Anspruch auf diese Funktionen bei Neulieferung bzw. im Servicefall.
Wir haben den Inhalt der Druckschrift auf Übereinstimmung mit der beschriebenen Hard- und Soft-
ware geprüft. Dennoch können Abweichungen nicht ausgeschlossen werden, so dass wir für die voll-
ständige Übereinstimmung keine Gewähr übernehmen. Die Angaben in dieser Druckschrift werden
jedoch regelmäßig überprüft und notwendige Korrekturen sind in der nachfolgenden Auflage enthal-
ten.
Technische Änderungen ohne Beeinflussung der Funktion vorbehalten.
Original-Dokumentation
KIM-PS5-DOC

Publikation: Pub KUKA Sunrise.Connectivity 1.3 de


Buchstruktur: KUKA Sunrise.Connectivity 1.3 V1.1
Version: KUKA Sunrise.Connectivity 1.3 V1

2 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


Inhaltsverzeichnis

Inhaltsverzeichnis
1 Einleitung ..................................................................................................... 7
1.1 Dokumentation des Industrieroboters ........................................................................ 7
1.2 Darstellung von Hinweisen ........................................................................................ 7
1.3 Verwendete Begriffe .................................................................................................. 8
1.4 Marken ....................................................................................................................... 8

2 Zweckbestimmung ...................................................................................... 9
2.1 Zielgruppe .................................................................................................................. 9
2.2 Bestimmungsgemäße Verwendung ........................................................................... 9

3 Produktbeschreibung ................................................................................. 11
3.1 Übersicht KUKA Sunrise.Connectivity ....................................................................... 11
3.1.1 Vergleich Bewegungseigenschaften (PTP, SmartServo, DirectServo) ................ 11
3.1.2 DirectServo und SmartServo in der RoboticsAPI ................................................. 12
3.2 KUKA Sunrise.Connectivity Rendering (Option) ........................................................ 13

4 Sicherheit ..................................................................................................... 15
5 Installation .................................................................................................... 17
5.1 Systemvoraussetzungen ............................................................................................ 17
5.2 SmartServo Befehlsbibliothek installieren .................................................................. 17
5.3 SmartServo Katalog mit Beispielapplikationen installieren ........................................ 17
5.4 DirectServo Befehlsbibliothek installieren .................................................................. 17
5.5 DirectServo Katalog mit Beispielapplikationen installieren ........................................ 18
5.6 Schnittstelle Rendering installieren ............................................................................ 18
5.6.1 V-REP PRO in Schnittstelle Rendering integrieren .............................................. 19

6 Bedienung Rendering Schnittstelle ........................................................... 21


6.1 Sicht "Rendering VREP" ............................................................................................ 21
6.2 Schnittstelle Rendering für V-REP PRO konfigurieren .............................................. 22
6.3 Live-Ansicht starten ................................................................................................... 23
6.4 Frames synchronisieren ............................................................................................. 23

7 Programmierung .......................................................................................... 25
7.1 Servo-Bewegung im Applikationskontext ................................................................... 25
7.2 Einfache Zielvorgabe mit setDestination(…) .............................................................. 26
7.3 Zyklische Zielvorgabe mit setDestination(…) ............................................................. 26
7.4 Sekundenzeigereffekt ................................................................................................ 27
7.5 Klasse IServoRuntime ............................................................................................... 28
7.5.1 Umgang mit dem Echtzeitsystem ......................................................................... 28
7.5.1.1 Zeitstempel abfragen ....................................................................................... 28
7.5.1.2 Zustand des Feininterpolators abfragen .......................................................... 29
7.5.1.3 Debug-Informationen auslesen und ausgeben ................................................ 29
7.5.2 Achsspezifisches Interface ................................................................................... 30
7.5.2.1 Achsspezifische Zielposition vorgeben ............................................................ 30
7.5.2.2 Achsspezifische Zielposition mit Zielgeschwindigkeit vorgeben ...................... 30
7.5.2.3 Achsspezifische Istposition auslesen .............................................................. 30
7.5.3 Kartesisches Interface .......................................................................................... 31
7.5.3.1 Kartesisches Ziel im Roboterfuß-Koordinatensystem vorgeben ...................... 31

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 3 / 83


KUKA Sunrise.Connectivity 1.3

7.5.3.2 Kartesisches Ziel im Referenz-Koordinatensystem vorgeben ......................... 31


7.5.3.3 Kartesische Istposition im Roboterfuß-Koordinatensystem auslesen ............. 32
7.5.3.4 Kartesische Istposition im Referenz-Koordinatensystem auslesen ................. 33
7.5.4 Servo-Bewegung beenden ................................................................................... 33
7.6 Zielerreichung und Timeouts ..................................................................................... 34
7.7 Empfang des GoalReached Events (nur SmartServo) .............................................. 34
7.8 Bahnparameter ändern .............................................................................................. 35
7.9 Zeiterfassung ............................................................................................................. 36
7.9.1 Applikations-Zykluszeit messen ........................................................................... 36
7.10 Impedanzregelung ..................................................................................................... 37
7.10.1 Lastmodell für Impedanzregelung validieren ........................................................ 37
7.10.2 Impedanzregelung aktivieren ............................................................................... 38
7.10.3 Regler-Parameter zur Laufzeit ändern ................................................................. 38
7.10.4 Übergang zwischen Regelungsarten .................................................................... 40
7.11 Rückkopplungseffekt bei Servo-Bewegungen ........................................................... 40
7.12 Sprungantwort der Systeme ...................................................................................... 43
7.12.1 SmartServo vs. DirectServo - Vergleich der Achspositionen im Zeitverlauf ......... 43
7.12.1.1 Vergleich Sprungantwort SmartServo vs. DirectServo A1 .............................. 44
7.12.1.2 Vergleich Sprungantwort SmartServo vs. DirectServo A2 .............................. 45
7.12.1.3 Vergleich Sprungantwort SmartServo vs. DirectServo A3 .............................. 46
7.12.1.4 Vergleich Sprungantwort SmartServo vs. DirectServo A4 .............................. 47
7.12.1.5 Vergleich Sprungantwort SmartServo vs. DirectServo A5 .............................. 48
7.12.1.6 Vergleich Sprungantwort SmartServo vs. DirectServo A6 .............................. 49
7.12.1.7 Vergleich Sprungantwort SmartServo vs. DirectServo A7 .............................. 50
7.12.2 SmartServo vs. DirectServo - Vergleich mit Geschwindigkeit, Beschleunigung, Ruck 50
7.12.2.1 Vergleich Sprungantwort SmartServo vs. DirectServo A1 (erweitert) ............. 52
7.12.2.2 Vergleich Sprungantwort SmartServo vs. DirectServo A2 (erweitert) ............. 53
7.12.2.3 Vergleich Sprungantwort SmartServo vs. DirectServo A3 (erweitert) ............. 54
7.12.2.4 Vergleich Sprungantwort SmartServo vs. DirectServo A4, erweitert .............. 55
7.12.2.5 Vergleich Sprungantwort SmartServo vs. DirectServo A5 (erweitert) ............. 56
7.12.2.6 Vergleich Sprungantwort SmartServo vs. DirectServo A6 (erweitert) ............. 57
7.12.2.7 Vergleich Sprungantwort SmartServo vs. DirectServo A7 (erweitert) ............. 58

8 Beispielapplikationen .................................................................................. 59
8.1 Katalog "Simple Tutorials for SmartServo" ................................................................ 59
8.1.1 Applikation SmartServoSampleSimpleJointMotion .............................................. 59
8.1.2 Applikation SmartServoSampleSimpleCartesian ................................................. 59
8.1.3 Applikation SmartServoSampleInteractionControl ............................................... 59
8.2 Katalog "Simple Tutorials for DirectServo" ................................................................ 60
8.2.1 Applikation DirectServoSampleSimpleJointMotion ............................................... 60
8.2.2 Applikation DirectServoSampleSimpleCartesian .................................................. 60
8.2.3 Applikation DirectServoSampleInteractionControl ................................................ 60

9 Befehlsreferenz ............................................................................................ 61
9.1 Befehlsreferenz SmartServo ..................................................................................... 61
9.1.1 Bewegungsparameter .......................................................................................... 61
9.1.2 Laufzeit-Parameter ............................................................................................... 62
9.1.3 Zielposition setzen ................................................................................................ 63
9.2 Befehlsreferenz DirectServo ...................................................................................... 63
9.2.1 Bewegungsparameter .......................................................................................... 63

4 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


Inhaltsverzeichnis

9.2.2 Laufzeit-Parameter ............................................................................................... 64


9.2.3 Zielposition setzen ................................................................................................ 64

10 Ausnahmebehandlung ................................................................................ 65
10.1 Beispiel für Ausnahmebehandlung ............................................................................ 65
10.2 Übersicht Exceptions – Laufzeitfehler-Meldungen ..................................................... 65
10.3 Fehlerursachen CommandInvalidException .............................................................. 66

11 Fehlerbehebung ........................................................................................... 69
11.1 TCP/IP-Verkehr von Windows zu langsam ................................................................ 69
11.2 Roboter fährt ruckartig/pfeift - Sekundenzeigereffekt vermeiden ............................... 70
11.3 Impedanzregelung nicht aktivierbar ........................................................................... 71
11.4 Rückkopplungseffekt .................................................................................................. 71

12 KUKA Service .............................................................................................. 73


12.1 Support-Anfrage ......................................................................................................... 73
12.2 KUKA Customer Support ........................................................................................... 73

Index ............................................................................................................. 81

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 5 / 83


KUKA Sunrise.Connectivity 1.3

6 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


1 Einleitung

1 Einleitung

1.1 Dokumentation des Industrieroboters

Die Dokumentation zum Industrieroboter besteht aus folgenden Teilen:


 Dokumentation für die Robotermechanik
 Dokumentation für die Robotersteuerung
 Bedien- und Programmieranleitung für die System-Software
 Anleitungen zu Optionen und Zubehör
 Teilekatalog auf Datenträger
Jede Anleitung ist ein eigenes Dokument.

1.2 Darstellung von Hinweisen

Sicherheit Diese Hinweise dienen der Sicherheit und müssen beachtet werden.

Diese Hinweise bedeuten, dass Tod oder schwere Ver-


letzungen sicher oder sehr wahrscheinlich eintreten
werden, wenn keine Vorsichtsmaßnahmen getroffen werden.

Diese Hinweise bedeuten, dass Tod oder schwere Ver-


letzungen eintreten können, wenn keine Vorsichtsmaß-
nahmen getroffen werden.

Diese Hinweise bedeuten, dass leichte Verletzungen


eintreten können, wenn keine Vorsichtsmaßnahmen
getroffen werden.

Diese Hinweise bedeuten, dass Sachschäden eintreten


können, wenn keine Vorsichtsmaßnahmen getroffen
werden.

Diese Hinweise enthalten Verweise auf sicherheitsrelevante Informa-


tionen oder allgemeine Sicherheitsmaßnahmen.
Diese Hinweise beziehen sich nicht auf einzelne Gefahren oder ein-
zelne Vorsichtsmaßnahmen.

Dieser Hinweis macht auf Vorgehensweisen aufmerksam, die der Vorbeu-


gung oder Behebung von Not- oder Störfällen dienen:

Mit diesem Hinweis gekennzeichnete Vorgehensweisen


müssen genau eingehalten werden.

Hinweise Diese Hinweise dienen der Arbeitserleichterung oder enthalten Verweise auf
weiterführende Informationen.

Hinweis zur Arbeitserleichterung oder Verweis auf weiterführende In-


formationen.

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 7 / 83


KUKA Sunrise.Connectivity 1.3

1.3 Verwendete Begriffe

Begriff Beschreibung
API Application Programming Interface
Schnittstelle zur Programmierung von Applikationen
Exception Ausnahme oder Ausnahmesituation (engl. exception)
Eine Ausnahme bezeichnet ein Verfahren, um Informationen über
bestimmte Programmzustände, meist Fehlerzustände, an andere Pro-
grammebenen zur Weiterbehandlung weiterzugeben.
KUKA Sunrise Steuerungshardware zum Betrieb des Industrieroboters LBR iiwa
Cabinet
KUKA Sunrise.OS KUKA Sunrise.Operating System
System Software für Industrieroboter, die mit der Robotersteuerung KUKA
Sunrise Cabinet betrieben werden
KUKA Sunrise. Entwicklungsumgebung für die Inbetriebnahme einer Roboterzelle (Sta-
Workbench tion) und für die Entwicklung von Roboter-Applikationen
KUKA LBR iiwa KUKA Leichtbauroboter intelligent industrial work assistent
MRK Mensch-Roboter Kooperation
Systemreaktions- Zeit zwischen Kommandovorgabe und effektiver Roboterbewegung
zeit
V-REP PRO Virtual Robot Experimentation Platform
Simulations-Software, um das Verhalten von Robotern in einer virtuellen
Umgebung zu testen

1.4 Marken

V-REP PRO ist eine Marke von COPPELIA ROBOTICS MARC FREESE.

8 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


2 Zweckbestimmung

2 Zweckbestimmung

2.1 Zielgruppe

Diese Dokumentation richtet sich an Benutzer mit folgenden Kenntnissen:


 Fortgeschrittene Systemkenntnisse in der Robotik
 Fortgeschrittene Java-Programmierkenntnisse
 Fortgeschrittene Programmierkenntnisse (KUKA RoboticsAPI)
 Fortgeschrittene Kenntnisse über Regelungstechnik und Stabilitätseigen-
schaften

Für den optimalen Einsatz unserer Produkte empfehlen wir unseren


Kunden eine Schulung im KUKA College. Informationen zum Schu-
lungsprogramm sind unter www.kuka.com oder direkt bei den Nieder-
lassungen zu finden.

2.2 Bestimmungsgemäße Verwendung

Verwendung KUKA Sunrise.Connectivity ist ausschließlich für den Einsatz im Labor be-
stimmt und nicht für die direkte Interaktion mit Menschen (MRK) freigegeben.
KUKA Sunrise.Connectivity darf ausschließlich unter den dafür spezifizierten
Systemvoraussetzungen verwendet werden, um neue Anwendungsfelder,
Applikationen und Algorithmen für den LBR iiwa zu untersuchen.
Zur bestimmungsgemäßen Verwendung gehört auch die ständige Beachtung
folgender Dokumente:
 Montage- und Betriebsanleitung des Industrieroboters
 Montage- und Betriebsanleitung der Robotersteuerung
 Bedien- und Programmieranleitung für die System Software

Fehlanwendung Alle von der bestimmungsgemäßen Verwendung abweichenden Anwendun-


gen gelten als Fehlanwendung und sind unzulässig. Für Schäden, die aus ei-
ner Fehlanwendung resultieren, haftet die KUKA Laboratories GmbH nicht.
Das Risiko trägt allein der Betreiber.
Zu den Fehlanwendungen zählen z. B.:
 Verwendung von KUKA Sunrise.Connectivity unter anderen als den spe-
zifizierten Systemvoraussetzungen
 Einsatz im industriellen Bereich
 Einsatz in medizinischen Anwendungen
 Menschen in den Arbeitsbereich des Roboters lassen

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 9 / 83


KUKA Sunrise.Connectivity 1.3

10 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


3 Produktbeschreibung

3 Produktbeschreibung

3.1 Übersicht KUKA Sunrise.Connectivity

KUKA Sunrise.Connectivity ist eine Software-Option zur Realisierung von wei-


chen Echtzeit-Applikationen und stellt hierfür folgende Schnittstellen zur Ver-
fügung:

Schnittstellen  KUKA Sunrise.Connectivity SmartServo


 KUKA Sunrise.Connectivity DirectServo
 KUKA Sunrise.Connectivity Rendering (Option)

SmartServo, Die Schnittstellen SmartServo und DirectServo werden durch gleichnamige


DirectServo Bewegungsklassen realisiert, die jeweils eine eigene PTP-Bewegungsart zur
Verfügung stellen.
Die Bewegungsklassen SmartServo und DirectServo werden über den Sunri-
se-Katalog nachinstalliert. Dabei wird die RoboticsAPI um die jeweils zugehö-
rigen Klassenbibliotheken ergänzt.
Mithilfe der Bewegungsarten SmartServo und DirectServo können neue Ziel-
punkte zur Laufzeit einer Bewegung gesetzt werden.
SmartServo und DirectServo, kurz Servo-Bewegungen, werden als asynchro-
ne Bewegung ausgeführt. Wird während des Anfahrens eines Zielpunktes ein
neuer Zielpunkt gesetzt, wird der vorherige Zielpunkt verworfen und direkt der
zuletzt kommandierte angefahren.
 Die Bewegungsart SmartServo ermöglicht ruckbegrenzte Bahnen mit
schneller Zielvorgabe.
 Die Bewegungsart DirectServo ermöglicht geschwindigkeitsbegrenzte
Bahnen unter ständiger Aktualisierung der Zielvorgabe. Damit können ei-
gene Planungs- und Interpolationsalgorithmen realisiert werden.

Bei Verwendung der Bewegungsart DirectServo dürfen die Zielvorga-


ben maximal 5° von der aktuellen Istposition entfernt liegen.

Rendering (>>> 3.2 "KUKA Sunrise.Connectivity Rendering (Option)" Seite 13)

3.1.1 Vergleich Bewegungseigenschaften (PTP, SmartServo, DirectServo)

Aufgrund der Eigenschaften der Bewegungsart Direct-


Servo (digitales Filter, keine Ruckbegrenzung) können
hochfrequente Zielvorgaben realisiert werden. Daraus können auch hochfre-
quente Schwingungen am Roboter resultieren (Pfeifen, Brummen), die zu
Schäden am Roboter führen können. KUKA haftet nicht für hieraus resultie-
rende Schäden.

Stellt sich in der Verwendung die Frage zwischen der Bewegungsart


SmartServo oder DirectServo, wird SmartServo empfohlen.

PTP SmartServo DirectServo


Anwendungsgebiete Bahnverfahren, kolli- Visual Servoing, Haptik
sionsfreie Bahnpla- kamerabasierte Kolli-
nung sionsvermeidung
Zielvorgabe-Intervall lang (>100 ms) mittel (>20 ms) sehr kurz (2 …19 ms)
(empfohlen)

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 11 / 83


KUKA Sunrise.Connectivity 1.3

PTP SmartServo DirectServo


Anzahl Stützpunkte gering hoch sehr hoch
Zielvorgabe beliebiger Punkt im beliebiger Punkt im maximal ±5° von
Arbeitsraum Arbeitsraum achsspezifischer Ist-
position des Robo-
ters entfernt
Bahneigenschaften  ruckbegrenzt  ruckbegrenzt  nicht ruckbe-
 überschleiffähig  nicht überschleif- grenzt
fähig  nicht überschleif-
fähig
Bahnverlauf Immer gleich, unab- Abhängig von Override, aktueller Geschwin-
hängig von Override, digkeit und aktueller Beschleunigung.
aktueller Geschwin-
digkeit oder aktueller
Beschleunigung.
Verhalten bei Zielvor- Jeder Punkt wird Aktueller Zielpunkt wird bei neuer Zielvorgabe
gabe während des angefahren. verworfen.
Anfahrens eines Ziel-
punktes
Einstellbare Bahnpa-  Geschwindigkeit  Geschwindigkeit  Geschwindigkeit
rameter  Beschleunigung  Beschleunigung
 Ruck
Planung  Polynom  Polynom 3. Ord-  digitales Filter
nung  Planung in Appli-
kation
Systemreaktionszeit ~22 ms ~12 ms

3.1.2 DirectServo und SmartServo in der RoboticsAPI

SmartServo und DirectServo sind Bewegungsklassen, mit denen die Roboter-


Applikation Bewegungen startet. Diese stellen wiederum spezielle Laufzeit-
Klassen bereit, mit denen Zielvorgaben während einer Bewegung verändert
werden können.

Abb. 3-1: DirectServo und SmartServo in der RoboticsAPI

Die Schnittstelle IServoRuntime stellt die von beiden Bewegungsklassen ge-


nutzten Methoden bereit und speichert deren Eigenschaften und Werte wie
Zielvorgabe, Positionserfassung, Zeitstempelverwaltung etc.
Die Bewegungsklassen besitzen jeweils eine eigene Schnittstelle:

12 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


3 Produktbeschreibung

 Schnittstelle ISmartServoRuntime ist Teil der Bewegungsklasse Smart-


Servo
 Schnittstelle IDirectServoRuntime ist Teil der Bewegungsklasse Direct-
Servo
Diese Schnittstellen enthalten die zu den Bewegungsklassen jeweils spezifi-
schen Eigenschaften der Feininterpolatoren.

3.2 KUKA Sunrise.Connectivity Rendering (Option)

Übersicht Die Schnittstelle Rendering ermöglicht es, 3D-Visualisierungswerkzeuge mit


der Robotersteuerung KUKA Sunrise Cabinet zu verbinden.
Die Schnittstelle wurde mithilfe der Simulations-Software V-REP PRO exem-
plarisch realisiert und wird inklusive Java-Sourcen ausgeliefert.

V-REP PRO kann unter http://www.coppeliarobotics.com/ bezogen


werden. Die Lizenzbedingungen, die die kommerzielle Nutzung der
Simulations-Software regeln, sind zu beachten.

In dieser Dokumentation wird V-REP PRO nur so weit dokumentiert,


wie es zum Verständnis der Schnittstelle notwendig ist. Weitere Infor-
mationen sind in der Bedienanleitung der Simulations-Software zu
finden.

Abb. 3-2: Szene mit LBR iiwa in V-REP PRO (Beispiel)

Funktionalitäten Die Schnittstelle Rendering stellt folgende Funktionalitäten zur Verfügung:


 Verbindung zwischen V-REP PRO und Sunrise-Projekt auf der Roboter-
steuerung
 Konfigurieren und Starten der Visualisierung in V-REP PRO
 Aktivieren einer Live-Ansicht
 Synchronisieren und Visualisieren des Frame-Baums in V-REP PRO

Live-Ansicht Die Laufzeitdaten der Robotersteuerung werden über die Rendering-Schnitt-


stelle in Sunrise.Workbench zur Verfügung gestellt und in V-REP PRO darge-
stellt.

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 13 / 83


KUKA Sunrise.Connectivity 1.3

14 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


4 Sicherheit

4 Sicherheit
Diese Dokumentation enthält Sicherheitshinweise, die sich spezifisch auf das
hier beschriebene Produkt beziehen. Die grundlegenden Sicherheitsinforma-
tionen zum Industrieroboter sind im Kapitel "Sicherheit" folgender Dokumente
zu finden:
 Betriebs- oder Montageanleitung für den Roboter
 Bedien- und Programmieranleitung für die System Software

Das Kapitel "Sicherheit" in der Betriebsanleitung oder Montageanlei-


tung und in der Bedien- und Programmieranleitung muss beachtet
werden. Tod von Personen, schwere Verletzungen oder erhebliche
Sachschäden können sonst die Folge sein.

Der Betreiber hat zum Einsatz des Roboters unter Laborbedingungen


eine eigene Gefahren- und Risikoanalyse zu erstellen. Dies gilt ins-
besondere dann, wenn Menschen in den Arbeitsraum des Roboters
eindringen müssen. Es wird eine gesonderte Aufsichtsperson mit geeigneter
NOT-HALT-Einrichtung empfohlen. Im Rahmen der Risikoanalyse ist beson-
ders auf Verletzungen durch Quetschung, Kollision und scharfe Gegenstän-
de zu achten.

Die Schnittstellen SmartServo und DirectServo ermöglichen die Im-


plementierung von geschlossenen Regelkreisen im Applikationskon-
text. Für deren Stabilität hat der Anwender Sorge zu tragen. Instabile
Regelkreise können dazu führen, dass sich das Gesamtsystem aufschwingt
und der Roboter sich nicht wie erwartet bewegt, obwohl der Roboter seiner
Zielvorgabe korrekt folgt.

Die Bewegungsarten SmartServo und DirectServo ermöglichen On-


line-Zielvorgaben aus der Applikation heraus. Durch das Ändern der
Bahnparameter, des Overrides oder das Schalten in den T1-Modus
ändert sich die Roboterbahn, der tatsächliche Bahnverlauf ist nicht vorher-
sehbar.
Applikationen mit Online-Zielvorgaben sind immer zuerst in der Betriebsart
Manuell Reduzierte Geschwindigkeit (T1) sorgfältig zu testen.

Wenn Servo-Bewegungen in der Betriebsart T1 ausgeführt werden,


wird ausschließlich die Geschwindigkeit des Roboterflansches auf
250 mm/s überwacht.

In den Bewegungsarten SmartServo und DirectServo


wird die Bahnplanung von der Applikation übernommen.
Aufgrund deren schnellen Zielvorgabe-Änderungen unterscheidet sich das
tatsächliche Systemverhalten von dem, durch den Hersteller spezifizierten
Verhalten. Die in der Betriebs- und Montageanleitung des LBR iiwa spezifi-
zierten Anhaltewege und -zeiten sind nicht gültig. Der Anwender hat die ap-
plikationsspezifischen Anhaltewege und -zeiten selbst zu bestimmen.

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 15 / 83


KUKA Sunrise.Connectivity 1.3

16 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


5 Installation

5 Installation

5.1 Systemvoraussetzungen

Hardware  KUKA LBR iiwa


 KUKA Sunrise Cabinet

Software  KUKA Sunrise.Workbench 1.3


 KUKA Sunrise.OS 1.3

5.2 SmartServo Befehlsbibliothek installieren

Vorgehensweise 1. Die Stationskonfiguration des Sunrise-Projekts öffnen.


2. Die Registerkarte Software wählen.
3. Das Software-Paket Smart Servo Motion Extension für die Installation
auswählen.
 In der Checkbox Installieren das Häkchen setzen.
4. Stationskonfiguration speichern. Es wird eine Sicherheitsabfrage ange-
zeigt.
5. Auf Speichern und übernehmen klicken. Das Katalogprojekt wird ge-
speichert.
Die Befehlsbibliothek der Bewegungsklasse SmartServo wird in das Sun-
rise-Projekt eingefügt und steht für die Roboterprogrammierung zur Verfü-
gung.
6. System Software auf der Robotersteuerung installieren (immer erforder-
lich, wenn die Stationskonfiguration geändert wurde).

5.3 SmartServo Katalog mit Beispielapplikationen installieren

Vorgehensweise 1. Die Stationskonfiguration des Sunrise-Projekts öffnen.


2. Die Registerkarte Software wählen.
3. Den Katalog Simple Tutorials for SmartServo für die Installation aus-
wählen.
 In der Checkbox Installieren das Häkchen setzen.
4. Stationskonfiguration speichern. Es wird eine Sicherheitsabfrage ange-
zeigt.
5. Auf Speichern und übernehmen klicken. Das Katalogprojekt wird ge-
speichert.
Das Paket com.kuka.roboticsAPI.smartServo.samples wird erzeugt
und im Ordner Samples des Sunrise-Projekts eingefügt.

5.4 DirectServo Befehlsbibliothek installieren

Vorgehensweise 1. Die Stationskonfiguration des Sunrise-Projekts öffnen.


2. Die Registerkarte Software wählen.
3. Das Software-Paket Direct Servo Motion Extension für die Installation
auswählen.
 In der Checkbox Installieren das Häkchen setzen.
4. Stationskonfiguration speichern. Es wird eine Sicherheitsabfrage ange-
zeigt.
5. Auf Speichern und übernehmen klicken. Das Katalogprojekt wird ge-
speichert.

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 17 / 83


KUKA Sunrise.Connectivity 1.3

Die Befehlsbibliothek der Bewegungsklasse DirectServo wird in das Sun-


rise-Projekt eingefügt und steht für die Roboterprogrammierung zur Verfü-
gung.
6. System Software auf der Robotersteuerung installieren (immer erforder-
lich, wenn die Stationskonfiguration geändert wurde).

5.5 DirectServo Katalog mit Beispielapplikationen installieren

Vorgehensweise 1. Die Stationskonfiguration des Sunrise-Projekts öffnen.


2. Die Registerkarte Software wählen.
3. Den Katalog Simple Tutorials for DirectServo für die Installation aus-
wählen.
 In der Checkbox Installieren das Häkchen setzen.
4. Stationskonfiguration speichern. Es wird eine Sicherheitsabfrage ange-
zeigt.
5. Auf Speichern und übernehmen klicken. Das Katalogprojekt wird ge-
speichert.
Das Paket com.kuka.roboticsAPI.directServo.samples wird erzeugt
und im Ordner Samples des Sunrise-Projekts eingefügt.

5.6 Schnittstelle Rendering installieren

Voraussetzung  Das ZIP-Archiv com.kuka.rendring.repository-release ist verfügbar.

Vorgehensweise 1. Menüfolge Hilfe > Neue Software installieren... wählen. Das Fenster In-
stallieren öffnet sich.
2. Auf den Button Hinzufügen … klicken. Das Fenster Add Repository öff-
net sich.
3. Auf den Button Archiv... klicken. Das Fenster Repository archive öffnet
sich.
4. Zum Verzeichnis navigieren in dem das ZIP-Archiv com.kuka.ren-
dring.repository-release abgelegt ist.
5. ZIP-Archiv markieren und auf Öffnen klicken. Der Pfad zum Archiv wird in
das Fenster Add Repository übernommen.
6. Den Pfad mit OK bestätigen. Im Fenster Installieren wird der Eintrag
KUKA Rendering Features angezeigt.

7. Den Eintrag KUKA Rendering Features auswählen (Häkchen in Check-


box setzen) und auf Weiter > klicken.
8. Die für die Installation ausgewählte Komponente wird angezeigt. Mit Wei-
ter > bestätigen.
9. Die Bedingungen der Lizenzvereinbarung akzeptieren und auf Fertigstel-
len klicken. Die Installation wird gestartet.
10. Wenn eine Sicherheitswarnung angezeigt wird, diese mit OK bestätigen.
11. Um die Installation abzuschließen, muss Sunrise.Workbench neu gestar-
tet werden. Dies wird in einer Hinweismeldung angezeigt. Auf den Button
Jetzt neu starten klicken.

18 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


5 Installation

12. Sunrise.Workbench wird neu gestartet und das Fenster Startprogramm


für Arbeitsbereich öffnet sich. Arbeitsbereich mit OK bestätigen.
13. Bei erfolgreicher Installation steht in Sunrise.Workbench die Sicht Rende-
ring VREP neu zur Verfügung.
Menüfolge Fenster > Sicht anzeigen > Andere… wählen und den Ordner
Sunrise öffnen. Wird der Eintrag Rendering VREP angezeigt, war die In-
stallation erfolgreich.

5.6.1 V-REP PRO in Schnittstelle Rendering integrieren

Beschreibung Um die Simulations-Software V-REP PRO in die Schnittstelle Rendering zu in-


tegrieren, müssen folgende Dateien manuell in das Installationsverzeichnis
von V-REP PRO kopiert werden.
(Standard-Installationsverzeichnis der Version V-REP PRO V3.x unter Win-
dows 7 64 Bit: C:\Program Files (x86)\V-REP3\V-REP_PRO)
 Datei KUKA LBR iiwa 7 R800.ttm oder KUKA LBR iiwa 14 R800.ttm
(LBR iiwa Modelle) in das Unterverzeichnis …\V-REP_PRO\models\ro-
bots\non-mobile
 Datei KUKALBRiiwaDemo.ttt (Szene) in das Unterverzeichnis …\V-
REP_PRO\scenes
 Datei remoteApiConnections.txt (Kommunikationskonfiguration) in das
Hauptverzeichnis …\V-REP_PRO
 Datei vrepAddOnScript_RenderingConnectorScript.lua (Add-On
Skript) in das Hauptverzeichnis …\V-REP_PRO
KUKA stellt die erforderlichen Dateien in einem Katalog zur Verfügung, der in
Sunrise.Workbench installiert werden kann. Die von KUKA vorbereitete Szene
KUKALBRiiwaDemo kann zu Testzwecken genutzt werden.

Vorgehensweise 1. Die Stationskonfiguration des Sunrise-Projekts öffnen.


2. Die Registerkarte Software wählen.
3. Den Katalog Tools and Models for Rendering.VREP für die Installation
auswählen.
 In der Checkbox Installieren das Häkchen setzen.
4. Stationskonfiguration speichern. Es wird eine Sicherheitsabfrage ange-
zeigt.
5. Auf Speichern und übernehmen klicken. Das Katalogprojekt wird ge-
speichert.
Der Ordner Rendering.VREP wird im Sunrise-Projekt erstellt. Der Ordner
enthält die für die Verwendung von V-REP PRO benötigten Dateien.

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 19 / 83


KUKA Sunrise.Connectivity 1.3

20 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


6 Bedienung Rendering Schnittstelle

6 Bedienung Rendering Schnittstelle

6.1 Sicht "Rendering VREP"

Vorgehensweise Sicht Rendering VREP in Sunrise.Workbench öffnen:


1. Menüfolge Fenster > Sicht anzeigen > Andere… wählen und den Ordner
Sunrise öffnen.
2. Den Eintrag Rendering VREP auswählen und mit OK bestätigen.

Übersicht

Abb. 6-1: Sicht Rendering VREP (ohne Verbindung und Projekt-Bezug)

Folgende Buttons stehen zur Verfügung:

Symbol Name / Beschreibung


Synchronisation der Konfiguration
Aktualisiert die Konfiguration der Schnittstelle und aktiviert die
Konfiguration.
Erforderlich nach folgenden Ereignissen:
 In Sunrise.Workbench wurde die Stationskonfiguration ge-
ändert.
 In V-REP PRO wurden Roboter neu konfiguriert oder die
Roboter-Konfiguration geändert.
 Verbindung zum realen Roboter wurde unterbrochen.
Stop LiveView
Beendet die Live-Ansicht in V-REP PRO.
Szene Auswahl
Öffnet das Fenster Szene Auswahl. Eine in V-REP PRO pro-
jektierte Szene kann ausgewählt werden.
Projektauswahl
Öffnet das Fenster Projektauswahl. Ein Sunrise-Projekt
kann ausgewählt werden.

Folgende Schaltflächen stehen zur Verfügung:

Schaltfläche Beschreibung
Szene laden Lädt die ausgewählte Szene in V-REP PRO.
Die Schaltfläche ist nur aktiv, wenn ein Sunrise-
Projekt ausgewählt wurde.

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 21 / 83


KUKA Sunrise.Connectivity 1.3

Schaltfläche Beschreibung
LiveView starten Startet die Live-Ansicht in V-REP PRO.
(>>> 6.3 "Live-Ansicht starten" Seite 23)
Framegraph syn- Sendet die in den Applikationsdaten angelegten
chronisieren Frames an V-REP PRO und zeigt sie dort an.
(>>> 6.4 "Frames synchronisieren" Seite 23)

6.2 Schnittstelle Rendering für V-REP PRO konfigurieren

Voraussetzung  V-REP PRO ist gestartet.


 In V-REP PRO ist mindestens eine Szene projektiert.
 Netzwerk-Verbindung zur Robotersteuerung

Vorgehensweise 1. Sunrise-Projekt auswählen.


a. Auf den Button Projektauswahl klicken. Das Fenster Projektaus-
wahl mit den zur Auswahl stehenden Sunrise-Projekten öffnet sich.
b. Das gewünschte Sunrise-Projekt markieren und mit OK bestätigen.
Der Name des ausgewählten Sunrise-Projekts wird in der Sicht Ren-
dering VREP angezeigt.
2. Szene auswählen.
a. Auf den Button Szene Auswahl klicken. Das Fenster Szene Auswahl
öffnet sich.
b. Den Button Öffnen wählen und zu dem Verzeichnis navigieren, in
dem die gewünschte Szene abgelegt ist.
Beispiel: C:\Program Files (x86)\V-REP3\V-REP_PRO\scenes\KU-
KALBRiiwaDemo.ttt
c. Die gewünschte Szene auswählen und mit Öffnen laden. Der Pfad zur
Szene wird in das Fenster Szene Auswahl übernommen.
d. Fenster mit OK schließen. Der Name der ausgewählten Szene wird in
der Sicht Rendering VREP angezeigt.
3. Auf die Schaltfläche Szene laden klicken. Die ausgewählte Szene wird in
V-REP PRO geladen.
4. In der Spalte Visualisiertes Gerät werden die, für die ausgewählte Szene
konfigurierten Roboter zur Auswahl aufgeführt.
Hier den Roboter auswählen, der später in der Live-Ansicht angezeigt
werden soll.
Die Einstellungen werden automatisch im Sunrise-Projekt gespeichert.

Beschreibung

Abb. 6-2: Sicht Rendering VREP (mit Verbindung und voll konfiguriert)

Wenn keine Verbindung mehr zum realen Roboter besteht, wird die
Zeile mit diesem Gerät in roter Schrift angezeigt.

22 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


6 Bedienung Rendering Schnittstelle

6.3 Live-Ansicht starten

Voraussetzung  Schnittstelle Rendering ist konfiguriert.


 V-REP PRO ist gestartet.
 Netzwerk-Verbindung zur Robotersteuerung

Vorgehensweise  Auf die Schaltfläche LiveView starten klicken, um die Live-Ansicht in V-


REP PRO zu starten.

6.4 Frames synchronisieren

Voraussetzung  Schnittstelle Rendering ist konfiguriert.


 V-REP PRO ist gestartet.

Vorgehensweise  Auf die Schaltfläche Framegraph synchronisieren klicken, um die in den


Applikationsdaten angelegten Frames an V-REP PRO zu senden.
In V-REP PRO können die neu erstellten Frames zur weiteren Modellierung
verwendet werden.

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 23 / 83


KUKA Sunrise.Connectivity 1.3

24 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


7 Programmierung

7 Programmierung

7.1 Servo-Bewegung im Applikationskontext

Übersicht Die Abbildung zeigt den grundsätzlichen Programmablauf beim Ausführen ei-
ner Servo-Bewegung.

Abb. 7-1: Servo-Bewegung im Applikationskontext

Pos. Beschreibung
1 Eine Instanz der Servo-Bewegung anlegen, hier eine Instanz der
Bewegungsklasse SmartServo.
2 Servo-Bewegung mit moveAsync(…) aktivieren.
Das Echtzeitsystem auf der Robotersteuerung führt die Servo-Be-
wegung aus. Die Roboter-Applikation läuft weiter.
3 Die Laufzeitumgebung mit getRuntime() abrufen. Die Laufzeitum-
gebung wird bereitgestellt, sobald der Roboter verfügbar ist.
Die Applikationsdaten werden mit den von der Laufzeit-Instanz
der IServoRuntime bereitgestellten Echtzeitsystem-Daten aktuali-
siert. Diese Daten, z. B. aktuelle Roboterposition, Geschwindig-
keit oder Beschleunigung, stehen zum weiteren Abruf bereit.

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 25 / 83


KUKA Sunrise.Connectivity 1.3

Pos. Beschreibung
4 Neue Zielpunkte mit setDestination(…) setzen (zyklisch zur Lauf-
zeit der Roboterbewegung).
Nachdem eine Zielposition eingenommen wurde, wird diese eine
definierte Zeit lang beibehalten. Nach Ablauf dieser Zeit wird die
Servo-Bewegung automatisch beendet (Timeout nach der in der
Variable timeoutAfterGoalReach definierten Zeit), sofern kein neu-
er Zielpunkt gesetzt wird oder die Servo-Bewegung mit stopMoti-
on() beendet wird.
(>>> 7.6 "Zielerreichung und Timeouts" Seite 34)
5 Servo-Bewegung mit stopMotion() beenden.
Die Roboter-Applikation läuft weiter.

7.2 Einfache Zielvorgabe mit setDestination(…)

Die Abbildung zeigt den prinzipiellen Zeitverlauf der Roboter-Feininterpolati-


on:

Abb. 7-2: Zeitverlauf im Applikationskontext, Grundverhalten

Zum Initialzeitpunkt t0 werden aktuelle Geschwindigkeit und Position in die


Applikations-Planung übernommen. Dadurch wird eine ruckbegrenzte Bahn
auf die Zielposition geplant. Dabei wird die vorgegebene maximale Geschwin-
digkeit und bei der Bewegungsart SmartServo zusätzlich die maximale Be-
schleunigung und der maximale Ruck berücksichtigt.
Zum Zeitpunkt t1, der sich aus den Randbedingungen ergibt, erreicht der
Feininterpolator den vorgegebenen Zielzustand. In der Bewegungsart Smart-
Servo wird hier das Event IServoOnGoalReachedEvent(…) ausgelöst.
Danach verharrt der Feininterpolator für die in der Variable timeoutAfterGoal-
Reach vorgegebenen Zeitspanne im Zielzustand. Nach Ablauf dieser Zeit-
spanne wird die Servo-Bewegung deaktiviert.

7.3 Zyklische Zielvorgabe mit setDestination(…)

Die Schnittstelle IServoRuntime stellt die Funktionalität bereit, die Zielvorgabe


zur Laufzeit des Bewegungsbefehls moveAsync(…) zu verändern:
IServoRuntime theRuntime = ServoMotion.getRuntime();
...
theRuntime.setDestination(destination);

26 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


7 Programmierung

Durch Aufruf der Methode setDestination(…) wird intern die Methode


updateWithRealtimeSystem() ausgeführt. Diese aktualisiert die Ap-
plikationsdaten mit den Echtzeitsystem-Daten. Eine manuelle Aktua-
lisierung ist daher nicht nötig.
Durch Aufruf der Methode stopMotion() kann die Bewegung zu jedem Zeit-
punkt beendet werden.

Abb. 7-3: Zeitverlauf im Applikationskontext, Zielvorgabe vorzeitig er-


setzen

Zum Zeitpunkt t0 wird ein Ziel vorgegeben. Durch erneuten Aufruf der Metho-
de setDestination(…) zum Zeitpunkt t1, während das Ziel aus Vorgabe t0 an-
gefahren wird, übernimmt der Feininterpolator die Zielvorgabe t1 in seine
Planung und verwirft die Zielvorgabe aus t0. Bei der Berechnung des neuen
Zielpunktes aus der Zielvorgabe zu t1 rechnet der Feininterpolator die aktuelle
Geschwindigkeit mit ein.
Dies bewirkt eine stossfreie Bahnbewegung auf das neue Ziel.

Das Event GoalReached() wird nur ausgelöst, wenn der Interpolator


den Zielzustand eingenommen hat. Die Abbildung (>>> Abb. 7-3 )
zeigt, dass das zum Zeitpunkt t0 vorgegebene Ziel nicht erreicht wird,
da die neue Zielvorgabe zum Zeitpunkt t1 die ursprüngliche Zielvorgabe
überschrieben hat. Somit bezieht sich das Event IServoOnGoalReachedE-
vent(…) auf das Erreichen der Zielposition aus dem Aufruf der Methode set-
Destination(…) zum Zeitpunkt t1.

7.4 Sekundenzeigereffekt

Durch seriell abgegebene Zielvorgaben durch die Methode setDestination(…)


kann eine sehr flüssige Bewegung erzielt werden. Wird jedoch der vorgege-
bene Zielpunkt früher erreicht als die nächste Zielvorgabe gesetzt wird, führt
dies trotz ruckbegrenzter Bahnbewegung zu einem Sekundenzeigereffekt.

Durch Auftreten des Sekundenzeigereffekts kann der


Roboter beschädigt werden. KUKA haftet nicht für
Schäden, die auf dauerhaften Betrieb des Roboters im Sekundenzeigeref-
fekt zurückzuführen sind.

Tritt der Sekundenzeigereffekt auf, ist dies daran zu erkennen, dass der Ro-
boter summt/pfeift und ruckartig fährt. Im Allgemeinen lässt sich dieser Effekt
auf eine falsche zeitliche Abstimmung zwischen der Roboter-Applikation und
der Robotersteuerung zurückführen.

Bei schnellen Zielvorgaben sind Textausgaben auf der smartHMI zu


vermeiden, da diese Rechenzeit benötigen.

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 27 / 83


KUKA Sunrise.Connectivity 1.3

Abb. 7-4: Servo-Bewegung mit Sekundenzeigereffekt

Maßnahmen zur Vermeidung des Sekundenzeigereffektes sind hier zu finden:


(>>> 11.2 "Roboter fährt ruckartig/pfeift - Sekundenzeigereffekt vermeiden"
Seite 70)

7.5 Klasse IServoRuntime

Die Laufzeitumgebung IServoRuntime steht zur Verfügung, sobald die Bewe-


gung selbst durch die Methode moveAsync(…) aktiviert wurde.
Die in der Laufzeitumgebung zur Verfügung stehenden Methoden unterteilen
sich in folgende Gruppen:
 Umgang mit dem Echtzeitsystem
 Zeitstempel
 Zustand des Feininterpolators
 Achsspezifisches Interface
 Auslesen von Achspositionen
 Setzen von achsspezifischen Sollpositionen
 Kartesisches Interface
 Auslesen von kartesischen Positionen
 Setzen von kartesischen Sollpositionen

7.5.1 Umgang mit dem Echtzeitsystem

Beim Umgang mit Zeitstempeln ist zu berücksichtigen, dass Java-Systemzeit


und Echtzeit-Systemzeit nicht synchronisiert sind. Die Laufzeitumgebung
stellt Prozessdaten bereit, die entweder bei Sollvorgabe mit der Methode set-
Destination(…) oder durch expliziten Aufruf der Methode updateWithRealti-
meSystem() aktualisiert werden.

7.5.1.1 Zeitstempel abfragen

Beschreibung Jede Interaktion mit dem Echtzeitsystem liefert einen Zeitstempel zurück. Fol-
gende Zeitstempel stehen zur Verfügung und können abgefragt werden:
 Zeitstempel des letzten Sollkommandos:
long IServoRuntime.getTimeStampOfSetRealtimeDestina-
tion()
Dieser Zeitstempel bezieht sich auf die Ankunft des zuletzt gesetzten
Kommandos an die Robotersteuerung durch Aufruf der Methode setDes-
tination(…).

28 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


7 Programmierung

 Zeitstempel der letzten Aktualisierung:


long IServoRuntime.getTimeStampOfUpdate()
Dieser Zeitstempel bezieht sich auf den letzten Aktualisierungs-Zeitpunkt
durch Aufruf der Methode updateWithRealtimeSystem().

Übersicht Die Übersicht zeigt den Zusammenhang zwischen Laufzeitdaten und dem zu-
gehörigen Zeitstempel.

Laufzeitdaten Methode Zeitstempel


Achsspezifische Zielvorgabe getCurrentJointDestination() getTimeStampOfSetRealtime-
durch setDestination(…) Destination()
Kartesische Zielvorgabe durch getCurrentCartesianDestina-
setDestination(…) tion()
Interpolatorzustand getFineIpoState() getTimeStampOfUpdate()
isDestinationReached()
Voraussichtliche Zeitdauer bis getRemainingTime()
zum Erreichen des Ziels
Instantane Sollposition im getCommandResultOfInterpo-
Grundsystem lation()
Istposition getAxisQMsrOnController()
Varianz der Kraftschätzung getVariance()
Interaktionskraft am Flansch getExtForceMsr()
getExtForceVector()
Achspezifisches Interaktions- getExtTorqueVector()
Drehmoment getAxisTauExtMsr()

7.5.1.2 Zustand des Feininterpolators abfragen

Beschreibung Um eine aktuelle Information mit der Abfrage des Feininterpolators zu erhal-
ten, ist zuvor eine Aktualisierung durchzuführen.
(>>> 7.5.1 "Umgang mit dem Echtzeitsystem" Seite 28)
Die Bewegungsart SmartServo stellt einen Event-Mechanismus zur Verfü-
gung, mit dem das Erreichen des Zieles signalisiert wird.
(>>> 7.7 "Empfang des GoalReached Events (nur SmartServo)" Seite 34)

Syntax  Abfrage, ob der Roboter die Zielvorgabe erreicht hat:


boolean IServoRuntime.hasFineIpoGoalReached()
 Abfrage, wie lange (in Sekunden) der Roboter noch benötigt, um die aktu-
elle Zielvorgabe zu erreichen:
double IServoRuntime.getRemainingTime()

7.5.1.3 Debug-Informationen auslesen und ausgeben

Beschreibung Alle ausgelesenen Werte, z. B. die Soll- und Istpositionen, die Timing-Statistik
der Zugriffe oder der aktuelle Interpolatorzustand, können als Debug-Informa-
tionen auf der smartHMI ausgegeben werden.
Die Textausgabe erfolgt mit der Methode IServoRuntime.toString():
getLogger().info("aTextForGood " + RuntimeInstance.toString());

Der Detailgrad, mit dem diese Debug-Informationen ausgegeben werden,


kann über die Methode setDetailedOutput(…) festgelegt werden.

Syntax void IServoRuntime.setDetailedOutput(int levelOfVerbosity)

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 29 / 83


KUKA Sunrise.Connectivity 1.3

Erläuterung der Element Beschreibung


Syntax levelOfVerbo- Detailgrad bei der Ausgabe der Debug-Informationen
sity
 1: Standard-Informationen
 2: über den Standard hinaus erweiterte Informationen
 3: alle zur Verfügung stehenden Informationen

7.5.2 Achsspezifisches Interface

7.5.2.1 Achsspezifische Zielposition vorgeben

Beschreibung Mit setDestination(…) kann eine achsspezifische Zielposition vorgegeben


werden.

Bei Verwendung der Bewegungsart DirectServo dürfen die Zielvorga-


ben maximal 5° von der aktuellen Istposition entfernt liegen.

Syntax long IServoRuntime.setDestination(JointPosition newDestina-


tion)

Erläuterung der Element Beschreibung


Syntax newDestina- Achsspezifische Zielposition, die angefahren werden soll
tion
Die Achswinkel der Achsen A1 … A7 sind anzugeben (Typ:
double; Einheit: rad).

Rückgabewert Zeitstempel der Kommandoübernahme durch die Robotersteuerung.

7.5.2.2 Achsspezifische Zielposition mit Zielgeschwindigkeit vorgeben

Beschreibung Bei der Bewegungsart SmartServo kann mit setDestination(…) zusätzlich die
achsspezifische Geschwindigkeit vorgegeben werden, mit der die Zielposition
angefahren werden soll.

Syntax long ISmartServoRuntime.setDestination(JointPosition


newDestination, JointSpeed newSpeed)

Erläuterung der Element Beschreibung


Syntax newDestina- Achsspezifische Zielposition, die angefahren werden soll
tion
Die Achswinkel der Achsen A1 … A7 sind anzugeben (Typ:
double; Einheit: rad).
newSpeed Achsspezifische Geschwindigkeit, mit der die Zielposition
angefahren werden soll (Einheit: rad/s)
Hinweis: Dieser Parameter steht nur bei der Bewegungs-
art SmartServo zur Verfügung.

Rückgabewert Zeitstempel der Kommandoübernahme durch die Robotersteuerung.

7.5.2.3 Achsspezifische Istposition auslesen

Beschreibung Die aktuelle achsspezifische Istposition kann mit getCurrentJointDestination()


ausgelesen werden.

Syntax JointPosition IServoRuntime.getCurrentJointDestination()

Rückgabewert Aktuelle achsspezifische Istposition.

30 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


7 Programmierung

7.5.3 Kartesisches Interface

7.5.3.1 Kartesisches Ziel im Roboterfuß-Koordinatensystem vorgeben

Beschreibung Mit setDestination(…) kann ein neues kartesisches Ziel im Roboterfuß-Koor-


dinatensystem vorgegeben werden.

Syntax long IServoRuntime.setDestination(AbstractFrame destina-


tion);

Erläuterung der Element Beschreibung


Syntax destination Kartesisches Ziel im Roboterfuß-Koordinatensystem.
Der Roboterflansch oder ein dem Flansch hierarchisch
untergeordneter Frame wird im Roboterfuß-Koordinaten-
system bewegt, z. B. der TCP eines Werkzeugs.

Rückgabewert Zeitstempel der Kommandoübernahme durch die Robotersteuerung.

Beispiel theRuntime.setDestination(XYZ_Frame);

Abb. 7-5: Ziel im Roboterfuß

7.5.3.2 Kartesisches Ziel im Referenz-Koordinatensystem vorgeben

Beschreibung Mit setDestination(…) kann ein neues kartesisches Ziel optional in einem zu-
sätzlichen Referenz-Koordinatensystem vorgegeben werden.

Syntax long IServoRuntime.setDestination(AbstractFrame destination,


AbstractFrame reference);

Erläuterung der Element Beschreibung


Syntax destination Kartesisches Ziel im Referenz-Koordinatensystem.
Der Roboterflansch oder ein dem Flansch hierarchisch
untergeordneter Frame wird im Referenz-Koordinatensys-
tem bewegt, z. B. der TCP eines Werkzeugs.
reference Referenz-Koordinatensystem mit statischer Verbindung
zum Roboterfuß.

Rückgabewert Zeitstempel der Kommandoübernahme durch die Robotersteuerung.

Beispiel theRuntime.setDestination(XYZ_Frame, refFrame);

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 31 / 83


KUKA Sunrise.Connectivity 1.3

Abb. 7-6: Ziel im Referenz-Koordinatensystem

7.5.3.3 Kartesische Istposition im Roboterfuß-Koordinatensystem auslesen

Beschreibung Mit getCurrentCartesianPosition(…) kann die aktuelle kartesische Istposition


des Roboters bezogen auf das Roboterfuß-Koordinatensystem ausgelesen
werden.

Syntax Frame IServoRuntime.getCurrentCartesianPosition(Abs-


tractFrame frameOnFlange);

Erläuterung der Element Beschreibung


Syntax frameOnFlan Roboterflansch oder ein dem Flansch hierarchisch unter-
ge geordneter Frame, dessen kartesische Position abgefragt
wird, z. B. der TCP eines Werkzeugs.

Rückgabewert Kartesische Istposition des Frames frameOnFlange, bezogen auf das Roboter-
fuß-Koordinatensystem. Der Wert wird mithilfe von updateWithRealtimeSys-
tem() aktualisiert.
(>>> 7.5.1 "Umgang mit dem Echtzeitsystem" Seite 28)
(>>> 7.5.1.1 "Zeitstempel abfragen" Seite 28)

Beispiel Frame currentPose =


theRuntime.getCurrentCartesianPosition(XYZ_Frame);

Abb. 7-7: Istposition im Roboterfuß

32 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


7 Programmierung

7.5.3.4 Kartesische Istposition im Referenz-Koordinatensystem auslesen

Beschreibung Mit getCurrentCartesianPosition(…) kann die aktuelle kartesische Istposition


des Roboters bezogen auf ein bestimmtes Referenz-Koordinatensystem aus-
gelesen werden.

Syntax Frame IServoRuntime.getCurrentCartesianPosition(Abs-


tractFrame frameOnFlange, AbstractFrame reference);

Erläuterung der Element Beschreibung


Syntax frameOnFlan Roboterflansch oder ein dem Flansch hierarchisch unter-
ge geordneter Frame, dessen kartesische Position abgefragt
wird, z. B. der TCP eines Werkzeugs.
reference Referenz-Koordinatensystem, relativ zu dem die kartesi-
sche Position abgefragt wird. Wird kein Referenz-Koordi-
natensystem angegeben, bezieht sich die kartesische
Position auf das Welt-Koordinatensystem.

Rückgabewert Kartesische Istposition des Frames frameOnFlange, bezogen auf das Refe-
renz-Koordinatensystem. Der Wert wird mithilfe von updateWithRealtimeSys-
tem() aktualisiert.
(>>> 7.5.1 "Umgang mit dem Echtzeitsystem" Seite 28)
(>>> 7.5.1.1 "Zeitstempel abfragen" Seite 28)

Beispiel Frame currentPose =


theRuntime.getCurrentCartesianPosition(XYZ_FrameTool, XYZ_FrameRef);

Abb. 7-8: Istposition im Referenz-Koordinatensystem

7.5.4 Servo-Bewegung beenden

Beschreibung Eine Servo-Bewegung kann unabhängig vom Zustand der Applikation oder
des Roboters jederzeit über die Methode stopMotion() beendet werden.
Die aktuelle Bewegung des Roboters wird abgebremst und keine weitere mit
setDestination(…) gesetzte Zielvorgabe übernommen. Ist in der Roboter-Ap-
plikation eine nachfolgende Bewegung mit move(…)/moveAsync(…) pro-
grammiert, so setzt diese die Roboterbewegung fort.

Syntax boolean IServoRuntime.stopMotion()

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 33 / 83


KUKA Sunrise.Connectivity 1.3

7.6 Zielerreichung und Timeouts

Der Zusammenhang zwischen dem Erreichen des Ziels und des Timeouts
wird mithilfe eines Zustandsgraphen veranschaulicht. Der Zustandsgraph
stellt die innere Zustandsmaschine des Feininterpolators dar. Die in der Klas-
se IServoRuntime enthaltene Methode isDestinationReached() gibt bei der
Abfrage einen Zustandswert des Datentyps boolean zurück. Weitere Zu-
standsinformationen sind für die Applikation ohne Bedeutung, da diese zu
kurzlebig sind.

Abb. 7-9: Zielerreichung und Timeouts (Zustandsgraph)

 Wird mit der Methode setDestination(…) eine neue Zielvorgabe gesendet,


springt der Feininterpolator auf den Zustand "moving".
 Solange noch eine Bewegung zu verfahren ist, befindet sich der Feininter-
polator der Echtzeitsteuerung im Zustand "moving".
 Nachdem die Zielvorgabe erreicht wurde, wird die Geschwindigkeit des
Zielzustands für eine definierbare Zeit im Zustand "velocityAfterGoal-
Reach" beibehalten.
 Dieser Zustand wird nur erreicht, wenn die Geschwindigkeitsplanung
aktiviert, d. h. die Variable activateVelocityPlanning auf true gesetzt
wurde.
 Bei Verwendung der Bewegungsart SmartServo und Vorgabe einer
neuen achsspezifischen Zielposition, kann mit der Methode setDesti-
nation(…) die Zielgeschwindigkeit bestimmt werden.
 Die Dauer der einzuhaltenden Geschwindigkeit im Zustand "velocity-
AfterGoalReach" wird über die Methode setSpeedTimeoutAfterGoal-
Reach(…) definiert.
 Nach dem Zustand "VelocityAfterGoalReached" oder "moving" geht der
Feininterpolator in den Zustand "resting".
 Der Zustand "resting" wird nach der in der Variablen timeoutAfterGoal-
Reach definierten Zeit beendet. Der Default-Wert ist 120 Sekunden.
 Jeder Zustand kann jederzeit durch das Kommando stopMotion() beendet
werden.

7.7 Empfang des GoalReached Events (nur SmartServo)

Um bei Erreichen der Zielvorgabe mit dem Event onGoalReachedEvent(…)


benachrichtigt zu werden, muss der Listener SampleGoalReachedEventListe-
ner mit dem Aufruf der Methode setGoalReachedEventHandler(…) an der
Schnittstelle IServoRuntime registriert werden. Der Listener SampleGoal-
ReachedEventListener muss von der Klasse IServoOnGoalReachedEvent
abgeleitet werden.

34 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


7 Programmierung

Abb. 7-10: Empfang des GoalReached Events (nur SmartServo)

/**
* Simple Implementation of an
* GoalReachedEventHandler.Increase a local counter
* and print an error message if a goal was reached.
*/
private class SampleGoalReachedEventListener
implements IServoOnGoalReachedEvent
{
@Override
public void onGoalReachedEvent(String state,
double[] currentAxisPos, int[] osTimestamp)
{
_count++;
if (theSmartServoRuntime.isDestinationReached())
{
getLogger().info("ok");
}
}
}

Der Listener muss die Methode onGoalReachedEvent(…) implementieren.

7.8 Bahnparameter ändern

Die Bahnparameter Geschwindigkeit, Beschleunigung und Ruck können vor


dem Aktivieren einer Servo-Bewegung eingestellt werden. Die voreingestell-
ten Leistungsparameter beziehen sich auf Volllast in ausgestreckter Lage.
Um die Leistungsreserven des Roboters auszuschöpfen, können bei Smart-
Servo optional die Beschleunigung und der Ruck erhöht werden. Dazu dienen
die Methoden overrideJointAcceleration(…) und setJointJerk(…). Die Leis-
tungsreserven hängen direkt von applikationsspezifischen Parametern ab,
z. B. von der Last und der Roboterkonfiguration.

Abhängig von der Last und der Roboterkonfiguration kann der Robo-
ter unter Umständen der gewünschten Bahn nicht mehr folgen und
bleibt mit einer Fehlermeldung stehen.

Übersicht Folgende einstellbaren Bahnparameter stehen für SmartServo und DirectSer-


vo zur Verfügung:

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 35 / 83


KUKA Sunrise.Connectivity 1.3

Methode Beschreibung SmartServo DirectServo


ServoMotion.setJointVelo- Maximale Achsgeschwin-
cityRel(…) digkeit (Typ: double; Ein-
heit: %)
 0…1
ServoMotion.setJointAcce- Beschleunigung (Typ: dou-
lerationRel(…) ble; Einheit: %)
 0…1
SmartServo.override- Beschleunigungsüberhö-
JointAcceleration(…) hung (Typ: double; Ein-
heit: Faktor)
 0 … 20
SmartServo.setJoint- Ruck (Typ: double; Einheit:
Jerk(…) %)
 0 … 1500

7.9 Zeiterfassung

7.9.1 Applikations-Zykluszeit messen

Zur Zeitmessung stehen 2 von KUKA fest eingebundene sowie ein vom Be-
nutzer frei verwendbarer Timer zur Verfügung. Die Timer können zur Protokol-
lierung sich wiederholender Ereignisse verwendet werden.

Abb. 7-11: Zeitmessung

1 Timer UpdateWithRealtimeSystem() (vordefiniert)


2 Timer SetDestination() (vordefiniert)
3 Benutzerdefinierter Timer (Klasse StatisticTimer)

KUKA-Timer Die beiden vordefinierten Timer werden durch Aufruf der Methoden updateWi-
thRealtimeSystem() und indirekt durch setDestination(…) ausgeführt.
Die Statistik der internen Timer kann über die Methode toString() der Klasse
IServoRuntime ausgegeben werden.

Benutzer-Timer Der vom Benutzer frei verwendbare Timer wird durch die Klasse StatisticTi-
mer bereitgestellt. Diese speichert die Anzahl der Messungen und die kleins-
te, die durchschnittliche und die längste gemessene Zykluszeit.

36 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


7 Programmierung

Damit die Klasse StatisticTimer zur Verfügung steht, muss diese selbst instan-
ziiert werden:
import com.kuka.common.StatisticTimer;
import com.kuka.common.StatisticTimer.OneTimeStep;
...
StatisticTimer timing = new StatisticTimer();

Eine einzelne Messung starten:


OneTimeStep aStep = timing.newTimeStep();

Die Messung stoppen:


aStep.end();

Speicherinhalt der Klasse StatisticTimer auf der smartHMI ausgeben:


getLogger().info("Statistic Timing of Overall Loop " +
timing.toString());

Die Ausgabe enthält die Anzahl n der Messungen und die Statistik T der Zyk-
luszeiten. Die Statistik T enhält die kürzeste, durchschnittliche und längste Zy-
kluszeit.
Statistic Timing of Overall Loop n(20687) T(0.91, 1.92, 6.36 msec)
(stdDev 0.36)

Weitere Informationen zur Klasse StatisticTimer sind in Javadoc zu


finden.

7.10 Impedanzregelung

In Impedanzregelung können falsch gewählte Parame-


ter (z. B. fehlerhafte Lastdaten, falsches Werkzeug)
oder fehlerhafte Informationen (z. B. von defekten Momentensensoren) als
äußere Kräfte interpretiert werden und zu unvorhersehbaren Bewegungen
des Roboters führen.

Um die Gefahr durch unvorhersehbare Bewegungen zu


vermeiden, müssen der maximal zulässige Bewegungs-
bereich und die maximal zulässige Geschwindigkeit eines Roboters in Impe-
danzregelung eingeschränkt werden. Die Grenzwerte für die maximale
Abweichung und Geschwindigkeit sind applikationsspezifisch sinnvoll und
hinreichend klein zu wählen.

7.10.1 Lastmodell für Impedanzregelung validieren

Beschreibung Um Servo-Bewegungen bei einem impedanzgeregelten Roboter verwenden


zu können, muss einmalig zur Laufzeit der Applikation eine Validierung durch-
geführt werden.
Voraussetzung für die Validierung ist, dass der Roboter gut konditioniert steht,
d. h. er darf sich nicht in einer singulären Stellung befinden.

Beispiel Mit SmartServo.validateForImpedanceMode(…) wird die Impedanzregelung


validiert. Bei ungültiger Validierung wird eine Meldung auf der smartHMI aus-
gegeben.
if (SmartServo.validateForImpedanceMode(_toolAttachedToLBR) != true)
{

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 37 / 83


KUKA Sunrise.Connectivity 1.3

getLogger().info("Validation of Torque Model failed");


}

7.10.2 Impedanzregelung aktivieren

Beim Aktivieren einer Servo-Bewegung mit moveAsync(…) muss die verwen-


dete Regelungsart der Bewegung als Parameter übergeben werden. Hierfür
wird die Methode setMode(…) verwendet.
_toolAttachedToLBR.getDefaultMotionFrame().moveAsync(
aSmartServoMotion.setMode(controlMode));

7.10.3 Regler-Parameter zur Laufzeit ändern

Beschreibung Mithilfe der Methode changeControlModeSettings(…) können die Parameter


des Reglers geändert werden, mit dem die Servo-Bewegung gestartet wurde.
Die Regelungsart selbst kann während der Servo-Bewegung nicht gewechselt
werden.

Voraussetzung  Das Lastmodell für die Impedanzregelung ist validiert.


 Die Regelungsart wurde beim Aktivieren der Servo-Bewegung gesetzt.

Syntax void IServoRuntime.changeControlModeSettings(IMotion-


ControlMode controlMode)

Element Beschreibung
controlMode Regler-Objekt, das die Regler-Parameter enthält, die zur
Laufzeit der Servo-Bewegung geändert werden sollen.

Übersicht Folgende Parameter der jeweiligen Regelungsart können mithilfe der Metho-
de changeControlModeSettings(…) zur Laufzeit geändert werden:

Regler Änderbare Parameter Methode


Kartesischer Impedanzregler Datentyp: CartesianImpedanceControlMode
Federsteifigkeit setStiffness(…)
Federdämpfung setDamping(…)
Federsteifigkeit des Redun- setNullSpaceStiffness(…)
danz-Freiheitsgrades
Federdämpfung des Redun- setNullSpaceDamping(…)
danz-Freiheitsgrades

38 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


7 Programmierung

Regler Änderbare Parameter Methode


Kartesischer Impedanzregler Datentyp: CartesianSineImpedanceControlMode
mit aufgeschalteter Kraft- Amplitude der Kraftschwin- setAmplitude(…)
schwingung gung
Frequenz der Kraftschwin- setFrequency(…)
gung
Phasenverschiebung der setPhaseDeg(…)
Kraftschwingung
Zusätzlich zur Kraftschwin- setBias(…)
gung aufgeschaltete kons-
tante Kraft
Kraftbegrenzung der Kraft- setForceLimit(…)
schwingung
Maximale Auslenkung durch setPositionLimit(…)
die Kraftschwingung
Anstiegszeit der Kraftschwin- setRiseTime(…)
gung
Haltezeit der Kraftschwingung setHoldTime(…)
Abfallzeit der Kraftschwingung setFallTime(…)

Beispiel Für einen kartesischen Impedanzregler werden neue Federsteifigkeiten defi-


niert:
if (controlMode instanceof CartesianImpedanceControlMode)
{
...
final CartesianImpedanceControlMode cartImp =
(CartesianImpedanceControlMode) controlMode;
final double aTransStiffVal =
Math.max(100. * (i / (double) _numRuns + 1), 1000.);
final double aRotStiffVal =
Math.max(10. * (i / (double) _numRuns + 1), 150.);
cartImp.parametrize(CartDOF.TRANSL).setStiffness(aTransStiffVal);
cartImp.parametrize(CartDOF.ROT).setStiffness(aRotStiffVal);

Wird die Federsteifigkeit zu gering gewählt, kann der


Roboter aufgrund seiner Eigenreibung der Zielvorgabe
nicht korrekt folgen. Es kann zu spontanen Bewegungen kommen, wenn
durch weitere Zielvorgaben die Eigenreibung überwunden wird.

Die neuen Steifigkeitswerte werden mit der Methode changeControlModeSet-


tings(…) in der Laufzeitumgebung gesetzt:
...
theSmartServoRuntime.changeControlModeSettings(cartImp);
}

In Impedanzregelung kann sich der Roboter unerwartet


bewegen. Die maximal zulässige kartesische Abwei-
chung von der Bahn und die maximal zulässige kartesische Kraft am TCP
müssen so weit eingeschränkt werden, dass es zu keinen Verletzungen oder
Sachschaden kommen kann.

Für die kartesische Begrenzung stehen folgende Methoden zur Verfügung:


 setMaxPathDeviation(…):
Begrenzung der maximalen kartesischen Abweichung von der Bahn

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 39 / 83


KUKA Sunrise.Connectivity 1.3

 setMaxControlForce(…):
Begrenzung der maximalen Kraft am TCP
final CartesianImpedanceControlMode cartImp =
new CartesianImpedanceControlMode();

cartImp.parametrize(CartDOF.TRANSL).setStiffness(1000.0);
cartImp.parametrize(CartDOF.ROT).setStiffness(100.0);
cartImp.setNullSpaceStiffness(100.0);

cartImp.parametrize(CartDOF.TRANSL).setMaxPathDeviation(50.0);
cartImp.parametrize(CartDOF.ROT).setMaxPathDeviation(1.0);

7.10.4 Übergang zwischen Regelungsarten

Beschreibung Es ist bei Servo-Bewegungen nicht möglich, innerhalb einer Bewegungs-Ins-


tanz die Regelungsart zu wechseln. Daher muss die Bewegung durch eine
neue Bewegungs-Instanz abgelöst werden. Es kann erst in die neue Rege-
lungsart gewechselt werden, wenn die laufende Bewegungs-Instanz beendet
ist.
Eine neue Servo-Bewegung wird über moveAsync(…) instanziiert. Wird die
erste noch laufende Bewegung beispielsweise durch eine definierte Bedin-
gung oder durch den Befehl stopMotion() beendet, gehen die Bewegungsab-
schnitte durch die internen Funktionalitäten im Echtzeitbereich nahtlos
ineinander über.
Dieselbe Technik muss für alle bewegungsspezifischen Parameter genutzt
werden, die nicht zur Laufzeit änderbar sind. Dies gilt z. B. für Lastwechsel
(Masseparameter ändern sich durch Greifen) oder ähnliches.

Beim Überblenden sind korrekte Lastparameter zu beachten! Diese


sind bewegungsspezifisch.

Beispiel Eine erste SmartServo-Bewegung ist aktiv. Eine zweite SmartServo-Bewe-


gung wird über moveAsync(…) an das Echtzeitsystem gesendet.
(>>> 8.1.3 "Applikation SmartServoSampleInteractionControl" Seite 59)
final SmartServo secondSmartServoMotion =
newSmartServo(initialPosition);
...
_toolAttachedToLBR.getDefaultMotionFrame().
moveAsync(secondSmartServoMotion);
...
final ISmartServoRuntime theSecondRuntime =
secondSmartServoMotion.getRuntime();

Die eigentliche Übergabe findet in der folgenden Anweisung statt, in der die
abzulösende SmartServo-Bewegung (theFirstRuntime) gestoppt wird.
theFirstRuntime.stopMotion();

Ab diesem Zeitpunkt ist die zweite Laufzeitumgebung (theSecondRuntime)


aktiviert und führt Bewegungsbefehle auf dem System aus.

7.11 Rückkopplungseffekt bei Servo-Bewegungen

Beschreibung Bei der Verwendung der Bewegungsart SmartServo und DirectServo kann der
regelungstechnische Nebeneffekt einer Rückkopplung auftreten. Dieser Ef-
fekt ist mit dem der Rückkopplung eines übersteuerten Mikrofons durch des-
sen gekoppelten Lautsprecher vergleichbar.

40 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


7 Programmierung

Roboter-Applikationen, die Standard-Bewegungen verwenden, senden Soll-


vorgaben an die Robotersteuerung, ohne Positionsrückmeldungen in ihre
Sollvorgabe-Berechnung einfließen zu lassen.

Abb. 7-12: Sollvorgabe bei Standard-Bewegungen

Im Unterschied dazu werden bei Servo-Bewegungen Positionsrückmeldun-


gen mit in die Sollvorgabe-Berechnung eingerechnet. Abhängig von diversen
Parametern kann es zu übersteuernden Sollvorgaben an die Robotersteue-
rung kommen, die sich progressiv aufschwingen können. Dies ist vergleichbar
mit einer zu geringen Eingangsdämpfung eines Mikrofons, das sich zu nahe
an einem gekoppelten Lautsprecher befindet.

Beispiel 1, Visual
Servoing

Abb. 7-13: Sollvorgabe bei Servo-Bewegungen, Beispiel Visual Servoing

Bei einer Visual Servoing-Anwendung soll der Roboter den roten Kreis in der
Bildmitte der Kamera halten. Dazu wird das Kamerabild erfasst und ausge-
wertet. In der Tracking-Applikation wird ein Stellsignal errechnet, um den Ro-
boter anzusteuern. Dieses Stellsignal ändert den Aufnahmepunkt der
Kamera.
Abbildung (>>> Abb. 7-14 ) stellt den Signalfluss des Regelkreises dar.

Abb. 7-14: Regelkreis Signalfluss, Beispiel Visual Servoing

Dabei wird die Aktivität des Roboters und der Robotersteuerung als Kamera-
Pose abstrahiert.
In Abbildung (>>> Abb. 7-15 ) wird die Tätigkeit der Kamera-Pose und der
Bildverarbeitung jeweils als ideales Totzeitelement Z-1 modelliert. Der Tra-
cking Controller wird als Totzeitelement mit p-Verstärkung modelliert.

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 41 / 83


KUKA Sunrise.Connectivity 1.3

Abb. 7-15: p-Verstärkung, Beispiel Visual Servoing

Somit ergibt sich eine Übertragungsfunktion von: G(z) = 1 / (1 + kz3)


Die Wurzeln des charakteristischen Polynoms hängen damit vom Verstär-
kungsfaktor k des eigentlichen Reglers Tracking Controller ab.
Für k = 1 gilt, dass der Regelkreis grenzstabil ist.
Daraus ergeben sich folgende Schlüsse:
 In der Praxis ist genau dieser Regelkreis (k = 1) instabil.
Bereits das Pixelrauschen der Kamera führt zu einer Dauerschwingung
des Gesamtsystems.
 Jedes Teilsystem ist für sich alleine genommen voll funktionsfähig.
 Zur Stabilisierung muss die Verstärkung k < 1 (Tracking Controller) ge-
wählt werden.
 Reduktion der Roboter-Performance (maximale Geschwindigkeit) Ka-
mera-Pose.
 Anpassung des Reglers Tracking Controller.
 Unterdrückung des Pixelrauschens in der Bildverarbeitung.

Beispiel 2, In diesem Beispiel ist ein stabiles System gegeben:


Anpassung  Der Regelkreis ist stabil eingestellt.
 Die Robotergeschwindigkeit wurde reduziert, um die Stabilität zu errei-
chen.

Abb. 7-16: Anpassung, Beispiel Visual Servoing

Aus der Situation ergibt sich die Forderung, die Gesamt-Performance des
Systems zu erhöhen, um die Leistung des Roboters voll auszuschöpfen. Der
Roboter GR soll daher anders parametriert werden.
Als Folge daraus kann das Gesamtsystem instabil werden, obwohl jedes Teil-
system für sich voll funktionsfähig ist.
Werden die Übertragungseigenschaften des Roboters GR durch nachfolgen-
de Maßnahmen geändert, kann das Verhalten des Gesamtsystems trotz vor-
heriger Stabilität instabil werden:
 maximale Geschwindigkeit / maximale Beschleunigung
 Wechsel zwischen Positionsregelung und Impedanzregelung
 Änderung der Impedanzregelung
 Wechsel zwischen den Bewegungsarten SmartServo und DirectServo

42 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


7 Programmierung

Die Stabilisierung des Systems kann in diesem Fall nur erreicht werden, in-
dem die Applikationsprogrammierung entsprechend angepasst wird.

7.12 Sprungantwort der Systeme

In den nachfolgenden Diagrammen werden die Sprungantworten der Bewe-


gungsarten SmartServo und DirectServo dargestellt.
Beim Start der Diagrammaufzeichnung hat der Roboter folgende Ausgangs-
position:
 A1 = 0°
 A2 = 30°
 A3 = 0°
 A4 = 40°
 A5 = 0°
 A6 = 90°
 A7 = 0°

Abb. 7-17: Ausgangsposition

7.12.1 SmartServo vs. DirectServo - Vergleich der Achspositionen im Zeitverlauf

Die folgenden Diagramme zeigen den kommandierten Sprung ("tgt") mit der
blauen Linie und die im Zeitverlauf gemessene Istposition der jeweiligen Ach-
se.
Die grüne Linie stellt den Verlauf bei der Bewegungsart SmartServo mit Stan-
dard-Einstellung dar. Hier sind die Beschleunigungswerte sehr konservativ
ausgelegt, um noch im ungünstigsten Fall (Strecklage und Last) sicher operie-
ren zu können.
Die rote Linie stellt den Verlauf der Bewegungsart DirectServo dar.
Bei der Bewegungsart SmartServo können Achsbeschleunigung und Ruck
geändert werden. Die hellblaue Linie stellt die Bewegungsart SmartServo mit
folgenden Einstellungen dar:
aSmartServoMotion.setJointJerk(500);
aSmartServoMotion.overrideJointAcceleration(20);

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 43 / 83


KUKA Sunrise.Connectivity 1.3

7.12.1.1 Vergleich Sprungantwort SmartServo vs. DirectServo A1

Abb. 7-18: Vergleich Sprungantwort SmartServo vs. DirectServo A1

44 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


7 Programmierung

7.12.1.2 Vergleich Sprungantwort SmartServo vs. DirectServo A2

Abb. 7-19: Vergleich Sprungantwort SmartServo vs. DirectServo A2

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 45 / 83


KUKA Sunrise.Connectivity 1.3

7.12.1.3 Vergleich Sprungantwort SmartServo vs. DirectServo A3

Abb. 7-20: Vergleich Sprungantwort SmartServo vs. DirectServo A3

46 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


7 Programmierung

7.12.1.4 Vergleich Sprungantwort SmartServo vs. DirectServo A4

Abb. 7-21: Vergleich Sprungantwort SmartServo vs. DirectServo A4

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 47 / 83


KUKA Sunrise.Connectivity 1.3

7.12.1.5 Vergleich Sprungantwort SmartServo vs. DirectServo A5

Abb. 7-22: Vergleich Sprungantwort SmartServo vs. DirectServo A5

48 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


7 Programmierung

7.12.1.6 Vergleich Sprungantwort SmartServo vs. DirectServo A6

Abb. 7-23: Vergleich Sprungantwort SmartServo vs. DirectServo A6

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 49 / 83


KUKA Sunrise.Connectivity 1.3

7.12.1.7 Vergleich Sprungantwort SmartServo vs. DirectServo A7

Abb. 7-24: Vergleich Sprungantwort SmartServo vs. DirectServo A7

7.12.2 SmartServo vs. DirectServo - Vergleich mit Geschwindigkeit, Beschleunigung, Ruck

Die folgenden Diagramme zeigen synchron zur Position auch die Geschwin-
digkeit, Beschleunigung und den Ruck der jeweiligen Achse.
Aus diesen Aufzeichnungen sind folgende Erkenntnisse zu gewinnen:
 Beide Bewegungsarten bieten die Möglichkeit, die Roboterperformance
auszureizen.

50 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


7 Programmierung

 Mit der Bewegungsart SmartServo kann man ruhigere Bahnverläufe rea-


lisieren als mit der Bewegungsart DirectServo.
 Bei der Bewegungsart DirectServo muss in der Applikation für die Bahn-
planung gesorgt werden. Der Ruck wird direkt an die Antriebe gegeben.
 Die Antwortzeit bei bei der Bewegungsart DirectServo (12 ms) ist etwas
schneller als bei der Bewegungsart SmartServo (22 ms).
Aufgrund der Polynomlösung neigt die Bewegungsart SmartServo in ungüns-
tigen Konfigurationen durch extrem schnelle Zielvorgaben von < 10 ms und
Stellgrößenbeschränkung zum Aufschwingen. Wenn dieser Fall eintritt und
die Stellreserven durch aSmartServoMotion.setJointJerk(500) und aSmart-
ServoMotion.overrideJointAcceleration(20) ausgeschöpft sind, wird die Bewe-
gungsart DirectServo empfohlen.

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 51 / 83


KUKA Sunrise.Connectivity 1.3

7.12.2.1 Vergleich Sprungantwort SmartServo vs. DirectServo A1 (erweitert)

Abb. 7-25: Vergleich Sprungantwort SmartServo vs. DirectServo A1 er-


weitert

52 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


7 Programmierung

7.12.2.2 Vergleich Sprungantwort SmartServo vs. DirectServo A2 (erweitert)

Abb. 7-26: Vergleich Sprungantwort SmartServo vs. DirectServo A2 er-


weitert

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 53 / 83


KUKA Sunrise.Connectivity 1.3

7.12.2.3 Vergleich Sprungantwort SmartServo vs. DirectServo A3 (erweitert)

Abb. 7-27: Vergleich Sprungantwort SmartServo vs. DirectServo A3 er-


weitert

54 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


7 Programmierung

7.12.2.4 Vergleich Sprungantwort SmartServo vs. DirectServo A4, erweitert

Abb. 7-28: Vergleich Sprungantwort SmartServo vs. DirectServo A4 er-


weitert

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 55 / 83


KUKA Sunrise.Connectivity 1.3

7.12.2.5 Vergleich Sprungantwort SmartServo vs. DirectServo A5 (erweitert)

Abb. 7-29: Vergleich Sprungantwort SmartServo vs. DirectServo A5 er-


weitert

56 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


7 Programmierung

7.12.2.6 Vergleich Sprungantwort SmartServo vs. DirectServo A6 (erweitert)

Abb. 7-30: Vergleich Sprungantwort SmartServo vs. DirectServo A6 er-


weitert

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 57 / 83


KUKA Sunrise.Connectivity 1.3

7.12.2.7 Vergleich Sprungantwort SmartServo vs. DirectServo A7 (erweitert)

Abb. 7-31: Vergleich Sprungantwort SmartServo vs. DirectServo A7 er-


weitert

58 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


8 Beispielapplikationen

8 Beispielapplikationen
In den bereitgestellten Katalogen "Simple Tutorials for SmartServo" und "Sim-
ple Tutorials for DirectServo" sind Programmierbeispiele enthalten.
Zur Lektüre wird dem Leser die nachfolgende Reihenfolge empfohlen.

8.1 Katalog "Simple Tutorials for SmartServo"

8.1.1 Applikation SmartServoSampleSimpleJointMotion

Funktionalität Einfache achsspezifische Zielvorgabe.

Lernziele  Aktivierung der Bewegungsart SmartServo


(>>> 7.1 "Servo-Bewegung im Applikationskontext" Seite 25)
 Umgang mit der Laufzeitumgebung IServoRuntime
(>>> 7.5 "Klasse IServoRuntime" Seite 28)
 Achsspezifische Zielvorgabe
(>>> 7.5.2 "Achsspezifisches Interface" Seite 30)
 Zeitmessung
(>>> 7.9 "Zeiterfassung" Seite 36)

Voraussetzung Kenntnisse in der Applikationsprogrammierung mit RoboticsAPI.

8.1.2 Applikation SmartServoSampleSimpleCartesian

Funktionalität Einfache kartesische Zielvorgabe.

Lernziele  Kartesische Zielvorgabe


(>>> 7.5.3 "Kartesisches Interface" Seite 31)

Voraussetzung Programmierkenntnisse in der Applikation SmartServoSampleSimpleJoint-


Motion.

8.1.3 Applikation SmartServoSampleInteractionControl

Funktionalität Impedanzregelung mit der Bewegungsart SmartServo.

Lernziele  Lastmodell für Impedanzregelung validieren


(>>> 7.10.1 "Lastmodell für Impedanzregelung validieren" Seite 37)
 Impedanzregelung aktivieren
(>>> 7.10.2 "Impedanzregelung aktivieren" Seite 38)
 Regler-Parameter zur Laufzeit ändern
(>>> 7.10.3 "Regler-Parameter zur Laufzeit ändern" Seite 38)
 Übergang zwischen Regelungsarten
(>>> 7.10.4 "Übergang zwischen Regelungsarten" Seite 40)

Voraussetzung Programmierkenntnisse in den Applikationen SmartServoSampleSimpleJoint-


Motion und SmartServoSampleSimpleCartesian.

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 59 / 83


KUKA Sunrise.Connectivity 1.3

8.2 Katalog "Simple Tutorials for DirectServo"

Für den sicheren Umgang mit dem Katalog "Simple Tutorials for Di-
rectServo" werden Kenntnisse des Katalogs "Simple Tutorials for
SmartServo" vorausgesetzt.

8.2.1 Applikation DirectServoSampleSimpleJointMotion

Funktionalität Einfache achsspezifische Zielvorgabe.

Lernziele  Aktivierung der Bewegungsart DirectServo


 Umgang mit der Laufzeitumgebung IServoRuntime
 Achsspezifische Zielvorgabe
 Zeitmessung

Voraussetzung Programmierkenntnisse mit der Applikation SmartServoSampleSimpleJoint-


Motion.

8.2.2 Applikation DirectServoSampleSimpleCartesian

Funktionalität Einfache kartesische Zielvorgabe.

Lernziele  Kartesische Zielvorgabe

Voraussetzung Programmierkenntnisse in den Applikationen SmartServoSampleSimpleCar-


tesian und DirectServoSampleSimpleJointMotion.

8.2.3 Applikation DirectServoSampleInteractionControl

Funktionalität Impedanzregelung mit der Bewegungsart DirectServo.

Lernziele  Lastmodell für Imedanzregelung validieren


 Impedanzregelung aktivieren
 Regler-Parameter zur Laufzeit ändern
 Übergang zwischen Regelungsarten

Voraussetzung Programmierkenntnisse in den Applikationen SmartServoSampleSimpleJoint-


Motion, SmartServoSampleSimpleCartesian und SmartServoSampleInterac-
tionControl.

60 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


9 Befehlsreferenz

9 Befehlsreferenz

9.1 Befehlsreferenz SmartServo

9.1.1 Bewegungsparameter

Methode Beschreibung
setJointVelocity- Achsspezifische Relativgeschwindigkeit (Typ: double; Einheit: %)
Rel(…)
 0.0 … 1.0
Default-Wert: 1
Bezieht sich auf den Maximalwert der Achsgeschwindigkeit in den
Maschinendaten.
Hinweis: Weitere Informationen zur Programmierung achsspezifischer
Bewegungsparameter sind in der Bedien- und Programmieranleitung
der System Software zu finden.
setJointAcceleration- Achsspezifische relative Beschleunigung (Typ: double; Einheit: %)
Rel(…)
 0.0 … 1.0
Default-Wert: 1
Bezieht sich auf den Maximalwert der Achsbeschleunigung in den
Maschinendaten.
Hinweis: Weitere Informationen zur Programmierung achsspezifischer
Bewegungsparameter sind in der Bedien- und Programmieranleitung
der System Software zu finden.
setMinimumTrajecto- Minimale Ausführungszeit für eine Trajektorie. (Typ: double; Einheit:
ryExecutionTime(…) Sekunden)
 ≥0
Default-Wert: 0.01
Setzt die minimale Ausführungszeit für eine Trajektorie. Verändert den
Bahnverlauf.
setSpeedTimeoutAf- Timeout für das Geschwindigkeitsprofil nach Erreichen des Ziels. (Typ:
terGoalReach(…) double; Einheit: Sekunden)
 ≥0
Default-Wert: 0
Setzt den Timeout, bis wann der Interpolator mit einem Geschwindig-
keitsprofil weiter planen soll.
setTimeoutAfterGoal- Timeout nach Erreichen des Ziels für den Bewegungsbefehl. (Typ: dou-
Reach(…) ble; Einheit: Sekunden)
 ≥0
Default-Wert: 120
Wenn nach der angegebenen Zeit kein neues Ziel vorgegeben wurde,
wird der Bewegungsbefehl abgebrochen.

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 61 / 83


KUKA Sunrise.Connectivity 1.3

Methode Beschreibung
setMode(…) Setzen der Bewegungsart.
Hinweis: Weitere Informationen zur Programmierung sind in der
Bedien- und Programmieranleitung der System Software zu finden.
overrideJointAccele- Erhöhen der achsspezifischen Beschleunigung. (Typ: double; Einheit:
ration(…) Faktor)
 0 ... 20
Default-Wert: 1

9.1.2 Laufzeit-Parameter

Methode Beschreibung
setGoalReachedE- Setzen des Eventhandler beim Erreichen des Ziels. Der Parameter
ventHandler(…) muss eine Implementierung des Typs IServoOnGoalReachedEvent
sein.
setDetailedOutput(…) Setzen des Detailgrades der Debug-Informationen.
 1, 2, 3
Default-Wert: 1
(>>> 7.5.1.3 "Debug-Informationen auslesen und ausgeben" Seite 29)
setMinimumTrajecto- Minimale Ausführungszeit für eine Trajektorie. (Typ: double; Einheit:
ryExecutionTime(…) Sekunden)
 ≥0
Default-Wert: 0.01
Setzt die minimale Ausführungszeit für eine Trajektorie. Verändert den
Bahnverlauf.
activateVelocityPlan- Aktiviert die Geschwindigkeitsplanung, nachdem ein Zielpunkt erreicht
ning(…) worden ist. (Typ: boolean)
Default-Wert: false
activateWaitForPau- Aktiviert in T1/T2 das Pausieren einer Bewegung, sobald die Start-Taste
seDuringSetDestina- oder ein Zustimmungsschalter losgelassen wird. (Typ: boolean)
tion(…)
Default-Wert: true
Wird diese Einstellung deaktiviert, läuft die Applikation weiter und ist für
die Pausierung und das Wiederanfahren verantwortlich.
changeControlMode- Ändern der Regler-Parameter während der Impedanzregelung.
Settings(…)
(>>> 7.10.3 "Regler-Parameter zur Laufzeit ändern" Seite 38)

62 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


9 Befehlsreferenz

9.1.3 Zielposition setzen

Methode Beschreibung
setDestination(…) Setzen einer neuen achsspezifischen Zielposition
(>>> 7.5.2.1 "Achsspezifische Zielposition vorgeben" Seite 30)
Setzen einer neuen achsspezifischen Zielposition und der zugehörigen
Zielgeschwindigkeit der einzelnen Achsen
(>>> 7.5.2.2 "Achsspezifische Zielposition mit Zielgeschwindigkeit vor-
geben" Seite 30)
Setzen einer neuen kartesischen Zielposition
(>>> 7.5.3.1 "Kartesisches Ziel im Roboterfuß-Koordinatensystem vor-
geben" Seite 31)
Setzen einer neuen kartesischen Zielposition und eines Referenz-Koor-
dinatensystems, in dem die Servo-Bewegung ausgeführt werden soll
(>>> 7.5.3.2 "Kartesisches Ziel im Referenz-Koordinatensystem vorge-
ben" Seite 31)

9.2 Befehlsreferenz DirectServo

9.2.1 Bewegungsparameter

Methode Beschreibung
setJointVelocity- Achsspezifische Relativgeschwindigkeit (Typ: double; Einheit: %)
Rel(…)
 0.0 … 1.0
Default-Wert: 1
Bezieht sich auf den Maximalwert der Achsgeschwindigkeit in den
Maschinendaten.
Hinweis: Weitere Informationen zur Programmierung achsspezifischer
Bewegungsparameter sind in der Bedien- und Programmieranleitung
der System Software zu finden.
setJointAcceleration- Hinweis: Diese Methode hat bei der Bewegungsart DirectServo keine
Rel(…) Auswirkung.
setMinimumTrajecto- Minimale Ausführungszeit für eine Trajektorie. (Typ: double; Einheit:
ryExecutionTime(…) Sekunden)
 ≥0
Default-Wert: 0.01
Setzt die minimale Ausführungszeit für eine Trajektorie. Verändert den
Bahnverlauf.
setSpeedTimeoutAf- Timeout für das Geschwindigkeitsprofil nach Erreichen des Ziels. (Typ:
terGoalReach(…) double; Einheit: Sekunden)
 ≥0
Default-Wert: 0
Setzt den Timeout, bis wann der Interpolator mit einem Geschwindig-
keitsprofil weiter planen soll.

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 63 / 83


KUKA Sunrise.Connectivity 1.3

Methode Beschreibung
setTimeoutAfterGoal- Timeout nach Erreichen des Ziels für den Bewegungsbefehl. (Typ: dou-
Reach(…) ble; Einheit: Sekunden)
 ≥0
Default-Wert: 120
Wenn nach der angegebenen Zeit kein neues Ziel vorgegeben wurde,
wird der Bewegungsbefehl abgebrochen.
setMode(…) Setzen der Bewegungsart.
Hinweis: Weitere Informationen zur Programmierung sind in der
Bedien- und Programmieranleitung der System Software zu finden.

9.2.2 Laufzeit-Parameter

Methode Beschreibung
setGoalReachedE- Setzen des Eventhandler beim Erreichen des Ziels. Der Parameter
ventHandler(…) muss eine Implementierung des Typs IServoOnGoalReachedEvent
sein.
setDetailedOutput(…) Setzen des Detailgrades der Debug-Informationen.
 1, 2, 3
Default-Wert: 1
(>>> 7.5.1.3 "Debug-Informationen auslesen und ausgeben" Seite 29)
setMinimumTrajecto- Minimale Ausführungszeit für eine Trajektorie. (Typ: double; Einheit:
ryExecutionTime(…) Sekunden)
 ≥0
Default-Wert: 0.01
Setzt die minimale Ausführungszeit für eine Trajektorie. Verändert den
Bahnverlauf.
activateWaitForPau- Aktiviert in T1/T2 das Pausieren einer Bewegung, sobald die Start-Taste
seDuringSetDestina- oder ein Zustimmungsschalter losgelassen wird. (Typ: boolean)
tion(…)
Default-Wert: true
Wird diese Einstellung deaktiviert, läuft die Applikation weiter und ist für
die Pausierung und das Wiederanfahren verantwortlich.
changeControlMode- Ändern der Regler-Parameter während der Impedanzregelung
Settings(…)
(>>> 7.10.3 "Regler-Parameter zur Laufzeit ändern" Seite 38)

9.2.3 Zielposition setzen

Methode Beschreibung
setDestination(…) Setzen einer neuen achsspezifischen Zielposition
(>>> 7.5.2.1 "Achsspezifische Zielposition vorgeben" Seite 30)
Setzen einer neuen kartesischen Zielposition
(>>> 7.5.3.1 "Kartesisches Ziel im Roboterfuß-Koordinatensystem vor-
geben" Seite 31)
Setzen einer neuen kartesischen Zielposition und eines Referenz-Koor-
dinatensystems, in dem die Servo-Bewegung ausgeführt werden soll
(>>> 7.5.3.2 "Kartesisches Ziel im Referenz-Koordinatensystem vorge-
ben" Seite 31)

64 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


10 Ausnahmebehandlung

10 Ausnahmebehandlung

10.1 Beispiel für Ausnahmebehandlung

Beschreibung Die Bewegungsarten SmartServo und DirectServo stellen Exceptions zur Ver-
fügung, mit denen Laufzeitfehler an die Applikation übermittelt werden.
Diese Exceptions können von der Applikation in Form des Java-konformen
try-catch-Blocks behandelt werden. Nicht von der Applikation behandelte Ex-
ceptions führen zum Abbruch der Applikation.

Beispiel In diesem Programmierbeispiel werden alle Laufzeit-Exceptions abgefangen.


Tritt im try-Block ein Fehler auf, wird die Ausführung des try-Blocks abgebro-
chen und direkt mit dem catch-Block fortgefahren.
Im catch-Block wird der Fehler abgefangen und eine fehlerspezifische Mel-
dung ausgegeben.
try
{
// Create the motion
SmartServo aSmartServoMotion = new SmartServo(initialPosition);
_toolAttachedToLBR.getDefaultMotionFrame().
moveAsync(aSmartServoMotion);
// Fetch the Runtime of the Motion part
IServoRuntime theServoRuntime = aSmartServoMotion.getRuntime();
// do repetitive loop
do
{
// Do some computations
//
theServoRuntime.setDestination(destination);
} while (notFinished);
}
catch (Exception e)
{
getLogger().error(e.getMessage());
throw(new Exception(e));
}

10.2 Übersicht Exceptions – Laufzeitfehler-Meldungen

Exception / Quelle Meldung Ursache / Abhilfe


Typ: IllegalArgumentException "frameOnFlange is Der Frame frameOnFlange wurde
null" nicht angegeben.
Quelle:
"base is null" Es wurde kein Referenz-Koordina-
 IServoRuntime.getCurrentCar- tensystem angegeben.
tesianDestination(…)
"frameOnFlange is Der angegebene Frame
 IServoRuntime.getCurrentCar- not frame below or frameOnFlange ist nicht mit dem
tesianPosition(…) equal to the flange of Roboterflansch verbunden.
this robot"
"base is not static Das Referenz-Koordinatensystem
relative to the base of ist mit dem Roboterflansch ver-
this robot" bunden und damit beweglich.

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 65 / 83


KUKA Sunrise.Connectivity 1.3

Exception / Quelle Meldung Ursache / Abhilfe


Typ: IllegalStateException "waitForTransferred Die Servo-Bewegung wurde mit
timeout to become moveAsync(…) angefordert. Die
Quelle:
activated in realtime- Zeitdauer bis zur Aktivierung ist
 IServoMotion.getRuntime() system" überschritten worden.
Mögliche Ursachen:
 Applikation ist pausiert.
 Vorausgehende Bewegungen
in der Applikation dauern zu
lange an.
Typ: IllegalStateException "waitForTransferred Die Servo-Bewegung wurde noch
called prematurely - nicht mit moveAsync(…) aktiviert.
Quelle:
RealtimeMotion is not Programmierreihenfolge prüfen.
 IServoMotion.getRuntime() active"
 IServoRuntime.stopMotion()
Typ: CommandInvalidException "Command is no lon- Bei der Aktualisierung der Applika-
ger active, because" tionsdaten mit den Echtzeitsys-
Quelle:
+ errorReason tem-Daten ist ein Fehler
 IServoRuntime.updateWith- aufgetreten. Die Fehlerursache (=
RealtimeSystem() errorReason) wird in der Meldung
spezifiziert.
(>>> 10.3 "Fehlerursachen Com-
mandInvalidException" Seite 66)

10.3 Fehlerursachen CommandInvalidException

errorReason Ursache Abhilfe


"tracking error" Die Differenz zwischen Soll-  Lasten am Roboter prüfen.
und Istposition ist zu hoch.  Lastdaten prüfen und bei
Der Roboter kann dem Kom- Bedarf korrigieren.
mandoverlauf nicht folgen.
 Sollvorgaben für Ge-
Mögliche Ursachen: schwindigkeit und Be-
schleunigung in
 Roboter ist überladen,
setDestination(…) prüfen
z. B. weil das verwendete
und bei Bedarf reduzieren.
Werkzeug zu schwer ist.
Auch die Last eines gegrif-
fenen Werkstücks ist zu
beachten.
 Lastdaten sind falsch ein-
getragen.
 Sollgeschwindigkeit oder
Sollbeschleunigung sind
zu hoch.
"speed limit exceeded" Zielvorgabe-Intervall ist zu Intervall an sequentiellen Ziel-
hoch. vorgaben durch setDestina-
tion(…) reduzieren.

66 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


10 Ausnahmebehandlung

errorReason Ursache Abhilfe


"checkAxisTorqueLimit" Die Drehmomentvorgabe der  Lasten am Roboter prüfen.
Regelung ist zu hoch.  Lastdaten prüfen und bei
Mögliche Ursachen: Bedarf korrigieren.

 Roboter ist überladen,


z. B. weil das verwendete
Werkzeug zu schwer ist.
Auch die Last eines gegrif-
fenen Werkstücks ist zu
beachten.
 Lastdaten sind falsch ein-
getragen.
"msr T1 illegal speed limit Die gemessene kartesische  In Impedanzregelung: Ex-
detected" Geschwindigkeit im Modus T1 terne Kraft prüfen, die auf
ist zu hoch. den Roboter wirkt.
 Sollvorgabe in setDestina-
tion(…) korrigieren.
"cmd T1 illegal speed limit Die kartesische Sollgeschwin- Sollvorgabe in setDestina-
detected" digkeit im Modus T1 ist zu tion(…) korrigieren.
hoch.
"directServo: Target Outside In der Bewegungsart Direct- Sollvorgabe in setDestina-
accepted Delta" Servo darf die Sollposition tion(…) korrigieren.
maximal 5° von der aktuellen
Istposition entfernt liegen.
"directServo: Target Outside Die Sollvorgabe liegt außer- Sollvorgabe in setDestina-
Joint Limit" halb des erlaubten Achsbe- tion(…) korrigieren.
reichs (DirectServo).
"interpolation error: Die Sollvorgabe liegt außer- Sollvorgabe in setDestina-
RML_ERROR_POSITIONAL_ halb des erlaubten Achsbe- tion(…) korrigieren.
LIMITS" reichs (SmartServo).
"interpolation error: Interner Fehler KUKA Service kontaktieren.
ERROR_INVALID_INPUT_VA
LUES"
"interpolation error: ERROR" Interner Fehler KUKA Service kontaktieren.
"interpolation error: Interner Fehler KUKA Service kontaktieren.
ERROR_EXECUTION_TIME
_CALCULATION"
"interpolation error: Interner Fehler KUKA Service kontaktieren.
ERROR_SYNCHRONIZATIO
N"
"interpolation error: Interner Fehler KUKA Service kontaktieren.
ERROR_NUMBER_OF_DOF
S"
"interpolation error: Interner Fehler KUKA Service kontaktieren.
ERROR_NO_PHASE_SYNC
HRONIZATION"
"interpolation error: Interner Fehler KUKA Service kontaktieren.
ERROR_NULL_POINTER"
"interpolation error: Interner Fehler KUKA Service kontaktieren.
ERROR_EXECUTION_TIME
_TOO_BIG"

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 67 / 83


KUKA Sunrise.Connectivity 1.3

errorReason Ursache Abhilfe


"interpolation error: Interner Fehler KUKA Service kontaktieren.
RML_ERROR_USER_TIME_
OUT_OF_RANGE"
"interpolation error: Interner Fehler KUKA Service kontaktieren.
RML_ERROR_OVERRIDE_O
UT_OF_RANGE"

68 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


11 Fehlerbehebung

11 Fehlerbehebung

11.1 TCP/IP-Verkehr von Windows zu langsam

Beschreibung Die standardmäßige Einstellung des TCP/IP-Netzwerkadapters unter Win-


dows verursacht zu große Aktualisierungs-Intervalle (>100 ms). Dies wirkt
sich negativ auf die Kommandovorgabe aus (Sekundenzeigereffekt).
Die Aktualisierung der Echtzeitsystem-Daten mit den Applikationsdaten sollte
im Durchschnitt nicht mehr als 5 ms in Anspruch nehmen.
(>>> 7.5.1.1 "Zeitstempel abfragen" Seite 28)
timing update Controller n(24212) T(0.89, 1.85, 6.30 msec)
(stdDev 0.33)
timing SetDestination n(24212) T(0.91, 1.92, 6.36 msec)
(stdDev 0.34)

Weist die numerische Zeitstatistik T(min, mean, max) bei Minimum und Durch-
schnitt einen Wert >100 ms auf, kann die Ursache die in Windows standard-
mäßige Optimierung der TCP/IP-Einstellung für hohen Datendurchsatz sein.
Diese bewirkt das Bündeln kleiner Einzel- zu größeren TCP/IP-Paketen, was
jedoch zur Verzögerungen der Kommunikation mit dem Echtzeitsystem führt.
Dabei werden Rückbestätigungen durch das Echtzeitsystem in kurzen Inter-
vallen verhindert.
Um das ungebündelte Versenden einzelner TCP/IP-Pakete zu realisieren,
müssen 2 neue Schlüssel in der Windows-Registrierungsdatenbank erstellt
werden.

Voraussetzung  Lokale Administratorrechte

Bei Änderungen in der Registrierungsdatenbank ist auf Groß-/Klein-


schreibung zu achten, da Windows hier unterscheidet!

Vorgehensweise 1. Über die Eingabeaufforderung regedit starten.


2. Zum Pfad HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ser-
vices\Tcpip\Parameters\Interfaces navigieren.
3. Den entsprechenden Unterordner öffnen, der einen Schlüssel-Wert mit
der IP-Adresse des gewünschten Netzwerkadapters enthält.
4. Auf den zuvor lokalisierten Ordner des Netzwerkadapters rechts klicken.
a. Auswählen: New > DWORD (32-bit) Value
b. Neu erstellten Eintrag TcpAckFrequency benennen.
c. Auf neu erstellten Eintrag TcpAckFrequency rechts klicken.
d. Auswählen: Modify
e. Auswählen: Hexadecimal
f. Wert eintragen: 1
5. Auf den zuvor lokalisierten Ordner des Netzwerkadapters rechts klicken.
a. Auswählen: New > DWORD (32-bit) Value
b. Neu erstellten Eintrag TCPNoDelay benennen.
c. Auf neu erstellten Eintrag TCPNoDelay rechts klicken.
d. Auswählen: Modify
e. Auswählen: Hexadecimal
f. Wert eintragen: 1
6. Überprüfung:

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 69 / 83


KUKA Sunrise.Connectivity 1.3

 Die beiden neu angelegten Schlüssel TcpAckFrequency und TCP-


NoDelay befinden sich im Ordner des Netzwerkadapters mit der kor-
rekten IP-Adresse und sind korrekt benannt.
 Beide Schlüssel weisen den Typ REG_DWORD auf.
 Beide Schlüssel besitzen den Wert 0×00000001.
7. Betriebssystem Windows neu starten.

11.2 Roboter fährt ruckartig/pfeift - Sekundenzeigereffekt vermeiden

Durch Auftreten des Sekundenzeigereffekts kann der


Roboter beschädigt werden. KUKA haftet nicht für
Schäden, die auf dauerhaften Betrieb des Roboters im Sekundenzeigeref-
fekt zurückzuführen sind.

Voraussetzung  TCP/IP-Verkehr von Windows arbeitet ausreichend zügig.


(>>> 11.1 "TCP/IP-Verkehr von Windows zu langsam" Seite 69)

Abhilfe Zur Vermeidung des Sekundenzeigereffektes sind folgende Maßnahmen


möglich:
 Größere Bewegungsabschnitte vorgeben.
Bewegungsabschnitte größer vorgeben, damit der nächste Aufruf von set-
Destination(…) rechtzeitig möglich ist. Da der Feininterpolator dadurch
das Ziel nicht erreicht, tritt der Sekundenzeigereffekt nicht auf.
Eine typische Anwendung hierfür ist Visual Servoing, bei der eine Kamera/
Bildverarbeitung in "langsamer" Folge weit entfernte Zielposen vorgibt.
 Maximale Geschwindigkeit und Beschleunigung reduzieren.
Maximale Geschwindigkeit und Beschleunigung gemäß dem erwarteten
Bewegungsmuster so weit reduzieren, dass eine neue Zielvorgabe ge-
setzt wird, bevor der vorige Bewegungsabschnitt abgeschlossen ist.
 Minimale Synchronisationszeit vorgeben.
Mit setMinimumTrajectoryExecutionTime(…) den Wert für die minimale
Synchronisationszeit ausreichend hoch definieren, so dass die nächste
Zielvorgabe vor dem Erreichen des Zielpunktes zu erwarten ist.

Abb. 11-1: Servo-Bewegung ohne Sekundenzeigereffekt

Als Faustregel für die minimale Synchronisationszeit empfiehlt sich das


1,5 bis 2-fache der Zykluszeit des Applikationskontextes. Über die Klasse
StatisticTimer kann die Zykluszeit gemessen werden.
(>>> 7.9 "Zeiterfassung" Seite 36)
 Bewegungsart SmartServo verwenden.
Bei der Bewegungsart DirectServo stößt die ruckbegrenzte Planung an
Grenzen, da das empfohlene Zielvorgabe-Intervall sehr kurz ist.

70 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


11 Fehlerbehebung

11.3 Impedanzregelung nicht aktivierbar

Ursache Die Validierung des Lastmodells für die Impedanzregelung ist fehlgeschlagen.

Abhilfe 1. Roboter mit einer PTP-Bewegung in eine nicht-singuläre Pose fahren.


2. Validierung erneut durchführen.

11.4 Rückkopplungseffekt

Beschreibung Bei der Verwendung von Servo-Bewegungen wird die Roboterposition sehr
schnell kommandiert, wobei die aktuelle Roboterposition in das Kommando
mit einfließt.

Abb. 11-2: Applikation ist Teil des Regelkreises

Dadurch kann es zu einem Rückkopplungseffekt kommen, der zu einem


Brummen und Aufschwingen des Roboters führt. Der Roboter und die Appli-
kation an sich sind voll funktionsfähig.
(>>> 7.11 "Rückkopplungseffekt bei Servo-Bewegungen" Seite 40)

Abhilfe In der Java-Applikation (empfohlen):


 Regelgesetz überprüfen und analysieren.
 Verstärkung in der Applikation reduzieren.
Am Roboter (auf Kosten der Performance):
 Roboter-Performance reduzieren:
 Programm-Override reduzieren.
 Maximale Geschwindigkeit und Beschleunigung reduzieren.
 Bei Impedanzregelung: Nachgiebigkeit durch Ändern von Federstei-
figkeit und -dämpfung erhöhen.
Am Roboter (Erhöhen der Performance, nur bei SmartServo):
 Zur Planung verwendete maximale Beschleunigung mit overrideJointAc-
celeration(…) überhöhen.
 Zur Planung verwendeten maximalen Ruck mit setJointJerk(…) überhö-
hen.
(>>> 7.12.1 "SmartServo vs. DirectServo - Vergleich der Achspositionen im
Zeitverlauf" Seite 43)
(>>> 7.12.2 "SmartServo vs. DirectServo - Vergleich mit Geschwindigkeit,
Beschleunigung, Ruck" Seite 50)

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 71 / 83


KUKA Sunrise.Connectivity 1.3

72 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


12 KUKA Service

12 KUKA Service

12.1 Support-Anfrage

Einleitung Diese Dokumentation bietet Informationen zu Betrieb und Bedienung und un-
terstützt Sie bei der Behebung von Störungen. Für weitere Anfragen steht Ih-
nen die lokale Niederlassung zur Verfügung.

Informationen Zur Abwicklung einer Anfrage werden folgende Informationen benötigt:


 Typ und Seriennummer des Manipulators
 Typ und Seriennummer der Steuerung
 Typ und Seriennummer der Lineareinheit (wenn vorhanden)
 Typ und Seriennummer der Energiezuführung (wenn vorhanden)
 Version der System Software
 Optionale Software oder Modifikationen
 Diagnosepaket KrcDiag
Für KUKA Sunrise zusätzlich: Vorhandene Projekte inklusive Applikatio-
nen
Für Versionen der KUKA System Software älter als V8: Archiv der Soft-
ware (KrcDiag steht hier noch nicht zur Verfügung.)
 Vorhandene Applikation
 Vorhandene Zusatzachsen
 Problembeschreibung, Dauer und Häufigkeit der Störung

12.2 KUKA Customer Support

Verfügbarkeit Der KUKA Customer Support ist in vielen Ländern verfügbar. Bei Fragen ste-
hen wir gerne zur Verfügung!

Argentinien Ruben Costantini S.A. (Agentur)


Luis Angel Huergo 13 20
Parque Industrial
2400 San Francisco (CBA)
Argentinien
Tel. +54 3564 421033
Fax +54 3564 428877
ventas@costantini-sa.com

Australien KUKA Robotics Australia Pty Ltd


45 Fennell Street
Port Melbourne VIC 3207
Australien
Tel. +61 3 9939 9656
info@kuka-robotics.com.au
www.kuka-robotics.com.au

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 73 / 83


KUKA Sunrise.Connectivity 1.3

Belgien KUKA Automatisering + Robots N.V.


Centrum Zuid 1031
3530 Houthalen
Belgien
Tel. +32 11 516160
Fax +32 11 526794
info@kuka.be
www.kuka.be

Brasilien KUKA Roboter do Brasil Ltda.


Travessa Claudio Armando, nº 171
Bloco 5 - Galpões 51/52
Bairro Assunção
CEP 09861-7630 São Bernardo do Campo - SP
Brasilien
Tel. +55 11 4942-8299
Fax +55 11 2201-7883
info@kuka-roboter.com.br
www.kuka-roboter.com.br

Chile Robotec S.A. (Agency)


Santiago de Chile
Chile
Tel. +56 2 331-5951
Fax +56 2 331-5952
robotec@robotec.cl
www.robotec.cl

China KUKA Robotics China Co., Ltd.


No. 889 Kungang Road
Xiaokunshan Town
Songjiang District
201614 Shanghai
P. R. China
Tel. +86 21 5707 2688
Fax +86 21 5707 2603
info@kuka-robotics.cn
www.kuka-robotics.com

Deutschland KUKA Roboter GmbH


Zugspitzstr. 140
86165 Augsburg
Deutschland
Tel. +49 821 797-4000
Fax +49 821 797-1616
info@kuka-roboter.de
www.kuka-roboter.de

74 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


12 KUKA Service

Frankreich KUKA Automatisme + Robotique SAS


Techvallée
6, Avenue du Parc
91140 Villebon S/Yvette
Frankreich
Tel. +33 1 6931660-0
Fax +33 1 6931660-1
commercial@kuka.fr
www.kuka.fr

Indien KUKA Robotics India Pvt. Ltd.


Office Number-7, German Centre,
Level 12, Building No. - 9B
DLF Cyber City Phase III
122 002 Gurgaon
Haryana
Indien
Tel. +91 124 4635774
Fax +91 124 4635773
info@kuka.in
www.kuka.in

Italien KUKA Roboter Italia S.p.A.


Via Pavia 9/a - int.6
10098 Rivoli (TO)
Italien
Tel. +39 011 959-5013
Fax +39 011 959-5141
kuka@kuka.it
www.kuka.it

Japan KUKA Robotics Japan K.K.


YBP Technical Center
134 Godo-cho, Hodogaya-ku
Yokohama, Kanagawa
240 0005
Japan
Tel. +81 45 744 7691
Fax +81 45 744 7696
info@kuka.co.jp

Kanada KUKA Robotics Canada Ltd.


6710 Maritz Drive - Unit 4
Mississauga
L5W 0A1
Ontario
Kanada
Tel. +1 905 670-8600
Fax +1 905 670-8604
info@kukarobotics.com
www.kuka-robotics.com/canada

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 75 / 83


KUKA Sunrise.Connectivity 1.3

Korea KUKA Robotics Korea Co. Ltd.


RIT Center 306, Gyeonggi Technopark
1271-11 Sa 3-dong, Sangnok-gu
Ansan City, Gyeonggi Do
426-901
Korea
Tel. +82 31 501-1451
Fax +82 31 501-1461
info@kukakorea.com

Malaysia KUKA Robot Automation (M) Sdn Bhd


South East Asia Regional Office
No. 7, Jalan TPP 6/6
Taman Perindustrian Puchong
47100 Puchong
Selangor
Malaysia
Tel. +60 (03) 8063-1792
Fax +60 (03) 8060-7386
info@kuka.com.my

Mexiko KUKA de México S. de R.L. de C.V.


Progreso #8
Col. Centro Industrial Puente de Vigas
Tlalnepantla de Baz
54020 Estado de México
Mexiko
Tel. +52 55 5203-8407
Fax +52 55 5203-8148
info@kuka.com.mx
www.kuka-robotics.com/mexico

Norwegen KUKA Sveiseanlegg + Roboter


Sentrumsvegen 5
2867 Hov
Norwegen
Tel. +47 61 18 91 30
Fax +47 61 18 62 00
info@kuka.no

Österreich KUKA Roboter CEE GmbH


Gruberstraße 2-4
4020 Linz
Österreich
Tel. +43 7 32 78 47 52
Fax +43 7 32 79 38 80
office@kuka-roboter.at
www.kuka.at

76 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


12 KUKA Service

Polen KUKA Roboter Austria GmbH


Spółka z ograniczoną odpowiedzialnością
Oddział w Polsce
Ul. Porcelanowa 10
40-246 Katowice
Polen
Tel. +48 327 30 32 13 or -14
Fax +48 327 30 32 26
ServicePL@kuka-roboter.de

Portugal KUKA Sistemas de Automatización S.A.


Rua do Alto da Guerra n° 50
Armazém 04
2910 011 Setúbal
Portugal
Tel. +351 265 729780
Fax +351 265 729782
kuka@mail.telepac.pt

Russland KUKA Robotics RUS


Werbnaja ul. 8A
107143 Moskau
Russland
Tel. +7 495 781-31-20
Fax +7 495 781-31-19
info@kuka-robotics.ru
www.kuka-robotics.ru

Schweden KUKA Svetsanläggningar + Robotar AB


A. Odhners gata 15
421 30 Västra Frölunda
Schweden
Tel. +46 31 7266-200
Fax +46 31 7266-201
info@kuka.se

Schweiz KUKA Roboter Schweiz AG


Industriestr. 9
5432 Neuenhof
Schweiz
Tel. +41 44 74490-90
Fax +41 44 74490-91
info@kuka-roboter.ch
www.kuka-roboter.ch

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 77 / 83


KUKA Sunrise.Connectivity 1.3

Spanien KUKA Robots IBÉRICA, S.A.


Pol. Industrial
Torrent de la Pastera
Carrer del Bages s/n
08800 Vilanova i la Geltrú (Barcelona)
Spanien
Tel. +34 93 8142-353
Fax +34 93 8142-950
Comercial@kuka-e.com
www.kuka-e.com

Südafrika Jendamark Automation LTD (Agentur)


76a York Road
North End
6000 Port Elizabeth
Südafrika
Tel. +27 41 391 4700
Fax +27 41 373 3869
www.jendamark.co.za

Taiwan KUKA Robot Automation Taiwan Co., Ltd.


No. 249 Pujong Road
Jungli City, Taoyuan County 320
Taiwan, R. O. C.
Tel. +886 3 4331988
Fax +886 3 4331948
info@kuka.com.tw
www.kuka.com.tw

Thailand KUKA Robot Automation (M)SdnBhd


Thailand Office
c/o Maccall System Co. Ltd.
49/9-10 Soi Kingkaew 30 Kingkaew Road
Tt. Rachatheva, A. Bangpli
Samutprakarn
10540 Thailand
Tel. +66 2 7502737
Fax +66 2 6612355
atika@ji-net.com
www.kuka-roboter.de

Tschechien KUKA Roboter Austria GmbH


Organisation Tschechien und Slowakei
Sezemická 2757/2
193 00 Praha
Horní Počernice
Tschechische Republik
Tel. +420 22 62 12 27 2
Fax +420 22 62 12 27 0
support@kuka.cz

78 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


12 KUKA Service

Ungarn KUKA Robotics Hungaria Kft.


Fö út 140
2335 Taksony
Ungarn
Tel. +36 24 501609
Fax +36 24 477031
info@kuka-robotics.hu

USA KUKA Robotics Corporation


51870 Shelby Parkway
Shelby Township
48315-1787
Michigan
USA
Tel. +1 866 873-5852
Fax +1 866 329-5852
info@kukarobotics.com
www.kukarobotics.com

Vereinigtes König- KUKA Automation + Robotics


reich Hereward Rise
Halesowen
B62 8AN
Vereinigtes Königreich
Tel. +44 121 585-0800
Fax +44 121 585-0900
sales@kuka.co.uk

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 79 / 83


KUKA Sunrise.Connectivity 1.3

80 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


Index

Index
A Kartesisches Interface 31
Achsspezifische Istposition, auslesen 30 Kartesisches Ziel, vorgeben 31
Achsspezifische Zielposition, vorgeben 30 Katalog, Simple Tutorials for DirectServo 60
Achsspezifisches Interface 30 Katalog, Simple Tutorials for SmartServo 59
activateVelocityPlanning(…) 62 Kenntnisse, benötigt 9
activateWaitForPauseDuringSetDestination(…) Klasse IServoRuntime 28
62, 64 KUKA Customer Support 73
API 8 KUKA Sunrise Cabinet 8
Applikations-Zykluszeit, messen 36 KUKA Sunrise.Connectivity, Übersicht 11
Ausnahmebehandlung 65 KUKA Sunrise.OS 8
KUKA Sunrise.Workbench 8
B KUKA-Timer 36
Bahnparameter, ändern 35
Befehlsreferenz 61 L
Begriffe, verwendet 8 Lastmodell, validieren 37
Beispielapplikationen 59 Laufzeitfehler-Meldungen 65
Benutzer-Timer 36 LBR iiwa 8
Live-Ansicht 13
C Live-Ansicht, starten 23
changeControlModeSettings(…) 62, 64
CommandInvalidException, Fehlerursachen 66 M
Marken 8
D MRK 8
Debug-Informationen, auslesen und ausgeben
29 O
DirectServo, Befehlsreferenz 63 onGoalReachedEvent(…) 34
DirectServo, Bewegungsparameter 63 overrideJointAcceleration(…) 62
DirectServo, Eigenschaften 11
DirectServo, installieren 17, 18 P
DirectServo, Laufzeit-Parameter 64 Produktbeschreibung 11
DirectServo, Zielposition setzen 64 Programmierung 25
DirectServoSampleInteractionControl 60 PTP, Eigenschaften 11
DirectServoSampleSimpleCartesian 60
DirectServoSampleSimpleJointMotion 60 R
Dokumentation, Industrieroboter 7 Referenz-Koordinatensystem 31, 33
Regler-Parameter, ändern 38
E Rendering Schnittstelle, Bedienung 21
Einleitung 7 Rendering VREP (Sicht) 21
Exception 8 Roboterfuß-Koordinatensystem 31, 32
Exceptions, Übersicht 65 RoboticsAPI, DirectServo und SmartServo 12
Rückkopplungseffekt 40
F Rückkopplungseffekt, Fehlerbehebung 71
Fehlanwendung 9
Fehlerbehebung 69 S
Feininterpolator, Zustand abfragen 29 Schnittstelle Rendering, installieren 18
Frames, synchronisieren 23 Schnittstelle Rendering, konfigurieren 22
Schnittstelle Rendering, V-REP PRO integrieren
H 19
Hinweise 7 Schnittstellen 11
Schulungen 9
I Sekundenzeigereffekt 27
Impedanzregelung 37 Sekundenzeigereffekt, Fehlerbehebung 70
Impedanzregelung, aktivieren 38 Service, KUKA Roboter 73
Impedanzregelung, nicht aktivierbar 71 Servo-Bewegung im Applikationskontext 25
Installation 17 Servo-Bewegung, beenden 33
setAmplitude(…) 39
K setBias(…) 39
Kartesische Istposition, auslesen 32, 33 setDamping(…) 38

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 81 / 83


KUKA Sunrise.Connectivity 1.3

setDestination(…) 63, 64 T
setDestination(…), Ziel vorgeben, einfach 26 TCP/IP-Verkehr, langsam 69
setDestination(…), Ziel vorgeben, zyklisch 26 Timeouts 34
setDetailedOutput(…) 62, 64
setFallTime(…) 39 U
setForceLimit(…) 39 Umgang mit dem Echtzeitsystem 28
setFrequency(…) 39
setGoalReachedEventHandler(…) 34, 62, 64 Ü
setHoldTime(…) 39 Übergang zwischen Regelungsarten 40
setJointAccelerationRel(…) 61, 63
setJointVelocityRel(…) 61, 63 V
setMaxControlForce(…) 40 V-REP PRO 8, 13
setMaxPathDeviation(…) 39 Verwendung, bestimmungsgemäß 9
setMinimumTrajectoryExecutionTime(…) 61,
62, 63, 64 Z
setMode(…) 62, 64 Zeiterfassung 36
setNullSpaceDamping(…) 38 Zeitstempel, abfragen 28
setNullSpaceStiffness(…) 38 Zielerreichung 34
setPhaseDeg(…) 39 Zielgeschwindigkeit, vorgeben 30
setPositionLimit(…) 39 Zielgruppe 9
setRiseTime(…) 39 Zweckbestimmung 9
setSpeedTimeoutAfterGoalReach(…) 61, 63
setStiffness(…) 38
setTimeoutAfterGoalReach(…) 61, 64
Sicherheit 15
Sicherheitshinweise 7
SmartServo vs. DirectServo 43, 50
SmartServo, Befehlsreferenz 61
SmartServo, Bewegungsparameter 61
SmartServo, Eigenschaften 11
SmartServo, installieren 17
SmartServo, Laufzeit-Parameter 62
SmartServo, Zielposition setzen 63
SmartServoSampleInteractionControl 59
SmartServoSampleSimpleCartesian 59
SmartServoSampleSimpleJointMotion 59
Sprungantwort der Systeme 43
Sprungantwort SmartServo vs. DirectServo, A1
44, 52
Sprungantwort SmartServo vs. DirectServo, A2
45, 53
Sprungantwort SmartServo vs. DirectServo, A3
46, 54
Sprungantwort SmartServo vs. DirectServo, A4
47, 55
Sprungantwort SmartServo vs. DirectServo, A5
48, 56
Sprungantwort SmartServo vs. DirectServo, A6
49, 57
Sprungantwort SmartServo vs. DirectServo, A7
50, 58
stopMotion() 33
Sunrise.Connectivity DirectServo 11
Sunrise.Connectivity Rendering (Option) 11, 13
Sunrise.Connectivity SmartServo 11
Support-Anfrage 73
Systemreaktionszeit 8
Systemvoraussetzungen, Hardware 17
Systemvoraussetzungen, Software 17

82 / 83 Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1


KUKA Sunrise.Connectivity 1.3

Stand: 19.08.2014 Version: KUKA Sunrise.Connectivity 1.3 V1 83 / 83

Vous aimerez peut-être aussi