AT525225B1 - Verfahren und Vorrichtung zur Bestimmung einer zeitoptimalen Trajektorie - Google Patents

Verfahren und Vorrichtung zur Bestimmung einer zeitoptimalen Trajektorie Download PDF

Info

Publication number
AT525225B1
AT525225B1 ATA50565/2021A AT505652021A AT525225B1 AT 525225 B1 AT525225 B1 AT 525225B1 AT 505652021 A AT505652021 A AT 505652021A AT 525225 B1 AT525225 B1 AT 525225B1
Authority
AT
Austria
Prior art keywords
path
partial
trajectory
movement
time
Prior art date
Application number
ATA50565/2021A
Other languages
English (en)
Other versions
AT525225A1 (de
Inventor
Staufer Dipl Ing Dr Peter
Pauditz Michael
Original Assignee
Stiwa Ams 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 Stiwa Ams Gmbh filed Critical Stiwa Ams Gmbh
Priority to ATA50565/2021A priority Critical patent/AT525225B1/de
Priority to KR1020247004413A priority patent/KR20240032103A/ko
Priority to EP22748218.9A priority patent/EP4366917A1/de
Priority to PCT/AT2022/060244 priority patent/WO2023279132A1/de
Priority to CN202280048426.7A priority patent/CN117615885A/zh
Publication of AT525225A1 publication Critical patent/AT525225A1/de
Application granted granted Critical
Publication of AT525225B1 publication Critical patent/AT525225B1/de

Links

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/1628Programme controls characterised by the control loop
    • B25J9/1653Programme controls characterised by the control loop parameters identification, estimation, stiffness, accuracy, error analysis
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40463Shortest distance in time, or metric, time optimal
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40466Plan for minimum time trajectory, at least one joint maximum torque

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Numerical Control (AREA)

Abstract

Die Erfindung betrifft ein Verfahren, eine Vorrichtung und ein Computerprogramm- Produkt zur Bestimmung einer zeitoptimalen Trajektorie vor Bewegungsstart für eine durch Bewegungsparameter vorgegebene Bewegung eines Industrieroboters auf einer Bahn. Das Verfahren umfasst ein Teilen der Bahn in eine oder mehrere Teilbahnen und ein Durchführen einer vorbestimmen Anzahl von Wiederholungen folgender Schritte: Berechnen einer zeitoptimalen Trajektorie für jede der Teilbahnen, Zusammenfügen der zeitoptimalen Trajektorien für alle Teilbahnen, Überprüfen, ob vorbestimmte Grenzwerte nicht überschritten werden und ob die schnellste Bewegung gefunden wurde, und Variieren eines oder mehrerer der Bewegungsparameter. Nach Abschluss der vorbestimmten Anzahl von Wiederholungen, wird die schnellste Gesamttrajektorie als die zeitoptimale Trajektorie für die Bewegung über die Bahn ausgegeben. Die Berechnungsverfahren können dabei Verfahren zur Optimierung eines Wegparameters im Zeitbereich oder im Geschwindigkeitsbereich, bzw. Bang- Bang-Trajektorie, insbesondere 7-Phasentrajektorie und mittelwertgefilterte Rechtecktrajektorien in der Beschleunigung, und Synchronisationstrajektorie, insbesondere Spline-Bahnen und Polynomtrajektorien sein.

Description

Beschreibung
[0001] Die Erfindung betrifft das Bestimmen einer zeitoptimalen Trajektorie für Industrieroboter unter Einhaltung bestimmter Grenzwerte.
[0002] Industrieroboter unterscheidet man in die Klassen serielle und parallele Kinematiken, diese gibt es mit verschieden Anzahlen von Antrieben bzw. Gelenken, in rotatorischer wie auch linearer Ausführung. Ublicher Weise führen solche Roboter Bewegungen aus, So dass ein charakteristischer Punkt im (kartesischen) Raum des Endeffektors, meist der Tool-Center-Point (TCP), deutsch etwa Werkzeugmittelpunkt, eine bestimmte Bahn abfährt. Dabei gibt es Roboter die verschiedene Arbeitsabläufe ausführen, wie beispielsweise das Einsammeln mehrerer Bauteile aus dem jeweilig entsprechenden Vorrat, oder auch Roboter, die immer die gleiche Bewegung ausführen, z.B.: bei Bearbeitungsaufgaben.
[0003] Gemäß den üblichen VDI-Richtlinien sind Industrieroboter definiert als „[...] universell einsetzbare Bewegungsautomaten mit mehreren Achsen, deren Bewegungen hinsichtlich Bewegungsfolge und Wegen bzw. Winkeln frei (d.h., ohne mechanischen Eingriff) programmierbar und ggf. sensorgeführt sind. Sie sind mit Greifern, Werkzeugen oder anderen Fertigungsmitteln ausrüstbar und können Handhabungs- und/oder Fertigungsaufgaben ausführen.”
[0004] Da in der Regel eine möglichst schnelle Abarbeitung gewünscht wird, aus Effizienz- und Ökonomiegründen, ist es wünschenswert eine möglichst optimale, d.h. zeitoptimale, Bahn abzufahren.
[0005] Bei den abzufahrenden Bahnen gibt es grundsätzlich zwei verschiedene: geometrisch im Raum definierte Bahnen und geometrisch im Raum freie Bahnen. Bei den geometrisch im Raum definierten Bahnen handelt es sich im Allgemeinen um Bahnen, wie beispielsweise Geraden oder Kreisabschnitte, die von einem Start- zu einem Endpunkt führen. Neben den Randpunkten, ist hierbei auch die geometrische Form der Bahn im Raum vordefiniert. Solche Bahnen werden üblicher Weise CP-Bahnen genannt, von engl. continuous path.
[0006] Eine weitere Bewegungsart sind die PTP-Bahnen, von engl. point to point, wobei meistens nur der Start- und der Zielpunkt der Achskoordinaten vorgegeben ist, die kartesische Bahn im Raum des TCP selbst ist nicht vordefiniert. Das Charakteristikum dieser Bewegung ist es, dass der Zielpunkt möglichst schnell angefahren werden kann. PTP-Bahnen können auch neben den Randpunkten auch weitere Stützstellen aufweisen, die durchfahren werden müssen.
[0007] Beide Bahntypen, CP und PTP unterliegen Rahmenbedingungen, wie etwa bestimmte Grenzwerte, die meistens dazu dienen, den Roboter und/oder die Nutzlast bzw. das Werkzeug zu schützen. Zum einen darf sich der Roboter nur in bestimmten Bereichen bewegen, da beispielsweise Hindernisse oder der Bewegungsbereich eines anderen Roboters vermieden werden sollen, zum anderen existieren mechanische Belastungsgrenzen des Roboters, die nicht überschritten werden dürfen. Auch der Prozess selbst kann Grenzwerte erfordern, wie zum Beispiel eine konstante Geschwindigkeit beim Kleben oder Schweißen. Aber auch hinsichtlich der Genauigkeit der Bahnen die abgefahren werden sollen (z.B.: Fräsen), bedingt Grenzwerte in der Dynamik.
[0008] Im Stand der Technik sind Verfahren bekannt, die die Bahn auf der Robotersteuerung auf Grundlage von Bewegungsparameter, wie zum Beispiel Geschwindigkeits- und Beschleunigungsangabe, berechnet. Hierbei ist die Geschwindigkeit der Berechnung meist wichtiger, als ein optimales Ergebnis gemäß einer minimalen Verfahrzeit zu erreichen. Zum anderen sind Verfahren bekannt, CP- und PTP-Bahnen jeweils individuell zu berechnen.
[0009] Herkömmlicher Weise wird die Bahn zu Bewegungsstart nicht vollständig berechnet, im Sinne einer vollständigen Liste aller Gelenkswinkel zu jedem Abtastzeitpunkt der gesamten zu durchfahrenden Bahn, um auf Anderungen der Bahnpunkte (z.B. an den Stützstellen) reagieren zu können (z.B.: geänderte Position beim Abgreifen, weil das Teil, welches aufgenommen wird, in der Position variiert). Man spricht hierbei auch von „online“ Berechnungsverfahren. Allgemein wird das Konzept des Vorlaufzeigers und Programmlaufzeigers verwendet. Dies hat aber den
großen Nachteil, dass man ein sehr schnelles Verfahren (im Sinne der Ausführungszeit) für die Berechnung zur Verfügung stellen muss. Das bedingt, dass man auf suboptimale Lösungen zurückgreifen muss, um in der gegeben Berechnungszeit ein Ergebnis überhaupt liefern zu können.
[0010] Aus der EP 3061576 A1 und der WO 0073967 A1 sind computerimplementierte Verfahren zur Bestimmung einer zeitoptimalen Trajektorie für eine Bewegung eines Roboters auf einer Bahn bekannt. Hierbei werden vor dem Bewegungsstart für einen Startpunkt und einen Endpunkt sowie unter Einhaltung vorbestimmter Grenzwerte zeitoptimale Trajektorien berechnet.
[0011] Bei der Bestimmung von CP-Bahnen wird üblicher Weise auch nur Geschwindigkeit, Beschleunigung und in Sonderfällen auch das zu erwartende Motormoment (welches über ein Dynamikmodell des Roboters abgebildet werden kann) optimiert, damit das Problem mathematisch im Sinne der Optimierungsfunktion konvex bleibt, und somit einfach berechenbar ist. Über diverse Befilterungen (Mittelwertfilter, Besselfilter, oder Ahnliche) des Wegparameters kann optionaler Weiser die Bahn „geglättet“ werden und somit der Ruck (Ableitung der Beschleunigung nach der Zeit) zu einem gewissen Teil berücksichtigt und somit beschränkt werden.
[0012] Bei der Bestimmung von kombinierten PTP-Bahnen, also mit mehreren Stützpunkten, die durchfahren werden sollen, oder bei CP-PTP Kombinationen im Allgemeinen wird herkömmlicher Weise auf ein Überschleifen zurückgegriffen.
[0013] Dabei werden alle Teilstrecken einzeln berechnet (mit der Randbedingung, dass die Geschwindigkeit Null ist), und dann über die Angabe eines Bereiches (z.B.: über den Radius einer UÜberschleifkugel), wo man diese Substrecken verlassen darf, Zwischenstücke eingefügt (meistens weitere PTP-Bahnen). Dadurch wird die Bahn einfach berechenbar, aber auch weniger optimal. Man spricht auch von sogenannten Fly-By Punkten.
[0014] Nachteile bei den bekannten Verfahren sind also die mangelnde Effizienz der Ergebnisse und das Fehlen eines zeitoptimalen Verfahrens, im Sinne der Verfahrzeit, für die Bestimmung einer solchen gemischten Bahn.
[0015] Aufgabe dieser Erfindung ist es, die Nachteile des Standes der Technik zu überwinden, und ein verbessertes oder wenigstens ein alternatives Verfahren zur Bahnplanung vorzustellen.
[0016] Diese Aufgabe wird durch ein Verfahren und eine Vorrichtung gemäß den Ansprüchen gelöst.
[0017] Zum besseren Verständnis der Erfindung wird diese anhand der nachfolgenden Figuren näher erläutert. Es zeigen jeweils in stark vereinfachter, schematischer Darstellung:
[0018] Fig. 1 die Bahn bei einem Sechsachsknickarmroboter, mit verschiedenen Bahnabschnitten und Stützstellen;
[0019] Fig. 2 die Bahn bei einem Scararoboter, mit verschiedenen Bahnabschnitten;
[0020] Fig. 3 ein Beispiel einer berechneten Trajektorie unter Verwendung einer 7- Pha-
sen-Trajektorie;
[0021] Fig. 4 die Anwendung eines gleitenden Mittelwertfilters auf eine Trajektorie mit einem rechteckförmigen Beschleunigungsverlauf;
[0022] Fig. 5A, 5B je einen Vergleich der 7-Phasen-Trajektorie und der Anwendung des gleitenden Mittelwertfilters;
[0023] Fig. 6 eine exemplarische Darstellung einer Bahn, die durch stückweise definierte Polynome dritten Grades bestimmt ist; [0024] Fig. 7 die Verbindung eines Start- und Endpunktes durch eine Bahn, die durch ein
Polynom fünften Graden definiert ist;
[0025] Fig. 8 ein Ablaufdiagramm für die Berechnung einer PTP-Bahn unter Verwendung einer 7-Phasen-Trajektorie und Synchronisationstrajektorien;
[0026] Fig. 9 ein Beispiel einer PTP-Bahn mit einer Positionsgrenze;
[0027] Fig. 10 eine Darstellung eines Wegparameters anhand einer kombinierten Bahn in den Koordinaten x und y;
[0028] Fig. 11 eine Darstellung von ermittelter Geschwindigkeit, Beschleunigung und Ruck in Abhängigkeit des Wegparameters;
[0029] Fig. 12 einen Zusammenhang des Wegparameters und der Zeit;
[0030] Fig. 13 Darstellung des Optimierungsproblems im Phasenraum durch die Paramet-
rierung über den Wegparameter O0; [0031] Fig. 14 eine Kombination aus einer CP- und einer PTP-Bahn mit Stützpunkten; [0032] Fig. 15 ein Ablaufdiagramm gemäß der vorliegenden Erfindung; [0033] Fig. 16 ein Ablaufdiagramm gemäß der vorliegenden Erfindung, und [0034] Fig. 17 ein Vorgehen beim Anpassen der Geometrie der Bahn.
[0035] Einführend sei festgehalten, dass in den unterschiedlich beschriebenen Ausführungsformen gleiche Elemente mit gleichen Bezugszeichen bzw. gleichen Elementbezeichnungen versehen werden, wobei die in der gesamten Beschreibung enthaltenen Offenbarungen sinngemäß auf gleiche Elemente mit gleichen Bezugszeichen bzw. gleichen Elementbezeichnungen übertragen werden können. Auch sind die in der Beschreibung gewählten Lageangaben, wie z.B. oben, unten, seitlich usw. auf die unmittelbar beschriebene sowie dargestellte Figur bezogen und sind diese Lageangaben bei einer Lageänderung sinngemäß auf die neue Lage zu übertragen.
[0036] Fig. 1 zeigt eine Bahn bei einem Sechsachsknickarmroboter 100, mit verschiedenen Bahnabschnitten und Stützstellen. Der Roboter 100 soll hierbei den TCP 110 vom Startpunkt 121 zum Endpunkt 122 bewegen. Dabei sollen die Stützstellen 131, 132, und 133 durchfahren werden. Start- und Endpunkte können stets auch als Stützstellen betrachtet bzw. behandelt werden.
[0037] Durch die Stützstellen 131, 132 und 133 lässt sich die Bahn in Teilbahnen 141, 142, 143 und 144 aufteilen.
[0038] Die durch das Aufteilen erhaltenen Teilbahnen können beispielsweise vom Benutzer vordefiniert werden, d.h. z.B. die Bahn zwischen je zwei Stützstellen soll als eigene Teilbahn behandelt werden. Ublicher Weise wird hierbei wie folgt vorgegangen: Bei aufeinander folgenden PTP Abschnitten wird immer zwischen 2 Stützpunkten eine Teilbahn angesetzt. Bei CP-Abschnitten wird eine Teilbahn durch jene Stützpunkte definiert die unmittelbar aufeinander folgen und als CP Typ deklariert sind (also „ohne PTP Unterbrechung‘).
[0039] Die Aufteilung kann aber auch automatisch bestimmt werden, indem lediglich der Startund Zielpunkt sowie weitere Bedingungen, wie etwa Umgebungsgrenzen vorgegeben werden. Somit können die Stützstellen sowohl als zusätzliche Trennungen zwischen Teilbahnen betrachtet werden, dies ist der Fall bei PTP Bahnen, oder auch bei der Aufteilung unberücksichtigt bleiben, wie es bei Zwischenpunkten auf der CP Teilbahn der Fall ist.
[0040] Fig. 1 zeigt ein Beispiel, bei dem die Stützstellen die Trennung in 4 Teilbahnen vornehmen. Die Teilbahnen können vorab mit dem CP-Typ oder PTP-Typ klassifiziert werden, es ist aber auch möglich, dass die Bahnen automatisch analysiert werden, so dass den entsprechenden Teilbahnen der CP-Typ oder PTP-Typ zugeordnet werden kann. Die Teilbahnen 141 und 144 sind je eine Teilbahn vom CP-Typ, hier speziell Geraden, und die Teilbahnen 142 und 143 sind je eine Teilbahn vom PTP-Typ.
[0041] Es ist anzumerken, dass die in Fig. 1 und auch teilweise in den anderen Figuren gezeigten Bahnen das Ergebnis des erfindungsgemäßen Verfahrens darstellt, insbesondere die kartesische Geometrie bei PTP Bahnen. Die vom Roboter abzufahrende Bahn wird also vorab durch Bahnparameter festgelegt. Diese Bahnparameter können Informationen enthalten, die die Stützstellen betreffen, d.h. Start-, End- und weitere Stützstellen. Hierbei ist anzumerken, dass Start- und Endpunkte auch als Stützstellen dienen können, oder als solche aufgefasst werden können. Darüber hinaus können auch Bahntypen von Teilbahnen enthalten sein. Schließlich ist es möglich, dass
die Bahnparameter auch für eine oder mehrere Teilbahnen eine maximale Geschwindigkeit zum Abfahren der jeweiligen Teilbahn umfassen. Zusätzlich zu den Bahnparametern sind auch die später erläuterten Grenzwerte der zulässigen Dynamik, etc. bekannt.
[0042] Fig. 2 zeigt die Bahn bei einem Scararoboter 200, mit verschiedenen Bahnabschnitten. Ein Scararoboter (Scara ist hierbei die Abkürzung für engl. Selective Compliance Assembly Robot Arm) ist ein Typ von Industrierobotern, dessen Aufbau einem menschlichen Arm ähnelt. Der TCP 210 des Roboters 200 verläuft hier auf einer Bahn, die nur schematisch angedeutet ist, und die an den Stützstellen 231 und 232 in die Teilbahnen 241, 242 und 243 zerlegt werden kann. Hierbei sind die Teilbahnen 241 und 243 vom PTP-Typ und die Teilbahn 242 vom CP-Typ. Die PTPBahnen 241 und 243 sind in Fig. 2 nur schematisch, im Sinne der zu erwartenden Geometrie im Raum dargestellt.
[0043] Es ist noch anzumerken, dass die in den Fig. 1 und 2 dargestellten Sechsachsknickarmroboter und Scararoboter nur Beispiele für alle möglichen Industrieroboter sind. Das erfinderische Verfahren kann für alle Industrieroboter eingesetzt werden, die einer Bahnplanung unterliegen, wie im vorliegenden Dokument diskutiert. Weitere Beispiele sind Delta-Roboter und Portalkinematiken.
[0044] Eine Aufgabe des Verfahrens ist es, eine zeitoptimale Bewegungsbahn für Industrieroboter 100, 200 zur Verfügung zu stellen. Mathematisch ausgedrückt wird dies als Optimierungsverfahren mit dem Gütefunktional J:
TE J = min | 1 dt
TE [0045] Hierbei ist t die Zeit und T£ das Zeitintervall bzw. die erreichte Endzeit.
[0046] Bei der Optimierung müssen Randbedingungen (Grenzwerte in der Dynamik, auch Limits genannt und mit min bzw. max deklariert) bzw. Nebenbedingungen je Achse i eingehalten werden:
di,min < di < Qimax di,min < di < Yi,max Gi,min < di < Gi,max Gi,min < di < Gimax Timin S Ti S
Simin S SiS
Timax
Simax
[0047] Hierbei ist: q Achswinkel, Gelenkswinkel oder auch Roboterkoordinaten bzw. Roboterachsposition, die sowohl rotatorisch als auch translatorisch sein können, 4 die Geschwindigkeit, die Beschleunigung, 4 der Ruck, ı Motormomente bzw. bei einigen Robotertypen Antriebskraft und s der Bahnweg.
[0048] Das heißt, das Verfahren erfüllt die Einhaltung von Grenzwerten im Gelenksraum also je Roboterachse auf Positionsebene (allerdings nur auf PTP Strecken, auf CP Strecken gilt die Eingabe des Bedieners bzw. die daraus resultierende Geometrie), Geschwindigkeiten (zeitliche Ableitung der Position), Beschleunigungen (zeitliche Ableitung der Geschwindigkeit) und auch im Ruck (zeitliche Ableitung der Beschleunigung).
[0049] Bei CP-Strecken kann, wenn erforderlich, auch die Bahngeschwindigkeit $ zusätzlich begrenzt werden und auch weitere Grenzen auf der Bahn (z.B.: Bahnbeschleunigung), falls erforderlich. Weiters ist es möglich, wenn ein Dynamikmodell, d.h. ein mathematisches Modell des Roboters, vorhanden ist, dass die zu erwartenden Motormomente z; limitiert werden.
[0050] In der Praxis hat die Berechnungszeit (also jene Zeit, die das Verfahren benötigt, um ein Ergebnis zu liefern) auch einen sehr großen Stellenwert. Vorteilhafterweise soll die Berechnung in der Inbetriebnahme nicht länger als einige Millisekunden bis zu einigen Sekunden dauern.
[0051] Das Verfahren berechnet die Trajektorie einer vollständig definierten Bahn, wobei die
Trajektorie zu Bewegungsstart zur Verfügung steht. Man spricht auch von „offline“- Verfahren. Hierzu können Informationen über Rand- und Stützpunkte, Bahntypen, Achsgrenzwerte, Bahngrenzwerte und Bewegungs- oder Kinematikparameter, sowie eine Abtastzeit als Eingangswerte verwendet werden. Ausgabewerte können dann Gelenkswinkel q;(t) je Zeitintervall (Abtastzeit) sein.
[0052] Das Ergebnis kann in Form einer Matrix (bzw. Tabelle oder Liste) dargestellt werden, in der je Zeitintervall die Gelenkswinkel des Industrieroboters 100, 200 (jeweils für die Gelenke bzw. Achsen) angegeben sind. Diese Information wird der Roboter-Steuerung zur Verfügung gestellt. Im Sinne einer Bewegungssteuerung wird diese Tabelle als zyklische Sollwertvorgabe auf Motorbasis abgearbeitet.
[0053] Eine Bewegung vom Anfang bis zum Endpunkt wird somit durch eine Matrix definiert, in der die zugehörigen Gelenkswinkel und die entsprechenden Zeitpunkte gespeichert sind. Eine zyklische Sollwertvorgabe dieser Tabelle erfüllt somit das Abfahren der Trajektorie unter Einhaltung der gegebenen Nebenbedingungen.
[0054] Die Bewegungsparameter bzw. Kinematikparameter können auch Daten umfassen wie die Armlängen, Massen, Trägheiten, Getriebeinformationen des Roboters 100, 200 und Werkzeugparameter, wie Abstände, Massen und Trägheiten.
[0055] In den gezeigten Berechnungsverfahren können Vorwärtstransformationen, auch direkte Kinematik genannt, oder Rückwärtstransformationen, auch inverse Kinematik genannt, eingesetzt werden.
[0056] Die Vorwärtstransformation p = T(q) beschreibt die Berechnung der Pose p in Abhängigkeit von Gelenkswinkel q (Roboterkoordinaten). Diese Transformation ist im mathematischen Sinne eindeutig, wenn es eine serielle Kinematik ist. Bei einer parallelen Kinematik kann diese nicht allgemein angegeben werden.
[0057] Rückwärtstransformation q = T7!(p) beschreibt die Berechnung der Gelenkswinkel q in Abhängigkeit von Weltkoordinaten (d.h. Pose p). Diese Transformation ist im mathematischen Sinne nicht eindeutig für serielle Kinematiken, und es Bedarf im Allgemeinen eines zusätzlichen Parameters, um aus den verschiedenen Lösungen die gültige zu bestimmen. Der Fall einer parallelen Kinematik führt oft auf ein leichter zu lösendes Problem. Die Ermittlung der Gelenkkoordinaten kann über Vektorketten und der Zuhilfenahme von trigonometrischen Funktionen erfolgen.
[0058] Bei komplexeren Industrierobotern können über die Beschleunigungs- bzw. Verzögerungsgrenzen die Motormomentgrenzen (aufgrund der Trägheitsrückwirkung: Coriolis, Zentrifugalkräfte, Reibung, ...) nicht ausreichend abgebildet werden. Um dieser Forderung gerecht zu werden, ist ein mathematisches Modell der Kinematik erforderlich, das in Abhängigkeit der Positionen q, Geschwindigkeiten q und Beschleunigungen G der Achsen das Motormoment rt berechnet. Im Allgemeinen kann so ein Modell in folgender, nichtlinearen Form angegeben werden (M: Massenmatrix, C: Matrix bezüglich Coriolis und Zentrifugaleffekte, F: Matrix der Coulombschen Reibung und G: Vektor der Gewichtskräfte und weitere Nichtlinearitäten):
M(q)ä + C(q,q)q + sgn(@F(q) +G(q)=rt
[0059] Dieses Modell ist von vielen Parametern abhängig (kinematische und dynamische Parameter), die nicht alle identifiziert werden können. Hierbei ist eine Umformung des Modells auf eine sogenannte Base-Parameter Darstellung notwendig, um anschließend eine Zerlegung in identifizierbaren und nicht-identifizierbaren Parameter durchführen zu können, darüber hinaus sind Identifizierungs-Fahrten vorzunehmen, um reale Parameter zu bestimmen. Die Base-Parameter Darstellung (wobei 0 die Informationsmatrix und p der Parametervektor ist) lautet wie folgt:
0(4,4,q)p=Tt
[0060] Dies wird herkömmlicher Weise als zu erwartendes Motormoment bei der Traglastberechnung bzw. Machbarkeitsberechnungen eingesetzt.
[0061] Bei einer Punkt-zu-Punkt-Bahn (PTP-Bahn) werden die Startposition und die Endposition auf Gelenksebene (d.h. Roboterachsposition) über Trajektorien (Bahnen) je Achse verbunden. Das heißt im Umkehrschluss, dass die geometrische Bahn im Raum (am TCP) keine Relevanz hat in der Berechnung, und dass sich die Geometrie am TCP 110, 210 somit implizit ergibt aufgrund der Dynamik der Achsen (Grenzwerte/Limits in Geschwindigkeit, Beschleunigung und Ruck).
[0062] In der Berechnung werden verschiedene Einzeltrajektorien (je Achse) verwendet, welche optional auf die langsamste Verfahrzeit synchronisiert werden können.
[0063] Bei einer 7-Phasentrajektorie, welche als Einzeltrajektorie in der PTP-Bahn verwendet werden kann oder auch als Trajektorie für den Wegparameter bei einer CP-Bahn, wird eine rechteckförmige Form des Rucks angenommen. Der Zusammenhang zu den anderen beschreibenden Bahnparametern (wie etwa Beschleunigung, Geschwindigkeit und Position) ist über eine Integration gegeben. Solche Trajektorien fallen daher auch in die Gruppe der sogenannten „BangBang“-Trajektorien, weil der Ruck in dieser Gruppe von Trajektorien nur drei Werte annehmen kann, nämlich 0, einen maximalen und einen minimalen Wert. Hat der Ruck den Wert Null, ist dementsprechend die Beschleunigung oder die Geschwindigkeit maximal. Somit können bei Festlegung des Rucks und der Berücksichtigung von den Randbedingungen alle weiteren Bahnparameter (wie zum Beispiel die Dauer der Abschnitte) berechnet werden.
[0064] Eine 7-Phasentrajektorie kann im Zeitvektor aus 7 möglichen Phasen bzw. Abschnitten bestehen in denen jeweils Maximalwerte gelten, um Geschwindigkeitslimits, Beschleunigungslimits wie auch Ruck zu beschränken. Diese dreifach differenzierbare Bahn ist mit diesen Beschränkungen die schnellstmögliche, mit der Verfahrzeit TE.
[0065] Fig. 3 zeigt ein Beispiel einer berechneten Trajektorie unter Verwendung der 7- PhasenTrajektorie. Aufgrund der Wahl des Rucks und der Randbedingung ergeben sich durch die Integration die Beschleunigung, Geschwindigkeit und die Position. In der Fig. 3 sind die Achsen beschriftet mit s für Weg bzw. Position, v für Geschwindigkeit, a für Beschleunigung, ] für Ruck und t für Zeit. Diese Beschriftungen gelten, sofern keine anderen Erläuterungen gemacht werden, auch für die weiteren Figuren.
[0066] Oben links wird der Verlauf der Position gezeigt. Unten links wird der Verlauf der Geschwindigkeit dargestellt. Oben rechts ist der Verlauf der Beschleunigung zu sehen. Unten rechts ist der Verlauf des Rucks zu sehen. In allen Teilen ist auf der horizontalen Achse die Zeit aufgetragen und in Abschnitte unterteilt. In der Figur sind diese Abschnitte gleichgroß, d.h. äquidistant, dies dient jedoch nur der Verdeutlichung und ist im Allgemeinen nicht der Fall. Es kann sogar vorkommen, dass Abschnitte nicht ersichtlich sind, da deren Startzeitpunkt und Endzeitpunkt identisch sind.
[0067] Dabei ist zu sehen, dass in jedem der Abschnitte einer der Grenzwerte (d.h. Geschwindigkeit, Beschleunigung und Ruck) den maximal zulässigen Wert erreicht. Dieser ist auch in dem jeweiligen Bild zu sehen, und mit Vmax, Amax (positiv und negativ auf der vertikalen Achse aufgetragen) und jmax (Positiv und negativ auf der vertikalen Achse aufgetragen).
[0068] Hierbei werden neben den Start- und Endpunkten auch die Geschwindigkeits- (vs, ve) und Beschleunigungsrandbedingungen (as, ae) berücksichtigt. Der Index S steht hierbei für die Bedingungen am Startpunkt, der Index E für die Bedingungen am Endpunkt.
[0069] Beim Strecken der Bahn Tsypc = k- Tg mit k>1, insbesondere mit Randbedingungen (eines von Vs, VE, As, A: UNgleich null) ist es mathematisch nicht garantiert, dass eine Lösung existiert. Hier existieren verschiedene Verfahren, wie so eine Streckung zu berechnen ist.
[0070] Alternativ kann eine Rechteckbahn in der Beschleunigung angenommen, und anschließBend ein gleitender Mittelwertfilter mit der Filterbreite (bezogen auf die Zeit) tt darübergelegt werden, wodurch Ruckbeschränkungen berücksichtigt werden können.
[0071] Alternativ kann die Trajektorie aus Sinoidenprofilen bestehen. Weitere Alternativen sind ebenfalls vorstellbar.
[0072] Fig. 4 zeigt eine Anwendung eines Filters auf eine rechteckförmige Beschleunigung. Bezugszeichen 410 bezieht sich auf die Impulsantwort des Filters, dessen Form maßgeblich die Beschleunigung beeinflusst. In diesem Fall als Antwort eines einfachen Mittelwertfilters dargestellt. In Fig. 4 sind auf den Achsen die Zeit t und die Beschleunigung a dargestellt.
[0073] Vergleicht man die 7-Phasen-Trajektorie und die Rechteckbahn mit dem gleitenden Mittelwertfilter, so sind diese in vielen Bereichen identisch, wie in den Fig. 5A und 5B zu sehen ist.
[0074] Fig. 5A und 5B zeigen je einen Vergleich der 7-Phasen-Trajektorie und der Anwendung eines Filters. Dabei ist in Fig. 5A die Geschwindigkeitsgrenze aktiv, im Gegensatz zu Fig. 5B mit einer nicht erreichten Grenze. Anzumerken ist darüber hinaus, dass bei Fig. 5B die 7-Phasentrajektorie auf Grund der nicht erreichten Geschwindigkeitsgrenze zu einer „5 Phasen“ Trajektorie degeneriert.
[0075] Hierbei wird jeweils oben links der Verlauf der Position gezeigt. Unten links wird jeweils der Verlauf der Geschwindigkeit dargestellt. Oben rechts ist jeweils der Verlauf der Beschleunigung zu sehen. Unten rechts ist jeweils der Verlauf des Rucks zu sehen.
[0076] In jedem der Graphen ist die originale Trajektorie, die in der Beschleunigung ein Rechteck hat, zu sehen. Die originale Trajektorie wird durch eine durchgängige Linie angezeigt (—). Des Weiteren ist die Trajektorie nach Anwenden des Filters zu sehen. Diese wird durch eine Linie aus abwechselnd Strichen und Punkten angezeigt (- - -). Als letzte Trajektorie ist die 7-Phasen-Trajektorie zu sehen. Diese wird durch eine gepunktete Linie angezeigt (= ). Insbesondere bei den Graphen für Position und Geschwindigkeit verlaufen die Linien für die gefilterte Trajektorie und die 7-Phasen-Trajektorie deckungsgleich. Ebenso bei den in Fig. 5A dargestellten Graphen für Beschleunigung und Ruck. Lediglich in den in Fig. 5B dargestellten Graphen für Beschleunigung und Ruck, haben diese beiden Linien einen, zumindest teilweise, voneinander verschiedenen Verlauf.
[0077] Der Vorteil bei der Bahn mit Filter ist, dass die Berechnung wesentlich einfacher ist und auch beim Strecken der Bahn auf eine gewünschte Zeit, mit gegebenen Randbedingungen: vs, Ve, as, ae, Immer ein garantiertes Ergebnis liefert. Der Nachteil ist, dass bei bestimmten Konstellationen der Grenzwerte (falls die Geschwindigkeitsgrenze nicht erreicht wird), der Ruck unzureichend limitiert wird (wie in Fig. 5B unten rechts gezeigt), d.h. dieser ist doppelt so groß wie gefordert.
[0078] Alternativ kann ein ähnliches Ergebnis erreicht werden, wenn das Geschwindigkeitsprofil (z.B.: ausgeführt als ein Rechteckprofil) zweimal mittelwertgefiltert wird.
[0079] Eine Spline-Bahn kann insbesondere zur Synchronisation verwendet, wenn zum Beispiel die 7-Phasen nicht berechnet werden kann oder das gefilterte Beschleunigungsrechteckprofil die Dynamikgrenzwerte nicht erfüllt. Die Bahn eines Splines oder Polynomzugs ist in Anlehnung an einen kubischen Spline aufgestellt und besteht aus 4 Teilabschnitten mit Polynomen dritten Grades, wie in Fig. 6 zu sehen ist, die eine exemplarische Darstellung eines Polynom 3.Grades auf Positionsebene zeigt. Die Position wird zeitlich in vier Teile aufgeteilt und besitzt einen Startpunkt Ss und einen Endpunkt se.
[0080] Die denkbar einfachste Trajektorie um zwei Punkte dynamisch zu verbinden, wird erhalten, indem eine Polynomtrajektorie generiert wird. Da für die vorliegende Erfindung neben Winkel, Geschwindigkeit, Beschleunigung auch der Ruck betrachtet wird, wird ein Polynom fünften Grades verwendet, wobei ai die Polynomkoeffizienten sind:
5 = Dat! i=0 [0081] Fig. 7 zeigt eine Verbindung eines Start- und Endpunktes mit einem Polynom fünften Grades. Die dazugehörige Geschwindigkeit ergibt sich durch die erste Ableitung. In der Darstellung
ist nach rechts die Zeit taufgetragen, während nach oben die Position 5 bzw. die Geschwindigkeit v aufgetragen ist.
[0082] Hierbei können keine Grenzwerte, bzw. Limits vorab berücksichtigt werden, allerdings ist diese Trajektorie dynamisch am sanftesten, d.h. der Ruck ist minimiert. Daher wird diese Trajektorie insbesondere für Synchronisationsstücke verwendet. Das ist auch als „minimal jerk trajectory“ bekannt.
[0083] Das Verfahren zur Berechnung einer PTP-Bahn mit gegebenen Randbedingungen und Grenzwerten ist in Fig. 8 dargestellt. Dabei sind die Randbedingungen insbesondere die jeweilige Geschwindigkeit und Beschleunigung an jeder Achse beim Start- und Endpunkt der Bahn zu berücksichtigen.
[0084] In Fig. 8 wird an Schritt 801 mit der Eingabe der Daten, beispielsweise, dass die Strecke vom Start- zum Endpunkt führen soll, und den Randbedingungen am Start und Endpunkt, begonnen. 802 bezeichnet die Grenzwerte, beispielsweise die maximale Beschleunigung, die maximale Geschwindigkeit und der maximale Ruck je Achse.
[0085] Beides wird in 803 verarbeitet, um eine 7-Phasen-Trajektorie je Achse zu bestimmen. Statt der 7-Phasen-Trajektorie können auch andere Ansätze zur Berechnung von Trajektorien angesetzt werden, üblicherweise Bang-Bang-Trajektorien, insbesondere eine mittelwertgefilterte Rechtecktrajektorie in der Beschleunigung.
[0086] In 804 wird die langsamste Achse ermittelt bzw. die vorläufige PTP-Verfahrzeit Tsync bestimmt.
[0087] In Schritt 805 werden sodann alle verbleibenden Achsen über eine weitere 7- PhasenTrajektorie gestreckt, im Sinne von einer Synchronisation (Dehnung) auf Tsynce. Auch hier kann eine der anderen Trajektorien eingesetzt werden, wie oben aufgeführt.
[0088] Im Schritt 806 wird geprüft, ob die Synchronisation erfolgreich berechnet werden konnte. Falls ja, so wird mit Schritt 808 fortgefahren, falls nein, wird in Schritt 807 eine Spline-Bahn berechnet, bevor mit Schritt 808 fortgefahren wird. Auch hier ist angemerkt, dass beliebige Synchronisationstrajektorien eingesetzt werden können.
[0089] In Schritt 808 wird geprüft, ob die Grenzwerte erfüllt sind. Insbesondere, ob die Achspositionsgrenzwerte bei PTP Bahnen innerhalb der vorgeschriebenen Bereiche bleibt, und ob die Beschleunigung, die Geschwindigkeit und der Ruck je Achse innerhalb der Grenzwerte bleibt.
[0090] Wird in Schritt 808 festgestellt, dass die berechnete Bahn es nicht ermöglicht, dass die Werte bei der Bewegung innerhalb der Grenzwerte bleiben, so wird in Schritt 809 die Berechnung dieser Bahn mit den entsprechenden Bewegungsparameter abgebrochen.
[0091] Das Verfahren in Fig. 8 kann dann mit neuen Werten für die Bewegungsparameter erneut begonnen werden.
[0092] Wird in Schritt 808 festgestellt, dass die Grenzwerte erfüllt werden, dann kann in Schritt 810 eine Reduzierung der Dynamik durchgeführt werden. Eine Dynamik-Reduktion wird durch Austausch der Einzelbewegungen (also beispielsweise mittelwertgefilterter Rechteck in der Beschleunigung, Spline, Polynom-Bahn, etc. und erneute Prüfung, ob die Grenzwerte in der Position, Geschwindigkeit, Beschleunigung und Ruck je Achse eingehalten werden können) erreicht.
[0093] Anschließend wird in Schritt 811 geprüft, ob die Motormomentgrenzen für jeden der Motoren des Industrieroboters 100, 200 eingehalten werden. Ist dies nicht der Fall, so werden in Schritt 812 die Grenzwerte temporär reduziert, d.h. es werden jene Grenzen (Vmax und/oder amax) ermittelt, die auf Grund des Dynamikmodells reduziert werden müssen, und das Verfahren springt mit den neuen Grenzwerten wieder zu Schritt 803, wo die reduzierten Grenzwerte anstelle der initial festgelegten Grenzwerte 802 verwendet werden.
[0094] Falls in Schritt 811 festgestellt wird, dass die Motormomentgrenzen erfüllt werden, so endet die Berechnung der PTP-Bahn, die im Rahmen der vorliegenden Erfindung eine Teilbahn der Gesamtbahn sein kann, in Schritt 813.
[0095] Anzumerken ist, dass hierbei Positionsgrenzwerte je Achse bzw. Gelenke, nur indirekt durch Reduktion der Dynamik berücksichtigt werden. Mit diesem Verfahren kann auch der TCP
in einem gewissen Arbeitsbereich beschränkt werden (über eine erweitere Prüfung der Raumkoordinaten, nicht gezeichnet in Fig. 8).
[0096] Fig. 9 zeigt ein Beispiel für ein Portalhandling (x, y, z Verfahrwege möglich) einer PTPBahn 910 mit einer Positionsgrenze 920 in z. Dieser Grenzwert der Position kann nur eingehalten werden, wenn die Geschwindigkeit und Beschleunigung am Start- bzw. Endpunkt, d.h. vs, as, VE und ae, angepasst werden.
[0097] Der gezeigte Ablauf ist besonders vorteilhaft, da die Reihenfolge der Berechnungsschritte aufgrund der Berechnungszeiten der Teilschritte in dieser Form optimal ist.
[0098] Anzumerken ist, wenn keine Randbedingungen vorhanden sind, d.h. die Geschwindigkeit und Beschleunigung am Start- bzw. Endpunkt gleich Null sind, (vs, ve, as und a: = 0) dann gibt es auf jeden Fall mindestens eine Lösung, und der Abbruchschritt wird nicht aktiv (d.h. Teilschritt 809 wird dann nicht aktiv).
[0099] Im Folgenden wird nun auf ein Verfahren eingegangen, das zur Bestimmung einer zeitoptimalen Trajektorie eingesetzt werden kann, für eine Bahn, die aus mindestens einer Teilbahn besteht, und die Teilbahnen entweder CP-Bahnen, PTP-Bahnen oder eine Kombination davon sind.
[00100] Bei diesen Verfahren ist das Abbruchkriterium durch eine festgelegte Anzahl von Iterationen bestimmt. Nachstehend wird ein Iterationsverfahren über die Geschwindigkeit erläutert, auch v-Iteration genannt, bei dem das Geschwindigkeitsarray Vier Mit n Geschwindigkeitsübergängen festgelegt ist (z.B.: Viter = [Vmax,1, -.., Vmaxn]/MaxIiter ). Dabei werden mögliche Geschwindigkeiten getestet und derjenige Eintrag als „beste“ Geschwindigkeit herangezogen, welche über die gesamte Bahn die kleinste Verfahrzeit generiert.
[00101] Falls es, beispielsweise bei der v-Iteration mindestens einen Übergang gibt, so kann folgender Pseudo-Code eingesetzt werden.
Q
for j= 1:MaxIter % Maximale Anzahl der % Iterationen for 1= 1:NumOfVelArray 2% Maximale Anzahl der
% Geschwindigkeitsübergänge vold= VelArray(i); % alten Wert merken
VelArray(i) = j*viter(i1);
®% Funktion, die alle Teilverfahren CP, PTP auswertet %® und die Verfahrzeit J ermittelt mit den gegebenen % Randbedingungen (=Geschwindigkeitsübergänge)
J = SummeVerfahrzeitenDerTeilbahnen()
if J <= JBest %® durch die Erhöhung konnte eine kleinere % Verfahrzeit erreicht werden und als bisher
% 7 bestes Ergebnis speichern
JBest = J;
else % andernfalls Erhöhung zurücknehmen VelArray(i) = vold;
end
end end
[00102] Hier kann es durchaus sein, dass nur suboptimale Lösungen gefunden werden, da ei
gentlich jeder Geschwindigkeitsübergang mit jedem weiteren Übergang kombiniert werden muss (also das Ausrechnen aller möglichen Lösungen bzw. deren Kombinationen). Es hat sich aber gezeigt, dass durch die schrittweise Erhöhung der Geschwindigkeit das Optimum trotzdem sehr gut bestimmt werden kann.
[00103] Eine geometrisch definierte Bahn im Raum (z.B.: in Weltkoordinaten), also eine CPBahn, kann eine Gerade, eine Kreisbahn, eine Splinebahn, oder eine beliebige weitere mathematische Funktion (z.B.: eine Helix), oder eine Kombination davon sein. Der erste Schritt zur Berechnung einer optimalen Bewegung über die CP- Bahn ist eine Parametrierung über den Wegparameter, das heißt, dass die Bahn und die gesamte Dynamik der Gelenkswinkel in Abhängigkeit vom Wegparameter formuliert werden.
[00104] Fig. 10 zeigt eine Darstellung des Wegparameters anhand einer kombinierten Bahn in den Weltkoordinaten x und y, die aus zwei Geraden und einer Spline-Kurve besteht. Die Position auf der Bahn ist durch den Wegparameters eindeutig definiert. 1010 ist der Startpunkt, 1040 der Endpunkt.
[00105] Der Wegparameter o wird im Wesentlichen aus dem Bahnweg berechnet. Auf einer Geraden 1020, 1030 entspricht dieser Wegparameter genau dem Bahnweg, zur Vereinfachung kann der Endwert 1040 (Ziel) mit 1 definiert werden. Bei einem Kreis, oder einem Teil eines Kreises, ist der Wegparameter der Winkel und auf einem Spline 1050 die Streckenabschnitte bei einer linearen Verbindung 1051, 1052 der Stützpunkte.
[00106] Ist der Wegparameter definiert, kann die gesamte Geometrie der zu durchfahrenden Strecke in Lage und Orientierung parametriert werden, wie in Fig. 11 zu sehen ist. Fig. 11 zeigt oben links die Position in x und y in Weltkoordinaten, aufgetragen über den Wegparameter. Die vollständige Parametrierung der Trajektorie ergibt sich dann durch wiederholtes Ableiten nach dem Wegparameter. Dargestellt sind: oben rechts die Geschwindigkeit als erste Ableitung des Wegparameters, unten links die Beschleunigung als zweite Ableitung des Wegparameters und unten rechts der Ruck als dritte Ableitung des Wegparameters. Dabei gilt:
x = x(o) x 0x „0x, ,. = — X=—6 = X6ö do do 02x 02x dx x = — = — 6? + ö = x"6? + x'6 do? do? do x!!! 05x ... 03x ;3 +3 Ö%x 6 + ÖX = — X=— 6 — 66 +—65 do3 do? do? do
= x 63 + 3x" 66 + x
[00107] Mithilfe der Transformationen (direkte und indirekte Kinematik) kann dieser Zusammenhang in weiterer Folge hergestellt werden, wobei bereits die Abhängigkeit für die Pose p = p(s(t)), und analog für die Gelenkwinkel q = q(o(t)) verwendet wird:
p=T(q) q=T""(@)
p' = J(q)ql q' = ]J(@Q7p'
p” = J(q)'q +Jqq” q” = J(q) "qq
p'” = J(q)'q' +2 J(q)'q” +J(qq” q” = qq q 2: 1q)'q)
[00108] Hierbei wird die Jacobimatrix / verwendet, welche den Zusammenhang zwischen der Gelenksgeschwindigkeit und die Ableitung der Pose beschreibt:
BE) = J(q)A)
[00109] Dieser Zusammenhang ist linear und stellt damit eine Schlüsselkomponente in der Robotik dar, da die lineare Abhängigkeit allgemein gilt.
[00110] Nun können die Gelenkswinkel über den Wegparameter und somit über den Zeitvektor formuliert werden:
qlt) = q(0) alt) = q(0)6 Gt) = q(0)"6* + q(0)'ö = aq(0)"6? + q(0)Y6'6 qWt) = ql0)” 6} +3q(0)" 08 +q0)E
[00111] Für CP-Bahnen kann einerseits ein Verfahren im Zeitbereich angesetzt werden, welches wiederum ein iteratives Verfahren ist, und das schrittweise von einer gültigen Startlösung bzw. Initialbahn os;ar: (€) die Geschwindigkeit unter Einhaltung der Dynamikgrenzen steigert, bis keine weitere Zeitverbesserung mehr möglich ist. Diese Geschwindigkeitssteigerung wird dadurch erzeugt, dass die Zeitintervalle T(i) um ein gewisses Zeitdelta verkürzt werden.
[00112] Dies in Fig. 12 zu sehen, die einen Zusammenhang des Wegparameters o(t) und der Zeit t zeigt. Das Ziel der optimalen Bahn liegt darin, den Wegparameter in der kürzesten Zeit von o(0)=0 nach O(tena)=1 zu durchzulaufen, d.h. vom Startpunkt zum Endpunkt, unter Einhaltung der Nebenbedingungen, wie beispielsweise Grenzwerte. 1210 bezeichnet hierbei die Stützpunkte 0der Stützstellen, und Bahn 1220 ist die initial angenommene Bahn, während Bahn 1230 symbolisch für eine Bahn in einer j-ten Iteration der Berechnung steht. Zusätzlich ist in der rechten Hälfte der Fig. 12 die zeitliche Ableitung des Wegparameters 6(t) dargestellt. Hierbei ist 1250 die Initialbahn und 1260 die Bahn in der j-ten Iteration.
[00113] Der Ablauf dieser Berechnung kann in einem Pseudo-Code wie folgt beschrieben werden:
1 for ] = 1:MaxIter % Bahndurchläufe 2 for 1 = 1:NumOfKnots % Schleife über die
% Anzahl der Stützpunkte 3 Reduziere T(i) und deren
unmittelbaren Nachbarn
4 if DynamikOK % Werden alle Grenzwerte % eingehalten?
5 Reduktion von T(i) übernehmen
6 else
7 Reduktion von T(i) zurücknehmen
8 end
9 end
10 end
[00114] Hierbei läuft die äußere Schleife (Zeilen 1 bis 10) durch die Variable j so oft wie mit der Variablen Maxlter vorbestimmt ist. D.h. Maxlter bestimmt die maximale Anzahl an Iterationen des Ablaufs.
[00115] Die innere Schleife (Zeilen 2 bis 9) wird dabei so oft durchlaufen, wie durch die Anzahl der Stützpunkte auf der Bahn (Variable NumOfKnots) vorgegeben.
[00116] In Zeile 3 wird das Zeitintervall T{(i), d.h. in Abhängigkeit vom aktuellen i, d.h. vom Stützpunkt, und die unmittelbaren Nachbarn T{(i-1) und T(i+1), um ein gewisses Delta reduziert. Das Delta kann beispielsweise als Bruchteil der Abtastzeit definiert werden. Anschließend wird in der
Fallunterscheidung in Zeile 4 geprüft ob alle Grenzwerte eingehalten werden. Wenn das der Fall ist, dann wird in Zeile 5 die vorherige Reduktion der Zeitintervalle übernommen. Falls die Grenzwerte über- bzw. unterschritten werden, so werden die Reduzierungen in Zeile 7 zurückgenommen, bevor durch das Ende der inneren Schleife in Zeile 9, zur nächsten Iteration über den nächsten Stützpunkt fortgefahren wird.
[00117] Bei der Prüfung auf das Einhalten der Grenzwerte in Zeile 4 können sämtliche Grenzwerte geprüft werden: Geschwindigkeits-, Beschleunigungs-, und Rucklimits auf Gelenksebene, das Motormoment je Achse, sowie die Bahngeschwindigkeit selbst die sich folgend errechnet:
_ 72 72 72 Vgahn 5 VXTep “ + Yrep“ + Zrep “0
[00118] Ein weiteres Verfahren zur Berechnung der CP-Bahn ist ein Verfahren im Phasenraum.
Dieses Verfahren setzt eine weitere Transformation voraus: 2
zZ = Öö
Rn „2 _ 98
AA a 77 at 000€ 09777 “ do 00
4@) = aq(0)Vz ä® = ql0)'z+za00)7
et N 3 1 aD = (0) Wzz +7a(0)"2WZ +5 q00)'2z;
z ist hierbei eine Geschwindigkeit, die durch das Quadrat der zeitlichen Ableitung des Wegparameters cr definiert ist.
[00119] Durch diese Transformation wird die explizite Zeitabhängigkeit eliminiert, wodurch sich ein extrem effizientes Verfahren ergibt: Alle Parametrierungen können vorweg bestimmt werden, weil die Diskretisierung nun auf konstanten co; Schritten basiert und nicht auf einem nicht äquidistanten Zeitvektor. Dies wird auch in Fig. 13 dargestellt, in der zu sehen ist, dass durch die geschickte Wahl der Transformation das Problem auf ein eindimensionales Optimierungsproblem mit der neuen Variablen z(o0) reduziert wurde. Ersichtlich sind hier die Stützpunkte 1310 und die Entwicklung von z(o) über zwei Iterationen 1330 und 1340 des Geschwindigkeitsparameters. 1350 bezeichnet hierbei die Grenzkurve, d.h. den Verlauf des Grenzwertes für z.
[00120] Der Ablauf dieser Berechnung kann in einem Pseudo-Code wie folgt beschrieben werden:
11 for ]j = 1:MaxIter % Bahndurchläufe
12 for ii = 1:NumOfKnots % Schleife über die % Anzahl der Stützpunkte
13 Erhöhe z; an der Stelle 6;
und deren unmittelbaren Nachbarn
14 if DynamikOK % Werden alle Grenzwerte % eingehalten?
15 z-Erhöhung übernehmen
16 else
17 z-Erhöhung zurücknehmen
18 end
19 end
20 end
[00121] Hierbei läuft die äußere Schleife (Zeilen 11 bis 20) wiederum durch die Variable j so oft
wie mit der Variablen Maxiter vorbestimmt ist. D.h. Maxlter bestimmt die maximale Anzahl an Iterationen des Ablaufs.
[00122] Die innere Schleife (Zeilen 12 bis 19) wird dabei so oft durchlaufen, wie durch die Anzahl der Stützpunkte (Variable NumOfKnots) vorgegeben.
[00123] In Zeile 13 wird z; an der Stelle 0; und deren unmittelbaren Nachbarn erhöht. Die Erh6hung wird hierbei bevorzugter Weise um einen vorbestimmten Bruchteil der Grenzgeschwindigkeit erhöht. Anschließend wird in der Fallunterscheidung in Zeile 14 erneut geprüft ob alle Grenzwerte eingehalten werden. Wenn das der Fall ist, dann wird in Zeile 15 die z-Erhöhung übernommen. Falls die Grenzwerte über- bzw. unterschritten werden, so wird die z-Erhöhung in Zeile 17 zurückgenommen, bevor durch das Ende der inneren Schleife in Zeile 19, zur nächsten Iteration über den nächsten Stützpunkt fortgefahren wird.
[00124] Bei der Prüfung auf das Einhalten der Grenzwerte in Zeile 14 können wieder sämtliche Grenzwerte geprüft werden: Geschwindigkeits-, Beschleunigungs-, und Rucklimits auf Gelenksebene, das Motormoment je Achse, sowie die Bahngeschwindigkeit selbst.
[00125] Die Bahngeschwindigkeit im Phasenraum wird hierbei wie folgt formuliert: VBann” = (Xrep* + Yrep”* + Zrep *)z [00126] Das Motormoment wird hierbei bekannter Weise in diese Form gebracht: a(0)z’ +b(o)z+c(o0o)=t [00127] Dies geschieht über folgenden Zusammenhang: a(o) = 1/2 M(q)a' b(0) = M(q)q” + C(q,q’)a' + sgn(q')F(q)
c(0) = G(q)
[00128] Die Schwierigkeit bei diesem Verfahren ist die Rücktransformation in den Zeitbereich, weil am Start und Ende, d.h. am Startpunkt und am Endpunkt, die Geschwindigkeit den Wert von Null annehmen kann und daher es zu einer Division durch Null kommt. Die Rücktransformation kann nach dieser Vorschrift berechnet werden:
OF, 1 OF, 1
t= — do = — do
o Vz o v6? [00129] Durch diverse Approximationen an den Rändern kann dieses Problem jedoch behoben werden.
[00130] Im Gegensatz hierzu wird bei herkömmlichen Verfahren der Ruck nie betrachtet, da bei einer Betrachtung ohne Ruck, das Verfahren linear in z und z‘ ist, und daher herkömmliche Optimierungsfahren angewendet werden können, wie zum Beispiel ein Bellman-Verfahren oder Ahnliche.
[00131] Die hier beschriebenen Verfahren zur Bestimmung einer CP-Bahn sind lediglich beispielhaft erläutert. Es können auch andere Verfahren eingesetzt werden, wie beispielsweise das Ansetzen einer 7-Phasentrajektorie oder Polynomtrajektorie auf dem Wegparameter im Zeitbereich. Dabei werden die Parameter der Trajektorie, zum Beispiel die Endzeit der Polynomtrajektorie, solange erhöht bis alle Grenzwerte erfüllt sind.
[00132] Vorzugsweise werden immer die beiden zuvor dargestellten Verfahren bei reinen CPBahnen berechnet, weil die Verfahren unterschiedliche Stärken und Schwächen aufweisen. Bei sehr langen Bahnen ist es günstiger, d.h. ressourcenschonender hinsichtlich der benötigten Rechenzeit, im Phasenraum zu rechnen, bei vergleichsweise kurzen Bahnen eher im Zeitbereich, da dann die Approximationen durch die Null-Division sich sehr negativ auswirken.
[00133] Bei den hier vorgestellten Verfahren zur Bestimmung der besten Bahn für eine CP-Bahn
ist das Abbruchkriterium dadurch definiert, dass bei einem Durchlauf durch die gesamte CP-Bahn keine einzige Geschwindigkeitserhöhung (bei CP im Phasenraum) bzw. Zeitintervallreduzierung (bei CP im Zeitbereich) bei den Stützpunkten mehr durchgeführt werden kann, weil dadurch die Dynamikgrenzen verletzt werden und somit sich die Trajektorie im Vergleich zur letzten Iteration nicht verändert hat. Dadurch ist das Optimum bestimmt und die Iteration kann beendet werden.
[00134] Es soll angemerkt werden, dass es dennoch passieren kann, dass an einem Stützpunkt co; die Geschwindigkeitserhöhung bzw. Zeitintervallreduktion zurückgenommen wird, weil die Dynamikgrenzen überschritten sind. Wenn allerdings an einer anderen weiteren Stelle ox eine Veränderung durchgeführt werden kann, dann kann auf die gesamte CP-Bahn betrachtet die Verfahrzeit weiter reduziert werden, im Vergleich zur letzten gültigen Iteration durch die CP-Bahn.
[00135] Bei dem erfindungsgemäßen Verfahren wird das zuvor vorgestellte PTP-Verfahren in Kombination mit dem CP-Verfahren im Zeitbereich und weiteren Verfahren im Zeitbereich (Ausprägung des Zeitprofils des Wegparameters als 7-Phasen, Polynombahn, etc.) kombiniert, um bei den Ubergangspunkten die bestmögliche (im Sinne der Verfahrzeit) Geschwindigkeit v und Beschleunigung a zu ermitteln.
[00136] Ein Beispiel zur Erläuterung der Funktionsweise wird in Fig. 14 gezeigt, in der eine einfache Bahn, die eine Kombination aus einer CP-Teilbahn 1410, die eine CP- Bahn ist, und einer PTP-Teilbahn 1420 ist. Fig. 14 zeigt eine in Weltkoordinaten x, y und z dargestellte Bahn. Die mit P+;, P2 und Ps bezeichneten Punkte stellen Stützpunkte dar. P+ ist der Startpunkt und Ps der Endpunkt. P» ist der Punkt, an dem die CP-Bahn 1410 in die PTP-Bahn 1420 übergeht. Die Übergangsgeschwindigkeit v; und -Beschleunigung a; sind im Punkt P,» zu bestimmen.
[00137] Das erfinderische Verfahren, dargestellt in den Fig. 15 und 16, kann hierbei zweimal durchlaufen werden, beim ersten Mal 1500 wird lediglich die Ubergangsgeschwindigkeit v; ermittelt, wobei a; als Null angenommen wird. Beim zweiten Durchlauf 1600 kann die ermittelte Übergangsgeschwindigkeit vi dann als Startwert verwendet werden, und dann auch die Beschleunigung variiert werden. Dennoch können beim zweiten Durchlauf 1600 auch minimale Anderungen in der zuvor bestimmten Ubergangsgeschwindigkeit vorgenommen werden.
[00138] Durch das zweistufige Vorgehen kann die Berechnungszeit optimiert werden, die gegenüber einer verschachtelten Schleife, die beide Berechnungen beinhalten würde, schneller ein Ergebnis liefert. Dies ist dadurch bedingt, dass die Geschwindigkeit am Ubergangspunkt der entscheidende Faktor für eine schnelle Verfahrzeit der Gesamtbahn ist. Daher ist der erste Durchlauf des Verfahrens, d.h. die nachfolgend beschriebene v-Iteration, der ausschlaggebende. Der zweite Durchlauf, nachfolgend als v-a-Iteration beschrieben, stellt anschließend noch ein Feintuning dar.
[00139] Die v-Iteration ist in Fig. 15 dargestellt, und stellt ein computerimplementiertes Verfahren zur Bestimmung einer zeitoptimalen Trajektorie vor Bewegungsstart für eine durch Bewegungsparameter vorgegebene Bewegung eines Industrieroboters 100, 200 auf einer Bahn, die durch Bahnparameter, die mindestens einen Startpunkt 121, 1010, einen Endpunkt 122, 1040, und mindestens einen Bahntyp umfassen, definiert ist, unter Einhaltung vorbestimmter Grenzwerte dar.
[00140] Darin erfolgt die Iteration über Viter = Vmin ... Vmax Mit n als Anzahl der Schritte (bei einem CP auf PTP Ubergang mit vmin=0). Das bedeutet, bei jedem Durchlauf des Ablaufes wird die Geschwindigkeit erhöht. Findet ein Ubergang von einer PTP- Teilbahn auf eine weitere PTP-Teilbahn statt, so werden bei allen Achsen die Geschwindigkeiten bis zum zulässigen Vmax vanliert. Dabei bleibt die Beschleunigung konstant, a; = 0.
[00141] Im Einzelnen werden in Schritt 1510 vi und a; als Null initialisiert, d.h. für j=0 sind vi und a; gleich 0. In Schritt 1520 wird dann die Geschwindigkeit erhöht, so dass v; (i)= J*Viter(1). In Schritt 1530 werden dann für jede CP-Teilbahn 141, 144, 242, 1020, 1030, 1050, 1410 anhand der zuvor beschriebenen Verfahren das jeweils beste Verfahrergebnis ermittelt. In den zuvor beschriebenen Verfahren ist das Prüfen, ob Grenzwerte über- bzw. unterschritten werden bereits enthalten. Sollte ein Verfahren eingesetzt werden, das dieses Überprüfen noch nicht enthält, so kann dies hier anschließend ausgeführt werden. Falls bei der Überprüfung ermittelt wird, dass die Grenz-
werte nicht eingehalten werden können, unter den in der jeweiligen Iteration geltenden Bewegungsparameter, So wird mit veränderter, d.h. erhöhter, Geschwindigkeit eine neue Iteration gestartet.
[00142] In anderen Worten wird in Schritt 1530, falls der Bahntyp mindestens einer der Teilbahnen eine geometrisch im Raum definierte Teilbahn 141, 144, 242, 1020, 1030, 1050, 1410 ist, eine zeitoptimale Trajektorie für jede der geometrisch im Raum definierten Teilbahnen, gemäß einem oder mehreren Verfahren zur Berechnung von geometrisch im Raum definierten Teilbahnen unter Berücksichtigung der vorbestimmten Grenzwerte und der zutreffenden Bahn- und Bewegungsparameter berechnet, und das beste Ergebnis der Verfahren für die jeweilige Teilbahn ausgewählt.
[00143] Anschließend werden in Schritt 1540 für jede PTP-Teilbahn 142, 143, 241, 243, 910, 1420 anhand der zuvor beschriebenen Verfahren das jeweils beste Verfahrergebnis ermittelt. In den zuvor beschriebenen Verfahren ist das Prüfen, ob Grenzwerte über- bzw. unterschritten werden bereits enthalten. Sollte ein Verfahren eingesetzt werden, das dieses Uberprüfen noch nicht enthält, so kann dies hier anschließend ausgeführt werden. Falls bei der Uberprüfung ermittelt wird, dass die Grenzwerte nicht eingehalten werden können, unter den in der jeweiligen Iteration geltenden Bewegungsparameter, so wird mit veränderter, d.h. erhöhter, Geschwindigkeit eine neue Iteration gestartet.
[00144] In anderen Worten wird in Schritt 1540, falls der Bahntyp mindestens einer der Teilbahnen eine geometrisch im Raum freie Teilbahn 142, 143, 241, 243, 910, 1420 ist, eine zeitoptimale Trajektorie für jede der geometrisch im Raum freien Teilbahnen, gemäß einem oder mehreren Verfahren zur Berechnung von geometrisch im Raum freien Teilbahnen unter Berücksichtigung der vorbestimmten Grenzwerte und der zutreffenden Bahn- und Bewegungsparameter berechnet, und das beste Ergebnis der Verfahren für die jeweilige Teilbahn ausgewählt.
[00145] In Schritt 1550 wird dann ermittelt, ob die aus den in den Schritten 1530 und 1540 ermittelten Verfahrzeiten der Teilbahnen zusammengesetzte Verfahrzeit der Gesamtbahn die bisher schnellste Verfahrzeit darstellt. Sollte die aktuelle Verfahrzeit die bisher schnellste Verfahrzeit sein, so wird diese in Schritt 1560, zusammen mit den für das Abfahren der Bahn notwendigen Bewegungsparameter und daraus resultierenden Steuerbefehlen für den Industrieroboter 100, 200 gespeichert oder anderweitig festgehalten. Darüber hinaus wird auch für die Gesamtbahn ermittelt, ob alle Grenzwerte eingehalten werden. Danach wird die nächste Iteration mit erhöhter Geschwindigkeit eingeleitet.
[00146] Eine langsamere Verfahrzeit wird verworfen, und dann wird unmittelbar eine neue Iteration mit erhöhter Geschwindigkeit eingeleitet.
[00147] In anderen Worten werden in Schritt 1550 die ermittelten zeitoptimalen Trajektorien für alle Teilbahnen zu einer Gesamttrajektorie zusammengefügt, und überprüft, ob die Gesamttrajektorie die vorbestimmten Grenzwerte nicht überschreitet und die bisher schnellste Bewegung über die Bahn erlaubt. Dann wird einer der Bewegungsparameter variiert und eine neue Iteration begonnen.
[00148] Sollte bei irgendeinem Schritt die vorher bestimmte Endgeschwindigkeit vmax erreicht sein, so wird anschließend keine neue Iteration begonnen. Die zuletzt als schnellste Verfahrzeit ermittelte Zeit wird zusammen mit den für das Abfahren der Bahn notwendigen Bewegungsparameter und daraus resultierenden Steuerbefehlen für den Industrieroboter 100, 200 als Ergebnis an einen zweiten Durchlauf 1600, wie zuvor beschrieben weitergegeben. Alternativ kann das Ergebnis auch ausgegeben oder an ein Steuergerät für einen Industrieroboter 100, 200 weitergegeben werden.
[00149] In anderen Worten, nach Abschluss der vorbestimmten Anzahl von Wiederholungen, wird die schnellste Gesamttrajektorie als die zeitoptimale Trajektorie für die Bewegung über die Bahn ausgegeben.
[00150] Der zweite Durchlauf 1600, d.h. die v-a-Iteration, ist wie schon erwähnt in Fig. 16 darge-
stellt und stellt ein computerimplementiertes Verfahren zur Bestimmung einer zeitoptimalen Trajektorie vor Bewegungsstart für eine durch Bewegungsparameter vorgegebene Bewegung eines Industrieroboters 100, 200 auf einer Bahn, die durch Bahnparameter, die mindestens einen Startpunkt 121, 1010 und einen Endpunkt 122, 1040, und mindestens einen Bahntyp umfassen, definiert ist, unter Einhaltung vorbestimmter Grenzwerte dar.
[00151] Darin wird auf der Basis des Ergebnisses des ersten Durchlaufs 1500 die BeschleunigUng Ajter = Amin -.. Amax varliert. Hierbei kann auch die Geschwindigkeit vi angepasst werden, d.h. erhöht bzw. reduziert werden. Auch hier erfolgt die Iteration über n Schritte. Das bedeutet, bei jedem Durchlauf des Ablaufes wird der Betrag der Beschleunigung a; und alternierend im Sinne vom Vorzeichen erhöht.
[00152] Im Einzelnen werden in Schritt 1610 vi auf das jeweils beste Ergebnis des ersten Durchlaufs 1500 und a; als Null initialisiert. In Schritt 1620 wird dann die Beschleunigung erhöht, so dass a; = ater(]). Gegebenenfalls wird vi; um ein gewisses Delta dv(i) erhöht oder reduziert. Beispielsweise kann die Erhöhung bzw. Reduktion um einen Wert zwischen 15 und 30 Prozent der im ersten Durchlauf für die beste Verfahrzeit ermittelten Geschwindigkeit erfolgen. In Schritt 1630 werden dann für jede CP-Teilbahn 141, 144, 242, 1020, 1030, 1050, 1410 anhand der zuvor beschriebenen Verfahren das jeweils beste Verfahrergebnis ermittelt. In den zuvor beschriebenen Verfahren ist das Prüfen, ob Grenzwerte über- bzw. unterschritten werden bereits enthalten. Sollte ein Verfahren eingesetzt werden, das dieses Uberprüfen noch nicht enthält, so kann dies hier anschließend ausgeführt werden. Falls bei der Überprüfung ermittelt wird, dass die Grenzwerte nicht eingehalten werden können, unter den in der jeweiligen Iteration geltenden Bewegungsparameter, So wird mit veränderter, d.h. erhöhter, Beschleunigung und gegebenenfalls mit modifizierter Geschwindigkeit eine neue Iteration gestartet.
[00153] In anderen Worten wird in Schritt 1630, falls der Bahntyp mindestens einer der Teilbahnen eine geometrisch im Raum definierte Teilbahn 141, 144, 242, 1020, 1030, 1050, 1410 ist, eine zeitoptimale Trajektorie für jede der geometrisch im Raum definierten Teilbahnen, gemäß einem oder mehreren Verfahren zur Berechnung von geometrisch im Raum definierten Teilbahnen unter Berücksichtigung der vorbestimmten Grenzwerte und der zutreffenden Bahn- und Bewegungsparameter berechnet, und das beste Ergebnis der Verfahren für die jeweilige Teilbahn ausgewählt.
[00154] Anschließend werden in Schritt 1640 für jede PTP-Teilbahn 142, 143, 241, 243, 910, 1420 anhand der zuvor beschriebenen Verfahren das jeweils beste Verfahrergebnis ermittelt. In den zuvor beschriebenen Verfahren ist das Prüfen, ob Grenzwerte über- bzw. unterschritten werden bereits enthalten. Sollte ein Verfahren eingesetzt werden, das dieses Uberprüfen noch nicht enthält, so kann dies hier anschließend ausgeführt werden. Falls bei der Uberprüfung ermittelt wird, dass die Grenzwerte nicht eingehalten werden können, unter den in der jeweiligen Iteration geltenden Bewegungsparameter, so wird mit veränderter, d.h. erhöhter, Beschleunigung und gegebenenfalls mit modifizierter Geschwindigkeit eine neue Iteration gestartet.
[00155] In anderen Worten wird in Schritt 1640, falls der Bahntyp mindestens einer der Teilbahnen eine geometrisch im Raum freie Teilbahn 142, 143, 241, 243, 910, 1420 ist, eine zeitoptimale Trajektorie für jede der geometrisch im Raum freien Teilbahnen, gemäß einem oder mehreren Verfahren zur Berechnung von geometrisch im Raum freien Teilbahnen unter Berücksichtigung der vorbestimmten Grenzwerte und der zutreffenden Bahn- und Bewegungsparameter berechnet, und das beste Ergebnis der Verfahren für die jeweilige Teilbahn ausgewählt.
[00156] In Schritt 1650 wird dann ermittelt, ob die aus den in den Schritten 1630 und 1640 ermittelten Verfahrzeiten der Teilbahnen zusammengesetzte Verfahrzeit der Gesamtbahn die bisher schnellste Verfahrzeit darstellt. Sollte die aktuelle Verfahrzeit die bisher schnellste Verfahrzeit sein, so wird diese in Schritt 1660, zusammen mit den für das Abfahren der Bahn notwendigen Bewegungsparameter und daraus resultierenden Steuerbefehlen für den Industrieroboter 100, 200 gespeichert oder anderweitig festgehalten. Darüber hinaus wird auch für die Gesamtbahn ermittelt, ob alle Grenzwerte eingehalten werden. Danach wird die nächste Iteration mit erhöhter Beschleunigung und gegebenenfalls mit modifizierter Geschwindigkeit eingeleitet.
[00157] Eine langsamere Verfahrzeit wird verworfen, und dann wird unmittelbar eine neue Iteration mit erhöhter Beschleunigung und gegebenenfalls mit modifizierter Geschwindigkeit eingeleitet.
[00158] In anderen Worten werden in Schritt 1650 die ermittelten zeitoptimalen Trajektorien für alle Teilbahnen zu einer Gesamttrajektorie zusammengefügt, und überprüft, ob die Gesamttrajektorie die vorbestimmten Grenzwerte nicht überschreitet und die bisher schnellste Bewegung über die Bahn erlaubt. Dann wird einer oder mehrere der Bewegungsparameter variiert und eine neue Iteration begonnen.
[00159] Sollte bei irgendeinem Schritt die vorher bestimmte Endbeschleunigung amax erreicht sein, so wird anschließend keine neue Iteration begonnen. Die zuletzt als schnellste Verfahrzeit ermittelte Zeit wird zusammen mit den für das Abfahren der Bahn notwendigen Bewegungsparameter und daraus resultierenden Steuerbefehlen für den Industrieroboter 100, 200 als Ergebnis ausgegeben oder an ein Steuergerät für einen Industrieroboter 100, 200 weitergegeben.
[00160] In anderen Worten, nach Abschluss der vorbestimmten Anzahl von Wiederholungen, wird die schnellste Gesamttrajektorie als die zeitoptimale Trajektorie für die Bewegung über die Bahn ausgegeben.
[00161] Für jede der zuvor geschilderten Durchlaufarten, d.h. v-Iteration und v-a-Iteration, können die Verfahren zur Berechnung von geometrisch im Raum definierten Teilbahnen 141, 144, 242, 1020, 1030, 1050, 1410 aus der folgenden Gruppe stammen: Verfahren zur Optimierung eines Wegparameters im Zeitbereich und Verfahren zur Optimierung des Wegparameters im Geschwindigkeitsbereich.
[00162] Ebenso können die Verfahren zur Berechnung von geometrisch im Raum freien Teilbahnen 142, 143, 241, 243, 910, 1420 aus der folgenden Gruppe stammen: Bang-Bang-Trajektorie, insbesondere 7-Phasentrajektorie und mittelwertgefilterte Rechtecktrajektorien in der Beschleunigung, und Synchronisationstrajektorie, insbesondere Spline-Bahnen und Polynomtrajektorien.
[00163] Wie zuvor bereits beschrieben, kann das erfindungsgemäße Verfahren auf beliebige Gesamtbahnen angewendet werden. Es ist hierbei unerheblich, ob die Gesamtbahn mindestens eine geometrisch im Raum definierte Teilbahn 141, 144, 242, 1020, 1030, 1050, 1410, mindestens eine geometrisch im Raum freie Teilbahn 142, 143, 241, 243, 910, 1420 und/oder mindestens eine geometrisch im Raum definierte Teilbahn 141, 144, 242, 1020, 1030, 1050, 1410 und eine geometrisch im Raum freie Teilbahn 142, 143, 241, 243, 910, 1420 aufweist.
[00164] Die Bahnparameter, die die Gesamtbahn definieren, können hierbei Stützstellen 131, 132, 133, 213, 232, 1210, 1310 umfassen, die Verbindungspunkte von zwei Teilbahnen oder Punkte innerhalb einer oder mehrerer Bahnen darstellen.
[00165] Die Bewegungsparameter, die die Bewegung des Roboters 100, 200 auf der Bahn vorgeben, können hierbei Geschwindigkeits- und/oder Beschleunigungswerte umfassen. Die Bewegungsparameter können auch Werte umfassen, die an den Stützstellen 131, 132, 133, 213, 232, 1210, 1310, dem Startpunkt 121, 1010 und/oder dem Endpunkt 122, 1040 gelten sollen.
[00166] Die Bahnparameter können darüber hinaus weitere Stützstellen 131, 132, 133, 213, 232, 1210, 1310, weitere Bahntypen von Teilbahnen und/oder eine maximale Geschwindigkeit auf Teilbahnen umfassen.
[00167] Wie zuvor beschrieben, kann die erfindungsgemäße Ausführung ein zweimaliges Durchlaufen des Durchführens einer vorbestimmen Anzahl von Wiederholungen der Schritte des Verfahrens umfassen. Dabei kann beim ersten Durchlaufen beim Variieren eines oder mehrerer der Bewegungsparameter nur der Bewegungsparameter der Geschwindigkeit variiert werden, und beim zweiten Durchlaufen beim Variieren eines oder mehrerer der Bewegungsparameter können die Bewegungsparameter der Beschleunigung und der Geschwindigkeit variiert werden.
[00168] Die Grenzwerte können beispielsweise physikalische Grenzen beschreiben, die in einem oder mehreren Gelenken und/oder Antriebsachsen des Industrieroboters 100, 200 nicht überoder unterschritten werden dürfen.
[00169] Darüber hinaus können die Grenzwerte auch Positionsgrenzwerte umfassen, also Bereiche in dem sich der TCP 110, 210 und/oder andere Teile des Roboters 100, 200 während der Bewegung aufhalten dürfen. Die Grenzwerte können auch für eine oder mehrere der Achsen des Roboters 100, 200 einen Beschleunigungswert, einen Ruckwert, einen Achsgeschwindigkeitswert und/oder einen Motormomentwert umfassen. Auch die Bahngeschwindigkeit auf der Gesamtbahn oder einer oder mehrerer Teilbahnen kann als Grenzwert vorgegeben werden.
[00170] Fig. 17 zeigt eine Vorgehensweise bei Zieländerungen über eine Ausgangsbahn 1710 deren Geometrie angepasst wird. Bei sogenannten Pick-und-Place-Bahnen, zu Deutsch etwa Aufnehm-und-Platzier-Bahnen, ist es üblich, dass die Zielposition 1730 aufgrund der Teilelage je Anlagenzyklus variieren kann. Das heißt, der Roboter 100, 200 muss jedes Teil an einer etwas anderen Stelle 1730 platzieren. Analog kann entsprechend auch die Startposition variiert werden, an der beispielsweise das Teil aufzunehmen ist. Um die Variation einer Position zu bewerkstelligen, wird eine (oder mehrere) Ausgangsbahn 1710 in einem Speicher abgelegt. Die Geometrie wird dann abgeändert, so dass sich eine angepasste Bahn 1720 ergibt und die Zeitinformation der Ausgangsbahn wird wieder verwendet. In Fig. 17 sind zwei angepasste Bahnen 1720 dargestellt. Eine, bei der der x-Wert erhöht werden muss, und eine, bei der der x-Wert reduziert werden muss.
[00171] Eine weitere erfindungsgemäße Ausführungsform ist eine Vorrichtung, vorzugsweise ein Rechner, zur Bestimmung einer zeitoptimalen Trajektorie vor Bewegungsstart für eine durch Bewegungsparameter vorgegebene Bewegung eines Industrieroboters 100, 200 auf einer Bahn, die durch Bahnparameter, die mindestens einen Startpunkt 121, 1010 und einen Endpunkt 122, 1040 und mindestens einen Bahntyp umfassen, definiert ist, unter Einhaltung vorbestimmter Grenzwerte, wobei die Vorrichtung dazu eingerichtet ist, ein Verfahren nach einem der vorhergehenden Patentansprüche auszuführen.
[00172] Die Vorrichtung umfasst hierzu eine Berechnungseinheit, die eingerichtet ist die Bahn in eine oder mehrere Teilbahnen zu teilen.
[00173] Die Berechnungseinheit ist weiterhin dazu eingerichtet, eine zeitoptimale Trajektorie für jede der Teilbahnen unter Berücksichtigung der vorbestimmten Grenzwerte und der zutreffenden Bahn- und Bewegungsparameter durch Verwendung von Verfahren zur Berechnung von geometrisch im Raum definierten und/oder freien Teilbahnen zu berechnen, und das beste Ergebnis für jede Teilbahn auszuwählen.
[00174] Die Berechnungseinheit ist weiterhin dazu eingerichtet, die zeitoptimalen Trajektorien für alle Teilbahnen zu einer Gesamttrajektorie zusammenzufügen.
[00175] Die Berechnungseinheit ist weiterhin dazu eingerichtet, zu überprüfen, ob die Gesamttrajektorie oder die Trajektorie einer Teilbahn die vorbestimmten Grenzwerte überschreitet, und zu ermitteln, ob die ermittelte Gesamttrajektorie die bisher schnellste Bewegung über die Bahn erlaubt.
[00176] Die Berechnungseinheit ist weiterhin dazu eingerichtet, einen oder mehrere der Bewegungsparameter zu variieren.
[00177] Die Berechnungseinheit ist weiterhin dazu eingerichtet, die schnellste Gesamttrajektorie als die zeitoptimale Trajektorie für die Bewegung über die Bahn auszugeben.
[00178] Eine weitere Ausführungsform ist ein Computerprogramm-Produkt mit einem Programm für eine Datenverarbeitungsvorrichtung, umfassend Softwarecode-Abschnitte zum Ausführen der Schritte des zuvor beschriebenen Verfahrens, wenn das Programm auf der Datenverarbeitungsvorrichtung ausgeführt wird. Dieses Computerprogramm-Produkt kann ein computerlesbares Medium umfassen, auf dem die Softwarecode-Abschnitte gespeichert sind, wobei das Programm direkt in einen internen Speicher der Datenverarbeitungsvorrichtung ladbar ist.
[00179] Die Ausführungsbeispiele zeigen mögliche Ausführungsvarianten, wobei an dieser Stelle bemerkt sei, dass die Erfindung nicht auf die speziell dargestellten Ausführungsvarianten derselben eingeschränkt ist, sondern vielmehr auch diverse Kombinationen der einzelnen Ausführungs-
varianten untereinander möglich sind und diese Variationsmöglichkeit aufgrund der Lehre zum technischen Handeln durch gegenständliche Erfindung im Können der auf diesem technischen Gebiet tätigen Fachperson liegt.
[00180] Der Schutzbereich ist durch die Ansprüche bestimmt. Die Beschreibung und die Zeichnungen sind jedoch zur Auslegung der Ansprüche heranzuziehen.
[00181] Einzelmerkmale oder Merkmalskombinationen aus den gezeigten und beschriebenen unterschiedlichen Ausführungsbeispielen können für sich eigenständige erfinderische Lösungen darstellen. Die den eigenständigen erfinderischen Lösungen zugrundeliegende Aufgabe kann der Beschreibung entnommen werden.
Sämtliche Angaben zu Wertebereichen in gegenständlicher Beschreibung sind so zu verstehen, dass diese beliebige und alle Teilbereiche daraus mitumfassen, z.B. ist die Angabe 1 bis 10 so zu verstehen, dass sämtliche Teilbereiche, ausgehend von der unteren Grenze 1 und der oberen Grenze 10 mit umfasst sind, d.h. sämtliche Teilbereiche beginnen mit einer unteren Grenze von 1 oder größer und enden bei einer oberen Grenze von 10 oder weniger, z.B. 1 bis 1,7, oder 3,2 bis 8,1, oder 5,5 bis 10.
[00182] Der Ordnung halber sei abschließend darauf hingewiesen, dass zum besseren Verständnis des Aufbaus Elemente in den Figuren teilweise unmaßstäblich und/oder vergrößert und/oder verkleinert dargestellt wurden.
BEZUGSZEICHENAUFSTELLUNG
100, 200 Roboter
110, 210 Tool-Center-Point
121, 1010 Startpunkt
122, 1040 Endpunkt
131, 132, 133, 213, 232, 1210, 1310 Stützstellen
141, 144, 242, 1020, 1030, 1050, 1410 Teilbahnen vom CP-Typ
142, 143, 241, 243, 910, 1420 Teilbahnen vom PTP-Typ
410 Impulsantwort
801 Dateneingabe
802 Grenzwertvorgabe
803 Bestimmung einer 7-Phasen-Trajektorie je Achse
804 Ermittlung der langsamsten Achse
805 Strecken mit 7-Phasen-Trajektorie
806 Prüfung
807 Berechnen der Splinebahn
808 Prüfen, ob Grenzwerte erfüllt
809 Abbruch
810 Dynamik-Reduktion
811 Prüfen, ob Motormoment-Grenzwert erfüllt
812 Reduzieren der Grenzwerte
813 Ende der Berechnung
920 Positionsgrenze
1051, 1052 Wegparameter
1220, 1230 Iteration für Positionsparameter
1250, 1260 Iterationen für Geschwindigkeitsparameter
1330, 1340 Iterationen für Geschwindigkeitsparameter
1350 Grenzkurve für den
Geschwindigkeitsparameter 1500, 1600 Erfindungsgemäßes Verfahren, im ersten
bzw. zweiten Durchlauf
1510, 1610 Initialisierung der Startwerte 1520, 1620 Variieren von Bewegungsparametern 1530, 1540, 1630, 1640 Berechnen von zeitoptimalen Trajektorien für
CP- bzw. PTP-Teilbahnen 1550, 1650 Zusammenfügen von Trajektorien und
Überprüfen auf Grenzwerte
1560, 1660 Überprüfen auf schnellste Zeit und ggf. Speichern eines schnellsten Ergebnisses
1710 Ausgangsbahn
1720 Angepasste Bahnen
1730 Veränderte Zielposition

