Methods and system for performing an industrial process involving manipulating a physical object using a physical automation assembly

By creating a virtual automation assembly based on data models of physical objects, the method addresses integration challenges across different manufacturers, ensuring efficient and accurate simulation and deployment of industrial automation systems.

WO2026050874A1PCT designated stage Publication Date: 2026-03-12VENTION INC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-09-09
Publication Date
2026-03-12

AI Technical Summary

Technical Problem

Existing industrial automation systems face challenges in efficiently integrating components from different manufacturers due to proprietary programming languages and ecosystems, leading to unsatisfactory simulations and lengthy iteration processes, especially when handling complex interactions with physical objects.

Method used

A method and system that allows for the creation of a virtual automation assembly based on data models of physical objects, enabling direct translation of instructions across different manufacturers' components, and simulating intricate object interactions, thereby facilitating seamless assembly and deployment of physical automation assemblies.

Benefits of technology

This approach enhances the efficiency and accuracy of industrial processes by bypassing instruction translation, allowing for fluid integration of components from multiple vendors and reducing the need for multiple iterations, thus streamlining the design-to-deployment process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CA2025051188_12032026_PF_FP_ABST
    Figure CA2025051188_12032026_PF_FP_ABST
Patent Text Reader

Abstract

A method for manipulating a physical object using a physical automation assembly is disclosed. The method generally includes using a computing device, assembling a virtual automation assembly configured for manipulating a virtual object in a virtual workstation, the virtual object based on a data model of the physical object; generating a first instruction series which when executed by the virtual automation assembly in said computing device simulate said manipulating the virtual object in the virtual workstation; in a physical workstation, assembling the physical automation assembly based on the virtual automation assembly; and the physical automation assembly executing a second instruction series causing the physical automation assembly to manipulate the physical object within the physical workstation, the second instruction series executed by the physical automation assembly corresponding to the first instruction series executed by the virtual automation assembly.
Need to check novelty before this filing date? Find Prior Art

Description

METHODS AND SYSTEM FOR PERFORMING AN INDUSTRIAL PROCESS INVOLVING MANIPULATING A PHYSICAL OBJECT USING A PHYSICAL AUTOMATION ASSEMBLYCROSS-REFERENCE TO RELATED APPLICATION

[0001] The present application claims the priority of United Stated Patent Application Serial No. 63 / 692,363, filed on September 9, 2024, which is incorporated herein by reference.FIELD

[0002] The improvements generally relate to industrial automation assemblies used in industrial processes, and more specifically relate to computer-assisted end-to-end design, simulation and physical deployment of such industrial automation assemblies.BACKGROUND

[0003] Industrial automation is a field in which automation assemblies, including robot components such as robot units, robot parts, robot controllers, actuators and / or sensors are used to partially or wholly perform an industrial process. Examples of such industrial processes can include, but are not limited to, manufacturing, assembling, packing, labelling, painting, inspecting, testing, welding, and the like. High endurance, precision, speed and price are some example factors that are considered when designing an automation system for a given industrial process. For example, it is known that most prominent automation device manufacturers each have their own strengths in terms of robot / actuators / sensors offer and pricing. Accordingly, in some situations, it may be desirable to use a component from a first manufacturer, another component from a second manufacturer, and so forth, to design an automation assembly optimized for the given industrial process. However, considering that it is quite common for automation device manufacturers to use dedicated proprietary programming languages, platforms and overall ecosystems, connecting automation components from different manufacturers to one another to accomplish a given industrial process can be challenging. Although existing techniques to design and assemble automation systems and robotic assemblies are satisfactory to a certain degree, there always remain room for improvement, such as with regard to predictability of the assembly's behavior, speed of the tuning loop, and simplicity of the whole design process.SUMMARY

[0004] In the current state of the automation industry, it is generally common for designers to use software platforms to simulate a virtual automation assembly prior to the on-site assembly / deployment of the corresponding physical automation assembly. Such software platforms may generally allow the different movements of a virtual robotic / automation assembly to be properly displayed on a display screen for the designer to appreciate. However, such platforms may be brand limited, meaning that automation components issued from only one automation device manufacturer are generally available for simulation within the software platform.

[0005] Moreover, it was found that although such software platforms are well suited to simulate the movements of their own automation components, the simulation of the physical interaction between the automation components and surrounding objects to be manipulated can be unavailable or deficient. In such software platforms, for example, the surrounding objects are external and unknown to the software, and may have to be modeled by the user. Some available platforms may take into account the size and shape of the objects to be manipulated, but fail in factoring in other relevant physical and mechanical properties of the objects. As a result, the simulations which can be performed with such software platforms may be unsatisfactory as the squeezing of a cardboard box, the breaking of a glass flask, the friction (or absence of friction) offered by a surface of the object, the sliding of a drawer, to name only a few examples, may not be adequately reflected in the simulation of the industrial process. Accordingly, it was found that many iterations of the corresponding physical automation assembly are often required to achieve a physical automation assembly which can actually perform the industrial process successfully.

[0006] As third-party platforms may allow simulations of the objects to be manipulated, these platforms typically operate in such a way that they do not directly communicate with the physical automation assembly. As a result, the instructions generated by the third-party platform and executed by the virtual automation assembly within the software platform have to be translated in another programming language which may then be executed by the corresponding physical automation assembly. Such an instruction translation may not appear to be a major issue in some situations where instructions are somewhat basic. However, someissues can arise when the instructions to be executed by the virtual automation assembly are numerous and complex and / or involve actuators and sensors from multiple vendors or controlled by different motor drives. In these situations, a significant number of burdensome iterations, each requiring its own instruction translation, may be required to arrive at a satisfactorily working physical automation assembly. Traditional approaches to design and deploy physical automation assemblies may extend the return-on-investment (ROI) horizon.

[0007] There thus remains a need in the industry to alleviate at least some of the above- mentioned drawbacks. For instance, there is a need in the industry for methods and systems which can fetch data models of automation components, such as robot components, issued from different manufacturers in a brand-agnostic manner. Moreover, methods and systems which can also take into account the intricacies associated with each physical object to be manipulated, and their interactions with the automation components and surrounding elements, are also highly coveted. Furthermore, methods and systems which would alleviate the current simulation sessions from having to translate virtual instructions into physical instructions would greatly facilitate the existing simulation protocols, for the deployment of automation projects of any sizes, ranging from single automation unit (e.g., single robot) to large-scale, multi-unit automation cell. Indeed, by by-passing the instruction translation step, the whole programming process would become more fluid which may encourage customers from using automation components procured by different manufacturers to perform more complex series of tasks. This would in turn allow physical automation assemblies harnessing the best from each of the automation device manufacturers to be designed in a more efficient manner.

[0008] In accordance with a first aspect of the present disclosure, there is provided a method for performing an industrial process involving manipulating a physical object using a physical automation assembly, the method comprising: using a computing device, assembling a virtual automation assembly configured for manipulating a virtual object in a virtual workstation, the virtual object based on a data model of the physical object; generating a first instruction series which when executed by the virtual automation assembly in said computing device simulate said manipulating the virtual object in the virtual workstation to perform the industrial process; in a physical workstation, assembling the physical automation assemblybased on the virtual automation assembly; and initiating the industrial process using the physical automation assembly, said initiating including the physical automation assembly executing a second instruction series causing the physical automation assembly to manipulate the physical object within the physical workstation to perform the industrial process, the second instruction series executed by the physical automation assembly correspond to the first instruction series executed by the virtual automation assembly.

[0009] In accordance with a second aspect of the present disclosure, there is provided a method for manipulating a physical object using a physical automation assembly, the method comprising: in a physical workstation, assembling a physical automation assembly based on a virtual automation assembly, the virtual automation assembly programmed for manipulating a virtual object in a virtual workstation, the virtual object based on a data model of the physical object, the virtual automation assembly simulating said manipulating when a first instruction series is executed by the virtual automation assembly in a computing device; and the physical automation assembly executing a second instruction series causing the physical automation assembly to manipulate the physical object within the physical workstation, the second instruction series executed by the physical automation assembly corresponding to the first instruction series executed by the virtual automation assembly.

