DE102019217630B3 - Verfahren zum Ausführen einer Applikation eines Robotersystems - Google Patents

Verfahren zum Ausführen einer Applikation eines Robotersystems Download PDF

Info

Publication number
DE102019217630B3
DE102019217630B3 DE102019217630.5A DE102019217630A DE102019217630B3 DE 102019217630 B3 DE102019217630 B3 DE 102019217630B3 DE 102019217630 A DE102019217630 A DE 102019217630A DE 102019217630 B3 DE102019217630 B3 DE 102019217630B3
Authority
DE
Germany
Prior art keywords
robot
data object
object template
component
coordinate system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102019217630.5A
Other languages
English (en)
Inventor
Günther Dörner
Alexander Chekler
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KUKA Deutschland GmbH
Original Assignee
KUKA Deutschland GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KUKA Deutschland GmbH filed Critical KUKA Deutschland GmbH
Priority to DE102019217630.5A priority Critical patent/DE102019217630B3/de
Priority to PCT/EP2020/080225 priority patent/WO2021094085A1/de
Application granted granted Critical
Publication of DE102019217630B3 publication Critical patent/DE102019217630B3/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

Ein erfindungsgemäßes Verfahren zum Ausführen, insbesondere Inbetriebnehmen, einer Applikation eines Robotersystems, weist die Schritte:
- Instanzieren (S10) wenigstens einer ersten Roboterinstanz aus einem ersten Roboterdatenobjekttemplate aus einer Datenobjekttemplatebibliothek, welches
- eine Identifikation; und
- wenigstens ein Koordinatensystem; aufweist;
- Instanzieren (S10) wenigstens einer ersten Komponenteninstanz aus einem ersten Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches
- eine Identifikation; und
- wenigstens ein Koordinatensystem aufweist; wenigstens einen der Schritte:
- Instanzieren (S10) wenigstens einer zweiten Komponenteninstanz aus dem ersten Komponentendatenobjekttemplate oder einem zweiten Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches
- eine Identifikation; und
- wenigstens ein Koordinatensystem aufweist; und/oder
- Instanzieren wenigstens einer weiteren Roboterinstanz aus dem ersten Roboterdatenobjekttemplate oder einem weiteren Roboterdatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches
- eine Identifikation; und
- wenigstens ein Koordinatensystem; aufweist; und die Schritte auf:
- Einbinden (S20) dieser Instanzen in einen Szenengraph des Robotersystems, welcher wenigstens ein Wurzel-Koordinatensystem enthält; und
- Steuern (S30) des Robotersystems zum Ausführen der Applikation auf Basis von Daten des Szenengraphs.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Ausführen einer Applikation eines Robotersystems, ein System zum Ausführen der Applikation nach dem Verfahren sowie ein Computerprogrammprodukt zur Durchführung des Verfahrens.
  • Robotersysteme bzw. durch diese ausgeführte (Roboter)Applikationen umfassen üblicherweise einen oder mehrere Roboter, Werkzeuge wie zum Beispiel Greifer, stationäre Vorrichtungen wie zum Beispiel Magazine, insbesondere Spender oder Ablagen, Verarbeitungseinrichtungen, sowie Werkstücke.
  • Bei der Ausführung, insbesondere Integration, der Applikationen müssen häufig eine Geometrie und geometrische Beziehungen in der (Roboter)Zelle, Position und Orientierung, anzufahrende Punkte, Greif- und Manipulationspunkte, sicherheitsrelevante, geometrische Eigenschaften wie zum Beispiel Überwachungsräume, Form- bzw. Störkonturen, mechanische Eigenschaften, insbesondere Massen und Massenverteilungen bzw. Massenschwerpunkte und/oder Trägheitsmomente, verschiedene Funktion(alität)en, Programmierschnittstellen zum Beispiel zum Öffnen/Schließen eines Greifers, Ermittlung der Position eines Werkstücks in einem Magazin oder dergleichen, ein Verhalten wie zum Beispiel zyklische Überwachungen, Konfiguration und Parametrierung, ein aktueller Zustand, beispielsweise eine Anzahl von Werkstücken in einem Magazin, Bedienschnittstellen wie zum Beispiel Benutzerschnittstellen zum manuellen Öffnen eines Greifers oder dergleichen berücksichtigt, insbesondere konfiguriert werden.
  • Bisher erfolgt die Inbetriebnahme, insbesondere Konfiguration, der verschiedenen Aspekte an unterschiedlichen Stellen und auf unterschiedliche Weise. Dabei vermischt sich üblicherweise die Behandlung von Aspekten, die zu einem bestimmten Objekt (zum Beispiel einem Roboter, Werkzeug, Werkstück oder einer stationären Vorrichtung) gehören, mit der Behandlung jener Aspekte, die nicht dazu gehören. Dies ist oft dem Vorgehen geschuldet, dass alle Daten einer Kategorie (z.B. anzufahrende Punkte) zusammen in einer Datei stehen und nicht unterscheidbar sind. Selbst wenn die Behandlung eines Aspekts Modularität erlaubt (z.B. durch die Möglichkeit, die Daten auf mehrere Dateien aufzuteilen), ist nicht erkennbar, welche Daten betroffen sind, wenn ein Objekt der Roboterapplikation durch ein anderes ersetzt werden soll.
  • So sind zum Beispiel die Greifpunkte für die Entnahme von Werkstücken aus einem Magazin in der Roboterapplikation nicht von anderen Punkten unterscheidbar, die nichts mit der Werkstückentnahme zu tun haben, oder die I/O-Konfiguration zur Integration eines Greifers erfolgt in derselben Datei wie die Integration anderer Peripherie.
  • Diese Vermischung führt insbesondere dazu, dass der Austausch eines Objekts aufwändig und schwierig ist. Des Weiteren können ermittelte Daten (z.B. die Greifpunkte eines Magazins) nicht einfach in anderen Applikationen wiederverwendet werden.
  • Die DE 20 2017 102 379 U1 betrifft ein Greifsystem mit Endeffektoren, die als intelligente Sensor-Aktor-Systeme über eine oder mehrere dezentrale Steuereinheiten im oder außerhalb des Endeffektors verfügen, welche eine bidirektionale Kommunikation und eine unmittelbare Interaktion mit weiteren Systemsteuerungen ermöglichen, um einen geregelten Greif-, Bearbeitungs- oder Bewegungsvorgang zu unterstützen, diesen zu koordinieren und/oder eine Zustandsdiagnose des Werkstücks, des Greifguts, des Greifsystems und der kinematischen Wirkkette zu eröffnen, wobei ein oder mehrere sensor- und signalverarbeitende Systeme integriert sind.
  • Die DE 10 2015 222 167 A1 betrifft ein Verfahren zum vereinfachten Ändern von Applikationsprogrammen einer Industrieanlage, umfassend die folgenden Verfahrensschritte: (a) Bereitstellen zumindest eines Applikationsprogramms auf einer Industrieanlage , wobei das zumindest eine Applikationsprogramm mehrere Programmstellen aufweist; (b) Bereitstellen zumindest einer grafischen Darstellung, wobei die zumindest eine grafische Darstellung zumindest einen Systemzustand der Industrieanlage zeigt, wobei der Systemzustand einer Programmstelle entspricht und die grafische Darstellung mit zumindest einer Programmstelle des zumindest einen Applikationsprogramms verknüpft ist; (c) Ausführen des Applikationsprogramms und falls das Applikationsprogramm stoppt, Ausführen der folgenden Verfahrensschritte: (d) Vergleichen des aktuellen Systemzustands der Industrieanlage mit der zumindest einen grafischen Darstellung und (e) Folgen einer Verknüpfung zwischen der grafischen Darstellung und einer Programmstelle, um das Applikationsprogramm zu ändern.
  • Die DE 10 2015 218 697 A1 betrifft ein Verfahren zur automatischen Konfiguration eines externen Steuerungssystems zur Regelung und/oder Steuerung eines Robotersystems, bei dem ein externes Steuerungssystem sowie ein Robotersystem, welches zumindest einen Manipulator mit einem Antriebssystem aufweist, bereitgestellt werden, weiterhin eine Verbindung zum Datenaustausch zwischen dem Robotersystem und dem externen Steuerungssystem aufgebaut wird, Beschreibungsdaten vom Robotersystem an das externeSteuerungssystem übertragen werden, wobei die Beschreibungsdaten Informationen über Achsparameter des Manipulators umfassen, des Weiteren ein mathematisches Robotermodell durch das externe Steuerungssystem auf Basis der empfangenen Beschreibungsdaten erstellt wird und es eine kommunikative und/oder elektrische Verbindung zwischen dem externen Steuerungssystem und dem Antriebssystem des Manipulators auf Basis der empfangenen Beschreibungsdaten eingerichtet wird.
  • Die DE 10 2014 221 797 A1 betrifft ein Verfahren und ein System zum Erfassen von Bahnpunkten auf einem Werkstück, wobei hierzu ein mehrachsiger Gelenkarmroboter trennbar an einen Handflansch eines Industrieroboters gekoppelt und das Werkstück automatisch durch den Gelenkarmroboter vermessen wird.
  • Die DE 10 2014 019 492 A1 betrifft ein Werkzeugsteuerung zur Ankopplung an eine Werkzeugschnittstelle eines Industrieroboters, mit einer Steueranordnung, mit einem Eingangsmodul und einem daran angeschlossenen Sensor und mit einem Ausgangsmodul und einem daran angeschlossenen Aktor, mit einer Roboterschnittstelle, die für eine elektrische Kopplung mit der Werkzeugschnittstelle eines Industrieroboters ausgebildet ist, mit einem internen Kommunikationssystem zur Verbindung der Steueranordnung mit der Roboterschnittstelle und dem Eingangsmodul und dem Ausgangsmodul und mit einem Energiespeicher zur Bereitstellung von elektrischer Energie.
  • Die EP 2 140 316 B1 betrifft Roboterbetriebssteuereinheiten und ihre Gestalung und Kommunikationsprotokolle.
  • Eine Aufgabe einer Ausführung der vorliegenden Erfindung ist es, das Ausführen einer Applikation eines Robotersystems allgemein zu verbessern, vorzugsweise eines oder mehrere der vorgenannten Probleme zu reduzieren.
  • Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst. Ansprüche 13, 14 stellen ein System bzw. Computerprogrammprodukt zur Durchführung eines hier beschriebenen Verfahrens unter Schutz. Die Unteransprüche betreffen vorteilhafte Weiterbildungen.
  • Nach einer Ausführung der vorliegenden Erfindung umfasst ein Verfahren zum Ausführen, insbesondere Inbetriebnehmen, einer Applikation eines Robotersystems bzw. durch bzw. mit ein(em) Robotersystem, die Schritte:
    • - Instanzieren wenigstens einer ersten Roboterinstanz aus einem ersten Roboterdatenobjekttemplate aus einer Datenobjekttemplatebibliothek, welches eine Identifikation, vorzugsweise einen (individuellen) Namen, und wenigstens ein Koordinatensystem aufweist; und
    • - Instanzieren wenigstens einer ersten Komponenteninstanz aus einem ersten Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches eine Identifikation, vorzugsweise einen (individuellen) Namen, und wenigstens ein Koordinatensystem aufweist.
  • Ein oder mehrere Roboter des Robotersystems weisen in einer Ausführung jeweils einen ein- oder mehr-, vorzugsweise wenigstens vier-, insbesondere wenigstens sechs-, in einer Ausführung wenigstens siebenachsigen, Roboterarm auf, können insbesondere jeweils ein solcher sein. In einer Ausführung können ein oder mehrere Roboter des Robotersystems jeweils mobile, SCARA- und/oder Parallel(kinematik)roboter aufweisen, insbesondere sein.
  • In einer Ausführung ist bzw. wird ein Roboterdatenobjekttemplate der Datenobjekttemplatebibliothek (jeweils) einem (Typ) Roboter(arm) zugeordnet bzw. eine Roboterinstanz (jeweils) einem konkreten Roboter(arm) des Robotersystems.
  • Eine Komponente im Sinne der vorliegenden Erfindung umfasst in einer Ausführung eine Komponente des Robotersystems, die kein Roboter ist, in einer Weiterbildung ein, insbesondere robotergeführtes bzw. -festes oder umgebungsseitig geführtes, insbesondere umgebungsfestes, Werkzeug oder Werkstück oder eine Roboterumgebungseinrichtung, in einer Ausführung ein Magazin, insbesondere eine Ablage, einen Speicher und/oder Spender, eine Fördereinrichtung und/oder eine Fixier-, insbesondere Spann- und/oder Saugeinrichtung, oder dergleichen, sie kann insbesondere eine solche (von einem Roboter verschiedene) Komponente sein.
  • Entsprechend sind in einer Ausführung Komponentendatenobjekttemplates aus der Datenobjekttemplatebibliothek, vorzugsweise verschiedenartigen, Komponenten des Robotersystems, die kein Roboter sind, zugeordnet, in einer Weiterbildung
    • - ein oder mehrere Komponentendatenobjekttemplate(s jeweils), insbesondere robotergeführten bzw. -festen oder umgebungsseitig geführten, insbesondere umgebungsfesten, Werkzeug(typ- bzw. -art)en, vorzugsweise zwei oder mehr Komponentendatenobjekttemplates verschiedenen Werkzeug(typ- bzw. -art)en;
    • - ein oder mehrere Komponentendatenobjekttemplate(s jeweils), insbesondere robotergeführten bzw. -festen oder umgebungsseitig geführten, insbesondere umgebungsfesten, Werkstück(typ- bzw. -art)en, vorzugsweise zwei oder mehr Komponentendatenobjekttemplates verschiedenen Werkstück(typ- bzw. -art)en; und/oder
    • - ein oder mehrere Komponentendatenobjekttemplate(s jeweils) Roboterumgebungseinrichtung(styp- bzw. -art)en, in einer Ausführung Magazin(typ- bzw. -art)en, insbesondere Ablage(typ- bzw. -art)n, Speicher(typ- bzw. -art)n und/oder Spender(typ- bzw. -art)n, Fördereinrichtung(styp- bzw. -art)en und/oder Fixier-, insbesondere Spann- und/oder Saugeinrichtung(styp- bzw. -art)en, oder dergleichen, vorzugsweise zwei oder mehr Komponentendatenobjekttemplates verschiedenen (solcher) Roboterumgebungseinrichtung(styp- bzw. -art)en.
  • Entsprechend sind bzw. werden in einer Ausführung Komponenteninstanzen (jeweils) konkreten Komponenten des Robotersystems, die kein Roboter sind, zugeordnet, in einer Weiterbildung
    • - ein oder mehrere Komponenteninstanzen (jeweils konkreten), insbesondere robotergeführten bzw. -festen oder umgebungsseitig geführten, insbesondere umgebungsfesten, Werkzeugen;
    • - ein oder mehrere Komponenteninstanzen (jeweils konkreten), insbesondere robotergeführten bzw. -festen oder umgebungsseitig geführten, insbesondere umgebungsfesten, Werkstücken; und/oder
    • - ein oder mehrere Komponenteninstanzen (jeweils konkreten) Roboterumgebungseinrichtungen, in einer Ausführung (jeweils konkreten) Magazinen, insbesondere Ablagen, Speichern und/oder Spendern, Fördereinrichtungen und/oder Fixier-, insbesondere Spann- und/oder Saugeinrichtungen, oder dergleichen.
  • Dabei ist ein Werkstück in einer Ausführung ein Gegenstand bzw. Objekt, der bzw. das durch einen Roboter des Robotersystems manipuliert, insbesondere gegriffen, transportiert und/oder bearbeitet, wird. Eine oder mehrere der Roboterumgebungseinrichtungen sind in einer Ausführung statische Einrichtungen und/oder Einrichtungen, die in der Applikation nicht durch einen Roboter des Robotersystems manipuliert werden.
  • Somit wird/werden bzw. ist/sind in einer Ausführung für mehrere gleichartige Objekte von Robotersystemen jeweils ein (einheitliches) Datenobjekttemplate in der Datenobjekttemplatebibliothek vorgesehen bzw. dieses Datenobjekttemplate diesen gleichartigen Objekten zugeordnet, insbesondere also
    • - das erste Roboterdatenobjekttemplate einer ersten Art bzw. einem ersten Typ Roboter,
    • - das weitere Roboterdatenobjekttemplate einer weiteren Art bzw. einem weiteren Typ Roboter,
    • - das erste Komponentendatenobjekttemplate einer ersten Art bzw. einem ersten Typ Komponente,
    • - das zweite Komponentendatenobjekttemplate einer zweiten Art bzw. einem zweiten Typ Komponente, und/oder
    • - das weitere Komponentendatenobjekttemplate einer weiteren Art bzw. einem weiteren Typ Komponente.
  • Zusätzlich oder alternativ werden bzw. sind in einer Ausführung einem oder mehreren konkreten Objekten des Robotersystems jeweils eine (konkrete bzw. individuelle) Instanz desjenigen Datenobjekttemplates zugeordnet, das dieser Objektart bzw. gleichartigen Objekten dieser Art bzw. dieses Typs zugeordnet bzw. für diese in der Datenobjekttemplatebibliothek vorgesehen ist bzw. wird, insbesondere also
    • - einem ersten konkreten Roboter des Robotersystems die erste Roboterinstanz,
    • - einem weiteren konkreten Roboter des Robotersystems die weitere Roboterinstanz,
    • - einer ersten konkreten Komponente des Robotersystems die erste Komponenteninstanz,
    • - einer zweiten konkreten Komponente des Robotersystems die zweite Komponenteninstanz, und/oder
    • - einer weiteren konkreten Komponente des Robotersystems die weitere Komponenteninstanz.
  • Nach einer Ausführung der vorliegenden Erfindung umfasst das Verfahren den Schritt:
    • - Instanzieren wenigstens einer weiteren Roboterinstanz aus einem weiteren Roboterdatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches eine Identifikation, vorzugsweise einen (individuellen) Namen, und wenigstens ein Koordinatensystem aufweist, oder aus dem ersten Roboterdatenobjekttemplate.
  • Insbesondere können also für zwei oder mehr, vorzugsweise typ- bzw. baugleiche, Roboter des Robotersystems aus demselben Roboterdatenobjekttemplate, welches diesem Robotertyp bzw. diesen Robotern zugeordnet ist, jeweils eigene, insbesondere durch ihre Identifikation individualisierte, Roboterinstanzen vorgesehen sein bzw. werden. Zusätzlich oder alternativ können für zwei oder mehr unterschiedliche Robotertypen bzw. -bauarten des Robotersystems jeweils (typ)spezifische Roboterdatenobjekttemplates in der Datenobjekttemplatebibliothek vorhanden bzw. vorgesehen sein bzw. werden.
  • Zusätzlich oder alternativ zu einem Instanzieren wenigstens einer weiteren Roboterinstanz umfasst das Verfahren nach einer Ausführung der vorliegenden Erfindung den Schritt:
    • - Instanzieren wenigstens einer zweiten Komponenteninstanz aus einem zweiten Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches eine Identifikation, vorzugsweise einen (individuellen) Namen, und wenigstens ein Koordinatensystem aufweist, oder aus dem ersten Komponentendatenobjekttemplate.
  • In einer Weiterbildung insbesondere dieser Ausführung umfasst das Verfahren den Schritt:
    • - Instanzieren wenigstens einer weiteren Komponenteninstanz aus dem ersten Komponentendatenobjekttemplate oder aus dem zweiten Komponentendatenobjekttemplate oder aus einem hiervon verschiedenen weiteren Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches seinerseits eine Identifikation, vorzugsweise einen (individuellen) Namen, und wenigstens ein Koordinatensystem aufweist.
  • Insbesondere können also für zwei oder mehr, vorzugsweise typ- bzw. baugleiche, Komponenten des Robotersystems aus demselben Komponentendatenobjekttemplate, welches diesem Komponententyp bzw. diesen Komponenten zugeordnet ist, jeweils eigene, insbesondere durch ihre Identifikation individualisierte, Komponenteninstanzen vorgesehen sein bzw. werden. Zusätzlich oder alternativ können für zwei oder mehr unterschiedliche Komponententypen bzw. -arten des Robotersystems jeweils (typ- bzw. art)spezifische Komponentendatenobjekttemplates in der Datenobjekttemplatebibliothek vorhanden bzw. vorgesehen sein bzw. werden.
  • Nach einer Ausführung der vorliegenden Erfindung umfasst das Verfahren die Schritte:
    • - Einbinden dieser (Roboter- und Komponenten)lnstanzen in einen Szenengraph des Robotersystems, welcher wenigstens ein Wurzel-Koordinatensystem enthält; und
    • - Steuern des Robotersystems zum Ausführen der Applikation auf Basis von Daten des Szenengraphs, insbesondere von Daten der (Roboter- und Komponenten)lnstanzen des Szenengraphs.
  • Eine Ausführung der vorliegenden Erfindung beruht auf der Anwendung objektorientierter Prinzipien auf die Domäne der Roboterapplikationen. Entsprechend sind bzw. werden in einer Ausführung die (Roboter- und Komponenten)lnstanzen (in) objektorientiert(er Weise) in den Szenengraph eingebunden.
  • Hierdurch kann die Applikation, insbesondere ein(e) Programm(ierung) und/oder Steuerung, des Robotersystems in einer Ausführung vorteilhaft auf Daten von Roboter(n) und Komponente(n) des Robotersystems zugreifen. Dadurch kann in einer Ausführung das Ausführen, insbesondere Inbetriebnehmen, der Applikation, insbesondere das Steuern des Robotersystems, verbessert werden.
  • Unter einem Steuern wird vorliegend insbesondere auch ein Regeln und/oder ein Überwachen bzw. Ausgeben eines ein- oder mehrdimensionalen (Steuer- bzw. Überwachungs)Signals in Abhängigkeit von einem (Fehler)Zustand bzw. einer Abweichung des Robotersystems von einem Soll- bzw. Referenzzustand verstanden.
  • In einer Ausführung ist/sind bzw. wird/werden eine oder mehrere der (Roboter- und Komponenten)lnstanzen, insbesondere jeweils deren wenigstens eines Koordinatensystem, mit dem Wurzel-Koordinatensystem des Szenengraphs verknüpft, insbesondere programmtechnisch bzw. kinematisch, insbesondere über (Vorgabe) eine(r) Transformation, an dieses angebunden.
  • Zusätzlich oder alternativ ist/sind bzw. wird/werden in einer Ausführung eine oder mehrere der (Roboter- und Komponenten)lnstanzen, insbesondere jeweils deren wenigstens eines Koordinatensystem, (jeweils) mit einer oder mehreren weiteren der (Roboter- und Komponenten)lnstanzen, insbesondere jeweils deren wenigstens eines Koordinatensystem, verknüpft, insbesondere programmtechnisch bzw. kinematisch, insbesondere über (Vorgabe) eine(r) Transformation, an dieses angebunden.
  • In einer Ausführung weisen somit ein oder mehrere der (Roboter- und Komponenten)lnstanzen (jeweils) ein oder mehrere weitere der (Roboter- und Komponenten)lnstanzen als Kind(er) auf, so dass durch diese Eltern-Kind-Beziehung eine Baumstruktur entsteht bzw. der Szenengraph eine Baumstruktur aufweist, diese Baumstruktur in einer Ausführung den Szenengraphen bildet.
  • In einer Ausführung greift die Applikation, in einer Weiterbildung ein oder mehrere Objekte des Robotersystems, denen vorzugsweise Instanzen des Szenengraphs zugeordnet sind, und/oder Steuerungen zum Steuern dieser Objekte, insbesondere also eine oder mehrere Robotersteuerungen und/oder eine oder mehrere Roboterumgebungseinrichtungssteuerungen, (jeweils) lesend und/oder schreibend auf Daten des Szenengraphs, insbesondere seiner Instanzen, zu, in einer Ausführung während des Betriebs des Robotersystems bzw. der Laufzeit der Applikation.
  • In einer Weiterbildung werden Daten von wenigstens einer Instanz des Szenengraphs auf Basis von Eingangssignalen des Robotersystems, insbesondere von einem Objekt des Robotersystems, dem diese Instanz des Szenengraphs zugeordnet ist, verändert, insbesondere aktualisiert. Beispielsweise kann ein Magazin, dem eine Komponenteninstanz zugeordnet ist, seinen Füllstand erfassen und die entsprechenden Daten der entsprechenden Komponenteninstanz werden entsprechend aktualisiert.
  • Zusätzlich oder alternativ werden in einer Weiterbildung Daten von Instanzen des Szenengraphs bzw. entsprechende Ausgangssignale an Steuerungen zum Steuern von Objekten des Robotersystems ausgegeben, wobei diesen Objekten vorzugsweise Instanzen des Szenengraphs zugeordnet sind, insbesondere also an Roboter- und/oder Roboterumgebungseinrichtungssteuerungen, die ihrerseits auf Basis dieser Daten bzw. Ausgangssignale die entsprechenden Objekte entsprechend steuern. Beispielsweise kann ein Roboter auf Basis der entsprechenden, insbesondere aktualisierten, Daten eines Werkstücks, -zeugs und/oder einer Förder- und/oder Fixiereinrichtung entsprechend gesteuert werden.
  • In einer Ausführung weist das erste Roboterdatenobjekttemplate und/oder das weitere Roboterdatenobjekttemplate und/oder das erste Komponentendatenobjekttemplate und/oder das zweite Komponentendatenobjekttemplate und/oder das weitere Komponentendatenobjekttemplate (jeweils) ein oder mehrere geometrische Attribute, insbesondere eine oder mehrere Abmessungen, beispielsweise Achsabstände, Außenabmessungen oder dergleichen auf. In einer Ausführung weist das erste Roboterdatenobjekttemplate und/oder das weitere Roboterdatenobjekttemplate und/oder das erste Komponentendatenobjekttemplate und/oder das zweite Komponentendatenobjekttemplate und/oder das weitere Komponentendatenobjekttemplate (jeweils) wenigstens ein 2D- oder 3D-CAD-Modell auf. In einer Ausführung sind wenigstens zwei geometrische Attribute eines Datenobjekttemplates miteinander, insbesondere in einer Baumstruktur und/oder objektorientiert, verknüpft. Beispielsweise können ein CAD-Modell und Abmessungen miteinander verknüpft sein. Zusätzlich oder alternativ ist in einer Ausführung wenigstens ein geometrisches Attribut eines Datenobjekttemplates mit dessen wenigstens einem Koordinatensystem, insbesondere in einer Baumstruktur und/oder objektorientiert, verknüpft. Beispielsweise kann eine Abmessung sich auf einen Ursprung und/oder Richtungen des Koordinatensystems beziehen. Hierdurch kann in einer Ausführung mittels Daten des Szenengraphs eine Bewegung des Robotersystems vorteilhaft ermittelt werden.
  • Zusätzlich oder alternativ weist in einer Ausführung das erste Roboterdatenobjekttemplate und/oder das weitere Roboterdatenobjekttemplate und/oder das erste Komponentendatenobjekttemplate und/oder das zweite Komponentendatenobjekttemplate und/oder das weitere Komponentendatenobjekttemplate (jeweils) ein oder mehrere mechanische Attribute, insbesondere eine oder mehrere Massen und/oder Massenverteilungen, insbesondere einen Schwer- bzw. Massenmittelpunkt und/oder ein Trägheitsmoment auf, insbesondere von einem oder mehreren Teilen der Objekte, denen das Datenobjekttemplate zugeordnet ist, beispielsweise Gliedern des Roboter(arms) oder dergleichen. In einer Ausführung sind wenigstens zwei mechanische Attribute eines Datenobjekttemplates miteinander, insbesondere in einer Baumstruktur und/oder objektorientiert, verknüpft. Beispielsweise können eine Gesamtmasse und Einzelmassen miteinander verknüpft sein. Hierdurch kann in einer Ausführung mittels Daten des Szenengraphs eine Dynamik des Robotersystems vorteilhaft ermittelt werden.
  • Zusätzlich oder alternativ weist in einer Ausführung das erste Roboterdatenobjekttemplate und/oder das weitere Roboterdatenobjekttemplate und/oder das erste Komponentendatenobjekttemplate und/oder das zweite Komponentendatenobjekttemplate und/oder das weitere Komponentendatenobjekttemplate (jeweils) eine oder mehrere Funktionalitäten der Objekte, denen das Datenobjekttemplate zugeordnet ist, insbesondere (jeweils) eine Programmierschnittstelle und/oder Implementierung dieser (jeweiligen) Funktionalität auf. Beispielsweise kann ein Komponentendatenobjekttemplate eines Greifers die Funktionalität „Greifer offen/öffnen bzw. geschlossen/schließen“ aufweisen und hierzu eine entsprechende Programmierschnittstelle aufweisen, wobei für unterschiedliche Greiferarten unterschiedliche Implementierungen vorgesehen sein bzw. werden können. Hierdurch kann in einer Ausführung das entsprechende Objekt, beispielsweise ein Greifer, vorteilhaft ausgetauscht oder hinzugefügt werden.
  • Zusätzlich oder alternativ weist in einer Ausführung das erste Roboterdatenobjekttemplate und/oder das weitere Roboterdatenobjekttemplate und/oder das erste Komponentendatenobjekttemplate und/oder das zweite Komponentendatenobjekttemplate und/oder das weitere Komponentendatenobjekttemplate (jeweils) eine oder mehrere Benutzerschnittstellen zum Bedienen der Objekte, denen das Datenobjekttemplate zugeordnet ist, mittels eines Eingabegeräts auf, im vorgenannten Beispiel etwa eine Benutzerschnittstelle zum Öffnen/Schließen eines Greifers oder dergleichen.
  • Zusätzlich oder alternativ weist in einer Ausführung das erste Roboterdatenobjekttemplate und/oder das weitere Roboterdatenobjekttemplate und/oder das erste Komponentendatenobjekttemplate und/oder das zweite Komponentendatenobjekttemplate und/oder das weitere Komponentendatenobjekttemplate (jeweils) ein oder mehrere von einer Konfiguration der Objekte, denen das Datenobjekttemplate zugeordnet ist, abhängige Konfiguration-Attribute auf. In einer Ausführung bilden diese Konfiguration-Attribute eine Sub-Baumstruktur. Zusätzlich oder alternativ weisen ein oder mehrere dieser Zustands-Attribute Meta-Informationen über ihre Verwendung auf, beispielsweise die physikalische Einheit oder ein Flag, der anzeigt, ob der Attributwert vom Endanwender zur Laufzeit editiert werden kann. Durch die Meta-Informationen können in einer Ausführung automatisch Editoren generiert werden.
  • Zusätzlich oder alternativ weist in einer Ausführung das erste Roboterdatenobjekttemplate und/oder das weitere Roboterdatenobjekttemplate und/oder das erste Komponentendatenobjekttemplate und/oder das zweite Komponentendatenobjekttemplate und/oder das weitere Komponentendatenobjekttemplate (jeweils) ein oder mehrere von einem aktuellen, variablen Zustand der Objekte, denen das Datenobjekttemplate zugeordnet ist, abhängige Zustands-Attribute auf. In einer Ausführung bilden diese Zustands-Attribute eine Sub-Baumstruktur. Zusätzlich oder alternativ weisen ein oder mehrere dieser Zustands-Attribute Meta-Informationen über ihre Verwendung auf, beispielsweise die physikalische Einheit oder ein Flag, der anzeigt, ob der Attributwert vom Endanwender zur Laufzeit editiert werden kann. Durch die Meta-Informationen können in einer Ausführung automatisch Editoren generiert werden.
  • Hierdurch können in einer Ausführung Parameterwerte für die statische Konfiguration des entsprechenden Objekts und/oder zur Abbildung von Laufzeit-Zuständen wie z.B. der aktuellen Anzahl der Werkstücke in einem Magazin zur Verfügung gestellt werden. Durch die hierarchische Anordnung und die Möglichkeit, auch Listen oder Maps zu verwenden, lassen sich in einer Ausführung vorteilhaft komplexe(re) Parameterstrukturen abbilden.
  • In einer Ausführung weist das erste Roboterdatenobjekttemplate und/oder das weitere Roboterdatenobjekttemplate und/oder das erste Komponentendatenobjekttemplate und/oder das zweite Komponentendatenobjekttemplate und/oder das weitere Komponentendatenobjekttemplate (jeweils) zwei oder mehr Koordinatensysteme auf, wobei in einer Weiterbildung das wenigstens eine Koordinatensystem die Wurzel einer Sub-Baumstruktur und das und die weitere(n) Koordinatensystem(e) Kinder bzw. Zweige dieser Sub-Baumstruktur bilden. Hierdurch können in einer Ausführung komplexe(re) Objekte und vorzugsweise Objekte mit mehreren gegeneinander beweglichen Teilen vorteilhaft abgebildet werden.
  • Allgemein weisen in einer Ausführung ein oder mehrere der Roboterdatenobjekttemplates und/oder ein oder mehrere der Komponentendatenobjekttemplates (jeweils) eine Sub-Baumstruktur, in einer Weiterbildung zwei oder mehr Koordinatensysteme, die eine Sub-Baumstruktur bilden, und/oder zwei oder mehr geometrische, mechanische und/oder Zustands-Attribute, die eine Sub-Baumstruktur bilden, auf.
  • Hierdurch, insbesondere die Kombination von zwei oder mehr der vorgenannten Merkmale, kann die Applikation, insbesondere ein(e) Programm(ierung) und/oder Steuerung, des Robotersystems in einer Ausführung besonders vorteilhaft auf Daten von Roboter(n) und Komponente(n) des Robotersystems zugreifen. Dadurch kann in einer Ausführung das Ausführen der Applikation, insbesondere das Steuern des Robotersystems, verbessert werden.
  • In einer Ausführung ist bzw. wird ein Eingabegerät des Robotersystems auf Basis des Szenengraphs, insbesondere einer Benutzerschnittstelle einer oder mehrerer der Instanzen des Szenengraphs, konfiguriert. Wie vorstehend beschrieben kann beispielsweise eine Benutzerschnittstelle zum Öffnen/Schließen eines Greifers auf einem Roboterbedienhandgerät konfiguriert werden bzw. sein. Dadurch kann in einer Ausführung das Ausführen der Applikation, insbesondere das Steuern des Robotersystems, verbessert werden.
  • In einer Ausführung wird wenigstens eine der Instanzen des Szenengraphs während einer Laufzeit der Applikation entfernt, hinzugefügt oder ausgetauscht. Hierdurch kann die Applikation, insbesondere ein(e) Programm(ierung) und/oder Steuerung, des Robotersystems in einer Ausführung vorteilhaft modifiziert werden. Dadurch kann in einer Ausführung das Ausführen der Applikation, insbesondere das Steuern des Robotersystems, verbessert werden.
  • In einer Ausführung umfasst ein Instanzieren ein Auswählen eines Datenobjekttemplates aus der Datenobjekttemplatebibliothek, vorzugsweise mittels einer graphischen Benutzeroberfläche, und/oder ein Parametrieren der Identifikation und Anbinden des wenigstens einen Koordinatensystems, in einer Weiterbildung zusätzlich ein Parametrieren wenigstens eines geometrischen Attributs, wenigstens eines mechanischen Attributs, wenigstens einer Funktionalität, wenigstens einer Benutzerschnittstelle, wenigstens eines Konfiguration-Attributs und/oder wenigstens eines Zustands-Attributs, des entsprechenden Datenobjekttemplates.
  • In einer Ausführung ist bzw. wird, insbesondere beim Instanzieren, eine, insbesondere kinematische, Transformation zwischen dem Wurzel-Koordinatensystem des Szenengraphs und dem wenigstens einen Koordinatensystem wenigstens einer damit verknüpften (Roboter- oder Komponenten)lnstanz vorgegeben. Zusätzlich oder alternativ ist bzw. wird in einer Ausführung, insbesondere beim Instanzieren, eine, insbesondere kinematische, Transformation zwischen dem wenigstens einen Koordinatensystem wenigstens einer der (Roboter- und Komponenten)lnstanzen und dem wenigstens einen Koordinatensystem wenigstens einer damit verknüpften der (Roboter- und Komponenten)lnstanzen vorgegeben. Zusätzlich oder alternativ ist bzw. wird in einer Ausführung, insbesondere beim Instanzieren, eine, insbesondere kinematische, Transformation zwischen dem wenigstens einen Koordinatensystem wenigstens einer der (Roboter- und Komponenten)lnstanzen und wenigstens einem weiteren Koordinatensystem dieser Instanz vorgegeben. Hierdurch können in einer Ausführung Attribute der entsprechenden Instanzen vorteilhaft aggregiert werden, beispielsweise die Masse und/oder Abmessung(en) eines robotergeführten Werkstücks mit der Masse bzw. Abmessung(en) eines dieses führenden Werkzeugs oder dergleichen.
  • Allgemein werden in einer Ausführung Daten von wenigstens einer der Instanzen auf Basis von einer Transformation zwischen dieser Instanz und wenigstens einer anderen damit gekoppelten, insbesondere verknüpften, der Instanzen, insbesondere Koordinatensystemen dieser Instanzen, und/oder auf Basis von Daten dieser wenigstens einer anderen Instanz ermittelt. So kann beispielsweise ein Schwerpunktabstand eines durch ein Werkzeug geführten Werkstücks auf Basis der Schwerpunktlage des Werkstücks relativ zu seinem Koordinatensystem, der Transformation zwischen diesem Koordinatensystemen und einem Koordinatensystem des Werkzeugs und dessen Abmessungen ermittelt werden.
  • In einer Ausführung wird zum Steuern, insbesondere lesend, auf Daten für wenigstens eine Kombination aus (je) wenigstens zwei miteinander gekoppelten, insbesondere verknüpften, der Instanzen zugegriffen, wobei diese Daten für die Kombinationen jeweils) auf Basis von Daten der Instanzen der (jeweiligen) Kombination ermittelt sind, insbesondere werden. So kann beispielsweise für ein durch ein Werkzeug geführten Werkstücks die (Gesamt)Masse dieser Werkzeug-Werkstück-Kombination durch Addition der (aus der entsprechenden Komponenteninstanz bekannten) Masse des Werkzeugs und der (aus der entsprechenden Komponenteninstanz bekannten) Masse des Werkstücks ermittelt und für die Steuerung des Roboters auf diese ermittelte (Gesamt)Masse zugegriffen werden.
  • Hierdurch, insbesondere die Kombination von zwei oder mehr der vorgenannten Merkmale, kann die Applikation, insbesondere ein(e) Programm(ierung) und/oder Steuerung, des Robotersystems in einer Ausführung besonders vorteilhaft auf Daten von Roboter(n) und Komponente(n) des Robotersystems zugreifen. Dadurch kann in einer Ausführung das Ausführen, insbesondere Inbetriebnehmen, der Applikation, insbesondere das Steuern des Robotersystems, verbessert werden.
  • Nach einer Ausführung der vorliegenden Erfindung ist ein System, insbesondere hard- und/oder software-, insbesondere programmtechnisch, zur Durchführung eines hier beschriebenen Verfahrens eingerichtet und/oder weist auf:
    • - Mittel zum Instanzieren wenigstens einer ersten Roboterinstanz aus einem ersten Roboterdatenobjekttemplate aus einer Datenobjekttemplatebibliothek, welches
      • - eine Identifikation; und
      • - wenigstens ein Koordinatensystem;
      aufweist;
    • - Mittel zum Instanzieren wenigstens einer ersten Komponenteninstanz aus einem ersten Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches
      • - eine Identifikation; und
      • - wenigstens ein Koordinatensystem
      aufweist;
    • - Mittel zum
      • - Instanzieren wenigstens einer weiteren Roboterinstanz aus dem ersten Roboterdatenobjekttemplate oder einem weiteren Roboterdatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches eine Identifikation und wenigstens ein Koordinatensystem aufweist; und/oder
      • - Instanzieren wenigstens einer zweiten Komponenteninstanz aus dem ersten Komponentendatenobjekttemplate oder einem zweiten Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches eine Identifikation und wenigstens ein Koordinatensystem aufweist;
    • - Mittel zum Einbinden dieser Instanzen in einen Szenengraph des Robotersystems, welcher wenigstens ein Wurzel-Koordinatensystem enthält; und
    • - Mittel zum Steuern des Robotersystems zum Ausführen der Applikation auf Basis von Daten des Szenengraphs, insbesondere von Daten der (Roboter- und Komponenten)lnstanzen des Szenengraphs.
  • In einer Ausführung weist das System bzw. sein(e) Mittel auf:
    • - Mittel zum Instanzieren wenigstens einer weiteren Komponenteninstanz aus dem ersten oder zweiten Komponentendatenobjekttemplate oder einem weiteren Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches eine Identifikation und wenigstens ein Koordinatensystem aufweist; und
    • - Mittel zum Einbinden dieser weiteren Komponenteninstanz in den Szenengraph; wobei das Robotersystem zum Ausführen der Applikation auf Basis von Daten des Szenengraphs, insbesondere von Daten der (Roboter- und Komponenten)lnstanzen des Szenengraphs, gesteuert wird.
  • In einer Ausführung weist das System bzw. sein(e) Mittel auf:
    • - Mittel zum Verknüpfen wenigstens einer der Instanzen mit dem Wurzel-Koordinatensystem und/oder wenigstens einer weiteren der Instanzen, insbesondere in einer Baumstruktur;
    • - Mittel zum Lese- und/oder Schreibzugriff auf die Daten durch die Applikation, insbesondere durch wenigstens ein Objekt des Robotersystems und/oder eine Steuerung zum Steuern dieses Objekts, insbesondere während des Betriebs;
    • - wenigstens ein Eingabegerät, das auf Basis des Szenengraphs, insbesondere einer Benutzerschnittstelle wenigstens einer der Instanzen des Szenengraphs, konfiguriert ist;
    • - Mittel zum Entfernen, Hinzufügen oder Austauschen wenigstens einer der Instanzen des Szenengraphs während einer Laufzeit der Applikation;
    • - Mittel zum Auswählen eines Datenobjekttemplates aus der Datenobjekttemplatebibliothek, insbesondere mittels einer graphischen Benutzeroberfläche, und/oder Parametrieren der Identifikation und Anbinden des wenigstens einen Koordinatensystems, insbesondere zusätzlich zum Parametrieren wenigstens eines geometrischen Attributs, wenigstens eines mechanischen Attributs, wenigstens einer Funktionalität, wenigstens einer Benutzerschnittstelle, wenigstens eines Konfiguration-Attributs und/oder wenigstens eines Zustands-Attributs des entsprechenden Datenobjekttemplates, beim ein Instanzieren;
    • - Mittel zum Vorgeben einer Transformation zwischen dem Wurzel-Koordinatensystem und dem wenigstens einen Koordinatensystem wenigstens einer damit verknüpften der Instanzen und/oder einer Transformation zwischen dem wenigstens einen Koordinatensystem wenigstens einer der Instanzen und dem wenigstens einen Koordinatensystem wenigstens einer damit verknüpften der Instanzen und/oder einer Transformation zwischen dem wenigstens einen Koordinatensystem wenigstens einer der Instanzen und wenigstens einem weiteren Koordinatensystem dieser Instanz;
    • - Mittel zum Ermitteln von Daten von wenigstens einer der Instanzen auf Basis von einer Transformation zwischen dieser Instanz und wenigstens einer anderen damit gekoppelten, insbesondere verknüpften, der Instanzen und/oder auf Basis von Daten dieser wenigstens einer anderen Instanz; und/oder
    • - Mittel zum, insbesondere lesenden, Zugreifen auf Daten für wenigstens eine Kombination aus wenigstens zwei miteinander gekoppelten, insbesondere verknüpften, der Instanzen zum Steuern, wobei diese Daten auf Basis von Daten dieser Instanzen ermittelt werden bzw. sind.
  • Ein Mittel im Sinne der vorliegenden Erfindung kann hard- und/oder softwaretechnisch ausgebildet sein, insbesondere eine, vorzugsweise mit einem Speicher- und/oder Bussystem daten- bzw. signalverbundene, insbesondere digitale, Verarbeitungs-, insbesondere Mikroprozessoreinheit (CPU), Graphikkarte (GPU) oder dergleichen, und/oder ein oder mehrere Programme oder Programmmodule aufweisen. Die Verarbeitungseinheit kann dazu ausgebildet sein, Befehle, die als ein in einem Speichersystem abgelegtes Programm implementiert sind, abzuarbeiten, Eingangssignale von einem Datenbus zu erfassen und/oder Ausgangssignale an einen Datenbus abzugeben. Ein Speichersystem kann ein oder mehrere, insbesondere verschiedene, Speichermedien, insbesondere optische, magnetische, Festkörper- und/oder andere nicht-flüchtige Medien aufweisen. Das Programm kann derart beschaffen sein, dass es die hier beschriebenen Verfahren verkörpert bzw. auszuführen imstande ist, sodass die Verarbeitungseinheit die Schritte solcher Verfahren ausführen kann und damit insbesondere das Robotersystem steuern kann. Ein Computerprogrammprodukt kann in einer Ausführung ein, insbesondere nichtflüchtiges, Speichermedium zum Speichern eines Programms bzw. mit einem darauf gespeicherten Programm aufweisen, insbesondere sein, wobei ein Ausführen dieses Programms ein System bzw. eine Steuerung, insbesondere einen Computer, dazu veranlasst, ein hier beschriebenes Verfahren bzw. einen oder mehrere seiner Schritte auszuführen.
  • In einer Ausführung werden ein oder mehrere, insbesondere alle, Schritte des Verfahrens vollständig oder teilweise automatisiert durchgeführt, insbesondere durch das System bzw. sein(e) Mittel.
  • In einer Ausführung weist das System das Robotersystem auf, in einer Ausführung ist das System das Robotersystem.
  • In einer Ausführung werden das bzw. eines oder mehrere der Roboter- und/oder das bzw. eines oder mehrere der Komponentendatenobjekttemplate(s jeweils), vorzugsweise in einer Engineering-Umgebung, erstellt und in die Datenobjekttemplatebibliothek aufgenommen. Gleichermaßen kann auch (nur) eine bereits vorhandene Datenobjekttemplatebibliothek verwendet oder gegebenenfalls durch weitere Roboter- und/oder Komponentendatenobjekttemplates ergänzt werden.
  • In einer Ausführung wird der bzw. wenigstens ein Roboter des Robotersystems zur Ermittlung von Daten bzw. Attributen einer oder mehrerer der Roboter- und/oder Komponenteninstanzen genutzt, bespielweise zur Vermessung einer TCP-Transformation oder zur Ermittlung der Lastdaten eines Werkzeugs.
  • Weitere Vorteile und Merkmale ergeben sich aus den Unteransprüchen und den Ausführungsbeispielen. Hierzu zeigt, teilweise schematisiert:
    • 1: ein Robotersystem nach einer Ausführung der vorliegenden Erfindung; und
    • 2: ein Verfahren zum Ausführen einer Applikation des Robotersystems nach einer Ausführung der vorliegenden Erfindung.
  • 1 zeigt ein Robotersystem nach einer Ausführung der vorliegenden Erfindung in Form einer Zelle mit einem Roboterarm 1, einer Zellen- bzw. Robotersteuerung 2, einem Bedienhandgerät 3, einem robotergeführten Werkzeug in Form eines Greifers 4, einem Werkstück 5, einer Fördereinrichtung 6 und einem Magazin 7.
  • 2 zeigt ein Verfahren zum Ausführen einer Applikation des Robotersystems nach einer Ausführung der vorliegenden Erfindung. Dabei nimmt der Roboterarm 1 beispielsweise Werkstücke 5 von der Fördereinrichtung 6 und legt sie im Magazin 7 ab oder entnimmt umgekehrt Werkstücke 5 aus dem Magazin 7 und legt sie auf der Fördereinrichtung 6 ab.
  • In einem Schritt S10 werden aus vorhandenen Roboterdatenobjekttemplates und Komponentendatenobjekttemplates aus einer Datenobjekttemplatebibliothek konkrete Instanzen für den Roboterarm 1, den Greifer 4, das Werkstück 5, die Fördereinrichtung 6 und das Magazin 7 erzeugt und in einem Schritt S20 in einen Szenengraph eingefügt. Jedes Datenobjekttemplate kann dabei beliebig oft instanziert werden, um mehrere Instanzen desselben Typs zu erzeugen. Sämtliche Eigenschaften der Instanzen können dann individuell modifiziert werden.
  • Der Szenengraph stellt nun ein Modell aller Objekte dar, die in dem konkreten Robotersystem von Bedeutung sind. Die Systemsoftware, insbesondere die Zellen- bzw. Robotersteuerung 2 bzw. deren Software, hat damit eine umfassende Sicht auf alle Eigenschaften aller Objekte und kann diese Information auf vielfältige Weise verwenden, beispielsweise:
    • • Durch die Transformationen zwischen den Objekten ist die relative Lage der Objekte zueinander und damit das Layout der gesamten Zelle bekannt. Damit kann eine 3D-Sicht der Zelle angeboten werden.
    • • Durch die Kenntnis der physikalischen Eigenschaften der einzelnen Objekte zusammen mit den Transformationen zwischen Koordinatensystemen der Objekte können auch die physikalischen Eigenschaften von Objektkombinationen abgeleitet werden. So kann das System z. B. die resultierenden Lastdaten aus einem Werkzeug und einem gegriffenen Werkstück automatisch errechnen, ohne dass der Anwender damit konfrontiert wird.
    • • Die geometrischen Parameter der Sicherheitskonfiguration (z.B. Arbeits- und Schutzräume, Überwachungsräume an Werkzeugen und Werkstücken, Positionen zur Geschwindigkeitsüberwachung, usw.) können aus dem Szenengraph gelesen werden.
    • • Durch das Zusammentragen der I/O-Konfigurationen der einzelnen Objekte ergibt sich eine Gesamtsicht auf die I/O-Konfiguration der Robotersteuerung.
  • Sämtliche Eigenschaften aller Instanzen im Szenengraph werden der Roboterapplikation durch eine entsprechende Programmierschnittstelle (API) zugänglich gemacht. Die Roboterapplikation kann die Eigenschaften nicht nur lesen, sondern auch verändern. Insbesondere können die Parameter der Instanzen genutzt werden, um Zustände der Objekte abzubilden oder Prozessergebnisse zu speichern (z.B. nach der Ermittlung eines Messwertes durch die Roboterapplikation).
  • Beispielsweise öffnet der Befehl „gripper.open()“ den Greifer 4. Durch die Abstraktion kann der Greifer und damit seine konkrete Implementierung der Funktion „open()“ ausgetauscht werden, ohne dass dazu die Roboterapplikation modifiziert werden muss.
  • Entsprechend steuert die Steuerung 2 das Robotersystem in einem Schritt S30 zum Ausführen der Applikation auf Basis von Daten von Robotersystemobjekten des Szenengraphs.
  • Nachfolgend wird dies an zwei Beispielen exemplarisch weiter erläutert:
  • Beispiel 1 - Greifer in Betrieb nehmen
  • In diesem Beispiel wurde ein Komponentendatenobjekttemplate für einen bestimmten Greifertyp vom Herstelller des Greifers erstellt und im Rahmen einer Toolbox ausgeliefert. Der Kunde hat das Datenobjekttemplate in seiner Datenobjekttemplatebibliothek zur Erstellung einer Roboterapplikation installiert.
  • Die Inbetriebnahme des Greifers erfolgt nun dadurch, dass der Kunde das Komponentendatenobjekttemplate in die Darstellung des Szenengraphen zieht und am Flansch des Roboters platziert:
    • Der Greifer ist dadurch grundsätzlich in Betrieb genommen, da alle relevanten Aspekte durch die entsprechende Komponenteninstanz modelliert sind:
      • - Geometrische Attribute:
        • • Montagepunkt am Flansch;
        • • Greifpunkte (TCPs) und ihre Transformation zum Montagepunkt;
        • • Sicherheitsrelevante Überwachungskugeln;
        • • CAD-Modell zur Darstellung in der 3D-Ansicht
      • - Mechanische Attribute:
        • • Masse;
        • • Massenschwerpunkt;
        • • Trägheitsmomente
      • - Funktionalität:
        • • Das Komponentendatenobjekttemplate bzw. die Komponenteninstanz stellt eine abstrakte Programmierschnittstelle zur Ansteuerung des Greifers durch die Roboterapplikation zur Verfügung
      • - Konfiguration-Attribut:
        • • Für die elektrische Verschaltung der I/Os ist eine Default-Konfiguration enthalten
      • - Benutzerschnittstelle:
        • • Das Komponentendatenobjekttemplate bringt eine Benutzerschnittstelle (UI) mit, die auf dem Bedienhandgerät 3 angezeigt wird und es dem Anwender erlaubt, den Greifer 4 manuell zu öffnen und zu schließen.
    • Dem Anwender steht es nun frei, alle Aspekte selektiv an die individuellen Gegebenheiten anzupassen, falls dies erforderlich ist. Beispielsweise könnte er
      • - die elektrische Verschaltung der I/Os ändern, falls in seinem Robotersystem eine andere Verschaltung vorgesehen ist; und/oder
      • - nach einer konstruktiven Modifikation der Greiferbacken die Position und Orientierung der Greifpunkte (TCPs) durch eine Werkzeugvermessung an die neuen Gegebenheiten anpassen.
  • Sämtliche Anpassungen betreffen die Instanz des entsprechenden Objekts im Szenengraph. Die zugrunde liegenden Datenobjekttemplates aus der Datenobjekttemplatebibliothek werden dadurch nicht verändert. Der Anwender hat jedoch die Möglichkeit, seine angepasste Instanz in ein neues Datenobjekttemplate zu wandeln und diese Variante des ursprünglichen Datenobjekttemplates Dritten zur Verfügung zu stellen.
  • Beispiel 2 - Magazin austauschen in laufender Anwendung
  • Das Magazin 7 ist durch eine Komponenteninstanz im Szenengraph wie folgt modelliert:
    • - Geometrische Attribute:
      • • ein Magazin-Koordinatensystem definiert die Lage des Magazins in der Anlage;
      • • Greifpunkte für die Ablagepositionen im Magazin, diese sind relativ zum Magazin-Koordinatensystem definiert
    • - Funktionalität
      • • eine abstrakte Programmierschnittstelle stellt eine Funktion zum Greifen des nächsten Bauteils durch einen gegebenen Greifer zur Verfügung. Ihre Implementierung benutzt die speziellen geometrischen Eigenschaften des Magazins, um die Roboterfahrten zur Anfahrt und zum Greifen des Bauteils zu realisieren
    • - Zustands-Attribute:
      • • aktueller Zustand: Anzahl der Bauteile im Magazin
    • - Konfiguration-Attribute:
      • • Reihenfolge der Entnahme
    • - Benutzerschnittstelle:
      • • die aktuelle Anzahl der Bauteile im Magazin 7 wird auf dem Bedienhandgerät 3 angezeigt und kann dort editiert werden.
  • Im laufenden Betrieb der Applikation soll die Bauart des Magazins gewechselt werden, auch für das neue Magazin steht ein Komponentendatenobjekttemplate in der Datenobjekttemplatebibliothek zur Verfügung.
  • Folgende Schritte werden zum Austausch durchgeführt:
    • - Pausieren der Applikation;
    • - Editieren des Szenengraphen: die Instanz des bisherigen Magazins wird durch die Instanz des neuen Magazins ersetzt;
    • - Überprüfung und evtl. Anpassung der Position des neuen Magazins;
    • - Überprüfung und evtl. Anpassung der Anzahl der Bauteile im Magazin;
    • - Fortsetzen der Applikation.
  • Da auch die Instanz des neuen Magazins dieselbe abstrakte Programmierschnittstelle zum Greifen des nächstens Bauteils zur Verfügung stellt, kann die Applikation ohne Änderung fortgesetzt werden. Die Implementierung der Funktionalität der ausgetauschten Instanz berücksichtigt die geometrischen Eigenschaften des neuen Magazins und führt die erforderlichen Roboterfahrten dazu passend aus.
  • Obwohl in der vorhergehenden Beschreibung exemplarische Ausführungen erläutert wurden, sei darauf hingewiesen, dass eine Vielzahl von Abwandlungen möglich ist.
  • So ist im Ausführungsbeispiel der Roboter(arm) ein sechsachsiger Knickarm(roboter). In nicht dargestellten Abwandlungen können auch andere, insbesondere mobile, SCARA- und/oder Parallel(kinematik)roboter verwendet werden.
  • Bezugszeichenliste
  • 1
    Roboterarm
    2
    Steuerung
    3
    Bedienhandgerät
    4
    Greifer
    5
    Werkstück
    6
    Fördereinrichtung
    7
    Magazin

