Millions of products are produced and introduced into the economic stream every day. These millions of products are produced at any number of manufacturing facilities that dot the globe. The building of certain types of products may be incredibly complex with large numbers of pieces and many operations to create a product for consumer use.
The accompanying drawings illustrate various examples of the principles described herein and are part of the specification. The illustrated examples are given merely for illustration, and do not limit the scope of the claims.
Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements. The figures are not necessarily to scale, and the size of some parts may be exaggerated to more clearly illustrate the example shown. Moreover, the drawings provide examples and/or implementations consistent with the description; however, the description is not limited to the examples and/or implementations provided in the drawings.
In today's growing society, millions of products are produced every day. Different manufacturing operations are implemented to create and/or assemble these products. Manufacturing processes may facilitate reliable assembly of complex devices made up of a plurality of individual components. In general, manufacturing instructions may exist independent of the specific components, and the assembly process is governed at least in part by the arrangement of the factory line. Such an assembly process may include execution of an ordered list of instructions, finding mating components, performing specified operations, and validating results.
While such manufacturing processes may effectively produce different kinds of products, enhancements to the manufacturing process may increase process efficiency and product yield. For example, in sequential manufacturing operations, downstream processes may be upheld by a delay in an upstream process. Moreover, it may be the case that part of the assembly process is defined by the construction and arrangement of the factory line. That is, assembly lines, and other instances where relative physical positions of manufacturing entities are at least partially dictated by assembly order of operations, are physical examples of a sequence of operations. That is, the layout of the assembly line and manufacturing facility in general, expresses an order of operations. These systems may struggle to accommodate creation of heterogeneous modules, such as customizations based off of a template design.
Moreover, certain operations carried out in a predetermined sequence may result in many of the operations being carried out in one large facility, rather than multiple smaller facilities. This can increase manufacturing overhead.
As will be described, the present system decouples the manufacturing operations from the arrangement of the factory line by embedding the instructions on the components of the device to be assembled. That is, an order of the manufacturing operations is not constrained. In other words, there is no imposed order of manufacturing; there is no proverbial assembly line. According to the present specification, different entities, in some examples in different geographic regions, can coordinate and cooperate to create the devices.
Specifically, the present specification describes a method. According to the method, component-specific assembly instructions are generated for each component in a device that includes multiple components. The component-specific assembly instructions include the portion of the assembly instructions that relate to the component. Data identifying the component-specific assembly instructions are encoded into a format to be formed onto the component and the encoded data is directly formed onto the component.
The present specification also describes a system. The system includes a scanning device to capture encoded data from a component of a device. An extraction device of the system extracts the encoded data and a translator decodes the encoded data to generate component-specific assembly instructions for the component. An assembly device of the system performs an assembly operation based on the component-specific assembly instructions.
The present specification also describes a non-transitory machine-readable storage medium encoded with instructions executable by a processor. The machine-readable storage medium includes instructions to 1) generate assembly instructions for a device that includes multiple components and 2) generate from the assembly instructions, component-specific assembly instructions for a component, wherein the component-specific assembly instructions comprise just a portion of the assembly instructions that relate to the component. The machine-readable storage medium also includes instructions to 1) encode the component-specific assembly instructions onto the component and 2) form the component.
Accordingly, using the present systems and methods, multiple distinct modules (or groupings of components) can be manufactured by any number of entities, each operating according to static instructions. This may be done by supplying a different set of appropriately marked components to the respective entities.
That is, there may not be any sequential list of instructions, or any physically sequential assembly stations. Instead, instructions that relate to just a component are permanently formed on that component. In this system components are selected, potentially at random; mating components are found; and then assembled to the selected component. Components and assembled subsets of components can be moved to different entities, or the entities may move to the components. In this example, multiple agents may cooperate to accomplish an objective indicated by the component-integrated instructions.
The process of assembly, finishing, and validation may be repeated until a module (formed of various components) is assembled. Such a module may be considered a sub-assembly for use in further device manufacturing operations.
As described herein, manufacturing of a module may be performed in a single facility. However, the present systems and methods may distribute assembly over multiple locations and facilities. That is, instructions are carried on the components themselves, such that manufacturing can occur anywhere appropriate components are found, without needing to move data and/or the components. Moreover, because manufacturing instructions are not expressed in relative physical position of assembly entities, moving a component from location A to location B for processing could be realized with a move of 2 meter or a move of 2000 kilometers.
In summary, using such a system enables more effective manufacturing as autonomous manufacturing cells are capable of finding and following embedded instructions, over a family of supported component types and assembly operations. These manufacturing cells can build a plurality of distinct high-level modules without reprogramming. That is, any number of independent manufacturing entities, operating in arbitrary locations, can use the embedded information to guide cooperative assembly of modules, including previously unseen module designs.
Moreover, the present systems and methods facilitate the assembly of sets of components into modules without access to independent manufacturing instructions that may become lost or out of date. For example, the embedded assembly instructions may carry valuable metadata such as recommended grips for robotic manipulators or expected insertion forces.
Such manufacturing that does not rely on entire device-specific instructions may be particularly relevant for mass customization. That is, mass customization is directly supported as components can easily be individually produced incorporating appropriate unique assembly instructions. For example, suppose one device supports connecting three-dimensional (3D) printed bones into skeleton models for education. Initially a small dog skeleton may be offered. However, by producing a set of bones for a different animal, for example a chicken, an autonomous manufacturing mechanism operating according to the present systems and methods may assemble skeletons of any type of animal simply by examining the supplied set of bones and following a common automated assembly operation. However, the devices disclosed herein may address other matters and deficiencies in a number of technical areas.
Turning now to the figures,
According to the method (100), component-specific assembly instructions are generated (block 101) for a component of a device. A device may include multiple components. For example, a model car may have multiple pieces that, when assembled, form the reproduction model of a car. The assembly of the model car may include a number of operations, such as joining an axle component to two wheel components, joining a hood component to a frame component, etc. The assembly instructions for the model car would detail these operations. Component-specific assembly instructions may indicate a per-component manipulation to result in the desired final result. Component-specific assembly instructions may include just a portion of the overall assembly instructions that relate to a particular component. That is, the component-specific assembly instructions may be unique to a particular component, may include assembly instructions just for that component, and in some examples do not include the entire device assembly instructions.
The component-specific assembly instructions may include a variety of pieces of information. For example, component-specific assembly instructions may indicate other components to which the component is to be mated with. For example, a component-specific assembly instruction for a wheel component of the model car may simply indicate what other components are to attach to the wheel component, and where those components are to attach.
In addition to identifying which other components the particular component is to be mated with, the component-specific assembly instructions may indicate how the component is to be joined with those other components. For example, via an adhesive, welded, interference fit, etc.
The component-specific assembly instructions may indicate manufacturing parameters. For example, the assembly instructions may indicate recommended grips for robotic manipulators or expected insertion forces. As another example, the component-specific assembly instructions may include pressures, temperatures or other environmental conditions for joining two components. As yet another example, the assembly instructions may specify the geometry of the connection in a non-visual manner such as identifying a 6 degrees of freedom coordinate specifying a pose of one component relative to another. In summary, the component-specific assembly instructions may indicate settings for the different assembly devices and/or environmental conditions under which components are to be assembled.
As described above, generating (block 101) the component-specific assembly instructions may simply include dividing the assembly instructions based on a component referred to in that instruction. For example, assembly instructions could be searched for the word “wheel” and each operation that identifies a wheel may form the component-specific assembly instructions for a wheel component. In some examples, just those assembly instructions that identify a wheel may form the component-specific assembly instructions.
While particular reference is made to a model car device and a wheel component, the method (100) described herein may be applied to any number of multi-component devices, such as any variety of mechanical devices, electronic devices, and/or electric devices, etc. That is, the method (100) described herein may apply to any multi-component device that is assembled via a set of instructions.
In some examples, the component-specific assembly instructions may indicate an order of assembly of different pieces of the component, or different components of the module. That is, while the present method (100) facilitates non-linear assembly, in some cases it may be desirable to indicate an order of assembly. For example, when assembling a clock, it may be desirable to mount an assembled movement mechanism module to a face component before mounting the hand components onto the movement mechanism module. Accordingly, an order of assembly may be indicated. In this example, a variety of schemes can be employed in the embedded instructions to enforce an order of operations for assembly. As a particular example, a color-coding system may be implemented with different colors having a priority in assembly order over others. For example, assembly instructions pertaining to a label colored black may be executed before assembly instructions pertaining to a label colored brown. Accordingly, a user may select, potentially at random, components with a black color label for assembly. Once all components with a black color label have been assembled, the user may similarly select, potentially at random, components with a brown color label for assembly. The user may continue in this fashion until the entire device is assembled based on a color-specific order of assembly.
In summary, the assembly instructions for a device may be portioned into component-specific assembly instructions, each portion being unique and component specific.
In some examples, the component-specific assembly instructions include partial instructions. Accordingly, when combined with a mating component, additional instructions, such as module-specific assembly instructions are provided. For example, a wheel component of a model car may include certain partial instructions, and an axle component may also include partial instructions. When combined, the resulting instructions may indicate that the axle, with wheels attached, is to be attached to a frame component of the model car. This allows an assembly of components to, when appropriate, take on an independent existence as a module. This new higher-level component may include assembly instructions for further incorporation into subsequent components/modules.
In another example, further assembly instructions may be later embedded into the component, or into its referenced offboard data, after it sits on the shelf as an available asset for some interval. Thus, a scheme causing formation of meta-components forces an order of operation. That is all of the components of a module are assembled and finished before further use.
Data identifying the component-specific assembly instructions is then encoded (block 102) into a format to be formed onto the component. That is, rather than delivering the instructions as a separate object from the component, i.e., as a sheet of paper, the component-specific assembly instructions may be included directly adhered to the component itself. Such encoded data may take many forms. For example, the component-specific assembly instructions may be encoded (block 102) on an RFID chip such that when interrogated by an RF scanner, the assembly instructions are passed to a receiving system to be used for component assembly. Once encoded (block 102), the encoded data is formed (block 103) onto the respective component. In the example of an RFID chip, that may mean adhering the RFID chip to the surface of the component, or embedding the chip inside the component during an additive manufacturing process.
The data may be encoded (block 102) and formed (103) in other ways as well. For example, the assembly instructions may be permanently encoded directly onto the object. In some examples, the encoded data is formed (block 103) on a surface of the object, in other examples, the encoded data is formed inside the object. As an example, an object such as a manufactured product may be encoded with a data payload on the surface of the object. The data may be stored and hidden, or encoded, on the object in any number of ways. For example, the data may be visually imperceptible or may be identified by close inspection and yet be in a format unreadable to humans. That is, the data may not include alphanumeric characters and may instead encode data based on any number of non-alphanumeric fashions including color patterns, raised/unraised surface patterns, and surface texture characteristics.
As a specific example, a manufactured component may include layers of ink that are transparent to visible wavelengths of light and yet absorb infrared wavelengths. Such inks may be used to print a pattern representative of the encoded data that is invisible to the human eye, or otherwise visually imperceptible. In this example, data is encoded (block 102) and formed (block 103) on the product using the transparent ink. An infrared camera/illumination system that can detect the encoded component-specific assembly instructions on the product.
In another example, as mentioned above, the encoded data may be inside the component. For example, a black bar code may be printed on an otherwise white component. This layer may be covered with a thin layer of white plastic or paint. In this example, under low light conditions, the bar code would be difficult or impossible to see under low light levels through the thin layer of white plastic or paint. However, when a bright light was put onto the object, the black bar code just below the surface would become visible.
In one example, the instructions may be encoded (block 102) and formed (103) as slight changes to color, i.e., via color mottling. In this example, an encoder may adjust a number of characteristics of a portion of the component. For example, pixel values may be slightly altered, which alteration value is indicative of a bit of information, which when extracted serves to communicate the data payload, i.e., the component-specific assembly instructions.
In another example, the component includes a pattern of raised surfaces. In these examples, data may be encoded on the raised surfaces. That is, the orientation, shape, and or height of the different surfaces may be detected with different angles, shapes, and/or heights mapping to different bits. Accordingly, in this example, the component-specific assembly instructions may be converted into a pattern of raised surfaces. An encoder may form (block 103) the encoded data in the component by adjusting a number of characteristics of the raised surfaces, such as a height, shape, size, and/or orientation of the raised portions. The height, shape, size, and/or orientation of the raised portions may be indicative of a bit of information, which when extracted serves to communicate the data payload, i.e., the component-specific assembly instructions.
In either of these examples, a user, upon very close inspection, may be able to detect the changes. For example, the mottling included in the image may be subtle, and most pixels within the component may have values within a narrow band of digital counts. In this manner, an encoding device adjusts the values of certain pixels to encode the frequency-domain data payload as a low-visibility watermark within the component. In other examples, a user, even upon close inspection may not detect the encoded data as it has been entirely obscured.
However, even in the event an individual could detect the changes in color or other surface pattern, the data may be encoded in a format unreadable to humans, for example with differences in pixel color or size/shape/orientation of surface elements, such that an individual would not be able to decipher the data. As yet another example, the information may be stored in electromagnetic resonators with distinct frequency responses.
Thus, in summary, while a user may be able to detect a difference in the component in the region where the data is encoded, in some cases the user would not generally be able to decipher the encoded data. That is, the encoding may not rely on alphanumeric characters, but may be encoded any number of other ways including mottling of the color, surface characteristics of a raised texture, etc.
While specific reference is made to particular forms of the encoded data, the encoded data may take many forms which may be formed (block 103) on the component itself. For example, the encoded data may take the form of a pattern of shapes, an alteration of color, pattern and/or characteristics of raised and unraised sections. Even further, in some examples, the data may be alphanumeric codes and visible bar codes.
The data itself may also be of varying types. That is, in some examples, the data that is encoded (block 102) and formed (block 103) on the component may be the component-specific instructions themselves. In other examples, the encoded data may be a pointer to a location where the component-specific assembly instructions are found. As a specific example, the encoded information may include a uniform resource locator (URL), to a location on a remote server where the target values are located. In this example, extracting assembly instructions includes extracting the information from a location identified by a pointer in the encoded data.
In the example where the encoded information includes a pointer to a location, it may be the case that the component-specific assembly instructions at that location are updated during the assembly process. That is, when the embedded information points to off-part instructions, those instructions may be changed dynamically.
In another example where the encoded information includes a pointer to a location, it may be the case that the component-specific assembly instructions at that location are generated during the assembly process. That is, the component-specific assembly instructions are generated on-demand or just in time relative to when the respective component is to be assembled. That is, the instructions could be changed, or determined for the first time, after at least one assembly operation has been initiated.
For example, the component-specific assembly instructions located at a URL may be updated once it is confirmed that a particular operation has been done. This allows manipulation of the component-specific assembly instructions “in-flight” as a control mechanism for optimizing assembly steps and locations, changing product options after making the product available, and optimizing supply chain operations.
It should be noted, that in the present specification reference to encoded data on the component may be interpreted as including a reference to information stored elsewhere. In some examples, the pointer may be to locally managed micro-service. That is the component-specific assembly instructions may be disposed on a site where assembly is to occur. In other examples, the assembly instructions may be stored and managed remotely, for example on a component manager-based server. That is, the manufacturer of the device/component that is assembled may retain the assembly instructions offsite from a third-party assembly site. Such an arrangement provides an ability to control data for security and reliability.
Thus, the method (100) of the present specification allows for inclusion of the assembly instructions on the component to which it pertains. Moreover, the assembly instructions, by being component-specific and not relating to other components of the module and/or device can be asynchronously processed. That is, part A does not need to be assembled prior to part B such that both can be placed in a module C in assembly line fashion. Rather, part A may be formed where most convenient and Part B may be formed where most convenient, and perhaps simultaneously, and both can then be joined into module C. Such an arrangement reduces the constraints imposed by an assembly-line type operation as facilities and operations may be more particularly tailored and customized for a particular assembly process. That is, such component-specific assembly instructions facilitate the random assembly of components without having to follow any predefined sequence of operations to form the device.
It should also be noted that an assembled component may be a component of a higher-level component. That is, it may be the case that a module, which includes multiple assembled components, may be a new component available for incorporation into a higher-level module. That is, the present method (100) may be hierarchically used, in an iterative fashion, to assemble components into a module, and to combine modules (which may themselves be considered components), into higher level structures.
The system (200) includes a scanning device (202) to capture encoded data from a component of a device. In some examples, the encoded data is formed on a surface of the component. The data may be stored and hidden, or encoded, on the component in any number of ways. For example, the data may be visually imperceptible or may be identified by close inspection and yet be in a format unreadable to humans. That is, the data may not include alphanumeric characters and may instead encode data based on any number of non-alphanumeric fashions. In another example, as mentioned above, the encoded data may be inside the object.
In these examples, the encoded data is optical. In other examples, the data may be encoded in another form. For example, the encoded data may be formed on a radio frequency identification (RFID) tag embedded inside the object, or adhered to the object. In this example, the encoded data is in the form of radio-frequency energy.
The scanning device (202) may be of a variety of types based in part on the form of the encoded data. For example, the scanning device (202) may be a camera disposed on a smartphone, which camera takes a picture of the component. The scanning device (202) may be of other types such as an optical scanner, a laser scanner, and a radio-frequency transceiver among others.
As a specific example and as described above, in some examples the encoded data may be visually imperceptible to individuals. As a specific example, a component may include layers of ink that are transparent to visible wavelengths of light and yet absorb infrared wavelengths. In this example, the scanning device (202) may be an infrared camera/illumination system that can detect the infrared pattern on the printed image.
In another example, the object includes a pattern of raised surfaces. In this example, the scanning device (202) may include an optical light-based scanner that can detect, via light beams or other detectors, the angles, shapes, and/or heights such that the encoded data mapped to these characteristics can be extracted.
The system (200) also includes an extraction device (204) to extract the encoded data. That is, the scanning device (202) captures an image of the encoded data, or a region of the component where the encoded data is found, and the extraction device (204) extracts from that image, or from that region of the component, the encoded data.
As described above, the encoded data may be in any variety of forms including, color mottling, raised texture patterns, adhered RFID or other tags. The extraction device (204) may be able to detect the encoded data and extract it. While specific reference is made to particular forms of the encoded data, the encoded data may take many forms.
The system (200) also includes a translator (206) to decode the encoded data to generate component-specific assembly instructions for the component. For example, the translator (206) may access a mapping between an output of the extraction device (204) and bits of data such that when encoded data is detected, the translator (206) may discern an associated bit, or set of bits, to decode the encoded component-specific assembly instructions. By repeating this action, a string of data bits can be re-created from a pattern in the color mottling, texture patterns, etc. Accordingly, the translator (206) is tailored to the specific form of the encoded data. For example, if the data is encoded as a color mottling, the extraction device (204) extracts the color differences and the translator (206) identifies the pixel values at each location and references a database to decipher the data based on the associated pixel values.
In some examples, the information is extracted from the image itself. That is, the data encoded in the component may be the actual component-specific assembly instructions. In other examples, the extraction may be from a different location. That is, the encoded information may include a pointer, such as a uniform resource locator (URL), to a location on a remote server where the component-specific assembly instructions are located. That is, the data in its encoded form, is decoded such that the component-specific assembly instructions can be processed. As described above, this may include decoding a series of bits from the encoded data itself, which bits indicate the component-specific assembly instructions. In another example, this may include directing the system (200) browser to a location identified by a pointer which is included in the encoded data.
The system (200) also includes an assembly device (208) that performs an assembly operation based on the component-specific assembly instructions. This may include any number of operations. For example, as described above, the component-specific assembly instructions may indicate what other components are to be joined with the component of interest. Accordingly, the assembly device (208) may collect the other components.
Additionally, the assembly instructions may indicate how the various components are to be joined, i.e., via adhesive, welding, using a particular insertion force etc. and potentially may indicate the environmental conditions under which the components are to be assembled as well as assembly parameters. Accordingly, the assembly device (208) may perform these operations at the specified conditions and parameters. While particular reference is made to specific assembly devices (208) and operations, the system (200) as described herein may include any variety of type of assembly device (208) used to assemble a component/module of a device.
As described above, in some examples, assembly instructions can be added directly to the components (312).
As described above, a device (310) may have multiple modules (314). For example, in
In some examples, the system and method (400) may provide quality assurance and product control mechanisms. That is, the assembly instructions may indicate target attribute information for the component (
The system (
In one example, the target value may be a lower-limiting threshold where any actual value less than this lower-limiting threshold is deemed inadequate. In another example, the target value may be an upper-limiting threshold where any actual value greater than this upper-limiting threshold is deemed inadequate. In yet another example, the target value may be multiple values that define a threshold range where any actual value outside of the threshold range is deemed inadequate. In yet another example, multiple ranges may be used. For example, an actual value may be acceptable when found between either a first range or a second range. Accordingly, comparison (block 404) of the actual value of the surface attribute with any of these types of target values determines whether the object is outside of predetermined acceptability conditions, that is whether it is unacceptable and whether remedial action should be taken.
Thus, the present method (400) provides for a comparison of surface attributes of the component (
While one particular method of validation is described as it relates to comparison of target values with actual attribute values, other forms of validation may be implemented. For example, a torque of a bolt could be measured and compared (block 404) with target bolt torque specifications encoded on the component (
For example, the component-specific assembly instructions located at a URL may be updated following a preliminary step, or a number of preliminary steps. This allows manipulation of the component-specific assembly instructions in real-time and specific to a particular assembly operation. Thus, increased customization is provided, and up-to-date assembly instructions can be provided to a user as they are assembling the component.
Referring to
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2019/026371 | 4/8/2019 | WO | 00 |