[0010] In accordance with the above aspects, for example, the first instruction series and the second instruction series are coded in a same programming language.

[0011] In accordance with the above aspects, for example, the first instruction series include a plurality of virtual robot coordinates each associated to a corresponding time value, the second instruction series including a plurality of physical robot coordinates each associated to a corresponding time value, the virtual robot coordinates and the physical robot coordinates corresponding to one another.

[0012] In accordance with the above aspects, for example, executing the second instruction series includes bypassing a native robot interpreter to actuate the physical automation assembly.

[0013] In accordance with the above aspects, for example, said assembling the virtual automation assembly is performed via one of: a block-based visual programming language and a high-level general purpose programming language.

[0014] In accordance with the above aspects, for example, the method further includes after said initiating, identifying an undesirable movement in a manipulation of the physical object using the second instruction series; and upon identifying said undesirable movement, modifying at least one of said assembling the virtual automation assembly and said generating the first instruction series.

[0015] In accordance with the above aspects, for example, the method further includes displaying, via a display screen of the computing device, the virtual automation assembly manipulating the virtual object using the first instruction series.

[0016] In accordance with the above aspects, for example, the method further includes identifying an undesirable movement in said manipulating the virtual object using the first instruction series; and upon identifying said undesirable movement, modifying at least one of said assembling the virtual automation assembly and said generating the first instruction series.

[0017] In accordance with the above aspects, for example, said data model of the virtual object factors in at least one of: a mass of the physical object corresponding to the virtual object, a volume of the physical object, dimensions of the physical object, a shape of the physical object, a texture of the physical object, friction coefficients associated to one or more surfaces of the physical object, mechanical properties of the physical object, and physical properties of the physical object.

[0018] In accordance with the above aspects, for example, a virtual mechanical response of the virtual object being manipulated by the virtual automation assembly within the virtual workstation simulating a physical mechanical response of the physical object being manipulated by the physical automation assembly within the physical workstation.

[0019] In accordance with the above aspects, for example, said virtual mechanical responses includes one of: the virtual object falling if dropped by the virtual automationassembly, the virtual object changing shape if gripped by the virtual automation assembly, the virtual object displacing a surrounding object if moved against it by the virtual automation assembly, and the virtual object sliding on a support surface if pushed along it by the virtual automation assembly.

[0020] In accordance with the above aspects, for example, the virtual automation assembly includes a virtual automation controller controlling a virtual robot unit in the virtual workstation, the physical automation assembly including a physical automation controller controlling a physical robot unit in the physical workstation, the physical automation controller executing the second instruction series in a corresponding manner as the virtual automation controller executing the first second instruction series.

[0021] In accordance with the above aspects, for example, the virtual automation assembly includes one or more data models of a robot component model database.

[0022] In accordance with the above aspects, for example, the virtual object includes one or more data models of an object model database.

[0023] In accordance with the above aspects, for example, the computing device is provided in the form of at least one of: a desktop computer, a laptop computer, a smart phone, an electronic tablet, and a cloud-based server.

[0024] In accordance with the above aspects, for example, said assembling the virtual automation assembly is performed on a web-browser-based application accessible via the Internet, wherein calculations to simulate the said manipulating the virtual object in the virtual workstation are performed on a remote cloud-based server.

[0025] In accordance with the above aspects, for example, the method further includes the computing device communicating the first instruction series to the physical automation assembly.

[0026] In accordance with the above aspects, for example, said communicating is performed via at least one of a wired communication link and a wireless communication link.

[0027] In accordance with a third aspect of the present disclosure, there is provided a method for deploying a physical automation assembly operable to manipulate a physical object, the method comprising: causing, by a computing device, a programming graphical interface to be displayed on a display screen; receiving, by the computing device, virtual automation assembly data and object data based on one or more user interactions with the programming graphical interface; generating, by the computing device and based on the virtual automation assembly data and on the object data, a virtual automation assembly configured for manipulating a virtual object corresponding to the physical object; and outputting, by the computing device, a list of parts identifying a plurality of physical parts usable to assemble the physical automation assembly mimicking the virtual automation assembly; an assembly guide indicating how to assemble the plurality of physical parts into the physical automation assembly; and a given instruction series which when executed by the virtual automation assembly perform said manipulating the virtual object and executable by the physical automation assembly to manipulate the physical object correspondingly to the manipulating of the virtual object.

[0028] Further in accordance with the above aspect, for example, the method also includes, in a physical workstation, assembling the physical automation assembly using the plurality of parts based on the assembly guide; and the physical automation assembly executing the given instruction series causing the physical automation assembly to manipulate the physical object within the physical workstation correspondingly to the manipulation of the virtual object within the virtual workstation.

[0029] Further in accordance with the above aspects, for example, the programming graphical interface is a visual programming graphical interface.

[0030] Further in accordance with the above aspects, for example, the execution of the given instruction series by the physical automation assembly includes bypassing a native robot interpreter to actuate the physical automation assembly as a passive execution element

[0031] In accordance with a fourth aspect, there is provided a system for automating an industrial process, the system comprising: a computing device having a software application stored on a cloud-based server and a programming graphical interface configured to provideaccess to an automation component model database, the automation component model database including data models of a plurality of automation components, the plurality of automation components including at least one virtual robot unit, a virtual workstation accessible via the programming graphical interface, the virtual workstation including a virtual automation assembly programmed for manipulating a virtual object in the virtual workstation, the virtual object based on a data model of a physical object, the virtual automation assembly including a virtual robot unit, and a virtual automation controller communicatively coupled to the virtual robot unit, the virtual automation controller including a virtual interpreter configured to parse and execute a first instruction series in the virtual workstation, the first instruction series generated based on one or more user interactions with the programming graphical interface, the first instruction series when executed by the virtual automation assembly perform said manipulating the virtual object in the virtual workstation with the virtual robot unit, and a communication link for communicating the first instruction series to a physical workstation including a physical automation assembly configured for manipulating a physical object in the physical workstation, the physical object corresponding to the virtual object, the physical automation assembly including a physical robot unit, a physical automation controller communicatively linked to the physical robot unit, the physical automation controller having a physical interpreter, the physical interpreter corresponding to the virtual interpreter and configured to parse and execute a second instruction series in the physical workstation, the second instruction series corresponding to the first instruction series, the second instruction series when executed by the physical automation assembly perform said manipulating the physical object with the physical robot unit in the physical workstation correspondingly to said manipulating the virtual object in the virtual workstation with the virtual robot unit.

[0032] Further in accordance with the above aspect, for example the physical robot unit includes a native robot interpreter, the physical automation controller configured to bypass the native robot interpreter to cause an actuation of the physical robot unit upon execution of the second instruction series.

[0033] All technical implementation details and advantages described with respect to a particular aspect of the present invention are mutatis mutandis applicable for all other aspects of the present invention.

[0034] Many further features and combinations thereof concerning the present improvements will appear to those skilled in the art following a reading of the instant disclosure.DESCRIPTION OF THE FIGURES

[0035] In the figures,

[0036] Fig. 1A is a schematic view of a display screen of a computing device, showing an example of a virtual automation assembly in a virtual workstation, the virtual automation assembly having an actuated arm, an end effector and a virtual automation controller, in accordance with one or more embodiments;

[0037] Fig. 1 B is a schematic view of the display screen of Fig. 1A, showing the virtual automation assembly after manipulation of a virtual object as per a first instruction series executed by the virtual automation controller, in accordance with one or more embodiments;

[0038] Fig. 1C is a schematic view of an example of a physical automation assembly in a physical workstation, the physical automation assembly shown after manipulation of a physical object as per a second instruction series corresponding to the first instruction series, in accordance with one or more embodiments;

