Method, machine control and computer program product for determining an automatically navigated path

CN117940264BActive Publication Date: 2026-09-25ARBURG GMBH & CO KG
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
CN202280059368.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-09-01
Filing Date
2022-09-01
Publication Date
2026-09-25
Estimated Expiration
2042-09-01

AI Technical Summary

Technical Problem

这也意味着,无法完全预防由于碰撞而造成的损坏

Benefits of technology

[0053]在所附权利要求和下面对优选的示例性实施方式的描述中,可以发现另外的优点。权利要求中单独列出的特征能够以技术上可行的方式彼此组合,并且能够通过来自说明书的解释性事实且通过来自附图的细节加以补充,在附图中,示出了本公开的进一步变体。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117940264B_ABST
    Figure CN117940264B_ABST
Patent Text Reader

Abstract

In a method for determining at least a part of a path (12) connecting at least one starting point (14) to at least one ending point (16) in a space (R) for at least one automated navigation of a movable component through a space on a machine (100), at least one model of the movable component and the machine is provided, information about the geometry is collected, the current position is determined, and these are related to each other to create a graph (10). An algorithm is used to calculate the path (12), after which collision-free automated navigation along the path (12) is performed after a collision check has been performed. This facilitates the operator to adjust the machine cycle while also bringing improvements in terms of travel path, cycle time, process reliability, energy and wear.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Citations of relevant applications

[0002] This application relates to and claims priority to German patent application 10 2021 122 606.6, filed on 1 September 2021, the entire disclosure of which hereby expressly constitutes part of the subject matter of this application. Technical Field

[0003] This disclosure relates to a method for determining at least a portion of a path in space connecting at least one starting point to at least one ending point, for at least one movable component to navigate through space on a machine from the starting point to the ending point (to remove, transfer, and / or deposit molded articles), the machine being an injection molding machine for processing plastics and other plasticizable materials, or a 3D printer, and to a computer program product.

[0004] To explain this disclosure, some terms are first defined as follows.

[0005] In the context of this application, "shaft" should be understood to mean, for example, a movable part of a machine, system, system component, and / or peripheral device, which can be actuated by a drive (e.g., a motor). Taking an injection molding machine as an example, the shaft would be, for example, the spindle of a spindle system.

[0006] In the context of this application, "machine" should be understood to mean at least all the structurally necessary parts for the machine to operate, such as the clamping unit (where the injection mold is housed), the injection molding unit, the machine base, and the associated drive on an injection molding machine. At least the area of ​​space where the machine or its parts may collide with movable components (e.g., peripheral devices) is relevant to automated navigation. A specific example here is a grippered robotic arm moving in the mold clamping space between the mold opening support members of the clamping unit. The robotic arm and / or gripper is capable of performing various movements, such as tilting, rotating, and rotational movements. These movements can change the vector of the robotic arm and / or gripper. The machine can have at least one machine part, such as a tool, mold cavity, molded article, gate, moving platen, fixed platen, and / or injection unit. Furthermore, the machine can have other machine parts and / or components. These machine parts are also movable, and preferably, can also be automatically navigated in space using the proposed method. Preferably, the machine parts can then be automatically navigated along a path calculated using an algorithm, so as to avoid collisions with other machine parts, moving parts and / or machines.

[0007] When referring to a machine in the following text, it always means the machine itself, and where applicable, refers to the machine parts of the machine.

[0008] In the context of this application, "movable part" should be understood as an element that can move relative to a machine, such as a peripheral device. It can be a peripheral device as well as a robot arm, gripper, robot, ejector, or other movable part of the machine that moves in space in a way that avoids collision with the machine, especially if the machine and / or machine parts also move. Background Technology

[0009] Today, many or all of the steps in the injection molding process are automated. Not only is the complete control of the injection molding machine typically fully automated (such as the closing of the mold platen, the application of pressure, and the opening of the mold platen), but the removal, transfer, and / or deposition of the molded part are also fully automated, for example by robots. Several axes, such as the vertical axes of peripheral devices (e.g., robots or robotic grippers), are typically present in the machine space and / or tooling space, such as the axes of a robot, which may interfere with or collide with each other during the injection molding process, for example, when removing the molded part. To achieve advantageously high productivity, the shortest possible cycle time is desired, which is also determined, for example, by the speed at which the molded part is removed by the peripheral device.

[0010] Plastic processing machines and systems within them, for example, capable of interactively creating robot sequences, are known. For example, a so-called teaching function can be used to input or “teach” sequence positions (e.g., points on a path), and thus, for example, automatically input the sequence positions into the robot sequence controller (see, for example, WO 2009 / 080296 A1).

[0011] Systems are also known in which envelope geometry information from the robot and tool is used in sequence to perform quasi-static collision checks with the machine at endpoints and teach points (e.g., robot arms or robot grippers).

[0012] Document DE 10 2012 103 830 A1 discloses a method for preventing a pair of robots with a shared work area from blocking each other. Each robot is controlled by an associated program. During simultaneous program execution, the robots occupy a portion of the shared work area. Interference areas where the shared work areas partially overlap are identified. The interference areas are analyzed, and locations where robot blocking may occur are identified. To avoid blocking, instructions for at least one condition to avoid blocking are executed during program execution.

[0013] Document DE 690 27 634T2 discloses a collision detection method for a multi-robot device with at least two components. For collision detection, the collision avoidance problem is divided into a collision detection phase and an avoidance (evasion maneuver) phase. This problem can be further simplified by dividing the 3D collision detection problem into 2D XY detection and 1D height comparison.

[0014] To determine time-efficient, collision-free paths, EP 1 672 449 A1 provides a machine control with a dataset containing a collision parameter of 0 or 1 at each discrete coordinate point, and this machine control is used for every combination of discrete tool and workpiece models. The collision parameter indicates whether the constellation associated with the corresponding coordinate point (i.e., the relative position of the workpiece and tool) results in a collision or spatial overlap between the tool and workpiece. The dataset forms a lookup table that can be used to examine a given path or to progressively expand or build a path.