Claims (14)

  1. Verfahren zum Ausführen einer Applikation eines Robotersystems, mit den Schritten: - Instanzieren (S10) wenigstens einer ersten Roboterinstanz aus einem ersten Roboterdatenobjekttemplate aus einer Datenobjekttemplatebibliothek, welches - eine Identifikation; und - wenigstens ein Koordinatensystem; aufweist und einem Roboter des Robotersystems zugeordnet ist oder wird; - Instanzieren (S10) wenigstens einer ersten Komponenteninstanz aus einem ersten Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches - eine Identifikation; und - wenigstens ein Koordinatensystem aufweist und wenigstens einer Komponente des Robotersystems, die kein Roboter ist, zugeordnet ist oder wird; wenigstens einem der Schritte: - Instanzieren (S10) wenigstens einer zweiten Komponenteninstanz aus dem ersten Komponentendatenobjekttemplate oder einem zweiten Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches - eine Identifikation; und - wenigstens ein Koordinatensystem aufweist und wenigstens einer Komponente des Robotersystems, die kein Roboter ist, zugeordnet ist oder wird; und/oder - Instanzieren wenigstens einer weiteren Roboterinstanz aus dem ersten Roboterdatenobjekttemplate oder einem weiteren Roboterdatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches - eine Identifikation; und - wenigstens ein Koordinatensystem; aufweist und einem Roboter des Robotersystems zugeordnet ist oder wird; und den Schritten: - Einbinden (S20) dieser Instanzen in einen Szenengraph des Robotersystems, welcher wenigstens ein Wurzel-Koordinatensystem enthält, wobei Koordinatensysteme dieser Instanzen über Transformationen angebunden werden; und - Steuern (S30) des Robotersystems zum Ausführen der Applikation auf Basis von Daten des Szenengraphs.
  2. Verfahren nach Anspruch 1, mit den Schritten: - Instanzieren wenigstens einer weiteren Komponenteninstanz aus dem ersten oder zweiten Komponentendatenobjekttemplate oder einem weiteren Komponentendatenobjekttemplate aus der Datenobjekttemplatebibliothek, welches - eine Identifikation; und - wenigstens ein Koordinatensystem aufweist; und - Einbinden dieser weiteren Komponenteninstanz in den Szenengraph; wobei das Robotersystem zum Ausführen der Applikation auf Basis von Daten dieser Komponenteninstanz des Szenengraphs gesteuert wird.
  3. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass wenigstens eine der Instanzen mit dem Wurzel-Koordinatensystem und/oder wenigstens einer weiteren der Instanzen verknüpft ist und/oder dass die Applikation lesend und/oder schreibend auf die Daten zugreift.
  4. Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass wenigstens eine der Instanzen mit dem Wurzel-Koordinatensystem und/oder wenigstens einer weiteren der Instanzen in einer Baumstruktur verknüpft ist und/oder dasswenigstens ein Objekt des Robotersystems und/oder eine Steuerung zum Steuern dieses Objekts lesend und/oder schreibend auf die Daten zugreift.
  5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das erste und/oder weitere Roboterdatenobjekttemplate und/oder erste, zweite und/oder weitere Komponentendatenobjekttemplate - wenigstens ein geometrisches Attribut; - wenigstens ein mechanisches Attribut; - wenigstens eine Funktionalität der Objekte, denen das Datenobjekttemplate zugeordnet ist; - wenigstens eine Benutzerschnittstelle zum Bedienen der Objekte, denen das Datenobjekttemplate zugeordnet ist, mittels eines Eingabegeräts; - wenigstens ein von einer Konfiguration der Objekte, denen das Datenobjekttemplate zugeordnet ist, abhängiges Konfiguration-Attribut; und/oder - wenigstens ein von einem aktuellen, variablen Zustand der Objekte, denen das Datenobjekttemplate zugeordnet ist, abhängiges Zustands-Attribut aufweist.
  6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein Eingabegerät (3) des Robotersystems auf Basis des Szenengraphs konfiguriert ist.
  7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass wenigstens eine der Instanzen des Szenengraphs während einer Laufzeit der Applikation entfernt, hinzugefügt oder ausgetauscht wird.
  8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das erste, zweite und/oder weitere Komponentendatenobjekttemplate - Robotersystemwerkzeugen; - Robotersystemwerkstücken; oder - Roboterumgebungseinrichtungen zugeordnet ist.
  9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein Instanzieren ein Auswählen eines Datenobjekttemplates aus der Datenobjekttemplatebibliothek und/oder ein Parametrieren der Identifikation und Anbinden des wenigstens einen Koordinatensystems umfasst.
  10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass eine Transformation zwischen dem Wurzel-Koordinatensystem und dem wenigstens einen Koordinatensystem wenigstens einer damit verknüpften der Instanzen und/oder eine Transformation zwischen dem wenigstens einen Koordinatensystem wenigstens einer der Instanzen und dem wenigstens einen Koordinatensystem wenigstens einer damit verknüpften der Instanzen vorgegeben ist.
  11. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass Daten von wenigstens einer der Instanzen auf Basis von einer Transformation zwischen dieser Instanz und wenigstens einer anderen damit gekoppelten der Instanzen und/oder auf Basis von Daten dieser wenigstens einer anderen Instanz ermittelt werden.
  12. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zum Steuern auf Daten für wenigstens eine Kombination aus wenigstens zwei miteinander gekoppelten der Instanzen zugegriffen wird, die auf Basis von Daten dieser Instanzen ermittelt sind.
  13. System zum Ausführen einer Applikation eines Robotersystems, das zur Durchführung eines Verfahrens nach einem der vorhergehenden Ansprüche eingerichtet ist.
  14. Computerprogrammprodukt mit einem Programmcode, der auf einem von einem Computer lesbaren Medium gespeichert ist, zur Durchführung eines Verfahrens nach einem der vorhergehenden Ansprüche.
