3D printing and assembly system

A 3D printing and assembly system includes a 3D printer having a build volume; a robotic arm configured to access both within the build volume and outside of the printer. The printing and assembly system and a 3D computer hardware system are connected to both the printer and the robotic arm. An assistive object outside of build volume and accessible by robotic arm is identified. A 3D object assembly to be generated by the printer is identified. The assistive object and the object assembly is real-time analyzed, using the computer hardware system, to generate interdependent sequential instructions for the printer and the robotic arm. The already-generated object is positioned within the build volume using the robotic arm with the sequential instructions for the robotic arm. The object assembly is 3D printed by 3D printing around the already-generated object using the sequential instructions for the 3D printer.

BACKGROUND

The present invention relates to 3D printing, and more specifically, to a 3D printing system that combines both assembly and printing.

“3D” (three dimensional) printing is a relatively new technology that covers a variety of processes in which material is joined or solidified under computer control to create a three-dimensional object. A 3D object is built using a digital file generated using a computer-aided design (CAD) model, usually by successively adding material layer by layer. 3D printing differs from conventional machining processes that remove material from a stock item, or the product is created through a casting/forging process. One of the key advantages of 3D printing is the ability to produce very customized, complex shapes or geometries.

At one time 3D printing was limited to the production of aesthetic objects or functional prototypes. Now, 3D printing has matured as a viable alternative for industrial-level manufacturing of a variety of different objects. However, one of the drawbacks of 3D printing is that it is typically limited to just manufacturing an object whereas mainstream manufacturing processes integrate a whole host of different operations including in situ assembly. While 3D objects have been known to be created from multiple 3D printed components, the assembly of these components are oftentimes on an ad hoc basis outside of the confines of the 3D printer (e.g., gluing one 3D printed object to another 3D printed object). Consequently, there is a need to further extend the capabilities of 3D printing.

SUMMARY

A computer-implemented process for a 3D printing and assembly system that includes a 3D printer having a build volume; a robotic arm configured to access both within the build volume and outside of the 3D printer, wherein the 3D printing and assembly system; and a 3D computer hardware system connected to both the 3D printer and the robotic arm includes the following operations. An assistive object outside of build volume and accessible by robotic arm is identified. A 3D object assembly to be generated by the 3D printer is identified. The assistive object and the 3D object assembly is real-time analyzed, using the 3D computer hardware system, to generate sequential instructions for the 3D printer and sequential instructions for the robotic arm. The already-generated object is positioned within the build volume using the robotic arm with the sequential instructions for the robotic arm. The 3D object assembly is 3D printed by 3D printing around the already-generated object using the sequential instructions for the 3D printer. The sequential instructions for the 3D printer and the sequential instructions for the robotic arm are interdependent.

In the computer-implemented process, the 3D printer can be configured to perform 3D printing an assistive object for the 3D object assembly. The assistive object can be configured to be gripped by the robotic arm and can be configured to be removed from the 3D object assembly. Additionally, the robotic arm can be programmed to remove the assistive object from the 3D object assembly. The 3D printing and assembly system can includes a vision system configured to identify locations of the already-generated object both inside the build volume and outside the 3D printer. The already-generated object can be 3D printed or no 3D printed. The plurality of already-generated objects can be placed by the robotic arm within the 3D object assembly, and one of the plurality of already-generated objects can be positioned, within the build volume, on top of another one of the plurality of already-generated objects.

A 3D printing and assembly system includes a 3D printer having a build volume; a robotic arm configured to access both within the build volume and outside of the 3D printer, wherein the 3D printing and assembly system; and a 3D computer hardware system connected to both the 3D printer and the robotic arm. The 3D printing and assembly system is configured to perform the following operations. An assistive object outside of build volume and accessible by robotic arm is identified. A 3D object assembly to be generated by the 3D printer is identified. The assistive object and the 3D object assembly is real-time analyzed, using the 3D computer hardware system, to generate sequential instructions for the 3D printer and sequential instructions for the robotic arm. The already-generated object is positioned within the build volume using the robotic arm with the sequential instructions for the robotic arm. The 3D object assembly is 3D printed by 3D printing around the already-generated object using the sequential instructions for the 3D printer. The sequential instructions for the 3D printer and the sequential instructions for the robotic arm are interdependent.

In the 3D printing and assembly system, the 3D printer can be configured to perform 3D printing an assistive object for the 3D object assembly. The assistive object can be configured to be gripped by the robotic arm and can be configured to be removed from the 3D object assembly. Additionally, the robotic arm can be programmed to remove the assistive object from the 3D object assembly. The 3D printing and assembly system can includes a vision system configured to identify locations of the already-generated object both inside the build volume and outside the 3D printer. The already-generated object can be 3D printed or no 3D printed. The plurality of already-generated objects can be placed by the robotic arm within the 3D object assembly, and one of the plurality of already-generated objects can be positioned, within the build volume, on top of another one of the plurality of already-generated objects.