[0015] WO 2009 / 024783 A1 discloses a computer-implemented method for determining movement between a component and a device interacting with the component. Geometric data associated with the component and the device is received, and using optimization criteria, the geometric data is used to determine how the device and component can move relative to each other. In one exemplary embodiment, a model of an object (turbine blade) is loaded, and a surface of the object is selected, generating multiple points on that surface. These points are then approached by a measuring device in a path-optimized manner.

[0016] US2017 / 0090454 A1 discloses a method for generating positioning travel data for a CNC machine. Based on machine kinematics, machine axis travel limits, machine axis speed and acceleration limits, and machine positioning methods, an optimized positioning path is generated, wherein multiple possible paths for repositioning the tool from a first configuration to a second configuration are determined.

[0017] DE 10 2004 027 944 A1 discloses a method for protecting at least two robots from collision, in which the movement of the robots is checked for possible collisions and interlocks are automatically inserted into the movement sequence.

[0018] The described functionalities have facilitated the programming of robot sequences and helped avoid errors. However, all the individual support systems described above have limitations: they are incomplete and inaccurate to some extent. Therefore, coordination with the operator is still required during programming. This also means that damage due to collisions cannot be completely prevented.

[0019] The goal is not simply to improve robot sequences by combining various individual functions as described, but to create conditions for dynamic, collision-free autonomous navigation by adopting entirely new approaches. Summary of the Invention

[0020] This disclosure provides a method for determining at least a portion of a path for at least one automated navigation system, the method supporting operator adjustments to machine cycles, and the method being optimized in terms of travel path, cycle time, process reliability, energy, and wear.

[0021] A method for determining at least a portion of a path in space by a peripheral device (e.g., a robot or robotic gripper) connecting at least one starting point to at least one ending point, for at least one movable component to navigate through at least one space on a machine, such as an injection molding machine or a 3D printer for processing plastics and other plasticizable materials, configured to remove, transfer, and / or deposit molded articles, the method comprising the following steps.

[0022] As defined at the outset, the machine can have at least one machine part, such as a tool, mold cavity, molded article, gate, moving platen, fixed platen, and / or injection unit. The machine may also have other machine parts and / or components, such as those of an injection molding machine or a 3D printer. The machine parts are movable, and preferably, can also be automatically navigated in space using the proposed method. Preferably, the machine parts are then automatically navigated along a path calculated using an algorithm, ensuring that they do not collide with other machine parts, peripheral devices, and / or machines.

[0023] When referring to a machine in the following text, it always means the machine itself, and where applicable, refers to the machine parts of the machine.

[0024] "Movable parts" are components that can move relative to a machine, such as peripheral devices. Such parts can be, for example, peripheral devices and machine grippers, robots, ejectors or other movable parts that move in space so as to avoid collisions with the machine, especially if the machine is also moving.

[0025] First, at least one model is provided, such as a data model of at least one movable part (e.g., a peripheral device), as well as the machine and the molded article. Depending on whether the machine has machine parts, preferably, corresponding models of the machine parts may also be provided. For example, the model can be provided as a file to a computer, program, or controller. The model can also be provided via a network, or the model may already exist on the machine. The model may contain information about the geometry of the movable parts and / or the machine. A geometric model (such as Collada) can be used to describe the geometry of the model.

[0026] In a further step, geometric information about the space and at least one movable component, as well as the machine and the molded article, is collected. Depending on whether the machine has machine parts, preferably, corresponding geometric information can also be collected for the machine parts. For example, geometric information can be obtained from the model, or the geometric information is contained within the model. For example, the position of the moving platen can be clearly determined at any time using the actual value of the platen position known to the machine controls. This, for example, produces the geometric dimensions of the individual movable component, the machine, and (if applicable) machine parts in terms of length, width, and height. Furthermore, it is preferably conceivable to use sensors to detect the geometric information.

[0027] In the next step, the current spatial position of at least one movable component and the machine and molded article is determined. Depending on whether the machine has machine parts, preferably, the current spatial position of the machine parts can also be determined. Position refers, for example, to location and / or orientation. For example, the spatial position (e.g., in a Cartesian coordinate system) of an axis can be clearly determined using a certain angle relative to zero position. Therefore, the orientation of an axis in space (e.g., of a robot) can also be detected, for example. Preferably, sensors can also be used here to detect the current position.

[0028] For example, a computer or machine control can correlate the geometry and current position in space of at least one movable part with the geometry and current position in space of the machine and the molded article to generate at least one graphic representation of the space. Depending on whether the machine has machine parts, preferably, the geometry and current position of the machine parts can also be correlated with the geometry and current position of at least one movable part and the machine to generate a graphic representation of the space. The geometry and current position are used to determine the arrangement of the movable parts (such as peripheral devices) and the machine and (if applicable) machine parts in space, allowing a "space map" to be generated as a graphic representation. For example, the movable parts, machine, and (if applicable) machine parts can be represented as obstacles in the graphic representation.

[0029] In a further step, at least one algorithm is applied to the graph to calculate the path, wherein at least one optimization is additionally performed to calculate the path.

[0030] In a further step, at least one collision check is performed along the path between at least one movable part, the machine, and the molded article. Depending on whether the machine has machine parts, preferably, machine parts may also be considered in the collision check. For example, collisions between peripheral devices and the machine or machine parts may occur during the removal of the molded article. Collision checks are performed along the path, for example, by checking for obstacles along the path.

[0031] Preferably, collision checks are performed in real time. If the collision check reveals an obstacle along the path, for example, a new calculation of the path is performed after a movement instruction is given to the movable part, the machine, and / or (if applicable) machine parts. If the collision check indicates no obstacle along the path, in a further step, automatic navigation is performed along the path for at least one movable part, wherein at least one movable part moves relative to the machine.

[0032] During the injection molding process, movable parts (such as peripheral devices), machines, and / or (if applicable) machine parts (such as parts of the injection mold) typically move relative to each other, necessitating adjustments to the paths used for automated navigation. To advantageously improve safety and user-friendliness, an algorithm is applied while the graphic is dynamically altered due to the movement of at least one movable part and / or machine and / or molded article. Depending on whether the machine has machine parts, this algorithm can preferably be applied while the machine parts are dynamically altered. For example, if a movable part, machine, and / or (if applicable) machine part moves in a manner that alters the graphic, creating an obstacle along the current path, the movement of the movable part, machine, and / or (if applicable) machine part stops on the current path with the obstacle and continues on a newly calculated path. Thus, each movement can alter the path on a "map," described by other existing elements, and movable parts can move on this "map." This also applies to elements used in the 3D printing process, such as material feed units, ejector heads, fiber feed units, structural supports, and the object to be produced.