Claims (10)

Patentansprüche
1. Computerimplementiertes Verfahren (1500, 1600) zur Bestimmung einer zeitoptimalen Trajektorie vor Bewegungsstart für eine durch Bewegungsparameter vorgegebene Bewegung eines Industrieroboters (100, 200) auf einer Bahn, die durch Bahnparameter, die mindestens einen Startpunkt (121, 1010) und einen Endpunkt (122, 1040) und mindestens einen Bahntyp umfassen, definiert ist, unter Einhaltung vorbestimmter Grenzwerte, umfassend:
Teilen der Bahn in eine oder mehrere Teilbahnen (141, 144, 242, 1020, 1030, 1050, 1410;
142, 143, 241, 243, 910, 1420);
Durchführen einer vorbestimmen Anzahl von Wiederholungen folgender Schritte:
falls der Bahntyp mindestens einer der Teilbahnen eine geometrisch im Raum defi-
nierte Teilbahn (141, 144, 242, 1020, 1030, 1050, 1410) ist, Berechnen (1530, 1630) einer zeitoptimalen Trajektorie für jede der geometrisch im Raum definierten Teilbahnen (141, 144, 242, 1020, 1030, 1050, 1410), gemäß einem oder mehreren Verfahren zur Berechnung von geometrisch im Raum definierten Teilbahnen (141, 144, 242, 1020, 1030, 1050, 1410) unter Berücksichtigung der vorbestimmten Grenzwerte und der zutreffenden Bahnund Bewegungsparameter, und Auswählen des besten Ergebnisses der Verfahren für die jeweilige Teilbahn (141, 144, 242, 1020, 1030, 1050, 1410); falls der Bahntyp mindestens einer der Teilbahnen eine geometrisch im Raum freie Teilbahn (142, 143, 241, 243, 910, 1420) ist, Berechnen (1540, 1640) einer zeitoptimalen Trajektorie für jede der geometrisch im Raum freien Teilbahnen (142, 143, 241, 243, 910, 1420), gemäß einem oder mehreren Verfahren zur Berechnung von geometrisch im Raum freien Teilbahnen (142, 143, 241, 243, 910, 1420) unter Berücksichtigung der vorbestimmten Grenzwerte und der zutreffenden Bahn- und Bewegungsparameter, und Auswählen des besten Ergebnisses der Verfahren für die jeweilige Teilbahn (142, 143, 241, 243, 910, 1420);
Zusammenfügen (1550, 1650) der zeitoptimalen Trajektorien für alle Teilbahnen zu
„einer Gesamttrajektorie;
Überprüfen (1550, 1650), ob die Gesamttrajektorie die vorbestimmten Grenzwerte nicht überschreitet und die bisher schnellste Bewegung über die Bahn erlaubt (1560, 1660); und
Variieren (1520, 1620) eines oder mehrerer der Bewegungsparameter; und,
nach Abschluss der vorbestimmten Anzahl von Wiederholungen, Ausgeben der schnellsten Gesamttrajektorie als die zeitoptimale Trajektorie für die Bewegung über die Bahn; wobei die Verfahren zur Berechnung (1530, 1630) von geometrisch im Raum definierten
Teilbahnen (141, 144, 242, 1020, 1030, 1050, 1410) aus der folgenden Gruppe ausge-
wählt sind: Verfahren zur Optimierung eines Wegparameters (1051, 1052) im Zeitbereich und Verfahren zur Optimierung des Wegparameters (1051, 1052) im Geschwindigkeitsbereich; und/oder
wobei die Verfahren zur Berechnung (1540, 1640) von geometrisch im Raum freien Teilbahnen (142, 143, 241, 243, 910, 1420) aus der folgenden Gruppe ausgewählt sind:
Bang-Bang-Trajektorie, insbesondere 7- Phasentrajektorie und mittelwertgefilterte
Rechtecktrajektorien in der Beschleunigung, und Synchronisationstrajektorie, insbe-
sondere Spline- Bahnen und Polynomtrajektorien.
2. Verfahren gemäß Anspruch 1, wobei für die Teilbahnen (141, 144, 242, 1020, 1030, 1050, 1410; 142, 143, 241, 243, 910, 1420) mindestens eine der folgenden Bedingungen zutrifft:
die Teilbahnen umfassen mindestens eine geometrisch im Raum definierte Teilbahn (141, 144, 242, 1020, 1030, 1050, 1410);
die Teilbahnen umfassen mindestens eine geometrisch im Raum freie Teilbahn (142, 143, 241, 243, 910, 1420); und
die Teilbahnen umfassen mindestens eine geometrisch im Raum definierte Teilbahn (141, 144, 242, 1020, 1030, 1050, 1410) und mindestens eine geometrisch im Raum freie Teilbahn (142, 143, 241, 243, 910, 1420).
3. Verfahren gemäß einem der vorherigen Ansprüche, wobei die Bahnparameter weiterhin Stützstellen (131, 132, 133, 213, 232, 1210, 1310) umfassen, die Verbindungspunkte von zwei Teilbahnen oder Punkte innerhalb einer oder mehrerer Bahnen darstellen.
4. Verfahren gemäß einem der vorherigen Ansprüche, wobei mindestens eine der folgenden Bedingungen zutrifft: die Bewegungsparameter umfassen Geschwindigkeits- und/oder Beschleunigungswerte, die Bewegungsparameter umfassen Werte, die an den Stützstellen (131, 132, 133, 213, 232, 1210, 1310), dem Startpunkt (121, 1010) und/oder dem Endpunkt (122, 1040) gelten sollen; und die Bahnparameter umfassen eines oder mehrere aus: Stützstellen (131, 132, 133, 213, 232, 1210, 1310), weitere Bahntypen von Teilbahnen, und maximale Geschwindigkeit auf Teilbahnen.
5. Verfahren gemäß einem der vorherigen Ansprüche, umfassend zweimaliges Durchlaufen des Durchführens einer vorbestimmen Anzahl von Wiederholungen der Schritte des Verfahrens,
wobei beim ersten Durchlaufen beim Variieren (1520) eines oder mehrerer der Bewegungsparameter nur der Bewegungsparameter der Geschwindigkeit variiert wird, und
wobei beim zweiten Durchlaufen beim Variieren (1620) eines oder mehrerer der Bewegungsparameter die Bewegungsparameter der Beschleunigung und der Geschwindigkeit variiert werden.
6. Verfahren gemäß einem der vorherigen Ansprüche, wobei die Grenzwerte physikalische Grenzen beschreiben, die in einem oder mehreren Gelenken und/oder Antriebsachsen des Industrieroboters (100, 200) nicht über- oder unterschritten werden dürfen.
7. Verfahren gemäß einem der vorherigen Ansprüche, wobei die Grenzwerte einen oder mehrere der folgenden Werte umfassen: Position, Beschleunigung, Ruck, Achsgeschwindigkeit je Achse, Motormoment je Achse und Bahngeschwindigkeit.
8. Vorrichtung, vorzugsweise ein Rechner, zur Bestimmung einer zeitoptimalen Trajektorie vor Bewegungsstart für eine durch Bewegungsparameter vorgegebene Bewegung eines Industrieroboters (100, 200) auf einer Bahn, die durch Bahnparameter, die mindestens einen Startpunkt (121, 1010) und einen Endpunkt (122, 1040) und mindestens einen Bahntyp umfassen, definiert ist, unter Einhaltung vorbestimmter Grenzwerte, wobei die Vorrichtung ein Verfahren nach einem der vorhergehenden Patentansprüche ausführt und wobei die Vorrichtung eine Berechnungseinheit umfasst, die
die Bahn in eine oder mehrere Teilbahnen (141, 144, 242, 1020, 1030, 1050, 1410; 142, 143, 241, 243, 910, 1420) teilt;
eine zeitoptimale Trajektorie für jede der Teilbahnen unter Berücksichtigung der vorbestimmten Grenzwerte und der zutreffenden Bahn- und Bewegungsparameter durch Verwendung von Verfahren zur Berechnung von geometrisch im Raum definierten (141, 144, 242, 1020, 1030, 1050, 1410) und/oder freien (142, 143, 241, 243, 910, 1420) Teilbahnen berechnet;
das beste Ergebnis für jede Teilbahn auswählt;
die zeitoptimalen Trajektorien für alle Teilbahnen zu einer Gesamttrajektorie zusammenfügt;
überprüft, ob die Gesamttrajektorie oder die Trajektorie einer Teilbahn die vorbestimmten Grenzwerte überschreitet;
ermittelt, ob die ermittelte Gesamttrajektorie die bisher schnellste Bewegung über die Bahn erlaubt;
einen oder mehrere der Bewegungsparameter variiert; und
die schnellste Gesamttrajektorie als die zeitoptimale Trajektorie für die Bewegung über die Bahn ausgibt.
9. Computerprogramm-Produkt mit einem Programm für eine Datenverarbeitungsvorrichtung, umfassend Softwarecode-Abschnitte zum Ausführen der Schritte nach einem der Ansprüche 1 bis 7, wenn das Programm auf der Datenverarbeitungsvorrichtung ausgeführt wird.
10. Computerprogramm-Produkt nach Anspruch 9, wobei das Computerprogramm-Produkt ein computerlesbares Medium umfasst, auf dem die Softwarecode-Abschnitte gespeichert sind, wobei das Programm direkt in einen internen Speicher der Datenverarbeitungsvorrichtung ladbar ist.
Hierzu 12 Blatt Zeichnungen
24 / 36
ATA50565/2021A 2021-07-09 2021-07-09 Verfahren und Vorrichtung zur Bestimmung einer zeitoptimalen Trajektorie AT525225B1 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
ATA50565/2021A AT525225B1 (de) 2021-07-09 2021-07-09 Verfahren und Vorrichtung zur Bestimmung einer zeitoptimalen Trajektorie
KR1020247004413A KR20240032103A (ko) 2021-07-09 2022-07-07 시간-최적 궤적을 결정하기 위한 방법 및 장치
EP22748218.9A EP4366917A1 (de) 2021-07-09 2022-07-07 Verfahren und vorrichtung zur bestimmung einer zeitoptimalen trajektorie
PCT/AT2022/060244 WO2023279132A1 (de) 2021-07-09 2022-07-07 Verfahren und vorrichtung zur bestimmung einer zeitoptimalen trajektorie
CN202280048426.7A CN117615885A (zh) 2021-07-09 2022-07-07 用于确定时间优化的轨迹的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ATA50565/2021A AT525225B1 (de) 2021-07-09 2021-07-09 Verfahren und Vorrichtung zur Bestimmung einer zeitoptimalen Trajektorie

