DE102017102749A1 - Automatische Trajektorienerzeugung zur Ansteuerung eines Antriebssystems - Google Patents

Automatische Trajektorienerzeugung zur Ansteuerung eines Antriebssystems Download PDF

Info

Publication number
DE102017102749A1
DE102017102749A1 DE102017102749.1A DE102017102749A DE102017102749A1 DE 102017102749 A1 DE102017102749 A1 DE 102017102749A1 DE 102017102749 A DE102017102749 A DE 102017102749A DE 102017102749 A1 DE102017102749 A1 DE 102017102749A1
Authority
DE
Germany
Prior art keywords
speed
trajectory
limit
calculated
state
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.)
Pending
Application number
DE102017102749.1A
Other languages
English (en)
Inventor
Colin Leitner
Ralph Unden
Ognjen Drazic
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.)
Festo SE and Co KG
Original Assignee
Festo SE and Co KG
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 Festo SE and Co KG filed Critical Festo SE and Co KG
Priority to DE102017102749.1A priority Critical patent/DE102017102749A1/de
Priority to US15/892,759 priority patent/US10981274B2/en
Publication of DE102017102749A1 publication Critical patent/DE102017102749A1/de
Pending legal-status Critical Current

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/1602Programme controls characterised by the control system, structure, architecture
    • 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/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13144GUI graphical user interface, icon, function bloc editor, OI operator interface
    • 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/43Speed, acceleration, deceleration control ADC
    • G05B2219/43168Motion profile planning for point to point control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/02Arm motion controller

Landscapes

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

Abstract

Die Erfindung betrifft ein Verfahren und einen Trajektoriegenerator zur automatischen Erzeugung einer Trajektorie, die zu Ansteuerung eines Antriebssystems (12) in Steuersignale (sd) umgesetzt wird. Mit den Steuersignalen (sd) werden Aktoren des Antriebssystems gesteuert zur Ausführung der Bewegung gemäß der errechneten Trajektorie. Das Verfahren ist auf einem Microcontroller (µC) implementiert und hat eine sehr geringe Laufzeit und einen geringen Speicherbedarf.