[0033] Because unforeseen events may occur during the production process, in the event of changes in the production sequence, the method is simulated in real time. The algorithm reacts to changes in the position and / or velocity of at least one movable part (such as peripheral devices) and / or the machine and / or the molded article by performing at least one additional collision check and calculating at least one new path. The algorithm is then reapplied using the current actual position as the starting point, wherein:

[0034] Predictive calculations, collision checks, and automatic navigation are performed. In other words, during movement, it is possible, for example, that an obstacle exists along the path for a certain period of time, but it is also possible that, due to the movement of movable parts, machines, molded articles, and / or (if applicable) machine parts, the obstacle disappears from the path again before the movable parts, machines, molded articles, and / or (if applicable) machine parts encounter or collide with the obstacle. Advantageously, this means that there is no need to change direction, which avoids shocks, for example, due to changes in direction.

[0035] Depending on whether the machine has machine parts, the algorithm can preferably also react to changes in the position and / or speed of machine parts by performing at least one additional collision check and / or by calculating at least one new path.

[0036] This allows operators to adjust machine cycles, resulting in improvements in travel path, cycle time, process reliability, energy consumption, and wear. It also allows for the determination of the shortest / fastest travel path with minimal computation time and memory requirements. Another advantage is collision-free travel paths, where manual programming and parameter setting by an individual using the machine and / or robot controls is either unnecessary or largely automated.

[0037] This allows for a more advantageous response to changes in the same manner as automated navigation in road traffic, except that the graphics (i.e., the map) change here. For example, stored algorithms can react to changes in actual position values ​​and axis velocities. For instance, the operator no longer needs to consider the robot system when adjusting machine cycles. The robot system's sequence is adjusted automatically and dynamically. This can be done during the current cycle because the high performance of this process means that the current actual position can be used as a new starting point, and changing obstacles (e.g., moving half-modules) can be readjusted to determine the optimal path to the endpoint.

[0038] This means that if parameters related to autonavigation change during the current loop, the path can be adjusted. For example, the method records whether the graph has "changed," such as changes in obstacles, during autonavigation. If the change results in obstacles on the path, the algorithm is reapplied based on the current position, and a new path is calculated. If the obstacles do not affect the current path, no new calculation is performed.

[0039] For advantageous, accurate, and precise navigation, preferably, in each case regarding its position in space, at least one contact point is provided for at least one movable part and at least one contact point of the machine, logically coupled to each other to provide a model of at least one movable part and the machine. Depending on whether the machine has machine parts, preferably, at least one contact point of the machine parts can be provided, and this at least one contact point can be coupled to other contact points. For example, the injection mold can be clearly described in terms of the position and orientation (alternating zero-position angle) in space of at least one contact point at the attachment surface to the injection mold (e.g., the attachment surface where the next machine part and / or peripheral device can be automatically coupled). For example, this point is logically linked to the current actual value of the moving platen and is automatically tracked. By analogy with electrical engineering, this contact point can be referred to as a "socket". For example, a fixed platen can also have at least one point relative to its position and orientation and angle in space, in the case of a fixed platen, where this at least one point is stationary.

[0040] For example, the geometry of a robot (as a movable part) can also be referred to as a model, and its position relative to the machine can be known. In the simplest case, the robot is geometrically and / or logically coupled to its base or feet (which refers to the "plug" and "socket" functions described above), for example, coupled to a fixed template of the machine. The robot's vertical axis has a flange plate to which a molding fixture, for example, is coupled. The flange plate can have additional tilt, swivel, and / or rotation axes. This means that the logical coupling point (i.e., the "socket") used to couple the fixture follows the travel, tilt, swivel, and / or rotational movement of the flange plate. The molding fixture, for example, can be logically connected to the fixture flange through its model and through defined coupling points (i.e., the "plug"), and can be geometrically tracked by any travel, tilt, and / or rotational movement. The fixture then has at least one coupling point (e.g., the center of a suction cup surface), which in turn can accommodate the molded article as a logical "socket." The position of the fixture relative to the current path is also relevant. In some orientations, strong acceleration can cause the molded article to slip on the clamp's suction cups; in extreme cases, the clamp loses the molded article. Depending on the clamp orientation, the acceleration can preferably be limited accordingly. During the injection molding process, after the molding of the molded article is complete, the mold is opened. Preferably, the target position of the clamp can be geometrically determined to remove the molded article, wherein all possible collision edges and interfering geometries are referred to as obstacles.

[0041] To advantageously obtain a quick and reliable check of the couplerable model, preferably, at least one list is associated with at least one connection point, based on which the couplerable model is described and / or listed. For example, a movable part of an injection mold is coupled to a movable pressure plate. The injection mold is also called a model and can be obtained digitally, for example, in a machine. This part of the digital model of the injection mold (movable half-mold) now has a defined coupling point, which is precisely defined in terms of its position and orientation in space within the model. For example, this point can be correspondingly referred to as a "plug". The movable half-mold with the contact point "plug" is listed in the coupling list at, for example, at a "socket" on a movable tool pressure plate. Preferably, for example, by using a "plug" or "socket", the movement of peripheral devices and / or machine parts coupled to the "plug" or "socket" can also be tracked using the movement of peripheral devices and / or machine parts.

[0042] To advantageously and accurately calculate the path, preferably, the space is subdivided into a cubic grid used to generate at least one graphic. Preferably, the entire space is subdivided into a cubic grid used to generate at least one graphic. The space may at least partially include at least one movable component and / or machine. Depending on whether the machine has machine parts, preferably, the space may also contain at least some of the machine parts. In the graphic, for example, the movable component, machine, and / or (if applicable) machine parts are then shown as obstacles. Preferably, other parts of the space without obstacles can be graphically represented in a different manner than the travel area (e.g., using different colors).