[0039] Fig. 2 is a flow chart of a first example of a method for performing an industrial process involving manipulating a physical object using a physical automation assembly, in accordance with one or more embodiments;

[0040] Fig. 3 is a flow chart of a second example of a method for manipulating a physical object using a physical automation assembly, leading to the outputting of a list of parts, an assembly guide and a given instruction series, in accordance with one or more embodiments;

[0041] Fig. 4 is a flow chart of a third example of a method for manipulating a physical object using a physical automation assembly, where the method starts with the assembly of the physical automation assembly based on a previously designed virtual automation assembly, in accordance with one or more embodiments;

[0042] Fig. 5 is a schematic view of an example of a computing device, in accordance with one or more embodiments;

[0043] Fig. 6 is a schematic view of an example of a virtual automation assembly configured for moving a virtual object from a first location to a second location in a virtual workstation, in accordance with one or more embodiments;

[0044] Fig. 7 is a schematic view showing a first instruction series to be executed by the virtual automation assembly of Fig. 6, in accordance with one or more embodiments;

[0045] Figs. 7A, 7B, 7C, 7D and 7E are frames of the virtual automation assembly of Fig. 6 executing the first instruction series of Fig. 7 and thereby moving the virtual object from the first location to the second location in the virtual workstation, in accordance with one or more embodiments;

[0046] Figs. 8A, 8B and 8C are frames showing an undesirable movement in the manipulation of the virtual object, which can be corrected by modifying the first instruction series on the go, in accordance with one or more embodiments;

[0047] Fig. 9 is an oblique view of an example of a physical automation assembly based on the virtual automation assembly of Fig. 6, in accordance with one or more embodiments;

[0048] Fig. 10 is an oblique view of an example of a user interface of a computing device controlling the physical automation assembly of Fig. 9 and from which the industrial process can be initiated by execution of a second instruction series corresponding to the first instructions series, in accordance with one or more embodiments;

[0049] Fig. 11 is an oblique view of the virtual automation assembly of Fig. 9 showing an undesirable movement in the manipulation of the physical cylindrical object, which can be corrected by modifying the first instruction series again, in accordance with one or more embodiments;

[0050] Fig. 12 is a schematic view showing the modifying of the first instruction series executable to properly align the virtual cylindrical object within respect to the second location of the virtual workstation, in accordance with one or more embodiments;

[0051] Figs. 12A, 12B, 12C, 12C, 12D, 12E, 12F, 12G, 12H, 121, 12J, 12K, 12L, 12M, 12N, 120 and 12P are frames showing the physical automation assembly of Fig. 9 executing the updated instruction series to move the physical cylindrical object to its intended virtual position in the physical workstation, in accordance with one or more embodiments; and

[0052] Fig. 13 is a schematic view illustrating an example of first instruction series, in a virtual workstation, with corresponding second instruction series deployed in a physical workstation including a plurality of robot units, in accordance with one or more embodiments.DETAILED DESCRIPTION

[0053] Figs. 1A through 1C illustrate an example of a method for manipulating a physical object 100P in an industrial process using a physical automation assembly 110 in a physical workstation 111 , in accordance with an embodiment. As best seen in Figs. 1A and 1 B, some steps of the method may be performed virtually using one or more computing devices (hereinafter “the computing device 500”). More specifically, the computing device 500 can run one or more software applications (hereinafter “the software application”) configured for assembling one or more virtual automation assemblies (hereinafter “the virtual automation assembly 120”) in a virtual workstation 121.

[0054] As depicted, the software application typically has access to an automation component model database 122 from which data models of a number of automation components can be accessed, imported and used. In the illustrated embodiment, the virtual automation assembly 120 includes a virtual robot unit 123 provided in the form of an actuated arm 123A having an end effector 123B (e.g., gripper) at a free end of the actuated arm, and a virtual automation controller communicatively coupled to the actuated arm 123A and to the end effector 123B. The automation components can include, but are not limited to, robot unit(s) such as actuated arm(s), conveyor(s), gripper(s) (or other types of end effectors), automation controller(s), linear electrical actuator(s), rotary actuator(s), pneumatic actuator(s) and pusher(s), photo-electric sensor(s), inductive sensor(s), barcode reader(s), physical HMI component(s) such as push button(s) and light tower(s), safety-related system(s) such as area scanner(s) and light curtain(s), and the like. Preferably, each automation component data model can factor in a mass, a volume, dimensions, a shape, a material, a texture, frictioncoefficients associated to one or more relevant surfaces, mechanical properties, and other relevant physical properties of the corresponding automation component (either all or some of the foregoing). In some preferred embodiments, the automation components available in the automation component model database can be brand-agnostic in the sense that different make(s) and model(s) may be available for any automation component. Similarly, the software application may also include, as part of one or more component model datasets, data models of non-automation components to build the virtual automation assembly 120, including virtual hardware components such as brackets, tubes, extrusions, connectors, fasteners, or other structural hardware, electronic hardware such as, wires, couplings, connectors, user interface, monitors, sensors, among other things. All such virtual components may also form part of the virtual automation assembly 120.

[0055] One or more virtual objects (hereinafter “the virtual object 100V”) to be manipulated by the virtual automation assembly 120 can also be modelled in the software application. For instance, the virtual object 100V is a vertical cylinder in the depicted embodiment. As illustrated, the software application has access to an object model database 125 from which data models of a number of objects to be manipulated can be accessed, imported and used. The objects can include, but are not limited to, box(es), flask(s), container(s), pallet(s), pellet(s), objects or blocks of material to be shaped by a CNC, sheet metal objects, cardboard sheets to isolate layers of objects on a pallet, and the like. Again, each object data model is preferably sufficiently detailed to factor in a mass, a volume, dimensions, a shape, a material, a texture, friction coefficients associated to one or more relevant surfaces, mechanical properties, and other relevant physical properties.

[0056] As illustrated in Fig. 1 B, the software application can also be used to generate first instruction series 126 executable to automate the virtual automation assembly 120 and / or control the movement(s) of the virtual object 100V in the virtual workstation 121. In some embodiments, the software application can be used to generate / modify the virtual automation assembly 120 and / or the first instruction series 126 as desired to ensure that the virtual automation assembly 120 can accomplish desired tasks and / or can automate successfully. The modification(s) of the virtual automation assembly 120 can include, but are not limited to, modification(s) to the size, shape, position, orientation of the automation components,hardware components and / or to the object, substitution(s) of one or more automation components by automation component(s) of different size(s), strength(s), make(s) and / or model(s), and the like. The software application can also be used to simulate the operation of the virtual automation assembly 120 by executing the first instruction series 126 within the virtual workstation 121 in the software application. It is noted that the software application can be stored on a cloud-based server to be ran remotely via a web-browser, for instance, so as to be deployable / redeployable at will, on any instance of the system, and in some embodiments with no more complication than a single click; once deployed to a physical automation assembly 110, the software may be stored on a memory of a physical automation controller 114 (e.g., MachineMotion™ controller), or else be stored on a memory of a computing device 500 from which it can be ran locally.

[0057] During a simulation, it can be determined, thanks to the simulation being displayed on a display screen communicatively coupled to the computing device 500 and visible to a designer, whether the virtual automation assembly 120 in fact allows for the manipulation of the virtual object 100V as desired upon execution of the first instruction series. It is intended that the first instruction series 126 can be modified on the go to ensure proper functioning of the virtual automation assembly 120, if for instance the simulation shows some undesirable movements of the virtual automation assembly 120, of the object and / or of its surroundings. It is understood that the more detailed the data models are, the better results the simulation can achieve. In some embodiments, the object model database 125 can also include other objects that are not necessarily meant to be directly manipulated by the virtual automation assembly 120. For instance, if the object to be manipulated rests on a support surface (e.g., of a chair, a table, a pallet, a tray, a drawer), the support surface may be modeled using objects available in the object model database, or from another database, or just created on the go. It is intended that, for better results, the surroundings of the object to be manipulated should be modeled in the most accurate manner. For instance, if the support surface is a drawer that can slide horizontally, then the sliding of the drawer should be modeled in the virtual workstation 121. In this manner, any unexpected interaction between the virtual automation assembly 120 and the drawer, resulting in the drawer undesirably sliding horizontally prior or after the manipulation of the object, should be displayed on the display screen for the designer to appreciate.

