DE102018203078B3 - Method for automatically generating a movement trajectory and associated computer program product - Google Patents
Method for automatically generating a movement trajectory and associated computer program product Download PDFInfo
- Publication number
- DE102018203078B3 DE102018203078B3 DE102018203078.2A DE102018203078A DE102018203078B3 DE 102018203078 B3 DE102018203078 B3 DE 102018203078B3 DE 102018203078 A DE102018203078 A DE 102018203078A DE 102018203078 B3 DE102018203078 B3 DE 102018203078B3
- Authority
- DE
- Germany
- Prior art keywords
- movement
- program
- machine
- instructions
- motion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
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/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1658—Programme controls characterised by programming, planning systems for manipulators characterised by programming language
-
- 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/40—Robotics, robotics mapping to robotics vision
- G05B2219/40519—Motion, trajectory planning
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Software Systems (AREA)
- Manipulator (AREA)
Abstract
Die Erfindung betrifft ein Verfahren zum automatischen Erzeugen einer Bewegungstrajektorie (BT) eines Bezugspunktes einer automatisch anzusteuernden Maschine, wobei die Maschine Antriebe (M1-M6) aufweist, die ausgebildet sind, den Bezugspunkt der Maschine im Raum zu bewegen und zwar angesteuert durch eine Steuervorrichtung (1), die ausgebildet ist, die Antriebe (M1-M6) der Maschine auf Grundlage der automatisch erzeugten Bewegungstrajektorie (BT) als Führungsgröße mittels einer Bewegungssteuerung (BS) anzusteuern, wobei die Bewegungstrajektorie (BT) auf Grundlage wenigstens einer in einem Überschleifmodus auszuführenden ersten Bewegungsanweisung (P1) und wenigstens einer der ersten Bewegungsanweisung (P1) folgenden zweiten Bewegungsanweisung (P2.1, P2.2) eines von der Steuervorrichtung (1) ausführenden Maschinenbewegungsprogramms (MP) mittels eines Bahnplanungsprogramms (BP) automatisch erzeugt wird. The invention relates to a method for automatically generating a movement trajectory (BT) of a reference point of a machine to be controlled automatically, wherein the machine has drives (M1-M6) which are designed to move the reference point of the machine in space, controlled by a control device (FIG. 1) configured to drive the machine drives (M1-M6) based on the automatically generated motion trajectory (BT) as a reference by means of a motion controller (BS), the motion trajectory (BT) based on at least one first executable in a smoothing mode Movement instruction (P1) and at least one of the first movement instruction (P1) following the second movement instruction (P2.1, P2.2) of an executing by the control device (1) machine movement program (MP) by means of a path planning program (BP) is automatically generated.
Description
Die Erfindung betrifft ein Verfahren zum automatischen Erzeugen einer Bewegungstrajektorie eines Bezugspunktes einer automatisch anzusteuernden Maschine, wobei die Maschine Antriebe aufweist, die ausgebildet sind, den Bezugspunkt der Maschine im Raum zu bewegen und zwar angesteuert durch eine Steuervorrichtung, die ausgebildet ist, die Antriebe der Maschine auf Grundlage der automatisch erzeugten Bewegungstrajektorie als Führungsgröße mittels einer Bewegungssteuerung anzusteuern, wobei die Bewegungstrajektorie auf Grundlage wenigstens einer in einem Überschleifmodus auszuführenden ersten Bewegungsanweisung und wenigstens einer der ersten Bewegungsanweisung folgenden zweiten Bewegungsanweisung eines von der Steuervorrichtung ausführenden Maschinenbewegungsprogramms mittels eines Bahnplanungsprogramms automatisch erzeugt wird, wobei im Maschinenbewegungsprogramm in Ablaufrichtung zwischen der ersten Bewegungsanweisung und einer folgenden zweiten Bewegungsanweisung sich eine bedingte Programmabzweigung befindet, die in Abhängigkeit eines auslösenden Ereignisses eine erste Alternative einer zweiten Bewegungsanweisung oder wenigstens eine zweite Alternative einer zweiten Bewegungsanweisung vorgibt. Die Erfindung betrifft außerdem ein zugehöriges Computerprogrammprodukt.The invention relates to a method for automatically generating a movement trajectory of a reference point of a machine to be controlled automatically, wherein the machine has drives which are adapted to move the reference point of the machine in space and controlled by a control device which is formed, the drives of the machine on the basis of the automatically generated movement trajectory as a reference variable by means of a motion control, wherein the movement trajectory is automatically generated on the basis of at least one first movement instruction to be executed in a smoothing mode and at least one second movement instruction of a machine movement program executed by the control device by means of a path planning program, wherein in Machine movement program in the flow direction between the first movement instruction and a subsequent second movement instruction is a conditional e program branch is located, which predetermines depending on a triggering event, a first alternative of a second movement instruction or at least a second alternative of a second movement instruction. The invention also relates to an associated computer program product.
Die
Die
Ein solches Ausblenden eines ersten Geschwindigkeitsprofils und ein solches Einblenden eines nachfolgenden zweiten Geschwindigkeitsprofils wird im Allgemeinen auch als „Überschleifen“ bezeichnet. Ein Überschleifen wird beispielsweise in der Robotertechnik und bei Werkzeugmaschinen in Rahmen einer sogenannten PTP-Steuerung (engl.: point-to-point) angewendet, bei der als Bewegungsanweisungen beispielsweise Punkt-zu-Punkt-Bewegungsanweisungen ausgeführt werden. Bei der Ausführung von Bewegungsanweisungen wird ein Bezugspunkt der anzusteuernden Maschine (beispielsweise ein Roboterarm oder eine Werkzeugmaschine) schrittweise von einem ersten Raumpunkt zu einem zweiten Raumpunkt und gegebenenfalls nacheinander zu weiteren folgenden Raumpunkten bewegt. Neben einer asynchronen PTP-Steuerung ist eine synchrone PTP-Steuerung allgemein bekannt, bei der nicht nur alleine die anzufahrenden Zielpunkte der einzelnen Bewegungsanweisungen rücktransformiert werden, um die Achsen der Maschine dann allein auf dieser Grundlage auf Achskoordinateneben anzusteuern, sondern auch die Bewegungsprofile von Startpunkt zu Zielpunkt in einem Bahnplanungsprogramm geplant werden und zwar hinsichtlich ihrer Geschwindigkeitsprofile und/oder Beschleunigungsprofile. So kann beispielsweise bei einer Bahnplanung bei Bewegungsanweisungen vorgesehen sein, dass für jeden angetriebenen Freiheitsgrad der Maschine, beispielsweise jedes angetriebene Gelenk eines Roboterarms, die maximale Geschwindigkeit und unter Berücksichtigung von Startpunkt zu Zielpunkt der Bewegung eine Bewegungsdauer für das jeweilige Gelenk berechnet wird, das Gelenk mit der längsten Bewegungsdauer als eine Leitachse definiert wird und die jeweils anderen, verbleibenden Freiheitsgrade oder Gelenke in ihren Geschwindigkeitsprofilen und/oder Beschleunigungsprofilen so angepasst werden, dass alle Freiheitsgrade oder Gelenke gleichzeitig mit ihren individuellen Bewegungen beginnen und auch gleichzeitig mit ihren individuellen Bewegungen enden. Um dies zu ermöglichen werden die Bewegungsanweisungen des Maschinenbewegungsprogramms, welches in einer Ablaufsteuerung implementiert sein kann, an eine Bewegungssteuerung übergeben und dort in einem Bahnplanungsprogramm transformiert in einzelne Geschwindigkeitsprofile und/oder Beschleunigungsprofile der Freiheitsgrade der Maschine oder Gelenke des Roboterarms, um die Antriebe der Maschine bzw. die angetriebenen Gelenke des Roboterarms den Geschwindigkeitsprofilen und/oder den Beschleunigungsprofilen entsprechend von einer Bewegungssteuerung angesteuert zu bewegen. Die Bewegungssteuerung kann insoweit das Bahnplanungsprogramm, d.h. eine Bahnsteuerung umfassen und eine die Bewegungen ausführende Bewegungsausführungssteuerung umfassen. Das Maschinenbewegungsprogramm hingegen kann Teil der Ablaufsteuerung sein. Je nach Systemarchitektur der Steuerung bzw. der Steuerungen können die Bewegungssteuerung und die Ablaufsteuerung separate Steuerungsteile sein oder in einer gemeinsamen Steuerung zusammengefasst sein. Üblicherweise ist die Ablaufsteuerung jedoch in einem vorzugsweise nicht-echtzeitfähigem Steuerungsteil implementiert, wo hingegen zumindest die Bewegungsausführungssteuerung oder die gesamte Bewegungssteuerung, umfassen die Bewegungsausführungssteuerung und die Bahnsteuerung, in einem echtzeitfähigen Steuerungsteil implementiert ist.Such fade-out of a first velocity profile and fade-in of a subsequent second velocity profile is also generally referred to as "blending". Blending is used, for example, in robotics and in machine tools as part of a so-called PTP control (point-to-point), in which, for example, point-to-point movement instructions are executed as movement instructions. In the execution of movement instructions, a reference point of the machine to be controlled (for example a robot arm or a machine tool) is moved stepwise from a first spatial point to a second spatial point and, if appropriate, sequentially to further following spatial points. In addition to asynchronous PTP control, a synchronous PTP control is well known, in which not only alone to be approached target points of the individual motion instructions are transformed to control the axes of the machine then only on this basis on axis coordinate levels, but also the motion profiles from start point to Target point to be planned in a path planning program in terms of their speed profiles and / or acceleration profiles. Thus, for example, in the case of path planning in the case of movement instructions, it is provided that for each driven degree of freedom of the machine, for example each driven joint of a robot arm, the maximum speed and, taking into account starting point to destination point of the movement, a movement duration for the respective joint is calculated the longest movement time is defined as a leading axis and the other, remaining degrees of freedom or joints in their velocity profiles and / or acceleration profiles are adjusted so that all degrees of freedom or joints begin at the same time with their individual movements and also end up with their individual movements. To enable this, the motion instructions of the machine motion program, which may be implemented in a scheduler, are displayed passed a motion control and there transformed in a path planning program in individual speed profiles and / or acceleration profiles of the degrees of freedom of the machine or joints of the robot arm to the drives of the machine or the driven joints of the robot arm according to the speed profiles and / or the acceleration profiles driven by a motion control move. The motion control can insofar include the path planning program, ie a path control and comprise a motion execution control executing the movements. The machine motion program, on the other hand, can be part of the flow control. Depending on the system architecture of the controller or controllers, the motion controller and the sequencer may be separate controller parts or combined in a common controller. Usually, however, the sequencer is implemented in a preferably non-real-time capable control part, whereas at least the motion execution control or the entire motion control, including the motion execution control and the path control, is implemented in a real-time capable control part.
Maschinenbewegungsprogramme können ganz allgemein bedingte Programmabzweigungen enthalten. Bei einer bedingten Programmabzweigung, die beispielsweise eine IF-Anweisung oder eine WHILE-Anweisung sein kann, ist der als nächster anzufahrende Zielpunkt von dem auslösenden Ereignis abhängig, so dass zeitlich vor dem Eintritt des Ereignisses nicht eindeutig vorbestimmt ist, welcher Zielpunkt von ggf. mehreren alternativ möglichen Zielpunkten tatsächlich zur Anwendung kommen soll. Aufgrund dieser Unbestimmtheit im Vorhinein können Zielpunkte von Bewegungsanweisungen über eine Programmabzweigung hinweg im Allgemeinen nicht angefahren werden. Bekannt ist es, in einem solchen Fall die Planung eines Überschleifens zu unterbrechen, beispielsweise im Rahmen eines sogenannten Vorlaufstopps, d.h. eines Abbruchs einer rechnerischen zeitlichen Vorausplanung von tatsächlich durch den Roboter noch nicht erreichten, aber im Programm vorgesehenen anzufahrenden Punkten, um den letzten vor der bedingten Programmabzweigung liegenden Zielpunkt ohne Überschleifen direkt anzufahren, um nach der bedingten Programmabzweigung eine neue Sequenz eines Überschleifens zu beginnen. In vielen Fällen ist jedoch ein Unterbrechen des Überschleifens nachteilig, da es dadurch zu Zeitverzögerungen, zu Rucken und/oder zu unstetigen Bahnverläufen kommen kann.Machine motion programs may generally include conditional program branches. In the case of a conditional program branch, which can be an IF statement or a WHILE statement, for example, the target point to be approached depends on the triggering event, so that it is not uniquely predetermined before the event occurs which target point of possibly several alternatively possible target points should actually be used. Because of this uncertainty in advance, target points of move instructions across a program branch generally can not be approached. It is known in such a case to interrupt the planning of a grinding, for example as part of a so-called preliminary stop, i. abort computational scheduling of points not yet actually reached by the robot, but to be approached in the program, to directly approach the last pre-conditional unthreaded target point without rounding to begin a new looping sequence after the conditional program branching. In many cases, however, an interruption of the grinding over is disadvantageous since this can lead to time delays, jerking and / or discontinuous trajectories.
Aufgabe der Erfindung ist es, ein Verfahren zum automatischen Erzeugen einer Bewegungstrajektorie eines Bezugspunktes einer automatisch anzusteuernden Maschine zu schaffen, mit dem ein Überschleifen der Zielpunkte von Bewegungsanweisungen auch über bedingte Programmabzweigungen hinweg möglich wird.The object of the invention is to provide a method for automatically generating a movement trajectory of a reference point of a machine to be controlled automatically, with the blending of the target points of movement instructions even over conditional program branches away is possible.
Diese Aufgabe wird erfindungsgemäß gelöst durch Verfahren zum automatischen Erzeugen einer Bewegungstrajektorie eines Bezugspunktes einer automatisch anzusteuernden Maschine, wobei die Maschine Antriebe aufweist, die ausgebildet sind, den Bezugspunkt der Maschine im Raum zu bewegen und zwar angesteuert durch eine Steuervorrichtung, die ausgebildet ist, die Antriebe der Maschine auf Grundlage der automatisch erzeugten Bewegungstrajektorie als Führungsgröße mittels einer Bewegungssteuerung anzusteuern, wobei die Bewegungstrajektorie auf Grundlage wenigstens einer in einem Überschleifmodus auszuführenden ersten Bewegungsanweisung und wenigstens einer der ersten Bewegungsanweisung folgenden zweiten Bewegungsanweisung eines von der Steuervorrichtung auszuführenden Maschinenbewegungsprogramms mittels eines Bahnplanungsprogramms automatisch erzeugt wird, wobei im Maschinenbewegungsprogramm in Ablaufrichtung zwischen der ersten Bewegungsanweisung und der folgenden zweiten Bewegungsanweisung sich eine bedingte Programmabzweigung befindet, die in Abhängigkeit eines auslösenden Ereignisses eine erste Alternative der zweiten Bewegungsanweisung oder wenigstens eine zweite Alternative der zweiten Bewegungsanweisung vorgibt, aufweisend die Schritte:
- - Bestimmen von Eigenschaften der zwei oder mehreren alternativen zweiten Bewegungsanweisungen, die gemäß der bedingten Programmabzweigung möglich sind,
- - Bestimmen eines Zeitpunkts, an dem eine Überschleifbewegung spätestens beginnen muss, aus allen Startzeitpunkten der zwei oder mehreren alternativen zweiten Bewegungsanweisungen, zu denen die jeweils individuelle Überschleifbewegung spätestens beginnen muss,
- - Übermitteln der Eigenschaften der ersten Bewegungsanweisung und der zwei oder mehreren alternativen zweiten Bewegungsanweisungen an das Bahnplanungsprogramm, das unter Berücksichtigung des zu überschleifenden Stützpunktes der ersten Bewegungsanweisung den zwei oder mehreren alternativen zweiten Bewegungsanweisungen entsprechende wenigstens zwei oder mehrere vorausgeplante Bewegungstrajektorien-Abschnitte erstellt,
- - wenn das auslösende Ereignis für die bedingte Programmabzweigung stattgefunden hat, Auswählen desjenigen vorausgeplanten Bewegungstrajektorien-Abschnitts, welcher der dem auslösenden Ereignis entsprechenden alternativen zweiten Bewegungsanweisung der bedingten Programmabzweigung entspricht, auf die aufgrund des auslösenden Ereignisses abgezweigt wird,
- - Übermitteln des ausgewählten, vorausgeplanten Bewegungstrajektorien-Abschnitts an eine Bewegungsausführung zum Ausführen einer Bewegung der Maschine derart, dass sich der Bezugspunkt der Maschine entsprechend dem ausgewählten, vorausgeplanten Bewegungstrajektorien-Abschnitt automatisch bewegt.
- Determining properties of the two or more alternative second movement instructions that are possible according to the conditional program branching,
- Determining a time at which a sanding movement must start at the latest from all start times of the two or more alternative second movement instructions to which the respective individual sanding movement must begin at the latest,
- Transferring the characteristics of the first movement instruction and the two or more alternative second movement instructions to the path planning program, which, taking into account the base point of the first movement instruction to be lashed, generates at least two or more pre-planned movement trajectory portions corresponding to the two or more alternative second movement instructions;
- if the triggering event for the conditional branch has taken place, selecting the one of the pre-planned motion trajectories, which is the one of the Triggering event corresponding alternative second movement instruction of the conditional program branch, which is branched off due to the triggering event,
- - transmitting the selected, pre-planned movement trajectory section to a movement execution for performing a movement of the machine such that the reference point of the machine automatically moves according to the selected, pre-planned movement trajectory section.
Die mittels des Verfahrens automatisch anzusteuernde Maschine kann eine Werkzeugmaschine oder insbesondere ein Roboter sein. Der Roboter kann einen Roboterarm aufweisen, der mehrere Glieder aufweist, die über Gelenke verbunden sind, wobei die Gelenke mittels Antrieben bewegbar sind, um die Glieder des Roboterarms automatisch gemäß eines Roboterprogramms gegeneinander verstellen zu können.The machine to be controlled automatically by the method can be a machine tool or, in particular, a robot. The robot may include a robot arm having a plurality of links connected by joints, the links being movable by means of drives to automatically adjust the links of the robot arm according to a robot program.
Die Antriebe der Maschine, insbesondere des Roboters können insbesondere elektrische Motoren umfassen, die von einer Steuervorrichtung, insbesondere einer Antriebsteuerung der Steuervorrichtung, gesteuert, insbesondere geregelt antreibbar sind. Die Motoren können mit Getrieben versehen sein.The drives of the machine, in particular of the robot, may in particular comprise electric motors which are controlled, in particular controlled, by a control device, in particular a drive control of the control device. The motors can be equipped with gearboxes.
Die Steuervorrichtung kann die Antriebsteuerung, eine Bewegungssteuerung und eine Ablaufsteuerung umfassen. Die Steuerungskomponenten können, wie bereits erwähnt, in einer gemeinsamen Steuerungseinheit zusammengefasst sein oder als separate Steuerungskomponenten ausgebildet und über Kommunikationsverbindungen miteinander verbunden sein. Auf der Steuervorrichtung, insbesondere auf der Ablaufsteuerung kann wenigstens ein Maschinenbewegungsprogramm gespeichert und zur Ausführung eingerichtet sein. Insoweit kann die Steuervorrichtung ein Computerprogrammprodukt aufweisen, das einen maschinenlesbaren Träger umfasst, auf dem Programmcode gespeichert ist, der von der Maschine, insbesondere von einer Robotersteuerung des Roboters auslesbar ist, sodass die Maschine bzw. der Roboter ausbildet und/oder einrichtet ist, ein erfindungsgemäßes Verfahren durchzuführen, wenn der Programmcode von der Maschine oder dem Roboter bzw. dessen Steuerung ausgeführt wird.The control device may include the drive controller, a motion controller, and a scheduler. As already mentioned, the control components can be combined in a common control unit or designed as separate control components and connected to one another via communication connections. At least one machine movement program may be stored on the control device, in particular on the sequence control, and set up for execution. In that regard, the control device may comprise a computer program product comprising a machine-readable carrier stored on the program code which is readable by the machine, in particular by a robot controller of the robot so that the machine or robot is formed and / or set up, according to the invention Perform a procedure when the program code is executed by the machine or the robot or its controller.
Das Maschinenbewegungsprogramm, das insoweit ein Roboterprogramm sein kann, enthält Bewegungsanweisungen, insbesondere die Bewegungsanweisungen, gemäß denen ein vorab definierter Bezugspunkt im Raum durch die Maschine bzw. den Roboterarm bewegt werden soll. Der Bezugspunkt kann ein Werkzeugbezugspunkt sein, der unter anderem auch als TCP (Tool-Center-Point) bezeichnet wird. Ein Werkzeugbezugspunkt kann ein realer oder virtueller Punkt an einem Werkzeug sein, das von der Maschine, insbesondere dem Roboterarm gehandhabt wird. In einem einfachen Fall kann der Bezugspunkt beispielsweise auch ein mit dem Flansch des Roboterarms fest verbundenes Handflanschkoordinatensystem sein.The machine motion program, which may be a robot program insofar, contains motion instructions, in particular the motion instructions, according to which a predefined reference point in space is to be moved by the machine or robotic arm. The reference point can be a tool reference point, which is also known as TCP (Tool Center Point). A tool reference point may be a real or virtual point on a tool handled by the machine, in particular the robot arm. For example, in a simple case, the reference point may also be a hand flange coordinate system fixedly connected to the flange of the robot arm.
Das Bahnplanungsprogramm der Bahnsteuerung stellt Algorithmen, Modelle und/oder Rechenvorschriften bereit, die auf Grundlage der im Maschinenbewegungsprogramm enthaltenen Bewegungsanweisungen eine Bewegungstrajektorie für den Bezugspunkt unmittelbar erstellen oder mittelbar dadurch erstellen, dass Bewegungsprofile, insbesondere Geschwindigkeitsprofile und/oder Beschleunigungsprofile achsbezogen oder kartesisch durch das Bahnplanungsprogramm generiert werden. Die entsprechenden Bewegungsprofile, insbesondere Geschwindigkeitsprofile und/oder Beschleunigungsprofile werden dann insbesondere in achsbezogener Form an die Bewegungsausführungssteuerung übergeben, welche ihrerseits die Antriebe d.h. die Motoren der Maschine oder des Roboterarms auch auf Antriebsebene ansteuern oder regeln.The path planning program of the path control provides algorithms, models and / or calculation rules that directly create or indirectly create a motion trajectory for the reference point based on the motion instructions contained in the machine motion program, such that motion profiles, in particular velocity profiles and / or acceleration profiles, are generated axis-related or Cartesian by the path planning program become. The corresponding motion profiles, in particular velocity profiles and / or acceleration profiles, are then transferred to the motion execution control, in particular in an axis-related form, which in turn drives the drives, i. also control or regulate the motors of the machine or robot arm on the drive level.
Im Falle von Bewegungsanweisungen, die grundsätzlich mit asynchronen Achsbewegungen oder mit synchronen Achsbewegungen durchgeführt werden können, wird die Bahn der Trajektorie zwar nicht in ihrem genauen Bahnverlauf exakt geplant, allerdings findet insoweit eine Bewegungsplanung statt, bei der die Geschwindigkeitsprofile und/oder die Beschleunigungsprofile der einzelnen Achsbewegungen durchaus geplant werden, wodurch sich in Abhängigkeit des jeweiligen Startpunktes und des angenommenem Zielpunktes bzw. der angenommenen mehreren aufeinanderfolgenden Zielpunkten ein reproduzierbarer stetiger Bahnverlauf ergibt. Wie bereits erwähnt, werden in einem Überschleifmodus die von den Bewegungsanweisungen definierten genauen Zielpunkte nicht exakt angefahren, sondern unter Vermeiden eines Anhaltens in einem parametrierbaren Abstandsbereich von dem jeweiligen Zielpunkt umfahren, um eine Bewegungstrajektorie mit einem stetigen Geschwindigkeitsverlauf zu erhalten.In the case of movement instructions, which can be carried out basically with asynchronous axis movements or with synchronous axis movements, the trajectory of the trajectory is not precisely planned in its exact trajectory, but so far takes place in a motion planning in which the speed profiles and / or the acceleration profiles of the individual Axis movements are well planned, resulting in a reproducible continuous trajectory depending on the respective starting point and the assumed target point or the assumed multiple successive target points. As already mentioned, in a blending mode, the exact target points defined by the movement instructions are not exactly approached, but avoid the stop in a parameterizable distance range from the respective target point, in order to obtain a motion trajectory with a steady velocity curve.
Die Bewegungstrajektorie ist eine grafische Repräsentation des Verlaufs der Bewegung, die der Bezugspunkt im Raum durchläuft. Die Bewegungstrajektorie ist insoweit die Spur auf der sich der Bezugspunkt bewegt, wenn die Maschine oder der Roboter gemäß dem Maschinenbewegungsprogramm automatisch angesteuert wird. Die Bewegungstrajektorie kann auch Geschwindigkeitsdaten, insbesondere bezogen auf Interpolationspunkte des Verlaufs der Bewegung bzw. der Spur umfassen.The movement trajectory is a graphical representation of the course of the movement that passes through the reference point in space. The movement trajectory is the track on which the reference point moves when the machine or the robot is automatically controlled according to the machine movement program. The movement trajectory may also include speed data, in particular with respect to interpolation points of the course of the movement or the track.
Ein Bewegungstrajektorien-Abschnitt stellt im Allgemeinen eine Teilstrecke der gesamten Bewegungstrajektorie dar. Im Speziellen werden erfindungsgemäß unter den jeweiligen Bewegungstrajektorien-Abschnitten diejenigen Teile von mehreren möglichen Bewegungstrajektorien verstanden, die im Maschinenbewegungsprogramm aufgrund der bedingten Programmabzweigung alternativ auftreten können, solange das für die bedingten Programmabzweigung auslösende Ereignis noch nicht stattgefunden hat und es deshalb noch nicht feststeht, welche der zwei oder mehreren möglichen Bewegungstrajektorien-Abschnitte tatsächlich zur Ausführung kommen. A movement trajectory section generally represents a leg of the entire movement trajectory. Specifically, according to the present invention, the respective movement trajectory sections mean those parts of several possible movement trajectories that may alternatively occur in the machine motion program due to the conditional program branch, as long as the conditional program branch initiates Event has not yet occurred and therefore it is not yet clear which of the two or more possible movement trajectory sections actually come to fruition.
Ein Überschleifen wird beispielsweise in der Robotertechnik und bei Werkzeugmaschinen in Rahmen einer sogenannten PTP-Steuerung angewendet, bei der Bewegungsanweisungen ausgeführt werden. Bei der Ausführung von Bewegungsanweisungen wird ein Bezugspunkt der anzusteuernden Maschine (beispielsweise ein Roboterarm oder eine Werkzeugmaschine) schrittweise von einem ersten Raumpunkt zu einem zweiten Raumpunkt und gegebenenfalls nacheinander zu weiteren folgenden Raumpunkten bewegt, wobei in einem Überschleifmodus die jeweiligen Stützpunkte der Bewegungsanweisungen unter Umständen nicht mehr direkt erreicht werden, sondern unter Vermeiden eines vollständigen Anhaltes der Maschine oder des Roboterarms bzw. dessen Bezugspunktes, der Bezugspunkt lediglich in der Nähe eines solcher überschliffenen Stützpunktes vorbeibewegt wird, um sogleich in Richtung des nächsten Stützpunktes der nächsten Bewegungsanweisung zu fahren. Eine solche Überschleifbewegung kennzeichnet sich also dadurch, dass an solchen Zwischenstellungen (überschleifende Stützpunkte) ohne Anhalten des Bezugspunktes vorbeigefahren wird.Blending is used, for example, in robotics and machine tools as part of a so-called PTP control in which movement instructions are executed. In the execution of movement instructions, a reference point of the machine to be controlled (for example, a robot arm or a machine tool) is moved stepwise from a first space point to a second space point and possibly successively to other subsequent space points, in a blending mode, the respective bases of the movement instructions may no longer can be achieved directly, but avoiding a complete stop of the machine or the robot arm or its reference point, the reference point is moved only in the vicinity of such a polished support point to immediately move towards the next interpolation point of the next movement instruction. Such a grinding movement is thus characterized by the fact that at such intermediate positions (over-grinding points) is passed without stopping the reference point.
Die anzufahrenden Zielpunkte sind zwar durch die jeweilige Bewegungsanweisung fest vorbestimmt, allerdings werden diese Zielpunkte im Überschleifmodus demgemäß oftmals tatsächlich nicht erreicht.Although the target points to be approached are firmly predetermined by the respective movement instruction, these target points are in fact often not reached in the rounding mode.
Maschinenbewegungsprogramme können ganz allgemein bedingte Programmabzweigungen enthalten. Bei einer bedingten Programmabzweigung, die beispielsweise eine IF-Anweisung oder eine WHILE-Anweisung sein kann, ist der als nächster anzufahrende Zielpunkt von dem auslösenden Ereignis abhängig, so dass zeitlich vor dem Eintritt des Ereignisses nicht eindeutig vorbestimmt ist, welcher Zielpunkt von ggf. mehreren alternativ möglichen Zielpunkten tatsächlich zur Anwendung kommen soll. Aufgrund dieser Unbestimmtheit im Vorhinein können Zielpunkte von Bewegungsanweisungen über eine Programmabzweigung hinweg im Allgemeinen nicht durchgeführt werden. Bekannt ist es, in einem solchen Fall die Planung eines Überschleifens zu unterbrechen, beispielsweise im Rahmen eines sogenannten Vorlaufstopps, um den letzten vor der bedingten Programmabzweigung liegenden Zielpunkt ohne Überschleifen direkt anzufahren, um nach der bedingten Programmabzweigung eine neue Sequenz eines Überschleifens zu beginnen. In vielen Fällen ist jedoch ein Unterbrechen des Überschleifens nachteilig, da es dadurch zu Zeitverzögerungen, zu Rucken und/oder zu unstetigen Bahnverläufen kommen kann.Machine motion programs may generally include conditional program branches. In the case of a conditional program branch, which can be an IF statement or a WHILE statement, for example, the target point to be approached depends on the triggering event, so that it is not uniquely predetermined before the event occurs which target point of possibly several alternatively possible target points should actually be used. Because of this uncertainty in advance, target points of move instructions across a program branch generally can not be performed. It is known, in such a case, to interrupt the scheduling of a smoothing operation, for example in the context of a so-called preliminary stop, in order to directly approach the last destination point before the conditional program branch without rounding in order to start a new looping sequence after the conditional program branching. In many cases, however, an interruption of the grinding over is disadvantageous since this can lead to time delays, jerking and / or discontinuous trajectories.
Das auslösende Ereignis kann demgemäß ein physikalisches Ereignis sein, auf welches das Maschinenbewegungsprogramm in programmierter Weise reagieren soll und zwar mittels der bedingten Programmabzweigung. Das auslösende Ereignis ist für das Maschinenbewegungsprogramm insoweit eine beliebige zu prüfende Bedingung, bei deren Eintreten oder Vorhandensein in den jeweils vorgesehen Programmzweig abgezweigt wird. Das auslösende Ereignis muss dabei nicht notwendiger Weise erst kurz vor dem zeitlichen Erreichen der Programmabzweigung eintreten, sondern kann ggf. schon länger vorher eingetreten sein und somit schon weit vor dem Erreichen der Programmabzweigung eingetreten sein. Es kann dann unmittelbar vor der Programmabzweigung oder zeitlich kurz vor der Programmabzweigung das auslösende Ereignis bzw. die zu prüfende Bedingung abgefragt und/oder ausgewertet werden, beispielsweise dahingehend, ob die zu prüfende Bedingung oder das Ereignis immer noch vorliegt. Insoweit kann die zu prüfende Bedingung oder das Ereignis schon weit vorher vorhanden sein, aber erst zum Zeitpunkt bzw. kurz vor dem Zeitpunkt des Erreichens der Programmabzweigung abgefragt werden. Das auslösende Ereignis kann insoweit auch schon allein die Abfrage bzw. die Überprüfung einer bereits vorliegenden Bedingung und/oder eines bereits vorliegenden physikalischen Zustands sein. Die Bedingung und/oder der Zustand kann beispielsweise mittels wenigstens eines Sensors erfasst werden, der im einfachsten Fall einen booleschen Zustand liefert, der einen Parameter für eine Wartefunktion im Maschinenbewegungsprogramm bildet, die ein Ergebnis erst dann liefert, wenn der definierte Zeitpunkt für die Programmabzweigung erreicht ist.The initiating event may accordingly be a physical event to which the machine motion program is to respond in a programmed manner by means of the conditional program branching. The triggering event for the machine motion program insofar as any condition to be tested, is diverted at the occurrence or presence in the respective program branch provided. The triggering event does not necessarily have to occur until shortly before the timely achievement of the program branch, but may possibly have occurred earlier and thus occurred well before the program branch was reached. The triggering event or the condition to be checked can then be queried and / or evaluated immediately before the program branching or shortly before the program branching, for example as to whether the condition to be checked or the event still exists. In that regard, the condition to be tested or the event may already be present far in advance, but only be queried at the time or shortly before the time the program branch is reached. To this extent, the triggering event may already be the query or the checking of an already existing condition and / or an already existing physical condition. The condition and / or the state can be detected, for example, by means of at least one sensor which, in the simplest case, supplies a Boolean state which forms a parameter for a wait function in the machine motion program, which delivers a result only when the defined point in time for the program branch has been reached is.
Indem das erfindungsgemäße Verfahren die folgenden Schritte vorsieht:
- - Bestimmen von Eigenschaften der zwei oder mehreren alternativen zweiten Bewegungsanweisungen, die gemäß der bedingten Programmabzweigung möglich sind,
- - Bestimmen eines Zeitpunkts, an dem eine Überschleifbewegung spätestens beginnen muss, aus allen Startzeitpunkten der zwei oder mehreren alternativen zweiten Bewegungsanweisungen, zu denen die jeweils individuelle Überschleifbewegung spätestens beginnen muss,
- - Übermitteln der Eigenschaften der ersten Bewegungsanweisung und der zwei oder mehreren Zielpunkte der zwei oder mehreren alternativen zweiten Bewegungsanweisungen an ein Bahnplanungsprogramm, das unter Berücksichtigung des zu überschleifenden Stützpunktes der ersten Bewegungsanweisung den zwei oder mehreren alternativen zweiten Bewegungsanweisungen entsprechende wenigstens zwei oder mehrere vorausgeplante Bewegungstrajektorien-Abschnitte erstellt,
- - wenn das auslösende Ereignis für die bedingte Programmabzweigung stattgefunden hat, Auswählen desjenigen vorausgeplanten Bewegungstrajektorien-Abschnitts, welcher der dem auslösenden Ereignis entsprechenden alternativen zweiten Bewegungsanweisung der bedingten Programmabzweigung entspricht, auf die aufgrund des auslösenden Ereignisses abgezweigt wird,
- - Übermitteln des ausgewählten, vorausgeplanten Bewegungstrajektorien-Abschnitts an die Ablaufsteuerung zum Ausführen einer Bewegung der Maschine derart, dass sich der Bezugspunkt der Maschine dem ausgewählten, vorausgeplanten Bewegungstrajektorien-Abschnitt entsprechend automatisch bewegt, kann ein Verfahren zum automatischen Erzeugen einer Bewegungstrajektorie eines Bezugspunktes einer automatisch anzusteuernden Maschine bereitgestellt werden, mit dem ein Überschleifen der Zielpunkte von Bewegungsanweisungen auch über bedingte Programmabzweigungen hinweg möglich ist.
- Determining properties of the two or more alternative second movement instructions that are possible according to the conditional program branching,
- Determining a time at which a smoothing movement must start at the latest, from all start times of the two or more alternative second movement instructions, to which each individual polishing must begin at the latest,
- - transmitting the characteristics of the first movement instruction and the two or more target points of the two or more alternative second movement instructions to a path planning program which, considering the base point of the first movement instruction to be lashed, at least two or more pre-planned movement trajectory portions corresponding to the two or more alternative second movement instructions created,
- if the triggering event has occurred for the conditional program branch, selecting the pre-planned movement trajectory portion which corresponds to the alternative second motion instruction corresponding to the triggering event of the conditional program branch which is branched off on the basis of the triggering event,
- - transmitting the selected, pre-planned movement trajectory section to the sequencer for executing a movement of the machine such that the reference point of the machine automatically moves in accordance with the selected, preplanned movement trajectory section, a method for automatically generating a movement trajectory of a reference point of an automatically controlled one Machine can be provided, with a blending of the target points of movement instructions is also possible over conditional program branches away.
Das Bestimmen eines Zeitpunkts, an dem eine Überschleifbewegung spätestens beginnen muss, aus allen Startzeitpunkten der zwei oder mehreren alternativen zweiten Bewegungsanweisungen, zu denen die jeweils individuelle Überschleifbewegung spätestens beginnen muss, und das Übermitteln der Eigenschaften der ersten Bewegungsanweisung und der zwei oder mehreren Zielpunkte der zwei oder mehreren alternativen zweiten Bewegungsanweisungen an ein Bahnplanungsprogramm, das unter Berücksichtigung des zu überschleifenden Stützpunktes der ersten Bewegungsanweisung den zwei oder mehreren alternativen zweiten Bewegungsanweisungen entsprechende wenigstens zwei oder mehrere vorausgeplante Bewegungstrajektorien-Abschnitte erstellt, können gleichzeitig oder in gewissem Rahmen zeitlich versetzt zueinander ausgeführt werden. Die Reihenfolge kann insoweit nahezu beliebig sein und ggf. auch in der Reihenfolge vertauscht sein.Determining a time at which a smoothing movement must begin at the latest, from all start times of the two or more alternative second movement instructions to which each individual smoothing movement must begin at the latest, and transmitting the characteristics of the first movement command and the two or more target points of the two or a plurality of alternative second movement instructions to a path planning program, which, taking into account the base point of the first movement instruction to be looped, creates at least two or more pre-planned movement trajectory sections corresponding to two or more alternative second movement instructions, may be executed simultaneously or to some extent staggered in time. The order can be so far almost arbitrary and possibly also be reversed in the order.
Mit der erfindungsgemäßen Lösung kann die Funktion des Überschleifens bei Bewegungsanweisungen im Rahmen einer adaptiven Bahnführung in einem Onlinebetrieb auch über bedingte Programmabzweigungen hinweg stoppfrei, in einem stetigen Geschwindigkeitsverlauf und/oder ggf. ruckfrei ausgeführt werden.With the solution according to the invention, the function of blending in movement instructions within the scope of an adaptive web guide in an online operation can also be carried out free of conditional program branches, in a continuous speed progression and / or, if necessary, without jerking.
Eine im Allgemeinen mögliche offline-Planung des Überschleifens von Bewegungsanweisungen ist im Falle von bedingten Programmabzweigungen meist nicht möglich, da das die bedingte Programmabzweigung triggernde d.h. auslösende Ereignis im Vorhinein nicht bekannt ist.A generally possible offline scheduling of rounding motion statements is usually not possible in the case of conditional program branches, since the conditional branching triggers, i. triggering event is not known in advance.
Mit dem erfindungsgemäßen Verfahren ist auch keine vollständige Planung der Bewegungstrajektorie unter Echtzeitbedingungen nötig. Die mit dem erfindungsgemäßen Verfahren in einer Vorschau über ein, zwei oder mehrere Bewegungsanweisungen hinweg zu planende Überschleifbewegung kann hingegen in einer nicht-echtzeitfähigen Bahnsteuerung erfolgen. Die Bahnsteuerung kann somit auch in einer nicht-echtzeitfähigen Programmiersprache erstellt sein.With the method according to the invention, no complete planning of the movement trajectory under real-time conditions is necessary. By contrast, the smoothing movement to be planned with the method according to the invention in a preview over one, two or more movement instructions can take place in a non-real-time capable path control. The path control can thus also be created in a non-real-time programming language.
Die bedingte Programmabzweigung kann in wenigstens einer durch das auslösende Ereignis bestimmten Alternative außer einer zweiten Bewegungsanweisung zusätzlich wenigstens eine weitere Bewegungsanweisung aufweisen, wobei
- - ein Bestimmen des Zeitpunkts, an dem eine Überschleifbewegung spätestens beginnen muss, aus allen Startzeitpunkten der zwei oder mehreren alternativen zweiten Bewegungsanweisungen, zu denen die jeweils individuelle Überschleifbewegung spätestens beginnen muss, erfolgt unter Einbeziehen der jeweils weiteren Bewegungsanweisungen zu der jeweiligen zweiten Bewegungsanweisung erfolgt, und
- - ein Übermitteln der Eigenschaften der zu überschleifenden ersten Bewegungsanweisung und der zwei oder mehreren Zielpunkte der zwei oder mehreren alternativen zweiten Bewegungsanweisungen und der jeweiligen weiteren Bewegungsanweisungen an das Bahnplanungsprogramm erfolgt, wobei das Bahnplanungsprogramm unter Berücksichtigung der Eigenschaften der zu überschleifenden ersten Bewegungsanweisung den zwei oder mehreren alternativen zweiten Bewegungsanweisungen und den jeweils weiteren Bewegungsanweisungen entsprechende wenigstens zwei oder mehrere vorausgeplante Bewegungstrajektorien-Abschnitte erstellt erfolgt.
- - Determining the time at which a smoothing movement must start at the latest, from all start times of the two or more alternative second movement instructions to which each individual smoothing movement must begin at the latest, takes place taking into account the respective further movement instructions to the respective second movement instruction, and
- a transfer of the properties of the first movement instruction to be looped and the two or more destination points of the two or more alternative second movement instructions and the respective further movement instructions to the path planning program is carried out, the path planning program taking into account the properties of the first movement instruction to be looped the two or more alternative second movement instructions and the respective further movement instructions corresponding at least two or more pre-planned Bewegungsstrajektorien sections created.
In dieser Ausführungsvariante wird demgemäß nicht nur die im Programmablauf unmittelbar vor der bedingten Programmabzweigung liegende erste Bewegungsanweisung und die unmittelbar nach der bedingten Programmabzweigung liegende zweite Bewegungsanweisung für den Überschleifmodus über die bedingten Programmabzweigung hinweg berücksichtigt bzw. herangezogen, sondern auch mindestens eine weitere Bewegungsanweisung, also beispielsweise eine dritte Bewegungsanweisung und eine vierte Bewegungsanweisung, die der zweiten Bewegungsanweisung unmittelbar nachfolgen. Die Anzahl der hinzuzuziehenden Bewegungsanweisungen kann sich nach der Zeit richten, die bis zur bedingten Programmabzweigung noch zur Verfügung steht, um die zwei oder mehreren möglichen Bewegungstrajektorien-Abschnitte rechtzeitig vor Erreichen der bedingten Programmabzweigung vorausplanen zu können.In this embodiment, accordingly, not only the first movement instruction lying in the program sequence immediately before the conditional program branch and the immediately following the conditional program branching second movement instruction for the smoothing over the conditional program branch away taken into account or used, but also at least one further movement instruction, so for example a third movement instruction and a fourth movement instruction, which follow the second movement instruction immediately. The number of move instructions to be involved may be based on the time remaining available until conditional branching to allow for scheduling the two or more possible movement trajectory sections in time for the conditional branch to occur.
Das Bahnplanungsprogramm kann demgemäß eingerichtet sein, außer den zu überschleifenden ersten Stützpunkt der ersten Bewegungsanweisung, zusätzlich wenigstens einen zweiten Stützpunkt der zweiten Bewegungsanweisung und/oder jeden dritten oder weiteren Stützpunkt einer im Programmablauf folgenden, weiteren zweiten Bewegungsanweisung überschleifend zu planen.The path planning program can accordingly be set up, in addition to the first interpolation point of the first movement instruction to additionally plan at least one second interpolation point of the second movement instruction and / or every third or further interpolation point of a further second movement instruction following in the program sequence.
Eine spezielle Ausführungsform des Verfahren kann gekennzeichnet sein durch ein automatisches oder manuelles Referenzieren im Maschinenbewegungsprogramm der zwei oder mehreren alternativen zweiten Bewegungsanweisungen und/oder der weiteren Bewegungsanweisungen, die der bedingten Programmabzweigung im Maschinenbewegungsprogramm in Ablaufrichtung folgen, in einer in Ablaufrichtung vor der Programmabzweigung auftretenden Bewegungsanweisung, insbesondere vor der ersten Bewegungsanweisung oder in der ersten Bewegungsanweisung, die der bedingten Programmabzweigung im Maschinenbewegungsprogramm in Ablaufrichtung unmittelbar vorausgeht.A specific embodiment of the method may be characterized by an automatic or manual homing in the machine motion program of the two or more alternative second motion instructions and / or the further motion instructions following the conditional program branch in the machine motion program in the flow direction in a move instruction occurring in the flow direction before the program branch. in particular before the first movement instruction or in the first movement instruction, which immediately precedes the conditional program branch in the machine movement program in the flow direction.
Ein automatisches Referenzieren beispielsweise kann in einer speziellen Variante des Verfahrens dadurch erfolgen, dass das Maschinenbewegungsprogramm Zugriffsfunktionen oder Zugriffsmethoden aufweist, die formale Parameter umfassen, in welche die zu referenzierenden zweiten Bewegungsanweisungen und/oder weiteren Bewegungsanweisungen als aktuelle Parameter automatisch eingetragen werden, welche aktuellen Parameter virtuelle Rückgabewerte bilden, die durch das Maschinenbewegungsprogramm als virtuelle Aufrufparameter der zweiten Bewegungsanweisungen und/oder weiteren Bewegungsanweisungen vor ihrer eigentlichen Ausführung automatisch auslesbar sind.In a special variant of the method, for example, automatic referencing can be achieved by the machine movement program having access functions or access methods comprising formal parameters into which the second movement instructions and / or further movement instructions to be referenced are automatically entered as actual parameters, which current parameters are virtual Form return values that are automatically read out by the machine motion program as a virtual call parameters of the second movement instructions and / or other movement instructions before their actual execution.
Das manuelle Referenzieren beispielsweise kann in einer anderen Variante des Verfahrens dadurch erfolgen, dass das Maschinenbewegungsprogramm über editierbare Bewegungsanweisungen verfügt, die Attribute umfassen, in denen die Eigenschaften der zu referenzierenden zweiten Bewegungsanweisungen und/oder der weiteren Bewegungsanweisungen als aktuelle Parameter der Bewegungsanweisungen manuell eingetragen werden können.In another variant of the method, for example, the manual referencing can be carried out by the machine movement program having editable movement instructions which include attributes in which the properties of the second movement instructions to be referenced and / or the further movement instructions can be manually entered as current parameters of the movement instructions ,
Generell, d.h. in allen Ausführungsformen können die Eigenschaften der jeweiligen Bewegungsanweisung nicht nur Parameter der Bewegungsanweisung sein, wie beispielsweise die Zielpunkte oder Koordinaten, die geforderten Geschwindigkeiten und/oder Beschleunigungen, sondern können auch andere Spezifikationen der Bewegungsanweisung sein, wie insbesondere die Art der Bewegungsanweisung, so z.B. PTP-Befehl, LIN-Befehl oder CIRC-Befehl als solches.Generally, i. In all embodiments, the characteristics of the particular move instruction may not only be parameters of the move instruction, such as the destination points or coordinates, the requested speeds and / or accelerations, but may also be other specifications of the move instruction, in particular the type of move instruction, e.g. PTP command, LIN command or CIRC command as such.
In allen entsprechend geeigneten Ausführungsformen kann das Bestimmen der Eigenschaften der zwei oder mehreren alternativen zweiten Bewegungsanweisungen, die gemäß der bedingten Programmabzweigung möglich sind, dadurch erfolgen, dass die in der ersten Bewegungsanweisung referenzierten zwei oder mehreren alternativen zweiten Bewegungsanweisungen und/oder weiteren Bewegungsanweisungen aufgrund der Verweise in der ersten Bewegungsanweisung ausgelesen werden. So können die im Programmablauf zeitlich hinter der bedingten Programmabzweigung liegenden Bewegungsanweisungen bereits zeitlich vor der bedingten Programmabzweigung ausgelesen und damit in der Vorlaufsteuerung berücksichtigt werden. Im Unterschied zum bisher Bekannten wird jedoch nicht nur ein einzelner prädiktiver weiterer Verlauf der Bewegungstrajektorie im Bahnplanungsprogramm bzw. in der Vorlaufsteuerung geplant, sondern alle gemäß der bedingten Programmabzweigung möglichen weiteren Verläufe der mehreren alternativen Bewegungstrajektorien im Bahnplanungsprogramm bzw. in der Vorlaufsteuerung über ein, zwei oder ggf. weitere Bewegungsanweisungen hinweg vorausgeplant.In all correspondingly suitable embodiments, determining the characteristics of the two or more alternative second movement instructions possible according to the conditional program branch may be accomplished by referring to the two or more alternative second movement instructions and / or further movement instructions referenced in the first movement instruction be read in the first movement instruction. Thus, the movement instructions lying behind the conditional program branch in the program sequence can already be read out in time prior to the conditional program branch and thus taken into account in the flow control. In contrast to the previously known, however, not only a single predictive further course of the movement trajectory in the path planning program or in the flow control is planned, but all according to the conditional program branch possible further courses of several alternative movement trajectories in the path planning program or in the flow control over one, two or possibly pre-planned further movement instructions.
Generell kann das Bestimmen des Zeitpunkts, an dem eine Überschleifbewegung spätestens beginnen muss, aus allen Startzeitpunkten der zwei oder mehreren alternativen zweiten Bewegungsanweisungen, zu denen die jeweils individuelle Überschleifbewegung spätestens beginnen muss, dadurch erfolgen, dass für alle individuellen Überschleifbewegungen eine jeweilige Zeitdauer aus den Bahnparametern und den physikalischen Eigenschaften automatisch bestimmt wird, aus allen entsprechenden Zeitdauern der individuellen Überschleifbewegungen der zwei oder mehreren alternativen zweiten Bewegungsanweisungen, die längste Zeitdauer herausselektiert wird, und auf Grundlage des momentanen Zeitpunkts und der herausselektierten längsten Zeitdauer der späteste Zeitpunkt, an dem eine Überschleifbewegung beginnen muss, bestimmt wird.In general, the determination of the time point at which a smoothing movement must begin at the latest from all start times of the two or more alternative second movement instructions to which the respective individual smoothing movement must begin at the latest can be effected by providing a respective time duration from the web parameters for all individual smoothing motions and the physical properties are automatically determined from all respective durations of the individual rounding motions of the two or more alternative second movement instructions, the longest period is selected, and based on the current time and the selected longest period, the latest time at which a rounding movement must begin , is determined.
In Kenntnis des spätesten Zeitpunkts, an dem eine Überschleifbewegung beginnen muss und des momentanen Zeitpunkts kann auch festgestellt werden, ob für alle alternativen zweiten Bewegungsanweisungen, die aufgrund der bedingten Programmabzweigung die Ausführung einer Überschleifbewegung noch sichergestellt werden kann. Falls dies nicht der Fall ist, also festgestellt wird, dass der späteste Zeitpunkt, an dem eine Überschleifbewegung beginnen muss zeitlich bereits verstrichen ist, kann steuerungstechnisch und/oder programmtechnisch vorgesehen werden, dass ein laufender Überschleifmodus beendet, d.h. abgebrochen wird oder ein noch nicht begonnener Überschleifmodus erst gar nicht gestartet wird. Knowing the latest time at which a rounding movement must begin and the current time can also be determined whether for all alternative second movement instructions that can still be ensured due to the conditional program branch, the execution of a smoothing motion. If this is not the case, that is, it is determined that the latest time at which a sanding movement must begin has already elapsed, control and / or program technology can be used to ensure that a running smoothing mode is ended, ie aborted or not yet started Smoothing mode does not even start.
Es kann ergänzend vorgesehen sein, dass das Übermitteln des ausgewählten, vorausgeplanten Bewegungstrajektorien-Abschnitts an die Bewegungssteuerung zum Ausführen einer Bewegung der Maschine derart, dass sich der Bezugspunkt der Maschine dem ausgewählten, vorausgeplanten Bewegungstrajektorien-Abschnitt entsprechend automatisch bewegt, erst unmittelbar vor dem spätesten Zeitpunkt oder lediglich kurz vor dem spätesten Zeitpunkt ausgeführt wird. Alternativ oder ergänzend kann ein Abfragen und/oder ein Auswerten des auslösenden Ereignisses erst unmittelbar vor dem spätesten Zeitpunkt oder lediglich kurz vor dem spätesten Zeitpunkt ausgeführt werden. Das Abfragen kann beispielsweise ein Einlesen eines Sensorsignals in das Bahnplanungsprogramm oder das Maschinenbewegungsprogramm sein. Ein Auswerten kann einen Vorgang umfassen, bei dem ein eingelesenes Sensorsignal beispielsweise umgewandelt wird und/oder beispielsweise mit anderen Sensorsignalen gemeinsam ausgewertet und/oder kombiniert wird. So kann möglichst lange beispielsweise auf das Eingehen externer Signale gewartet werden, die für die weitere Programmausführung ggf. notwendig sind, bspw. um ein vom Roboter bewegtes Werkzeug prozessabhängig ansteuern zu können. Ganz allgemein können diejenigen Bewegungsanweisungen des Maschinenbewegungsprogramms, die von dem an die Bewegungssteuerung zum Ausführen einer Bewegung der Maschine bereits übermittelten, vorausgeplanten Bewegungstrajektorien-Abschnitt erfasst sind, automatisch mit einer Kennzeichnung versehen werden, derart, dass bei geplantem Erreichen dieser Bewegungsanweisungen während des Ablaufs des Maschinenbewegungsprogramms diese Bewegungsanweisungen nicht erneut an das Bahnplanungsprogramm übermittelt werden.It may be additionally provided that the transmission of the selected, pre-planned movement trajectory section to the motion controller for executing a movement of the machine such that the reference point of the machine automatically moves in accordance with the selected, pre-planned movement trajectory section, only immediately before the latest time or just before the latest time. Alternatively or additionally, querying and / or evaluating the triggering event can be carried out only immediately before the latest time or just shortly before the latest time. The interrogation can be, for example, a reading in of a sensor signal into the path planning program or the machine motion program. Evaluation may include a process in which a read sensor signal is converted, for example, and / or evaluated and / or combined, for example, together with other sensor signals. For example, it is possible to wait as long as possible for external signals to be received, which may be necessary for further program execution, for example, in order to be able to control a tool moved by the robot in a process-dependent manner. In general, those motion instructions of the machine motion program detected by the pre-planned motion trajectory section already communicated to the motion controller for executing a movement of the machine may be automatically marked so that when these motion instructions are scheduled to be reached during the course of the machine motion program these movement instructions are not transmitted again to the railway planning program.
In einer Variante kann bei geplantem Erreichen der Bewegungsanweisungen während des Ablaufs des Maschinenbewegungsprogramms, die mit der Kennzeichnung versehen sind, ein Übermitteln der Stützpunkte und/oder Zielpunkte dieser gekennzeichneten Bewegungsanweisungen an das Bahnplanungsprogramm unterbunden werden und statt dessen derjenige vorausgeplante Bewegungstrajektorien-Abschnitt, welcher auf Grundlage dieser gekennzeichneten Bewegungsanweisungen bereits erzeugt wurde, direkt an die Bewegungssteuerung übergeben werden.In a variant, when the movement instructions are scheduled to be reached during the course of the machine movement program marked, the interpolation of the interpolation points and / or target points of those designated movement instructions to the path planning program may be prohibited and instead the pre-planned movement trajectory section based on of these marked movement instructions has already been generated, are passed directly to the motion control.
Die erfindungsgemäße Aufgabe wird außerdem gelöst durch ein Computerprogrammprodukt aufweisend einen maschinenlesbaren Träger, auf dem Programmcode gespeichert ist, der von einer Maschine auslesbar ist und der die Maschine ausbildet und/oder einrichtet, ein Verfahren wie erfindungsgemäße beschrieben durchzuführen, wenn der Programmcode von der Maschine ausgeführt wird.The object of the invention is also achieved by a computer program product comprising a machine-readable carrier having program code readable by a machine and forming and / or establishing the machine performing a method as described in the invention when the program code is executed by the machine becomes.
Konkrete Ausführungsbeispiele der Erfindung sind in der nachfolgenden Figurenbeschreibung unter Bezugnahme auf die beigefügten Figuren näher erläutert. Konkrete Merkmale dieser exemplarischen Ausführungsbeispiele können unabhängig davon, in welchem konkreten Zusammenhang sie erwähnt sind, gegebenenfalls auch einzeln oder auch in anderen Kombinationen der Merkmale betrachtet, allgemeine Merkmale der Erfindung darstellen.Concrete embodiments of the invention are explained in more detail in the following description of the figures with reference to the accompanying figures. Concrete features of these exemplary embodiments, regardless of the specific context in which they are mentioned, if appropriate also individually or in other combinations of the features, may represent general features of the invention.
Die Figuren zeigen:
-
1 eine schematische Darstellung eines beispielhaften Aufbaus einer Maschinensteuerung, insbesondere Robotersteuerung, -
2 eine schematische Darstellung einer beispielhaften Bewegungstrajektorie im Bereich einer bedingten Programmabzweigung, -
3 eine schematische Darstellung eines beispielhaften Verfahrens zum Überschleifen über eine bedingte Programmabzweigung hinweg, -
4 eine schematische Darstellung eines abgewandelten Verfahrens, bei dem die Zielpunkte der zweiten und weiteren Bewegungsanweisungen automatisch vor die bedingte Programmabzweigung geholt werden, und -
5 eine schematische Darstellung eines abgewandelten Verfahrens, bei dem die Zielpunkte der zweiten und weiteren Bewegungsanweisungen manuell vor der bedingten Programmabzweigung manuell in eine erste Bewegungsanweisung editiert werden.
-
1 a schematic representation of an exemplary construction of a machine control, in particular robot control, -
2 a schematic representation of an exemplary movement trajectory in the area of a conditional program branch, -
3 FIG. 2 is a schematic representation of an exemplary method for smoothing over a conditional program branch; FIG. -
4 a schematic representation of a modified method in which the target points of the second and further movement instructions are automatically fetched before the conditional program branch, and -
5 a schematic representation of a modified method in which the target points of the second and further movement instructions are manually edited before the conditional program branch manually in a first movement instruction.
In der
Die Antriebe
Die Steuervorrichtung
Das Maschinenbewegungsprogramm MP, das insoweit ein Roboterprogramm sein kann, enthält Bewegungsanweisungen z.B.
Ein Bahnplanungsprogramm
Im Falle von Bewegungsanweisungen, die grundsätzlich mit asynchronen Achsbewegungen oder mit synchronen Achsbewegungen durchgeführt werden können, wird die Bahn der Trajektorie zwar nicht in ihrem genauen Bahnverlauf exakt geplant, allerdings findet insoweit eine Bewegungsplanung statt, bei der die Geschwindigkeitsprofile und/oder die Beschleunigungsprofile der einzelnen Achsbewegungen durchaus geplant werden, wodurch sich in Abhängigkeit des jeweiligen Startpunktes und des angenommenem Zielpunktes bzw. der angenommenen mehreren aufeinanderfolgenden Zielpunkten ein reproduzierbarer stetiger Bahnverlauf BV ergibt, wie dies durch
In der
Ein Bewegungstrajektorien-Abschnitt BA stellt im Allgemeinen eine Teilstrecke der gesamten Bewegungstrajektorie dar. Im Speziellen werden erfindungsgemäß unter den jeweiligen Bewegungstrajektorien-Abschnitten
Die
Die
Das Verfahren umfasst die Schritte des Bestimmens der zwei oder mehreren Zielpunkte aller alternativen zweiten Bewegungsanweisungen
- - des Bestimmens des frühestens Zeitpunkts
t1 , an dem eine Überschleifbewegung beginnen muss, aus allen Startzeitpunktent1 ,t2 ,t3 der zwei oder mehreren alternativen zweiten BewegungsanweisungenP2 .1,P2.2 , zu denen die jeweils individuelle Überschleifbewegung spätestens beginnen muss, - - des Übermittelns des zu überschleifenden Stützpunktes der ersten Bewegungsanweisung
P1 und der zwei oder mehreren Zielpunkte der zwei oder mehreren alternativen zweiten BewegungsanweisungenP2.1 ,P2.2 an ein Bahnplanungsprogramm BP, das unter Berücksichtigung des zu überschleifenden Stützpunktes der ersten BewegungsanweisungP1 den zwei oder mehreren alternativen zweiten BewegungsanweisungenP2.1 ,P2.2 entsprechende wenigstens zwei oder mehrere vorausgeplante Bewegungstrajektorien-AbschnitteT2.1 ,T2.2 ,T2.3 erstellt, - - wenn das auslösende Ereignis für die bedingte Programmabzweigung
PA stattgefunden hat, Auswählen desjenigen vorausgeplanten Bewegungstrajektorien-AbschnittsT2.1 , welcher der dem auslösenden Ereignis entsprechenden alternativen zweiten BewegungsanweisungP2.1 der bedingten ProgrammabzweigungPA entspricht, auf die aufgrund des auslösenden Ereignisses abgezweigt wird, - - des Übermittelns des ausgewählten, vorausgeplanten Bewegungstrajektorien-Abschnitts
BA1 an die AblaufsteuerungAL zum Ausführen einer Bewegung der Maschine derart, dass sich der Bezugspunkt der Maschine dem ausgewählten, vorausgeplanten Bewegungstrajektorien-AbschnittBA1 entsprechend automatisch bewegt.
- - Determining the earliest time
t1 at which a smoothing movement must start, from all start timest1 .t2 .t3 of the two or more alternative second movement instructionsP2 .1,P2.2 to which the respective individual polishing must begin at the latest, - - transmitting the base to be looped of the first movement instruction
P1 and the two or more destination points of the two or more alternative second movement instructionsP2.1 .P2.2 to a path planning program BP, taking into account the base of the first motion instruction to be loopedP1 the two or more alternative second movement instructionsP2.1 .P2.2 corresponding at least two or more pre-planned movement trajectory sectionsT2.1 .T2.2 .T2.3 created, - - if the triggering event for the conditional branch
PA has taken place, selecting the pre-planned motion trajectory sectionT2.1 which is the alternative second motion statement corresponding to the triggering eventP2.1 the conditional program branchPA which is diverted to due to the triggering event, - - transmitting the selected, pre-planned movement trajectory section
BA1 to the process controlAL for performing a movement of the machine such that the reference point of the machine is the selected, pre-planned movement trajectory sectionBA1 moved accordingly automatically.
Wie aus
Ein Bestimmen des frühesten Zeitpunkts
Ein Übermitteln des zu überschleifenden Stützpunktes der ersten Bewegungsanweisung
Das Bahnplanungsprogramm BP kann somit eingerichtet sein, außer den zu überschleifenden ersten Stützpunkt der ersten Bewegungsanweisung
Die
Die
Die
Claims (13)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102018203078.2A DE102018203078B3 (en) | 2018-03-01 | 2018-03-01 | Method for automatically generating a movement trajectory and associated computer program product |
PCT/EP2019/053689 WO2019166229A1 (en) | 2018-03-01 | 2019-02-14 | Method for automatically generating a movement trajectory and associated computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102018203078.2A DE102018203078B3 (en) | 2018-03-01 | 2018-03-01 | Method for automatically generating a movement trajectory and associated computer program product |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102018203078B3 true DE102018203078B3 (en) | 2019-05-09 |
Family
ID=65440972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102018203078.2A Active DE102018203078B3 (en) | 2018-03-01 | 2018-03-01 | Method for automatically generating a movement trajectory and associated computer program product |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE102018203078B3 (en) |
WO (1) | WO2019166229A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3797937A1 (en) * | 2019-09-27 | 2021-03-31 | Siemens Aktiengesellschaft | Stopping of a production machine on a collision-free web |
WO2021110254A1 (en) * | 2019-12-04 | 2021-06-10 | Abb Schweiz Ag | Method of controlling industrial actuator, control system and actuator system |
DE102021204004B3 (en) | 2021-04-21 | 2022-07-07 | Kuka Deutschland Gmbh | Creating a robot program and operating a robot |
DE102021125628B3 (en) | 2021-10-04 | 2022-10-13 | Physik Instrumente (PI) GmbH & Co KG | Speed specifications for determining the trajectory of kinematics |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2022608A2 (en) | 2007-07-31 | 2009-02-11 | Rockwell Automation Technologies, Inc. | Improved blending algorithm for trajectory planning |
DE102007056117A1 (en) | 2007-11-15 | 2009-05-28 | Kuka Roboter Gmbh | Industrial robots and method for controlling the movement of an industrial robot |
DE102014226789A1 (en) | 2014-12-22 | 2016-07-07 | Kuka Roboter Gmbh | Method and manipulator arrangement for conditionally stopping at least one manipulator on a path |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6216058B1 (en) * | 1999-05-28 | 2001-04-10 | Brooks Automation, Inc. | System of trajectory planning for robotic manipulators based on pre-defined time-optimum trajectory shapes |
WO2008119383A1 (en) * | 2007-03-30 | 2008-10-09 | Abb Technology Ab | Method and apparatus for programming an industrial robot |
DE102015204641B4 (en) * | 2014-06-03 | 2021-03-25 | ArtiMinds Robotics GmbH | Method and system for programming a robot |
EP2965873B1 (en) * | 2014-07-10 | 2020-10-07 | Siemens Aktiengesellschaft | Method for automatically controlling a manipulator |
-
2018
- 2018-03-01 DE DE102018203078.2A patent/DE102018203078B3/en active Active
-
2019
- 2019-02-14 WO PCT/EP2019/053689 patent/WO2019166229A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2022608A2 (en) | 2007-07-31 | 2009-02-11 | Rockwell Automation Technologies, Inc. | Improved blending algorithm for trajectory planning |
DE102007056117A1 (en) | 2007-11-15 | 2009-05-28 | Kuka Roboter Gmbh | Industrial robots and method for controlling the movement of an industrial robot |
DE102014226789A1 (en) | 2014-12-22 | 2016-07-07 | Kuka Roboter Gmbh | Method and manipulator arrangement for conditionally stopping at least one manipulator on a path |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3797937A1 (en) * | 2019-09-27 | 2021-03-31 | Siemens Aktiengesellschaft | Stopping of a production machine on a collision-free web |
WO2021058201A1 (en) * | 2019-09-27 | 2021-04-01 | Siemens Aktiengesellschaft | Stopping a production machine on a collision-free path |
CN114450644A (en) * | 2019-09-27 | 2022-05-06 | 西门子股份公司 | Stopping of production machines on collision-free trajectories |
WO2021110254A1 (en) * | 2019-12-04 | 2021-06-10 | Abb Schweiz Ag | Method of controlling industrial actuator, control system and actuator system |
DE102021204004B3 (en) | 2021-04-21 | 2022-07-07 | Kuka Deutschland Gmbh | Creating a robot program and operating a robot |
DE102021125628B3 (en) | 2021-10-04 | 2022-10-13 | Physik Instrumente (PI) GmbH & Co KG | Speed specifications for determining the trajectory of kinematics |
Also Published As
Publication number | Publication date |
---|---|
WO2019166229A1 (en) | 2019-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102018203078B3 (en) | Method for automatically generating a movement trajectory and associated computer program product | |
DE102015004932B4 (en) | Simulation device for several robots | |
DE102009048252B4 (en) | In a numerically controlled machine built-in collision prevention device | |
DE102018122376B3 (en) | Method and device for collision-free motion planning of a manipulator | |
DE102019118637B4 (en) | AUTOMATIC PATH GENERATION DEVICE | |
DE102017004366B4 (en) | Numerical control device | |
DE102009004285A1 (en) | Method and device for optimizing, monitoring or analyzing a process | |
EP2212753A1 (en) | Method for allowing a manipulator to cover a predetermined trajectory, and control device for carrying out said method | |
DE102014103370B4 (en) | Method and device for discrete-time control of a manipulator | |
DE3317263A1 (en) | MANIPULATOR WITH ADAPTIVE SPEED CONTROLLED RAILWAY MOVEMENT | |
DE102011108282A1 (en) | Numerical control for a multi-axis machine for machining a tilted working plane | |
DE102006061752A1 (en) | Method for programming robot, involves manual starting of space points with robot, which carries determined force or torque in started space point, where force or torque is stored | |
EP2303521A1 (en) | Industrial robot and path planning method for controlling the movement of an industrial robot | |
EP0530401B1 (en) | Method to start position dependant operations during machining with a robot or machine tool | |
DE69610284T2 (en) | PROCESS FOR ROBOT CONTROL | |
DE102010064308A1 (en) | Control for a machine tool | |
EP2072195B2 (en) | Method for controlling the movement of a robot within a work room | |
EP2796952A1 (en) | Numerical controller capable of changing the sub-program | |
EP2209596B1 (en) | Industrial robot and method for controlling the movement of an industrial robot | |
DE102014226789A1 (en) | Method and manipulator arrangement for conditionally stopping at least one manipulator on a path | |
DE69420170T2 (en) | Method and device for a numerically controlled industrial machine | |
DE102020124734A1 (en) | SIMULATION DEVICE | |
EP2656980A2 (en) | Method and means for determining and/or controlling a manipulator process | |
DE102017009751A1 (en) | Numerical control device | |
DE102004019653A1 (en) | simulation device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R082 | Change of representative |
Representative=s name: BOESS, DIETER ALEXANDER, DIPL.-ING. (UNIV.), DE |
|
R020 | Patent grant now final |