[0043] Furthermore, preferably, the diagonal path can be described independently of, for example, the grid size of the space divided into cubes. For example, a path movement with two axes and a defined common path velocity can be used to traverse the diagonal. In this case, it is advantageous not to perform several separate movements, but rather to perform a single movement from the starting point to the ending point, wherein the axes move synchronously relative to each other.

[0044] Preferably, at least one Greedy Search, Dijkstra's algorithm, and / or an A* algorithm utilizing at least one open list is used as the algorithm. Depending on the graph, this advantageously produces the shortest path from the starting point to the ending point.

[0045] To efficiently calculate paths, preferably, at least jump point search and / or open list management are used as optimizations.

[0046] To optimize the management of open lists, it is preferable to use a binary heap to manage them.

[0047] To provide an advantageous overview and enhance security, the method is preferably simulated in advance. For example, it is further advantageous to simulate sequence and path creation in advance on a computer model, and the sequence and path creation can then be visualized.

[0048] To ensure favorable improvements in computation time and speed, preferably, at least two different variants of the method are simulated and compared with each other relative to different criteria. Thus, a sequence of data on the current tool dataset can be created. Here, different variants can be simulated and compared with different criteria (e.g., energy, wear, travel path, and / or cycle time).

[0049] To facilitate advantageous remote monitoring of the production process, preferably, a graphic and / or model of at least one movable part and / or machine is displayed. Depending on whether the machine has machine parts, preferably, the machine parts can be displayed graphically.

[0050] The described method can be performed using several tools, such as multi-cavity tools and / or multi-part tools on an injection molding machine, which are not directly mounted on a moving platen but, for example, on a rotating unit. These tools are then stored as models, with the model's position precisely defined by "plugs" and "sockets." Multi-part tools can also be used, where the preliminary molded part is transferred via a robotic system. Insert parts can also be used, inserted via a robotic system using a jig. A cube tool ("cube") and its special form ("reverse cube") can also be used. The cube tool still has at least one axis of rotation and several insertion or removal surfaces; in the special form of the cube tool, the cube is again divided and rotated in opposite directions. Each half of the cube is described separately here.

[0051] This disclosure also provides a machine control for a machine (an injection molding machine for processing plastics and other malleable materials, or a 3D printer). To enable the operator to advantageously adjust the machine cycle and to improve aspects such as travel path, cycle time, process reliability, energy consumption, and wear, the machine control is configured, set, and / or constructed to perform the methods described above.

[0052] This disclosure also provides a computer program product. In order to achieve advantages in terms of travel path, cycle time, process reliability, energy consumption, and wear and tear, the computer program product stores program points on a computer-readable medium for performing the methods described above, in relation to path calculation.

[0053] Further advantages can be found in the appended claims and the following description of preferred exemplary embodiments. Features individually listed in the claims can be combined with each other in a technically feasible manner and can be supplemented by explanatory facts from the specification and by details from the drawings, in which further variations of this disclosure are shown. Attached Figure Description

[0054] The present disclosure will be explained in more detail below with reference to exemplary embodiments shown in the accompanying drawings, in which:

[0055] Figure 1 A machine with movable parts is shown.

[0056] Figure 2 A machine with movable parts is shown.

[0057] Figure 3 The image shown is a graph after running the Greedy Search program.

[0058] Figure 4 The graph after running Dijkstra's algorithm is shown.

[0059] Figure 5 The flowchart of the A* algorithm is shown.

[0060] Figure 6 The graph after running the A* algorithm is shown.

[0061] Figure 7a , Figure 7b A comparison between symmetric path and jump point search is shown.

[0062] Figures 8a to 8c A comparison of reducing the number of neighbors is shown.

[0063] Figure 9 The graph after running the jump point search is shown.

[0064] Figure 10 The representation of a binary heap using an array is shown.

[0065] Figure 11 A graph showing path movement is displayed. Detailed Implementation

[0066] The present disclosure will now be described in more detail by way of example and with reference to the accompanying drawings. However, the embodiments are merely examples and are not intended to limit the concept of the present disclosure to specific devices. Before describing the invention in detail, it should be noted that the present disclosure is not limited to the corresponding components of the device and the corresponding method steps, as these components and methods can vary. The terminology used herein is intended to describe particular embodiments only and is not used in a limiting manner. Furthermore, when the singular or indefinite article is used in the specification or in the claims, this also refers to multiple such elements unless the context clearly indicates otherwise.

[0067] In one exemplary embodiment, in a method for determining at least a portion of a path 12 for at least one automatic navigation of at least one movable part (such as a peripheral device) through a space on a machine 100, connecting at least one starting point 14 to at least one ending point 16 in space R, the machine being an injection molding machine for processing plastics and other plasticizable materials, or a 3D printer, configured for removing, transferring, and / or depositing molded articles, in a first step, at least one model of the at least one movable part and the machine 100 and the molded article 122 is provided. For example, the model may be provided as a digital model.

[0068] Machine 100 may have at least one machine part, such as a mold, mold cavity, molded article, gate, movable pressure plate 110, fixed pressure plate 112, and / or injection unit. Additionally, the machine may have other machine parts and / or components from an injection molding machine or 3D printer. For example, machine parts may also be movable, such as movable pressure plate 110.

[0069] Depending on whether the machine has machine parts, preferably, models of machine parts can be provided.

[0070] "Movable parts" should be understood as elements that can move relative to the machine, such as peripheral devices. These parts can be composed of peripheral devices as well as the machine's grippers, robots, ejectors, or other movable parts, which move in space R such that collisions with the machine are avoided, especially if the machine also moves. Figure 1 and Figure 2 The vertical shaft 102 is shown as an example of a movable component.

[0071] In a further step, geometric information of space R, as well as that of at least one movable component and machine 100, is collected. This geometric information can be derived, at least partially, from one or more models. For example, geometric information can also be collected via sensors.

[0072] Depending on whether machine 100 has machine parts, preferably, geometric information of the machine parts can be collected.

[0073] Furthermore, in a further step, the current position of at least one movable part, machine 100, and molded article 122 in space R is determined. For example, the current position can be detected by a sensor or by the actual position value of at least one movable part and / or machine.

