Method, machine control device, and computer program product for determining a route for automated navigation - Patents.com
Patent Information
- Application Number
- JP2024513788
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-09-01
- Filing Date
- 2022-09-01
- Publication Date
- 2025-06-20
- Estimated Expiration
- 2042-09-01
AI Technical Summary
Existing methods for automated navigation in machines like injection molding and 3D printing machines are incomplete and inaccurate, leading to potential collisions and require manual intervention for programming, which cannot fully prevent damage.
A method for determining a portion of a route for automatic navigation using a machine control device and computer program product, which involves creating a model of the machine and its components, sensing geometry and current positions, applying algorithms for path calculation, and performing real-time collision checks to ensure collision-free movement.
This method enables automatic, collision-free navigation with improved reliability, reduced cycle times, and minimal manual intervention, adapting to dynamic changes in the production process.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] (Relationship with related applications) This application is related to and claims priority from German patent application No. 10 2021 122 606.6, filed on September 1, 2021, the disclosure content of which is hereby expressly incorporated in its entirety into this application.
[0002] FIELD OF THEINVENTION The invention relates to a method for determining at least a part of a path connecting at least one start point in a space with at least one target point for at least one automatic navigation from a start point to a target point through a space in a machine, in particular an injection molding machine for processing plastics or other plasticizable materials or a 3D printer machine, according to the preamble of claim 1, a machine control device according to the preamble of claim 10 as well as a computer program product according to the preamble of claim 11.
[0003] To explain the invention, some concepts are first defined below.
[0004] Within the context of the present application, an "axis" is to be understood as a movable part, for example of a machine, an apparatus, an apparatus part and / or a peripheral device, which is driven and controlled via a drive, for example via a motor. In the example of an injection molding machine, the axis would for example be the spindle of a spindle system.
[0005] Within the scope of this application, a "machine" is understood to mean all parts (or components) that are necessary for the operation of the machine, for example in an injection molding machine the clamping unit in which the injection mold is received, the injection molding unit, the machine legs and the associated drives. Important for the automatic navigation are at least the spatial regions in which the machine or its parts may collide, for example with moving components of the peripheral equipment. A specific example here is a robot arm with a gripper, which moves in a clamping space between open mold supports in a clamping unit. The robot arm and / or the gripper can perform various movements, such as tilting, pivoting and rotating movements. These movements allow the vector of the robot arm and / or the gripper to be changed. The machine can have at least one machine part, such as a tool, a mold nest, a molded part, a sprue, a movable plate, a stationary plate and / or an injection unit. Furthermore, the machine can have further machine parts and / or components. These machine parts can also move and preferably can be automatically navigated in space using the presented method as well, preferably along a predetermined path calculated using an algorithm, so as not to collide with other machine parts, moving components, and / or machines.
[0006] Whenever a machine is mentioned below, it is meant to refer to the machine as well as possibly the machine part of the machine.
[0007] Within the context of this application, a "movable component" is to be understood as an element, such as a peripheral device, which is movable relative to the machine, including robot arms, grippers, robots, ejectors or other movable components of the peripheral device or machine which move in space, so that collisions with the machine are to be avoided, in particular if the machine and / or machine parts are also moving. [Background technology]
[0008] (Prior Art) In the injection molding process, many or even all steps are nowadays carried out in an automated manner. Not only the entire control of the injection molding machine, such as, for example, closing the tool plate, applying pressure and opening the tool plate, is generally fully automated, but also the removal, transfer and / or placement of the molded parts, for example by means of a robot. Frequently, in the machine space and / or in the tool space, there are several axes, for example the entry axes of peripheral devices, for example the entry axes of a robot or a robot gripper, so that during the injection molding process, these axes can interfere with or collide with one another, for example when removing the molded parts. For an advantageously efficient productivity, the shortest possible cycle times are desirable, which are limited, for example, by the removal speed of the molded parts by the peripheral devices.
[0009] Systems are known in machines and devices for processing plastics, by which robot procedures can be interactively created, for example, by means of a so-called teach function, whereby procedure positions, for example points of a trajectory, can be input or "taught" and thus automatically entered, for example, into a robot procedure control device (see, for example, WO 2009 / 080296 A1).
[0010] Similarly, systems are known in which robot and tool enclosure geometry information is used in a procedure to perform quasi-static collision checking with the machine (e.g. of the robot arm or robot gripper) at end points and teach points.
[0011] DE 10 2012 103 830 A1 discloses a method for preventing mutual locking of a pair of robots having a common working area. Each robot is controlled by an assigned program. The robots occupy a section of the common working area during the simultaneous execution of the program. Interference areas in which the sections of the common working area are covered are characterized. The interference areas are analyzed and characterized where mutual locking of the robots can occur. In order to prevent locking, instructions are executed during the execution of the program which avoid at least one condition of mutual locking.
[0012] DE 690 27 634 T2 discloses a collision detection method for a multi-robot device with at least two elements. For collision detection, the collision resistance problem is split into a collision detection phase and an elimination (avoidance action) phase. The problem can be further simplified by further decomposing the 3D collision detection problem into 2D XY detection and 1D height comparison.
[0013] In EP 1 672 449 A1, in order to determine a time-efficient and collision-free route, the machine control is provided with a data set which comprises a collision parameter 0 or 1 at each discretized coordinate point and for each combination of discretized tool model and workpiece model. This collision parameter indicates whether the constellation, i.e. the relative position of workpiece and tool, assigned to the corresponding coordinate point will result in a collision or a spatial intersection of tool and workpiece. The data set then constitutes a look-up table which can be used to check a given path or to extend the path or to construct it step by step.
[0014] WO 2009 / 024783 A1 discloses a computer-implemented method for determining the motion between a component and equipment interacting with the component. Geometric data for the component and the equipment are received, and from the geometric data it is determined how the equipment and the component can move relative to each other, using an optimization criterion. In one embodiment, a model of an object, i.e. a model of a turbine blade, is loaded, a surface of the object is selected, and a number of points are generated on the surface. These points are then route-optimized and approached by a measuring device.
[0015] The following Patent Document 6 (US 2017 / 0090454 A1) discloses a method for generating position travel data for a CNC machine, in which an optimized position route is created based on the machine kinematics, the movement limits of the machine axes, the speed limits and acceleration limits of the machine axes, and the positioning method of the machine, in which a number of possible paths are determined for a new positioning of a tool from a first arrangement to a second arrangement.
[0016] DE 10 2004 027 944 A1 discloses a method for protecting at least two robots against collisions, in which the movement of one robot is automatically checked for possible collisions and a locking function is automatically inserted into the movement sequence. [Prior art documents] [Patent documents]
[0017] [Patent Document 1] International Publication No. 2009 / 080296 [Patent Document 2] German Patent Application Publication No. 102012103830 [Patent Document 3] German European Patent Publication No. 69027634 [Patent Document 4] European Patent Application Publication No. 1672449 [Patent Document 5] International Publication No. 2009 / 024783 [Patent Document 6] US Patent Application Publication No. 2017 / 0090454 [Patent Document 7] German Patent Application Publication No. 102004027944 Summary of the Invention [Problem to be solved by the invention]
[0018] The above-mentioned features already make it easier to program robotic procedures and help to avoid errors. However, all the individual assistance systems mentioned above have the problem that they are incomplete and inaccurate within certain limits. As a result, programming still requires operator interaction. This further means that damage due to collisions cannot be completely prevented.
[0019] Furthermore, due to the combination of the various individual functions mentioned above, the improvement of the robot procedures is not easily achieved and completely new considerations must be made to create the prerequisites for dynamic, collision-free, automatic navigation.
[0020] (Summary of the invention) Based on this prior art, the problem underlying the present invention is to provide a method for determining at least a portion of a path for at least one automatic navigation, which assists an operator in adapting a machine cycle and is optimized with regard to travel routes, cycle times, process reliability (or safety), energy and wear. [Means for solving the problem]
[0021] The problem is solved by a method for determining at least a portion of a route for at least one automated navigation having the features of claim 1, by a machine control device having the features of claim 10 and by a computer program product having the features of claim 11.
[0022] Advantageous further configurations are the subject of the dependent patent claims. The features recited individually in the patent claims can be combined with one another in a technically meaningful manner and can be supplemented by what is described in the present specification and by details from the drawings, which show further implementation variations of the invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0023] Hereinafter, a mode for carrying out the invention will be described.
[0024] A method for determining at least a portion of a path connecting at least one start point in a space with at least one target point for at least one automatic navigation of at least one moving component, such as a peripheral device, such as a robot or a robot gripper, through a space in a machine, in particular an injection molding machine for processing plastic or other plasticizable material, or a 3D printer machine, comprises the following steps:
[0025] The machine may have at least one machine part, as defined in the introduction, such as a tool, a mould nest, a moulding, a sprue, a movable plate, a stationary plate and / or an injection unit. The machine may further have further machine parts and / or components, such as in an injection moulding machine or a 3D printing machine. The machine part is movable and preferably can be automatically navigated in space as well using the presented method. In this case, the machine part is preferably automatically navigated along a predetermined path calculated using an algorithm, so that it does not collide with other machine parts, peripherals and / or machines.
[0026] Whenever a machine is mentioned below, it is meant to refer to the machine as well as possibly the machine part of the machine.
[0027] "Moving component" relates to an element, such as a peripheral, that is movable relative to the machine, e.g. a gripper, a robot, an ejector or other moving components of the peripheral or machine that move in space, so that collisions with the machine should be avoided, especially if the machine also moves.
[0028] First, at least one model, e.g. a digital model, of at least one moving component, e.g. a peripheral device, and the machine is provided. Depending on whether the machine has a mechanical part or not, a corresponding model can also be preferably provided for the mechanical part. For example, the model can be provided as data to a computer, a program or a control device. It is also possible that the model is provided via a network or is already provided on the machine. The model can comprise information about the geometry of the moving component and / or the machine. The geometry of the model can be described using a geometric model, e.g. Collada (Collaborative Design Activity).
[0029] In a further step, geometric information of the space, of the at least one moving component and of the machine is determined. Depending on whether the machine has a machine part or not, the corresponding geometric information can preferably also be determined for the machine part. The geometric information can, for example, be taken from a model or be included in the model. For example, the position of the moving plate can also be determined explicitly at each time based on the actual value of the plate position, which is known to the machine control. That is to say, for example, the geometric dimensions of the length, width and height of the individual moving components, the machine and possibly the machine part are obtained. It is furthermore conceivable that the geometric information is determined based on sensors.
[0030] In a next step, the current position of the at least one movable component and the machine in the (predetermined) space is determined. Depending on whether the machine has a machine part or not, the current position of the machine part in the space can preferably also be determined. By position is meant, for example, position and / or orientation. For example, the position of an axis in the space, for example in a Cartesian coordinate system, can be explicitly determined by means of an angle relative to the zero position. It is therefore also possible to detect the orientation of the axis in the space, for example the orientation of the axes of a robot. Here too, the current position can preferably be detected by means of a sensor.
[0031] The geometric information and the current positions of at least one moving component and machine in the space are correlated with each other, for example by using a computer or machine control device, to generate at least one graph of the space. Depending on whether the machine has a machine part, preferably the geometric information and the current positions of the machine part can also be correlated with the geometric information and the current positions of at least one moving component and machine to generate a graph in the space. Using the geometric information and the current positions, the arrangement of moving components, e.g., peripherals, and machines, and possibly machine parts, in the space is determined, so that a "map of the space" can be created as a graph. The moving components, machines, and possibly machine parts can be displayed in the graph, for example, as obstacles.
[0032] In a further step, a path is calculated by applying at least one algorithm on the graph, wherein at least one optimization is additionally carried out for the path calculation.
[0033] In a further step, at least one collision check is carried out along the path between at least one moving component on the one hand and the machine on the other hand. Depending on whether the machine has a machine part, the machine part can also preferably be taken into account in the collision check. For example, during removal of the molded part, a collision can occur between the peripheral equipment and the machine or the machine part. The collision check is carried out, for example, by checking whether an obstacle is located along the path.
[0034] Preferably, the collision check is performed in real time. If the collision check reveals an obstacle along the path, a new calculation of the path is performed, e.g. after a motion command for the moving components, the machine and / or possibly the machine parts. If the collision check reveals no obstacle along the path, in a further step the at least one moving component is automatically navigated along the path, with the at least one moving component moving relative to the machine.
[0035] During the injection molding process, usually moving components such as peripherals, machines and / or possibly machine parts such as parts of the injection mold move relative to one another, whereby the path has to be adapted for automatic navigation. For advantageously increased reliability (or safety) and user friendliness, the algorithm is applied under dynamic changes of the graph based on the movement of at least one moving component and / or machine. Depending on whether the machine has a machine part or not, the algorithm can also preferably be applied under dynamic changes of the machine part. For example, if the moving component, the machine and / or possibly the machine part moves and the graph changes such that an obstacle is located along the current path, the movement of the moving component, the machine and / or the machine part is stopped on the current path with the obstacle and continues on the newly calculated path. That is to say, the path on the "map" described by other existing elements and along which the moving component can move can change with each movement. The same applies for elements used in the 3D printing process, such as, for example, material supply units, discharge heads, fiber supply units, structural supports, objects to be manufactured.
[0036] Since unexpected events may occur during the production process, the method is simulated in real time upon changes in the production procedure and / or the algorithm reacts to a changed position and / or speed of at least one moving component, e.g. a peripheral device, and / or the machine by performing at least one further collision check and / or calculating at least one new path. Depending on whether the machine has a machine part or not, preferably the algorithm can also react to a changed position and / or speed of the machine part by performing at least one further collision check and / or calculating at least one new path.
[0037] Advantageously, the operator is thereby assisted in adapting the machine cycle, which likewise results in improvements in terms of travel path, cycle time, process reliability (or safety), energy and wear. The shortest / fastest travel paths are likewise determined with as little calculation time and memory demand as possible. It is furthermore advantageous that collision-free travel paths are determined for which manual programming and parameter setting by the mechanic with the machine control and / or robot control is not necessary or is largely automated.
[0038] Advantageously, this makes it possible to react to changes (changes in the configuration), as in automatic navigation in road traffic, with the difference that, unlike in road traffic, here instead of a map a graph changes. The stored algorithms are ready to react, for example, to changed actual position values and axis speeds. The operator does not have to take any notice of the robot system, for example, when adapting the machine cycle. The procedure is adapted automatically and dynamically. This can be done in the course of an ongoing cycle, because, due to the high performance of the method, the current actual positions can be adapted anew as new starting values and changed obstacles (for example, moved tool halves) can be adapted anew in order to find the optimal path to the target point.
[0039] That is, the path can be adapted when the parameters related to the automatic navigation change in the currently ongoing cycle. For example, the method records whether there is a change in the graph during the automatic navigation, for example whether there is a change in the obstacles. If there is an obstacle on the path based on the change, the algorithm is applied again starting from the current position and a new path is calculated. If the obstacle does not block the current path, no new calculation is performed.
[0040] Preferably, the calculation, collision check and / or automatic navigation is performed with a look-ahead, i.e., during the movement, it may be possible that, for example, an obstacle is indeed present along the path during a certain period of time, but that this obstacle disappears from the path again due to the movement of the moving component, machine, molded part and / or possibly machine part before the moving component, machine, molded part and / or possibly machine part hits or collides with this obstacle. Advantageously, in this case, no change of direction is necessary, so that, for example, vibrations due to a change of direction can be avoided.
[0041] For advantageously accurate and precise navigation, preferably at least one contact point of the at least one moving component and the machine is provided with respect to its position in space, whereby these contact points are logically coupled to each other to provide a model of the at least one moving component and the machine. Depending on whether the machine has a mechanical part or not, preferably at least one contact point of the mechanical part, respectively, can be provided and coupled to other contact points. For example, an injection molding tool can be unambiguously described on its mounting surface relative to the mold with respect to its position and location in space, supplemented by an angle of the zero position, by at least one contact point, to which, for example, the next mechanical part and / or peripherals can be automatically coupled. This point is logically coupled with, for example, the current actual value of the moving plate and is automatically updated (followed). This contact point can be referred to, for example, as a "socket" in analogy with electronic technology. Similarly, for example, a fixed plate can have at least one point with respect to its position, location and angle in space, which is static in the case of a fixed plate.
[0042] Also, for example, the robot as a mobile component can be known (have data) about its geometry as a model and its position relative to the machine. In the simplest case, the robot is geometrically and / or logically connected, for example, with a stationary tool plate of the machine by means of its base or foot via the aforementioned functions "plug" and "socket". The entry axis of the robot has, for example, a flange plate to which a part-specific gripper is connected. The flange plate can have additional tilting, pivoting and / or rotating axes. This means that the logical connection point "socket" for connecting the gripper follows the translation, tilting, pivoting and / or rotation movements of the flange plate. The part-specific gripper can be logically connected, for example, via its model and a defined connection point "plug" with the gripper flange and can be geometrically coordinated via possible translation, tilting and / or rotation movements. The gripper also has at least one connection point (e.g. the center of the suction cup surface) which can receive the molded part as a logical "socket". The gripper position with respect to the current path is also important. In a given orientation, strong accelerations can lead to slippage of the molded part at the suction cup of the gripper, and in extreme cases the gripper will lose the molded part. Depending on the gripper orientation, the acceleration can preferably be limited appropriately. In an injection molding process, the mold is opened after the end of the molded part formation. The target position of the gripper can be preferably geometrically determined for removing the molded part, where all potential collision edges and obstructing geometries are known as obstacles.
[0043] Advantageously, in order to obtain a fast and reliable check on the connectable models, at least one contact point is preferably assigned at least one list, on the basis of which the connectable models are described and / or listed. For example, a movable part of an injection mold is connected to the movable plate. The injection mold is likewise known as a model and is provided, for example, as digital information in the machine. This part of the digital model of the injection mold (movable tool half) then has a defined connection point, which is precisely defined in the model with respect to its position and location in space. This point (connection point) can for example be correspondingly called a "plug". The movable tool half with the contact point "plug" is for example listed in a connection list in a "socket" of the movable tool plate. By using the "plug" or "socket", preferably, the movement of the connected peripheral and / or machine part can also be known, for example via the movement of the peripheral and / or machine part.
[0044] For an advantageously precise calculation of the path, the space is preferably divided into a grid of cubes, which is used for the generation of at least one graph. Preferably, the entire space is divided into a grid of cubes, which is used for the generation of at least one graph. In this case, the space can at least partially comprise at least one moving component and / or machine. Depending on whether the machine has a mechanical part or not, the space can preferably also at least partially comprise a mechanical part. The moving component, the machine and / or possibly the mechanical part are then displayed as obstacles in the graph, for example. Other parts of the space free of obstacles can preferably be displayed graphically differently as a moving area, for example with a different color.
[0045] More preferably, it is also possible to describe a diagonal route, for example, independent of the grid size of the space divided by a cube, for example, by a path movement with two axes and a defined common path speed, diagonally. In this case, advantageously, instead of performing several individual movements, preferably one movement from a starting point to a target point is performed, with the axes moving synchronously with each other.
[0046] Preferably, the algorithm is at least a Greedy-Search algorithm, a Dijkstra algorithm, and / or an ALP using at least one open list. * An algorithm is used, which advantageously obtains the shortest path from a start point to a target point according to the graph.
[0047] For an advantageously fast calculation of the path, preferably at least a jump point search and / or management of the open list are used as optimizations.
[0048] For advantageously optimized management of the open list, the management of the open list is preferably performed using a Binary Heap.
[0049] For advantageous clarity and better reliability, the method is preferably pre-simulated, i.e. for example a pre-simulation of the procedure and the path creation is carried out in a computer model, which pre-simulation can also preferably be visualized.
[0050] Advantageously, in order to ensure improvements in terms of the calculation time and speed of the method, preferably at least two different variations of the method are simulated and compared with each other in terms of different criteria, whereby a procedure (flow) can be created in terms of a current tool data set, whereby different variations can be simulated and compared in terms of different criteria such as, for example, energy, wear, travel path and / or cycle time.
[0051] In order to be able to advantageously monitor the production process remotely, preferably graphs and / or models of at least one moving component and / or machine are displayed graphically. Depending on whether the machine has mechanical parts or not, preferably the mechanical parts can be displayed graphically.
[0052] The described method can be carried out in a multi-cavity tool and / or a multi-component tool, for example with several tools in an injection molding machine, which are not mounted directly on a movable plate but, for example, on a rotary unit, which is stored as a model and whose position is precisely defined via "plugs" and "sockets". It is also possible to use a multi-component tool, in which the pre-injection molded part (part before injection molding) is moved via a robot system. Insert parts are also possible, which are inserted by means of a gripper via a robot system. It is also possible to use a cubic tool ("cube"), which further has at least one rotation axis and has several inlet and / or outlet faces, as well as a special version thereof in which the cube is divided again and rotates in the opposite direction ("reverse cube"). In this case, each cube half is described separately.
[0053] Furthermore, the object is achieved by a machine control device for a machine, in particular for an injection molding machine for processing plastics or other plasticizable substances, or for a 3D printing machine, which is adapted, implemented and / or configured to carry out the aforementioned method for advantageous adaptation of the machine cycle by the operator and for improvements with regard to travel routes, cycle times, process reliability, energy and wear.
[0054] The object is also achieved by a computer program product, which comprises program points (or program code) stored on a computer-readable medium for carrying out the above-mentioned method for the purposes of calculation of the paths with respect to travel routes, cycle times, process reliability, energy and wear.
[0055] Further advantages are evident from the subclaims and from the following description of preferred embodiments. The features recited individually in the claims can be combined with one another in a technically meaningful manner and can be supplemented by the contents described in the specification and by details from the drawings, which show further implementation variations of the invention.
[0056] The present invention will now be described in detail with reference to the embodiments shown in the accompanying drawings. [Brief description of the drawings]
[0057] [Figure 1] FIG. 1 illustrates a machine with moving components. [Diagram 2] FIG. 1 illustrates a machine with moving components. [Diagram 3] FIG. 13 is a diagram showing a graph after the progress of a greedy search method. [Figure 4] FIG. 1 is a diagram showing a graph after the Dijkstra algorithm has progressed. [Diagram 5] FIG. 1 shows a flowchart of the A* algorithm. [Figure 6] FIG. 1 shows a graph after the A* algorithm has progressed. [Figure 7a] FIG. 13 illustrates a comparison of symmetric paths for jump point search. [Figure 7b] FIG. 13 illustrates a comparison of symmetric paths for jump point search. [Figure 8a] FIG. 13 illustrates a comparison for reducing the number of adjacent nodes. [Figure 8b] FIG. 13 illustrates a comparison for reducing the number of adjacent nodes. [Figure 8c] FIG. 13 illustrates a comparison for reducing the number of adjacent nodes. [Figure 9] FIG. 13 is a diagram showing a graph after the jump point search process has progressed. [Figure 10] FIG. 1 illustrates a binary heap in an array. [Figure 11] FIG. 1 shows a graph with one orbital motion. EXAMPLES
[0058] Description of the Preferred Embodiments The present invention will now be described in detail using examples in connection with the accompanying drawings. However, these examples are merely illustrative and should not be construed as limiting the inventive concept to a specific device. Before describing the present invention in detail, it is pointed out that the present invention is not limited to each component of the device and each method step of the method, because these components and methods can be modified. Furthermore, the concepts or terms used herein are defined only to describe specific embodiments and are not used as limitations. In addition, when the singular or indefinite article is used in the specification or claims, it is understood that the elements may be plural, unless otherwise clearly stated in all contexts (correspondingly, the singular also represents the plural in Japanese translations).
[0059] In one embodiment, for at least one automatic navigation of at least one moving component, such as for example a peripheral device, through a space R in a machine 100, in particular an injection molding machine for processing plastics or other plasticizable materials or a 3D printer machine, a method for determining at least a portion of a path 12 connecting at least one starting point 14 in the space R with at least one target point 16, comprises in a first step providing at least one model of the at least one moving component and of the machine. This model can for example be provided as a digital model.
[0060] The machine 100 may include at least one machine part, such as, for example, a mold tool, a mold nest, a molded part, a sprue, a moving plate 110, a stationary plate 112, and / or an injection unit. Additionally, the machine 100 may include other machine parts and / or components, such as, for example, an injection molding machine or a 3D printer machine. These machine parts may also be in motion, such as, for example, the moving plate 110.
[0061] Depending on whether the machine 100 has mechanical parts, preferably a model of the mechanical parts can be provided.
[0062] By "movable component" is understood an element, such as a peripheral device, that is movable relative to the machine 100, including a gripper, a robot, an ejector or any other movable component of the peripheral device or machine, which moves in the space R, so that collisions with the machine 100 should be avoided, in particular if the machine 100 also moves.
[0063] In a further step, geometric information of the space R, the at least one moving component and the machine 100 is determined, whereby the geometric information can be derived at least partially from one or more models, for example the geometric information can be determined via sensors.
[0064] Depending on whether the machine 100 has a mechanical part, preferably the geometric shape information of the mechanical part can be sensed.
[0065] Subsequently, in a further step, the current position of the at least one moving component and the machine 100 in the space R is determined. The current position can be detected, for example, via sensors or via actual values of the position of the at least one moving component and / or the machine 100.
[0066] Depending on whether machine 100 has mechanical parts, preferably the current location of one or more mechanical parts can be determined.
[0067] In a further step, the geometric information and the current positions of the at least one moving component and the machine 100 in the space R are correlated with each other to generate at least one graph 10 of the space R.
[0068] Depending on whether the machine 100 has mechanical parts or not, preferably geometric information and the current position of the mechanical parts can likewise be associated to generate the graph 10. For example, this results in a graph 10 according to Fig. 3, in which, for example, the machine 100, the moving components and the present mechanical parts are displayed as obstacles 24. For simplicity, the graph 10 in Fig. 3 is illustrated solely as a two-dimensional graph. In principle, however, the graph can be displayed for other and / or multiple dimensions, for example as a one-dimensional graph or a three-dimensional graph.
[0069] The calculation of a path 12 by applying at least one algorithm on the graph 10 is carried out in a further step, wherein for the calculation of the path 12 additionally at least one optimization is carried out.
[0070] In a further step, at least one collision check is performed along the path 12. Preferably, the collision check is performed in real time.
[0071] Then, in a further step, automatic navigation of the at least one moving component along the path 12 is performed.
[0072] Preferably, calculation of a path and automatic navigation along the path can also be performed for machine parts of machine 100. That is, for example, automatic navigation of one or more machine parts can be performed in addition to automatic navigation of moving components, such as automatic navigation of peripheral equipment.
[0073] In a preferred embodiment, the algorithm is applied under dynamic changes of the graph 10 based on the movement of at least one moving component and / or machine 100. Depending on whether the machine 100 has mechanical parts or not, the algorithm can preferably be applied under dynamic changes of the graph 10 based on the movement of at least one machine part. For example, during automatic navigation, movements of other machine parts, moving components and / or machines may also occur relative to each other. Based on this movement, the graph 10, i.e. the "map", may change and thus an obstacle 118 may appear on the already calculated path 12. The algorithm recognizes this change of the graph 10, preferably automatically, and records whether an obstacle is located on the path 12 or not. If so (if an obstacle is located on the path 12), the algorithm is applied again, using the current actual position as the starting point 14. That is to say, the path 12 can be adapted in the event of parameter changes related to the automatic navigation in the currently ongoing cycle.
[0074] In the embodiment of Fig. 1, the machine 100 is shown with a movable component, for example an entry axis 102 as a movable component, which is about to remove a molded part 122. The entry axis 102 should be able to navigate collision-free and automatically remove the molded part 122 and can be moved in different directions 106, 108, up and down and left and right in the embodiment according to Fig. 1. In principle, the entry axis 102 can preferably additionally also perform tilting, pivoting and rotational movements and can therefore assume any position in the space R. This gives any vector that the entry axis 102 can have.
[0075] The machine 100 further comprises a closure unit with a mobile plate 110 and a fixed plate 112 which between them define a clamping space for receiving a mould tool with two tool halves 114, 116. The mobile plate 110 can be moved in the direction 104, to the left and right in the embodiment according to Fig. 1. It is also conceivable in principle that the stationary plate 112 can be moved in one direction, for example in the direction 104. The movement of the mobile plate 110 also leads to a movement of the tool halves 116. The space R in which the machine 100 is located thus comprises obstacles 118 and movement areas 120, in which collision-free automatic navigation is not possible or possible.
[0076] 2 illustrates the movement of the entry shaft 102 and the moving tool plate 110 as moving components, where the entry shaft 102 is moved upward along direction 106 with the part 122. The moving plate 110 is moved to the right along direction 104. Correspondingly, these movements create new obstacles 118 and movement areas 120 for the automated navigation.
[0077] In a further preferred embodiment, the calculation, collision checking and / or automatic navigation is performed look-ahead: for example, an obstacle 118 appears along the path during a given period of time, but this obstacle 118 may have already disappeared from the path again before the moving component, the machine 100, the molded part and / or possibly the machine part would collide with this obstacle 118. Advantageously, this means that no direction change is necessary, thereby avoiding, for example, vibrations due to direction change.
[0078] In a further preferred embodiment, at least one contact point of the at least one moving component and the machine 100, respectively, is provided with respect to the position of the at least one contact point in the space R, whereby these contact points are logically coupled to each other to provide a model of the at least one moving component and the machine 100. Depending on whether the machine 100 has mechanical parts or not, preferably one or more contact points of the mechanical parts, respectively, can be provided, whereby these contact points can be logically coupled to other contact points. For example, the moving plate 110 can have a moving part of an injection mold coupled thereto. The injection mold is likewise known and exists as a model. For example, the moving part of the model of the injection mold (movable tool half 116) has a defined contact point, which is precisely defined in the model with respect to its position and location in the space R. This point can be called a "plug".
[0079] In a further preferred embodiment, at least one contact point is assigned at least one list, based on which the connectable models are described and / or listed. Staying with the above example with the moving tool half 116, this moving tool half 116 uses its contact point "plug" and is listed in the list to the "socket" of the moving plate 110.
[0080] In a further preferred embodiment according to Fig. 3, the space R is divided into a grid of cubes 18, which is used for the generation of at least one graph 10. The space R can at least partially comprise at least one moving component and / or machine 100. Depending on whether the machine 100 comprises a mechanical part or not, the space R can preferably at least partially comprise a mechanical part, which is illustrated for example as an obstacle 24 (dark grey part) in the graph 10 according to Fig. 3. In Fig. 3, for the sake of simplicity, only one plane of the space with the obstacle 24 is illustrated as the graph 10. However, this graph may essentially be three-dimensional.
[0081] In a further preferred embodiment, the algorithms include at least a greedy search algorithm, a Dijkstra algorithm, and / or an A algorithm having at least one open list. * The algorithm is used.
[0082] It is now introduced how a path 12 between any two points 14, 16 in a graph 10 is calculated. The shortest route problem is common in the field of artificial intelligence and aims to find the best possible path 12 through a graph 10, usually associated with a very high complexity. Route discovery addresses the problem of finding a path 12 in a graph 10 from a start point 14 to a target point 16. For the approach presented, the graph 10 must satisfy the property that all edges of the graph 10 are positively (non-negatively) weighted. To that end, the machine space is divided into a grid of cubes 18, also called nodes 18. Based on a grid-like model of the space R used as the graph 10, the shortest possible path 12 from the start point 14 to the target point 16 is searched for. Furthermore, the search graph 10 only exists implicitly; that is, for each node 18, it must be checked at the time of its entry whether these nodes 18 are valid positions of the robot system or represent obstacles 24.
[0083] The greedy search algorithm is a known search method and requires an estimation function (heuristic function). This estimation function estimates the distance from any node 18 to the target point 16. It may be considered, for example, that a robot should move one axis after the other. Therefore, the Manhattan distance can be used as a heuristic function. However, the robot does not only move linearly in the X, Y or Z direction, or only one axis moves after the other. It is also possible to describe diagonal routes, independent of the grid size, for example by using multiple cubes. In principle, in a further preferred embodiment, the robot can also move diagonally, for example via a trajectory movement 130 with two axes 132, 134 (for example Y and Z) with a defined common trajectory speed (FIG. 11). In the case of FIG. 11, the robot does not perform, for example, 14 separate movements, but one movement from the start point 14 to the target point 16, with both axes moving synchronously with each other.
[0084] The search starts with a starting point 14, which is expanded. In the expansion, all nodes 18 reachable from the starting point 14 are examined with respect to their estimated distance towards the target point 16 via a heuristic. In addition, in each visited node 22 (light grey), a reference to the node 18 just expanded is stored (see arrow 26 in FIG. 3). Each visited node 22 thus knows its predecessors, i.e. the previous nodes. The node with the best heuristic is expanded as the next node. The most favorable nodes are expanded iteratively until the target point 16 is found. That is, the node 18 that promises the best result at the time of selection is always selected as the next node. The decision once made is not analyzed or modified from a global perspective.
[0085] When the target point 16 is found, the path 12 from the target point 16 to the start point 14 can be easily traced back via the stored predecessors of the node 18. The path 12 in this case is the path 12 searched from the start point 14 to the target point 16 in reverse order. The advantage of the greedy search algorithm is that it is easy to design and efficient to execute. However, although the algorithm solves the problem quickly, it is not always optimal. In FIG. 3, an example is shown where the path 12 found is not always the shortest. For this reason, the greedy search algorithm is not always suitable for finding the shortest path 12 (gray area between dark gray and light gray).
[0086] The Dijkstra algorithm according to FIG. 4 solves the shortest path problem differently from the greedy search algorithm. Instead of using an estimation heuristic, Dijkstra follows the route in reverse. The Dijkstra algorithm stores the cost of the path from the visited nodes 18 to the starting point 14. Furthermore, each visited node 18 knows its predecessor. Starting from the starting point 14, the node 18 with the smallest path cost so far is iteratively expanded. In the expansion, the cost to the starting point 14 is found for all direct neighbors of the current node 18, i.e. for the adjacent nodes. This is conceivable and simple in this case. Since all nodes 18 in the grid are of the same size, the cost can always be estimated as "1" for the entry of a node. That is, the cost is obtained from the number of nodes 22 visited between the starting point 14 and the examined position. For this reason, the whole area around the starting point 14 is investigated evenly. Since each node 18 knows its predecessor, the shortest path to the starting point 14 is known from each node 18. If the target point 16 can be found by uniform expansion, the algorithm ends since the path 12 found is already the most preferred. Again, the path 12 must be processed in reverse order. This can be seen in Figure 4 by finding any node 22 that has been visited and following the arrow 26 back to the starting point 14.
[0087] Figure 4 clearly shows that Dijkstra's algorithm does indeed find the shortest path 12, but it has to explore many more nodes 18 compared to the greedy search algorithm (Figure 3). This is because Dijkstra's algorithm cannot use information about where the target point 16 is located in the graph 10 when selecting the nodes 18 to be expanded. This algorithm can show its strengths especially in scenarios where the position of the target point 16 is not known. However, when the position of the target point 16 is known, it often leads to unnecessarily expanding many nodes 18. This is very costly in terms of execution time and memory consumption.
[0088] In the field of artificial intelligence, * The algorithm is a reliable approach for computing the best path 12 between a start point 14 and a goal point 16 in a directed graph 10. * The algorithm combines the advantages of the Dijkstra algorithm with those of the greedy search algorithm and largely eliminates their drawbacks. If a path 12 is found, it is always optimal. The number of visited nodes 22 is often significantly less than in the course of the Dijkstra algorithm (Figure 6), but in the worst case it is the same size. For each visited node Ki in the path 12, an estimated path cost F for the entire path 12 from the start point 14 to the destination point 16 is calculated.
[0089] To find the path cost F, the following formula is valid: F=G+H. G is the cost for the already traveled path 12 from the start point 14 to the node Ki. To determine G, the cost of visiting one node 18 is added to G of the predecessor node. H represents the heuristic, i.e. the estimated cost that will occur from the node Ki to the goal point 16. For that purpose, a heuristic function is used as in the greedy search algorithm. The heuristic function must always be adapted to the specific problem statement. A guarantee of the most favorable path 12 is only given if the heuristic function underestimates, i.e. it must never estimate a higher cost than will actually occur. The more accurate the estimation function, the higher the A * The algorithm proceeds faster. Here too, it is conceivable, for example, that a robot should move one axis after another. For example, the Manhattan distance can then be used as a heuristic function, as in the greedy search algorithm. In principle, however, the robot does not only move linearly in the X, Y or Z direction, or only one axis moves after the other. Diagonal routes can also be described, for example, using multiple cubes, independent of the grid size. In principle, in a further preferred embodiment, the robot can also move diagonally, for example via a trajectory movement 130 with two axes 132, 134 (for example Y and Z) with a defined common trajectory speed (FIG. 11). In the case of FIG. 11, the robot does not perform 14 separate movements, but one movement from the starting point 14 to the target point 16, with both axes moving synchronously with each other. Furthermore, A * The algorithm uses an open list and a closed list: the open list (a list of nodes that have not yet been evaluated) contains the nodes 18 to be visited, and the closed list (a list of nodes that have been evaluated) contains all nodes 18 that have been completely visited.
[0090] Based on the flowchart in Figure 5, *The algorithm steps are as follows: At start 30, in step 32, the starting point 14 or starting node is placed in the open list, then in step 34, in a loop 36, the node 18 with the most favorable F value is always taken from the open list and processed. If the open list is empty, it means that the algorithm did not find the answer. There is no need to give up the search here, since the robot can change its geometry, for example with a rotation axis.
[0091] In a further loop 38, it is checked whether there are, for example, any rotation axes that have not yet been manipulated. If they can be moved in step 40, the search starts anew in a further step 42. Otherwise, the algorithm ends 44. If the target point 16 has been found in loop 39, the search ends successfully. If a node 18 is to be processed in step 46, in step 48, it is checked in loops 50, 52 for each of its direct neighboring nodes whether they represent an obstacle 24 or are already in the closed list. If yes, the neighboring node is ignored in step 54. If not, in step 56, the G and H values are determined for the neighboring node and the current node is stored as the predecessor node in step 58. Finally, in step 60, the neighboring node is inserted in the open list. If all the neighboring nodes of a node have been examined, the node enters the closed list in step 62.
[0092] As soon as a node 18 is inserted into the closed list, the most favorable route from this node 18 is known. In the worst case, A * The algorithm must visit all nodes 18. An obstacle 24 on the ideal line significantly worsens the run time because the cost increases along the obstacle 24, so initially many nodes 18 in the wrong direction must be visited.
[0093] In a further preferred embodiment, at least jump point searching and / or open list management are used as optimizations.
[0094] Figure 7a A * A more precise consideration of the search graph after the progression of the algorithm reveals that there are many paths 12 with the same cost. This phenomenon occurs in graphs 10 arranged in a grid shape that only allows horizontal or vertical movements. These paths 12 are called symmetric because they differ only in the order of movements. This means that for the graphs 10 of Figures 7a and 7b, for example, the robot travels a total of six nodes 18 to the right and three nodes upwards. The order of actions is not important. Consideration of this property allows a significant reduction in the number of visited nodes 18.
[0095] To be able to achieve the result in Figure 7b, the symmetry of the path 12 must be taken into account. The path to success leads to the reduction of neighbor nodes (neighbor pruning). * Unlike the algorithm, when expanding node 18, not all adjacent nodes are always examined, but in most cases only one (instead of four in a two-dimensional space and six in a three-dimensional space). The three most important rules for this can be derived from Figures 8a-8c.
[0096] Rule 1: All neighboring nodes that are not exactly in the direction of movement are not taken into account. In the example of Figure 8a, node number 6 is the only node that is placed in the open list. Nodes number 2, 4, 8 are not examined.
[0097] Rule 2: If the current node 22 is adjacent to an obstacle 24, * As an algorithm, all traversable neighboring nodes are examined (FIG. 8b). This is necessary to find the shortest path 12 while ideally bypassing obstacles 24.
[0098] Rule 3: If the neighbor node selected by the first rule gets a worse F-measure than the current node 18, then all traversable neighbor nodes are examined (Fig. 8c), i.e. the path 12 is prevented from passing the target in one dimension (Fig. 9).
[0099] While the first rule describes the omission of adjacent nodes, the second and third rules ensure that the search still provides optimal results. They find so-called jump points 64, which get their name from jump point search. These points are called jump points 64 because they can be navigated between them very quickly and only in a straight line. Jump points 64 are recognized by examining more than one adjacent node. In FIG. 9, for example, node 18 where path 12 changes its direction to the right is a jump point 64.
[0100] The benefits of jump point exploration include: 1. The jump point search is optimal (finds the most advantageous path 12). 2. No precomputation is required. 3. There will be no increased memory consumption. 4. Simple A * This speeds up the algorithm significantly. The longer the path 12, the greater the improvement.
[0101] Simple A * Algorithm (Fig. 6) and optimized A using jump point search * From a direct comparison at obstacle 24 between our algorithm (FIG. 9), we can again clearly see how many node explorations can be saved by the optimization.
[0102] A *Most of the computational time in the algorithm is allocated to exhaustively searching the open list for the element with the minimum F value. The larger the graph 10 is, the larger the portion of the execution time required for managing the open list becomes. For example, since the graph 10 of the machine space is extremely large, it is valuable to optimize the management of the open list. In the simplest case, all elements of the open list are held within a single array list. This enables quick insertion into the list (complexity: O(1)), but slows down the possible removal of elements, because each element must be exhaustively searched to find the minimum F (complexity: O(n)). This can immediately become a problem with long open lists. One way to easily speed up the removal of elements is to keep the open list sorted. The cost incurred during insertion is, in a positively relatively large list, only a small part of the cost that would be required during removal otherwise. If a sorting algorithm with an insertion complexity <O(n) is selected, the effort is worthwhile. The complexity of the removal operation is O(1) within a sorted list.
[0103] In a further preferred embodiment, the open list is managed using a binary heap 20. Very effectively, the data can be structured and held within the binary heap 20 (binary heap). The binary heap 20 can be stored, for example, within a single simple array. The insertion operation, deletion operation, and search operation can be processed with a worst-case execution time of O(log n), and the search for the minimum element 66 (this search is used in the algorithm) is, on the contrary, O(1). However, after access to the minimum element, this element must also be deleted. Unlike a sorted list, the binary heap 20 is not strictly sorted in descending or ascending order. In this case, it relates to a binary tree 70 that satisfies the following two additional conditions: * 1. The binary tree 70 is left-aligned and balanced. 2. It holds true for each node 18 that its unique key is less than the keys of its child nodes.
[0104] Therefore, at the first position of the binary tree 70, there will always be the smallest element 66. Figure 10 shows an example binary heap 20. It can be seen that there is no element 66 at the 0th position in the array 28. This simplifies the calculation of the child or father node index.
[0105] In a further preferred embodiment, the method is simulated in real time upon changes in the production procedure and / or the algorithm reacts to a changed position and / or speed of the at least one moving component and / or the machine 100 by performing at least one further collision check and / or calculating at least one new path 12. Depending on whether the machine 100 has mechanical parts or not, preferably the algorithm can react to a changed position and / or speed of the at least one mechanical part.
[0106] In a further preferred embodiment, the method is pre-simulated, for example by pre-simulating procedures and routing in a computer model.
[0107] In a further embodiment, at least two different variants of the method are simulated and compared with each other with respect to different criteria, i.e. for example with respect to different criteria of the method with respect to energy, wear, travel path and / or cycle time, and the most desired advantageous method can be selected, for example in a given process the cycle time is of secondary importance, whereas wear is of crucial importance or must be taken into account, for example because the tools are subjected to high loads.
[0108] For better clarity, in a further embodiment, the graphs and / or models of the at least one moving component and / or the machine 100 are displayed graphically. Depending on whether the machine 100 has mechanical parts, preferably the mechanical parts can also be displayed graphically. For example, the display can take place on a machine control device, on a display or on a computer.
[0109] In one embodiment, a machine controller for a machine 100, particularly an injection molding machine for processing plastic or other plasticizable material, or a 3D printer machine, is disclosed, which is adapted, implemented, and / or configured to perform at least one of the aforementioned methods to achieve the advantages described above.
[0110] A further embodiment comprises a computer program product having program code stored on a computer readable medium for performing at least one of the above-mentioned methods in achieving the above advantages.
[0111] Obviously, the present disclosure is susceptible to widely different modifications, variations, and adaptations, provided they fall within the scope and range of equivalents of the appended claims. [Explanation of symbols]
[0112] 10 Graphs 12 Routes 14 Starting point 16 target points 18 Cube, Node 20 Binary Heap 22 Visited nodes 24 Obstacles 26 Arrow 28 Array 30 start 32 Steps 34 Steps 36 Loop 38 Loop 39 Loop 40 Steps 42 Steps 44 End 46 Steps 48 Steps 50 Loops 52 Loop 54 Steps 56 Steps 58 Steps 60 Steps 62 Steps 64 Jump Points 66 Elements 68 Index 70 Binary tree 100 machines 102 Approach axis 104 directions 106 directions 108 directions 110 Movable Plate 112 Stationary Plate 114 Tool half 116 Tool half 118 Obstacles 120 moving area 122 Molded products 130 Orbital motion 132 Axis 134 Axis R space
Claims
1. A method for determining at least a part of a path (12) connecting at least one starting point (14) in the space (R) to at least one target point (16) for at least one automatic navigation of at least one movable component configured to take out, move and / or place a molded article through the space (R) in a machine (100) which is an injection molding machine or a 3D printer for processing plastic or other plastifiable materials, comprising: including the following steps: a) providing at least one model of the at least one movable component, the machine (100) and the molded article; b) detecting geometric shape information of the space (R), the at least one movable component, the machine (100) and the molded article; c) determining the current positions of the at least one movable component, the machine (100) and the molded article in the space (R); d) associating the geometric shape information and the current positions of the at least one movable component, the machine (100) and the molded article in the space (R) with each other to generate at least one graph (10) of the space (R); e) applying at least one algorithm on the graph (10) to calculate the path (12), provided that at least one optimization is additionally performed for the calculation of the path (12); f) 1. performing at least one collision check along the path (12) between the at least one movable component, 2. the machine (100), and 3. the molded article; g) automatically navigating the at least one movable component along the path (12) without collision. However, the at least one movable component moves relative to the machine (100), and the algorithm is applied under the dynamic change of the graph (10) based on the movement of the at least one movable component and / or the machine (100) and / or the molded product. Further, the method is simulated in real time when there is a change in the production procedure. The algorithm performs at least one further collision check, calculates at least one new path (12), and the algorithm is newly applied. At this time, the current actual position is used as the starting point, so as to react to the changed position and / or speed of the at least one movable component and / or the machine (100) and / or the molded product. The calculation, the collision check, and the automatic navigation are performed in a predictive manner. A method characterized by the above.
2. Each of the at least one movable component and at least one contact point of the machine (100) is provided with respect to the position of the at least one contact point in the space (R), provided that these contact points are logically combined with each other to provide the model of the at least one movable component and the machine (100). The method according to claim 1, characterized by the above.
3. At least one list is assigned to the at least one contact point, and based on the list, a connectable model is described and / or listed. The method according to claim 2, characterized by the above.
4. The space (R) is divided into a grid composed of cubes (18) used for generating the at least one graph (10). The method according to claim 1, characterized by the above.
5. As the algorithm, at least a greedy search algorithm, a Dijkstra algorithm, and / or an algorithm A using at least one open list * is used, The method according to claim 1, characterized in that.
6. As the optimization, at least jump point search and / or management of the open list is used, The method according to claim 5, characterized in that.
7. The management of the open list is performed using a binary heap (20), The method according to claim 6, characterized in that.
8. The method is simulated in advance and / or at least two different variations of the method are simulated and compared with each other regarding different criteria, The method according to claim 1, characterized in that.
9. The graph (10) and / or the model of the at least one movable component and / or the machine (100) and / or the molded product is graphically displayed, The method according to claim 1, characterized in that.
10. A machine control device for a machine (100) which is an injection molding machine or a 3D printer for processing plastic or other plasticizable materials, The machine control device is adjusted, executed, and / or configured to execute the method according to any one of claims 1 to 9, A machine control device characterized in that.
11. A computer program product having program code, The program code is stored on a computer-readable medium for executing the method according to any one of claims 1 to 9, A computer program product characterized by