[0058] Fig. 1C shows an example of a physical automation assembly 110 assembled in a physical workstation 111 based on the design of the virtual automation assembly 120 of Figs. 1A and 1 B. As depicted, the physical automation assembly 110 includes a physical robot unit 113 corresponding to (or “mimicking”) the virtual robot unit 123of Figs. 1A and 1 B. More specifically, the physical robot unit 113 has an actuated arm 113A having an end effector 113B , here in the form of a gripper, at a free end of the actuated arm. A physical automation controller 114 is also communicatively coupled to the actuated arm 113A and to the end effector 113B for controlling thereof. It is intended that a second instruction series 116 is executed by the physical automation controller 114 to perform the manipulation of the physical object 100P, which corresponds (or “mimics”) the virtual vertical cylinder of Figs. 1A and 1 B. Upon execution of the second instructions series by the physical automation controller 114, the physical object 100P can be manipulated as planned on the physical workstation. It is intended that the second instruction series 116 corresponds to the first instruction series. In other words, the same instruction series can be used to control any of the automation assemblies, regardless of whether the automation assembly is the virtual automation assembly 120 and actuated in the virtual workstation 121 or is the physical automation assembly 110 and actuated in the physical workstation.

[0059] Fig. 2 shows an example of a method 200 for performing an industrial process involving manipulating a physical object 100P using a physical automation assembly 110. The method 200 can be performed using a computing device 500. Depending on the embodiment, the computing device 500 can be provided in the form of a desktop computer, a laptop computer, a smart phone, an electronic tablet, a cloud-based server, or a combination thereof.

[0060] At step 202, a virtual automation assembly 120 is virtually assembled in a virtual workstation 121 using a computing device 500. The virtual automation assembly 120 is generally configured for manipulating a virtual object 100V simulating the physical object 100P in the virtual workstation 121.

[0061] In some embodiments, the virtual automation assembly 120 can include one or more data models of a component model database including automation and non-automation components. The virtual automation assembly 120 can thus be assembled from a number ofdata models of automation and non-automation components fetched from the component model database via a software application.

[0062] In some embodiments, the virtual object 100V can include one or more data models of an object model database. As such, the data model(s) of the physical object 100P can thus be fetched from the object model database 125 including data models of a number of different objects. In some embodiments, the data model of the virtual object 100V can factor in: a mass of a corresponding physical object 100P, a volume of the corresponding physical object 100P, dimensions of the corresponding physical object 100P, a shape of the corresponding physical object 100P, a texture of the corresponding physical object 100P, friction coefficients associated to one or more surfaces of the corresponding physical object 100P, mechanical properties of the corresponding physical object 100P, physical properties of the corresponding physical object 100P, or a combination thereof. As mentioned above, the better the physical object 100P is modelled, the better the resulting simulation. Accordingly, great care must be taken at the creation of the data model of the virtual objects and of any surrounding element.

[0063] Indeed, in some embodiments, a virtual mechanical response (e.g., simulated kinetic and / or kinematic response) of the virtual object 100V being manipulated by the virtual automation assembly 120 within the virtual workstation 121 simulates a physical mechanical response (e.g., actual kinetic and / or kinematic response) of the corresponding physical object 100P being manipulated by the physical automation assembly 110 within the physical workstation. The simulation may involve a graphic rendering showing the virtual object 100V reacting to the actions of the virtual automation assembly 120 as a corresponding physical object 10OP would respond to similar actions of a physical automation assembly 110. In these embodiments, the virtual mechanical response can include: the virtual object 100V falling if dropped by the virtual automation assembly 120, the virtual object 100V changing shape if gripped by the virtual automation assembly 120, the virtual object 100V displacing a surrounding object if moved against it by the virtual automation assembly 120, the virtual object 100V sliding on a support surface if pushed along it by the virtual automation assembly 120, to name only a few examples.

[0064] Depending on the embodiment, the step 202 of assembling the virtual automation assembly 120 can be performed via a block-based visual programming language (e.g.,MachineLogic™ programming), a high-level general purpose programming language (e.g., Python), or a combination thereof.

[0065] In some embodiments, the step 202 of assembling the virtual automation assembly120 can be performed on a web-browser-based application accessible via the Internet. In these embodiments, the calculations allowing the simulation of the manipulation of the virtual object 100V in the virtual workstation 121 are performed on a remote cloud-based server, and the results of the calculations are communicated back to the web-browser based application accessible via the Internet. In some other embodiments, however, the calculations can be performed locally by the computing device 500 running the software application.

[0066] At step 204, a first instructions series is generated. When executed by the virtual automation assembly 120, the first instruction series 126 causes the virtual automation assembly 120 to simulate the manipulation of the virtual object 100V in the virtual workstation121 to perform the desired industrial process. The first instruction series 126 can include one or more distinct instructions, directed to the sequential or simultaneous movement of one or more automation component(s) of the virtual automation assembly 120. In some embodiments, the first instruction series 126 includes the position and orientation of any of the automation components of the virtual automation assembly 120 over a given period of time, which can be longer or shorter depending on the complexity of the motion to be performed.

[0067] At step 206, the manipulation of the virtual object 100V by the virtual automation assembly 120 in accordance with the first instruction series 126 is displayed on a display screen of the computing device 500 (or communicatively coupled thereto). In this step, the movement(s) of the virtual automation assembly 120 can be played, paused, accelerated, slowed and replayed, for example, until a user is satisfied with the completion of the intended industrial process.

[0068] During a simulation, the manipulation of the virtual object 100V in the virtual workstation 121 may be deemed to be unsatisfactory. Accordingly, the method 200 may include a step 208 in which, when an undesirable movement or event in the manipulation of the virtual object 100V is identified, the method 200 may include a step of returning to step 202, step 204, or both, to modify either one or both of the virtual automation assembly 120and the first instruction series. For instance, in some embodiments, the simulation displayed at step 206 shows that an automation component used in the virtual automation assembly 120 is not big / strong enough, positioned and / or shaped, for handling the virtual object 100V. In these embodiments, the step of modifying the virtual automation assembly 120 may include substituting a current gripper by another gripper (e.g., bigger gripper or other end effector), or repositioning one or more of the automation or non-automation components to provide greater freedom of movement or avoid mechanical interference between one or more component(s) of the virtual automation assembly 120 and one or more other components of the virtual automation assembly 120, for example. Additionally or alternately, the simulation displayed at step 206 may show that the first instruction series 126 are inadequately moving the virtual automation assembly 120 to perform the desired task. As a result the step of modifying the first instruction series 126 can include modifying a movement amplitude, a movement speed, a movement trajectory, and / or a movement timing of one or more of the automation components of the virtual automation assembly 120 to ensure that the desired task is performed successfully. It is intended that a loop including steps 202, 204, and 208 can be iteratively performed until the virtual automation assembly 120 satisfactorily manipulates the virtual object 100V in the virtual workstation 121. Iterations could be made manually by a user, for example. In variants, a loop including steps 202, 204, and 208 could be software driven, such as by machine learning algorithms, to iterate and select a motion sequence, speed, amplitude, trajectory, and / or timing, for example, that is most or better adapted to perform the desired task.