[0074] Depending on whether machine 100 has machine parts, preferably, the current position of one or more machine parts can be determined.

[0075] In a further step, the geometric information of at least one movable component and its current position in space R are correlated with the geometric information of machine 100 and its current position in that space to generate at least one graphic 10 of space R.

[0076] Depending on whether the machine has machine parts, preferably, the geometric information of the machine parts and their current position can also be used to generate graphic 10. For example, this produces something like... Figure 3 The figure 10 shown here, in which, for example, machine 100, movable parts, and existing machine parts are shown as obstacles 24. For simplicity, Figure 3 Figure 10 in the figure is shown only as a two-dimensional figure. However, in principle, the figure can be represented from other and / or several dimensions, such as a one-dimensional or three-dimensional figure.

[0077] In a further step, path 12 is calculated by applying at least one algorithm to graph 10, wherein at least one optimization is also performed to calculate path 12.

[0078] In a further step, at least one collision check is performed along path 12. Preferably, the collision check is performed in real time.

[0079] Then, in a further step, at least one movable part is automatically navigated along path 12.

[0080] Preferably, path calculation and automatic navigation along the path can also be performed on the machine parts of machine 100. For example, in addition to the automatic navigation of movable parts (e.g., peripheral devices), automatic navigation of one or more machine parts can also be performed.

[0081] In an exemplary embodiment, the algorithm is applied when the map 10 dynamically changes due to the movement of at least one movable component and / or machine 100 and / or molded article 122. Depending on whether the machine includes machine parts, the algorithm may preferably be applied when the map 10 dynamically changes due to the movement of at least one machine part. For example, during autonomous navigation, other machine parts, movable components, and / or the machine may also move relative to each other. Due to this movement, the map 10 (i.e., the "map") may change, and thus obstacles 118 may appear on the already calculated path 12. The algorithm automatically identifies this change in the map 10 and records whether there is an obstacle on the path 12. If there is an obstacle, the algorithm is applied again, where the current actual position is now used as the starting point 14. Thus, if a change in parameters related to autonomous navigation occurs, the path 12 can be adjusted in the current cycle.

[0082] exist Figure 1 In an exemplary embodiment, machine 100 is shown having a movable component, such as a vertical axis 102, which is currently removing molded article 122. The vertical axis 102 is designed to remove the molded article 122 in a collision-free, automatically navigated manner and can move in various directions 106, 108, depending on... Figure 1 In an exemplary embodiment, movement is made to the left, right, up, and down. In principle, it is conceivable that the vertical axis 102 can also preferably perform tilting, rotating, and rotational movements, and thus can occupy any position in space. This allows the vertical axis 102 to have any number of vectors.

[0083] Machine 100 also includes a mold clamping unit having a movable pressure plate 110 and a fixed pressure plate 112, with a mold clamping space sandwiched between the movable and fixed pressure plates. This mold clamping space is used to receive a mold having two half-molds 114 and 116. The movable pressure plate 110 is movable in direction 104, according to… Figure 1 In the exemplary embodiment, movement is to the left and right. In principle, it is also conceivable that the fixed plate 112 can move in one direction (e.g., in direction 104). Movement of the movable plate 110 also causes the tool half 116 to move. Thus, the space R in which the machine 100 is located has obstacles 118 and a travel area 120, in which collision-free automatic navigation is either impossible or possible, respectively.

[0084] Figure 2The movement of the vertical axis 102 (as a movable component) and the movable template 110 is shown. In this figure, the vertical axis 102 moves upward along direction 106 together with the molded article 122. The movable template 110 has moved to the right along direction 104. For automatic navigation, these movements correspondingly create new obstacles 118 and travel areas 120.

[0085] Predictive calculations, collision checks, and / or automatic navigation are performed. For example, obstacle 118 appears along the path for only a certain period of time and disappears from the path again before a movable part, machine 100, molded article, and / or (if applicable) machine parts will collide with it. Advantageously, this means that there is no need to change direction, which avoids impacts, for example, due to changes in direction.

[0086] In another preferred exemplary embodiment, regarding the location of at least one contact point in space R, at least one contact point is provided for each of at least one movable part and machine 100, wherein the contact points are logically coupled to each other to provide a model of at least one movable part and machine. Depending on whether the machine has machine parts, preferably, in each case, contact points for one or more machine parts can be provided, which can be logically coupled to other contact points. For example, a movable portion of an injection mold can be coupled to a movable pressure plate 110. The injection mold is also referred to as and used as a model. For example, a movable portion (movable tool half 116) of a model of an injection mold has a defined contact point, in which the position and orientation of the contact point in space R are precisely defined in the model. This point can be referred to as a "plug".

[0087] In another preferred exemplary embodiment, at least one list is associated with at least one contact point, and the at least one list describes and / or lists the coupling model. In the example above, in order to be held together with the movable tool half 116, it is listed in the list, wherein its contact point “plug” is located in the list at the “socket” of the movable pressure plate 110.

[0088] According to Figure 3 In another preferred exemplary embodiment, space R is divided into a cubic grid 18, which is used to generate at least one graphic 10. Space R may at least partially include at least one movable component and / or machine 100. Depending on whether the machine includes machine parts, preferably, space may at least partially include machine parts, for example, according to Figure 3 The machine part is shown as obstacle 24 in Figure 10. Figure 3 For simplicity, only a plane with obstacles 24 in space is shown as Figure 10. However, the figure can be three-dimensional in principle.

[0089] In another preferred exemplary embodiment, at least one Greedy Search algorithm, Dijkstra's algorithm, and / or an A* algorithm utilizing at least one open list is used as the algorithm.

[0090] The following illustrates how to compute the path 12 between any two points 14 and 16 in graph 10. The shortest path problem is frequently encountered in the field of artificial intelligence and is often associated with considerable complexity; the goal is to find the optimal possible path 12 through graph 10. Pathfinding involves finding the path 12 from the starting point 14 to the ending point 16 in graph 10. For the proposed method, graph 10 must satisfy the property that all edges of graph 10 are positively weighted. For this purpose, the machine space is divided into a cubic mesh 18, which are also called nodes 18. Based on a mesh-like model of space R (which is used as graph 10), the shortest possible path 12 from the starting point 14 to the ending point 16 is sought. Furthermore, the search of graph 10 is implicit. Therefore, when each node is input, for each node 18, it must be checked whether the node 18 is a valid location for the robot system or represents an obstacle 24.