A computer program product includes computer readable storage medium having stored therein program code. The program code, which when executed by a 3D printing and assembly system that includes a 3D printer having a build volume; a robotic arm configured to access both within the build volume and outside of the 3D printer, wherein the 3D printing and assembly system; and a 3D computer hardware system connected to both the 3D printer and the robotic arm includes the following operations, causes the 3D printing and assembly system to perform the following operations. An assistive object outside of build volume and accessible by robotic arm is identified. A 3D object assembly to be generated by the 3D printer is identified. The assistive object and the 3D object assembly is real-time analyzed, using the 3D computer hardware system, to generate sequential instructions for the 3D printer and sequential instructions for the robotic arm. The already-generated object is positioned within the build volume using the robotic arm with the sequential instructions for the robotic arm. The 3D object assembly is 3D printed by 3D printing around the already-generated object using the sequential instructions for the 3D printer. The sequential instructions for the 3D printer and the sequential instructions for the robotic arm are interdependent.

With the computer program product, the 3D printer can be configured to perform 3D printing an assistive object for the 3D object assembly. The assistive object can be configured to be gripped by the robotic arm and can be configured to be removed from the 3D object assembly. Additionally, the robotic arm can be programmed to remove the assistive object from the 3D object assembly. The 3D printing and assembly system can includes a vision system configured to identify locations of the already-generated object both inside the build volume and outside the 3D printer. The already-generated object can be 3D printed or no 3D printed. The plurality of already-generated objects can be placed by the robotic arm within the 3D object assembly, and one of the plurality of already-generated objects can be positioned, within the build volume, on top of another one of the plurality of already-generated objects.

DETAILED DESCRIPTION

Reference is made toFIGS.2-4, which illustrate a 3D printing and assembly system100and methodology300. Referring toFIG.1, the 3D printing and assembly system100includes a 3D computer hardware system110and 3D printing and assembly hardware120. Further aspects of the 3D printing and assembly hardware120are illustrated inFIG.2, which illustrates a 3D printer130and at least one robotic arm140used for assembly of 3D objects.

Although a single 3D printer130is disclosed, the present 3D printing and assembly hardware120is not limited in this manner as multiple 3D printers130could be employed. Additionally, the 3D printing and assembly hardware120is not limited as to a type of 3D printer technology (e.g., stereolithography, digital light processing, fused deposition modeling, selective laser sintering, selective laser melting, electronic beam melting, laminated object manufacturing) being employed. However, the build volume135of the 3D printer130should be capable of being accessed by the one or more robotic arms140.

Robotic arms140are well known in the art, and the present 3D printing and assembly hardware120is not limited as to a particular type of robotic arm140. In certain aspects, the robotic arm140is positioned at a known positive relative to the 3D printer130and the build volume135of the 3D printer130to facilitate movement of objects137,160A,160B by the robotic arm140to, from, and within the 3D printer130. Depending upon the particular object being printed/manipulated, the robotic arm140includes a gripper (also known as a hand) configured to grip the object. Additionally, the robotic arm140is configured to grip objects that are positioned within the build volume135of the 3D printer130.

The 3D printing and assembly hardware120can optionally include a vision system150comprised of one or more cameras. Vision systems150are well known in the art, and the present 3D printing and assembly hardware120is not limited as to a particular type of vision system150. The vision system150can be used to identify the position of an object137within the 3D printer130as well as objects160A,160B outside of the 3D printer130. Additionally, the vision system150can identify the position of the robotic arm140relative to the 3D printer130and the objects160A,160B. Although shown as being separate from the 3D printer130and the robotic arm140, some or all of the portions of the vision system150can be built into either the 3D printer130and/or the robotic arm140.

A 3D computer hardware system110is connected to the 3D printing and assembly hardware120. Although shown as a single monolith system, the 3D computer hardware system110can be comprised of multiple individual computer systems that are networked together. In operation, the 3D computer hardware system110controls the operations of the individual components of the 3D computer hardware system110and performs many of the analysis described in conjunction withFIG.4.

Referring toFIG.4, operations300of the 3D printing and assembly system100are disclosed. In310, the operations300can begin with the identification of an activity to be performed. As used herein, the term “activity” refers to the creation of a 3D assembly comprised of a plurality of sub-assemblies (also referred to herein as an object or 3D object). While conventional 3D objects are typically generated piecemeal and assembled outside of the 3D printer130, the present disclosure contemplates the in situ creation, within the 3D printer130, of a 3D object assembly that is comprised of one or more 3D printed objects.