[0069] Once the virtual automation assembly 120 has been assembled and the first instruction series 126 have been generated, the method 200 includes, at step 210 and in the physical workstation, the assembly of the physical automation assembly 110 based on the virtual automation assembly 120. The physical automation assembly 110 can be assembled using a list of parts and an assembly guide, which can be referred to as assembly instructions, outputted by the computing device 500 (e.g., in physical or digital format) once the step 202, at least, and subsequent steps through 208 have been completed. The list of parts can include identifiers (e.g., IDs, serial numbers, makes and models) of physical parts required to assemble the physical automation assembly 110 based on the virtual automation assembly 120 assembled at step 202. The assembly guide can indicate, either at a high level ofabstraction or a low level of abstraction, how to assemble the physical parts into the physical automation assembly 110 to the skilled technician(s). In at least some embodiments, the generation / modification of the virtual automation assembly 120 may output, at the software level, a bill of material including all components required to build the physical automation assembly 110 according to the specifications of the virtual automation assembly 120. Such bill of materials may be used as part of a transactional platform, forming part of the software application, to order one or more of the designed automation assemblies, and get them shipped to a premise as part of a kit for assembly. Physical deployment of the physical automation assembly 110 may begin with assembling the kit according to instructions (e.g., specifications, plans, etc.), powering the hardware components, and automating the physical automation assembly 110.

[0070] At step 212, the industrial process is initiated using the physical automation assembly 110 in the physical workstation 111. The initiation of the industrial process can include the execution of a second instruction series 116 causing the physical automation assembly 110 to manipulate the physical object 100P within the physical workstation 111 to perform the industrial process. In some embodiments, the computing device 500 communicates the first instruction series 126 to the physical automation assembly 110 which records them as second instruction series 116 without modification or translation. More specifically, in certain embodiments, the first instruction series 126 are pushed to (or called by) a physical automation controller 114 of the physical automation assembly 110. This communication between the computing device 500 and the physical automation assembly 110 can be made by way of a wired communication link, a wireless communication link, or a combination of both depending on the embodiment. In some instances, the second instruction series 116 may be preloaded in the physical automation controller 114 prior to delivery and / or prior to the physical deployment of the physical automation assembly 110.

[0071] As discussed above, the second instruction series 116 is meant to correspond to the first instruction series 126. For instance, the first instruction series 126 and the second instruction series 116 can be coded in a same programming language, and can carry literally the same information in the same way. In some embodiments, the first instruction series 126 include virtual robot coordinates each associated to a corresponding time value whereas thesecond instruction series 116 include physical robot coordinates each associated to a corresponding time value. In these embodiments, the virtual robot coordinates and the physical robot coordinates can correspond to one another. In other words, the same instruction series is executable by both the virtual automation assembly 120 and the physical automation assembly 110 to manipulate a respective one of the virtual object 100V and the physical object 100P in the virtual workstation 121 and the physical workstation, respectively.

[0072] In certain embodiments, the virtual automation assembly 120 has a virtual automation controller 124 controlling a virtual robot unit 123in the virtual workstation 121 , and the physical automation assembly 110 has a physical automation controller 114 (e.g., MachineMotion™ controller) controlling a physical robot unit 113 in the physical workstation. In these embodiments, the physical automation controller 114 may be configured to execute the second instruction series 116 in a corresponding manner as the virtual automation controller 124 would execute the first second instruction series 116. It is intended that by using the same instruction series both in the virtual and the physical environment, any instruction translation step can be omitted, thereby rendering the method 200 more efficient and fluid for the user. In certain preferred embodiments, the virtual-to-physical automation platform, which may be referred to as a design-to-deployment system for automating an industrial process as described herein executes a single and / or common command interpreter in both environments. In preferred embodiments, the virtual automation controller 124 and the physical automation controller 114 include a same interpreter. Stated otherwise, the virtual interpreter may be modelled to correspond to the physical interpreter of the physical automation controller 114. This setup may advantageously ensure that a same logic and control semantics are maintained from an initial design phase, through simulation, and into physical deployment. The virtual interpreter that parses and executes the first instruction series 126 inside the virtual workstation 121 may be replicated in — or otherwise callable by — the physical automation controller 114 (e.g., a MachineMotion™ controller). As a result, the transition from simulation to shop-floor execution may be seamless and may require no intermediate compilation, installation, or bridging software to translate the first instruction series 126 produced in the virtual workstation 121 into a brand-specific format expected by a target automation unit (e.g., brand-specific robot unit). This approach may not only streamline the workflow but also reduce the risk of errors and accelerate the overall deployment process.

[0073] Commercially available automation units are typically delivered with their own native programming languages and / or proprietary interpreters (for example, Teach Pendant (TP), KAREL, RAPID, KRL, VAL3, among others). These native interpreters usually read the instructions received from higher-level software, translate them into the robot’s internal control language, and then drive the various axes, end-effectors, sensors, and safety devices accordingly. By contrast, the design-to-deployment system disclosed herein may allow users to bypass the native robot interpreter entirely. The first instruction series 126 generated inside the virtual design environment are brand-agnostic, meaning they are not tied to any specific manufacturer’s language or interpreter. These instructions may be pushed unchanged to the physical automation controller 114, which may directly actuate the physical robot unit 113 as a passive execution element. Fig. 13 illustrates an example of first instruction series 126, simplified for illustration purposes, in a virtual workstation VW, such as the virtual workstation 121 , with corresponding second instruction series 116 that may be deployed in a physical workstation PW, such as the physical workstation 111 , including a plurality of robot units RU1 , RU2, as in the system described herein with reference to various embodiments. In the example shown, the robot units Rll 1 , RU2 are of different brands, makes and / or models. Each robot unit may have their respective native robot interpreters and programming languages. As illustrated, the first instruction series 126 and the second instruction series 116 are in the same brand-agnostic programming language. In Fig. 13, command instructions in the respective programming languages of the robot units RU1 , RU2 are illustrated at C1 and C2. The first instruction series 126 which may be executed by the virtual interpreter may be pushed unchanged to the physical interpreter of the physical automation controller 114. The physical automation controller 114, may directly actuate the plurality of physical robot units RU1 , RU2 as passive execution elements. The built-in interpreter of the physical robot units RU1 , RU2 may therefore become optional or merely accessory; the physical robot unit RU1 , RU2 may “listen” to, and execute, precisely the same line-by-line instruction series that were generated and validated during simulation. This brand-agnostic approach may greatly enhance interoperability, allowing users to integrate and control automation components from multiple vendors within a single, unified workflow, and eliminate the need for costly and timeconsuming translation or adaptation steps. This may become increasingly advantageous as the complexity of the industrial process rises and / or in the deployment of large-scale automation projects.

[0074] At step 214, an undesirable movement in the manipulation of the physical object 100P can be identified when compared to the desired industrial process, if any. In the cases where an undesirable movement is identified, the method 200 can include a step 216 of modifying the virtual automation assembly 120, the first instruction series, or both. In variants, the step 216 may include modifying the virtual object 100V to rectify a simulation to have an increased accuracy between the virtual assembly or simulated motion and the physical automation assembly 110 or actual motion performed. Such modification could include for example modifications to weight, geometry, inertia, or other properties of the virtual object 100V to better replicate the physical object 110P and / or the mechanical response thereof. In these embodiments, the steps 202 through 208 can be performed again to make sure other undesirable movement have not been mistakenly introduced. If a modification in the virtual automation assembly 120 has been deemed necessary, the method 200 can involve a corresponding modification to the physical automation assembly 110. If a modification to the first instruction series 126 has been performed, the updated first instruction series 126 can act as an updated second instruction series 116 to be executed by the physical automation assembly 110 to perform the desired industrial process. The updated second instruction series can be uploaded to the physical automation controller 114 wirelessly or by wired connection, in the deployed physical automation assembly 110, for example. In some embodiments, a number of such iterations are necessary to achieve a workable physical automation assembly 110.

[0075] Fig. 3 shows an example of a method 300 for manipulating a physical object 100P using a physical automation assembly 110, in accordance with a further embodiment. The method 300 can be performed by one or more computing devices, examples of which are described below with reference to Fig. 5.