[0091] The Greedy Search algorithm is an informed search method and requires an estimation function (heuristic). This estimates the distance from any node 18 to the endpoint 16. For example, it can be envisioned that the robot should move axis-by-axis. Therefore, the Manhattan distance can be used as a heuristic function, for example. However, the robot cannot move linearly only in the X, Y, or Z directions, or it cannot move axis-by-axis only. Regardless of the mesh size, a cube can also be used, for example, to describe the diagonal path. In principle, in another preferred exemplary embodiment, the robot can also move at a defined common path speed along a path 130, for example, with two axes 132, 134 (e.g., Y and Z), following a diagonal path (…). Figure 11 ).exist Figure 11 In the scenario shown, for example, the robot does not perform 14 individual movements, but instead performs one movement from starting point 14 to ending point 16, where the two axes move synchronously with each other.

[0092] The search begins at starting point 14, which is then expanded. During expansion, a heuristic is used to check the estimated distance to ending point 16 for all nodes 18 reachable from starting point 14. Additionally, a reference to the currently expanded node 18 is stored for each visited node 22 (see [link to relevant documentation]). Figure 3(See arrow 26). Therefore, each visited node 22 knows its predecessor. Next, the node with the best heuristic is expanded. The most advantageous node is iteratively expanded until the endpoint 16 is found. Therefore, the node 18 that is expected to yield the best result in the selection is always chosen as the next node. Once a decision is made, it is not analyzed or modified from a global perspective.

[0093] Once the end point 16 is found, the path 12 from the end point 16 to the start point 14 can be easily traced through the previous node stored in node 18. This path 12, in reverse order, is the search path 12 from the start point 14 to the end point 16. One advantage of the Greedy Search algorithm is its ease of configuration and efficient implementation. It solves problems quickly, but it is not always optimal. Figure 3 The example shown illustrates that path 12 is not always the shortest. For this reason, the GreedySearch algorithm is not always suitable for finding the shortest path 12.

[0094] Compared to the Greedy Search algorithm, such as Figure 4 The algorithm illustrated by Dijkstra solves the shortest path problem. Instead of using estimation heuristics, Dijkstra takes the opposite approach. His algorithm stores the cost of the path from the visited node 18 to the starting point 14. Additionally, each visited node 18 remembers its predecessor. Starting from the starting point 14, iterative expansion is performed on the node 18 with the lowest path cost so far. During expansion, the cost to the starting point 14 is determined for all the direct neighbors of the current node 18. In this case, this is quite straightforward. Because all nodes 18 in the grid are the same size, the cost for the input node can always be estimated as "1". Therefore, the cost arises from the number of visited nodes 22 located between the starting point 14 and the examined position. For this reason, the entire region around the starting point 14 is explored equally. Since each node 18 knows its predecessor, the shortest path from each node 18 to the starting point 14 is known. The algorithm terminates when the ending point 16 is found through uniform expansion, as the found path 12 is already the most advantageous. Here, path 12 must also be processed in reverse order. By selection Figure 4 This can be understood by visiting any node 22 and following arrow 26 to the starting point 14.

[0095] Figure 4 It is clearly shown that, although Dijkstra's algorithm is superior to the Greedy Search algorithm ( Figure 3The algorithm finds the shortest path 12, but it must examine significantly more nodes 18 to do so. This is because the algorithm cannot use information about the location of the endpoint 16 in graph 10 when selecting nodes 18 to expand. The algorithm is particularly advantageous when the location of the endpoint 16 is unknown. However, if the location of the endpoint 16 is known, expanding an unnecessarily large number of nodes 18 is often necessary. This comes at the cost of runtime and memory consumption.

[0096] In the field of artificial intelligence, the A* algorithm is a proven method for computing the optimal path 12 between the starting point 14 and the ending point 16 in a directed graph 10. The A* algorithm combines the advantages of Dijkstra's algorithm and Greedy Search, while significantly mitigating their disadvantages. If a path 12 is found, it is always optimal. In most cases, the number of visited nodes 22 is significantly lower than in Dijkstra's algorithm. Figure 6 However, this is also true in the worst case. For each visited node Ki from path 12, calculate the estimated path cost F of the entire path 12 from start point 14 to end point 16.

[0097] To determine the path cost F, the following formula is applied: F = G + H. G represents the cost of the path 12 traveled from starting point 14 to node Ki. To determine G, the cost of visiting node 18 is added to the G of the previous node. H represents the heuristic, i.e., the estimated cost of traveling from node Ki to ending point 16. Similar to the Greedy Search algorithm, a heuristic function is used here. This must always be adapted to the specific problem. The most advantageous path 12 is only guaranteed if the heuristic function is insufficiently estimated. In other words, its estimated cost must never exceed the actual cost. The more accurate the estimation function, the faster the A* algorithm runs. For example, it can be envisioned here that the robot should move axis-by-axis. Similar to the Greedy Search algorithm, the Manhattan distance can then be used as a heuristic function, for example. However, in principle, the robot cannot move linearly only in the X, Y, or Z directions, or only axis-by-axis. Regardless of the mesh size, a cube can also be used, for example, to describe the diagonal path. In principle, in another preferred exemplary embodiment, the robot may also move diagonally along a path 130 having two axes 132, 134 (e.g., Y and Z) at a defined common path speed. Figure 11 ).exist Figure 11In the scenario shown, instead of performing 14 individual moves, the robot performs a single move from start point 14 to end point 16, where the two axes move synchronously with each other. Furthermore, the A* algorithm uses open and closed lists. Visited nodes 18 are placed in the open list, and all fully checked nodes 18 are placed in the closed list.

[0098] Figure 5 The sequence of the A* algorithm is explained using a flowchart. At start 30, in step 32, the starting point 14, or the starting node, is placed in the open list. Then, in step 34, the node 18 with the most favorable F value is continuously retrieved from the open list in loop 36 and processed. If the open list is empty, it means the algorithm has not found a solution. For example, since the robot can change its geometry using a rotation axis, the search does not need to be abandoned in this case.