In320, all objects that make up the 3D object assembly are identified. Identifying components of an object to be manufactured is well known in the art, and the 3D printing and assembly system100can employ any number of these known methodologies. For example, a CAD drawing of the 3D object assembly can be broken down by the 3D computer hardware system110into individual components. However, the present the 3D printing and assembly system100expands upon conventional methodologies by breaking down this process into three separate operations.

In330, the 3D computer hardware system110is configured to identify already-created objects160A,160B that can be accessed by the robotic arm140. The identification of the already-created objects160A,160B can include identifying one or more of the type, amount, and placement of these objects160A,160B. These already-created objects160A,160B can be 3D printed objects, non-3D printed objects, or a combination of the two. For example, a different 3D printing and assembly system (not shown) may provide the objects160A,160B for the 3D printing and assembly system100. In certain aspects, this different 3D printing and assembly system can be positioned adjacent the 3D printing and assembly system100such that a robotic arm (not shown) of this different 3D printing and assembly system can place the objects160A,160B within reach of the robotic arm140of the 3D printing and assembly system100. Although the 3D computer hardware system110is not limited as to how the already-created objects160A,160B that can be accessed by the robotic arm140are identified, in certain aspects, these objects160A,160B can be identified using the vision system150.

In340, the 3D computer hardware system110is configured to identify portions137of the 3D object assembly that will be 3D printed by the 3D printer130. These portions137would be additive to the already-created objects160A,160B that will be used to create the 3D object assembly. Again, the 3D computer hardware system110is not limited as to how the portion(s)137of the 3D object assembly that will be 3D printed by the 3D printer130are identified. For example, the 3D computer hardware100can perform a reductive analysis that looks at both the 3D object assembly and the already-created objects160A,160B to identify the portion(s)137to be 3D printed.

In350, the 3D computer hardware system110is configured to identify optional assistive elements (e.g.,520A,520B illustrated inFIG.5). These assistive elements520A,520B can be, for example, a temporary support520A used to support the generation the 3D object510, as is well-known in the art. Additional, an assistive element can be a grip520B with which the robotic arm140can use to manipulate the object510. Yet again, the 3D computer hardware system110is not limited as to how the assistive elements520A,520B are identified. For example, the 3D computer hardware100can use known 3D printing software to automatically generate the support520A. Additionally, the 3D computer hardware100may determine that the 3D object510is incapable of being properly gripped/manipulated by the robotic arm140and create a grip520B configured to be gripped by the gripper/hand of the robotic arm140. These assistive elements520A,520B can be configured to be easily removed from the 3D object510, as is known in the art. For example, a different printing material may be used to create the assistive elements520A,520B.

In360, the 3D computer hardware system110analyzes the 3D object assembly to be generated in conjunction with the already-created objects160A,160B. For example, the 3D computer hardware system110can identify what combinations of the already-created objects160A,160B, that can be used (e.g., as a filler) as part of the 3D object assembly, which can advantageously faster generate the 3D object assembly by, for example, reducing an amount of 3D printing activity/material. This would involve, for example, determining whether the 3D shape of the already-created object(s)160A,160B can fit within the shape of the 3D object assembly (e.g., by having smaller dimensions than the 3D object assembly) and what alignment is required for this to occur. In addition to or alternatively, the already-created object160A,160B may have a specific known function that is required at a specific location of the 3D object assembly, and the 3D computer hardware system110can determine how the 3D object assembly can be generated based upon having the already-created object160A,160B at that particular location.

The 3D computer hardware system110can also use the information obtained in operations330,340,350(e.g., the 3D model as well as the information regarding the already-created objects160A,160B) as well as information obtained by the vision system150to perform a structural analysis (e.g., force components) on the 3D assembly. For example, based upon the assembly needed, the 3D computer hardware system110may determine that one or more assistive elements520A,520B are needed for effective assembly.

In370, based upon the analysis performed in360, a sequence of printing/assembly operations can be generated, in real-time, by the 3D computer hardware system110. These operations direct how the robotic arm(s)140are to operate as well as what assistive features520A,520B are needed to be generated. The operations will also describe how the 3D object is to be printed. Creating 3D printing sequential instructions for a particular shape for the 3D printer130is known to those skilled in the art, and the 3D printing and assembly system100is not limited in the manner in which the sequence of printing operations are generated. Additionally, the creation of sequential instructions the movement/actions of a robotic arm140are also known to those skilled in the art, and the 3D printing and assembly system100is not limited in the manner in which the sequence of robotic arm operations are generated. Additionally, the sequential instructions for the 3D printer130and the sequential instructions for the robotic arm140are interdependent such that the timing of particular instruction(s) within both sets of sequential instructions having a timing relationship (e.g., a particular operation of the robotic arm140necessarily precedes a particular operation of the 3D printer130or vice versa).

