Patent Publication Number: US-2023158675-A1

Title: Systems and methods for high accuracy fixtureless assembly

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. application Ser. No. 16/222,926, filed Dec. 17, 2018 and entitled “SYSTEMS AND METHODS FOR HIGH ACCURACY FIXTURELESS ASSEMBLY”, which application is incorporated by reference herein in its entirety. 
    
    
     BACKGROUND 
     Field 
     The present disclosure relates to transport structures such as automobiles, trucks, trains, boats, aircraft, motorcycles, metro systems, and the like, and more specifically to techniques for performing operations with robotic arms. 
     Background 
     A transport structure such as an automobile, truck or aircraft employs a large number of interior and exterior nodes. These nodes provide structure to the automobile, truck, and aircraft, and respond appropriately to the many different types of forces that are generated or that result from various actions like accelerating and braking. These nodes also provide support. Nodes of varying sizes and geometries may be integrated into a transport structure, for example, to provide an interface between panels, extrusions, and/or other structures. Thus, nodes are an integral part of transport structures. 
     Most nodes must be coupled to, or interface securely with, another part or structure in secure, well-designed ways. In order to securely connect a node with another part or structure, the node may need to undergo one or more processes in order to prepare the node to connect with the other part or structure. For example, the node may be machined at an interface in order to connect with various other parts or structures. Further examples of processes include surface preparation operations, heat treatment, electrocoating, electroplating, anodization, chemical etching, cleaning, support removal, powder removal, and so forth. 
     In order to produce a transport structure (e.g., a vehicle, an aircraft, a metro system, etc.), one or more assembly operations may be performed after a node is manufactured. For example, a node may be connected with a part, e.g., in order to form a portion of a transport structure (e.g., a vehicle chassis, etc.). Such assembly may involve a degree of accuracy that is within one or more tolerance thresholds of an assembly system, e.g., in order to ensure that the node is securely connected with the part and, therefore, the transport structure may be satisfactorily produced. 
     When robotic apparatuses (e.g., robotic end-of-arm tool center point) perform assembly operations, the robotic apparatuses are to be accurately positioned in order for the assembly operations to be accurately performed. For example, a robotic arm with which a node is engaged may be positioned so that the node is accurately connected with a part. Thus, a need exists for an approach to correctly positioning at least one robotic apparatus (e.g., a robotic end-of-arm tool center point) with a degree of precision that is within tolerance threshold(s) of an assembly system when performing various assembly operations. 
     SUMMARY 
     The present disclosure generally relates to assembly operations performed in association with the production of transport structures. Such assembly operations may include connection of nodes (e.g., additively manufactured nodes) with parts and/or other structures. Because transport structures are to be safe, reliable, and so forth, approaches to accurately performing various assembly operations associated with the production of transport structures may be beneficial. Such approaches to various assembly operations may be performed by at least one robotic arm that may be instructed via computer-generated instructions. Accordingly, a computer may implement various techniques to generate instructions for at least one robotic arm that causes the at least one robotic arm to be correctly positioned when performing various assembly operations. 
     In the present disclosure, systems and methods for positioning a robotic arm may be described. In one aspect, a method of robotic assembly includes receiving a first target location indicating where a first robot is to position a first feature of a first subcomponent. The first target location may be proximal to a second target location indicating where a second robot is to position a second feature of a second subcomponent such that the first subcomponent and the second subcomponent form a component when coupled together with the first feature of the first subcomponent in the first location and the second feature of the second subcomponent in the second location. The method of robotic assembly also includes calculating a first calculated location of the first feature of the first subcomponent and measuring a first measured location of the first feature of the first subcomponent. Additionally, the method of robotic assembly includes determining a first transformation matrix between the first calculated location and the first measured location and repositioning the first feature of the first subcomponent to the first target location using the first robot. The repositioning may be based on the first transformation matrix. 
     In one aspect, a system for robotic assembly includes a first robot, a second robot, and a control unit. The control unit may be configured to receive a first target location indicating where the first robot is to position a first feature of a first subcomponent. The first target location may be proximal to a second target location indicating where the second robot is to position a second feature of a second subcomponent such that the first subcomponent and the second subcomponent form a component when coupled together with the first feature of the first subcomponent in the first location and the second feature of the second subcomponent in the second location. The control unit may also be configured to calculate a first calculated location of the first feature of the first subcomponent and measure a first measured location of the first feature of the first subcomponent. Additionally, the control unit may be configured to determine a first transformation matrix between the first calculated location and the first measured location and reposition the first feature of the first subcomponent to the first target location using the first robot. The repositioning may be based on the first transformation matrix. 
     In one aspect, a robotic assembly control unit includes at least one processor and a memory coupled to the at least one processor. The memory includes instructions configuring the control unit to receive a first target location indicating where a first robot is to position a first feature of a first subcomponent. The first target location is proximal to a second target location indicating where a second robot is to position a second feature of a second subcomponent such that the first subcomponent and the second subcomponent form a component when coupled together with the first feature of the first subcomponent in the first location and the second feature of the second subcomponent in the second location. The memory also includes instructions configuring the control unit to calculate a first calculated location of the first feature of the first subcomponent and measure a first measured location of the first feature of the first subcomponent. Additionally, the memory includes instructions configuring the control unit to determine a first transformation matrix between the first calculated location and the first measured location and reposition the first feature of the first subcomponent to the first target location using the first robot. The repositioning is based on the first transformation matrix. 
     In one aspect, a computer-readable medium stores computer executable code for robotic assembly. In an aspect, the computer-readable medium may be cloud-based computer-readable mediums, such as a hard drive on a server attached to the Internet. The code, when executed by a processor, causes the processor to receive a first target location indicating where a first robot is to position a first feature of a first subcomponent. The first target location may be proximal to a second target location indicating where a second robot is to position a second feature of a second subcomponent such that the first subcomponent and the second subcomponent form a component when coupled together with the first feature of the first subcomponent in the first location and the second feature of the second subcomponent in the second location. The code, when executed by a processor, causes the processor to calculate a first calculated location of the first feature of the first subcomponent and measure a first measured location of the first feature of the first subcomponent. The code, when executed by a processor, causes the processor to determine a first transformation matrix between the first calculated location and the first measured location and reposition the first feature of the first subcomponent to the first target location using the first robot. The repositioning is based on the first transformation matrix. 
     It will be understood that other aspects of mechanisms for realizing high accuracy fixtureless assembly with additively manufactured components and the manufacture thereof will become readily apparent to those skilled in the art from the following detailed description, wherein it is shown and described only several embodiments by way of illustration. As will be realized by those skilled in the art, the disclosed subject matter is capable of other and different embodiments, and its several details are capable of modification in various other respects, all without departing from the invention. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not as restrictive. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG.  1    is a diagram illustrating an exemplary embodiment of certain aspects of a Direct Metal Deposition (DMD) 3-D printer. 
         FIG.  2    is a conceptual flow diagram of a 3-D printing process using a 3-D printer. 
         FIGS.  3 A-D  is a diagram illustrating exemplary powder bed fusion (PBF) systems during different stages of operation. 
         FIG.  4    is a diagram illustrating a perspective of a first assembly system including a plurality of robots acting as fixtures. 
         FIG.  5    is a diagram illustrating a perspective of a second assembly system including a plurality of robots acting as fixtures. 
         FIG.  6    is a diagram illustrating a fixture point printed directly on a part. 
         FIG.  7    is a diagram illustrating part scanning and fitting on a fixture. 
         FIG.  8    is a conceptual flow diagram in accordance with the systems and methods described herein. 
     
    
    
     DETAILED DESCRIPTION 
     The detailed description set forth below in connection with the appended drawings is intended to provide a description of various exemplary embodiments and is not intended to represent the only embodiments in which the invention may be practiced. The terms “exemplary,” “illustrative,” and the like used throughout the present disclosure mean “serving as an example, instance, or illustration,” and should not necessarily be construed as preferred or advantageous over other embodiments presented in the present disclosure. The detailed description includes specific details for the purpose of providing a thorough and complete disclosure that fully conveys the scope of the invention to those skilled in the art. However, the invention may be practiced without these specific details. In some instances, well-known structures and components may be shown in block diagram form, or omitted entirely, in order to avoid obscuring the various concepts presented throughout the present disclosure. In addition, the figures may not be drawn to scale and instead may be drawn in a way that attempts to most effectively highlight various features relevant to the subject matter described. 
     Additive Manufacturing (3-D Printing). Additive manufacturing (AM) is advantageously a non-design specific manufacturing technique. AM provides the ability to create complex structures within a part. For example, nodes can be produced using AM. A node is a structural member that may include one or more interfaces used to connect to other spanning components such as tubes, extrusions, panels, other nodes, and the like. Using AM, a node may be constructed to include additional features and functions, depending on the objectives. For example, a node may be printed with one or more ports that enable the node to secure two parts by injecting an adhesive rather than welding multiple parts together, as is traditionally done in manufacturing complex products. Alternatively, some components may be connected using a brazing slurry, a thermoplastic, a thermoset, or another connection feature, any of which can be used interchangeably in place of an adhesive. Thus, while welding techniques may be suitable with respect to certain embodiments, additive manufacturing provides significant flexibility in enabling the use of alternative or additional connection techniques. 
     A variety of different AM techniques have been used to 3-D print components composed of various types of materials. Numerous available techniques exist, and more are being developed. For example, Directed Energy Deposition (DED) AM systems use directed energy sourced from laser or electron beams to melt metal. These systems utilize both powder and wire feeds. The wire feed systems advantageously have higher deposition rates than other prominent AM techniques. Single Pass Jetting (SPJ) combines two powder spreaders and a single print unit to spread metal powder and to print a structure in a single pass with apparently no wasted motion. As another illustration, electron beam additive manufacturing processes use an electron beam to deposit metal via wire feedstock or sintering on a powder bed in a vacuum chamber. Single Pass Jetting is another exemplary technology claimed by its developers to be much quicker than conventional laser-based systems. Atomic Diffusion Additive Manufacturing (ADAM) is still another recently developed technology in which components are printed, layer-by-layer, using a metal powder in a plastic binder. After printing, plastic binders are removed, and the entire part is sintered at once into a desired metal. One of several such AM techniques, as noted, is DMD.  FIG.  1    illustrates an exemplary embodiment of certain aspects of a DMD 3-D printer  100 . DMD printer  100  uses feed nozzle  102  moving in a predefined direction  120  to propel powder streams  104 a and  104 b into a laser beam  106 , which is directed toward a workpiece  112  that may be supported by a substrate. Feed nozzle may also include mechanisms for streaming a shield gas  116  to protect the welded area from oxygen, water vapor, or other components. 
     The powdered metal is then fused by the laser  106  in a melt pool region  108 , which may then bond to the workpiece  112  as a region of deposited material  110 . The dilution area  114  may include a region of the workpiece where the deposited powder is integrated with the local material of the workpiece. The feed nozzle  102  may be supported by a computer numerical controlled (CNC) robot or a gantry, or another computer-controlled mechanism. The feed nozzle  102  may be moved under computer control multiple times along a predetermined direction of the substrate until an initial layer of the deposited material  110  is formed over a desired area of the workpiece  112 . The feed nozzle  102  can then scan the region immediately above the prior layer to deposit successive layers until the desired structure is formed. In general, the feed nozzle  102  may be configured to move with respect to all three axes, and in some instances to rotate on its own axis by a predetermined amount. 
       FIG.  2    is a flow diagram  200  illustrating an exemplary process of 3-D printing. A data model of the desired 3-D object to be printed is rendered (operation  210 ). A data model is a virtual design of the 3-D object. Thus, the data model may reflect the geometrical and structural features of the 3-D object, as well as its material composition. The data model may be created using a variety of methods, including CAE-based optimization, 3D modeling, photogrammetry software, and camera imaging. CAE-based optimization may include, for example, cloud-based optimization, fatigue analysis, linear or non-linear finite element analysis (FEA), and durability analysis. 
     3-D modeling software, in turn, may include one of numerous commercially available 3-D modeling software applications. Data models may be rendered using a suitable computer-aided design (CAD) package, for example in an STL format. STL is one example of a file format associated with commercially available stereolithography-based CAD software. A CAD program may be used to create the data model of the 3-D object as an STL file. Thereupon, the STL file may undergo a process whereby errors in the file are identified and resolved. 
     Following error resolution, the data model can be “sliced” by a software application known as a slicer to thereby produce a set of instructions for 3-D printing the object, with the instructions being compatible and associated with the particular 3-D printing technology to be utilized (operation  220 ). Numerous slicer programs are commercially available. Generally, the slicer program converts the data model into a series of individual layers representing thin slices (e.g., 100 microns thick) of the object being printed, along with a file containing the printer-specific instructions for 3-D printing these successive individual layers to produce an actual 3-D printed representation of the data model. 
     The layers associated with 3-D printers and related print instructions need not be planar or identical in thickness. For example, in some embodiments depending on factors like the technical sophistication of the 3-D printing equipment and the specific manufacturing objectives, etc., the layers in a 3-D printed structure may be non-planar and/or may vary in one or more instances with respect to their individual thicknesses. 
     A common type of file used for slicing data models into layers is a G-code file, which is a numerical control programming language that includes instructions for 3-D printing the object. The G-code file, or other file constituting the instructions, is uploaded to the 3-D printer (operation  230 ). Because the file containing these instructions is typically configured to be operable with a specific 3-D printing process, it will be appreciated that many formats of the instruction file are possible depending on the 3-D printing technology used. 
     In addition to the printing instructions that dictate what and how an object is to be rendered, the appropriate physical materials necessary for use by the 3-D printer in rendering the object are loaded into the 3-D printer using any of several conventional and often printer-specific methods (operation  240 ). In DMD techniques, for example, one or more metal powders may be selected for layering structures with such metals or metal alloys. In selective laser melting (SLM), selective laser sintering (SLS), and other PBF-based AM methods (see below), the materials may be loaded as powders into chambers that feed the powders to a build platform. Depending on the 3-D printer, other techniques for loading printing materials may be used. 
     The respective data slices of the 3-D object are then printed based on the provided instructions using the material(s) (operation  250 ). In 3-D printers that use laser sintering, a laser scans a powder bed and melts the powder together where the structure is desired and avoids scanning areas where the sliced data indicates that nothing is to be printed. This process may be repeated thousands of times until the desired structure is formed, after which the printed part is removed from a fabricator. In fused deposition modeling, as described above, parts are printed by applying successive layers of model and support materials to a substrate. In general, any suitable 3-D printing technology may be employed for purposes of the present disclosure. 
     Another AM technique includes powder-bed fusion (“PBF”). Like DMD, PBF creates ‘build pieces’ layer-by-layer. Each layer or ‘slice’ is formed by depositing a layer of powder and exposing portions of the powder to an energy beam. The energy beam is applied to melt areas of the powder layer that coincide with the cross-section of the build piece in the layer. The melted powder cools and fuses to form a slice of the build piece. The process can be repeated to form the next slice of the build piece, and so on. Each layer is deposited on top of the previous layer. The resulting structure is a build piece assembled slice-by-slice from the ground up. 
       FIGS.  3 A-D  illustrate respective side views of an exemplary PBF system  300  during different stages of operation. As noted above, the particular embodiment illustrated in  FIGS.  3 A-D  is one of many suitable examples of a PBF system employing principles of the present disclosure. It should also be noted that elements of  FIGS.  3 A-D  and the other figures in the present disclosure are not necessarily drawn to scale but may be drawn larger or smaller for the purpose of better illustration of concepts described herein. PBF system  300  can include a depositor  301  that can deposit each layer of metal powder, an energy beam source  303  that can generate an energy beam, a deflector  305  that can apply the energy beam to fuse the powder, and a build plate  307  that can support one or more build pieces, such as a build piece  309 . PBF system  300  can also include a build floor  311  positioned within a powder bed receptacle. The walls of the powder bed receptacle  312  generally define the boundaries of the powder bed receptacle, which is sandwiched between the walls  312  from the side and abuts a portion of the build floor  311  below. Build floor  311  can progressively lower build plate  307  so that depositor  301  can deposit a next layer. The entire mechanism may reside in a chamber  313  that can enclose the other components, thereby protecting the equipment, enabling atmospheric and temperature regulation and mitigating contamination risks. Depositor  301  can include a hopper  315  that contains a powder  317 , such as a metal powder, and a leveler  319  that can level the top of each layer of deposited powder. 
     Referring specifically to  FIG.  3 A , this figure shows PBF system  300  after a slice of build piece  309  has been fused, but before the next layer of powder has been deposited. In fact,  FIG.  3 A  illustrates a time at which PBF system  300  has already deposited and fused slices in multiple layers, e.g.,  150  layers, to form the current state of build piece  309 , e.g., formed of  150  slices. The multiple layers already deposited have created a powder bed  321 , which includes powder that was deposited but not fused. 
       FIG.  3 B  shows PBF system  300  at a stage in which build floor  311  can lower by a powder layer thickness  323 . The lowering of build floor  311  causes build piece  309  and powder bed  321  to drop by powder layer thickness  323 , so that the top of the build piece and powder bed are lower than the top of powder bed receptacle wall  312  by an amount equal to the powder layer thickness. In this way, for example, a space with a consistent thickness equal to powder layer thickness  323  can be created over the tops of build piece  309  and powder bed  321 . 
       FIG.  3 C  shows PBF system  300  at a stage in which depositor  301  is positioned to deposit powder  317  in a space created over the top surfaces of build piece  309  and powder bed  321  and bounded by powder bed receptacle walls  312 . In this example, depositor  301  progressively moves over the defined space while releasing powder  317  from hopper  315 . Leveler  319  can level the released powder to form a powder layer  325  that has a thickness substantially equal to the powder layer thickness  323  (see  FIG.  3 B ). Thus, the powder in a PBF system can be supported by a powder support structure, which can include, for example, a build plate  307 , a build floor  311 , a build piece  309 , walls  312 , and the like. It should be noted that the illustrated thickness of powder layer  325  (i.e., powder layer thickness  323  ( FIG.  3 B )) is greater than an actual thickness used for the example involving  350  previously-deposited layers discussed above with reference to  FIG.  3 A . 
       FIG.  3 D  shows PBF system  300  at a stage in which, following the deposition of powder layer  325  ( FIG.  3 C ), energy beam source  303  generates an energy beam  327  and deflector  305  applies the energy beam to fuse the next slice in build piece  309 . In various exemplary embodiments, energy beam source  303  can be an electron beam source, in which case energy beam  327  constitutes an electron beam. Deflector  305  can include deflection plates that can generate an electric field or a magnetic field that selectively deflects the electron beam to cause the electron beam to scan across areas designated to be fused. In various embodiments, energy beam source  303  can be a laser, in which case energy beam  327  is a laser beam. Deflector  305  can include an optical system that uses reflection and/or refraction to manipulate the laser beam to scan selected areas to be fused. 
     In various embodiments, the deflector  305  can include one or more gimbals and actuators that can rotate and/or translate the energy beam source to position the energy beam. In various embodiments, energy beam source  303  and/or deflector  305  can modulate the energy beam, e.g., turn the energy beam on and off as the deflector scans so that the energy beam is applied only in the appropriate areas of the powder layer. For example, in various embodiments, the energy beam can be modulated by a digital signal processor (DSP). 
     The present disclosure presents various approaches to positioning at least one robotic arm in an assembly system. For example, an assembly system may include two robots, each of which may include a respective robotic arm. A first robotic arm may be configured to engage with a node during various operations performed with the node. For example, the first robotic arm may engage with a node that is to be connected with a part, and the part may be engaged by a second robotic arm. Various operations performed with the node (e.g., connecting the node with a part) may be performed with a relatively high degree of precision. Accordingly, at least one of the robotic arms may be positioned (e.g., repositioned) during an operation with the node in order to function in accordance with the precision commensurate with the operation. 
     In some aspects, the first robotic arm may engage with the node and the second robotic arm may engage with a part. An operation with the node may include connecting the node with the part. Thus, the first robotic arm may be positioned relative to the second robotic arm and/or the second robotic arm may be positioned relative to the first robotic arm. When the first and/or second robotic arms are configured to move, the first and/or second robotic arms may be positioned (e.g., repositioned) relative to the other one of the first and/or second robotic arms. Such positioning may correct the position(s) of the first and/or second robotic arms, e.g., to maintain the precision necessary for operations with a node, including connecting a node with a part by the first and second robotic arms. 
     The present disclosure provides various different embodiments of positioning one or more robotic arms of an assembly system for assembly processes and/or post-processing operations. It will be appreciated that various embodiments described herein may be practiced together. For example, an embodiment described with respect to one illustration of the present disclosure may be implemented in another embodiment described with respect to another illustration of the present disclosure. 
       FIG.  4    is a diagram illustrating a perspective of a first assembly system  400  including a plurality of robots  402 ,  404  acting as fixtures for two nodes  406 ,  408 . The assembly system  400  may be employed in various operations associated with the assembly of a node-based transport structure. In one embodiment, the assembly system  400  may perform at least a portion of the assembly of the node-based transport structure without any fixtures. For example, the assembly system  400  may be implemented for connecting a first node  406  (node  1 ) with a second node  408  (node  2 ) (although other implementations are possible without departing from the scope of the present disclosure). In an aspect, at least one of the first node  406  (e.g., first subcomponent) or the second node  408  (e.g., second subcomponent) may include a complex structure such as a chassis for a transport structure. 
     The assembly system  400  may include a first robotic arm  410  on the first robot  402  (robot  1 ). The first robotic arm  410  may have a distal end  414  and a proximal end  416 . The distal end  414  may be configured for movement, e.g., for operations associated with a node and/or part, e.g., the first node  406 . The proximal end  416  may secure the first robotic arm  410 , e.g., to a base  418 . 
     The distal end  414  of the first robotic arm  410  may be connected with a tool flange. The tool flange may be configured to connect with one or more components (e.g., tools) so that the first robotic arm  410  may connect with the one or more components and position the one or more components as the first robotic arm  410  moves. 
     In the illustrated embodiment, the distal end  414  of the first robotic arm  410  may be connected with an end effector, e.g., by means of the tool flange. That is, the end effector may be connected with the tool flange, and the tool flange may be connected with the distal end  414  of the first robotic arm  410 . The end effector may be a component configured to interface with various parts, nodes, and/or other structures. Illustratively, the end effector may be configured to engage with a node  406  (however, the end effector may be configured to engage with a part or other structure). Examples of an end effector may include jaws, grippers, pins, or other similar components capable of engaging a node, part, or other structure. 
     As illustrated, the assembly system  400  may further include a second robotic arm  412  on the second robot  404 . The second robotic arm  412  may have a distal end  420  and a proximal end  422 . The proximal end  422  of the second robotic arm  412  may be connected with a base  424 , e.g., in order to secure the second robotic arm  412 . Illustratively, the first robotic arm  410  and the second robotic arm  412  may be located in the assembly system  400  to be approximately facing one another, e.g., so that the distal end  414  of the first robotic arm  410  extends towards the distal end  420  of the second robotic arm  412  and, correspondingly, the distal end  420  of the second robotic arm  412  extends towards the distal end  414  of the first robotic arm  410 . However, the first and second robotic arms  410 ,  412  may be differently located in the assembly system  400  in other embodiments, e.g., according to an assembly operation that is to be performed. 
     Similar to the first robotic arm  410 , the distal end  420  of the second robotic arm  412  may be connected with a tool flange, and the tool flange may be connected with an end effector. The end effector may be configured to engage with a node, part, or other structure, such as the node  408  (node  2 ) that is to be connected with the node  406 . 
     Industrial robots may produce highly repeatable movements. For example, the robots  402 ,  404  may be able to position each of the respective robot arms  410 ,  412  repeatedly. The repeatability of the positioning may be accurate to about 60 microns when compared to another positioning, in an example. However, the placement relative to a specific positioning or absolute positioning may suffer from lower accuracy, e.g., approximately 400 microns. 
     Accordingly, because positioning of a robot arm  410 ,  412  may be accurate relative to a previous positioning, but not as accurate relative to an absolute position, e.g., a specific x, y, z location where the robot may be directed by a control unit, robots  402 ,  404  may generally not be suitable for use as high accuracy fixtures. The absolute positioning accuracy issue may be amplified when assembly hard points are driven by nominal location data. For example, parts tolerances may add in ways that negatively impact the tolerances of the assembled part when robotic positioning is used. 
     Metrology is the science of measurement. Using measurements to guide the robot, metrology guidance may be used to guide the robots  402 ,  404  as assembly fixtures, as is discussed in greater detail with respect to  FIG.  5   . For example, metrology systems may offer accuracy in the range of approximately 30 microns. Using the guidance of a metrology system industrial robots can realize greatly improved accuracy (in the micron scale). With this improvement in accuracy, the tool center point (TCP) of industrial robots can be used as a high accuracy flexible fixture. 
       FIG.  5    is a diagram illustrating a perspective of a second assembly system  500  including a plurality of robots  502 ,  504  acting as fixtures. The second assembly system  500  is generally similar to the assembly system  400  but includes further details of using measurements to guide the robot. Metrology guidance may be used to guide the robots  502 ,  504  as assembly fixtures. The second assembly system  500  includes a metrology device  526 , metrology targets  528 , and cell frames  530 . The cell frames may define the work area and provide a frame of reference within the work area. 
     A metrology&#39;s system accuracy may be applied to a critical motion path segment of multiple robots. In an aspect, the fixtureless assembly process may include a cell reference frame that may be created using computer-aided design (CAD). The cell reference frame may be matched to a physical robot cell. 
     The metrology device may be a metrology unit such as a laser, greyscale camera, or another device capable of taking measurements based on metrology targets. The metrology targets  528  may be mounted on robot flange and offset to the robot TCP. 
     Nominal target frames may be stored in the robot program, PLC, metrology software, or another database. Nominal frames may be dynamic and driven by scan results and/or probe results, as discussed with respect to  FIG.  6    below. Each robot control unit  532  may be digitally connected to the metrology unit and metrology software. 
     In an aspect, the metrology process, in the context of assembling a node-based structure, may include a first robot sending a signal to a metrology unit to aim/focus on a critical location. The metrology unit may aim or focus on a location including a target and lock onto the target. For example, the metrology unit may use a small diameter scan and lock. 
     The metrology unit measures robot TCP location or another critical feature offset from a target. An aspect may compare a measured location value to a dynamic nominal location value. For example, a system may compare where a robot thinks a node is located to where the node is actually located. A system may then compute a transformation matrix to move from a current location to a goal location. The transformation matrix may be applied to a robot control unit/PLC  532 , and the robot may move to a desired location. A confirmation measurement may be performed. Accuracy boundaries may be adjustable, such as gain or other values minimize cycle time. Additionally, a second robot may send a signal to the metrology unit to aim/focus on a location. The process may continue and be repeated. 
     In an aspect, the control unit  532  may cause a scanner  534  to scan a first subcomponent to determine a relative location of the first feature of the first subcomponent relative to the TCP. A robot  502 ,  504  may be configured to pick up the first subcomponent based on the scanning. 
     In an aspect, multiple metrology units and/or types of metrology units may be integrated to reduce cycle time. Measurements may also be taken in parallel with correction applied in parallel. Corrections may be applied only to the particular segments of the robot path. One metrology system may be used to apply a correction to n number of robots. 
     The control unit  532  illustrated in  FIG.  5    may be a robotic assembly control unit  532 . The robotic assembly control unit  532  may include at least one processor and a memory coupled to the at least one processor. The memory may include instructions configuring the control unit  532  to receive a first target  528  location indicating where a first robot (e.g., robot  1 ) is to position a first feature of a first subcomponent. The first target  528  location proximal to a second target  528  location indicating where a second robot (e.g., robot  2 ) is to position a second feature of a second subcomponent such that the first subcomponent and the second subcomponent form a component when coupled together with the first feature of the first subcomponent in the first location and the second feature of the second subcomponent in the second location. 
     The control unit  532  may calculate a first calculated location of the first feature of the first subcomponent and measure a first measured location of the first feature of the first subcomponent. Additionally, the control unit  532  may determine a first transformation matrix between the first calculated location and the first measured location and reposition the first feature of the first subcomponent to the first target location using the first robot, the repositioning based on the first transformation matrix. In an aspect, repositioning of the first feature of the first subcomponent and/or repositioning the second feature of the second subcomponent may be further based on a relative comparison of the first calculated location and the second calculated location. Accordingly, the features on the subcomponent may be located relative to each other directly, rather than relative to another reference frame rather than an absolute reference to a cell frame. 
     Accordingly, the control unit  532  may be coupled to the metrology device  526  and the robots (e.g., robot  1  and robot  2 ). Accordingly, measuring a first measured location of a first feature of a first subcomponent and measuring a second measured location of a second feature of a second subcomponent may use the same metrology unit, e.g., the metrology device  526 . Using information from the metrology device  526 , the control unit  532  may calculate the first calculated location of the first feature of the first subcomponent and measure the first measured location of the first feature of the first subcomponent. The control unit  532  may then determine a first transformation matrix. The transformation matrix may be applied to adjust the position of a component held by the robot arm  510 ,  512 . The measurements and calculations may be completed iteratively until the component or node is positioned as accurately as needed for the task. For example, two nodes may be located accurately enough to for a fixture to connect the two nodes. 
     The control unit  532  is illustrated in  FIG.  5    as an individual unit coupled to the robots (robot  1  and robot  2 ) and the metrology device  526 . In other aspects, the control unit  532  may be made up of multiple sub-control units. These multiple sub-control units may be distributed among different devices. For example, the control unit  532  may be distributed between some combination of a separate unit, within one or more robots, and/or within one or more metrology devices  526 . For example, processing functionality may be located in the metrology device  526 , the first robot (robot  1 ), the second robot (robot  2 ), and an external control unit, e.g., coupled to the metrology device  526 , the first robot (robot  1 ), the second robot (robot  2 ). 
       FIG.  6    is a diagram illustrating a fixture point  602  printed directly on a part  600 . The part includes a part gripper portion  604 . An end of a robot arm  510 ,  512  may grip the part at the part gripper portion  604 . Accordingly, the part  600  may be positioned by the robotic arm  510 ,  512 . Thus, the control unit  532  may determine target  528  locations using measurements from the metrology device  526 . The control unit  532  may then control the robots (robot  1  and/or robot  2 ) to position components being held by the robot arms  510 ,  512 . 
     The part  600  may be characterized, e.g., scanned, probed, or otherwise measured. As part of the characterization, features such as joints, bolt locations, or other features may be a fit to nominal data using a CAD model. For example, as part of the characterization, features such as joints, bolt locations, or other features may be a best fit to nominal data using a CAD model or other fit, e.g., any fit to determining an accurate characterization between two features. The characterization may measure the part relative to a TCP frame  606 . A best fit may be calculated based on the geometries of the features relative to the TCP frame  606 . Once the best fit of the features is performed, a fixture point  602  on the part may be calculated as a product of the calculated best fit. The fixture point  602  may allow the physical part to determine the fixture location that will lead to the most accurate assembly. The fixture point  602  may be printed directly into the product with the robot TCP acting as the fixture and a scanning fixture may be constructed with the robotic interface on it. Using the calculated best fit, adaptive fixture positions may be relocated in real time. The relocation of the fixture point may be driven by product geometry to maximize product accuracy and minimize overall assembly tolerance. 
     For example, the part  600  may include a sphere  608 . The fixture point  602  may be at the center of the sphere  608 . However, the sphere  608  may be imperfect. Accordingly, the part may be characterized to select a best location for the fixture point. The fixture point  602  may be an offset relative to the TCP frame. 
     The control unit  532  of  FIG.  5    may cause a scanner  534  to scan a first subcomponent (e.g., part  600 ) to determine a relative location of the first feature (e.g., fixture point  602 ) of the first subcomponent (e.g., part  600 ) relative to the TCP. The robot  502 ,  504  may be configured to pick up the first subcomponent based on the scanning. For example, the robot  502 ,  504  may pick up the first subcomponent at or near the TCP based on the scanning. In an aspect, the robot  502 ,  504  may pick up the first subcomponent at or near the part gripper along the TCP based on the scanning. Accordingly, the system may be able to locate the first feature (e.g., fixture point  602 ) of the first subcomponent (e.g., part  600 ) relative to the TCP based on where the robot  502 ,  504  picking up the first subcomponent (e.g., part  600 ) based on the scanning. 
       FIG.  7    is a diagram illustrating part  700  scanning and fitting on a fixture. In the diagram illustrates scanning the part  700  ( 1 ), determining a fit for the part  700  ( 2 ), and calculating a delta from a frame for the part  700 . 
     In an example, a fixture may have a feature which can easily be probed or scanned (1) to represent the robot TCP. For example, a sphere  708  with two flats  710  aligned so that its center is concentric with the center of the robot gripper/TCP  712 . The CAD file of each part includes the fixture  714  attached to each part  700 . 
     When determining the fit (2), the scan  750  may be of both the part  700  and the fixture  714 . The scan  750  is then overlaid with the CAD design  752  so that the features may be fit. The features may carry varying significance in the best fitting calculation. With just the main features, the fit may be used to determine a new location of the TCP  754 , e.g., at the center of the fixture sphere. The new location of the TCP  754  may be recorded as a calculated delta from a frame representing a CAD representation  756  of a part and a frame  758  based on an actual physical part with a newly located TCP  754 . The new TCP location  754  may be communicated in real time via a digital signal to an assembly cell software. The new location of the TCP  754  becomes the goal frame  758  in reference to a cell working frame  756  for the metrology system to correct the robot TCP to  754 . The goal frame  758  may be used in place of an ideal fixture location (TCP) from an idealized CAD design. The goal frame  758  may be based on product geometry and may be applied in real time to the assembly process of an actual physical part. For example, a best fit or other fit, e.g., a fit to determining an accurate characterization between two features. 
       FIG.  8    is a conceptual flow diagram in accordance with the systems and methods described herein. At  802  a control unit  532  may receive a first target location indicating where a first robot is to position a first feature of a first subcomponent. The first target location may be proximal to a second target location indicating where a second robot is to position a second feature of a second subcomponent such that the first subcomponent and the second subcomponent form a component when coupled together with the first feature of the first subcomponent in the first location and the second feature of the second subcomponent in the second location. The first target location may be a tool center point (TCP) and/or an offset from a TCP. 
     Accordingly, the control unit  532  receive target  528  location information from the metrology device  526 . The location information may indicate locations for nodes held by robot arms. For example, the location of the nodes may be known relative to the targets  528 . In an aspect, at least one of the first subcomponent may be a complex structure. The complex structure may be an automobile chassis. 
     At  804 , the control unit  532  may calculate a first calculated location of the first feature of the first subcomponent. The first calculated location may include a dynamic nominal location indicating a calculated location of a moving first feature at a specific time. The specific time may coincide with the measuring of the first location of the first feature. 
     For example, the control unit  532  may calculate a location using the location information received from the metrology device  526 . Because the location of the nodes may be known relative to the targets  528 , the control unit  532  may calculate a first calculated location of the first feature of the first subcomponent. 
     At  806 , the control unit  532  may measure a first measured location of the first feature of the first subcomponent. Measuring a first measured location of the first feature of the first subcomponent may include scanning the shape of the part. Additionally, scanning the shape of the part may include scanning the part (e.g., a first subcomponent) to determine a relative location of a first feature of the part relative to the TCP of the part. The first robot may be configured to pick up the part based on the scanning. For example, the first robot may pick up a first subcomponent on a TCP. Accordingly, the first robot may position the first feature based on the first feature&#39;s relative position to the TCP. 
     The first robot may signal a control unit  532  causing the control unit  532  to measure the first measured location of the first feature of the first subcomponent. In an aspect, measuring the first measured location of the first feature of the first subcomponent and measuring the second measured location of the second feature of the second subcomponent use a same metrology unit. 
     At  808 , the control unit  532  may determine a first transformation matrix between the first calculated location and the first measured location. Measuring a first measured location of the first feature of the first subcomponent comprises measuring a fixture point printed on the first subcomponent. For example, the control unit  532  may calculate frame deltas from an idealized frame based on a CAD design and a frame based on an actual physical device that may have differences from an idealized CAD design. (By idealized CAD design, the Applicant means the model design without inclusions of tolerances. The actual CAD design will generally include tolerances. A part that is made within tolerance may then be modeled as described herein using the frame delta. Parts not made within tolerances might be discarded.) 
     At  810 , the control unit  532  may reposition the first feature of the first subcomponent to the first target location using the first robot, the repositioning based on the first transformation matrix. Repositioning the first feature of the first subcomponent to the first target location using the first robot based on the first transformation matrix comprises sending the first transformation matrix to a control unit  532  in the first robot. Repositioning the first feature of the first subcomponent may be further based on a relative comparison of the first calculated location and a second calculated location. 
     In an aspect, the control unit  532  may repeat the calculating  804 , measuring  806 , determining  808 , and repositioning  810  steps. In another aspect, the control unit  532  may repeat one or more of  802 ,  804 ,  806 ,  808 , and  810 . In an aspect, the repeating of one or more of  802 ,  804 ,  806 ,  808 , and  810  may be relative to a second target. For example, the control unit  532  may receive a second target location indicating where the second robot is to position the second feature of the second subcomponent. The control unit  532  may calculate a second calculated location of the second feature of the second subcomponent. The control unit  532  may also measure a second measured location of the second feature of the second subcomponent. Additionally, the control unit  532  may determine a second transformation matrix between the second calculated location and the second measured location. The control unit  532  may also reposition the second feature of the second subcomponent to the second target location using the second robot. The repositioning may be based on the second transformation matrix. 
     At  812 , the control unit  532  may adjust at least one of accuracy boundaries or gain based on at least one of the repeating of the calculating, measuring, determining, and repositioning steps. 
     At  814 , the control unit  532  may characterize at least two features on the first subcomponent, the at least two features including the first target location. 
     At  816 , the control unit  532  may determine a fit, such as a best fit, for the at least two features. Repositioning the first feature of the first subcomponent to the first target location may use the first robot. The repositioning may be based on the first transformation matrix and may be further based on the best fit. 
     At  818 , the control unit  532  may attach the first subcomponent to the second subcomponent. Attaching the first subcomponent to the second subcomponent may include attaching the first subcomponent to the second subcomponent using an ultra-violet (UV) adhesive. 
     The present disclosure is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these exemplary embodiments presented throughout the present disclosure will be readily apparent to those skilled in the art, and the concepts disclosed herein may be applied to other techniques for printing nodes and interconnects. Thus, the claims are not intended to be limited to the exemplary embodiments presented throughout the disclosure but are to be accorded the full scope consistent with the language claims. All structural and functional equivalents to the elements of the exemplary embodiments described throughout the present disclosure that are known or later come to be known to those of ordinary skill in the art are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed under the provisions of 35 U.S.C. § 112(f), or analogous law in applicable jurisdictions, unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “step for.”