[0099] The additional loop 38 checks for, for example, any unactuated rotation axes. If these axes can be moved in step 40, the search restarts in step 42. Otherwise, the algorithm reaches termination 44. The search successfully ends when termination point 16 is found in loop 39. If node 18 is to be processed in step 46, in step 48, for each of the node's direct neighbors in loops 50 and 52, it is checked whether these nodes represent obstacle 24 or are already in the closed list. If so, the neighboring nodes are ignored in step 54. Otherwise, the G and H values ​​of the neighboring nodes are determined in step 56, and the current node is stored as the previous node in step 58. Finally, the neighboring nodes are added to the open list in step 60. Once all the neighboring nodes of a node have been checked, the node is added to the closed list in step 62.

[0100] Once node 18 is inserted into the closed list, the most advantageous path from node 18 is known. In the worst case, the A* algorithm must visit all nodes 18. Obstacle 24 on the ideal line greatly degrades the running time because the cost increases with obstacle 24, and therefore many nodes 18 in the wrong direction must be checked first.

[0101] In another preferred exemplary embodiment, at least one jump point search and / or open list management is used as an optimization.

[0102] Figure 7a Careful observation of the search graph after running the A* algorithm reveals the existence of a large number of paths 12 with the same cost. This phenomenon occurs in graph 10, which is arranged in a grid and only allows horizontal or vertical paths. These paths 12 can be considered symmetrical because they differ only in the order of movement. For Figure 7a and Figure 7bIn Figure 10, this means, for example, that the robot moved a total of six nodes 18 to the right and three nodes 18 upwards. The order of the actions is irrelevant. Taking this property into account, the number of nodes 18 visited can be significantly reduced.

[0103] In order to achieve Figure 7b The results shown must take into account the symmetry of path 12. A successful approach is to reduce the number of neighboring nodes (neighbor pruning). Compared to the A* algorithm, when expanding node 18, it does not always check all neighboring nodes, but in most cases only checks one neighboring node (instead of four neighboring nodes in two-dimensional space and six neighboring nodes in three-dimensional space). Therefore, from... Figures 8a to 8c The three most important rules can be derived.

[0104] Rule 1:

[0105] Ignore all adjacent nodes that are not precisely aligned with the direction of movement. Figure 8a In the example, node 6 is the only node placed in the open list. Nodes numbered 2, 4, and 8 are not checked.

[0106] Rule 2:

[0107] If the current node 18 is adjacent to obstacle 24, as in the A* algorithm, check all navigable adjacent nodes. Figure 8b This is necessary in order to ideally avoid obstacle 24 and find the shortest path 12.

[0108] Rule 3:

[0109] If the neighboring node selected in rule 1 has a worse F value than the current node 18, then check all navigable neighboring nodes. Figure 8c This prevents path 12 from missing a destination in one dimension. Figure 9 ).

[0110] Although rule 1 describes omitting adjacent nodes, rules 2 and 3 ensure the search continues to obtain the optimal result. These rules find so-called jump points 64, hence the name jump point search. These points are called jump points 64 because navigation between them is very fast and only in a straight line. Jump points 64 can be identified by the fact that they check more than one adjacent node. Figure 9 For example, node 18, where path 12 changes direction to the right, is jump point 64.

[0111] The advantages of jump point search are as follows:

[0112] 1. It is optimal (find the most advantageous path 12).

[0113] 2. No pre-calculation is required.

[0114] 3. It will not cause additional memory consumption.

[0115] 4. Significantly speeds up the simple A* algorithm. This applies as follows: the longer path 12 is, the greater the improvement.