In380, the 3D printing and assembly is performed consistent with the sequence of printing/assembly operations identified in370. The operations of380are discussed in more detail inFIG.4. Although illustrated as being performed sequential, two or more of360,370, and380can be performed in parallel

In390, the 3D computer hardware system110makes a determination whether the activity is finished. For example, a particular 3D object to be assembled may be comprised of multiple 3D object assemblies. In this instance, each of the constituent 3D object assemblies may be generated using the methodology300ofFIG.3. Consequently, the creation of the 3D object assembly that is itself comprised of multiple 3D object assemblies may be assembled using multiple iterations of the methodology300.

As another example, multiple copies of the 3D object assembly may be generated, in which case the methodology300can be performed for each 3D object assembly being assembled. WhileFIG.3illustrated the methodology300starting at operation310, the methodology300is not limited in this manner. For example, in the example just discussed, the analyzing the activity310need not be performed again. However, since the assembly of the prior 3D object assembly may have used one of the already-created objects160A,160B, a new determination as to the type/number of already-created objects160A,160B may have to be repeated. Once the activity is finished, the methodology300ends at operation395.

Referring toFIG.4, a methodology400for the actual 3D printing and assembly of operation380inFIG.3is disclosed. WhileFIG.4illustrates operation420following operation410, this order can be reversed depending upon whether the generation420of the (optional) assistive feature520B is needed prior to the placement of the already-generated object160A,160B within the build volume135of the 3D printer130. In410, the robotic arm140retrieves the already-generated object160A,160B and places the already-generated object160A,160B within the build volume135. In420, the assistive feature420is generated by the 3D printer130.

In430, the 3D object is printed around the already-generated object160A,160B. For example reference is made toFIG.5, which illustrated an object assembly510being generated with multiple already-generated objects540A,540B and550A,550B. During the actual 3D printing and assembly, the 3D computer hardware100can analyze the shape of the object and place one or more already-generated objects540A,540B and550A,550B in the build volume525. For example, the legs515A,515B of the object assembly510can be formed by first placing assistive objects540A,540B (illustrated in dashed lines) in the build volume525around which the 3D Nozzle530can print the remainder of the legs515A,515B. As further illustrated, additional assistive objects550A,550B can be stacked on top of the partially-generated object assembly510and/or one another. In this manner, the amount of 3D printing can be reduced.

In440, the assistive feature420can optionally be removed. Although not limited in this manner, the robotic arm140(or a combination of robotic arms140) can be used to remove the assistive feature420. The timing of the removal of the assistive feature420is also not limited in a particular manner. For example, the assistive feature420may be removed immediately after the 3D object is printed around the already-generated object160A,160B or the assistive feature420may be removed after multiple printings.

In450, a determination is made whether an additional already-generated object160A,160B is to be added to the 3D printed object. If so, the methodology400loops back to operation410. Once all printing, assembly, and removal is finished, the methodology400ends at operation460.

As defined herein, the term “processor” means at least one hardware circuit (e.g., an integrated circuit) configured to carry out instructions contained in program code. Examples of a processor include, but are not limited to, a central processing unit (CPU), an array processor, a vector processor, a digital signal processor (DSP), a field-programmable gate array (FPGA), a programmable logic array (PLA), an application specific integrated circuit (ASIC), programmable logic circuitry, and a controller.

As defined herein, the term “server” means a data processing system configured to share services with one or more other data processing systems.

As defined herein, the term “client device” means a data processing system that requests shared services from a server, and with which a user directly interacts. Examples of a client device include, but are not limited to, a workstation, a desktop computer, a computer terminal, a mobile computer, a laptop computer, a netbook computer, a tablet computer, a smart phone, a personal digital assistant, a smart watch, smart glasses, a gaming device, a set-top box, a smart television and the like. Network infrastructure, such as routers, firewalls, switches, access points and the like, are not client devices as the term “client device” is defined herein.

As defined herein, the term “user” means a person (i.e., a human being).