Description

  • Die Erfindung betrifft das automatische und computer-gestützte Berechnen einer Trajektorie für ein Antriebssystem, wie es bei diversen technischen Anlagen eingesetzt wird, beispielsweise in Automatisierungssystemen, Robotersystemen, in der Fahrzeugtechnik oder in Bestückungsautomaten oder Befüllanlagen. Sollen z.B. Flüssigkeiten in Behältnisse gefüllt und diese zu weiteren Prozessschritten in der Automatisierungsanlage befördert werden, so ist es wichtig, die gefüllten Behälter möglichst ruckarm zu bewegen, damit die Flüssigkeit nicht ausläuft. Auch auf anderen Gebieten, wie z.B. der Robotik ist eine ruckbegrenzte, zeit-minimierte Bewegungssteuerung wichtig.
  • Im modernen Maschinen- und Anlagenbau stellen die Prozessbeschleunigung und die Reduktion von Spiel- und Taktzeiten bei konstanter bzw. erhöhter Präzision die Hauptherausforderung dar, um den Durchsatz zu erhöhen und die Qualität zu steigern. Ein wichtiger Aspekt bei der Entwicklung leistungsfähiger Verarbeitungsmaschinen ist daher die dynamisch günstige Gestaltung ihrer Bewegungsabläufe. Ziel des Bewegungsplanungsprozesses kann es sein, möglichst hohe Spitzen-Taktzahlen oder - alternativ - möglichst geringen Verschleiß und möglichst geringe Ausfallzeiten bei festgelegten Nenn-Taktzahlen zu erreichen. Beim Gestalten der Bewegungen sind somit vielfältige technische Parameter gegeneinander abzuwägen, wie eine zulässige Geschwindigkeit, Beschleunigung und die Vermeidung von Beschleunigungssprüngen, also der Limitierung von Ruck.
  • Im Stand der Technik ist es bekannt, auf automatisierte Weise Bewegungsprofile zu erzeugen, die ruckbegrenzt sind, eine minimale Ausführungszeit haben und sonstige Anforderung an den Bewegungsvorgang (z.B. Einschränkungen von Geschwindigkeit und/oder Beschleunigung) einhalten.
  • So zeigt die EP 2 307935 B1 ein Verfahren, bei dem unterschiedliche kinematische Fallkonstellationen in einem Entscheidungsbaum abgeprüft werden, um ein nicht lineares Gleichungssystem zu lösen. Aufgrund seiner Komplexität ist dieses Verfahren nicht für den Einsatz in Systemen geeignet, bei denen der Trajektoriegenerator auf kompakten, weniger komplexen Microcontrollern implementiert werden muss, die insbesondere nur weniger Code verarbeiten können. Aufgrund der Komplexität des in der genannten EP-Schrift beschriebenen Verfahrens ist dies für einfache Anwendungen zu umfangreich.
  • Macfarlane und Croft beschreiben in „S. Macfarlane und E. A. Croft: Jerk-Bounded Manipulator Trajectory Planning: Design for Real-Time Applications, in: IEEE Transactions an Robotics and Automation, 19(1), Seiten 42 bis 52, Februar 2003“ ein Online Verfahren zur Berechnung von glatten ruck-begrenzten Trajektorien, die durch Polynomfunktionen 5. Grades repräsentiert sind. Dabei sind komplexe mathematische Berechnungen notwendig, wie mitunter kubische Wurzeln. Eine konkrete Umsetzung in ein einfaches Verfahren zur Steuerung eines Motioncontrollers, bei dem nur Grundrechenarten benötigt werden und das somit effizient und unter Verwendung handelsüblicher Bauteile in Hardware implementiert werden kann, wird hier nicht beschrieben.
  • Auf Basis dieses Standes der Technik hat sich die vorliegende Erfindung die Aufgabe gestellt, ein robustes (wenig fehleranfälliges) und einfaches (schnelles) Verfahren zur automatischen Trajektorienerzeugung bereitzustellen, das wenig Speicherbedarf benötigt und eine möglichst geringe Rechenzeit aufweist.
  • Die Aufgabe wird durch die Gegenstände der beiliegenden unabhängigen Patentansprüche gelöst, insbesondere durch ein Verfahren, ein Computerprogramm, ein Antriebssystem und einen Trajektoriegenerator.
  • Gemäß einem ersten Aspekt betrifft die Erfindung ein computergestütztes Verfahren zur automatischen Trajektorienberechnung zur Ansteuerung von Endeffektoren eines Antriebssystems, z.B. einer einzelnen Achse des Antriebssystems, von einem Startzustand in einen Endzustand für eine vordefinierte Bahn, mit folgenden Verfahrensschritten:
    • - Erfassen des Startzustandes mit einer Startposition und einer Startgeschwindigkeit und optional einer Startbeschleunigung;
    • - Erfassen eines Endzustandes mit einer Endposition und einer Endgeschwindigkeit;
    • - Einlesen von Grenzwerten für eine maximale Beschleunigung, einen maximalen Ruck und eine maximale Geschwindigkeit; optional kann noch der Grenzwert für die Bremsbeschleunigung eingelesen und verarbeitet werden;
    • - Anwenden eines Berechnungsverfahrens, um aus einer zu berechnenden Mittengeschwindigkeit eine Trajektorie von dem erfassten Startzustand in den erfassten Endzustand bei Minimierung einer Trajektoriezeit zu berechnen; wobei
    das Berechnungsverfahren zunächst prüft, ob der eingelesene Grenzwert für die maximale Geschwindigkeit (mit positiven oder mit negativem Vorzeichen) eine zulässige Lösung bietet, um von dem erfassten Startzustand in den erfassten Endzustand zu gelangen und bejahendenfalls diesen zuvor eingelesen Geschwindigkeitsgrenzwert (also den eingelesenen Grenzwert für die maximale Geschwindigkeit) als Mittengeschwindigkeit bestimmt und andernfalls ein iteratives Optimierungsverfahren zur Bestimmung der Mittengeschwindigkeit in einem Suchintervall zwischen einer unteren Suchintervallgrenze und einer oberen Suchintervallgrenze anwendet, wobei die beiden Suchintervallgrenzen durch zwei unterschiedliche Berechnungsverfahren berechnet werden und
    wobei das Berechnungsverfahren zur Berechnung der Trajektorie zulässt, dass die erfasste Startgeschwindigkeit und/oder die erfasste Endgeschwindigkeit zeitweise über dem zulässigen Grenzwert für die Geschwindigkeit liegen können.
  • Ein Vorteil des Verfahrens ist darin zu sehen, dass die Start- und Endgeschwindigkeit und Start- und Endposition beliebige Vorzeichen haben können. Weiterhin ist nur wenig Code notwendig, um das Ergebnis des Berechnungsverfahrens zur Berechnung der Trajektorie zur Verfügung zu stellen. Es kann somit sehr einfach aufgebaut sein und es sind nur 7 bzw. bei notwendigem Abbau der Startbeschleunigung 8 Segmente notwendig.
  • Aufgrund der technischen Erfordernisse, wie der Reduktion von mechanischer Abnutzung, ergibt sich die Notwendigkeit, die zeitliche Änderungsrate der Beschleunigung bzw. Verzögerung, also den Ruck, zu limitieren. Dies wird auch bei dem hier vorgeschlagenen Berechnungsverfahren umgesetzt. Um beispielsweise Drehzahlen bei Servomotoren und Getrieben zu reduzieren oder das Effektivmoment an Servomotoren zu optimieren, ist eine Trajektorie mit Einschub von Bereichen konstanter Geschwindigkeit und Rucklimitierung in der Mitte des Bewegungsabschnitts hilfreich. Die kinematischen Gleichungen zur Erzeugung von ruckfreien Bahnplanungen sind hinreichend bekannt. Grundsätzlich sollen die Randbedingungen für die Bewegung, die in den Grenzwerten spezifiziert sind, eingehalten werden und gleichzeitig eine möglichst zeit-optimierte Bewegung geplant werden.
  • Das Verfahren liefert als Ergebnis eine automatisch berechnete Trajektorie, die zeitoptimiert ist und unter definierten Bedingungen bzw. phasenweise die Grenzwerte einhält. Das Ergebnis kann ebenfalls auf einer Benutzeroberfläche (graphisch und/oder numerisch) dargestellt werden. Darüber hinaus kann das Ergebnis Befehle zur Ansteuerung von Aktoren des Antriebssystems umfassen.
  • Ziel der Berechnung ist es, dass die Bewegung auf der erzeugten (SOLL-) Trajektorie - soweit wie möglich - nicht die erfassten Grenzwerte bzw. Bedingungen für das jeweilige Antriebssystem verletzt. Das Verfahren erlaubt aber, dass die erfasste Startgeschwindigkeit oder die erfasste Endgeschwindigkeit über dem jeweiligen Grenzwert für die Geschwindigkeit liegen und verletzt ausschließlich dann die begrenzte Geschwindigkeit bzw. den erfassten Grenzwert für die Geschwindigkeit.
  • Im Folgenden werden die Begrifflichkeiten dieser Anmeldung spezifiziert.
  • Das Antriebssystem dient zur Bewegung eines physikalischen, mechanischen oder sonstigen Objekts, z.B. zur Bewegung eines Bauteils (elektrischer Motor hydraulische Pumpe etc.), in einem technischen System (CNC-Maschine oder Roboter). Es kann sich um ein ein- oder mehrachsiges Antriebssystem mit einem linearen Bewegungsprofil und/oder um ein Antriebssystem mit einem rotativen Bewegungsmuster (z.B. rotatorische Ache in einem Fahrzeug) handeln. Das Antriebssystem kann z.B. zur Bewegungssteuerung in elektrischen oder pneumatischen Anlagen eingesetzt werden. Das Antriebssystem kann auch in einem Robotersystem ausgebildet sein. Das Antriebsobjekt ist ein zu bewegendes Objekt und kann Bestandteil eines Motors, eines Getriebes oder einer Kolben-ZylinderAnordnung sein. Das Antriebsobjekt wird von einem Aktor angetrieben. Es kann eine Steuereinheit vorgesehen sein, um den Aktor mit Sollvorgaben bzw. Führungsgrößen anzusteuern. Es kann ein Treiber oder Verstärker vorgesehen sein, um die Steuersingale der Steuereinheit (z.B. motion controller) in Bewegungsenergie umzusetzen, um den Aktor zu bewegen.
  • Das Verfahren dient zur automatischen, rechnergestützten Berechnung einer Trajektorie. Aus der berechneten Trajektorie können Steuerdaten berechnet werden, die als Sollvorgaben in Befehle umgesetzt werden, um Aktoren des Antriebssystems entsprechend der erzeugten Trajektorie anzutreiben.
  • Als Trajektorie wird die Vorgabe einer zeitabhängigen Ortsangabe für das zu bewegende Objekt verstanden. Die Trajektorie beschreibt einen zeitlichen Verlauf auf einer Bewegungsbahn mit dessen Geschwindigkeit, Beschleunigung und dem Ruck (als Ableitung der Beschleunigung bezüglich der Zeit). Das Verfahren erzeugt somit Angaben, zu welchem Zeitpunkt sich das jeweilige Antriebsobjekt wo bzw. an welcher Position auf einer vordefinierten Bewegungsbahn befinden soll.
  • Als Trajektoriengenerierung wird die Aufgabe verstanden, eine Beschreibung der zu fahrenden Bahn von einer Startkonfiguration bzw. einem Startzustand in eine Endkonfiguration (Endzustand) zu finden. Dazu müssen geometrische und kinematische Parameter verrechnet werden. Unter Verwendung von Polynomfunktionen geeigneten Grades kann eine weiche Trajektorie (mit weichen Übergängen) berechnet werden.
  • Gemäß einer vorteilhaften Ausführungsform der Erfindung umfasst die zu berechnende Trajektorie bis zu sieben Segmente, falls eine gegebenenfalls vorhandene Startbeschleunigung auf 0 reduziert wurde. Die berechnete Trajektorie ist in diesem Ausführungsbeispiel eine klassische 7-Segment Trajektorie. Sie bzw. die diesbezüglichen Datensätze kann/können dann weiterverrechnet werden, um Polynome auszuwerten und Steuerdaten für das Antriebssystem zu berechnen. Werte zu den Variablen Ort, Geschwindigkeit, Beschleunigung und Ruck haben jeweils eine polynomiale Repräsentation. Falls ein Abbau der Startbeschleunigung notwendig ist, wird ein Segment ergänzt, so dass insgesamt 8 Segmente (mit dem zusätzlichen Startbeschleunigungssegment ≠ 0) existieren.
  • Die Bewegungssegmente sind wie folgt definiert:
    • Gegebenenfalls Segment 0: Abbau vorhandener Restbeschleunigung mit maximalem Ruck, falls vorhanden.
    • Segment 1: Konstanter Ruck zur Erreichung der erforderlichen Beschleunigungsrate. Das Segment endet, sobald die notwendige Beschleunigung erreicht ist.
    • Segment 2: Konstantes Beschleunigungssegment, bei dem der Ruck den Wert „0“ hat. Das Segment endet, wenn ein Ruck zur Änderung der Beschleunigung/Verzögerung angesteuert werden muss.
    • Segment 3: Konstanter Ruck, um die Beschleunigung abzubauen. Das Segment endet, wenn die Beschleunigung den Wert „0“ erreicht.
    • Segment 4: Da die Geschwindigkeit in diesem mittleren Segment konstant ist, haben alle höhere Ableitungen der Geschwindigkeit, also insbesondere der Ruck und die Beschleunigung, den Wert „0“. Die Geschwindigkeit in diesem Segment wird als Mittengeschwindigkeit bezeichnet.
    • Segment 5: Konstanter Ruck, um die Zunahme des Abbremsvorganges anzusteuern. Das Segment endet, wenn eine konstante Abbremsrate (Verzögerungsrate) erreicht werden kann und der Ruck den Wert „0“ annimmt oder wenn es erforderlich ist, den die Abbremsrate zu reduzieren, um den Endzustand zu erreichen.
    • Segment 6: Ruck hat den Wert „0“ und die Abbremsrate ist konstant. Das Segment endet, wenn ein Ruck angesteuert werden muss, also wenn der Ruck nicht mehr den Wert „0“ hat.
    • Segment 7: Konstanter Ruck, um die Abnahme des Abbremsvorganges anzusteuern. Das Segment endet, wenn der Endzustand erreicht ist.
  • Grundsätzlich werden die 8 Segmente definiert durch den Anfangszustand, den Endzustand, die Grenzwerte und ggf. durch die Bedingungen und die Mittengeschwindigkeit.
  • Pro Segment gibt es 4 Koeffizienten k0 - k3 und eine Dauer T. Im Bereich von 0 bis T sind Ruck, Beschleunigung, Geschwindigkeit und Position innerhalb eines Segments gegeben als: j ( t ) = 6 * k3
    Figure DE102017102749A1_0001
    a ( t ) = 6 * k3*t+2*k2
    Figure DE102017102749A1_0002
    v ( t ) = 3 * k3*t 2+2*k2*t+k1
    Figure DE102017102749A1_0003
    s ( t ) = k 3 * t 3+k2*t 2+k1*t+k0 ,
    Figure DE102017102749A1_0004
    wobei j den Ruck (jerk), a die Beschleunigung (acceleration), v die Geschwindigkeit (velocity) und s die Strecke oder Position und t die Zeit bezeichnet.
  • Das Verfahren umfasst eine Reihe von Eingangsgrößen:
    • - Eine Startposition, eine Startgeschwindigkeit und eine Startbeschleunigung, die als Startzustand zusammengefasst werden; der Startzustand kann z.B. der aktuelle IST-Zustand des Antriebssystems sein.
    • - Eine Endposition und eine Endgeschwindigkeit, die als Endzustand zusammengefasst werden;
    • - Begrenzungen bzw. zulässige Grenzwerte (Limits) und/oder Bedingungen für Geschwindigkeit, Beschleunigung, Bremsbeschleunigung und Ruck, die von dem Antriebssystem bei der geplanten Bewegung einzuhalten sind. Es handelt sich bei den Grenzwerten insbesondere um Maximalwerte, die nicht überschritten werden sollen.
  • Bei den Grenzwerten handelt es sich in der bevorzugten Ausführungsform der Erfindung um Werte, die bei der Bewegung eingehalten werden sollen. Es können aber auch komplexere Bedingungen aus unterschiedlichen Grenzwerten definiert werden, die eine Verknüpfung dieser Grenzwerte umfassen (z.B. Grenzgeschwindigkeit < [Wert x] UND Bremsbeschleunigung < [Wert y]).
  • Die Eingangsgrößen werden vorzugsweise automatisch erfasst. Dazu können sie aus einem Speicher aus- und über eine entsprechende Schnittstelle eingelesen werden, z.B. aus einem speicherprogrammieren Steuerbaustein (SPS) oder aus einer Datenbank. Alternativ oder kumulativ können sie teilweise oder vollständig über Eingaben auf einer Benutzeroberfläche eingegeben werden.
  • Inkonsistente Eingaben (z.B. manuelle Eingaben eines Nutzers wie z.B. Grenzwerte = 0) können vorteilhafterweise durch einfach Abfragen (z.B. von Programmvariablen) detektiert und korrigiert werden. D.h. zu Eingaben, die zu einer nicht realisierbaren Trajektorie führen würden, wird automatisch eine Fehlermeldung bzw. ein entsprechendes Signal erzeugt, das auf einer Benutzeroberfläche ausgegeben wird. Es müssen keine aufwändigen Berechnungen durchgeführt werden. Inkonsistente Eingaben können somit einfach durch Abfrage erfasst werden, ohne dass weitere Berechnungen ausgeführt werden müssen.
  • Das Berechnungsverfahren basiert auf einem effizienten Algorithmus. Der dem Berechnungsverfahren zugrundeliegende Algorithmus hat eine geringe Komplexität O(1). Er enthält nur wenige einfache Rechenvorschriften. Dies hat den technischen Effekt, dass die Prozessorlast gesenkt und die Performanz der Trajektorienberechnung gesteigert werden kann. Vorteilhafterweise führt das in dieser Anmeldung beschriebene Berechnungsverfahren nur Berechnungen für Bahnen von einer Start- zu einer Endposition aus. Mehrsegment-Trajektorien können entsprechend zerlegt werden. Damit ist das Berechnungsverfahren ohne Rekursionen implementiert. Damit entsteht der wichtige technische Vorteil, dass das Verfahren sehr effizient und unter Verwendung handelsüblicher Bauteile in Hardware implementiert werden kann.
  • Die Trajektoriezeit soll optimiert werden. Dies bedeutet, dass die Verfahrzeit des jeweils zu bewegendes Objektes, z.B. einer Achse eines Linear-Antriebs oder einer rotativen Achse minimiert wird, also die Zeit, die zum Abfahren oder Ausführen der berechneten Trajektorie (die Dauer der Trajektorie) benötigt wird.
  • Das Verfahren prüft, ob es eine zulässige Lösung für ausgewählte Geschwindigkeitswerte gibt, um von dem Startzustand in den Endzustand unter phasenweiser Einhaltung der Grenzwerte und/oder Bedingungen zu gelangen. Diese Überprüfung wird durch eine automatische Berechnung ausgeführt. „Phasenweise“ Einhaltung der Grenzwerte meint, dass es erlaubt ist, dass die Grenzwerte zu bestimmten Zeitpunkten (also an bestimmten Stellen der Trajektorie) nicht eingehalten werden. Das Berechnungsverfahren stellt aber sicher, dass es zumindest eine Stelle der zu berechnenden Trajektorie gibt, an der alle Grenzwerte garantiert eingehalten werden.
  • Das Berechnungsverfahren dient zur Berechnung einer Mittengeschwindigkeit. Aus der berechneten Mittengeschwindigkeit ergibt sich die Trajektorie für alle Segmente und mit allen Werten vollständig.
  • Das Optimierungsverfahren dient zur numerischen Optimierung der Verfahrzeit bzw. Trajektoriezeit. Dabei müssen die Grenzwerte eingehalten und die Bewegung vom Startzustand in den Endzustand führen. Die Optimierungsvariable ist die Mittengeschwindigkeit. Gemäß einer vorteilhaften Ausführungsform der Erfindung wird bei dem Optimierungsverfahren eine Suche nach der Mittengeschwindigkeit in beiden Richtungen ausgeführt, was zwar zur Erhöhung (insbesondere Verdopplung) der Rechenzeit führt, aber garantiert, dass immer die optimale Lösung angenähert wird.
  • Eine Lösung ist dann zulässig, wenn sie von dem Startzustand in den Endzustand führt, mit anderen Worten, wenn die Dauer des Segments mit konstanter Geschwindigkeit den Wert „0“ hat oder positiv ist. Gemäß einem Aspekt dieser Erfindung wird die zulässige Lösung bedarfsweise einem Optimierungsverfahren unterzogen, um die Trajektoriezeit zu minimieren.
  • Als Ergebnis des Verfahrens wird eine Mittengeschwindigkeit berechnet oder bestimmt, um daraus und unter Berücksichtigung der erfassten und eingelesenen Eingangsgrößen eine Trajektorie zu berechnen. Gemäß einer vorteilhaften Weiterbildung der Erfindung können noch weitere Ergebnisse bereitgestellt werden, umfassend Steuerdaten zur Ansteuerung des Antriebssystems und Signale zur grafischen Ausgabe der berechneten Trajektorie auf einer Benutzeroberfläche. So können vorzugsweise folgende weitere Ergebnisse berechnet werden:
    • - eine Anzahl der Segmente,
    • - eine Dauer jedes der Segmente,
    • - ein Ruckverlauf in jedem der Segmente - das kann z.B. auf der Benutzeroberfläche in einer klassischen Polygondarstellung repräsentiert sein,
    • - ein Beschleunigungsverlauf in jedem der Segmente - z.B. als Polygondarstellung,
    • - ein Geschwindigkeitsverlauf in jedem der Segmente - z.B. als Polygondarstellung,
    • - ein Positionsverlauf in jedem der Segmente - z.B. als Polygondarstellung,
  • Das Ergebnis und die weiteren Ergebnisse werden vorzugsweise auf einer Benutzeroberfläche, z.B. einer grafischen Benutzeroberfläche, ausgegeben.
  • Die Trajektorie wird vor Ausführung der Bewegung komplett berechnet. Bei Ansteuerung der Endeffektoren und Aktoren des Bewegungssystems während der Bewegung muss die Trajektorie nur gesampelt und damit nur an einzelnen Punkten erfasst werden.
  • Gemäß einer anderen, vorteilhaften Ausführungsform der Erfindung ist/sind ein SOLL-Rechenzeitwert des Berechnungsverfahrens und/oder ein SOLL-Genauigkeitswert der zu berechnenden Trajektorie konfigurierbar. Somit kann in einer Konfigurationsphase konfiguriert werden, wie das Berechnungsverfahren ausgelegt sein soll hinsichtlich der Rechenzeit (Performance) und hinsichtlich der Genauigkeit (Güte der Optimierung). Dabei stehen Rechenzeit und Genauigkeit in einem umgekehrt proportionalen Verhältnis. Deshalb ist es in einer vorteilhaften Weiterbildung vorgesehen, nur einen der beiden Werte (SOLL-Rechenzeitwert oder SOLL-Genauigkeitswert) zu konfigurieren und daraus den jeweils anderen Wert automatisch zu bestimmen. Alternativ kann auch ein Verhältnis zwischen den SOLLWerten konfiguriert werden. Die Konfigurationen der Konfigurationsphase werden vorzugsweise über die Benutzeroberfläche eingegeben. Dabei ist es in einer vorteilhaften Weiterbildung der Erfindung vorgesehen, dass inkonsistente Eingaben automatisch korrigiert werden, indem ein Korrekturvorschlag für SOLL-Rechenzeitwert und/oder SOLL-Genauigkeitswert erzeugt und ausgegeben wird.
  • Gemäß einer anderen, vorteilhaften Ausführungsform der Erfindung umfasst das erste Rechenverfahren zum Berechnen der unteren Grenze des Suchintervalls folgende Schritte:
    • - Bestimmen von „+/-0“ (kleinstmöglicher Wert größer/ kleiner als 0) als untere Grenze, falls für eine Startgeschwindigkeit des erfassten Startzustandes und für eine Endgeschwindigkeit des erfassten Endzustandes keine Lösung gefunden werden kann;
    • - Bestimmen der Startgeschwindigkeit als untere Grenze, falls für die Startgeschwindigkeit eine Lösung und falls für die Endgeschwindigkeit keine Lösung gefunden werden kann;
    • - Bestimmen der Endgeschwindigkeit als untere Grenze, falls für die Startgeschwindigkeit keine Lösung und falls für die Endgeschwindigkeit eine Lösung gefunden werden kann;
    • - Prüfen, ob sowohl für die Startgeschwindigkeit als auch für die Endgeschwindigkeit eine Lösung gefunden werden kann und bejahendenfalls: Berechnen, welche der beiden Geschwindigkeiten die geringere Trajektoriezeit hat und Bestimmen derjenigen Geschwindigkeit als Mittengeschwindigkeit, die die geringere Trajektoriezeit hat.
  • Gemäß einer anderen, vorteilhaften Ausführungsform der Erfindung wird für alle Start- und Endzustände eine Mittengeschwindigkeit als Lösung ausgegeben. Das Verfahren hat damit den technischen Vorteil, dass garantiert eine Lösung berechnet und somit sichergestellt werden kann.
  • Gemäß einer anderen, vorteilhaften Ausführungsform der Erfindung ist es erlaubt, dass die erfasste Startgeschwindigkeit und/oder die erfasste Endgeschwindigkeit den jeweils eingelesenen Grenzwert für die Maximalgeschwindigkeit auf der zu berechnenden Trajektorie zumindest stellenweise überschreiten darf und dabei aber an mindestens einer Stelle der zu berechnenden Trajektorie eingehalten wird. Der eingelesene Grenzwert für die Geschwindigkeit wird in der berechneten Trajektorie garantiert eingehalten, wenn Start- und Endgeschwindigkeit unter diesem Grenzwert liegen. Das Berechnungsverfahren ist so ausgelegt, dass die berechnete Mittengeschwindigkeit immer den erfassten Grenzwert für die maximale Geschwindigkeit einhält, also immer unterhalb liegt. Wenn z.B. die erfasste Endgeschwindigkeit über dem erfassten Grenzwert für die maximale Geschwindigkeit liegt, wird diese durch eine Beschleunigung in späteren Segmenten erreicht. Der Algorithmus für das hier vorgeschlagene Berechnungsverfahren hat die Eigenschaft, dass die Grenzgeschwindigkeit zumindest zu einem Zeitpunkt in der Trajektorie eingehalten wird. Dies wird an folgendem Beispiel erläutert. Beträgt die Startgeschwindigkeit 200 mm/s und der Grenzwert für die maximale Geschwindigkeit aber nur 100 mm/s, dann prüft das Berechnungsverfahren eine Triviallösung bei dem Grenzwert (also bei 100 mm/s) und nicht bei 200 mm/s. Dennoch wird die höhere Startgeschwindigkeit von 200 mm/s bei der Berechnung der Trajektorie berücksichtigt.
  • Gemäß einer anderen, vorteilhaften Ausführungsform der Erfindung optimiert das Optimierungsverfahren nach der maximalen Geschwindigkeit, indem die obere und/oder die untere Suchgrenze iterativ verschoben wird/werden, um das Suchintervall einzuschränken. Das Optimierungsverfahren ist vorzugsweise als Optimierungsalgorithmus implementiert, um algorithmisch eine numerische Näherung für einen Maximalwert für die Mittengeschwindigkeit in einem Suchintervall iterativ zu berechnen. Es können unterschiedliche Optimierungsverfahren zum Einsatz kommen, die allerdings eine beschränkte Laufzeit haben müssen, um die O(1)-Komplexität des Verfahrens zu garantieren. Dadurch kann die Optimalität der Trajektoriezeitberechnung nicht garantiert werden. In einem bevorzugten Ausführungsbeispiel wird ein Verfahren nach dem Goldenen-Schnitt angewendet. Dabei handelt es sich um ein Verfahren der mathematischen nichtlinearen Optimierung. Insbesondere berechnet es algorithmisch eine numerische Näherung für eine Extremstelle (Minimum oder Maximum) einer reellen Funktion einer Variablen in einem Suchintervall. Es basiert auf der analytischen Anwendung der ursprünglich geometrisch definierten stetigen Teilung. Im Gegensatz zum Intervallhalbierungsverfahren wird dabei das Suchintervall nicht bei jedem Schritt halbiert, sondern nach dem Prinzip des Goldenen Schnittes verkleinert. Der verwendete Parameter τ hat dabei nicht, wie bei dem Intervallhalbierungsverfahren, den Wert ½. Wird angenommen, dass jeder Punkt in jedem Intervall mit gleicher Wahrscheinlichkeit Extrempunkt sein kann, führt dies bei Unbestimmtheitsintervallen dazu, dass das Verfahren des Goldenen Schnittes z. B. um 14 % effektiver ist als die Intervallhalbierungsmethode, die jedoch alternativ für die Erfindung angewendet werden kann.
  • Gemäß einer anderen, vorteilhaften Ausführungsform der Erfindung werden aus der berechneten Trajektorie Steuerdaten für das Antriebssystem berechnet, mit denen das Antriebssystem unmittelbar angesteuert wird. Alternativ oder kumulativ kann die berechnete Trajektorie - z.B. in Form einer grafischen Darstellung - auf der Benutzeroberfläche ausgegeben werden.
  • Gemäß einer anderen, vorteilhaften Ausführungsform der Erfindung ist das Berechnungsverfahren und das Verfahren insgesamt echtzeitfähig. Für den Begriff der Echtzeitfähigkeit wird auf die deutsche Norm DIN 44 300 verwiesen. Die Datenergebnisse (hier: berechnete Trajektorie) ist innerhalb einer vorgegebenen Zeitspanne verfügbar.
  • Gemäß einer anderen, vorteilhaften Ausführungsform der Erfindung erfolgt das Erfassen des Startzustandes und/oder des Endzustandes und das Einlesen der Grenzwerte durch Zugriff auf einen elektronischen Baustein einer speicherprogrammierbaren Steuerung. Damit werden die Werte nicht von Hand von einem Anwender über die Benutzeroberfläche manuell eingegeben, sondern automatisch durch Zugriff auf einen Datenspeicher erfasst. Die einzulesenden und zu erfassenden Werte können auch in einer Datenbank des Antriebssystems abgelegt sein und von dort eingelesen werden.
  • Gemäß einer anderen, vorteilhaften Ausführungsform der Erfindung ist das Verfahren auf einem Microcontroller implementiert. Das Verfahren kann somit direkt in einem umfassenden technischen System, z.B. in einem Motor Controller ablaufen und als „embedded system“ bereitgestellt werden. Es ist auch möglich, dass das Verfahren indirekt für das technische System bereitgestellt wird und z.B. in einem Zusatzmodul für einen Motion Controller implementiert ist.
  • Gemäß einer anderen, vorteilhaften Ausführungsform der Erfindung wird vor Ausführung des Berechnungsverfahrens geprüft, ob eine Restbeschleunigung in dem Startzustand existiert, und bejahendenfalls, werden folgende Verfahrensschritte ausgeführt:
    • - Reduktion der erfassten Restbeschleunigung auf Null, z.B. linear unter Einhaltung des Grenzwertes für den Ruck und daraufhin:
    • - Erfassen der aktualisierten Position und der aktualisierten Geschwindigkeit als Startzustand.
  • Eine Restbeschleunigung kann z.B. dann auftreten, wenn eine vorherige Trajektorie und damit eine aktuell ausgeführte Bewegung frühzeitig unterbrochen wurde.
  • Gemäß einem weiteren Aspekt betrifft die Erfindung ein Computerprogramm für ein Antriebssystem, das in einen internen Speicher einer analogen oder digitalen Recheneinheit geladen werden kann und Softwareroutinen umfasst, mit denen die Schritte des oben beschriebenen Verfahrens ausgeführt werden, wenn die Softwareroutinen auf der Recheneinheit ausgeführt werden.
  • Gemäß einem weiteren Aspekt betrifft die Erfindung einen Trajektoriegenerator zum automatischen Berechnen einer Trajektorie für ein Antriebssystem von einem Startzustand in einen Endzustand auf einer vorgegebenen Bahn, umfassend:
    • - Eine Eingangsschnittstelle, die zum Erfassen des Startzustandes und des Endzustandes und zum Einlesen von Grenzwerten für eine maximale Beschleunigung, einen maximalen Ruck und eine maximale Geschwindigkeit bestimmt ist;
    • - Ein Rechenwerk, der zur Ausführung eines Berechnungsverfahrens zur Berechnung einer Trajektorie von dem erfassten Startzustand in den erfassten Endzustand bestimmt ist, derart, dass eine Trajektoriezeit minimiert ist wobei das Rechenwerk weiterhin umfasst:
    • - Eine Prüfeinheit, die dazu bestimmt ist, zu prüfen, ob der eingelesene Grenzwert für die maximale Geschwindigkeit in positiver oder negativer Richtung eine zulässige Lösung hat, um von dem Startzustand in den Endzustand zu gelangen und bejahendenfalls diesen eingelesenen Grenzwert als Mittengeschwindigkeit bestimmt;
    • - Einen Optimierer, der zum Ausführen eines ersten Rechenverfahrens zum Berechnen einer unteren Grenze eines Suchintervalls und der zum Ausführen eines zweiten Rechenverfahrens zum Berechnen einer oberen Grenze des Suchintervalls bestimmt ist und wobei der Optimierer weiterhin dazu bestimmt ist, ein iteratives Optimierungsverfahren zur Bestimmung der Mittengeschwindigkeit in dem Suchintervall auszuführen.
  • In einer bevorzugten Ausführungsform der Erfindung umfasst der Trajektoriegenerator eine Ausgangsschnittstelle, auf der die berechnete Mittengeschwindigkeit und die berechnete Trajektorie bereitgestellt werden. Es ist auch möglich, den Trajektoriegenerator als Zusatzmodul für einen Motion Controller bereitzustellen.
  • Gemäß einem weiteren Aspekt betrifft die Erfindung eine Steuervorrichtung zur Ansteuerung von Endeffektoren eines Antriebssystems von einem Startzustand in einen Endzustand auf einer vorgegebenen Bahn auf Basis einer zu berechnenden Trajektorie, die mit einem Trajektoriegenerator nach einem der vorangehenden Vorrichtungsansprüche berechnet worden ist.
  • Eine weitere Aufgabenlösung besteht in einem Computerprogrammprodukt für ein Antriebsgerät oder -system, das in einen Speicher eines Computers oder eines elektronischen oder mechatronischen Gerätes geladen oder ladbar ist mit einem Computerprogramm zur Durchführung des oben näher beschriebenen Verfahrens, wenn das Computerprogramm auf dem Computer oder dem Gerät ausgeführt wird. Das Computerprogrammprodukt kann neben dem Computerprogramm weitere Bauteile umfassen.
  • Eine weitere Aufgabenlösung sieht ein Computerprogramm vor zur Durchführung aller Verfahrensschritte des oben näher beschriebenen Verfahrens, wenn das Computerprogramm auf einem Computer, einem elektronischen oder mechatronischen Gerät ausgeführt wird. Dabei ist es auch möglich, dass das Computerprogramm auf einem für den Computer oder das elektronische oder mechatronische Gerät lesbaren Medium gespeichert ist. Das Computerprogramm kann in einen internen Speicher einer digitalen Steuerungseinheit geladen werden.
  • In der folgenden detaillierten Figurenbeschreibung werden nicht einschränkend zu verstehende Ausführungsbeispiele mit deren Merkmalen und weiteren Vorteilen anhand der Zeichnung besprochen.
  • Figurenliste
    • 1 zeigt einen Trajektoriegenerator gemäß einer bevorzugten Ausführungsform der Erfindung in einer Prinzipdarstellung.
    • 2 ist eine schematische Darstellung eines Antriebsgerätes, beispielhaft einer Kolben-Zylinder Anordnung, die einen Microcontroller mit einem Trajektoriegenerator zur Bewegungssteuerung umfasst.
    • 3 ist ein Ablaufdiagramm gemäß einer bevorzugten Ausführungsform des Verfahrens.
    • 4 zeigt eine grafische Darstellung einer berechneten Trajektorie mit mehreren Segmenten in einer beispielhaften Form.
  • Detaillierte Beschreibung der Figuren
  • Im Folgenden wird die Erfindung anhand von Ausführungsbeispielen im Zusammenhang mit den Figuren näher beschrieben.
  • Zur Verwendung von mathematischen Zeichen. Im Folgenden wird das Zeichen Ivmaxl verwendet. Dieses mathematische Symbol soll den Betrag von vmax repräsentieren und ist somit gleichbedeutend mit Betrag (vmax).
  • Die Erfindung verbessert die Bewegungssteuerung eines linearen oder rotativen Antriebssystems. Das Antriebssystem kann pneumatisch, servopneumatisch oder elektromechanisch angetrieben werden. Die Bewegungssteuerung soll hinsichtlich der Trajektoriezeit und hinsichtlich Ausfall und Verschleiß verbessert werden und dabei hocheffizient sein. Durch eine Vereinfachung des Berechnungsverfahrens zur Berechnung der Trajektorie kann das Verfahren sehr effizient ausgebildet werden. Das Berechnungsverfahren dient zur Berechnung der Trajektorie und implementiert zur Vereinfachung der Berechnung Grundannahmen, die eine wesentlich schnellere Berechnung ermöglichen, bei annähernd konstanter Genauigkeit bzw. Qualität.
  • Die Erfindung betrifft insbesondere ein Verfahren zur automatischen Trajektorieberechnung und kann die Ausgabe von Steuerdaten umfassen, die zur Ansteuerung des Antriebssystems dienen. Das Verfahren ist vorzugsweise in einem Algorithmus implementiert, der auf einen Microcontroller geladen ist. Der Algorithmus versucht, eine Trajektorie mit möglichst kurzer Dauer zu finden. Dabei wird davon ausgegangen, dass eine hohe Mittengeschwindigkeit mit einer kurzer Dauer der Trajektorie einhergeht. Die Dauer wird direkt aus den gegebenen Eingangsgrößen und der berechneten Mittengeschwindigkeit berechnet.
  • Die Erfindung betrifft insbesondere eine automatische Trajektorieberechnung mittels eines Trajektoriegenerators TG, der in Fig. 1 näher gezeigt ist. Der Trajektoriegenerator TG kann auf einem Microcontroller µC implementiert sein. Der Trajektoriegenerator TG umfasst eine Eingangsschnittstelle II, die zum Erfassen eines Startzustandes und eines Endzustandes und zum Einlesen von Grenzwerten für eine maximale Geschwindigkeit, eine maximale Beschleunigung und einen maximalen Ruck dient. Die erfassten Werte für die trajektorie-relevanten Parameter können auch von einer speicherprogrammierbaren Steuerung SPS oder einem anderen externen Datenspeicher eingelesen werden. Der Startzustand umfasst eine Startgeschwindigkeit, eine Startposition. Eine Startbeschleunigung kann ebenfalls erfasst oder aus den vorstehenden Parametern berechnet werden. Der Endzustand umfasst eine Endgeschwindigkeit, eine Endposition.
  • Der Trajektoriegenerator TG umfasst ein Rechenwerk R zur Ausführung des Berechnungsverfahrens, Speicherbausteine (SDRAM, ROM, RAM etc.) und einen nicht-flüchtigen Speicher (EEPROM oder Flash-EEPROM) zur Speicherung des Programms. In den Figuren wird für den nicht-flüchtigen Speicher das Bezugszeichen EEPROM verwendet; der nicht-flüchtige Speicher kann aber auch ein Flash-Speicher sein. Das Rechenwerk R kann einen Optimierer O und eine Prüfeinheit Pr umfassen. Zusätzlich können -je nach Konfiguration - weitere Bausteine integriert sein, wie z.B. ein ADC-Baustein als Analog-Digital-Wandler, um die Eingangs- und/oder Ausgangssignale zu konvertieren.
  • Das Rechenwerk lädt das im nicht-flüchtigen Speicher abgelegte Programm zur Ausführung des Verfahrens zur Trajektorieberechnung und führt es aus. Als Ergebnis wird aus den Eingangsdaten eine Trajektorie für den Linearantrieb errechnet, die hinsichtlich der Trajektoriezeit optimiert ist. Die erzeugte Trajektorie kann über eine Ausgangsschnittstelle OI auf einem angeschlossenen Display D ausgegeben werden. Aus der berechneten Trajektorie können Steuerdaten sd generiert werden, die an das Antriebssystem 12 und an die Endeffektoren 14 zur Bewegungssteuerung weitergeleitet werden.
  • Das Programm zur Ausführung des Verfahrens kann lokal in dem Trajektoriegenerator TG gespeichert sein. Alternativ kann es auch zentral in einer Datenbank DB oder in einer übergeordneten Steuereinheit abgelegt sein und in den Speicher EEPROM geladen werden.
  • 2 zeigt ein Antriebssystem 12 am Beispiel einer Kolben Zylinder Anordnung in einer alternativen Ausführung. Hier wird das Antriebssystem 12 nicht über die Ausgangsschnittstelle OI von dem externen Trajektoriegenerator TG angesteuert, sondern das Antriebssystem 12 verfügt selbst über einen Microcontroller, auf den das Verfahren zur Berechnung der Trajektorie geladen und ausgeführt werden kann.
  • Als Microcontroller µC wird hier ein Halbleiterchip bezeichnet, der ein Rechenwerk bzw. einen Prozessor und zugleich auch Peripheriefunktionen enthält. Üblicherweise umfasst er auch den Arbeits- und Programmspeicher teilweise oder komplett auf demselben Chip. Auf dem Microcontroller können somit auch komplexe Peripheriefunktionen, wie z. B. CAN- (Controller Area Network), SPI- (Serial Peripheral Interface), serielle oder Ethernet-Schnittstellen, LCD-Controller und - Treiber sowie Analog-Digital-Umsetzer bereitgestellt werden. Das Rechenwerk des Microcontrollers R oder ein Speicher EEPROM kann mit einem externen Datenspeicher oder einer Datenbank DB in Datenaustausch stehen, z.B. um das Programm zur Trajektorienberechnung und Steuerung des Antriebssystems zu laden. Es kann eine 4-, 8-, 16- oder 32- Bit Architektur zum Einsatz kommen. Bei einfachen Anwendungen ist ein 4-Bit Microcontroller bevorzugt. Für eine 4-Bit-Architektur wird bevorzugt Assembler als Programmiersprache für das computerimplementierte Verfahren verwendet. Damit wird es möglich, die knappen Ressourcen dieser kleinsten Microcontroller effektiv zu nutzen. Mit dem hier beschriebenen Verfahren kann vorteilhafterweise eine hohe Effizienz und eine hohe Code-Dichte erreicht werden.
  • Im Folgenden wird in Zusammenhang mit 3 ein Ablauf gemäß einer bevorzugten Ausführungsform der Erfindung näher erläutert.
  • Das Verfahren gliedert sich in zwei Zeitphasen.
    1. 1. Eine Konfigurationsphase und
    2. 2. Eine Ausführungsphase.
  • Die Konfigurationsphase ist vorgeschaltet und dient zur Auslegung des Optimierungsverfahrens. Hier kann ein Anwender bestimmen, wie das Verhältnis zwischen Rechenzeit und Genauigkeit der Optimierung bestimmt werden soll. In dieser Phase können auch weitere Bedingungen für die Bewegungssteuerung definiert werden, die von dem Berechnungsverfahren berücksichtigt werden.
  • Die Ausführungsphase gliedert sich wiederum in zwei Abschnitte: erstens die Ausführung der Berechnung der Trajektorie und der Steuerdaten sd (Bewegungsplanung) und zweitens in eine Umsetzungsphase, in der das zu bewegende Objekt (Aktor, Ventil etc.) gemäß der berechneten Trajektorie und der berechneten Steuerdaten sd bewegt wird. In 3 ist die Umsetzungsphase nicht explizit dargestellt. Sie schließt sich an den Schritt d3 (Berechnung der Steuerdaten sd) an.
  • Nach dem Start des Verfahrens und nach Abschluss der Konfigurationsphase wird in Schritt a der Startzustand mit Startposition und Startgeschwindigkeit und Startbeschleunigung erfasst.
  • In Schritt b wird der gewünschte Endzustand mit Endposition und Endgeschwindigkeit erfasst.
  • Dann werden in Schritt c die oberen Grenzwerte für eine (maximale) Geschwindigkeit, eine (maximale) Beschleunigung und für einen (maximalen) Ruck eingelesen.
  • Für die Schritte a bis c kann auf einen externen Speicher oder einen SPS-Baustein zugegriffen werden. Die Schritte a bis c können auch parallel oder in einer anderen Reihenfolge ausgeführt werden.
  • In Schritt d wird das Berechnungsverfahren zur Berechnung einer Mittengeschwindigkeit und (darauf basierend) zur Berechnung der Trajektorie ausgeführt. Das Berechnungsverfahren ist so konzipiert, dass die Verfahrdauer bzw. die Zeit zum Abfahren (Ausführen) der Trajektorie so kurz wie möglich ist.
  • Das Berechnungsverfahren prüft in einem ersten Schritt d1, ob der eingelesene Grenzwert für die maximale Geschwindigkeit eine zulässige Lösung bietet, um vom erfassten Anfangszustand in den erfassten Endzustand zu gelangen. Dies hat den technischen Vorteil, dass eine sehr schnelle Berechnung der Trajektorie aus der Mittengeschwindigkeit möglich wird, ohne komplexe Berechnungen und numerische Optimierungen ausführen zu müssen. Die Ausbildung dieses Verfahrensschrittes liegt die Beobachtung zugrunde, dass es in den meisten Fällen möglich ist, eine zulässige Lösung für die maximale Grenzgeschwindigkeit zu finden. Nur, wenn dies nicht möglich ist, wird ein numerisches Optimierungsverfahren zur Suche nach der Mittengeschwindigkeit angewendet, bei dem zunächst die untere Suchgrenze und dann die obere Suchgrenze in unterschiedlichen Rechenverfahren errechnet wird.
  • In einem, in 3 nicht dargestellten vorgeschalteten Schritt, wird die Startbeschleunigung abgebaut.
  • In Schritt r1 wird ein erstes Rechenverfahren ausgeführt, um die untere Suchintervallgrenze zu errechnen.
  • Ziel des ersten Rechenverfahrens ist es, auf jeden Fall eine im mathematischen Sinne beliebig schlechte Lösung (also z.B. eine Lösung mit langer, nicht zeitoptimierter Verfahrdauer) als untere Suchgrenze zu bestimmen (unabhängig davon, ob Start- und Endgeschwindigkeit größer als |vmax| sind, ist dieser Ablauf gleich).
  • Die Start- und Endgeschwindigkeiten werden als mögliche Mittengeschwindigkeiten herangezogen.
  • Falls eine der beiden über dem Betrag des eingelesenen Grenzwertes für die Geschwindigkeit |vmax| liegt, wird stattdessen jeweils |vmax| als mögliche Mittengeschwindigkeit benutzt.
  • Wenn es für Start- und Endgeschwindigkeit keine Lösung gibt, wird eine Lösung im Bereich von 0 (z.B. +1e-9 bzw. -e-9) gesucht und als untere Suchgrenze verwendet.
  • Wenn die Startgeschwindigkeit eine Lösung gibt und die Endgeschwindigkeit keine Lösung bietet, ist die Startgeschwindigkeit die untere Suchgrenze.
  • Wenn die Startgeschwindigkeit keine Lösung gibt und die Endgeschwindigkeit jedoch eine Lösung gibt, ist die Endgeschwindigkeit die untere Suchgrenze.
  • Wenn beide Geschwindigkeiten eine Lösung ergeben, wird die Lösung mit der kleineren Verfahrdauer als untere Suchgrenze gesetzt.
  • Folgend findet sich eine Pseudocode Darstellung des ersten Rechenverfahrens zur Bestimmung der unteren Grenze.
     t_left := -1
     v_left := -1
     if t_start <> -1 then
        t_left := t_start
        v_left := v_s
     endif
     if t_end <> -1 and (t_end < t_left or t_left = -1) then
       t_left := t_end
       v_left := v_e
     endif
     if t_left = -1 then
        # Neither start or end velocity yielded a result
        t_left := t17(0+, ...) # Do we have a solution in positive direction (small
     positive epsilon)
        v_left := 0+
        if t_left = -1 then
         t_left := t17(0-, ...) # We must have a solution in negative direction (small
     negative epsilon)
         v_left := 0-
        endif
     endif
  • In Schritt r2 wird ein zweites Rechenverfahren ausgeführt, um die obere Suchintervallgrenze zu errechnen.
  • Dafür prüft das zweite Rechenverfahren, ob vmax eine Lösung bietet. Falls dies der Fall ist, wird diese als beste Lösung akzeptiert.
  • Unter Umständen (Begrenzen einer Start- oder Endgeschwindigkeit auf vmax) kann diese Lösung bereits schon im ersten Rechenverfahren als untere Suchgrenze benutzt worden sein. In der Zeitphase des ersten Rechenverfahrens ist es jedoch noch nicht möglich, zu berechnen, ob dies keine Lösung ist, die nicht weiter optimiert werden kann.
  • Nachfolgend wird eine Pseudocode Darstellung des zweiten Rechenverfahrens zur Bestimmung der oberen Grenze gegeben.
  •      # Limit the search to |v_max|
         if v_left < 0 then
            v_right := -v_max
         else
            v_right := v_max
         endif
  • Nach Bestimmung der Grenzen des Suchintervalls wird in Schritt d2 ein iteratives Optimierungsverfahren ausgeführt, um die Mittengeschwindigkeit numerisch zu ermitteln. Ziel des Optimierungsverfahrens ist es, die Verfahrdauer (Zeit zum Abfahren der Trajektorie) zu minimieren, falls in den vorhergehenden Verfahrensschritten keine zeitoptimale Lösung gefunden worden ist.
  • Bei dem Optimierungsverfahren in Schritt d2 wird versucht, ausgehend von vmax, schrittweise kleiner werdend, iterativ eine bessere Lösung als die untere Suchgrenze zu finden. Das kann aber auch kein Ergebnis liefern, dann bleibt nur die schlechte Lösung - und damit die Geschwindigkeit, die als untere Suchgrenze gesetzt wurde - übrig.
  • Das Optimierungsverfahren hat eine konstante Rechenzeit O (1). Damit ist die Anzahl der Optimierungsschritte nicht von der Anzahl der Eingangswerte abhängig. Vorteilhafterweise ist das Verfahren damit echtzeitfähig.
  • Das Optimierungsverfahren sucht zunächst nach einer optimalen Triviallösung an der oberen Suchgrenze. Nur falls dies nicht möglich ist, wird eine nicht-optimale Trajektorie durch Ausführen des Optimierungsverfahrens mit begrenzter Dauer ausgeführt. Eine garantierte Lösung wird schlechtestenfalls, also falls keine bessere gefunden werden kann, an der unteren Suchgrenze gefunden. Ein wichtiger technischer Vorteil des vorgeschlagenen Verfahrens ist in der geringen Rechenzeit, der hohen Robustheit hinsichtlich der Eingangsgrößen und physikalischen Bedingungen zu sehen. Zum Beispiel führt das Verfahren auch dann sicher zu einem Ergebnis, wenn die Startgeschwindigkeit und/oder die Endgeschwindigkeit über dem Grenzwert für die Geschwindigkeit liegen.
  • Die Mittengeschwindigkeit wird als Ergebnis des Verfahrens bereitgestellt. Aus der Mittengeschwindigkeit und den erfassten und eingelesenen Daten können dann weitere Werte für die Trajektorie berechnet werden, wie die Anzahl der Segmente und deren Dauer (und damit auch die Dauer der gesamten Trajektorie) sowie die zeitlichen Verläufe zu Ruck, Beschleunigung, Geschwindigkeit und Position in jedem der Segmente. Diese weiteren Ergebnisse können auch an das Display D zur Ausgabe, insbesondere z.B. als Polygondarstellung oder als Darstellung der zu berechnenden Polynomfunktionen, weitergeleitet werden.
  • Vorzugsweise werden das Ergebnis und die weiteren Ergebnisse verwendet, um Steuerdaten sd zu ermitteln, die dann zur Ansteuerung des Antriebssystems 12 verwendet werden. Dies wird in Schritt d3 als einem nachgeschalteten Verfahrensschritt ausgeführt. Bei den Steuerdaten sd kann es sich um Steuersignale handeln, die auf das jeweilige Antriebssystem bezogen sind. So benötigt ein rotativer Antrieb beispielsweise andere Steuersignale in Form von winkel-bezogenen Instruktionen als ein linearer Antrieb. Dies wird bei der Erzeugung der Steuersignale sd berücksichtigt und kann in der Konfigurationsphase mit den Konfigurationseingaben in Schritt k entsprechend konfiguriert werden.
  • Nach dem Berechnen der Trajektorie d2 und der Steuerdaten sd in Schritt d3 wird das Verfahren beendet.
  • Im Folgenden wird eine Pseudocode Darstellung des Algorithmus gegeben.
  •      # Returns either a positive time for the given cruise velocity or -1 if no solution
         exists
    
    
         func t17(v, s_end, v_start, v_end, v_max, a_max, d_max, j_max) -> time or -1
    
         func segs(v, s_start, s_end, v_start, v_end, v_max, a_max, d_max, j_max) ->
         up to 7 segments
    
    
         # Clamp v_start/end to +/- v_max
         if v_start > v_max then
              v_s := v_max
         elif v_start < -v_max then
              v_s := -v_max
         else
              v_s := v_start
         endif
    
          if v_end > v_max then
              v_e := v_max
         elif v_end < -v_max then
              v_e := -v_max
         else
              v_e := v_end
         endif
          t_start := t17(v_s, ...)
         t_end := t17(v_e, ...)
         t_right := t17(v_right, ...)
         if t_right >= 0 then
            # We found the optimal solution
            v_cruise := v_right
         else
            # Do a time/complexity limited optimization search (e.g. golden ratio search)
            # between v_left and v_right for the lowest t17. Any value with a solution
            # between v_left and v_right is acceptable! We can guarantee a solution,
         because
            # v_left is a valid solution.
            v_cruise := optimize(v_left, v_right, t17)
         endif
         # <<< ORC
    
         trajectory := segs(v_cruise, s_start, s_end, v_start, v_end, v_max, a_max,
         d_max, j_max)
  • 4 zeigt eine berechnete Trajektorie mit mehreren (acht) Segmenten in einem Ausführungsbeispiel für bestimmte Werte mit einer Polygondarstellung für Position, Geschwindigkeit, Beschleunigung und Ruck.
  • Die berechnete Trajektorie basiert auf folgenden Werten:
    s_ist 75
    v_ist 20
    a_ist 3
    s_ziel 500
    v_ziel 35
    v_max 50
    a_max 10
    d_max 10
    j_max 5
    Segment Duration k3 k2 k1 k0
    0 0,600 -0,833 1,500 20,000 75,000
    1 2,000 0,833 0,000 20,900 87,360
    2 0,910 0,000 5,000 30,900 135,827
    3 2,000 -0,833 5,000 40,000 168,086
    4 1,827 0,000 0,000 50,000 261,420
    5 1,732 -0,833 0,000 50,000 352,776
    6 1,732 0,833 -4,330 42,500 435,048
  • In einer bevorzugten Ausführungsform der Erfindung plant der Algorithmus die Trajektorie mit 7 Segmenten, aber ausschließlich bei einer Startbeschleunigung, die den Wert „0“ hat oder darauf reduziert wurde. Falls beim Start noch eine Restbeschleunigung vorhanden ist und es diese abzubauen gilt, so enthält der Algorithmus eine Ergänzung, bei der bis zu acht Segmente entstehen.
  • In 4 ist zwischen dem 5. und 7. Segment ein Segment 6 in Klammern eingefügt, das repräsentieren soll, dass ein Segment (in diesem Fall Segment 6) die Länge „0“ haben kann. Entsprechend ist das jeweils nächste (letzte) Segment mit „7“ bezeichnet. Ansonsten wäre in einer anderen Darstellung in 4 das letzte Segment nicht mit „7“, sondern mit der Zahl „6“ bezeichnet und als siebtes Segment dargestellt.
  • Zusammenfassend zielt die Erfindung darauf ab, dass auf Basis von erfassten Eingangssignalen (Startzustand, Endzustand, Grenzwerte) algorithmisch und damit automatisch eine zeitoptimierte und ruckbegrenzte Trajektorie berechnet wird, wobei das Berechnungsverfahren für die Trajektorie bzw. der Algorithmus eine sehr geringe Laufzeit hat (damit echtzeitfähig ist) und einfach ist. Das Berechnungsverfahren benötigt nur wenige Codezeilen. Durch den einfachen Aufbau weist das Verfahren eine sehr geringe Fehleranfälligkeit auf und ist einfacher zu warten.
  • Das Verfahren kann automatisch Steuerdaten sd errechnen, die dann zur Ansteuerung von Aktoren oder Endeffektoren 14 im Antriebssystem 12 eingelesen und zur Bewegungsausführung nach der berechneten Trajektorie umgesetzt werden.
  • Abschließend sei darauf hingewiesen, dass die Beschreibung der Erfindung und die Ausführungsbeispiele grundsätzlich nicht einschränkend in Hinblick auf eine bestimmte physikalische Realisierung der Erfindung zu verstehen sind. Alle in Verbindung mit einzelnen Ausführungsformen der Erfindung erläuterten und gezeigten Merkmale können in unterschiedlicher Kombination in dem erfindungsgemäßen Gegenstand vorgesehen sein, um gleichzeitig deren vorteilhafte Wirkungen zu realisieren. Es liegt somit z.B. ebenso im Rahmen der Erfindung neben einer Kolben-Zylinder Anordnung andere Antriebsmittel 12 in ihrer Bewegung zu steuern und optimiert zu bewegen. Dabei kann es sich z.B. um ein pneumatisch oder servopneumatisch betriebenes Antriebssystem oder um ein elektromechanisches System, wie z.B. ein Robotersystem handeln. Für einen Fachmann ist es insbesondere offensichtlich, dass das Verfahren der Erfindung nicht nur auf Microcontrollern µC einer bestimmten Architektur implementiert werden kann, sondern auch für anderen Prozessoren eines computer-gestützten Bauteils, das in Datenaustausch steht mit dem jeweiligen Antriebssystem, das es hinsichtlich der Bewegungsausführung zu steuern gilt.
  • Des Weiteren können die Bauteile des Trajektoriegenerators TG zur Berechnung der Trajektorie und zur Bewegungssteuerung auf mehrere physikalische Produkte verteilt realisiert werden. So kann z.B. das Verfahren zur Trajektorieberechnung und zur Berechnung der Steuerdaten sd vollständig auf dem Antriebssystem 12 implementiert sein. Ebenso ist es möglich, dass das Verfahren auf einem externen, separaten Modul ausgeführt wird und nur die Steuerdaten sd an das Antriebssystem 12 zur Steuerung weitergibt. Es ist auch möglich, dass einzelne Bauteile des Trajektoriegenerators TG auf unterschiedlichen Entitäten implementiert sind. So kann insbesondere der Optimierer O auf einer anderen Entität ausgebildet sein als die Prüfeinheit Pr, wobei der Datenaustausch zwischen den Entitäten gewährleistet ist.
  • Der Schutzbereich der vorliegenden Erfindung ist durch die Ansprüche gegeben und wird durch die in der Beschreibung erläuterten oder den Figuren gezeigten Merkmale nicht beschränkt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • EP 2307935 B1 [0004]

    Claims (19)

    1. Computergestütztes Verfahren zur Trajektorienberechnung zur Ansteuerung von Endeffektoren (14) eines Antriebssystems (12) von einem Startzustand in einen Endzustand auf einer vorgegebenen Bahn, mit folgenden Verfahrensschritten: - Erfassen (a,b) des Startzustandes und des Endzustandes; - Einlesen (c) von Grenzwerten für eine Beschleunigung, einen Ruck und eine Geschwindigkeit; - Anwenden eines Berechnungsverfahrens (d) zur Berechnung einer Trajektorie von dem erfassten Startzustand in den erfassten Endzustand derart, dass eine Trajektoriezeit minimiert ist gekennzeichnet dadurch, dass das Berechnungsverfahren folgende Schritte ausführt: - Prüfen (d1), ob der eingelesene Grenzwert für die Geschwindigkeit in positiver oder negativer Richtung eine zulässige Lösung hat, um von dem Startzustand in den Endzustand zu gelangen und bejahendenfalls: Bestimmen dieses eingelesenen Grenzwertes als Mittengeschwindigkeit; andernfalls: - Ausführen eines ersten Rechenverfahrens (r1) zum Berechnen einer unteren Grenze eines Suchintervalls - Ausführen eines zweiten Rechenverfahrens (r2) zum Berechnen einer oberen Grenze des Suchintervalls - Anwenden eines iterativen Optimierungsverfahrens (d2) zur Bestimmung der Mittengeschwindigkeit in dem Suchintervall.
    2. Verfahren nach Anspruch 1, bei dem die zu berechnende Trajektorie bis zu sieben Segmente umfasst und wobei aus der Trajektorie Steuerdaten (sd) zur Ansteuerung der Endeffektoren (14) errechnet werden.
    3. Verfahren nach einem der vorangehenden Ansprüche, bei dem aus der bestimmten Mittengeschwindigkeit als Ergebnis und den erfassten und eingelesenen Eingangsgrößen folgende weitere Ergebnisse berechnet werden: - eine Anzahl der Segmente, - eine Dauer jedes der Segmente und - ein Ruckverlauf in jedem der Segmente - ein Beschleunigungsverlauf in jedem der Segmente - ein Geschwindigkeitsverlauf in jedem der Segmente - ein Positionsverlauf in jedem der Segmente.
    4. Verfahren nach einem der vorangehenden Ansprüche, bei dem ein SOLL-Rechenzeitwert des Berechnungsverfahrens und/oder ein SOLL-Genauigkeitswert der zu berechnenden Trajektorie konfigurierbar ist (k).
    5. Verfahren nach einem der vorangehenden Ansprüche, bei dem das erste Rechenverfahren zum Berechnen der unteren Grenze des Suchintervalls folgende Schritte umfasst: - Bestimmen von „0“ als untere Grenze, falls für eine Startgeschwindigkeit des erfassten Startzustandes und für eine Endgeschwindigkeit des erfassten Endzustandes keine Lösung gefunden werden kann; - Bestimmen der Startgeschwindigkeit als untere Grenze, falls für die Startgeschwindigkeit eine Lösung und falls für die Endgeschwindigkeit keine Lösung gefunden werden kann; - Bestimmen der Endgeschwindigkeit als untere Grenze, falls für die Startgeschwindigkeit keine Lösung und falls für die Endgeschwindigkeit eine Lösung gefunden werden kann; - Prüfen, ob sowohl für die Startgeschwindigkeit als auch für die Endgeschwindigkeit eine Lösung gefunden werden kann und bejahendenfalls: Berechnen, welche der beiden Geschwindigkeiten die geringere Trajektoriezeit hat und Bestimmen derjenigen Geschwindigkeit als Mittengeschwindigkeit, die die geringere Trajektoriezeit hat.
    6. Verfahren nach einem der vorangehenden Ansprüche, bei dem für alle Start- und Endzustände eine Mittengeschwindigkeit als Lösung ausgegeben wird.
    7. Verfahren nach einem der vorangehenden Ansprüche, bei dem die erfasste Startgeschwindigkeit und/oder die erfasste Endgeschwindigkeit den jeweils eingelesenen Grenzwert für die Geschwindigkeit auf der zu berechnenden Trajektorie zumindest stellenweise überschreiten darf und dabei aber an mindestens einer Stelle der zu berechnenden Trajektorie eingehalten wird.
    8. Verfahren nach einem der vorangehenden Ansprüche, bei dem der eingelesene Grenzwert für die Geschwindigkeit in der berechneten Trajektorie garantiert eingehalten werden, wenn die erfasste Startgeschwindigkeit und die erfasste Endgeschwindigkeit unter dem eingelesenen Grenzwert für die Geschwindigkeit liegen.
    9. Verfahren nach einem der vorangehenden Ansprüche, bei das Optimierungsverfahren nach der Geschwindigkeit optimiert, indem die obere und/oder die untere Suchgrenze iterativ verschoben wird, um das Suchintervall einzuschränken.
    10. Verfahren nach einem der vorangehenden Ansprüche, bei dem das Optimierungsverfahren auf einem Goldenen-Schnitt-Verfahren basiert.
    11. Verfahren nach einem der vorangehenden Ansprüche, bei dem aus der berechneten Trajektorie Steuerdaten (sd) für das Antriebssystem (12) berechnet werden (d3).
    12. Verfahren nach einem der vorangehenden Ansprüche, bei dem das Verfahren echtzeitfähig ist.
    13. Verfahren nach einem der vorangehenden Ansprüche, bei dem das Erfassen des Startzustandes und/oder des Endzustandes und das Einlesen der Grenzwerte durch Zugriff auf eine speicherprogrammierbare Steuerung (SPS) erfolgt.
    14. Verfahren nach einem der vorangehenden Ansprüche, bei dem das Verfahren auf einem Microcontroller (µC) implementiert ist.
    15. Verfahren nach einem der vorangehenden Ansprüche, bei dem vor Ausführung des Berechnungsverfahrens geprüft wird, ob eine Restbeschleunigung in dem Startzustand existiert, und bejahendenfalls, folgende Verfahrensschritte ausgeführt werden: - Reduktion der erfassten Restbeschleunigung auf Null und daraufhin: - Erfassen der aktualisierten Position und der aktualisierten Geschwindigkeit als Startzustand.
    16. Computerprogramm zur Bewegungssteuerung eines Antriebssystems (12), das in einen internen Speicher eines Microcontrollers (µC) geladen werden kann und Softwareroutinen umfasst, mit denen die Schritte des Verfahrens gemäß den vorstehenden Verfahrensansprüchen ausgeführt werden, wenn die Softwareroutinen auf dem Microcontroller (µC) ausgeführt werden.
    17. Trajektoriegenerator (TG) zum automatischen Berechnen einer Trajektorie für ein Antriebssystem (12) von einem Startzustand in einen Endzustand auf einer vorgegebenen Bahn, umfassend: - Eine Eingangsschnittstelle (II), die zum Erfassen des Startzustandes und des Endzustandes und zum Einlesen von Grenzwerten für eine Beschleunigung, einen Ruck und eine Geschwindigkeit bestimmt ist; - Einem Rechenwerk (R), das zur Ausführung eines Berechnungsverfahrens zur Berechnung einer Trajektorie von dem erfassten Startzustand in den erfassten Endzustand bestimmt ist, derart, dass eine Trajektoriezeit minimiert ist gekennzeichnet dadurch, dass das Rechenwerk (R) weiterhin umfasst: - Eine Prüfeinheit (Pr), die dazu bestimmt ist, zu prüfen, ob der eingelesene Grenzwert für die Geschwindigkeit in positiver oder negativer Richtung eine zulässige Lösung hat, um von dem Startzustand in den Endzustand zu gelangen und bejahendenfalls diesen eingelesenen Grenzwert als Mittengeschwindigkeit bestimmt; - Einen Optimierer (O), der zum Ausführen eines ersten Rechenverfahrens zum Berechnen einer unteren Grenze eines Suchintervalls und der zum Ausführen eines zweiten Rechenverfahrens zum Berechnen einer oberen Grenze des Suchintervalls bestimmt ist und wobei der Optimierer (O) weiterhin dazu bestimmt ist, ein iteratives Optimierungsverfahren zur Bestimmung der Mittengeschwindigkeit in dem Suchintervall auszuführen.
    18. Trajektoriegenerator (TG) nach dem vorangehenden Vorrichtungsanspruch, bei dem der Trajektoriegenerator (TG) eine Ausgangsschnittstelle (OI) umfasst, auf der die berechnete Mittengeschwindigkeit und die berechnete Trajektorie und gegebenenfalls Steuerdaten (sd) bereitgestellt werden.
    19. Antriebssystem (12) zur Ausführung einer Bewegung, das mit einem Verfahren nach einem der vorstehenden Verfahrensansprüche angesteuert wird.
    DE102017102749.1A 2017-02-13 2017-02-13 Automatische Trajektorienerzeugung zur Ansteuerung eines Antriebssystems Pending DE102017102749A1 (de)

    Priority Applications (2)

    Application Number Priority Date Filing Date Title
    DE102017102749.1A DE102017102749A1 (de) 2017-02-13 2017-02-13 Automatische Trajektorienerzeugung zur Ansteuerung eines Antriebssystems
    US15/892,759 US10981274B2 (en) 2017-02-13 2018-02-09 Automatic trajectory generation for controlling a drive system

    Applications Claiming Priority (1)

    Application Number Priority Date Filing Date Title
    DE102017102749.1A DE102017102749A1 (de) 2017-02-13 2017-02-13 Automatische Trajektorienerzeugung zur Ansteuerung eines Antriebssystems

    Publications (1)

    Publication Number Publication Date
    DE102017102749A1 true DE102017102749A1 (de) 2018-08-16

    Family

    ID=62982368

    Family Applications (1)

    Application Number Title Priority Date Filing Date
    DE102017102749.1A Pending DE102017102749A1 (de) 2017-02-13 2017-02-13 Automatische Trajektorienerzeugung zur Ansteuerung eines Antriebssystems

    Country Status (2)

    Country Link
    US (1) US10981274B2 (de)
    DE (1) DE102017102749A1 (de)

    Cited By (3)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    CN110703696A (zh) * 2019-10-14 2020-01-17 杭州电子科技大学 七段式跃度线性连续数控装置高速进给加减速方法
    DE102019204484A1 (de) * 2019-03-29 2020-10-01 Festo Se & Co. Kg Trajektorien-Planungseinheit, Ventilanordnung und Verfahren
    DE102021000814A1 (de) 2020-03-03 2021-09-09 Sew-Eurodrive Gmbh & Co Kg Verfahren zum Abbremsen eines Objekts und Maschine

    Families Citing this family (9)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    WO2019139815A1 (en) 2018-01-12 2019-07-18 Duke University Apparatus, method and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects
    TWI822729B (zh) 2018-02-06 2023-11-21 美商即時機器人股份有限公司 用於儲存一離散環境於一或多個處理器之一機器人之運動規劃及其改良操作之方法及設備
    EP3769174B1 (de) 2018-03-21 2022-07-06 Realtime Robotics, Inc. Bewegungsplanung eines roboters für verschiedene umgebungen und aufgaben und verbesserter betrieb davon
    CN111203870B (zh) * 2018-11-22 2021-12-17 深圳市优必选科技有限公司 舵机运动控制方法、装置及终端设备
    CN113905855B (zh) 2019-04-17 2023-08-25 实时机器人有限公司 运动规划图生成用户界面、***、方法和规则
    US11634126B2 (en) 2019-06-03 2023-04-25 Realtime Robotics, Inc. Apparatus, methods and articles to facilitate motion planning in environments having dynamic obstacles
    WO2021041223A1 (en) * 2019-08-23 2021-03-04 Realtime Robotics, Inc. Motion planning for robots to optimize velocity while maintaining limits on acceleration and jerk
    TW202146189A (zh) 2020-01-22 2021-12-16 美商即時機器人股份有限公司 於多機器人操作環境中之機器人之建置
    DE102023117895A1 (de) 2023-07-06 2024-04-18 Festo Se & Co. Kg Verfahren zum Steuern einer Robotervorrichtung

    Citations (3)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    DE102004059966B3 (de) 2004-12-13 2006-06-22 Siemens Ag Verfahren und Einrichtung zur Bewegungsführung eines bewegbaren Maschinenelements einer numerisch gesteurten Maschine
    DE102008029657A1 (de) 2008-06-24 2009-12-31 Technische Universität Carolo-Wilhelmina Zu Braunschweig Positionsgesteuerter Mechanismus und Verfahren zur Steuerung von in mehreren Bewegungsfreiheitsgraden beweglichen Mechanismen
    DE102014103370A1 (de) 2014-03-12 2015-09-17 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren und Vorrichtung zur zeitdiskreten Steuerung eines Manipulators

    Family Cites Families (3)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    EP2623271B1 (de) * 2012-02-03 2014-06-18 Siemens Aktiengesellschaft Verfahren zum Betrieb einer Bearbeitungsmaschine
    US9981381B1 (en) * 2016-06-08 2018-05-29 X Development Llc Real time generation of phase synchronized trajectories
    CN106647282B (zh) * 2017-01-19 2020-01-03 北京工业大学 一种考虑末端运动误差的六自由度机器人轨迹规划方法

    Patent Citations (4)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    DE102004059966B3 (de) 2004-12-13 2006-06-22 Siemens Ag Verfahren und Einrichtung zur Bewegungsführung eines bewegbaren Maschinenelements einer numerisch gesteurten Maschine
    DE102008029657A1 (de) 2008-06-24 2009-12-31 Technische Universität Carolo-Wilhelmina Zu Braunschweig Positionsgesteuerter Mechanismus und Verfahren zur Steuerung von in mehreren Bewegungsfreiheitsgraden beweglichen Mechanismen
    EP2307935B1 (de) 2008-06-24 2012-08-15 Technische Universität Carolo-Wilhelmina zu Braunschweig Positionsgesteuerter mechanismus und verfahren zur steuerung von in mehreren bewegungsfreiheitsgraden beweglichen mechanismen
    DE102014103370A1 (de) 2014-03-12 2015-09-17 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren und Vorrichtung zur zeitdiskreten Steuerung eines Manipulators

    Non-Patent Citations (1)

    * Cited by examiner, † Cited by third party
    Title
    MACFARLANE, Sonja ; CROFT, Elizabeth A: Jerk-bounded manipulator trajectory planning: design for real-time applications. In: IEEE Transactions on Robotics and Automation, Vol. 19, Feb. 2003, No. 1, S. 42-52. - ISSN 1042-296X

    Cited By (5)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    DE102019204484A1 (de) * 2019-03-29 2020-10-01 Festo Se & Co. Kg Trajektorien-Planungseinheit, Ventilanordnung und Verfahren
    US11453124B2 (en) 2019-03-29 2022-09-27 Festo Se & Co. Kg Trajectory planning unit, valve arrangement and method
    CN110703696A (zh) * 2019-10-14 2020-01-17 杭州电子科技大学 七段式跃度线性连续数控装置高速进给加减速方法
    DE102021000814A1 (de) 2020-03-03 2021-09-09 Sew-Eurodrive Gmbh & Co Kg Verfahren zum Abbremsen eines Objekts und Maschine
    WO2021175487A1 (de) 2020-03-03 2021-09-10 Sew-Eurodrive Gmbh & Co. Kg Verfahren zum abbremsen eines objekts und maschine

    Also Published As

    Publication number Publication date
    US20180229368A1 (en) 2018-08-16
    US10981274B2 (en) 2021-04-20

    Similar Documents

    Publication Publication Date Title
    DE102017102749A1 (de) Automatische Trajektorienerzeugung zur Ansteuerung eines Antriebssystems
    DE112005000451B4 (de) Designverfahren für ein Industrieerzeugnis unter Verwendung einer Klothoidenkurve, und Verfahren und Vorrichtung zur numerischen Steuerung unter Verwendung der Klothoidenkurve
    DE102009024130B4 (de) Verfahren zur echtzeitfähigen Bahnplanung kontinuierlicher, rucksprungfreier Sollwerttrajektorien
    DE19963213A1 (de) Verfahren zur Steuerung/Regelung eines Prozesses in einem Kraftfahrzeug und Vorrichtung zur Durchführung des Verfahrens
    EP1963935A1 (de) Ermittlungsverfahren für eine lagegeführt abzufahrende grobbahn
    DE102013109596A1 (de) Motorregelsystem zum Korrigieren von Spiel
    DE4238600A1 (de) Elektronische Steuereinheit für Maschinen mit hochdynamisch ablaufenden Bewegungsabläufen
    DE102017001655A1 (de) Numerische Steuervorrichtung
    EP3321754A1 (de) Verfahren zur optimierung von bewegungsprofilen, computerprogrammprodukt, steuereinrichtung und anlage oder roboter
    DE10393527T5 (de) Systeme und Verfahren zur Darstellung komplexer n-Kurven für die Direktsteuerung einer Werkzeugbewegung
    EP2438491B1 (de) Verfahren und vorrichtung zur generierung eines variablen bewegungsprofils für eine antriebseinheit einer maschine
    EP3255513A1 (de) Verfahren zur echtzeitüberwachung des leistungsverlaufs und/oder energieflusses einer antriebseinrichtung und antriebseinrichtung sowie computerprogramm hierzu
    EP4147102B1 (de) Betreiben einer wenigstens zweiachsigen werkzeugmaschine
    DE2338880A1 (de) Verfahren und vorrichtungen zur steuerung der beweglichen teile einer werkzeugmaschine durch ein numerisches umriss- oder punkt-fuer-punkt-steuerungssystem, wobei zwei teile der maschine unabhaengig voneinander entlang einer gemeinsamen achse bewegt werden koennen
    EP3367185A1 (de) Antriebssystem und dessen beurteilung
    DE112019007889T5 (de) Bearbeitungsprogramm-umwandlungseinrichtung, numerische-steuereinrichtung und bearbeitungsprogramm-umwandlungsverfahren
    DE4038073A1 (de) Verfahren fuer die bearbeitung von werkstuecken mit numerisch gesteuerten maschinen
    EP3438773B1 (de) Bearbeitung von werkstücken mit modellgestützter fehlerkompensation
    EP3300521B1 (de) Ausrichtungsverfahren für werkstücke
    DE10296995T5 (de) Verfahren zum Abstimmen und Synchronisieren der Bewegung von Servounterstützten Achsen
    DE102016220577A1 (de) Verfahren zum Optimieren von Bewegungskonturen eines Manipulators
    DE102018110297B4 (de) Verfahren und Vorrichtung zur ruckbegrenzten Trajektorieplanung und Echtzeit-Steuerung einer Bewegung
    DE112017002881T5 (de) Servosteuervorrichtung
    EP0417337B1 (de) Verfahren zum Betrieb einer numerisch gesteuerten Werkzeugmaschine oder eines Roboters
    DE4039620A1 (de) Verfahren zur ermittlung von vorsteuerparametern fuer eine lageregelung

    Legal Events

    Date Code Title Description
    R012 Request for examination validly filed
    R016 Response to examination communication
    R082 Change of representative

    Representative=s name: SCHWARZ + KOLLEGEN PATENTANWAELTE, DE

    R081 Change of applicant/patentee

    Owner name: FESTO SE & CO. KG, DE

    Free format text: FORMER OWNER: FESTO AG, 73734 ESSLINGEN, DE