Technique for the automated disassembly of an assembly by means of a robot
The method automates robot disassembly by reading digital data and simulating collision-free paths, addressing the inefficiencies of manual path planning and component variance, enhancing flexibility and precision in disassembling assemblies.
Patent Information
- Application Number
- PCT/EP2025/073634
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-08-08
- Filing Date
- 2025-08-19
- Publication Date
- 2026-02-26
AI Technical Summary
Existing automation systems face challenges in efficiently and flexibly disassembling assemblies, particularly those with high component variance and small batch sizes, due to time-consuming manual path planning and the lack of specific component knowledge, leading to unpredictable behavior and high costs.
A method for generating control commands using a computing device to control robot disassembly, involving reading digital data structures, determining holding points, and simulating a collision-free disassembly path, which includes using trained models and search algorithms to optimize robot movements.
Enables efficient, precise, and repeatable disassembly of assemblies, even with unique spatial restrictions, by automating the process and minimizing collisions, thus improving flexibility and reducing manual intervention.
Smart Images

Figure EP2025073634_26022026_PF_FP_ABST
Abstract
Description
[0001] 202508061
[0002] 1
[0003] Description
[0004] Technology for the automated disassembly of a component using a robot
[0005] The present invention relates to a technique for generating control commands for controlling the disassembly of an assembly by a robot, in particular comprising a method, a computing device, a system with the computing device and a computer program product.
[0006] Automating an assembly disassembly process presents a challenge, especially when assemblies are only available in small batches or as single units. This increases the demands on the flexibility of automation systems, particularly regarding kinematics, tooling, and toolpath calculation. Currently, this requires time-consuming upstream CAM planning or teach-in processes.
[0007] When using automation systems for applications with high component variance, conventional, time-consuming manual path planning such as CAM planning methods and teaching processes contrasts with the advantages of automation - such as speed, precision and substitution of human resources.
[0008] One way to economically optimize robot programming for small batch sizes is to use sensors such as optical or tactile sensors in combination with intelligent data analysis, including artificial intelligence. However, these approaches often lack specific knowledge about the properties of the components, which can lead to unpredictable behavior with new components. Further disadvantages include the effort required to develop the analysis algorithms, the associated costs, and the additional space needed for sensors.
[0009] It is therefore an object of the present invention to provide a solution for the efficient automated control of one or more robots for the partial or complete disassembly of an assembly. Alternatively or additionally, an object is to enable improvements with regard to the flexibility, speed, precision and / or repeatability of the disassembly of an assembly, in particular an individually designed assembly and / or one produced in small quantities with identical components.
[0010] This item is described by a method for generating control commands for controlling the disassembly of an assembly by a robot, by a computing device, by a system, by a computer program (and / or 202508061
[0011] 2
[0012] The solution is provided by a computer program product) and by a computer-readable storage medium according to the attached independent claims. Advantageous aspects, features, and embodiments are described in the dependent claims and in the following description together with advantages.
[0013] The solution to the problem is described below using the method as an example. Features, advantages, or alternative embodiments mentioned here can also be applied to the other claimed subject matter, and vice versa. In other words, the claims themselves (which, for example, relate to a computing device, a system comprising the computing device and at least one robot, or a computer program product) can also be further developed with the features described or claimed in connection with the method, and vice versa. The corresponding functional features of the method are implemented by corresponding physical or spatial modules, in particular hardware modules or microprocessor modules, of the system or the product, and vice versa.
[0014] Alternatively, at least parts of the hardware modules can be virtualized. The alternatives or embodiments of the invention described in connection with the method are not explicitly repeated for the device, but can also be applied within the device and vice versa. In general, in computer science, a software implementation and a corresponding hardware implementation (e.g., as an embedded system) are equivalent. For example, a method step for "storing" data can be performed with a storage unit and corresponding instructions for writing data to the memory. To avoid redundancy, features or aspects of the device are therefore not explicitly described again, even though they can also be used in the alternative embodiments described in relation to the method. Fundamentally, the claimed device is configured to execute the claimed method.
[0015] According to one procedural aspect, a (particularly computer-implemented) method for generating control commands for controlling the disassembly of an assembly by a robot is provided. The method comprises a step of reading a data structure of an assembly comprising several components. The data structure comprises a digital data set with at least one three-dimensional surface representation for at least a subset of the several components. The data structure further comprises information regarding the position and orientation for at least the subset of the several components in an assembled state of the assembly. The method further comprises a step of reading a digital geometry data set of at least one component.
[0016] 3
[0017] The robot comprises at least one holding element. The method includes a step of loading a digital simulation environment for the assembly in its assembled state. The method may include a step of reading an initial digital disassembly data set comprising a disassembly sequence for at least a subset of the assembly's multiple components.
[0018] The method comprises a step of determining at least one holding point on at least one component based on the input data structure. Preferably, the at least one holding point is determined on each component of the subset. The at least one holding point is configured to hold the respective component by means of the at least one holding element of the at least one robot, particularly when the respective component is next in line to be disassembled according to the disassembly sequence. The method comprises a step of determining a collision-free disassembly path for the at least one robot using a trained model or a search algorithm. The disassembly path comprises a trajectory of the at least one robot for the component held by means of the at least one holding element from the assembled state to a storage location in the simulation environment of the assembly.The disassembly of the assembly using the collision-free disassembly path can be simulated in a subsequent step (for example, to verify the collision-free nature of the specific disassembly path).
[0019] The method comprises a step of generating control commands to control the at least one robot along the collision-free disassembly path based on the defined collision-free disassembly path. The method may further comprise a step of issuing the generated control commands to the at least one robot. The assembly can be disassembled along the defined collision-free disassembly path by the at least one robot executing the control commands.
[0020] The control of the disassembly of an assembly can particularly involve the control of the movements of a robot from a disassembly point (as the position of the robot or its end effector immediately after the respective component has been disassembled from the assembly) to a storage location.
[0021] In one embodiment, the invention relates to the automatic or computer-aided generation of control commands for controlling the movement of the robot or its end effector from the disassembly point to an assigned storage point. For this purpose, a collision-free disassembly path is determined. The term disassembly path can be a path 202508061
[0022] 4 or trajectory, which defines a movement of the component from the disassembly point to the storage location (storage place, storage surface), in particular to the storage location assigned to it.
[0023] The technology according to the invention enables the efficient automation of a complete or partial (only individual, not all components of an assembly) disassembly of an assembly. In particular, the technology can be applied to a single assembly or to an assembly that is the only one located in a specific environment and is subject to unique spatial restrictions on free movement for disassembly. Partial or complete disassembly may be necessary, for example, for a maintenance process or a retrofit of the assembly or of a system in which the assembly is installed.
[0024] The technique can also be applied in reverse order for assembly. In this case, instead of simply specifying a storage location, in addition to specifying a pick-up location for the component, it is necessary to determine or define the positioning and / or orientation of the component at the pick-up location so that the robot can grasp or hold the component for assembly and bring it to the assembly location.
[0025] An assembly can be understood as a self-contained object that may consist of several components (also called parts) or even further subassemblies. Alternatively or cumulatively, an assembly can be a functional unit, for example, within a larger technical system. It is formed by joining (assembling) individual components (also called parts) or subassemblies and generally fulfills a specific function within a larger system, such as a machine, device, or plant. An assembly can contain, for example, mechanical, electronic, and / or pneumatic components. It can be disassembled, unlike a component, which cannot be disassembled non-destructively. In practice, assemblies are also referred to as assembly groups, welded assemblies, or wiring harnesses, depending on the manufacturing context. The assembly can also be described as a technical product.Assemblies can be hierarchically structured, meaning that an assembly can contain further subassemblies, each consisting of several components.
[0026] The digital data set of a component can include a 3D model (CAD model for short) of the component created using Computer Aided Design (CAD). The CAD data set may, for example, have been created for Computer Aided Manufacturing (CAM) to... 202508061
[0027] 5
[0028] To manufacture components of the assembly, for example using a Computerized Numerical Control (CNC) machine, computer-controlled milling or additive manufacturing (also: 3D printing).
[0029] The CAD model of the component can define one or more possible holding points (also: gripping points), for example, separately according to the type of pickup and / or holding method (also: gripping method; e.g., suction or clamping). The at least one holding point selected for disassembly can be chosen from the set of holding points defined by the CAD model, in particular due to the assembly situation (also: installation situation) of the component and / or a possible positioning of the robot during disassembly.
[0030] The CAD model can be provided in a 3D CAD format, for example .step or .prt.
[0031] The digital data set can also include information on which tool (or tool) is required for assembling and disassembling the component. For example, the data set for a screw connection can specify which type of screwdriver (e.g., simple slotted or Phillips head) and in which dimensions (e.g., slot width and / or slot length) are needed.
[0032] For the disassembly of a component as its smallest unit, knowledge of the component's internal structure is not strictly necessary. To be able to attach the robot's holding element (at least one) to a holding point on the component and to determine if and when there is a risk of collisions with other components in the assembly, only knowledge of the three-dimensional (3D) surface is required. The digital dataset can contain additional information, such as the component's internal structure. Alternatively or additionally, the digital dataset, including at least the 3D surface representation, can be provided as a (part of a) volume representation for at least a subset of the multiple components. This allows, for example, information about the component's stability to be provided, which may be relevant for determining the maximum tolerable force (e.g., from a gripper) on the component.
[0033] Depending on the type and load-bearing capacity of the at least one retaining element, it may also be useful for the digital data set to contain information about the weight of the component, its weight distribution, and / or the material or structural stability of the at least one retaining point. 202508061
[0034] 6
[0035] The data structure may also include information about the type of long-term fastening of a component in the assembled state of the assembly, for example by means of a weld or bond.
[0036] The simulation environment of the assembled assembly can comprise a digital dataset representing a two-dimensional (2D) or three-dimensional (3D) geometry of the assembly's environment, or a virtual environment of the assembly. The 2D geometry can include a plan view of an arrangement of potential obstacles on a base for the robot's movements around the assembly. The 3D geometry can additionally include height information. For example, an obstacle on the floor at a predetermined height can be overcome by a robot arm. Alternatively or additionally, there can be obstacles caused by objects hanging from a ceiling or other structure that do not reach the floor. Whenever "floor" is used here, it generally refers to a surface (also called a base) on which the robot can move.The simulation environment of the assembly in its assembled state can, for example, be arranged on a platform such as a table.
[0037] The simulation environment can be provided by another 3D model (e.g., a CAD model) or by a computer program encompassing the 3D model. Alternatively or additionally, the simulation environment can be derived from sensor signals (e.g., from optical sensors such as cameras, LiDAR, and / or radar sensors) in the real-world environment of the assembly in its assembled state.
[0038] The simulation environment can include a bounding box or a bounding volume around the assembly. A component can be considered disassembled when it has been removed from the bounding box or bounding volume.
[0039] The simulation environment can include a storage location (also: storage area or storage area) for each component or a subset of components to be disassembled. In one embodiment, there can be a common storage location where all disassembled components are collected. In another embodiment, components to be disassembled can be assigned to different storage locations based on their different properties. For example, at least part of the component's material might be recyclable, and the storage location can be determined according to the material.
[0040] In one embodiment, the simulation environment can also include simulation software 202508061
[0041] 7. Using the simulation software, the steps of determining the at least one stopping point and determining the collision-free dismantling path can be carried out.
[0042] The geometry of a robot contained in a digital geometry dataset can include the robot's spatial extent as well as its degrees of freedom. For example, the robot can be movable (e.g., travelable) on a plane. Alternatively or additionally, the robot can be height-adjustable and / or rotatable. Furthermore, an arm of the robot can have translational and / or rotational degrees of freedom. The translational and / or rotational degrees of freedom of the robot can each be specific to a part of the robot, such as the robot arm or an end effector mounted on the robot arm.
[0043] The robot's geometry can be represented by a CAD-generated 3D model (CAD model for short). The robot's CAD model can include one or more end effectors.
[0044] An end effector of a robot can be a handling element (also: manipulator), such as a holding element or a tool manipulator.
[0045] The holding element can be a mechanical holding element, in particular a gripping element (for example, a gripper or a suction gripper) or a hook. Alternatively or additionally, the holding element can magnetically hold a component comprising a magnetic material. Alternatively or additionally, the holding element can be an adhesive holding element (for example, a permanent or non-permanent adhesive bond) and / or a pneumatic holding element. A magnetic holding element can comprise a permanent magnet or an electromagnet. The holding element is one possible configuration of a handling element. The handling element serves to detect, hold, grip, move, and / or otherwise manipulate the component. The handling element can offer and / or perform further manipulation possibilities of the component, such as sensory detection of the component (e.g.,optically using a camera) and / or processing using a tool manipulator.
[0046] The tool manipulator can include a tool, such as a screwdriver, for mechanically manipulating a component. Alternatively or additionally, the tool manipulator can include a tool, such as a laser device, for non-mechanically manipulating the component. 202508061
[0047] 8
[0048] The end effector can include at least one actuator.
[0049] The end effector of a robot can be interchangeable. For example, the robot can include a suitable screwdriver for the step of loosening a mechanical fastener, such as a screw. Alternatively or additionally, the robot can include a cutting laser for breaking a weld. Furthermore, alternatively or additionally, the robot can include one or more holding elements (e.g., grippers) for picking up and / or holding (also: gripping) a loose component. As an alternative to replacing a single end effector of the robot, according to the invention, it is possible for a robot to have multiple end effectors and / or for multiple robots with different end effectors to be used in the disassembly of the assembly.
[0050] The handling element or tool to be used in each case, in particular component-specific, (or the respective type of end effector to be used, for example a predetermined screwdriver type or a laser device, in particular a cutting laser) for a disassembly step can be stored in the first disassembly data record.
[0051] The disassembly sequence can be determined by the successive detachability and / or gripping (or possibility of picking up and / or holding by one or more holding elements) of the components (e.g., from the outside in). The disassembly sequence can be independent of the use of a predetermined robot. For example, the disassembly sequence can be equally suitable for manual disassembly.
[0052] There can be multiple valid disassembly sequences. For example, there may be components that do not overlap (especially when viewed externally) and / or are not directly connected. In principle, such components can be disassembled in any order. However, a particular disassembly sequence may be preferred, for example, due to better maneuverability of the robot used in one or more disassembly steps. For instance, the risk of collision may vary depending on the disassembly sequence.
[0053] A holding point can be understood as a contact point on or at the component, particularly on its surface, where a robot (especially its end effector) can manipulate the component, such as holding, gripping, positioning, and / or moving it, etc. 202508061
[0054] 9
[0055] The holding point(s) on the component, which can be held (or grasped) by the holding elements (e.g., grippers) of at least one robot, may depend on the disassembly sequence and / or the remaining, not yet disassembled, assembly. For example, the component, in its disassembled state, may include further possible holding points that are inaccessible in the assembled or only partially disassembled state of the assembly due to other components or positioning on the floor or a wall.
[0056] In determining the disassembly path (also: disassembly trajectory, in short: path or trajectory) of the robot according to the invention, preferably all robot movements, such as picking up and holding (or gripping) the component and / or rotational and / or translational movements of the robot for releasing and moving the component to the storage location, are determined in such a way that a collision with the environment does not occur at any time.
[0057] In one embodiment, the at least one robot can be mobile, for example, mounted on one or more wheels. The wheels can be, for example, omni-wheels, which allow the robot to be maneuvered in a minimal space. In another embodiment, the at least one robot can be fixed at a point in the vicinity of the assembly. The embodiments can be combined if at least two robots are used in the disassembly of the assembly.
[0058] In each embodiment, a robot can comprise at least one robot arm to which an end effector (for example, the at least one holding element or another tool manipulator) can be mounted. The robot arm can comprise at least one segment that is movable translationally and / or rotationally on a surface, independently of the mobility of a mobile robot.
[0059] The disassembly path can comprise multiple partial paths (also called partial trajectories). For example, one partial trajectory might involve transporting a component from its mounted position to the storage location. Another partial trajectory might involve a robot movement in which the at least one holding element is moved to the at least one holding point. In a particularly simple example, where no additional tools are needed to detach the component from the rest of the assembly, the at least one holding element of the at least one robot can move from a starting position to the assembly, from there to the storage location, back to the assembly, back to the storage location, and so on, until it returns to a rest position after the last disassembled component has been placed at the storage location. 202508061
[0060] 10
[0061] If one or more components need to be detached, the disassembly path includes further sub-paths that bring the tool manipulator (in short: the tool) to the assembly, detach the component, and remove the tool (for example, a cutting laser) from the assembly.
[0062] Depending on the component being disassembled, different end effectors (especially holding elements and / or tools) may be used. The disassembly path may therefore include sub-paths for replacing the end effector.
[0063] The disassembly path is preferably determined iteratively, i.e., for disassembling a first component and subsequently disassembling a second component according to the disassembly sequence. Alternatively or additionally, the iterative determination of the disassembly path can, for a component, first include a step of loosening mechanical and / or non-mechanical connections and then moving the component translationally and / or rotationally from the assembly in its assembled state to the storage location.
[0064] Collision-free operation refers to the movement of the entire robot (or at least one robot) within the vicinity of the assembly. For the end effector(s), this specifically includes collision-free operation with parts of the assembly. Collision-free operation further encompasses the transport of the component to the storage location without any collisions with the environment, such as other assemblies or machines in the factory environment of the assembly to be disassembled.
[0065] If, during the determination of the disassembly path, it turns out that a collision is unavoidable, another disassembly data set (also classified as the first) with a different disassembly sequence can be read in, and an alternative disassembly path can be determined. Alternatively or additionally, another digital geometry data set for a different robot can be read in. For example, robots with different heights, widths, and / or degrees of freedom (e.g., whether or not they can rotate in place around an axis located within the robot) can be made available for disassembly.
[0066] To determine the disassembly path, the component and the robot end effector(s) (for example, the at least one holding element) can be considered in a common reference frame. For this purpose, CAD models from different digital datasets can be arranged in a common reference frame within the simulation environment. 202508061
[0067] 11
[0068] The dismantling path can be determined using the trained model and / or the search algorithm.
[0069] The search algorithm can be a try-and-error algorithm that tries out all possible robot movements per magazine, each based on the result of a previous time step.
[0070] The trained model can be a generative model. Alternatively or additionally, the trained model can be implemented using an artificial neural network, or artificial intelligence in general.
[0071] The trained model may have been trained using reinforcement learning (RL).
[0072] The trained model can include one or more agents, for example one agent for each component to be disassembled, and at least one agent for a robot.
[0073] The result of determining the collision-free disassembly path can be output and / or saved in a second digital disassembly data set. This second digital disassembly data set can include the disassembly sequence, indications for loosening mechanical and non-mechanical connections, and the determined collision-free disassembly path.
[0074] The control commands for at least one robot can be generated based on a second digital disassembly data set.
[0075] The control commands can be generated as machine-readable code, especially G-code, or converted into machine-readable code, especially G-code.
[0076] The control commands for the at least one robot may include control commands for a manipulator (or end effector) used during disassembly, control commands for a robot arm on which such a manipulator is arranged, and / or control commands for moving a mobile robot.
[0077] The disassembly of the assembly can actually be carried out using the generated control commands.
[0078] The digital simulation environment can represent a spatial environment of the assembly in its assembled state, up to the point of storage. In some embodiments, the digital simulation environment can be represented by a simulation program. (202508061)
[0079] 12
[0080] Loading the digital simulation environment may include starting the simulation program and / or representing the spatial environment of the assembled component and the storage location in the simulation program.
[0081] The steps of reading the assembly's data structure and reading the digital geometry dataset of at least one robot can refer to the simulation program. Loading the digital simulation environment can include representing a physical environment of the assembled assembly and its storage location within the simulation program.
[0082] The steps of optionally determining the disassembly sequence, identifying holding points on components, and determining the collision-free disassembly path can be performed within the simulation program. For example, the trained model can operate within the simulation program.
[0083] Within the simulation environment, it is possible that a collision-free disassembly path cannot be determined for a given disassembly sequence. In one embodiment, one or more alternative disassembly sequences can be checked until either a collision-free disassembly path is found or no other possible disassembly sequence remains. In this case, a collision-free disassembly path can be determined for a (particularly initial) partial disassembly. For example, it may be possible to manually complete the disassembly after automated partial assembly because a person handling the product has alternative routes that the robot(s) available for disassembly do not. In such a case, only control commands for the partial disassembly are generated.
[0084] The step of generating control commands for at least one robot can be performed outside the simulation environment. Alternatively or additionally, the control commands can control at least one real robot in the physical world of the assembly.
[0085] Before the actual execution and / or before generating the control commands for the at least one robot, the disassembly can be virtually simulated to verify the validity of the generated collision-free disassembly path. In one embodiment, the simulation environment can include a computer program that determines a simulation result for a collision-free disassembly path.
[0086] Individual steps of the procedure can also be applied to an assembly comprising a single component that is to be disassembled. In this case, however, 202508061
[0087] 13. No need to input a disassembly sequence.
[0088] The at least one holding element can comprise a gripper, in particular a suction gripper, and the digital data set of the component can have at least one gripping point as a holding point. Alternatively or additionally, the at least one holding element can comprise a pincer gripper, and the digital data set of the component can have at least two gripping points as holding points for gripping by means of the pincer gripper. Alternatively or additionally, the at least one holding element can comprise a hook. The digital data set of the component can have an eyelet or other opening suitable as a holding point for the hook. Furthermore, alternatively or additionally, the at least one holding element can comprise a permanent magnet or an electromagnet, and the digital data set of the component can include a magnetic area suitable as a holding point.
[0089] A suction gripper – as an example of a gripper – can grasp a component using a single gripping point. This can be particularly space-saving, but technically complex, for example, if a negative pressure and / or vacuum has to be created for suction.
[0090] For example, a gripper requires at least two gripping points where the gripper parts attach. While a gripper may be the simplest mechanical solution, it requires slightly more space on the component than, for example, a suction gripper.
[0091] The first disassembly data record can further include information about a tool manipulator required to remove the at least one component from the assembly in its assembled state. Alternatively or additionally, the assembly's data structure can also include information regarding the fastening of the at least one component in the assembled state. The collision-free disassembly path can include removing the at least one component from the assembly in its assembled state.
[0092] Information about a mechanically releasable fastening (e.g., by means of screw movements) can be stored in the assembly's data structure and / or in the initial disassembly data record. This information can be independent of whether the releasable fastening is performed manually or by means of a robot, or whether it is reversible.
[0093] The robot's collision-free disassembly path can include at least six-dimensional (6D) positional coordinates and / or translational movements and / or rotational movements. 202508061
[0094] The robot comprises 14 components. Optionally, it includes at least two different robot segments. The 6D position coordinates, translational movements, and / or rotational movements can be defined for each robot segment.
[0095] The robot can, for example, be movable on a platform (as an example of a base). A robot arm can be movable translationally and / or rotationally independently of its movement on the platform. An end effector can be mounted at one end of a robot arm and be movable independently of the robot arm's translational and / or rotational movements. For example, an end effector can perform a screwing motion to loosen a screw connection of a component while the platform is in a fixed position.
[0096] The storage location can be component-specific. Alternatively or additionally, the storage location can be specifically for a material used in the component.
[0097] The simulation environment can include a storage area with multiple different storage locations. For example, the components of an assembly can be separated and sorted according to their material. Alternatively or additionally, some components can be designated for reuse, while others are intended for disposal, material recycling, or other recovery. For example, pure plastic parts can be melted down and processed back into plastic. Alternatively or additionally, silicon can be recovered from a printed circuit board. In this way, material waste can be minimized.
[0098] The method may further include a step of determining whether mechanical release of the fastenings of the at least one component is possible. Alternatively or additionally, the method may include a step of determining whether the at least one component is fastened non-mechanically. If the presence of a non-mechanical fastening is determined, the method may include a step of determining a cutting line for releasing the at least one component from the assembly. Generating the control commands for controlling the robot along the collision-free disassembly path may further include generating at least one control command for releasing the cutting line, for example, by means of a cutting laser.
[0099] Non-mechanical fastening can involve welding or bonding. For example, a welded fastening can be removed by laser cutting on or near the weld. 202508061
[0100] 15
[0101] The generated control commands for the robot can control a laser beam of a cutting laser or another cutting tool, in addition to translational and / or rotational movements.
[0102] The step of determining at least one breakpoint on at least one of the at least one component can be performed using an optimization algorithm. Optionally, the optimization algorithm is trained using reinforcement learning (RL). Alternatively or additionally, the optimization algorithm itself can comprise a trained model (especially an RL model) and / or a generative model.
[0103] The optimization algorithm may be trained using machine learning (ML) or may include machine learning.
[0104] The machine learning (ML) and / or risk management (RL) can employ one of the strategies exploration and exploitation, or a combination of both. Exploration can involve trying out new or less familiar options (e.g., for choosing a breakpoint or a partial dismantling path) to gain new information and discover potential future advantages. Exploitation can leverage existing knowledge to select the best possible option based on current information in order to maximize immediate rewards.
[0105] In the step of determining the collision-free disassembly path of the robot, the trained model can be trained using reinforcement learning (RL).
[0106] In robot automation (RL), a component and / or a robot end effector (and / or an independently moving part of the robot, such as a robot arm) can be represented by an agent. Alternatively or additionally, the RL and / or the optimization algorithm can use a finite-horizon Markov Decision Process (MDP) and / or a rapidly exploring random tree.
[0107] Alternatively or additionally, the optimization algorithm and / or the RL can make use of a Deep Q Learning Network (DQN) and / or proximal policy optimization (PPO).
[0108] The optimization algorithm for determining the at least one stopping point on at least one of the at least one component and / or the trained model for determining the collision-free disassembly path of the robot can each be trained – in particular independently of each other or even individually – using similar assemblies to learn how to remove the component. Assemblies can be similar if, for example, they are 202508061
[0109] 16 include at least partially similar components, such as electrical or electronic assemblies with predetermined types of electrical connectors or sensors.
[0110] The optimization algorithm or the trained model can each (in particular, independently of each other) comprise one agent per component and / or holding element of the at least one robot. The agent can be trained to interact with the assembly's simulation environment in such a way as to maximize a reward function. Alternatively or additionally, the optimization algorithm and / or the trained model can each be trained for iterative decision-making per component in the disassembly sequence.
[0111] The optimization algorithm and / or the RL can include a reward function. Optionally, the reward function is evaluated per magazine and / or disassembly step. Alternatively or additionally, the reward function includes a bonus (e.g., one unit) per collision-free disassembly step, a penalty (e.g., one unit) per collision in a disassembly step, a penalty (e.g., 1 / 10 of a unit) per disassembly step, a bonus (e.g., one unit) per increase in distance to the assembly in the assembled state and / or per decrease in distance to the storage location, and / or a bonus (e.g., 100 units) upon reaching the storage location.
[0112] In general, the reward function can include components that each represent a bonus for successful progress in collision-free disassembly, and components that each represent a penalty for delaying, interrupting, or preventing collision-free disassembly. The size of a bonus or penalty can vary (especially relative to each other) depending on the importance and / or weighting of the outcome of the disassembly step, the time step, and / or the time required to successfully achieve a collision-free disassembly result. The time frame can be a predetermined period, for example, one second. The respective bonus or penalty can vary for each criterion. This allows for the generation of the shortest and fastest possible collision-free disassembly path.
[0113] The disassembly step can alternatively or additionally include loosening a component, transporting the component to the storage location, or a predetermined sub-step of loosening or transporting.
[0114] The simulation environment can include a bounding box or a bounding volume. The assembly can be completely contained within the bounding box or volume in its assembled state.
[0115] 17
[0116] The storage location can be outside the bounding box or the bounding volume.
[0117] At least one component can be classified as disassembled once it is located outside the bounding box or bounding volume.
[0118] The storage area can encompass a wide area, or even an entire surface, outside the bounding box or bounding volume.
[0119] The procedure may further include a step of determining at least one disassembly sequence. The disassembly sequence can be determined iteratively based on the detachability of a component from adjacent components. Optionally, determining the at least one disassembly sequence includes identifying component-specific handling elements (also: handling tools).
[0120] There can be several possible disassembly sequences, for example, if two or more components can be detached from the assembly in one disassembly step. The disassembly step can involve removing a component and / or start from a defined, partially disassembled assembly.
[0121] The method, according to the process aspect, can be used to control one or more robots during the disassembly of an assembly.
[0122] According to one aspect of the device, a computing device is provided for generating control commands to control the disassembly of an assembly by a robot. The computing device comprises a first data interface configured for reading in a data structure of an assembly comprising several components. The data structure includes a digital data set with at least one 3D surface representation for at least a subset of the several components. The data structure further includes information regarding the position and orientation for at least the subset of the several components in an assembled state of the assembly. The computing device further comprises a second data interface configured for reading in a digital geometry data set of at least one robot comprising at least one holding element. The computing device further comprises a loading module or a third data interface, which...which is configured to load a digital simulation environment for the assembly in its assembled state. The computing device further comprises a breakpoint determination module, which is configured to determine at least one breakpoint on at least one component using the 202508061.
[0123] 18. Read in data structure. Preferably, at least one holding point is determined for each component of the subset, wherein the at least one holding point is configured to hold the respective component by means of the at least one holding element of the at least one robot. The computing device further comprises a disassembly path determination module, which is configured to determine a collision-free disassembly path of the at least one robot by means of a trained model or a search algorithm. The disassembly path comprises a trajectory of the at least one robot for the component held by means of the at least one holding element from the assembled state to a storage location in the simulation environment of the assembly.The computing device further includes a generation module designed to generate control commands for controlling at least one robot along the collision-free disassembly path based on the determined collision-free disassembly path.
[0124] The computing device can include a fourth data interface configured to read in a first digital disassembly data set comprising a disassembly sequence for at least the subset of the assembly's multiple components. The disassembly path determination module can take into account the respective component that is next in line to be disassembled according to the disassembly sequence.
[0125] The calculating device can further comprise a first release determination module configured to determine whether mechanical release of the fastenings of the at least one component is possible. Alternatively or additionally, the calculating device can further comprise a second release determination module configured to determine that a non-mechanical fastening of the at least one component is present.
[0126] The computing device can include a cutting line determination module configured to determine a cutting line for detaching the at least one component from the assembly if the presence of a non-mechanical fastening is determined. Generating the control commands for controlling the robot along the collision-free disassembly path can further include generating at least one control command for detaching the cutting line (for example, by means of a cutting laser).
[0127] The computing device can include a disassembly sequence determination module configured to determine at least one disassembly sequence. The disassembly sequence can be determined iteratively based on the ease with which a component can be removed from adjacent components. Determining the at least one 202508061
[0128] 19
[0129] The disassembly sequence may include determining component-specific handling elements or tools.
[0130] The computing device can be configured to execute the procedure described in the procedure aspect. Alternatively or additionally, the computing device can include one or more features described in the procedure aspect.
[0131] According to one system aspect, a system for generating control commands for controlling the disassembly of an assembly by at least one robot is provided. The system comprises a computing device according to the device aspect, at least one memory from which data structures are read, and the at least one robot to be controlled. The system can be configured to execute the procedure described in the procedure aspect. Alternatively or additionally, the system can include one or more features described in the procedure aspect.
[0132] According to another aspect, a computer program product is provided with program elements that cause a computing device to execute the steps of the procedure for generating control commands to control the disassembly of an assembly by a robot according to the procedure aspect, when the program elements are loaded into a memory of the computing device.
[0133] According to a further aspect, a computer-readable medium is provided on which program elements are stored that can be read and executed by a computing device in order to carry out steps of the procedure for generating control commands to control the disassembly of an assembly by a robot according to the procedure aspect when the program elements are executed by the computing device.
[0134] The properties, features and advantages of this invention described above, as well as the manner in which they are achieved, will become clearer and more understandable in light of the following description and embodiments, which are described in more detail in connection with the drawings.
[0135] The following description does not limit the invention to the embodiments contained herein. Identical components or parts may be designated with the same reference numerals in different figures. In general, the illustrations are not to scale.
[0136] It is understood that a preferred embodiment of the present invention may also be any combination of the dependent claims or of the above embodiments with the 202508061
[0137] 20 each independent claim may be.
[0138] These and other aspects of the invention will become apparent from and be clarified by the embodiments described below.
[0139] BRIEF DESCRIPTION OF THE DRAWINGS
[0140] Fig. 1 is a flowchart of a process according to a preferred embodiment of the present invention;
[0141] Fig. 2 is an overview of the structure and architecture of a computing device according to a preferred embodiment of the present invention;
[0142] Fig. 3 shows an example of an assembled component designed as a power module, with a holding element of the robot that engages a first component for disassembly;
[0143] Fig. 4 shows the example of the assembly from Fig. 3, where the first component is located on the disassembly path from its installation position to the storage location;
[0144] Figs. 5A, 5B, 5C, 5D, 5E and 5F show details of the assembly from the example of Figs. 3 and 4 in different assembly states;
[0145] Figs. 6A, 6B and 6C show the holding element of the robot from the example of Figs. 3 and 4 from different perspectives;
[0146] Figures 7A, 7B and 7C show different times of disassembly of the exemplary assembly from Figures 3 and 4; and
[0147] Figs. 8A and 8B show the assembly and holding element of the robot from the example of Figs. 3 and 4 within a simulation environment.
[0148] Any reference numerals in the claims are not to be understood as limiting the scope of application.
[0149] Fig. 1 schematically shows an exemplary flowchart for a (particularly computer-implemented) method for generating control commands to control the disassembly of an assembly by a robot. The method is generally designated by reference numeral 100.
[0150] Procedure 100 comprises step S102 of reading a data structure of an assembly that includes several components. The data structure includes a digital 202508061
[0151] 21
[0152] Data set containing at least one 3D surface representation for at least a subset of the multiple components. The data structure also includes information regarding the position and orientation for at least the subset of the multiple components in an assembled state of the assembly.
[0153] Method 100 further comprises step S104 of reading in a digital geometry data set of at least one robot comprising at least one holding element. Method 100 further comprises step S106 of loading a digital simulation environment for the assembly in its assembled state.
[0154] Method 100 can include a step S107 of determining at least one disassembly sequence. The disassembly sequence can be determined iteratively based on the detachability of a component from adjacent components. Optionally, determining the at least one disassembly sequence in step S107 includes identifying component-specific handling tools. Alternatively or additionally, Method 100 can include a step S108 of reading in a first digital disassembly data set comprising a disassembly sequence for at least the subset of the multiple components of the assembly.
[0155] Method 100 further comprises a step S110 of determining at least one holding point on at least one component based on the read-in data structure S102. Preferably, at least one holding point S110 is determined on each component of the subset. The at least one holding point is designed to hold the respective component by means of the at least one holding element of the at least one robot. The at least one holding point is preferably determined for the respective component when it is its turn to be disassembled according to the disassembly sequence.
[0156] Method 100 further comprises step S114 of determining a collision-free disassembly path for the at least one robot using a trained model. The disassembly path comprises a trajectory of the at least one robot for the component held by the at least one holding element. The trajectory leads from the assembled state to a storage location in the assembly's simulation environment. Method 100 further comprises step S116 of generating control commands for controlling the at least one robot along the collision-free disassembly path based on the determined collision-free disassembly path (S114).
[0157] Procedure 100 may further include a step S118 of issuing the generated S116 control command to at least one robot. In a further step (not in 202508061)
[0158] 22
[0159] (as shown in Fig. 1) at least one robot can be controlled based on the control command to disassemble the assembly.
[0160] Method 100 may include a step S111 of determining whether mechanical release of the fastenings of the at least one component is possible. Alternatively or additionally, Method 100 may include a step S112 of determining that a non-mechanical fastening of the at least one component is present. Method 100 may include a step S113 of determining a cutting line for releasing the at least one component from the assembly if the presence of a non-mechanical fastening is determined S112. Furthermore, generating S116 of the control commands for controlling the at least one robot along the collision-free disassembly path may include generating at least one control command for releasing the cutting line (for example, by means of a cutting laser).
[0161] Fig. 2 schematically shows an exemplary computing device for generating control commands to control the disassembly of an assembly by a robot. The computing device is generally designated by the reference numeral 200.
[0162] The computing device 200 comprises a first data interface 202, configured for reading in a data structure of an assembly comprising several components. The data structure includes a digital data set with at least one 3D surface representation for at least a subset of the several components. The data structure further includes information regarding the position and orientation for at least the subset of the several components in an assembled state of the assembly. The computing device 200 further comprises a second data interface 204, configured for reading in a digital geometry data set of at least one robot comprising at least one holding element. The computing device 200 further comprises a loading module or a third data interface 206, configured for loading a digital simulation environment for the assembly in its assembled state.
[0163] The computing device 200 can include a disassembly sequence determination module 207, which is configured to determine at least one disassembly sequence. The disassembly sequence can be determined iteratively based on the (in particular mechanical or non-mechanical) detachability of a component from adjacent components. Optionally, determining the at least one disassembly sequence includes determining component-specific handling elements or handling tools.
[0164] The computing device 200 can include a fourth data interface 208, which is trained 202508061
[0165] 23 is for reading in a first digital disassembly data set, comprising a disassembly sequence for at least the subset of the several components of the assembly.
[0166] The computing device 200 further comprises a holding point determination module 210, which is configured to determine at least one holding point on at least one component, preferably on each component of the subset, based on the read-in data structure. The at least one holding point is configured to hold the respective component by means of the at least one holding element of the at least one robot. The determination of the at least one holding point can then take place when the respective component is next in line to be disassembled according to the disassembly sequence.
[0167] The calculating device 200 can include a first release determination module 211, which is configured to determine whether mechanical release of the fastenings of the at least one component is possible. Alternatively or additionally, the calculating device 200 can include a second release determination module 212, which is configured to determine whether a non-mechanical fastening of the at least one component is present. Furthermore, alternatively or additionally, the calculating device 200 can include a cutting line determination module 213, which is configured to determine a cutting line for releasing the at least one component from the assembly, particularly if the presence of a non-mechanical fastening is determined.
[0168] The computing device 200 further comprises a disassembly path determination module 214, which is configured to determine a collision-free disassembly path for the at least one robot using a trained model. The disassembly path comprises a trajectory of the at least one robot for the component held by the at least one holding element from the assembled state to a storage location in the simulation environment of the assembly. The computing device 200 further comprises a generation module 216, which is configured to generate control commands for controlling the at least one robot along the collision-free disassembly path (in particular based on the determined collision-free disassembly path). The generation of the control commands for controlling the robot along the collision-free disassembly path can further include generating at least one control command for releasing the cutting line, for example by means of a cutting laser.
[0169] The computing device 200 can include an output interface 218 configured to output the generated control commands to at least one robot. 202508061
[0170] 24
[0171] The computing device 200 can include an input-output interface 220. The input-output interface 220 can represent the first data interface 202, the second data interface 204, the third data interface 206, the optional fourth data interface 208, and / or the output interface 218.
[0172] The computing device 200 can comprise at least one processor 222. The at least one processor 222 can embody the breakpoint determination module 210, the disassembly path determination module 214, the generation module 216, the optional disassembly sequence determination module 207, the optional first solution determination module 211, the optional second solution determination module 212, the optional cutting line determination module 213 and / or load module for loading the simulation environment.
[0173] The computing device 200 can include at least one digital data storage device 224.
[0174] A system for generating control commands for controlling the disassembly of an assembly by a robot can include a computing device 200 and at least one memory from which data structures are read, as well as at least one robot with at least one holding element.
[0175] The technology for generating control commands to control the disassembly of an assembly by a robot (for example, comprising method 100, computing device 200, and / or the system) enables the efficient generation of robot movements for disassembly processes. This allows automation systems to react flexibly to changing assemblies (also: technical products). In turn, this allows the advantages of automation, such as increased speed, precision, and repeatability, to be optimally utilized in assembly disassembly.
[0176] The technique described herein can also be referred to as 3D-CAD based Robot Operation Generation for Disassembly Processes.
[0177] The technique according to the invention uses a trained model or a search algorithm (hereinafter referred to as "algorithm") for automated collision-free path calculation (also: determination of a collision-free disassembly path) and its integration into robotics processes. Input for the method can include the CAD model (as an example of the imported data structure) of an assembly, the geometry (in particular as a digital geometry data set) of the robot end effector (in particular at least one holding element of the robot), 202508061
[0178] 25
[0179] Gripping points (as an example of holding points) of the components (also: parts) and a bounding box (as an example of a part of a digital simulation environment) that defines a starting area (especially as a point, surface and / or space) - for example for a coordinate origin (and / or tool center point) - in a path planning (or a planning or determination of a trajectory and / or a disassembly path) are required.
[0180] In one embodiment, the algorithm or trained model uses the given information to calculate collision-free paths for disassembling individual components in meaningful sequences. These paths contain 6D position data (x, y, z coordinates, as well as roll, yaw, and pitch angles) and can then be converted into a format required for robot control, such as G-code. With further information about the assembly's position within the robot's workspace, the end effector (especially the holding element) can move to the predefined starting position in the assembly's coordinate system. From there, the calculated collision-free disassembly path is executed. Finally, the disassembled components are placed in predefined areas (also called storage locations).
[0181] According to one embodiment, a first step (for example, step S106 of method 100) includes loading the simulation environment. This contains the digital representation of an assembly (received, for example, as a data structure in step S102), the assembly workstation and / or assembly cell, as well as the digital representation (also: geometry dataset) of at least one industrial robot (received, for example, in step S104). The assembly is imported in a 3D CAD format, such as .step or .prt. At least one gripping point for the robot is defined on each component of the assembly. If the robot's end effector or holding element is a suction gripper, only one gripping point is required. If the robot's holding element is a gripper, two gripping points are required to define how the robot must grip.The gripping points must be defined in such a way that at least one component can be gripped by the robot without collision in every state.
[0182] The technology according to the invention enables the automated assembly and / or disassembly of assemblies or components (also: individual components) by robots. For example, a purchased assembly can be supplemented with a component. The path for the robot and component is automatically generated according to the technology described herein, without manual input or manual teaching.
[0183] According to one embodiment, in a second step (as an example of part of 202508061)
[0184] 26
[0185] Step S108 of method 100 determines which components the robot can grasp at the current point without causing a collision. For this purpose, the robot end effector (in particular the holding element) is positioned on the gripping point(s) of the 3D CAD geometries of the components, which were read out in the first step. The gripping points have a coordinate system with position and orientation, so that the coordinate system of the robot end effector can be set with the inverse orientation (in particular with respect to the gripping point of the component) to that of the gripping point of the component. In this embodiment, it is assumed that the assembly is positioned such that the robot is able to reach all relevant components of the assembly at any given time (for example, when they are in sequence during disassembly).
[0186] According to one embodiment, in a third step (as an example of a further part of step S108 of method 100), all accessible components are subsequently checked for their mobility. This is done by determining the degrees of freedom in the x, y, z, -x, -y, and -z directions. The component is moved alternately in one of the axis directions. For the component to be considered movable, it must be able to move in at least one direction without collision with other components. All components that are not movable are not checked for reversibility at this stage.
[0187] According to one embodiment, the fourth step (as an example of step S107 of method 100) is the determination of the assembly and disassembly sequence and assembly and disassembly paths. In this step, the components that are accessible to the robot are removed (in particular, the resulting components after the second and third steps). The verification of reversibility is performed in this embodiment using an optimization algorithm (in this example, using RL) that moves and / or rotates the component and the robot's end effector (in particular, the holding element) in the x, y, and z directions. In this embodiment, the algorithm or the trained model is capable of independently changing the component. If the algorithm decides...When the trained model is ready to change a component, the currently selected component is reset to its starting position, and the robot's end effector (specifically, the holding element) is placed on the next selected component. However, the algorithm can only select from the components resulting from the second and third steps. After each successfully removed component, the second and third steps are repeated. The fourth step is complete once the algorithm, or rather the trained model, has removed all components and thus determined a complete disassembly sequence. 202508061.
[0188] 27
[0189] According to one embodiment, the fifth step (as an example of step S114 of method 100) is the determination of the path from the component's assembly location to the removal position from the fourth step. In the fourth step, a component is considered removed as soon as the end effector (in particular, the holding element) is located with the component outside the bounding box of the entire assembly. The last position at the bounding box is stored, and the path from the component's position at the assembly workstation to the removal zone (and / or the storage location) is calculated using a further search algorithm (e.g., Rapidly-Exploring Random Tree and / or RL). The end effector (in particular, the holding element) is also attached to the component during this process.
[0190] According to one embodiment, in the sixth step (as an example of step S116 of method 100), the calculated position points (x, y, z) and orientations are automatically converted into control commands that enable the robot to execute the path precisely. This conversion is realized by specialized scripts for automated code generation for robot-specific control systems.
[0191] The preceding numbering of the steps in the above, combinable, exemplary embodiments is merely illustrative. Other names and / or subdivisions of steps are also included. For example, the disassembly sequence and the disassembly path, which comprises movements or a trajectory in a physical space, can be determined in different process steps.
[0192] The above embodiments are formulated for disassembly. Assembly can be carried out analogously; for example, the disassembly sequence can be the reverse of the assembly sequence (for example, the last assembled component is the first component to be disassembled). The disassembly path can comprise a trajectory of the assembly path traversed in reverse order.
[0193] The technology according to the invention comprises an approach which preferably uses 3D-CAD software as a simulation environment to automate the disassembly process of an assembly (also: of a product).
[0194] In one embodiment of the technology disclosed herein, assemblies are considered that contain components whose welded joints must be disconnected before disassembly. A key focus of the description of the technology is the determination of the disassembly path that a robot with an end effector (particularly as a holding element) must follow to remove a component from the assembly. In one embodiment, the path is determined using an optimization algorithm (particularly RL). This 202508061
[0195] 28
[0196] The optimization or RL algorithm is trained using a predefined reward function to achieve its optimization goal.
[0197] Fig. 3 shows a power module as an example of an assembly 300. In Fig. 3, the electrical connector 302 and screws 304 are shown as exemplary components with reference numerals. A gripper is shown as an example holding element at reference numeral 350. As shown in Fig. 3 and Fig. 4, the electrical connector 302 is the first or next component to be removed in the disassembly sequence. In Fig. 4, the electrical connector 302 is shown on its way from the assembly location to the storage location. For clarity, only the gripper 350 is shown in Fig. 3 and Fig. 4, without the robot on which the gripper 350 is mounted. Fig. 4 also sketches an example of a local component coordinate system for the electrical connector 302.
[0198] Figures 5A, 5B, 5C, 5D, 5E, and 5F show, by way of example, the power module (also: complete component) 300 of Figures 3 and 4 and its components 302 and 304 in different assembly and disassembly states. In Figure 5A, the assembly 300 is fully assembled. In Figure 5D, only a frame (e.g., a plastic one) is shown as the last component of the assembly 300 to be disassembled. The disassembly sequence can be stored in a first digital disassembly data set according to the technique described here.
[0199] Figures 5E and 5F each show a component, namely a screw 304 and the electrical connector 302, respectively, in their unassembled state. Figures 5B and 5C show the electrical connector 302 in perspective in its assembled state. The electrical connector 302, as an example of a component, can be contacted in various ways, e.g., by soldering, sintering, or laser welding. In one embodiment, the separation is achieved by a laser cut across the entire width of the connector next to the contact point. This is shown by way of example at reference numeral 506 in Figure 5B. Figure 5F schematically shows gripping points (as a kind of holding point) 502 on the upper surface of the contacts of the electrical connector 302. Figure 5E shows by way of example at reference numeral 504 a contact surface on the component 304 for a robot end effector comprising a screwdriver.At least one 3D surface representation of the components 302; 304 of the assembly 300 is contained in a data structure according to the technique described here, which may, for example, comprise a 3D CAD model of the assembly. The gripping points (which may be designed as gripping surfaces) 502 can be predefined in the 3D CAD model, for example, as a subset of all possible gripping points of the electrical connector 302, which can be contacted by the gripper 350 in the assembled state. The cutting lines 506 shown by way of example in Fig. 5B can be defined in a further 3D CAD model 202508061.
[0200] 29. For example, a second or further digital disassembly data set may include one or more cutting lines in addition to the disassembly sequence.
[0201] Figures 6A, 6B, and 6C show three different perspectives of the gripper 350 from Figures 3 and 4. Four suction grippers are shown at reference numeral 602, each contacting a gripping point 502 of the electrical connector 302 in Figure 6C, so that the electrical connector 302 can be held and / or transported by suction from the gripper 350. The suction grippers 602 shown as examples are included in the robot's digital geometry data set, which comprises, for example, a 3D CAD model of the holding element(s) (or, more generally, of robot end effectors).
[0202] Figures 7A, 7B, and 7C each show the assembly 300 with the holding element 350 from Figures 3, 4, 5A to 5F, and 6A to 6C. The rest of the robot, to which the holding element 350 is attached, is not shown in each figure. In Figure 7A, the electrical connector 302 is still attached to the assembly. In Figure 7B, the electrical connector 302 is lifted by means of the holding element 350 and moved to the right. In Figure 7C, the holding element 350 with the electrical connector 302 is lowered to place the electrical connector 302 at a storage location. The determined collision-free disassembly path in this embodiment is therefore a combination of vertical translations to avoid collisions with the rest of the assembly and horizontal translations to reach the storage location.
[0203] Figures 8A and 8B show two different perspectives of the assembly 300 with the holding element 350 in contact with it, as positioned in a simulation environment and / or assembly cell (also: assembly station) as shown in Figure 3. Reference numeral 802 shows a robot arm 802 with multiple joints as an example of a stationary robot. For disassembly, the holding element 350 acts as a robot end effector installed at the free end of the robot arm 802 (not shown here for clarity). Reference numeral 804 shows an example of another robot that can, for example, provide a cutting laser to obtain the cutting lines 506 of Figure 5. Reference numeral 806 shows an example of a predetermined area as a storage location. The assembly cell with the storage location (also: storage area) can be defined in a 3D CAD model as a simulation environment.The storage location 806 can be arranged outside a bounding box around the assembled assembly 300.
[0204] The input data (also: inputs) in an exemplary embodiment include the disassembly sequence and a 3D CAD model for each assembly with holding points, the robot(s), the cutting line, and the simulation environment. The individual 3D CAD- 202508061
[0205] 30
[0206] Models can be partially or completely combined into a single 3D CAD model.
[0207] The technique described here is generally applicable to the disassembly of an entire assembly. However, it can also be used to automatically disassemble a single component using a robot. The process automatically generates the path for the component and the robot, without requiring human operation (and / or training) of the robot.
[0208] In another embodiment of the method, a disassembly sequence is provided as input. This sequence can either extend to a specific component or encompass all components of the assembly (also: the product). In this embodiment, the product to be disassembled is provided as a 3D CAD model (assembly) and includes the 3D CAD models of the individual components (also: part components or parts). An example format for such an assembly is the STEP format (.stp) or the Part format (.prt). Gripping points or gripping surfaces (as examples of holding points) are provided for each component. Robot end effectors (or grippers, as examples of holding elements) are provided as counterparts to these gripping surfaces, and these are also provided with gripping points or gripping surfaces. A suitable robot end effector (or gripper) is provided for each component.A gripper is considered suitable if it offers gripping points or surfaces that match the gripping points or surfaces of the component. For components that are welded into a product, this embodiment provides a cutting line, which is a collection of edge segments from the 3D CAD model. This serves as the basis for a cutting laser to detach the component from the product so that it can be moved by a robot gripper. Furthermore, the simulation environment is provided as a 3D CAD model. This environment represents the real-world conditions in a virtual environment. Within the 3D CAD model of the environment, a storage area (also called a storage surface) is provided for disassembled components. The disassembled components are placed in this area.
[0209] At the beginning of the procedure according to the further embodiment, the 3D CAD models (in particular the data structure read in step S102 and the geometry data set read in step S104) are loaded within the simulation environment (in particular in step S106). The disassembly sequence is then loaded, and disassembly begins with the first component in the sequence. 202508061
[0210] 31
[0211] In one variant of this further embodiment, the first step checks whether the component next in the sequence has a cutting line in its 3D CAD model. If a cutting line is present, the process is simulated by having a calibrated laser cut the component along the cutting line. Since all loaded 3D CAD models have the same dimensions as the real components, a calibrated laser can "traverse" the cutting line. The actual implementation in this variant of the further embodiment takes place in the subsequent fourth step.
[0212] In one variant of this further embodiment, a second step is initiated after the component has been cut out, or if the selected component does not have a cutting line in the 3D CAD model. In this second step, a suitable gripper with its provided gripping points and / or gripping surfaces is placed onto the corresponding gripping points and / or gripping surfaces of the component (for example, as part of step S110).
[0213] In a further embodiment, in a third step the robot end effector, together with the selected component, is moved to a storage area for disassembled components. To determine the path of this movement, an optimization algorithm (in particular RL) is applied (as an example of step S114).
[0214] The variations of this further embodiment can be combined both with each other and with the other embodiments. The numbering of the steps is merely exemplary and not binding for the sequence of the procedure.
[0215] Within the RL method, the robot end effector and the component can be defined as a single agent whose optimization goal is to reach a placement surface in the shortest possible time and via the shortest possible path, avoiding collisions. The component is considered placed once the agent is completely above the placement surface. The underlying problem definition for the RL method is, for example, a Markov Decision Process (MDP) with a finite horizon, in which pathfinding is optimized. The environment is static and partially observable for the agent. The agent is trained via a reward function, which provides feedback on the effectiveness of the agent's actions through interactions with the environment.
[0216] The MDP is defined, according to one embodiment, as a tuple [S,A, Q,T,O,R, y] in which the agent can interact with the environment via a predetermined number of episodes with a predetermined number of journals t. An episode can be understood as a complete sequence of interactions between an agent and an environment, starting from a defined initial state and ending as soon as a 202508061
[0217] 32 so-called terminal state (final state) is reached. Within an episode, the agent traverses a series of states by performing actions and subsequently receives rewards. The agent's goal is to maximize the cumulative reward over the entire episode. The tuple includes an agent representing the respective component of the current step in the disassembly sequence and the corresponding robot end effector that grasps the component. The state space S is a 3D continuous object representing the environment (specifically encompassing the product, robot cell, robot, and / or storage area).An observation o from the observation space Q, which an agent receives for each journal t in state s, is its own x,y,z position and orientation within the environment, the current journal within the episode, the information on whether the component collides with another component, the distances from the xy, xz and yz plane of the component center to the xy, xz and yz planes of the assembly center and to the xy, xz, yz planes of the storage surface.
[0218] Q in the tuple [S,A, Q,T,O,R, y] is a partial view of all the states S of the environment. A is the shared action space, which is a continuous space and describes the movement and rotation in and around the x, y, and z directions or axes within a given font size. To achieve the optimization goal and fulfill the individual constraints, the agent is trained using the reward function R. The reward function is designed so that the agent learns to move the components from their installed position to the storage area in the shortest possible time, over the shortest possible path, and without collisions. The agent receives a positive reward when it moves away from the center point of the assembly. That is, when the xy, xz, or yz plane of the component's center point moves away from the xy, xz, or yz plane of the assembly's center point.Furthermore, a positive reward is awarded when the xy, xz, or yz plane of the component's center point approaches the xy, xz, or yz plane of the storage area's center point. A negative reward is awarded for a collision with another component or with the surrounding geometry (e.g., a table on which the assembly is placed or the robot). Additionally, the agent receives a negative reward for each magazine to incentivize initial movement. O is the observation function, which describes the probability of making a particular observation. T is the transition function, which describes the probability of transitioning to a new state after an action. F is the discount factor, which describes the importance of future rewards compared to current rewards.
[0219] In one variant of the further embodiment, the third step is repeated until the disassembly sequence, which was initially provided, has been completed. 202508061
[0220] 33
[0221] In the next (for example, fourth) step, the position points (e.g., x, y, z with orientation) calculated for the individual paths by the RL algorithm are transformed into G-code according to an exemplary implementation, so that a robot can be controlled in the real world.
[0222] The method (also: process) by which a disassembly (also: removal) of one or more components can be carried out according to the technique presented here can, in an exemplary embodiment, be divided into a series of (for example, three) steps which are carried out by means of simulation of (in particular, 3D CAD) software, and at least one (for example, fourth) step which is carried out in the real environment.
[0223] The disassembly simulation can be started by loading a set of inputs (also: input, in particular the assembly's data structure, the robot's geometry data set, and the simulation environment). A disassembly sequence can then be retrieved. As a first step, it can be determined whether the 3D CAD model has a cutting line. If so, a laser cutting and / or welding process along the cutting line can be simulated (for example, according to step S113 of procedure 100). For this purpose, a calibrated laser can be simulated. Subsequently, in a second step, a holding element (e.g., a gripper) – for example, symmetrically and / or as indicated in Fig. 6C at reference numerals 502 and 602 – can be placed onto a component via holding points (or gripping points) (for example, according to step S110 of procedure 100).In a third step, a disassembly path (for example, as shown in snapshots in Figs. 7A, 7B, and 7C) to the storage location or storage surface can be determined. In this third step, 3D disassembly paths can be found and / or optimized using RL and / or Reward and Action (for example, as step S114 of procedure 100).
[0224] If the disassembly sequence is also determined, different (especially independent) algorithms and / or (especially trained) models can be used to determine the disassembly sequence and the disassembly path.
[0225] In the real environment, the disassembly can actually be carried out (especially using the control commands generated in step S116 of procedure 100).
[0226] The technology according to the invention differs from the prior art by means of automated path calculation. The algorithm calculates collision-free paths for the disassembly of individual components in meaningful sequences, based on a digital 202508061
[0227] 34
[0228] Data structure (e.g., the CAD model) of the assembly, the geometry of the robot end effector (especially designed as a holding element) and predefined holding or gripping points.
[0229] The technology according to the invention offers improved flexibility and adaptability compared to the prior art. The developed method can react quickly and efficiently to changing products and small batch sizes without relying on time-consuming planning or training processes.
[0230] The technology according to the invention is further distinguished from the prior art by improved efficiency and time savings. By applying the developed algorithm, collision-free disassembly paths can be calculated automatically, leading to efficient disassembly and savings in time and resources.
[0231] This means that the advantages of automation, such as increased speed, precision and repeatability, can be fully exploited even when disassembling components.
[0232] The designation of a coordinate system as x, y, z in technical examples is merely illustrative. Any other name for a Cartesian coordinate system is possible, as is the choice of a different type of coordinate system, for example, polar or spherical coordinates.
[0233] As described in the accompanying patent application 102024207894.8, whose priority is claimed and which focuses on manual disassembly by a maintenance technician, a computer-aided determination of a disassembly sequence (for example, within the framework of a maintenance process) for an assembly (also: technical product) composed of several individual components (also: parts and / or sub-objects) can include the following steps: a) Providing a data set (e.g., a CAD data set) with a 3D
[0234] Product geometry (also: at least 3D surface representation) of the technical product, which includes a partial geometry (also: at least 3D surface representation) for each individual component, b) selection of a component to be serviced (or disassembled) within the product, c) automated determination of at least one contact chain, wherein the respective
[0235] d) Contact chain represents a linear sequence of components in direct contact with each other, d) Selecting at least a first subset of components, each of which is in a common contact chain with the component to be serviced, 202508061
[0236] 35 e) Automated testing of components of the first subset with regard to geometric accessibility for a handling element (also: tool manipulator with a predefined manipulator geometry) and forming a second subset from the successfully tested components, f) Automated testing of components of the second subset with regard to their mobility with respect to one or more degrees of freedom and forming a third subset from the successfully tested components, g) Automated testing of components of the third subset with regard to their removability from the product area and forming a fourth subset from the successfully tested components, h) Simulating the disassembly of a component of the fourth subset and updating the product geometry to the resulting state of the product,
[0237] Steps e), f), g), and h) are executed within a 3D geometric simulation environment. Steps d), e), f), g), and h) are repeatedly executed in a loop based on the current product geometry until the component to be serviced is exposed. The repeated execution of step h) thus establishes a disassembly sequence.
[0238] The individual sub-objects do not overlap, particularly spatially, and contact (i.e., touching) between sub-objects occurs when their distance within this geometry dataset is zero. Such a geometry dataset may, for example, be available from the product manufacturer as part of the development process and may also be made available to others by the adjuster. Alternatively, it can also be subsequently determined from a physically existing product using known reverse engineering processes.
[0239] In step c), at least one contact chain, and in particular a plurality of contact chains, is determined. A "contact chain" is defined as a linear sequence of components in contact with one another. At least some of the determined contact chains expediently include the component to be serviced. The contact chains are determined automatically based on the geometry dataset and the sub-geometries it contains. Starting with the sub-geometry of a starting object (e.g., a sub-geometry in the center of the product or the component to be serviced), an iterative process can first determine the components in direct contact (direct neighbors), then their direct neighbors, and then their direct neighbors, and so on. The topological information thus determined can, for example, be represented in a tree diagram. 202508061
[0240] 36
[0241] Individual linear contact chains can be derived from such a topological tree structure, with a contact chain being derived from each linear path within the tree structure. The end of such a contact chain is reached when no further components can be added to a sequence of direct neighbors that are not already present in the existing contact chain. Individual components can, in principle, be contained in multiple branches of the tree structure and thus also in multiple contact chains. Only the multiple occurrence of the same component within a linear contact chain is not permitted.
[0242] In particular, a unique set of such contact chains can be automatically determined from a geometry dataset (or a predefined subset of its constituent sub-geometries) given a starting object. This can be achieved with a relatively simple algorithm that, starting from the initial object, determines the distances to the other components (sub-geometries) and identifies each component as a neighbor when the distance is zero. This step is repeated for each identified neighbor. This process continues until no new neighbors are found and all possible contact chains have been identified.
[0243] In step d), a first subset of components is formed using the contact chains thus identified. The components in this first subset are each located in a common contact chain with the component to be serviced, meaning they are in direct or indirect contact with it. The individual components in the first subset do not necessarily have to be located entirely within the same contact chain. The selection in step d) can be made such that, for example, a subset of the identified contact chains is included. For instance, the chains considered can be limited to a specific chain length. Alternatively or additionally, the first subset can be restricted to include only components from the terminal sections of the respective contact chains.In steps d) to h), particularly promising components can be tested for their reducibility and then disassembled from the product within a simulation.
[0244] In general, the sequence of the aforementioned process steps is not fixed to the described order. However, it is advantageous if at least steps d), e), f), and g) are executed in the stated order. This allows a considered subset of components to be progressively narrowed down until at least one demountable component is found. To enable this search efficiently, steps d) through h) are executed repeatedly within a loop. In particular, a sequence from the 202508061
[0245] 37
[0246] Steps d) to h) are repeated until the component to be serviced is exposed. This constitutes the termination criterion of the aforementioned loop. "Exposed" here means, in particular, that the component to be serviced is either itself disassembled (e.g., if it is to be replaced or repaired outside the product) or that it is at least accessible to a maintenance or inspection tool.
[0247] In the described loop, it is not necessary to reach the final step h) in every iteration. In particular, a loop iteration can be aborted if the currently considered (first, second, third, or fourth) subset is empty. Thus, if no geometrically accessible component is identified in step e), the subsequent steps need not be executed in that iteration, and the loop can proceed directly to the next iteration with a different first subset of components. The same applies to the subsequent check steps f) and g). For the next loop iteration after an abort, a modified selection can then be made, particularly in step d). At least one (especially objective) selection criterion can be changed. The components that were previously checked unsuccessfully do not need to be checked again.In this way, the components eligible for disassembly can be checked for their removability in a convenient sequence, which increases the efficiency of the automated process. For example, the individual components can be checked from the perspective of the component being serviced, in a sequence from the outside in and / or from closer to more distant components.
[0248] In summary, the successful loop iterations (i.e., those completed up to step h) are repeated until enough components have been disassembled to sufficiently expose the component requiring maintenance. This disassembly is performed within the simulation environment, and each sub-step h) of the sequential disassembly results in an updated product geometry. This updated product geometry also leads to an update of the derived contact chains. This can be achieved very simply by removing the disassembled component and all connected components from the contact chains of the previous product geometry. With these updated contact chains, a selection of promising candidates for further disassembly can then be made, and at least one more component suitable for disassembly can be identified with one or more loop iterations.Overall, a feasible disassembly sequence is derived from the sequence of simulated disassembly steps performed (h). 202508061.
[0249] 38
[0250] It is not strictly necessary for the process to be aborted after the first viable disassembly sequence is found. Multiple viable disassembly sequences can be determined by repeatedly executing the described loop until the termination criterion is reached, thereby identifying different sequences. Optionally, a selection can be made from this plurality of viable sequences, particularly based on a reward function whose value is determined during the simulation of the sequential disassembly. Such a reward function could, for example, incorporate the path length of the simulated component movements and / or the spatial proximity to a prohibited geometric state (such as a collision state).
[0251] Within step c), a topological tree structure can be determined, whereby this tree structure hierarchically represents a plurality of direct contacts between individual components of the technical product and contains a plurality of linear contact chains as subpaths of the tree structure. In other words, the topology of the direct contacts of the individual components can be represented by a linearized hierarchical tree structure. In particular, all direct contacts (touches) of neighboring components can be represented by connections in such a hierarchical tree structure. The individual components are accordingly represented by nodes in this tree structure. The tree structure is thus a graph that, with the help of nodes and edges (connections), represents the direct contacts of individual components in the technical product and thus characterizes a topology of the neighborhood relationships.This topological tree structure is "linearized" in the sense that individual branches can continue to branch out, but there are no connections between them. Such a linearized tree structure is therefore loop-free. It comprises only linear contact chains of components in direct contact with one another. A single linear contact chain is formed by repeatedly adding components that are in contact with the preceding component, starting from a given initial component, and which were not previously part of the chain. Each branch terminates in a terminal element of the chain if no additional direct neighbors are found for that element. The various possible branching configurations of such linear contact chains can be efficiently combined in a higher-level tree structure.If several components in a higher-level product actually touch in a ring-like fashion, the topology of the contacts can still be represented in a tree structure of linear contact chains, since an already contained element is not added to the contact chain and thus a ring closure is avoided. Because of this dependency on the "history" of the already existing 202508061.
[0252] The tree structure of the 39 components of the respective contact chain depends on the choice of the starting point (i.e., the starting component). The starting point can be, for example, the component to be serviced or, preferably, a central component of the product, such as the component at the center of mass or the geometric center of the product geometry. In general, the creation of the tree structure or the contact chains can be fully automated using a predefined algorithm and without user interaction.
[0253] In step d), the initial subset formed can be limited to those components contained in a predefined selection of contact chains. In other words, a subset of all identified contact chains can be selected, and only the components represented in these selected contact chains are considered in the initial subset. A chain length, specifically the length of the chain segment from the component selected in step b), can be used as a criterion for selecting the contact chains to be considered.
[0254] Alternatively or additionally to such a pre-selection of contact chains, further criteria can be considered for the selection made in step d). For example, the first subset can be limited to those components that are represented in the respective contact chain by a terminal chain element or are at most separated from such a terminal chain element by a predefined limit of intermediate elements. "Terminal chain elements" represent components that constitute the endpoint when forming the contact chain under consideration, i.e., they form the last component that can be added. Such terminal chain elements are relatively likely to be found at the periphery of the product. Accordingly, they represent promising starting points for a feasible disassembly process.The specified maximum value for intermediate elements can, for example, lie in a range between one and five, particularly between one and three. Such a criterion allows for a pre-selection in favor of components located near the periphery.
[0255] Alternatively or additionally, another predefined criterion can be applied to the selection made in step d), for example an assignment to a predefined zone (e.g. a specified maintenance area) and / or a distance to the component to be serviced that is below a specified limit value.
[0256] The selection in step d) can be fully automated, i.e., in particular made using an automated algorithm based on one or more predefined criteria, which 202508061
[0257] 40 may be modified in a predetermined manner in order to increase the number of components to be tested for deniability if the test is unsuccessful.
[0258] In step d), at least one predetermined selection criterion can be used, which is modified, in particular broadened, at least between some of the loop iterations. This allows a wider or different initial subset of components to be formed in subsequent loop iterations by applying broadened criteria and then inspected as described, if a previous narrow selection did not yield a positive test result.
[0259] The procedure can be advantageously designed such that whenever one of the subsets formed during a loop iteration is empty, the current iteration is terminated and the process proceeds to the next iteration. Thus, if, for a given selection according to step d), none of the components in the first subset pass the sequential deniability test, then the process can jump to another iteration without executing step h). In this next iteration, the first subset to be tested can be determined using modified criteria and thus contain different components for which there is a prospect of a successful deniability test.
[0260] The tool manipulator can be a robotic manipulator. For example, in step e), geometric accessibility for a robot arm or other robotic device can be checked, with which, in particular, a disassembly tool can be guided.
[0261] Following the definition of a disassembly sequence, the following optional steps can be performed: i) Reading previously saved information about the assignment of a handling element (also: tool) to at least one component that is included in the defined disassembly sequence and j) Checking the respective component with regard to its disassembly capability with an assigned tool within the 3D geometric simulation environment.
[0262] In particular, validation of the respective disassembly sequence can be carried out under the condition that the disassembly capability of the respective component has been successfully tested with at least one associated tool. 202508061
[0263] 41
[0264] Information about the assignment of one or more tools to a particular component can be stored, for example, within so-called "PMI data" (Product Manufacturing Information) as part of a CAD dataset. Such PMI data might include, for instance, information on which components can be loosened, moved, or disassembled using a specific size open-end wrench, Torx wrench, or Allen wrench. This PMI data can also contain information about the materials used in an adhesive or soldered joint and / or the process parameters to be observed when creating or breaking such an irreversible connection.
[0265] In the subsequent step j), the proposed disassembly sequence can be checked to determine whether the disassembly of the respective components is possible with the assigned tool. This check is also performed within the 3D geometric simulation environment. It is not necessary to assign a tool and perform such a check for all components included in the disassembly sequence. In this embodiment, it is only essential that such an assignment and corresponding check for the applicability of the assigned tool is carried out for at least one component. Only if the check for at least one component is successful is a corresponding validation performed, indicating that a different tool must be selected for the disassembly step under consideration.If necessary, several tools can be assigned to a component, and depending on the test result in step j), one of the possible tools can be selected for carrying out the maintenance process (or for the instruction).
[0266] After defining a disassembly sequence, the following additional step can be performed: k) automated creation of instructions for a disassembly and / or assembly process, wherein the instructions are created using a generative model implemented in an artificial neural network, where an input data set is used for input into the generative model, which includes the defined disassembly sequence and a specification for the type of instructions to be created.
[0267] This can be done regardless of whether a prior assignment and verification of suitable tools has taken place according to the optional steps i) and j). With other 202508061
[0268] 42
[0269] In other words, an artificial intelligence model is used here to generate at least a computer-assisted suggestion for such instructions. A particularly advantageous aspect of this automated generation is that no further user interaction is required, and the generative model can independently generate the instructions based on the determined disassembly sequence and a specification, e.g., for the output format.
[0270] A "generative model" is a type of artificial intelligence model known in the state of the art, based on the statistical modeling of conditional probabilities. Starting with input that provides the so-called context, this model can automatically generate text, images, and other media. A particularly well-known and successful example of such a model is the so-called "Generative Pre-trained Transformer" (GPT). Over the past few years, this type of model has proven very successful in generating natural language, especially in its implementation in the chatbot Chat-GPT. Accordingly, the generative model can advantageously be a so-called large language model (LLM).
[0271] The implementation of such a statistical generative model in a computer is achieved via an artificial neural network, that is, a network of artificial neurons (nodes). Such neural networks typically have a multitude of layers, in particular an input layer for inputting the data set and an output layer for outputting the data set. Between these layers, there is typically a multitude of hidden layers, usually with a complex substructure. The number of these hidden layers correlates with the so-called depth of the neural network. During the training (i.e., machine learning) of such a neural network, the network's internal structure changes, especially through adjustments to the weights of the connections between the individual nodes, but also potentially through the addition or removal of new nodes.Deleting nodes and / or connections between individual nodes.
[0272] The input data set for such a generative model is also called a prompt and includes specifications for the type of instruction manual to be generated. These specifications can include, for example, the target audience for the generated text and the level of detail required for the individual steps (for disassembling the individual components). In particular, adherence to a standardized format can be required. The "instruction manual" can generally comprise disassembly instructions and / or assembly instructions. (202508061)
[0273] 43
[0274] The disassembly instructions comprise a sequence of disassembly steps, which can be modeled on the disassembly steps simulated in step h). Similar disassembly steps (e.g., for identical components) can be combined in a single set of instructions. Corresponding assembly instructions can also be part of such a set of instructions and can, in particular, contain the determined disassembly steps in reverse order and describe them as assembly steps with the components moving in the opposite direction.
[0275] Generally, the generative model is particularly well-suited for use within a Retrieval Augmented Generation System (RAG system) or for being called within such a system. A Retrieval Augmented Generation System (RAG system) is a software system that combines information retrieval (i.e., the retrieval of information, especially from a database) with a large language model. A query (i.e., a prompt) entered into the system is augmented by the result of a search initiated within the RAG system in an information source (e.g., a knowledge base or the internet). The augmented prompt is then passed to the large language model to generate output that is particularly well-suited to the specifications. A database containing existing instructions in common formats or from relevant technical fields can be used as an information source.This ensures that a uniform format and consistent use of technical terms are maintained during the automated creation of the instructions.
[0276] In step e), the geometric accessibility of the respective component can be checked using a search algorithm. Within a 3D geometric simulation environment, this algorithm searches for at least one possible path, starting from a defined starting point of the tool manipulator, to bring the tool manipulator into contact with the component under inspection while avoiding collisions. Such search algorithms are well-known in the field of automation technology. For example, artificial intelligence methods as well as classical search algorithms can be used. As part of such a path search, the value of an optimization function can be determined for a proposed path segment. If several possible paths or path segments are selected, optimization can then be performed with respect to this optimization function.For example, the length of the found path and / or its proximity to forbidden geometric states (especially collision states) can be included as terms in the optimization function. Overall, the check according to step e) is successful if at least one possible path is found.
[0277] 44, with which the tool manipulator can be brought into contact with the component to be tested without a collision occurring.
[0278] In step f), a plurality of translational and / or rotational movements of the respective component with respect to a plurality of local principal axes of inertia of that component can be executed within a 3D geometric simulation environment and checked for collisions. In other words, the mobility of the respective component with respect to translation and / or rotation along one of its local principal axes is checked. This typically allows for a relatively quick and efficient mobility check by examining translational and rotational movements along typically three principal axes of inertia. For symmetrical components, the number of axes to be checked can be further reduced, so that a maximum of six degrees of freedom need to be checked in total. The successfully checked motion modes can be advantageously saved in this step.
[0279] In step g), the disassembly capability of the respective component can be checked within the 3D geometric simulation environment using a search algorithm. Starting from the component's current position, this algorithm searches for at least one possible path to move the component to a predefined disassembly zone while avoiding collisions. This search algorithm can be designed analogously to the one described above in connection with step e). The axes of movement successfully checked in the preceding step f) can advantageously be used as the initial direction of movement.
[0280] Generally advantageous, at least steps e), f), g), and h) can be fully automated without user interaction. In other words, determining at least one disassembly sequence requires no interaction other than, if necessary, providing the product geometry, selecting the component to be serviced, and / or making a selection in step d), or specifying objective selection criteria for the automated selection process in step d). Thus, the entire instruction for a maintenance process can be generated essentially automatically.
[0281] When executing step g), the resulting fourth subset may contain several components. In the subsequent step h), a selection can then be made from these successfully tested components, so that only one selected component is disassembled before the updated product geometry is determined. This decision can also preferably be automated, particularly on 202508061.
[0282] 45
[0283] Basis of values determined within one of steps e), f), g) and / or h) by means of a simulation for the respective component
[0284] Overall, several viable disassembly sequences can be automatically determined using the described process. In such a case, a decision can optionally be made in favor of a preferred disassembly sequence. This decision can also be made automatically, particularly based on values determined by a simulation for the respective disassembly process. Specifically, in step h) of the respective simulation, the value of an optimization function can be determined, which, for example, considers the path length for the object to be disassembled and / or the proximity to collision conditions as a term.
[0285] By summing the individual values obtained in this way, an overall value for a higher-level optimization function (a reward) can be calculated, either for a single component or for the entire sequence of disassembly steps. These simulated values can each serve as a criterion for deciding between several components to be disassembled in one step h) and / or overall between possible disassembly sequences.
[0286] In the context of the technology described here, a power module is shown as an example assembly in the figures. However, the technology is not limited to power modules or other electronic assemblies. For example, the assembly (or the technical product) could relate to the wheel of a motor vehicle, with at least partial disassembly required, for example, to replace a worn brake disc.
[0287] Regardless of the grammatical term used, the term encompasses people with male, female, or other gender identities.
[0288] Unless explicitly described otherwise, individual embodiments or their individual aspects and / or features described with reference to the drawings may be combined or interchanged without limiting or extending the scope of the described invention, provided such combination or interchange is meaningful and in line with the present invention. Advantages described with respect to a particular embodiment of the present invention or with respect to a particular figure are, wherever applicable, also advantages of other embodiments of the present invention. 202508061
[0289] 46
[0290] Reference symbol list
[0291] 100 methods for generating control commands for a dismantling robot
[0292] S102 Step of reading a data structure of an assembly
[0293] S104 Step of reading a geometry data set of a robot
[0294] Step 5106 of loading a simulation environment
[0295] 5107 Step of determining a disassembly sequence
[0296] Step 5108 of reading a digital disassembly data set
[0297] Step 5110 of determining one or more holding points on the component
[0298] Step 5111 of determining whether mechanical loosening is possible
[0299] 5112 Step of determining that a non-mechanical fastening is present
[0300] Step 5113 of determining a cutting line
[0301] Step 5114 of determining a collision-free dismantling path
[0302] S116 Step of generating control commands for a robot
[0303] S118 Step of issuing the control command
[0304] 200 calculating device
[0305] 202 First data interface
[0306] 204 Second data interface
[0307] 206 Charging module or third data interface
[0308] 207 Disassembly sequence determination module
[0309] 208 Fourth Data Interface
[0310] 210 Stopping Point Determination Module
[0311] 211 first solution determination module
[0312] 212 second solution determination module
[0313] 213 Cutting line determination module
[0314] 214 Dismantling path determination module
[0315] 216 Generation module
[0316] 218 Output interface
[0317] 220 Input / Output Interface
[0318] 222 processor
[0319] 224 storage
[0320] 300 assembly (power module)
[0321] 302 Component (Electrical Connector)
[0322] 304 Component (screw)
[0323] 350 Holding element (robot end effector)
[0324] 502 Gripping point 202508061
[0325] 47
[0326] 504 Application surface on the component for a robot end effector
[0327] 506 Cutting line
[0328] 602 Suction grippers
[0329] 802 Robot (Robot arm with gripping function)
[0330] 804 robot (with cutting laser function)
[0331] 806 storage space
Claims
1. 202508061 48 Patent claims 1. Computer-implemented method (100) for generating control commands for controlling the disassembly of an assembly (300) by a robot, wherein the method (100) comprises the following steps: Reading (S102) a data structure of an assembly (300) comprising several components (302; 304), wherein the data structure comprises a digital data set with at least one three-dimensional surface representation for at least a subset of the several components (302; 304), wherein the data structure further comprises information regarding the position and orientation for at least the subset of the several components (302; 304) in an assembled state of the assembly (300); Reading (S104) a digital geometry data set of at least one robot comprising at least one holding element (350); Loading (S106) a digital simulation environment for the assembly (300) in the assembled state; Determine (S110), based on the read-in (S102) data structure, at least one breakpoint on at least one component (302; 304), preferably on each component (302; 304) of the subset, wherein the at least one breakpoint is designed to hold the respective component (302; 304) by means of the at least one holding element (350) of the at least one robot; Determine (S114), using a trained model, a collision-free disassembly path of the at least one robot, wherein the disassembly path comprises a trajectory of the at least one robot for the component (302; 304) held by means of the at least one holding element (350) from the assembled state to a storage location in the simulation environment of the assembly (300); and generate (S116), based on the determined (S114) collision-free disassembly path, control commands for controlling the at least one robot along the collision-free disassembly path.
2. Method (100) according to claim 1, further comprising the step: Reading (S108) a first digital disassembly data set comprising a disassembly sequence for at least the subset of the multiple components (302; 304) of the assembly (300); 202508061 49 wherein the step of determining (S110) the at least one holding point on the at least one component (302; 304) for the respective component (302; 304) which is next in line to be disassembled according to the disassembly sequence is carried out.
3. Method (100) according to one of the preceding claims, wherein the at least one retaining element (350) comprises a suction gripper, and wherein the digital data set of the component (302; 304) has at least one gripping point as a holding point; comprises a gripper, and wherein the digital data set of the component (302; 304) has at least two gripping points as holding points; includes a hook, and wherein the digital data set of the component (302; 304) has an eyelet or other opening suitable as a holding point for the hook; and / or includes a permanent magnet or an electromagnet, and wherein the digital data set of the component (302; 304) includes a magnetic area suitable as a holding point.
4. Method (100) according to one of the preceding claims, wherein the first disassembly data set further comprises information about a tool manipulator which is required to detach the at least one component (302; 304) from the assembly (300) in the assembled state; and / or wherein the data structure of the assembly (300) further comprises information regarding the fastening of the at least one component (302; 304) in the assembled state of the assembly (300); wherein the collision-free disassembly path comprises detaching the at least one component (302; 304) from the assembly (300) in the assembled state.
5. Method (100) according to any of the preceding claims, wherein the collision-free disassembly path of the robot comprises at least six-dimensional, 6D, positional coordinates and / or translational movements and / or rotational movements; optionally wherein the robot comprises at least two different robot elements, and wherein the 6D positional coordinates, the translational movements and / or the rotational movements are determined for each robot element. 202508061 50 6. Method (100) according to one of the preceding claims, wherein the storage location is component-specific, and / or wherein the storage location is particularly specific for a material installed in the component (302; 304).
7. Method (100) according to any one of the preceding claims, further comprising the steps: Determine (S111) whether it is possible to mechanically release the fastenings of the at least one component (302; 304); Determine (S112) that a non-mechanical fastening of the at least one component (302; 304) is present; and Determine (S113), if the presence of a non-mechanical fastening is determined (S112), a cutting line (506) for releasing the at least one component (302; 304) from the assembly (300); wherein the generation (S116) of the control commands for controlling the at least one robot along the collision-free disassembly path further comprises generating at least one control command for releasing the cutting line, preferably by means of a cutting laser.
8. Method (100) according to one of the preceding claims, wherein the step of determining (S110) at least one stop point on at least one of the at least one component (302; 304) is performed by means of a trained reinforcement learning, RL, model or by means of an optimization algorithm, optionally wherein the optimization algorithm is trained by means of reinforcement learning, RL.
9. Method (100) according to one of the preceding claims, wherein the trained model is trained in the step of determining (S114) the collision-free disassembly path of the robot using reinforcement learning, RL.
10. Method (100) according to one of the preceding claims, wherein the optimization algorithm or the trained model comprises one agent per component (302; 304) and holding element (350) of the at least one robot, wherein the agent is trained to interact with the simulation environment of the assembly (300) in such a way as to maximize a reward function; and / or wherein the optimization algorithm or the trained model is configured for iterative decision-making per component (302; 304) in the disassembly sequence. 202508061 51 11. Method (100) according to any one of claims 8 to 10, wherein the optimization algorithm and / or the reinforcement learning, RL, comprises a reward function, optionally wherein the reward function is evaluated per magazine and / or disassembly step and / or comprises at least one of the following: A bonus, in particular of one unit, for each collision-free disassembly step; a penalty, in particular of one unit, for each collision in a disassembly step; a penalty, in particular of 1 / 10 of a unit, for each disassembly step; A bonus, in particular of one unit, for each increase in distance to the assembly (300) in the assembled state and / or for each decrease in distance to the storage location; and A bonus, specifically of 100 units, upon reaching the storage location.
12. Method (100) according to any of the preceding claims, wherein the simulation environment comprises a bounding box or a bounding volume, wherein the assembly (300) is completely contained within the bounding box or bounding volume in the assembled state, and wherein the storage location is arranged outside the bounding box or bounding volume.
13. Method (100) according to any one of the preceding claims, further comprising the step of: Determine (S107) at least one disassembly sequence, wherein the disassembly sequence is determined iteratively based on the detachability of a component (302; 304) from adjacent components (302; 304), optionally wherein the determination (S107) of the at least one disassembly sequence includes determining component-specific handling elements.
14. Use of the method (100) according to any of the preceding claims to control a robot during the disassembly of an assembly (300).
15. Computing device (200) for generating control commands for controlling the disassembly of an assembly (300) by a robot, the computing device (200) comprising: A first data interface (202) configured to read in a data structure of an assembly (300) comprising several components (302; 304), wherein the data structure is a digital data set with at least one three-dimensional 202508061 52 surface representation for at least a subset of the multiple components (302; 304), wherein the data structure further includes information regarding the position and orientation for at least the subset of the multiple components (302; 304) in an assembled state of the assembly (300); A second data interface (204) designed to read in a digital geometry data set of at least one robot, comprising at least one holding element (350); A charging module or a third data interface (206) configured to load a digital simulation environment for the assembly (300) in the assembled state; A breakpoint determination module (210) configured to determine, based on the read-in data structure, at least one breakpoint on at least one component (302; 304), preferably on each component (302; 304) of the subset, wherein the at least one breakpoint is configured to hold the respective component (302; 304) by means of the at least one holding element (350) of the at least one robot; A disassembly path determination module (214) configured to determine, using a trained model, a collision-free disassembly path of the at least one robot, wherein the disassembly path comprises a trajectory of the at least one robot for the component (302; 304) held by means of the at least one holding element (350) from the assembled state to a storage location in the simulation environment of the assembly (300); and A generation module (216) that is configured to generate, based on the specified collision-free disassembly path, control commands for controlling at least one robot along the collision-free disassembly path.
Citation Information
Patent Citations
Techniques for adaptive robotic assembly
US20230278213A1