DE102019217630.5A 2019-11-15 2019-11-15 Verfahren zum Ausführen einer Applikation eines Robotersystems Active DE102019217630B3 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102019217630.5A DE102019217630B3 (de) 2019-11-15 2019-11-15 Verfahren zum Ausführen einer Applikation eines Robotersystems
PCT/EP2020/080225 WO2021094085A1 (de) 2019-11-15 2020-10-28 Verfahren zum ausführen einer applikation eines robotersystems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019217630.5A DE102019217630B3 (de) 2019-11-15 2019-11-15 Verfahren zum Ausführen einer Applikation eines Robotersystems

Publications (1)

Publication Number Publication Date
DE102019217630B3 true DE102019217630B3 (de) 2021-01-14

Family

ID=73030139

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019217630.5A Active DE102019217630B3 (de) 2019-11-15 2019-11-15 Verfahren zum Ausführen einer Applikation eines Robotersystems

Country Status (2)

Country Link
DE (1) DE102019217630B3 (de)
WO (1) WO2021094085A1 (de)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2140316B1 (de) * 2007-03-29 2011-12-28 iRobot Corporation Konfigurationssystem und -verfahren für eine roboteroperator-steuereinheit
DE102014221797A1 (de) * 2014-10-27 2016-04-28 Kuka Systems Gmbh Verfahren und Robotersystem zur automatischen Bahnermittlung
DE102014019492A1 (de) * 2014-12-23 2016-06-23 Festo Ag & Co. Kg Werkzeugsteuerung und Verfahren zum Betreiben einer Werkzeugsteuerung
DE102015218697A1 (de) * 2015-09-29 2017-03-30 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur automatischen Konfiguration eines externen Steuerungssystems zur Regelung und/oder Steuerung eines Robotersystems
DE102015222167A1 (de) * 2015-11-11 2017-05-11 Kuka Roboter Gmbh Verfahren zum vereinfachten ändern von applikationsprogrammen zur steuerung einer industrieanlage
DE202017102379U1 (de) * 2017-04-21 2017-05-18 Schunk Gmbh & Co. Kg Spann- Und Greiftechnik Intelligentes Greifsystem

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9014848B2 (en) * 2010-05-20 2015-04-21 Irobot Corporation Mobile robot system
US8958912B2 (en) * 2012-06-21 2015-02-17 Rethink Robotics, Inc. Training and operating industrial robots

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2140316B1 (de) * 2007-03-29 2011-12-28 iRobot Corporation Konfigurationssystem und -verfahren für eine roboteroperator-steuereinheit
DE102014221797A1 (de) * 2014-10-27 2016-04-28 Kuka Systems Gmbh Verfahren und Robotersystem zur automatischen Bahnermittlung
DE102014019492A1 (de) * 2014-12-23 2016-06-23 Festo Ag & Co. Kg Werkzeugsteuerung und Verfahren zum Betreiben einer Werkzeugsteuerung
DE102015218697A1 (de) * 2015-09-29 2017-03-30 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur automatischen Konfiguration eines externen Steuerungssystems zur Regelung und/oder Steuerung eines Robotersystems
DE102015222167A1 (de) * 2015-11-11 2017-05-11 Kuka Roboter Gmbh Verfahren zum vereinfachten ändern von applikationsprogrammen zur steuerung einer industrieanlage
DE202017102379U1 (de) * 2017-04-21 2017-05-18 Schunk Gmbh & Co. Kg Spann- Und Greiftechnik Intelligentes Greifsystem

