DE102017102749A1 - Automatische Trajektorienerzeugung zur Ansteuerung eines Antriebssystems - Google Patents
Automatische Trajektorienerzeugung zur Ansteuerung eines Antriebssystems Download PDFInfo
- 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
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13144—GUI graphical user interface, icon, function bloc editor, OI operator interface
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/43—Speed, acceleration, deceleration control ADC
- G05B2219/43168—Motion profile planning for point to point control
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S901/00—Robots
- Y10S901/02—Arm 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
- 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:
- 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 Endeffektoren14 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 Antriebssystem12 am Beispiel einer Kolben Zylinder Anordnung in einer alternativen Ausführung. Hier wird das Antriebssystem12 nicht über die Ausgangsschnittstelle OI von dem externen Trajektoriegenerator TG angesteuert, sondern das Antriebssystem12 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. Eine Konfigurationsphase und
- 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.
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.
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)
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)
- 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.
- 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. - 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.
- 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).
- 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.
- Verfahren nach einem der vorangehenden Ansprüche, bei dem für alle Start- und Endzustände eine Mittengeschwindigkeit als Lösung ausgegeben wird.
- 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.
- 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.
- 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.
- Verfahren nach einem der vorangehenden Ansprüche, bei dem das Optimierungsverfahren auf einem Goldenen-Schnitt-Verfahren basiert.
- Verfahren nach einem der vorangehenden Ansprüche, bei dem aus der berechneten Trajektorie Steuerdaten (sd) für das Antriebssystem (12) berechnet werden (d3).
- Verfahren nach einem der vorangehenden Ansprüche, bei dem das Verfahren echtzeitfähig ist.
- 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.
- Verfahren nach einem der vorangehenden Ansprüche, bei dem das Verfahren auf einem Microcontroller (µC) implementiert ist.
- 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.
- 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.
- 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.
- 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.
- Antriebssystem (12) zur Ausführung einer Bewegung, das mit einem Verfahren nach einem der vorstehenden Verfahrensansprüche angesteuert wird.
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)
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)
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)
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)
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 | 北京工业大学 | 一种考虑末端运动误差的六自由度机器人轨迹规划方法 |
-
2017
- 2017-02-13 DE DE102017102749.1A patent/DE102017102749A1/de active Pending
-
2018
- 2018-02-09 US US15/892,759 patent/US10981274B2/en active Active
Patent Citations (4)
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)
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)
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 |