Publications (2)

Publication Number Publication Date
AT525225A1 AT525225A1 (de) 2023-01-15
AT525225B1 true AT525225B1 (de) 2023-10-15

Family

ID=82748105

Family Applications (1)

Application Number Title Priority Date Filing Date
ATA50565/2021A AT525225B1 (de) 2021-07-09 2021-07-09 Verfahren und Vorrichtung zur Bestimmung einer zeitoptimalen Trajektorie

Country Status (5)

Country Link
EP (1) EP4366917A1 (de)
KR (1) KR20240032103A (de)
CN (1) CN117615885A (de)
AT (1) AT525225B1 (de)
WO (1) WO2023279132A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000073967A1 (en) * 1999-05-28 2000-12-07 Brooks Automation, Inc. Robotic manipulators based on pre-defined time-optimum trajectory shape
EP3061576A1 (de) * 2015-02-26 2016-08-31 Siemens Aktiengesellschaft Verfahren zur Optimierung eines Bewegungsprofils, Computerprogramm, Steuereinrichtung und technisches System

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000073967A1 (en) * 1999-05-28 2000-12-07 Brooks Automation, Inc. Robotic manipulators based on pre-defined time-optimum trajectory shape
EP3061576A1 (de) * 2015-02-26 2016-08-31 Siemens Aktiengesellschaft Verfahren zur Optimierung eines Bewegungsprofils, Computerprogramm, Steuereinrichtung und technisches System

