Model the operating areas of manufacturing resources using virtual models and graphics-based simulations
By projecting resource motion chains on the plane of interest and using Boolean ensemble operations, the problem of inefficient resource layout design in the existing technology is solved, efficient and compact operation area representation and topology optimization are achieved, and the efficiency of the use of the factory workshop is improved. and security.
Patent Information
- Application Number
- CN202010810809.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-08-15
- Filing Date
- 2020-08-13
- Publication Date
- 2024-12-17
- Estimated Expiration
- 2040-08-13
AI Technical Summary
The existing 3D swept body method is inefficient in resource layout design, it is difficult to automatically define the composite operation area, and it is difficult to deal with topological changes in complex and irregular shapes of operation area, resulting in inefficient use in factory workshops.
By projecting the motion chain of resources on the plane of interest, using geometric operators such as Boolean ensemble operations and Hausdorf distances, the operation area of resources is automatically determined and combined, and the topological structure of the operation area is optimized to generate efficient and compact two-dimensional Virtual representation.
It realizes a more intuitive and efficient resource layout representation, and can automatically combine complex operation areas, improve the efficiency and safety of the factory workshop, and adapt to changes in the manufacturing environment.
Smart Images

Figure CN112395660B_ABST
Abstract
Description
Technical Field
[0001] Embodiments relate to improved functionality for three-dimensional (3D) computer graphics modeling and simulation, task definition of resources, layout of resources, manufacturing resource planning, and off-line programming. Background Art
[0002] Many systems and programs are available on the market for part design, part assembly design, 3D computer graphics modeling and simulation, task definition of resources, layout, manufacturing resource planning and off-line programming. These computer-aided design (CAD) systems allow users to construct and manipulate complex three-dimensional models of objects or object assemblies. Therefore, CAD systems provide a representation of modeled objects using edges or lines (and in some cases faces). Lines, edges, faces or polygons can be represented in various ways, for example, non-uniform rational basis splines (NURBS).
[0003] These CAD systems manage parts or assemblies of parts of modeled objects, which are primarily geometric specifications. In particular, a CAD file contains specifications from which geometry is generated. Representations are generated from geometry. Specifications, geometry, and representations can be stored in a single CAD file or in multiple CAD files. CAD systems include graphical tools for representing modeled objects to designers; these tools are specialized for displaying complex objects. For example, an assembly may contain thousands of parts. CAD systems can be used to manage object models stored in electronic files.
[0004] The advent of CAD and CAE systems has provided a wide range of representation possibilities for objects. One of such representations is the finite element model (FEM). The terms finite element analysis (FEA) model, FEM, finite element mesh and mesh are used interchangeably in this article. A FEM usually represents a CAD model and can therefore represent one or more parts or an entire assembly. A FEM is a system of points called nodes that are interconnected to form a net, called a "mesh".
[0005] A FEM can be programmed in such a way that the FEM takes on the properties of the underlying object it represents. When a FEM or other such CAD or CAE model is programmed in this way, it can be used to perform simulations of the object represented by the model. For example, a FEM can be used to represent the interior cavity of a vehicle, the acoustic fluid surrounding a structure, and any number of real-world objects (physics-based systems) and other systems. When a given model represents an object and is programmed accordingly, it can be used to simulate the real-world object itself. For example, a FEM representing a stent can be used to simulate the use of the stent in a real-life medical setting.
[0006] CAD, CAE and FEM models can be used to improve the design of the objects and environments represented by the models. Design improvements can be identified by using simulation and / or optimization techniques that run a series of simulations to identify changes to the model design to identify the underlying objects and / or environments represented by the models.
[0007] 3D computer graphics-based simulations are widely used to simulate manufacturing processes. 3D computer graphics models of industrial resources and simulation of their behavior allow users to model, optimize and verify various manufacturing processes in the factory. Like general engineering problems solved using FEM, factory designs such as the layout design of industrial resources are very complex, and modeling and simulation techniques provide a method for iteratively solving these complex design problems. In addition, the determined simulation programs can be downloaded sequentially to computers in the factory, which are used to drive the resources of the factory.
[0008] Such off-line programming (OLP) systems equipped with graphics-based simulation capabilities are also known for their ability to quickly adapt to changes in the manufacturing environment by reducing the computational workload during the actual debugging phase.
[0009] Planning of the layout design of manufacturing resources is an important aspect in terms of optimizing performance, space savings in the factory floor area, and ergonomics. Such planning usually uses the layout designer's prior engineering knowledge rather than the actual space occupied by the operating areas of the manufacturing resources and the relationships across resources in the context of the manufacturing process. As a result, the factory floor is used inefficiently. Layout design is further complicated by the fact that layout changes due to changes in the manufacturing environment (new resources, processes, etc.) are very complex.
[0010] OLP systems equipped with graphical models of resources and graph-based simulation are promising approaches to overcome such limitations. Such systems allow users to capture various industrial resources using graphical models and various movements of these resources using task-based graphical simulations. This application requires new software tools to define the operating zones of resources on a given plane of interest, such as a factory floor, to capture the relationships across these resources in the context of a process, and to edit these operating zones by changing their topology. Such tools should also allow users to make changes using advanced user input, as the number of resources used in a factory can be very large. Summary of the invention
[0011] Embodiments provide functionality for resource layout and environment planning. One such embodiment defines the operational area of a given task for a resource on a given plane. One embodiment constructs a two-dimensional virtual representation by projecting a solid model of each kinematic chain of a resource on a given plane and applying Boolean set operations as part of the task simulation. Embodiments improve efficiency by performing Boolean set operations in two dimensions.
[0012] According to one embodiment, a user can identify a set of regions corresponding to resources that can be combined based on proximity information. A novel geometric operator developed can use Hausdorff distance (maximum distance among minimum distances) and subsequent expansion and erosion of regions to change the topology of regions representing combined operation regions.
[0013] Compared to existing 3D swept volume based approaches, the representation of the operating region on the plane of interest is more efficient, compact and intuitive, i.e. easy to use. Advantageously, the representation is equipped with geometric operators that allow automatic combination of complex and irregular operating regions with minimal deviations from the original shapes of the individual regions. Existing approaches do not provide such functionality.
[0014] One embodiment relates to a computer-implemented method for automatically determining resource layout. In particular, the method begins with obtaining data indicating the location of each resource in a plurality of resources and the tasks performed by each resource. Then, for each resource in a plurality of resources, the corresponding area occupied by the resource on the plane of interest is automatically determined using the obtained location of the indicating resource and the tasks performed by the resource. Then, based on the standard, the determined areas of two or more resources in the plurality of resources are automatically combined into a combined area. Next, based on the determined area and the combined area, a work or output file indicating the layout of the plurality of resources on the plane of interest, for example, a CAD / CAM file, is automatically created. According to one embodiment, the layout is a work area in the real world. In an exemplary embodiment, the acquisition, determination, combination and creation are automatically performed by a processor in response to a user command. In addition, according to another embodiment, creating a work / output file may include the processor providing the created file in an electronically shareable manner. In addition, the work / output file may provide a display view (graphic or model representation) to the user, or may be used as a data file that can be shared with relevant related software (for example, a controller for a factory floor element such as a robot). In such an embodiment, the created work / output files may enable control of factory resources to be moved and / or operated according to the determined layout.
[0015] According to one embodiment, determining the corresponding zones of the resource includes: (1) simulating the resource performing the task indicated in the data obtained for the resource, (2) projecting the components of the resource over time to produce a closed outline of the resource on the plane of interest, and (3) combining the outlines into zones using regular Boolean set operations. Another embodiment also includes indicating safe zones in the layout. In such an embodiment, the safe zones can be indicated in the working / output file. In addition, the safe zones can be determined based on user-specified safety margins and / or determined zones and combined zones.
[0016] In yet another embodiment, combining the determined regions of the two or more resources comprises determining a region of optimal size, the region of optimal size comprising the regions of the two or more resources, wherein the region of optimal size is a combined region. In such an embodiment, determining the region of optimal size comprises expanding and corroding a region of the two or more regions using a first factor and a second factor to form a region of optimal size. According to one embodiment, the expanding and corroding comprises: (i) expanding a region of the two or more regions using a first factor to form an expanded region; (ii) combining the expanded regions to form a super region; and (iii) corroding the super region using a second factor to form a region of optimal size. In one embodiment, the first factor and the second factor are each a function of a maximum value from a set including a minimum distance between the two or more regions, such as a distance function.
[0017] In another embodiment of the computer-implemented method, the criteria include a negative offset value. Such an embodiment may also include determining a plurality of corresponding combined areas by combining determined areas of two or more resources using a plurality of different negative offset values, and selecting a given combined area from the determined plurality of combined areas based on a security factor to create a file indicating a layout.
[0018] Embodiments may combine zones using any variation and combination of criteria. Exemplary criteria include at least one of the following: distance between zones, user-defined constraints, and tasks performed by resources in two or more zones. In one embodiment, the distance between zones includes a lower bound and an upper bound on the distance between zones to be combined.
[0019] In yet another embodiment, the combination based on the criteria includes selecting candidate regions of two or more resources from the determined regions for combination based on at least one of the criteria. In such a specific embodiment, the criteria are applied to the candidate regions to identify the determined regions in the two or more regions for combination, and the identified regions in the two or more regions are combined into a combined region. In addition, in such an embodiment, the user-defined constraints may include including specific regions in the candidate regions.
[0020] Embodiments may determine the layout of any type of resource known in the art, and similarly, may determine the layout of any type of plane of interest known in the art. According to one embodiment, a given resource in the plurality of resources is at least one of: an industrial resource, a robot, a person, a machine tool, and a fixture. In another embodiment, the plane of interest is a factory floor.
[0021] Another embodiment relates to a system, such as a computer-based system, for automatically determining a resource layout. The system includes a processor and a memory having computer code instructions stored thereon, which cause the system to determine a resource layout as described herein. The system can be configured to implement any embodiment or combination of embodiments described herein.
[0022] In an exemplary embodiment, the system is configured to obtain data indicating the location of each resource in a plurality of resources and the tasks performed by each resource. Using the data obtained, the system automatically determines the corresponding area occupied by the resource on the plane of interest for each resource in the plurality of resources. The system is further configured to automatically combine the determined areas of two or more resources in the plurality of resources into a combined area based on a standard, and automatically create a work or output file indicating the layout of the plurality of resources on the plane of interest based on the determined area and the combined area. In addition, in one embodiment, creating a work / output file may include providing the created file in an electronically shareable manner. In addition, the work / output file may provide a display view (graphic or model representation) to the user, or may be a data file that may be shared with relevant related software or hardware (e.g., a controller for a plant floor element such as a robot). In such an embodiment, the work / output file may realize the control of the plant resources to move and / or operate according to the determined layout.
[0023] Another embodiment of the present invention relates to a cloud computing implementation for automatically determining resource layout. Such an embodiment relates to a computer program product executed by a server communicating with one or more clients through a network, wherein the computer program product includes a computer-readable medium. In such an embodiment, the computer-readable medium includes program instructions, which, when executed by a processor, cause the processor to obtain data indicating the location of each resource in a plurality of resources and the tasks performed by each resource, and for each resource in a plurality of resources, use the obtained data indicating the location of the resource and the tasks performed by the resource to automatically determine the corresponding area occupied by the resource on the plane of interest. In addition, the executed computer program product (the program instructions thereon) causes the processor to automatically combine the determination areas of two or more resources in a plurality of resources into a combination area based on a standard, and based on the determination area and the combination area, automatically create a work or output file indicating the layout of a plurality of resources on the plane of interest. In addition, in one embodiment, creating a work / output file may include providing the created file in an electronically shareable manner. In addition, the work / output file may provide a display view (graphic or model representation) to a user, or may be a data file that can be shared with relevant related software or hardware. In such an embodiment, the work / output files may enable control of factory resources to be moved and / or operated according to the determined layout.
[0024] It should be noted that the methods, systems, and cloud computing embodiments may implement any embodiment or combination of embodiments described herein.
[0025] Yet another embodiment relates to a computer-implemented method for determining a combined industrial work area including a plurality of resources. Such an embodiment obtains data indicating a plurality of zones in the subject real-world work area in response to a user's interaction with a CAD model representation of the subject real-world work area. In such an embodiment, each zone is occupied by a resource, and the acquisition of the data is implemented by a digital processor. The method continues with a processor receiving a user-defined distance criterion for combining two or more zones in the plurality of zones. Then, using the obtained data indicating the plurality of zones, the processor automatically determines the minimum distance between each of the plurality of zones. Next, the processor automatically identifies candidate zones for merging from the plurality of zones based on the minimum distance determined between each zone and the user-defined distance criterion. In one embodiment, the automatic determination and automatic identification are performed by the processor in response to user input of the user-defined distance criterion. The processor continues to connect the identified candidate zones by expanding the candidate zones using a first factor and contracting the connected candidate zones using a second factor. In this way, the processor determines the combined zone. According to one embodiment, determining the combined zone includes the processor providing an output indication of the determined combined zone. The output indication may be a display view (a graphical or model representation) to a user, or may be a data file that may be shared with associated related software (e.g., a controller for a factory floor element such as a robot).
[0026] According to one embodiment, the first factor and the second factor are each a function of a maximum value from a set including a minimum distance determined between candidate regions, such as a distance function. Another embodiment also includes receiving a user-defined connectivity factor, and in such an embodiment, the first factor is a function of a maximum value from a set including a minimum distance determined between candidate regions and the received user-defined connectivity factor. The exemplary embodiment also includes receiving one or more user-defined constraints on the regions to be combined, and identifying candidate regions for merging based on the minimum distance determined between each region, the user-defined distance criteria, and the received one or more user-defined constraints on the regions to be combined. BRIEF DESCRIPTION OF THE DRAWINGS
[0027] The foregoing will be apparent from the following more particular description of exemplary embodiments as illustrated in the accompanying drawings in which like reference numerals refer to the same parts in the different views. The drawings are not necessarily drawn to scale, emphasis instead being placed upon illustrating the embodiments.
[0028] Figure 1 A flowchart of a method for determining a resource layout according to one embodiment.
[0029] Figure 2 A flow chart of an embodiment for determining a layout of a resource.
[0030] Figure 3 To depict a schematic diagram of resources on a plane, an implementation scheme may be used to determine the layout of the resources.
[0031] Figure 4 To illustrate the factors that may be considered when determining a layout as described herein Figure 3 A simplified diagram of the relationships between resources.
[0032] Figure 5 is a schematic diagram illustrating resource operation areas that may be determined in an implementation scheme.
[0033] Figure 6 for Figure 5 A simplified isometric view of the operating area depicted in .
[0034] Figure 7 For the use of the principles of the implementation scheme Figure 5 A floor plan of the operating area depicted in FIG.
[0035] Figure 8 Determined by the principle that the implementation scheme can be used Figure 5 An example of another combination of operating areas.
[0036] Fig. 9 To illustrate what may be considered when combining operating areas of resources according to an embodiment Figure 3 A diagram of the relationships between resources.
[0037] Fig.10 To show that based on Fig. 9 The relationship described in the invention is combined using the principles of the present invention. Figure 5 Simplified floor plan of the operating area.
[0038] Fig.11 Shows the value defined by proximity Figure 3 The relationship between resources.
[0039] Fig.12 Combination based on proximity relationship Figure 5 Floor plan of the operating area.
[0040] Fig.13 A combination of outlines for creating an operating area or a virtual representation thereof according to one embodiment is graphically depicted.
[0041] Fig.14 Depicted are the estimated distances between zones that can be used in the combined zone.
[0042] Fig.15 Depicted are exemplary circular operating areas of resources that may be combined in determining a layout of the resources.
[0043] Fig.16Shows expansion and erosion Fig.15 The process of determining the combined area in the example.
[0044] Fig.17 The process of combining zones according to one embodiment is graphically depicted.
[0045] Fig.18A -B is a schematic diagram showing resource regions that may be combined according to an embodiment.
[0046] Fig.19A -D shows zones based on different criteria combinations according to the principles of the implementation scheme.
[0047] Fig. 20 A process of inflating regions to determine multiple options for combining regions is shown.
[0048] Fig.21 A flow chart of a method for determining a combined industrial work area including a plurality of resources according to one embodiment.
[0049] Fig. 22 is a simplified block diagram of a computer system for determining resource placement according to one embodiment.
[0050] Fig.23 is a simplified diagram of a computer networking environment in which one embodiment of the present invention may be implemented. DETAILED DESCRIPTION
[0051] A description of exemplary embodiments follows.
[0052] The teachings of all patents, published applications, and references cited herein are incorporated by reference in their entirety.
[0053] Currently, simulation of manufacturing work cells based on three-dimensional (3D) computer graphics has been widely used to model, optimize and verify the behavior of resources based on task allocation. Offline programming systems convert simulation programs into native codes of robots, numerical control (NC) machines, etc. that run actual manufacturing systems. OLP systems (equipped with graphic simulators) make manufacturing systems more flexible by quickly adapting to new programs during the actual debugging phase, reducing debugging and correction work [Lee et al., "Survey on the virtual commissioning of manufacturing systems", Journal of Computational Design and Engineering, 1 (3), 213-222 (2014)]. New configurations of work cells for newly defined tasks that support changing production environments can be adjusted to cope with changes in product quality or quantity or to adapt to advanced tools or processes. Therefore, these modern systems support changing resource layouts, and it is beneficial to determine the optimal resource layout in the environment. Implementation plans (based on floor space, safety constraints, etc.) advantageously provide the function of optimizing this resource layout.
[0054] In manufacturing systems, resources can be classified as active (e.g., robots, humans, and machine tools) or passive (e.g., products and fixtures). Defining the operating area of resources on a given plane, such as a factory floor, is an important aspect of layout design for optimizing performance, saving floor space, and optimizing safety factors [ISO 10218-1:2011, US20110264266A1, CN102239032B, WO2014036549A3, US9789610B1, US10081106B2].
[0055] The computation of the operating zones of resources (e.g., robots) is a high-dimensional problem [Todt et al., "Analysis and classification of multiple robot coordination methods", In Robotics and Automation, 2000, Proceedings, ICRA'00, IEEE International Conference on (Vol. 4, pp. 3158-3163), IEEE, (2000)]. Therefore, most methods adopted in industry use heuristic methods [Ngoi & Tay, Int J Adv. Manuf. Technol, (1996) 12:377, https: / / doi.org / 10.1007 / BF01179814] or existing engineering knowledge to evaluate these zones. As a result, the operating zones are not accurately defined with respect to the tasks assigned to the resources. This leads to inefficient utilization of the floor space.
[0056] In addition, the definition of the operating zone may depend on the process. For example, a robot engaged in spray application requires more floor space than a robot engaged in assembly. Sometimes, the operating zone should be composite in nature, where two or more resources interact with each other. For example, if one robot is holding a board and another robot is welding the board at a different location, the two robots need to be in a single zone because they share the same process. In addition, these operating zones need to accommodate product access and delivery across stations. Therefore, it is very important to consider the relationship across resources when combining corresponding operating zones for layout planning or creating safety zones. These applications require new software tools that allow users to define the representation of operating zones and edit the zones by changing the zone topology or morphology using advanced input from the user. The implementation scheme provides this functionality and therefore provides user interaction flexibility in the representation zone.
[0057] The idea of configuring a space for a resource, such as a robot (or mechanism), or configuring a composite space for multiple resources has been used in various applications, such as collision detection and energy consumption, etc. Configuring a space is a higher dimensional problem [Todt et al., "Analysis and classification of multiple robot coordination methods", In Robotics and Automation, 2000, Proceedings, ICRA'00, IEEE International Conference (Vol. 4, pp. 3158-3163), IEEE, (2000)]. By using geometric and solid modeling tools, the various poses that a resource takes when performing a task in a CAD system can be captured. Such tools allow each kinematic chain to be modeled as a moving solid or a swept volume (generated by a moving solid) [Wang et al., "Geometric modeling for swept volume of moving solids", IEEE Computer graphics and Applications, 6(12), 8-17, (1986); Lee et al., "Complete swept volume generation, Part I: Swept volume of a piecewise C1-continuous cutter at five-axis milling via Gauss map", Computer-Aided Design, 43(4), 427-441, (2011)].
[0058] The generation of swept volumes is a conventional method to capture the operating space of a resource for a given task. However, the swept volume method is disadvantageous because it is computationally expensive to determine the three-dimensional sweep of the kinematic chain as a function of time and to apply Boolean set operations to the 3D swept discrete elements. In addition, the resulting size of the representation is very large, so it is difficult to use it for other purposes, such as editing or querying bounded areas. In addition, users can more intuitively and easily process 2D data instead of 3D data obtained by swept volumes. In addition, although the 3D swept volume can be projected on a 2D plane as an operating area to improve usability, this method will still require the use of a computationally expensive 3D swept volume.
[0059] When designing a resource layout, once a corresponding operation zone is defined for each resource, the layout planner places the resources in an optimal manner based on various factors such as the relationship between resources (cooperating to perform the same task), proximity information, etc. Therefore, the layout of the operation zone can have a complex irregular shape. It is important to minimize the deviation between the zones being combined and the combined zone in order to maximize the use of the floor space. Existing methods do not provide software tools that automatically define composite operation zones by changing the topology of the zones based on proximity information (user-defined relationships between resources), which can be used to track safe zones or design the layout of work units.
[0060] One can consider the possibility of capturing the operating zone by projecting the points on the kinematic chain onto a plane of interest and using existing reconstruction algorithms [Liang et al., "Analytical shape computation of macromolecules: I. Molecular area and volume through alpha shape", Proteins: Structure, Function, and Bioinformatics, 33(1), 1-17, (1998); Amenta et al., "Surface reconstruction by Voronoi filtering", pp. 39-48 (1999)]. However, the accuracy of this reconstruction method depends on a high sampling density of points, which may not be possible in practice. In addition, there is a risk of obtaining empty space (representing the non-operating zone) with a sparse point density. When using resources such as robots, this can lead to shrinking the zone, which is detrimental from an ergonomic and safety point of view.
[0061] The implementation plan addresses these issues. Figure 1 1 is a flow chart of a computer-implemented method 100 for automatically determining a resource layout according to one embodiment. The method 100 is a computer-implemented method and can be performed via any combination of hardware and software known in the art. For example, the method 100 can be implemented via one or more processors having an associated memory storing computer code instructions that cause the processor to implement steps 101, 102, 103, 104 of the method 100.
[0062] Method 100 begins at step 101. For each resource in a plurality of resources, a processor (step 101) obtains data indicating the location of the resource and the tasks performed by the resource. The data obtained can be in any computer-readable form indicating the location and tasks of the resource. For example, the virtual model of the resource obtained can be a CAD model represented by a boundary representation [Christoph M. Hoffmann, "Geometric and solid modeling: an introduction", Morgan Kaufmann Publishers Inc., San Francisco, CA, 1989] or a mesh representation [Shewchuk, Jonathan, Tamal K. Dey and Siu-Wing Cheng, "Delaunay mesh generation", Chapman and Hall / CRC, 2016]. The CAD model obtained may include an indication of the location of the resource. In addition, the task associated with the resource can be defined as a linear sequence of activities that describes how the resource moves to a target location. In such an embodiment, the motion chain forming the virtual resource is given by the following formula:
[0063]
[0064] Where N is the total number of chains.
[0065] Furthermore, tasks are defined by a set of objectives expressed as joint objectives or Cartesian objectives. Each objective is written as (x, y, z, α, β, γ), where x, y, z represent position, and α, β, γ represent roll, pitch, yaw, α, β, γ. Thus, each task is written as a set of objectives:
[0066]
[0067] Where M is the total number of targets, and each target ti = (x, y, z, α, β, γ).
[0068] The CAD model corresponding to each chain qi can be written as S(qi), which stores the geometric information of the chain, written as a set of vertices V, edges E and faces F.
[0069] S(qi)=(V,E,F) (3)
[0070] Because method 100 is computer-implemented, the data obtained at step 101 may be obtained from any point (eg, a computing or storage device) capable of communicating with the computer device implementing method 100 .
[0071] Next, at step 102, for each of the plurality of resources, the processor uses the obtained data indicating the location of the resource and the tasks performed by the resource and automatically determines the corresponding area occupied by the resource on the plane of interest. Fig.13 Determine the zone of the resource as described.
[0072] According to one embodiment, determining the corresponding zone for each resource at step 102 includes: (1) simulating the resource performing the task indicated in the data obtained for the resource, (2) projecting components of the resource over time to produce closed contours of the resource on the plane of interest, and (3) combining the contours into zones using regular Boolean set operations. In one example, at step 102, during simulation (1), each chain qi moves to a new pose corresponding to a given target. If the moving chain qi is written as a function of time as qi(t), the CAD model corresponding to such a moving chain can be written as S(qi(t)), as described above with respect to equation (3). For a given plane P, the CAD model of the chain is immediately projected.
[0073] Sp(qi)=Proj(S(qi),P) (4)
[0074] Sp(qi) is the projected profile on the plane P. Projecting all such profiles for each chain over a period of time during task execution leads to a set of intersecting profiles, written as ISp.
[0075]
[0076] To illustrate, according to one embodiment, Figure 1 3 A set of intersecting contours 1330 are depicted in FIG. In one embodiment, to combine contours, a regular Boolean set union operation is applied to all elements of the set ISp in Equation 5 to obtain a 2D operation zone OZ.
[0077]
[0078] The resulting operating zone OZ is a set of vertices, edges, and faces. Note that this set will not have Fig.13. Then, at step 103, the processor combines the determined areas of two or more resources of the plurality of resources into a combined area based on the criteria. In addition, in another embodiment, multiple combined areas may be determined. For illustration, if there are resources A, B, C, and D, in one embodiment, one combined area may include the operating areas corresponding to resources A and resource B, and the second combined area may include the operating areas corresponding to resources C and resource D. According to one embodiment, combining the determined areas of the two or more resources at step 103 includes determining an optimally sized area, the optimally sized area including the areas of the two or more resources, wherein the optimally sized area is a combined area. In such an embodiment, determining the optimally sized area includes expanding and corroding the areas in the two or more resources using a first factor and a second factor to form an optimally sized area. In such an embodiment, the expansion and corrosion include: (i) expanding the areas in the two or more resources using a first factor to form an expanded area; (ii) combining the expanded areas to form a super area; and (iii) corroding the super area using a second factor to form an optimally sized area.
[0079] The following is an example of performing a combination at step 103. In such an example, the input is the operation zones of resources A, B, C, and D to be combined, and the output is a single combined zone. Let the operation zones OZ corresponding to the operation zones of resources A, B, C, and D be OA, OB, OC, and OD, respectively. Let sets S1 and S2 contain all four operation zones. Find the maximum value of the minimum distance between sets S1 and S2.
[0080] dist(S1, S2)=max(dist(a, b)) (7)
[0081] Where a∈S1, b∈S2, dist(a, b) is the minimum distance between two regions a and b belonging to set S1 and set S2 respectively. Find the maximum value of the minimum distance between set S1 and set S2. For example, Fig.14 The minimum distance between each element of the set S1 and the set S2, labeled 1441a-i, is shown. The maximum of these minimum values will be used in the next step. More details of the offset operation that can be used in the implementation scheme are described in Rossignac, Jaroslaw R. and Aristides AG Requicha, "Offsetting operations in solid modelling", Computer Aided Geometric Design, 3.2 (1986): 129-148.
[0082] To continue this example of combining regions at step 103, all operating regions are extended to all regions using a regular positive offset r:
[0083]
[0084] where r>dist(S1,S2) / 2 or ε may have a very small value. The zone OZ may be OA, OB, OC, OD. The result of the shift in equation 8 is OAexpanded, OBexpanded, OCexpanded, ODexpanded. Next, the expansion zones obtained using equation 8 are combined using regular Boolean set operations to form a super zone SOZ.
[0085] SOZ={OAexpanded∪*OBexpanded∪*OCexpanded∪*ODexpanded} (9)
[0086] The super-zone SOZ in Equation 9 is then eroded by applying a positive negative offset r regardless of the value of ε.
[0087] SOZ↓*r=c*((c*SOZ)↑*r) (10)
[0088] Where c* is the canonical complement,
[0089] According to one embodiment, the first factor and the second factor are each a function of the maximum value from a set including the minimum distance between two or more regions, such as a distance function. In one embodiment, the first factor is D maxmin / 2+ε, where ε and D maxmin is very small compared to, for example, (ε / D maxmin =0.0001) and D maxmin is the maximum value among a set of minimum distances between the regions being combined. In addition, in one embodiment, the second factor is D maxmin / 2. According to one embodiment, ε represents a connectivity factor, which is used internally to connect two or more zones during expansion. In addition, in an embodiment, the user can select the second factor as long as the second factor is less than the first factor. In addition, in an embodiment, the first factor and the second factor can be set to default values.
[0090] In another embodiment of the method 100, at step 103, a plurality of corresponding combination zones are determined by varying the criteria for the combination zones. Then, in such an embodiment, a given combination zone is selected from the plurality of determined combination zones. In such an embodiment, the combination zone may be selected based on the security criteria. To illustrate, consider an example where the criteria include a negative offset value. In such an embodiment, a plurality of different negative offset values are used, and for each different negative offset value, a different combination zone is determined. Then, a combination zone is selected from the plurality of different combination zones.
[0091] In yet another embodiment, the combination based on criteria at step 103 includes selecting candidate regions of two or more resources for combination from the determined regions based on at least one of the criteria. In such a specific embodiment, the criteria are applied to the candidate regions to identify the determined regions in the two or more resources for combination, and the identified regions in the two or more resources are combined to form a combined region. In addition, in such an embodiment, the criteria for identifying the candidate regions can be user-defined constraints, such as including a specific region into the candidate regions. Then, criteria such as distance can be used to determine whether the region included by the user is combined with another region.
[0092] return Figure 1 , method 100 ends at step 104 by the processor, automatically creating a work or output file indicating the layout of multiple resources on the plane of interest based on the determination area and the combination area. In an embodiment of method 100, the work / output file created at step 104 can be any computer-readable form that stores the representation of multiple resources or otherwise indicates the layout of multiple resources. For example, in one embodiment, the resulting output is a 2D CAD model represented as a set of vertices, edges and faces (V, E, F). Alternatively, the resulting output can be a solid model. In one embodiment, the boundary of the 2D CAD model is extracted for the construction of the layout, which is achieved by generating a set of closed polylines. The orientation of the polyline forming the boundary (e.g., clockwise) will be opposite to the orientation of the polyline forming the internal hole (e.g., counterclockwise). In addition, in one embodiment, the extraction utilizes an appropriate step size [Lindgren, Terence, Juan Sanchez, and Jim Hall, "Curvetessellation criteria through sampling", Graphics Gems III (IBM version), MorganKaufmann, 1992, 262-265]. The job / output file indicates the location and occupied areas of the one or more assembly areas and any other operating areas that are not part of the one or more assembly areas.
[0093] Furthermore, in one embodiment, creating the file at step 104 may include providing the created file in an electronically shareable manner. Additionally, the work / output file may provide a display view (graphic or model representation) to a user, or may be a data file that may be shared with related software or hardware (e.g., a controller for a factory floor element such as a robot). In such an embodiment, the file may enable control of factory resources to be moved and / or operated according to the determined layout.
[0094] Another embodiment of method 100 also includes indicating a safe area in the layout. In such an embodiment, the safe area may be indicated or otherwise represented in the work / output file created at step 104.
[0095] Embodiments of method 100 may utilize any variation and combination of criteria to combine zones. Exemplary criteria include at least one of the following: distance between zones, user-defined constraints, and tasks performed by resources in two or more zones. In one embodiment, the distance between zones includes a lower bound and an upper bound on the distance between zones to be combined.
[0096] Furthermore, method 100 may determine the layout of any type of resource known in the art, and similarly, may determine the layout of any type of plane of interest known in the art. According to one embodiment, a given resource in the plurality of resources is at least one of: an industrial resource, a robot, a person, a machine tool, and a fixture. In another embodiment, the plane of interest is a factory floor.
[0097] Figure 2 Flowchart of a user interaction process or method 220 for determining the layout of resources according to an embodiment. Method 220 starts 221 at steps 222 and 223 and receives user input. Specifically, at step 222, resources and their locations, one or more tasks associated with resources, and the relationship between resources are defined. The defined information can be in any form known in the art. For example, in an exemplary embodiment, the definition at step 222 is implemented by user interaction in a virtual factory layout, which is just an example of a plurality of CAD / CAM / CAE systems that can be used. In such an embodiment, the virtual factory layout uses various CAD models to model the real factory layout in the computer. The software tool is equipped with various user interaction capabilities to help users design and edit factories. It should be noted that although a virtual factory layout is described, the embodiment is not limited thereto, and any various computer-based software applications can be used. At step 223, the plane of the operating area is defined, that is, the shape and size of the plane are provided to the system 220 by the user. In the example where the resource is a factory resource, the definition at step 223 defines the plane of the factory floor.
[0098] Using the input data from step 222 and step 223, method step 224 generates a corresponding operating area for each resource. In one embodiment, the operating area is automatically generated at step 224 in response to the input at step 222 and step 223. In an alternative embodiment, the operating area is generated at step 224 in response to a user command, such as selection of a "generate operating area" option. Continue to edit the operating area generated at step 224 at step 225. Note that step 225 is optional and is only performed where editing is required. In an embodiment, it may be desirable to edit after generating an operating area or combining a collection of operating areas to accommodate a safety margin. The edit at step 225 can be local, i.e., individual operating areas of the resource can be modified, or global, i.e., changes can be made to multiple operating areas.
[0099] Next, at step 226, the user interactively defines the relationship of the operating zones of the combined resources. In other words, at step 226, the criteria for combining the operating zones are defined. Exemplary criteria include: distance between zones, user-defined constraints, and tasks performed by resources corresponding to the operating zones, etc. In addition, it should be noted that the implementation scheme can use multiple criteria in combination, so at step 226, a combination of criteria for combining the operating zones can be defined. For example, in one implementation scheme, the user can sort the criteria for combining in order of importance. To illustrate, if the user wants to combine a group of resources based on two criteria: (a) sharing the same manufacturing process, and (b) distance criteria, the user can sort the preferred order of using the criteria, for example, (a) takes precedence over (b). In such an example, the combined zone of resources sharing a process is first determined. Then, the distance criteria is applied to combine the zones output from the first step (combining resources sharing a process). It should be noted that different results can be obtained by changing the sorting from (a) to (b) or from (b) to (a).
[0100] According to one embodiment, defining the relationships between the operating zones at step 226 may be done based on user input. For example, a user may indicate or otherwise specify that any operating zones within 1 foot of each other should be combined. In one embodiment, a set of operating zones corresponding to each resource obtained using equation (6) is packaged using vertices, and their relationships with other resources are packaged as edges to form a graph structure G of vertices and edges (v, e).
[0101] G=(v,e) (11)
[0102] For illustration, the following is described in further detail. Figure 4Resources A, B, C, D and E are shown represented by vertices labeled 331a, 331b, 331c, 331d and 331e, containing corresponding representations of the operating zone OZ. The relationship between these resources is represented by edges 441 and 442.
[0103] Continuing at step 227, the system / method 220 combines the set of operational zones of the resources that satisfy the relationships defined in step 226. According to one embodiment, step 227 includes filtering the set of resources that satisfy the user-defined relationships (captured as edges in equation 11) and their corresponding zones (captured as vertices in equation 11). These filtered zones can then be combined as described herein. In addition, it is noted that in one embodiment, after step 227, the method can return to step 225 and / or step 226 to edit the operational zones or relationships across resources.
[0104] Then at step 228, the method / system 220 interrogates the empty space and reserved space remaining after the zones are combined at step 227. For example, in one embodiment, interrogating the space at 228 identifies the resulting space on the plane of interest that can be utilized, or identifies the vacant space that should be incorporated into the zone. In such an embodiment, the empty space can be reused for other purposes, such as storing inventory or any other purpose.
[0105] The next step 229 determines whether the relationship between the resources should be edited. The determination at step 229 can be informed by the query performed at step 228. To illustrate, consider an example in which zones that are 12 inches apart are combined. In such an example, the criteria separates zone A and zone B because they are 12.5 inches apart. When querying for free space at step 228, the method / system 220 identifies a gap of 0.5 inches and determines that for safety reasons, zone A and zone B should be combined. Based on this determination, at step 229, the method 220 decides to edit the relationship between the zones and returns to step 226, in which the relationship is changed to combine all zones that are 13 inches apart. In one embodiment, this functionality can be automatically implemented based on safety criteria. For example, a safety criterion can be set that automatically combines any zones that are within a specific distance of each other.
[0106] If at step 229, the method does not edit the relationships between the resources, the method 220 continues to step 230. At step 230, the method / system 220 determines whether the inputs should be redefined, such as the resources and their locations, one or more tasks associated with the resources, and the relationships between the resources, etc. If they should be redefined, the method returns to step 222, otherwise, the method ends 231. Considerations for redefining inputs include requiring a resource to perform different tasks (e.g., a robot was used for welding, but now needs to be used for spraying and assembly) or requiring a resource to perform a task with different inputs (e.g., an assembly robot needs to assemble item C and item D, not item A and item B).
[0107] In one embodiment of method 220, the input at step 222 is a collection of resources used in the factory, the shop floor locations of these resources, the relationships between these resources (e.g., the coordinates of resource A and resource B), and the task definitions associated with each resource. In addition, one embodiment allows a user to track the layout of a collection of resources based on the relationships between the resources. In addition, it is noted that the solution of method 220, i.e., the combination of zones determined at step 227, i.e., the combined zones, can be iteratively improved by editing the relationships between resources (returning to step 226 at step 229) and / or modifying the input (returning to step 222 at step 230) until the solution converges to an optimal solution. In one embodiment, this can be automated by automating the process of defining tasks and relationships.
[0108] One embodiment of the present invention includes two parts. The first part includes generating operation zones for each resource, and the second part includes combining zones based on user-defined relationships across resources.
[0109] Create an Operation Area
[0110] In one embodiment, the operation area is created by virtual simulation of the tasks associated with the resource. The virtual simulation process may include: selecting the tasks associated with the resource; defining the appropriate planes for the given resource that need to capture the operation area; and executing an instance of the function "generate operation area". In one embodiment, the virtual simulation process creates and generates a two-dimensional closed contour around the resource on a given plane.
[0111] Editing operation area
[0112] In one embodiment, for tasks associated with a resource, the generated operating region follows the configuration space spanned by the resource. However, the user can allocate additional space by editing the operating region globally or locally to compensate for any deviations in the real-time manufacturing system. An example of a global edit is a user specifying an offset parameter on the operating region to expand the operating region. An example of a local edit is a user moving a control point associated with the operating region to locally edit an area of interest in the operating region.
[0113] Query various properties of the operation area
[0114] Using the virtual representation of the operating area, the user can query various geometric properties, such as the area of the operating area and the perimeter of the operating area, etc. The user can also compare areas to find answers to various queries, such as finding a collection of resources that share the same plant, finding a set of similar areas, and / or finding symmetrical areas. This information can be used to edit the operating area, etc. In general, the operating area can be queried for analytical purposes, such as "What is the area occupied by the resource?" or "Can a smaller robot perform the same task?", etc. In addition, it is noted that queries can be performed even after the combined area is determined. The results of such queries can be used to modify the input to obtain different results.
[0115] Combined operation area
[0116] The operating zones generated for each resource can be combined to define a common layout or identify a safe zone. In one embodiment, a user, such as a layout designer, defines relationships across multiple resources. For example, robot A coordinates with robot B to complete process X. Then, resource A and resource B are associated through process X.
[0117] In an embodiment, these relationships can be used to combine operation areas. For example, a layout designer can extract the layout of process X or process Y, or extract the common layout of process X and Y. A user can edit a combined area by using the edit operation area function and querying the above operation area function.
[0118] Figure 3 An environment 330 including resources 331a-e and a factory floor 332 is depicted. Resources 331a-c are robots, resources 331d are supporting products, such as real-world objects being manufactured, and resource 331e is a person. By using an embodiment, the layout of resources 331a-e on the factory floor 332 can be determined.
[0119] In one embodiment, as part of determining the layout of the resources 331a-e, relationships between the resources 331a-e are defined. Figure 4 is a simplified diagram showing the defined relationships between resources 331a - e. Figure 4Indicates that resources 331a and 331b are part of process 441, while resources 331c, 331d, and 331e are part of process 442.
[0120] To determine the layout, the implementation determines the operation area of each resource. In one implementation, the user selects (clicks) a "generate operation area" function implemented as a button or menu selection, etc. for each resource 331a-e. In response, the computer-implemented method 100, 220 described herein determines the operation area of each resource 331a-e. Figure 5 The generated operation areas 550a-e for the resources 331a-e are shown respectively. In an alternative embodiment, once the necessary data, i.e., the location and task of each resource, are obtained, the operation area of each resource is automatically determined, i.e., without the user selecting (clicking) a "generate operation area" function or a similar user command.
[0121] Figure 6 for Figure 5 An isometric view 660 of the operating areas 550a-e.
[0122] Using the defined relationships between the operating areas and the resources, the implementation combines the operating areas to determine the layout. Figure 7 Shown based on Figure 4 The relationship of resources 331a-e is depicted to combine operating areas 550a-e. Figure 7 Operational areas are shown combined as part of common processes 441, 442. Thus, operational area 771 is a combination of operational area 550a and operational area 550b (corresponding to resource 331 and resource 331b, both being part of process 441), and operational area 772 is a combination of operational areas 550c-e (corresponding to resources 331c-e, which are part of process 442).
[0123] In an embodiment, the criteria for combining operation areas can also be changed. For example, a user can change the combination criteria to combine all resources of process 441 and process 442. Figure 8 Shown as Figure 5 The resulting operating area 880 is a combination of the operating areas 550a-e.
[0124] In one embodiment, the user can modify the way the zones are combined by redefining the relationships between resources. The user can redefine the relationships between resources by taking into account the existence of common overlaps across operating zones, such as Fig. 9 For example, if the user indicates that zones that share a common footprint should be combined, then Fig. 9 The relationship between resources is redefined as shown, where resource 331a and resource 331b are related by relationship 990, and resource 331c and resource 331d are related by relationship 991. Fig. 9 In FIG. 3 , resource 331 e is not related to any of the other resources 331 a - b and 331 c - d. In addition, it should be noted that multiple relationships can be defined between resources.
[0125] Fig.10 Depicted are zones 1010, 1011, and 550e, which are based on Fig. 9 The relationship defined in is obtained by combining the operation areas 550a-e. The combination area 1010 is a Fig. 9 Relationship 990 Figure 5 The combination area 1011 is a combination of the original operation area 550a and the original operation area 550b. Fig. 9 Relationship 991 Figure 5 The original operating area 550e is not combined with any other operating area because area 550e is not combined with Fig. 9 Any other zones defined and depicted in the shared footprint.
[0126] In an embodiment, relationships between resources may also be based on proximity. Fig.11 The relationship between resources 331a-e is shown, where edges 1100a-j represent proximity relationships between resources 331a-e. In one embodiment, each edge 1100a-j is labeled with the minimum distance between the operating regions corresponding to the resources 331a-e.
[0127] In one embodiment, resources may be combined based on proximity information. For example, in the example of resources 331a-e, one embodiment may combine resources that have a proximity information less than or equal to a threshold value (d 阈值 ) (e.g., the distance between resource 331b and resource 331e). Fig.12 The resulting zone 1220 produced by combining the operating zones 550a-e having a proximity that is less than or equal to the distance between the resource 331b and the resource 331e is shown. Fig.12 It is shown that the operating area 550e corresponding to the resource 331e is not directly connected to the operating areas 550a-b corresponding to the resources 331a-b.
[0128] Calculation method
[0129] In the following, a calculation method (step 1 to step 4) for one embodiment is described.
[0130] 1. Create an operation area
[0131] In one embodiment, when a user selects an active resource (e.g., a robot, a human, and / or a machine) and clicks "Generate Operational Area" for that resource, and the user selects a plane of interest, the following internal calculations are performed. The tasks associated with the resource are simulated in software, such as Dassault Systemes 3DEXPERIENCE, which involves the movement of a resource kinematic chain. Each kinematic chain is projected onto a given plane as a function of time. The projection generates a set of closed contours overlaid above the given plane. Fig.13 Closed contours 1330 are shown, which include multiple contours, such as contours 1331a, 1331b, 1331c, and 1331n, which are the result of projecting the kinematic chain of the resource as a function of time onto the plane of interest. The contours 1330 are combined using regular Boolean set operations 1332 [Christoph M. Hoffmann, "Geometric and solid modeling: an introduction", Morgan Kaufmann Publishers Inc., San Francisco, CA, 1989]. The region 1333 resulting from the Boolean operation 1332 is represented using a boundary representation [Christoph M. Hoffmann, "Geometric and solid modeling: an introduction", Morgan Kaufmann Publishers Inc., San Francisco, CA, 1989] (virtual representation), which is used as the operation region of the resource.
[0132] According to one embodiment, for inactive resources such as inventory or products, the CAD models of these objects are projected onto a given plane and a boundary representation is constructed from the projection. In one embodiment, in addition to the boundary representation, another representation (parametric representation) is constructed by approximating the boundary of the virtual representation using B-splines [The NURBS Book, (1996), Computer-Aided Design, 28(8), 665-666. doi:10.1016 / 0010-4485(96)86819-9], which are used to locally change the shape of the operating area.
[0133] 2. Editing operation area
[0134] After generating the operating region and the corresponding virtual representation, one embodiment includes editing the generated operating region. Editing the operating region may include global editing, where a user may specify offset parameters on the operating region to expand the operating region. Editing may also include local editing, where control points on the spline representation of the region are modified by the user for any local changes in the shape of the operating region. The local editing modifies points on the operating region internally by using the variation reduction properties of the B-spline.
[0135] 3. Query various properties of the operation area
[0136] In one embodiment, the computation process continues to query the representation of the operating area. In such an embodiment, the virtual representation of the operating area can be queried to obtain data about the operating area, such as the generation of area and perimeter, etc.
[0137] 4. Combined operation area
[0138] The computation process continues by combining operation areas. In one embodiment, when the user defines resources and relationships across resources, a graph is constructed with a set of vertices and edges. The vertices store information about the resources: the location and virtual representation of the resource operation area, and the edges store the relationships across resources. Then, when combining operation areas based on certain relationships, one embodiment traverses the graph and extracts the set of valid vertices and edges that satisfy the specified relationships to form a subgraph.
[0139] In one embodiment, once the regions are evaluated using the criteria and the regions to be combined are identified, the minimum distance is evaluated between a resource and the resource corresponding to the identified operational region to be combined (the resource is part of the subgraph constructed in the previous step). Fig.14 N zones (1440a-n) are shown, and the distance between one zone and all other zones (one-to-many) is shown by arrows 1441a-i. Note that the distance between identical zones is zero.
[0140] In one embodiment, the maximum value of all these minimum distances (D maxmin ) is used to automatically combine valid operating areas (operating areas to be combined based on the criteria for combining). This can be achieved by using a positive offset value: D maxmin / 2+ε and negative offset value: D maxmin / 2, where ε is related to D maxmin Compared to very small connectivity factors. For example, (ε / D maxmin=0.0001) can be used to connect two boundaries. In one embodiment, the corners are rounded during the offset operation to minimize the deviation from the original position of the point on the operating region. The offset operation internally applies a regular Boolean set union operation to a set of operating regions. Therefore, if two operating regions overlap during the offset operation, these regions will be combined to form a single region. According to one embodiment, the resulting operating region can be edited locally and globally, as described above.
[0141] To illustrate the combined operating region, consider Fig.15 An example of resources of the operating zones 1550a-f is shown. To combine the operating zones 1550a-f, a positive offset value is applied to the operating zones 1550a-f, i.e., a positive offset value D is used. maxmin / 2+ε to expand the operating region 1550a-f. This will create a combined region. Then, the negative offset value D maxmin / 2 is applied to the combined area, that is, the combined area is eroded using a negative offset value.
[0142] In this example, when a positive offset is applied, the new boundaries of the operating areas 1550a-e will overlap. These new boundaries are combined using a Boolean set union operation to form Fig.16 A single connected component 1660 is shown in FIG. A negative offset value is applied to the combined region 1660 to form a final combined region 1661. In such an embodiment, because the negative offset is slightly smaller than the positive offset value, such an embodiment preserves the original topology. Fig.16 In the example, a minimum size combined operation area is created.
[0143] In one embodiment, the layout designer may consider the remaining space, such as free space 1662, and reuse the empty space for other resources, or change the spatial location of current resources, or redefine tasks to save space.
[0144] In one embodiment, when the user clicks "Generate Operation Area" for a given resource, a compact virtual representation (two-dimensional representation) is generated for the operation area, which requires a smaller memory size to store the representation. The generation process is more efficient than the method of generating a swept volume and then projecting the swept volume to extract the boundaries of the operation area. In addition, the resulting area matches the configuration space of the resource with minimal deviation. In one embodiment, the combination of zones is automatic and matches the boundaries of each operation area with minimal deviation (possibly at concave corners). For example, Figure 7 Combination areas 771, 772 are shown, which retain Figure 5 The implementation scheme can be used to save the floor space of a factory by allocating the floor space required for robot movement.
[0145] Although about Fig.16 The examples described depict combining operations to generate a minimum size region, but it is noted that embodiments are not limited thereto, and in general embodiments determine an optimal size region, which may be a minimum size region in some cases, and may be larger than a minimum size region in other cases. For example, Fig.17 The combination of zone 1770a and zone 1770b into combined zone 1771 is graphically depicted. Combined zone 1771 is an example of a combined zone where the size of the zone can vary based on preference, so there is no need to determine a minimum size zone. For example, the width of track 1772 can be wider or narrower depending on the application of the resources corresponding to zone 1770a and zone 1770b, and further, the thickness of track 1772 can vary from end to end.
[0146] Fig.18A Environment 1880 is shown in which zone 1881 and zone 1882 are grouped together along their perimeters. In such an example, it may be desirable to determine the minimum combined zone to save floor space. In contrast, Fig.18B An environment 1883 is depicted in which the boundaries of operating zone 1884 and operating zone 1885 are adjusted based on the capabilities of sensor 1886. Thus, in environment 1883, it may not be desirable to determine a minimum size zone.
[0147] Embodiments may use a variety of different criteria to combine operating zones. Fig.19A An environment 1990 is shown including operating areas 1991a-d with distances 1992a-d therebetween. Fig.19B An example is shown where the criterion for combining zones is a distance of less than 2 units. In such an example, the zones to be combined are zones 1991a-c. Fig.19C An example is shown where the criterion for combining zones is a distance of less than 1 unit. In such an example, the zones to be combined are zones 1991a-b. Fig.19D An example is shown where the criterion for combining zones is a distance of less than 1 unit and zone 1991d. Fig.19D In the example, area 1991d is included as an example of a user-specified constraint that may be employed in an implementation.
[0148] In an embodiment, various layout designs can be automatically generated using advanced user inputs such as proximity information. For example, in one embodiment, a user can specify upper and lower limits for the minimum distance (a <= minimum distance <= b) used to generate combined regions. In such an embodiment, a set of candidate regions that meet the criteria are automatically selected and combined together.
[0149] According to one embodiment, two or more regions of complex shape, such as regions having multiple concave surfaces or holes, can be automatically combined to generate a super-region. Subsequently, the super-region can be eroded or shrunk to generate multiple layouts or regions (or a series of layouts) based on a value selected for a negative offset value S (where 0 < S <= dminmax / 2). In such an embodiment, if the offset value S = dminmax / 2 is used, the combined region retains the characteristics of the outer boundaries of the regions being combined. From these multiple layouts, the best solution can be automatically selected (according to criteria), or the best solution can be selected by the user. In one example, the layout is selected based on a safety factor to ensure that the resulting layout is not shrunk.
[0150] Fig. 20 A process 2020 for generating multiple layouts according to one embodiment is shown. Process 2020 begins with operation regions 2021 and 2022. Next, operation regions 2021 and 2022 are inflated 2023 to create a combined region 2024. Subsequently, the combined region 2024 is eroded 2025 using multiple different offset values. Each different offset value results in a different layout 2026a-c. Then the best layout can be selected from layouts 2026a-c.
[0151] One embodiment of the present invention serves as a "geometric operator". Such an embodiment automatically generates an output based on high-level user input. Fig.21 An exemplary method 2100 serving as a "geometric operator" is shown. Method 2100 begins at step 2101 and obtains data indicating multiple regions in a real-world working area of a subject, where each region is occupied by a resource. According to one embodiment, the obtaining at step 2101 is implemented by a digital processor. Method 2100 continues to step 2102 by the processor receiving a user-defined distance criterion for combining two or more of the multiple regions. Subsequently, at step 2103, using the obtained data indicating the multiple regions, the minimum distance between each of the multiple regions is automatically determined. Next, at step 2104, based on the determined minimum distance between each region and the user-defined distance criterion, candidate regions for merging are automatically identified from the multiple regions. According to one embodiment, the automatic determination of the minimum distance at step 2103 and the automatic identification of candidate regions at step 2104 are performed by the processor in response to user input of the user-defined distance criterion.
[0152] To continue, at step 2105, the identified candidate regions are connected by expanding the candidate regions by the processor using a first factor. Then, at step 2106, a combined region is determined by contracting the connected candidate regions by the processor using a second factor, wherein determining the combined region includes the processor providing an output indication of the determined combined region. The output indication may be a display view (a graphical or model representation) to a user, or may be a data file that may be shared with related related software (e.g., a controller for a factory floor element such as a robot). In one embodiment, the output indication may cause a controller or similar device to reconfigure the operation of resources on the factory floor or thereon, such as a robot, according to the determined layout.
[0153] According to one embodiment of method 2100, the first factor and the second factor are each a function of a maximum value from a set including a minimum distance determined between candidate regions. Another embodiment of method 2100 also includes receiving a user-defined connectivity factor, and in such an embodiment, the first factor is a function of a maximum value from a set including a minimum distance determined between candidate regions and the received user-defined connectivity factor, such as a distance function. An exemplary embodiment of method 2100 also includes receiving one or more user-defined constraints on the regions to be combined, and identifying candidate regions for merging based on the minimum distance determined between each region, the user-defined distance criteria, and the received one or more user-defined constraints on the regions to be combined.
[0154] Fig. 22 2220 is a simplified block diagram of a computer-based system for determining resource layout according to any embodiment of the present invention described herein. System 2220 includes bus 2223. Bus 2223 acts as an interconnect between the various components of system 2220. Input / output device interface 2226 is connected to bus 2223 for connecting various input and output devices (e.g., keyboard, mouse, display, speakers, etc.) to system 2220. Central processing unit (CPU) 2222 is connected to bus 2223 and provides computer instructions for implementing the embodiments. Memory 2225 provides volatile storage of data used to execute the embodiments described herein, such as previously described in conjunction with Figure 1 , Figure 2 and Fig.21 The system 2220 may include computer instructions for the methods 100, 220, 2100 described herein. The storage device 2224 provides non-volatile storage for software instructions such as an operating system (not shown) and implementation configurations. The system 2220 may also include a network interface 2221 for connecting to any of a variety of networks known in the art, including a wide area network (WAN) and a local area network (LAN).
[0155] It should be understood that the exemplary embodiments described herein can be implemented in many different ways. In some cases, the various methods and machines described herein can be implemented by a physical, virtual or hybrid general-purpose computer (e.g., computer system 2220) or computer network environment (e.g., computer environment 2030), as described below in conjunction with Fig.23 As described. For example, the computer system 2220 can be converted into a machine that performs the methods described herein by loading software instructions into the memory 2225 or the non-volatile storage device 2224 for execution by the CPU 2222. It should be further understood by those of ordinary skill in the art that the system 2220 and its various components can be configured to perform any embodiment or combination of embodiments of the present invention described herein. In addition, the system 2220 can implement the various embodiments described herein using any combination of hardware, software, and firmware modules that are operably coupled internally or externally to the system 2220. In addition, the system 2220 can be communicatively coupled to a device or embedded in a device so as to control the device or a device connected thereto to operate or move according to a layout determined using the principles described herein.
[0156] Fig.23 A computer network environment 2030 is shown in which embodiments of the present invention may be implemented. In the computer network environment 2030, a server 2031 is linked to clients 2033a-n via a communication network 2032. The environment 2030 may be used to allow the clients 2033a-n, alone or in combination with the server 2031, to perform any of the methods described herein. As non-limiting examples, the computer network environment 2030 provides a cloud computing embodiment, a software as a service (SAAS) embodiment, and the like.
[0157] Embodiments or aspects thereof may be implemented in the form of hardware, firmware or software. If implemented in software, the software may be stored on any non-transitory computer-readable medium that is configured to enable a processor to load the software or a subset of its instructions. The processor then executes the instructions and is configured to operate or cause the device to operate in the manner described herein.
[0158] In addition, firmware, software, routines, or instructions may be described herein as performing certain actions and / or functions of a data processor. However, it should be understood that such descriptions are included herein only for convenience, and such actions are actually caused by a computing device, processor, controller or other device that executes the firmware, software, routines, instructions, etc.
[0159] It should be understood that flow charts, block diagrams and network diagrams may include more or fewer elements, be arranged differently or be represented differently. However, it should also be understood that certain embodiments may specify block diagrams and network diagrams, and that several block diagrams and network diagrams illustrating the execution of the embodiments are implemented in a specific manner.
[0160] Thus, further embodiments may also be implemented in various computer architectures, physical, virtual, cloud computers and / or some combination thereof, and thus, the data processors described herein are for illustration purposes only and not limitation of the embodiments.
[0161] While exemplary embodiments have been particularly shown and described, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the embodiments as encompassed by the appended claims.
Claims
1. A computer-implemented method for automatically determining a resource layout in a manufacturing system, the method comprising: obtaining data indicating a location of each of a plurality of resources in the manufacturing system and a task performed by each of the resources; for each resource of the plurality of resources, automatically determining, using the obtained data indicative of the location of the resource and the task performed by the resource, a corresponding zone occupied by the resource on a plane of interest in the manufacturing system; automatically expanding and eroding determined regions of two or more of the plurality of resources to form a region of optimal size based on a criterion for combining regions, the criterion comprising a first factor and a second factor, the first factor and the second factor each being a function of a maximum value from a set of minimum distances between the determined regions comprising the two or more resources; as well as A file indicating a layout of the plurality of resources on the plane of interest is automatically created based on the determined region and the optimally sized region.
2. The method of claim 1, wherein: Determining the corresponding region occupied by the resource includes: simulating the resource to perform the task indicated in the data obtained for the resource; projecting components of the resource over time to produce a closed outline of the resource on the plane of interest; and The contours are combined into the regions using regular Boolean set operations.
3. The method of claim 1, further comprising: Indicates the safe area in the layout.
4. The method of claim 1, wherein: The expansion and erosion include: extending the determined region of the two or more resources using the first factor to form an extended region; combining the extended zones to form a super zone; and The super region is eroded using the second factor to form a region of the optimal size.
5. The method of claim 1, wherein: The criterion includes a negative offset value, and the method further includes: determining a plurality of corresponding combined regions by extending and eroding the determined regions of the two or more resources using a plurality of different negative offset values; and Based on the security factor, a given combination area is selected from the determined plurality of combination areas to create the file indicative of the layout.
6. The method of claim 1, wherein: The criteria include at least one of: a distance between zones, a user-defined constraint, and tasks performed by resources in the two or more zones.
7. The method of claim 6, wherein: The distance between regions includes a lower limit and an upper limit of the distance between regions to be combined.
8. The method of claim 6, wherein: The extensions and erosions based on the standard include: selecting a candidate area of the plurality of resources for combining from the determined area based on at least one of the criteria; applying the criteria to the candidate regions to identify the specific region of the two or more resources to be combined; and The identified region among the two or more regions is expanded and eroded to form the optimal sized region.
9. The method of claim 8, wherein: The user defined constraints include including specific regions into the candidate regions.
10. The method of claim 1, wherein: A given resource of the plurality of resources is at least one of: an industrial resource, a robot, a person, a machine tool, and a fixture.
11. The method of claim 1, wherein: The plane of interest is a factory floor.
12. A system for automatically determining a resource layout in a manufacturing environment, the system comprising: processor; as well as A memory having computer code instructions stored thereon, the processor and the memory having the computer code instructions are configured to cause the system to perform the following operations: obtaining data indicating a location of each of a plurality of resources in the manufacturing environment and a task performed by each of the resources; for each resource of the plurality of resources, automatically determining, using the obtained data indicative of the location of the resource and the task performed by the resource, a corresponding zone occupied by the resource on a plane of interest in the manufacturing system; automatically expanding and eroding determined regions of two or more of the plurality of resources to form a region of optimal size based on a criterion for combining regions, the criterion comprising a first factor and a second factor, the first factor and the second factor each being a function of a maximum value from a set of minimum distances between the determined regions comprising the two or more resources; as well as A file indicating a layout of the plurality of resources on the plane of interest is automatically created based on the determined region and the optimally sized region.
13. A non-transitory computer program product for automatically determining a resource layout in a manufacturing system, the computer program product being executed by a server in communication with one or more clients over a network, and comprising: A computer readable medium comprising program instructions which, when executed by a processor, cause the processor to perform the following operations: obtaining data indicating a location of each of a plurality of resources in the manufacturing system and a task performed by each of the resources; for each resource of the plurality of resources, automatically determining, using the obtained data indicative of the location of the resource and the task performed by the resource, a corresponding zone occupied by the resource on a plane of interest in the manufacturing system; automatically expanding and eroding determined regions of two or more of the plurality of resources to form a region of optimal size based on a criterion for combining regions, the criterion comprising a first factor and a second factor, the first factor and the second factor each being a function of a maximum value from a set of minimum distances between the determined regions comprising the two or more resources; as well as A file indicating a layout of the plurality of resources on the plane of interest is automatically created based on the determined region and the optimally sized region.
14. A computer-implemented method for determining a combined industrial workspace comprising a plurality of resources, the method comprising: The following operations are performed in response to user interaction with the CAD model representation of the subject real-world work area: obtaining data indicative of a plurality of zones in the subject real-world work area, wherein each zone is occupied by a resource, said obtaining data being performed by a digital processor; receiving, by the processor, a user-defined distance criterion for combining two or more zones of the plurality of zones; automatically determining a minimum distance between each of the plurality of zones using the obtained data indicative of the plurality of zones; automatically identifying a candidate region for merging from the plurality of regions based on the determined minimum distance between each region and the user-defined distance criterion, the automatic determination and the automatic identification being performed by the processor in response to a user input of the user-defined distance criterion; dilating, by the processor, the candidate regions using a first factor to connect the identified candidate regions; as well as Shrinking, by the processor, the connected candidate regions using a second factor to determine a combined region, the determining the combined region comprising the processor providing an output indication of the determined combined region.
15. The method of claim 14, wherein: The first factor and the second factor are each a function of a maximum value from a set including the determined minimum distance between the candidate regions.
16. The method of claim 14, further comprising: receiving a user-defined connectivity factor; and The first factor is a function of a maximum value from a set including a minimum distance determined between the candidate region and the received user-defined connectivity factor.
17. The method of claim 14, further comprising: receiving one or more user-defined constraints on regions to be combined; as well as The candidate regions for merging are identified based on the determined minimum distance between each region, the user-defined distance criterion, and one or more user-defined constraints on the received regions to be combined.