[0116] Similar to the simple A* algorithm ( Figure 6 ) and the optimized A* algorithm utilizing jump point search ( Figure 9 A direct comparison of the obstacles 24 between them clearly shows again how many node checks can be saved by using optimization.

[0117] The majority of the computation time of the A* algorithm is spent searching the open list for the element with the lowest F value. The larger the graph 10, the higher the proportion of runtime required to manage the open list. Since the graph 10 in machine space is, for example, very large, it is worthwhile to optimize the management of the open list. In the simplest case, all elements of the open list are stored in an array list. This enables fast insertion into the list (complexity: O(1)), but slows down the conceivable removal of elements because each element must be searched to find the minimum F (complexity: O(n)). This quickly becomes a problem when the open list is very long. One way to easily speed up the removal of elements is to keep the open list sorted. Especially for larger lists, the cost incurred during insertion is only a fraction of the cost required for removal in other ways. If a sorting algorithm with a complexity < O(n) is chosen for insertion, the cost is worthwhile. The complexity of removal operations in a sorted list is O(1).

[0118] In another preferred exemplary embodiment, an open list is managed using a binary heap 20. Data can be stored very efficiently in a structured manner within the binary heap 20. For example, this can be stored as a simple array. Insertion, deletion, and search operations can be performed in worst-case runtime O(log n), and the search for the minimum element 66 (using the A* algorithm) even utilizes O(1). However, after accessing the minimum element, it must be deleted. Unlike sorted lists, the binary heap 20 is not strictly sorted in descending or ascending order. It is a binary tree 70 that satisfies two additional conditions:

[0119] 1. Binary tree 70 is left-balanced.

[0120] 2. The following applies to each node 18: its own key is less than the key of its child nodes.

[0121] This means that the smallest element, 66, is always in the first position of the binary tree 70. Figure 10An example of a binary heap 20 is shown. It's worth noting that in array 28, no element 66 is at position zero. This simplifies the calculation of the indices of child or parent nodes.

[0122] In another preferred exemplary embodiment, in the event of a change in the production sequence, the method is simulated in real time, and / or the algorithm reacts to changes in the position and / or speed of at least one movable part and / or machine 100 by performing at least one additional collision check and / or calculating at least one new path 12. Depending on whether the machine has machine parts, preferably, the algorithm can react to changes in the position and / or speed of at least one machine part.

[0123] In another preferred exemplary implementation, the method is simulated in advance. For example, the process and path creation can be simulated in advance using a computer model.

[0124] In another exemplary embodiment, at least two different variations of the simulation method are used, and these at least two different variations are compared with each other relative to different criteria. For example, different criteria regarding energy, wear, travel path, and / or cycle time can be compared, and a desired advantageous method can be selected. For example, for some processes, cycle time is secondary, while wear is very important or must be considered because the tool or die is subjected to high stress, for example.

[0125] For greater clarity, in another exemplary embodiment, at least one movable part and / or machine 100 and / or molded article 122 is graphically represented as a graphic and / or model. Depending on whether the machine has machine parts, machine parts may also preferably be graphically represented. For example, this representation may be made on a machine controller, screen, or computer.

[0126] In one exemplary embodiment, a machine control for machine 100 (an injection molding machine or a 3D printer for processing plastics and other plasticizable materials) is disclosed, which is configured, set, and / or constructed to perform at least one of the methods described above while achieving the aforementioned advantages.

[0127] Another exemplary embodiment is a computer program product that includes program code stored on a computer-readable medium for performing at least one of the methods described above, while achieving the aforementioned advantages.

[0128] It goes without saying that this specification can be modified, altered, and adjusted extensively within the scope of equivalents of the appended claims.

[0129] List of reference numerals

[0130] 10 Graphics 100 Machine

[0131] 12 Path 102 Vertical Axis

[0132] 14 Starting point 104 Direction

[0133] 16 End point 106 Direction

[0134] 18 cubes, 108 nodes in directional directions

[0135] 20 Binary Stack 110 Movable Pressure Plate

[0136] 22 Visited node 112 Fixed pressure plate

[0137] 24 Obstacles 114 Half-Modifier

[0138] 26 arrows, 116 half-mold

[0139] 28 arrays, 118 obstacles

[0140] 30 starts the 120-mile marching zone

[0141] 32 Step 122 Molded article

[0142] 34 Step 130 Path Movement

[0143] 36 loops, 132 axes

[0144] 38 loops, 134 axes

[0145] 39 loops R space

[0146] 40 steps

[0147] 42 steps

[0148] 44 End

[0149] 46 steps

[0150] 48 steps

[0151] 50 circuits

[0152] 52 loops

[0153] 54 steps

[0154] 56 steps

[0155] 58 steps

[0156] 60 steps

[0157] 62 steps

[0158] 64 Jump Points

[0159] 66 elements

[0160] 68 Index

[0161] 70 Binary Tree

Claims

1. A method for determining at least a portion of a path (12) in space connecting at least one starting point (14) to at least one ending point (16), for at least one movable component to navigate at least one automatically through a space (R) on a machine (100), said machine (100) being an injection molding machine or 3D printer for processing plastics and other plasticizable materials, configured for removing, transferring and / or depositing molded articles, said method comprising the steps of: a) Provide at least one model of the at least one movable part and the machine (100) and the molded article (122), b) Collect geometric information of the space (R), the at least one movable component, the machine (100), and the molded article (122). c) Determine the current position of the at least one movable component, the machine (100), and the molded article (122) in the space (R). d) Correlate the geometric information of the at least one movable component and its current position in the space (R), the geometric information of the machine (100) and its current position in the space (R), and the geometric information of the molded article (122) and its current position in the space (R) to generate at least one graphic (10) of the space (R). e) Calculate the path (12) by applying at least one algorithm to the graph (10), wherein at least one optimization is additionally performed to calculate the path (12). f) Perform at least one collision check along the path (12) between the following: 1) The at least one movable component, 2) The machine (100), and 3) The molded article (122), g) Automatically navigate the at least one movable component along the path (12) in a collision-free manner. The at least one movable component moves relative to the machine, and the algorithm is applied while the graphic (10) is dynamically changed due to the movement of at least one of the at least one movable component, the machine (100), and the molded article (122). In the event of a change in the production sequence, the method is simulated in real time, using the current actual position as the starting point. This is achieved by performing at least one additional collision check, calculating at least one new path (12), and reapplying the algorithm, which reacts to changes in the position and / or speed of at least one of the at least one movable part, the machine (100), and the molded article (122). The calculations, collision checks, and automatic navigation are performed predictively.

2. The method according to claim 1, characterized in that, Regarding the location of at least one contact point in the space (R), the at least one contact point of each of the at least one movable component and the machine (100) is provided, wherein the contact points are logically coupled to each other to provide a model of the at least one movable component and the machine.

3. The method according to claim 2, characterized in that, At least one list is associated with the at least one contact point, and the list describes and / or lists the couplerable models.

4. The method according to claim 1, characterized in that, The space (R) is divided into a cubic grid (18), which is used to generate the at least one graphic (10).

5. The method according to claim 1, characterized in that, At least one of Greedy Search, Dijkstra's algorithm, and A* algorithm utilizing at least one open list is used as the algorithm.

6. The method according to claim 5, characterized in that, At least one jump point search and / or at least one open list management are used as optimizations.

7. The method according to claim 6, characterized in that, The open list is managed using a binary heap (20).

8. The method according to claim 1, characterized in that, The method is simulated in advance.

9. The method according to claim 1, characterized in that, Simulate at least two different variants of the method, and compare the at least two different variants with respect to different criteria.

10. The method according to any one of the preceding claims, characterized in that, Graphical representation of the at least one movable part and / or the machine (100) and the molded article.

11. A machine control for a machine (100), said machine (100) being an injection molding machine or a 3D printer for processing plastics and other plasticizable materials, characterized in that, The machine control is configured, set, and / or constructed to perform the method according to any one of claims 1 to 10.

12. A computer program product comprising program code stored on a computer-readable medium for performing the method according to any one of claims 1 to 10.

Citation Information

Patent Citations

  • method of protecting a robot against collisions

    DE102004027944A1

  • Method for preventing deadlock of a pair of robots in multi-robot system, involves avoiding deadlock condition during execution of programs by automatically determining and executing deadlock-free motion statement

    DE102012103830A1

  • Method and device for anti-collision and collision protection for multi-robot arrangement

    DE69027634T2

  • Apparatus and method for the generation of a collision free path of a grinding tool

    EP1672449A1

  • Device, system and methods for automatic development and optimization of positioning paths for multi-axis numerically controlled machining

    US20170090454A1