[0076] At step 302, one or more computing devices cause a programming graphical interface to be displayed on a display screen. The display screen can be wiredly or wirelessly coupled to the computing device 500 depending on the embodiment.

[0077] At step 304, the computing device 500 receives virtual automation assembly data and object data based on one or more user interactions with the programming graphical interface. The virtual automation assembly 120 data can be received upon a user partially orwholly selecting and virtually assembling automation components (e.g., robot unit(s), robot controller(s), robot part(s)) via the programming graphical interface. Similarly, the object data can be received upon the user partially or wholly selecting the one or more virtual objects to be manipulated by an intended virtual automation assembly 120. It is intended that the virtual automation assembly 120 data can be selected from an automation component model database including data models of a plurality of automation components (e.g., robot components), whereas the object data can be selected from an object model database 125 including data models of a plurality of objects.

[0078] At step 306, based on the virtual automation assembly 120 data and on the object data, the computing device 500 generates a virtual automation assembly 120 configured for manipulating a virtual object 100V corresponding to the physical object 100P. The virtual automation assembly 120 generated at step 306 can be displayed on a display screen communicatively coupled to the computing device 500. In some embodiments, the virtual automation assembly 120 can be activated to execute a first instruction series 126 to perform the manipulation of the virtual object 100V as intended.

[0079] At step 308, the computing device 500 outputs a list of parts, which may also be referred to as a bill of material, identifying physical parts usable to assemble the physical automation assembly 110 corresponding to (or “mimicking”) the virtual automation assembly 120. At step 308, the computing device 500 may further output an assembly guide indicating how to assemble the physical parts into the physical automation assembly 110. In some embodiments, the computing device 500 may further output a given instruction series which when executed by the virtual automation assembly 120 perform the manipulation of the virtual object 100V as intended in view of a given industrial process. It is intended, as discussed elsewhere in this disclosure, that the given instruction series is not only executable by the virtual automation assembly 120, but also executable by a physical automation assembly 110 to manipulate a physical object 100P corresponding to the virtual object 100V. In this way, no instruction translation is required between the virtual automation assembly 120 and the physical automation assembly 110. Consequently, design iterations with respect to the intended movement(s) of the virtual and / or physical automation assembly 110 can befacilitated, and / or faster deployment of the physical automation assembly 110 for achieving the desired industrial process can be obtained, even in brand-agnostic configurations.

[0080] In some embodiments, the method 300 includes a step 310 of physically assembling the physical automation assembly 110 using the parts based on the assembly guide. Once assembled, at optional step 312, the physical automation assembly 110 can actually execute the given instruction series thereby causing the physical automation assembly 110 to manipulate the physical object 100P within the physical workstation 111 identically as to how the virtual object 100V is virtually manipulated by the virtual automation assembly 120 within the virtual workstation 121. Again, the given instruction series that is executed by the physical automation assembly 110 at step 312 correspond to the instruction series outputted by the computing device 500 at step 308 in connection with the control of the virtual automation assembly 120.

[0081] The steps 302 through 308 of the method 300 can be performed by one or more computing devices in a virtual environment, for example by operation of the one or more computing devices by one or more skilled workers, whereas steps 310 and 312 can be performed by one or more skilled workers who can assemble the physical automation assembly 110 at the physical workstation 111 based on the design of the corresponding virtual automation assembly 120 performed at steps 302, 304, and / or 306.

[0082] Fig. 4 shows an example of a method 400 for manipulating a physical object 100P using a physical automation assembly 110, in accordance with another embodiment.

[0083] At step 402, a physical automation assembly 110 is assembled in a physical workstation 111 based on a virtual automation assembly 120. As discussed above, the virtual automation assembly 120 can be programmed for manipulating a virtual object 100V in a virtual workstation 121 such as described above with reference to methods 200 and 300. The virtual object 100V is based on a data model of a physical object 100P. The virtual automation assembly 120 is programmed in such a way that it simulates the manipulation of the virtual object 100V when a first instruction series 126 is executed by the virtual automation assembly 120 in a computing device 500.

[0084] At step 404, the physical automation assembly 110 executes a second instruction series 116 causing the physical automation assembly 110 to manipulate the physical object 100P within the physical workstation 111 corresponding to the manipulating of the virtual object 100V. The second instruction series 116 executed by the physical automation assembly 110 may corresponding to the first instruction series 126 executed by the virtual automation assembly 120. In this way, both the virtual automation assembly 120 and the physical automation assembly 110 can receive similar instruction series and perform similar movements, either virtually in the virtual workstation 121 or in the physical environment, as part of the physical workstation.

[0085] The method 400 can be performed by one or more skilled workers who can assemble the physical automation assembly 110 at the physical workstation 111 based on a previous design of a corresponding virtual automation assembly 120.

[0086] Referring now to Fig. 5, the computing device 500 can be provided as a combination of hardware and software components. The hardware components can be implemented in the form of a computing device 500, an example of which is described with reference to Fig. 5. The computing device 500 can have a processor 502, a memory 504, and I / O interface 506. Instructions 508 for operating a computer software for designing the virtual automation assembly 120, controlling the virtual and / or physical automation assembly 110 can be stored on the memory 504 and accessible by the processor 502. In some embodiments, the computing device 500 is used by the designer to construct the virtual automation assembly 120 in the virtual workstation 121. In some other embodiments, the computing device 500 can be provided in the form of an automation controller controlling the movement of the automation assembly(ies), such as the virtual automation controller 124 and the physical automation controller 114. The computing device 500 is meant to encompass any type of computing apparatuses such as a computer, a cloud-based server executing instructions, and the like. The computing device 500 can include one or more controllers, communicatively coupled to one another. The controllers can be remote from one another, in some embodiments.

[0087] The processor 502 can be, for example, a general-purpose microprocessor or microcontroller, a digital signal processing (DSP) processor, an integrated circuit, a field-programmable gate array (FPGA), a reconfigurable processor, a programmable read-only memory (PROM), a programmable logic controller (PLC), or any combination thereof.

[0088] The memory 504 can include a suitable combination of any type of computer- readable memory that is located either internally or externally such as, for example, randomaccess memory (RAM), read-only memory (ROM), compact disc read-only memory (CDROM), electro-optical memory, magneto-optical memory, erasable programmable readonly memory (EPROM), and electrically-erasable programmable read-only memory (EEPROM), Ferroelectric RAM (FRAM) or the like.

[0089] Each I / O interface 506 enables the computing device 500 to interconnect with one or more input devices, such as mouse(s), keyboard(s), or with one or more output devices such as communication network(s), accessible memory system(s), the virtual and / or physical automation assembly.

[0090] Each I / O interface 506 enables the controller to communicate with other components, to exchange data with other components, to access and connect to network resources, to server applications, and perform other computing applications by connecting to a network (or multiple networks) capable of carrying data including the Internet, Ethernet, plain old telephone service (POTS) line, public switch telephone network (PSTN), integrated services digital network (ISDN), digital subscriber line (DSL), coaxial cable, fibre optics, satellite, mobile, wireless (e.g. Wi-Fi, WiMAX), SS7 signaling network, fixed line, local area network, wide area network, and others, including any combination of these.

[0091] The method steps and any software application that can be ran by the computing device 500 are meant to be examples only. Other suitable embodiments of the controller can also be provided, as it will be apparent to the skilled reader. For instance, in some embodiments, the designer can have the simulation software installed on and ran by his / her own computing device 500. The communication with the physical automation assembly 110 can be performed via a wired or wireless coupling link between the computing device 500 of the designer and the physical automation assembly 110. In some other embodiments, the computing device 500 of the designer can be communicatively coupled to a cloud-based computing system or server where the simulation software can be hosted in full or in part. Inthese embodiments, the designer can send queries dictating what the simulation software (e.g., the virtual automation components, movements and the like) should do, however the actual calculations associated with the designer queries can be performed at a remote location by an external computing device 500 or server system. In some embodiments, the external computing device 500 or server system is a distributed cloud-based server system. Other suitable embodiments will be apparent to the skilled reader.