Also Published As

Publication number Publication date
KR20240032103A (ko) 2024-03-08
EP4366917A1 (de) 2024-05-15
CN117615885A (zh) 2024-02-27
WO2023279132A1 (de) 2023-01-12
AT525225A1 (de) 2023-01-15

Similar Documents

Publication Publication Date Title
DE102009049172B4 (de) Verfahren und Vorrichtung zur Steuerung eines Manipulators
EP1950010B1 (de) Roboter und Verfahren zum Programmieren eines Roboters
EP2212753B1 (de) Verfahren zum abfahren einer vorgegebenen bahn durch einen manipulator, sowie steuervorrichtung zur durchführung eines solchen verfahrens
DE69925204T2 (de) Robotersteuerung
EP2307935B1 (de) Positionsgesteuerter mechanismus und verfahren zur steuerung von in mehreren bewegungsfreiheitsgraden beweglichen mechanismen
EP3023205B1 (de) Verfahren zum ermitteln einer bewegungsgrenze
WO2010040493A1 (de) Industrieroboter und bahnplanungsverfahren zum steuern der bewegung eines industrieroboters
DE102015223258A1 (de) Verfahren zum Bearbeiten der Oberfläche eines dreidimensionalen Objekts
EP2209596B1 (de) Industrieroboter und verfahren zum steuern der bewegung eines industrieroboters
DE102009007181A1 (de) Verfahren zum Abfahren einer vorgegebenen Bahn durch einen Manipulator, sowie Steuervorrichtung zur Durchführung eines solchen Verfahrens
EP3771952B1 (de) Verfahren zur automatischen bewegung eines arbeitsgeräts sowie arbeitsgerät
EP3115857A1 (de) Trajektorienbestimmungsverfahren für nebenzeitbewegungen
EP3569367B1 (de) Rechnergestütztes ermitteln einer bewegung einer vorrichtung
AT525225B1 (de) Verfahren und Vorrichtung zur Bestimmung einer zeitoptimalen Trajektorie
DE102022126205B4 (de) Robotersystem zum Bewegen einer Nutzlast mit minimalem Schwanken der Nutzlast und erhöhter Positionierungsgenauigkeit
DE102018207919B3 (de) Robotersteuerung
WO2016206798A2 (de) Abfahren einer vorgegebenen bahn mit einem roboter
WO2017186345A1 (de) Roboter mit mobilem träger und manipulator
EP3721306A1 (de) Abfahren einer vorgegebenen arbeitsbahn mit einem roboter
DE102022208769B3 (de) Roboterbahnplanung und -steuerung
WO2019219795A1 (de) Steuern eines roboters
DE102022102175B3 (de) Steuerverfahren für eine Fahrzeug-Behandlungsanlage
WO2015024634A1 (de) Energieoptimales konfigurieren eines manipulators
WO2023057324A1 (de) Geschwindigkeitsvorgaben zur trajektorienbestimmung von kinematiken
EP4219251A1 (de) Steuerverfahren für eine fahrzeug-behandlungsanlage