FIG.6is a block diagram illustrating example data processing system600for serving as the 3D computer hardware system110. The data processing system600can include at least one processor605(e.g., a central processing unit) coupled to memory elements610through a system bus615or other suitable circuitry. As such, the data processing system600can store program code within the memory elements610. The processor605can execute the program code accessed from the memory elements610via the system bus615. It should be appreciated that the data processing system600can be implemented in the form of any system including a processor and memory that is capable of performing the functions and/or operations described within this specification. For example, the data processing system600can be implemented as a server, a plurality of communicatively linked servers, a workstation, a desktop computer, a mobile computer, a tablet computer, a laptop computer, a netbook computer, a smart phone, a personal digital assistant, a set-top box, a gaming device, a network appliance, and so on.

The memory elements610can include one or more physical memory devices such as, for example, local memory620and one or more bulk storage devices625. Local memory620refers to random access memory (RAM) or other non-persistent memory device(s) generally used during actual execution of the program code. The bulk storage device(s)625can be implemented as a hard disk drive (HDD), solid state drive (SSD), or other persistent data storage device. The data processing system600also can include one or more cache memories (not shown) that provide temporary storage of at least some program code in order to reduce the number of times program code must be retrieved from the local memory620and/or bulk storage device625during execution.

Input/output (I/O) devices such as a display630, a pointing device635and, optionally, a keyboard640can be coupled to the data processing system600. The I/O devices can be coupled to the data processing system600either directly or through intervening I/O controllers. For example, the display630can be coupled to the data processing system600via a graphics processing unit (GPU), which may be a component of the processor605or a discrete device. One or more network adapters645also can be coupled to data processing system600to enable the data processing system600to become coupled to other systems, computer systems, remote printers, and/or remote storage devices through intervening private or public networks. Modems, cable modems, transceivers, and Ethernet cards are examples of different types of network adapters645that can be used with the data processing system600.

As pictured inFIG.6, the memory elements610can store the components of the 3D computer hardware system110ofFIG.1. Being implemented in the form of executable program code, these components of the data processing system600can be executed by the data processing system600and, as such, can be considered part of the data processing system600.

Characteristics are as follows:

Service Models are as follows:

Deployment Models are as follows:

Referring now toFIG.7, illustrative cloud computing environment750to be used with the 3D printing and assembly system100is depicted. As shown, cloud computing environment750includes one or more cloud computing nodes710with which local computing devices used by cloud consumers, such as, for example, personal digital assistant (PDA) or cellular telephone754A, desktop computer754B, laptop computer754C, 3D printing and assembly hardware754D, and/or automobile computer system754N may communicate. Nodes710may communicate with one another. They may be grouped (not shown) physically or virtually, in one or more networks, such as Private, Community, Public, or Hybrid clouds as described hereinabove, or a combination thereof. This allows cloud computing environment750to offer infrastructure, platforms and/or software as services for which a cloud consumer does not need to maintain resources on a local computing device. It is understood that the types of computing devices754A-N shown inFIG.7are intended to be illustrative only and that computing nodes710and cloud computing environment750can communicate with any type of computerized device over any type of network and/or network addressable connection (e.g., using a web browser).

Referring now toFIG.8, a set of functional abstraction layers provided by cloud computing environment750(FIG.7) is shown. It should be understood in advance that the components, layers, and functions shown inFIG.8are intended to be illustrative only and embodiments of the invention are not limited thereto. As depicted, the following layers and corresponding functions are provided:

Hardware and software layer860includes hardware and software components. Examples of hardware components include: mainframes861; RISC (Reduced Instruction Set Computer) architecture based servers862; servers863; blade servers864; storage devices865; and networks and networking components866. In some embodiments, software components include network application server software867and database software868.

Virtualization layer870provides an abstraction layer from which the following examples of virtual entities may be provided: virtual servers871; virtual storage872; virtual networks873, including virtual private networks; virtual applications and operating systems874; and virtual clients875.

Workloads layer890provides examples of functionality for which the cloud computing environment may be utilized. Examples of workloads and functions which may be provided from this layer include: mapping and navigation891; software development and lifecycle management892; virtual classroom education delivery893; data analytics processing894; transaction processing895; and operations of the 3D printing and assembly system100.

The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be accomplished as one step, executed concurrently, substantially concurrently, in a partially or wholly temporally overlapping manner, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “includes,” “including,” “comprises,” and/or “comprising,” when used in this disclosure, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.

Reference throughout this disclosure to “one embodiment,” “an embodiment,” “one arrangement,” “an arrangement,” “one aspect,” “an aspect,” or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment described within this disclosure. Thus, appearances of the phrases “one embodiment,” “an embodiment,” “one arrangement,” “an arrangement,” “one aspect,” “an aspect,” and similar language throughout this disclosure may, but do not necessarily, all refer to the same embodiment.