[0092] Fig. 6 shows an example of a virtual automation assembly 120 configured for moving a virtual cylindrical object from a first location to a second location in a virtual workstation 121. As shown, the first location corresponds to a drawer of a first cabinet that can be moved horizontally should an horizontal force be applied along a plane of the drawer. The virtual cylindrical object rests vertically on the drawer of the first cabinet prior to its manipulated by the virtual automation assembly 120. The second location corresponds to a horizontal hole that can receive the virtual cylindrical object in a second cabinet spaced apart from the first cabinet. The virtual automation assembly 120 includes an actuated arm 123A having a base that is displaceable between the first and second cabinets along a guiding rail. The actuated arm 123A has a distal free end to which is mechanically coupled an end effector 123B (e.g., gripper) adapted to grip the virtual cylindrical object. The virtual automation assembly 120 has a virtual automation controller 124(e.g., MachineLogic™) which can receive and implement instructions to move the actuated arm 123A and the end effector 123B when desired.

[0093] Fig. 7 is an image showing an example software application where a first instruction series 126 can be programmed using the computing device 500. As depicted, the software application shows an example first instruction series 126 to be executed by the virtual automation assembly 120 of Fig. 6. The first instruction series 126 can be programmed using a visual programming language where an initial state can be programmed, followed by a number of following states until the instructions are completed. When the button “Visualize State Machine” is activated, the virtual automation assembly 120 may move within the virtual workstation 121 in accordance with the first instructions series, an example of which is shown by frames in Figs. 7A, 7B, 7C, 7D and 7E. More specifically, at Fig. 7A, the actuated arm 123A moves towards the first cabinet and the end effector 123B grips the virtual cylindrical object. At Fig. 7B, the base of the actuated arm 123A is moved towards the second cabinet. At Figs.7C and 7D, the actuated arm 123A rotates to position the virtual cylindrical object from a vertical position to a horizontal position that is lower than the initial position. At Fig. 7E, the actuated arm 123A inserts the virtual cylindrical object within the corresponding hole in the second cabinet.

[0094] The sequence shown in Figs. 7A through 7E is an example of a successful sequence of movements of the virtual automation assembly 120. Figs. 8A, 8B and 8C show a previous iteration of the first instruction series 126 where an undesirable movement occurred. More specifically, at Fig. 8A, the end effector 123B of the automated arm accidently pushed the drawer of the first cabinet along a horizontal orientation while trying to grip the virtual cylindrical object, resulting in the drawer position shown in Fig. 8B. Since all of the surrounding elements of the virtual cylindrical object may have been properly modeled, this accidental push resulted in the drawer sliding horizontally away from the actuated arm 123A in the virtual environment, which may inform about the possibility of that undesirable event, as a result of the execution of the first virtual instruction series. This manipulation error occurring in the virtual workstation 121 could be corrected by modifying the first instruction series 126 to make sure the drawer would receive no horizontal force. The resulting movement of the updated first instructions are shown in Figs. 7A through 7E.

[0095] Fig. 9 shows an example of a physical automation assembly 110 generally corresponding to the virtual automation assembly 120 of Fig. 6. As depicted, the physical automation assembly 110 is configured for moving a physical cylindrical object from a first location to a second location in a physical workstation. Exactly as simulated in Fig. 6, the first location corresponds to a drawer of a first cabinet that can be moved horizontally should an horizontal force be applied along a plane of the drawer. The physical cylindrical object rests vertically on the drawer of the first cabinet prior to it being manipulated by the physical automation assembly 110. The second location corresponds to a horizontal hole that can receive the physical cylindrical object in a second cabinet spaced apart from the first cabinet. The physical automation assembly 110 includes an actuated arm 113A having a base that is displaceable between the first and second cabinets along a guiding rail. The actuated arm 113A has a distal free end to which is mechanically coupled an end effector 113B , here in the form of a gripper adapted to grip the physical cylindrical object. The physical automationassembly 110 has a physical automation controller 114 (e.g., MachineMotion™ controller) which can receive instructions to move the actuated arm 113A and the end effector 113B when desired.

[0096] Fig. 10 shows an example of a user interface 117 (display / touch screen) of the physical automation assembly 110 of Fig. 9 and communicatively coupled to the physical automation controller 114 for controlling the physical automation assembly 110 of Fig. 9. Via the user interface, the physical automation controller 114 is configured for initiating the industrial process by the execution of a second instruction series 116 corresponding to the first instructions series. The same first instruction series 126 shown in Fig. 7 may be reproduced graphically on the display screen (Fig. 10) of the physical automation assembly 110 of Fig. 9.

[0097] Upon execution of the second instruction series 116 by the physical automation assembly 110, in the example illustrated, it was found that there was a slight horizontal offset between the physical cylindrical object and its corresponding hole in the second cabinet, as shown in Fig. 11. This discrepancy can stem from slight differences between the way the virtual automation assembly 120 has been modeled and the way the physical automation assembly 110 has been actually assembled. For instance, slight assembly differences can be introduced by not respecting the assembly guide, for instance. Fig. 12 shows the modifying of the first instruction series, back in the software application, where the first instruction series 126 are modified to properly align the virtual object 100V within respect to the actual second location in the physical workstation 111. Figs. 12A through 12P show frames of the resulting successful industrial process performed upon execution of the updated second instructions series corresponding to the updated first instruction series 126 generated in Fig. 11.

[0098] As can be understood, the examples described above and illustrated are intended to be exemplary only. For example, any automated equipment that includes a robot arm may have both a robot controller, and a physical automation controller 114 (e.g., MachineMotion™ controller). In all cases, the program may run entirely in the physical automation controller 114. With such a platform, the role of the robot controller may be passive, as it would receive the instruction series from the physical automation controller 114, and apply them to the robot arm. Additionally or alternately, the automation controller can act as a multi-componentcommunicator for the whole assembly (e.g., the physical automation assembly 110 or virtual automation assembly 120). As such, the automation controller can be configured for communicating with each and every actuatable or otherwise controllable components of the virtual automation assembly 120 / physical automation assembly 110. The automation controller communicating with the communication languages from a number of components is especially useful when two or more robots, of different robot manufacturers, have to be controlled. In this way, the automation controller can control the whole assembly as intended without necessarily needing the proprietary robot controller to do anything else than just executing the instructions it receives. Indeed, if the proprietary robot controller was asked to communicate with the other components of the assembly, additional communication language and translations would have to be enabled at the robot controller side, which is infrequent from most robot manufacturers who want to keep their own ecosystems as close as possible. From the user’s standpoint, this architecture may deliver a genuinely seamless, end-to-end workflow — from design, through simulation, to deployment — irrespective of the particular brand, model, or make of each automation component present in the system. The use of a single interpreter and brand-agnostic instructions means that designers can create, simulate, and deploy complex automation routines involving heterogeneous collections of robots, actuators, drives, and sensors from multiple manufacturers, all within a unified environment. This may not only remove the interoperability challenges that normally afflict multi-vendor installations but also enable the system to scale efficiently as the complexity or size of the automation project increases. Because the interpreter and instruction format are uniform across all stages, the risk of translation errors, or version mismatches, may effectively be limited, thereby reducing the overall design-to-deployment timeline as well as the associated consumption of processing power, personnel resources, and engineering hours. The platform’s scalability may ensure that whether a user is deploying a single robot or orchestrating a large-scale, multi-unit automation cell, the workflow may remain consistent, reliable, and efficient.

[0099] The system presented in the various embodiments herein may enable immediate deployment of validated command series into the physical workstation 111 , thereby accelerating ROI and simplifying ongoing maintenance, updates, and future system expansions.

Claims