Also Published As

Publication number Publication date
WO2021094085A1 (de) 2021-05-20

Similar Documents

Publication Publication Date Title
EP1131686B1 (de) Verfahren zur steuerung technischer prozesse
DE10352815B4 (de) Simulationsverfahren für eine Bearbeitung eines Werkstücks durch eine Werkzeugmaschine und korrespondierender Rechner
EP1855867B1 (de) Verfahren zur steuerung und bedienung einer produktionszelle sowie eine steuervorrichtung
EP2324966B1 (de) Verfahren und Vorrichtung zur Planung und/oder Steuerung einer Roboterapplikation
DE102013113370A1 (de) Roboteraufgabensteuerungskomponente mit erweiterbarer programmierumgebung
DE102010045529A1 (de) Interaktives Robotersteuerungssystem und Verwendungsverfahren
EP1402325B1 (de) Verfahren und system zur unterstützung der projektierung von fertigungsanlagen
DE102007026678A1 (de) Verfahren zum Austausch eines defekten Feldgerätes gegen ein neues Feldgerät in einem über digitalen Feldbus kommunizierenden System, insbesondere Automatisierungssystem
DE10104163A1 (de) Steuerungs-und/oder Überwachungsanlage von Maschinen und/oder Anlagen mit Aktionskomponenten unterschiedlicher Aktionsgruppen
DE102004031485B4 (de) Verfahren und Vorrichtung zum Steuern des Handhabungsgeräts
DE102020201398B3 (de) Betreiben einer Applikation eines Robotersystems
WO2013076071A1 (de) Verfahren zum semi-automatischen erstellen eines simulationsmodells für ein mechatronisches system
DE112005002185B4 (de) Verfahren zum Betrieb einer Automatisierungseinrichtung bzw. Vorrichtung zur Durchführung des Verfahrens
DE102019217630B3 (de) Verfahren zum Ausführen einer Applikation eines Robotersystems
WO2022022784A1 (de) Verfahren und system zur bestimmung von optimierten programmparametern für ein roboterprogramm
EP3132319B1 (de) Verfahren zum betrieb einer automatisierungsanordnung
DE112008003870T5 (de) Verfahren und System zum Steuern eines Industrieroboters in Übereinstimmung mit einem Bewegungssteuerungs-Parametersatz
DE102008023873A1 (de) Verfahren zum Betrieb eines Antriebssystems
WO2013037987A1 (de) Identifikation wiederverwendbarer mechatronischer komponenten in der fabrikautomation
DE102019105820A1 (de) Verfahren, System sowie nichtflüchtiges Speichermedium
DE102004064297B3 (de) Verfahren und Vorrichtung zum Steuern des Handhabungsgeräts
DE102016121788A1 (de) Konfiguration einer Automatisierungsanlage
WO2012025364A1 (de) Verfahren und system zur planung mechatronischer systeme mit mechatronikeinheiten
WO2023117938A1 (de) Technik zur parametrierung und/oder konfiguration für eine auf einer speicher-programmierbaren steuerung basierenden vorrichtung
DE102005008136A1 (de) Entwicklungssystem für Prozessleitsysteme sowie zugehöriges Verfahren und Computerprogrammprodukt

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final