WHAT IS CLAIMED IS:1 . A method for performing an industrial process involving manipulating a physical object using a physical automation assembly, the method comprising: using a computing device, assembling a virtual automation assembly configured for manipulating a virtual object in a virtual workstation, the virtual object based on a data model of the physical object; generating a first instruction series which when executed by the virtual automation assembly in said computing device simulate said manipulating the virtual object in the virtual workstation to perform the industrial process; in a physical workstation, assembling the physical automation assembly based on the virtual automation assembly; and initiating the industrial process using the physical automation assembly, said initiating including the physical automation assembly executing a second instruction series causing the physical automation assembly to manipulate the physical object within the physical workstation to perform the industrial process, the second instruction series executed by the physical automation assembly corresponds to the first instruction series executed by the virtual automation assembly.

2. The method of claim 1 wherein the first instruction series and the second instruction series are coded in a same programming language.

3. The method of claim 1 wherein the first instruction series include a plurality of virtual robot coordinates each associated to a corresponding time value, the second instruction series including a plurality of physical robot coordinates each associated to a corresponding time value, the virtual robot coordinates and the physical robot coordinates corresponding to one another.

4. The method of any one of claims 1 to 3, wherein executing the second instruction series includes bypassing a native robot interpreter to actuate the physical automation assembly.

5. The method of any one of claims 1 to 4, wherein said assembling the virtual automation assembly is performed via one of: a block-based visual programming language and a high-level general purpose programming language.

6. The method of any one of claims 1 to 5, further comprising: after said initiating, identifying an undesirable movement in a manipulation of the physical object using the second instruction series; and upon identifying said undesirable movement, modifying at least one of said assembling the virtual automation assembly and said generating the first instruction series.

7. The method of any one of claims 1to 6, further comprising: displaying, via a display screen of the computing device, the virtual automation assembly manipulating the virtual object using the first instruction series.

8. The method of any one of claim 7, further comprising: identifying an undesirable movement in said manipulating the virtual object using the first instruction series; and upon identifying said undesirable movement, modifying at least one of said assembling the virtual automation assembly and said generating the first instruction series.

9. The method of any one of claims 7 and 8, wherein said data model of the virtual object factors in at least one of: a mass of the physical object corresponding to the virtual object, a volume of the physical object, dimensions of the physical object, a shape of the physical object, a texture of the physical object, friction coefficients associated to one or more surfaces of the physical object, mechanical properties of the physical object, and physical properties of the physical object.

10. The method of any one of claims 6 to 9, wherein a virtual mechanical response of the virtual object being manipulated by the virtual automation assembly within the virtual workstation simulating a physical mechanical response of the physical object being manipulated by the physical automation assembly within the physical workstation.

11. The method of claim 10, wherein said virtual mechanical responses includes one of: the virtual object falling if dropped by the virtual automation assembly, the virtual object changing shape if gripped by the virtual automation assembly, the virtual object displacing a surrounding object if moved against it by the virtual automation assembly, and the virtual object sliding on a support surface if pushed along it by the virtual automation assembly.

12. The method of any one of claims 1 to 11 , wherein the virtual automation assembly includes a virtual automation controller controlling a virtual robot unit in the virtual workstation, the physical automation assembly including a physical automation controller controlling a physical robot unit in the physical workstation, the physical automation controller executing the second instruction series in a corresponding manner as the virtual automation controller executing the first second instruction series.

13. The method of any one of claims 1 to 12, wherein the virtual automation assembly includes one or more data models of a robot component model database.

14. The method of any one of claims 1 to 13, wherein the virtual object includes one or more data models of an object model database.

15. The method of any one of claims 1 to 14, wherein the computing device is provided in the form of at least one of: a desktop computer, a laptop computer, a smart phone, an electronic tablet, and a cloud-based server.

16. The method of any one of claims 1 to 15, wherein said assembling the virtual automation assembly is performed on a web-browser-based application accessible via the Internet, wherein calculations to simulate the said manipulating the virtual object in the virtual workstation are performed on a remote cloud-based server.

17. The method of any one of claims 1 to 16, further comprising the computing device communicating the first instruction series to the physical automation assembly.

18. The method of claim 17, wherein said communicating is performed via at least one of a wired communication link and a wireless communication link.

19. A method for manipulating a physical object using a physical automation assembly, the method comprising: in a physical workstation, assembling a physical automation assembly based on a virtual automation assembly, the virtual automation assembly programmed for manipulating a virtual object in a virtual workstation, the virtual object based on a data model of the physical object, the virtual automation assembly simulating said manipulating when a first instruction series is executed by the virtual automation assembly in a computing device; and the physical automation assembly executing a second instruction series causing the physical automation assembly to manipulate the physical object within the physical workstation, the second instruction series executed by the physical automation assembly corresponding to the first instruction series executed by the virtual automation assembly.

20. A method for deploying a physical automation assembly operable to manipulate a physical object, the method comprising: causing, by a computing device, a programming graphical interface to be displayed on a display screen; receiving, by the computing device, virtual automation assembly data and object data based on one or more user interactions with the programming graphical interface; generating, by the computing device and based on the virtual automation assembly data and on the object data, a virtual automation assembly configured for manipulating a virtual object corresponding to the physical object; and outputting, by the computing device, a list of parts identifying a plurality of physical parts usable to assemble the physical automation assembly correspondingto the virtual automation assembly; an assembly guide indicating how to assemble the plurality of physical parts into the physical automation assembly; and a given instruction series which when executed by the virtual automation assembly perform said manipulating the virtual object and executable by the physical automation assembly to manipulate the physical object correspondingly to the manipulating of the virtual object.

21. The method of claim 20, further comprising: in a physical workstation, assembling the physical automation assembly using the plurality of parts based on the assembly guide; and the physical automation assembly executing the given instruction series causing the physical automation assembly to manipulate the physical object within the physical workstation correspondingly to the manipulation of the virtual object within the virtual workstation.

22. The method of any one of claims claim 20 and 21 , wherein the programming graphical interface is a visual programming graphical interface.

23. The method of any one of claims 19 to 22, wherein the execution of the given instruction series by the physical automation assembly includes bypassing a native robot interpreter to actuate the physical automation assembly as a passive execution element.

24. A system for automating an industrial process, the system comprising: a computing device having a software application stored on a cloud-based server and a programming graphical interface configured to provide access to an automation component model database, the automation component model database including data models of a plurality of automation components, the plurality of automation components including at least one virtual robot unit, a virtual workstation accessible via the programming graphical interface, the virtual workstation including a virtual automation assembly programmed formanipulating a virtual object in the virtual workstation, the virtual object based on a data model of a physical object, the virtual automation assembly including a virtual robot unit, and a virtual automation controller communicatively coupled to the virtual robot unit, the virtual automation controller including a virtual interpreter configured to parse and execute a first instruction series in the virtual workstation, the first instruction series generated based on one or more user interactions with the programming graphical interface, the first instruction series when executed by the virtual automation assembly perform said manipulating the virtual object in the virtual workstation with the virtual robot unit, and a communication link for communicating the first instruction series to a physical workstation including a physical automation assembly configured for manipulating a physical object in the physical workstation, the physical object corresponding to the virtual object, the physical automation assembly including a physical robot unit, a physical automation controller communicatively linked to the physical robot unit, the physical automation controller having a physical interpreter, the physical interpreter corresponding to the virtual interpreter and configured to parse and execute a second instruction series in the physical workstation, the second instruction series corresponding to the first instruction series, the second instruction series when executed by the physical automation assembly perform said manipulating the physical object with the physical robot unit in the physical workstation correspondingly to said manipulating the virtual object in the virtual workstation with the virtual robot unit.

25. The system of claim 24, wherein the physical robot unit includes a native robot interpreter, the physical automation controller configured to bypass the native robot interpreter to cause an actuation of the physical robot unit upon execution of the second instruction series.

Citation Information

Patent Citations

  • Industrial robot assembly picking and placing process digital twinborn model construction method

    CN114260893A

  • Multi-variety assembly production line reconfigurable switching method and system based on digital twinning

    CN120278366A