US20190163156A1 - Systems and methods for path command generation - Google Patents
Systems and methods for path command generation Download PDFInfo
- Publication number
- US20190163156A1 US20190163156A1 US15/827,780 US201715827780A US2019163156A1 US 20190163156 A1 US20190163156 A1 US 20190163156A1 US 201715827780 A US201715827780 A US 201715827780A US 2019163156 A1 US2019163156 A1 US 2019163156A1
- Authority
- US
- United States
- Prior art keywords
- path command
- interface
- command
- industrial machine
- conditions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B23—MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
- B23K—SOLDERING OR UNSOLDERING; WELDING; CLADDING OR PLATING BY SOLDERING OR WELDING; CUTTING BY APPLYING HEAT LOCALLY, e.g. FLAME CUTTING; WORKING BY LASER BEAM
- B23K26/00—Working by laser beam, e.g. welding, cutting or boring
- B23K26/02—Positioning or observing the workpiece, e.g. with respect to the point of impact; Aligning, aiming or focusing the laser beam
- B23K26/04—Automatically aligning, aiming or focusing the laser beam, e.g. using the back-scattered light
- B23K26/042—Automatically aligning the laser beam
- B23K26/043—Automatically aligning the laser beam along the beam path, i.e. alignment of laser beam axis relative to laser beam apparatus
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B23—MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
- B23K—SOLDERING OR UNSOLDERING; WELDING; CLADDING OR PLATING BY SOLDERING OR WELDING; CUTTING BY APPLYING HEAT LOCALLY, e.g. FLAME CUTTING; WORKING BY LASER BEAM
- B23K26/00—Working by laser beam, e.g. welding, cutting or boring
- B23K26/36—Removing material
- B23K26/38—Removing material by boring or cutting
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/406—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
- G05B19/4069—Simulating machining process on screen
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23452—Simulate sequence on display to control program, test functions
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23456—Model machine for simulation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/36—Nc in input of data, input key till input tape
- G05B2219/36071—Simulate on screen, if operation value out of limits, edit program
-
- G06F17/5009—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
Definitions
- a path command for an industrial machine is known to have various difficulties in selecting the best input conditions for the task. For example, a larger operation speed correspond to a larger path error margin. However, when reducing operating speed to improve path error margin, the cycle time increases. In general, modifying the path command with specific conditions is difficult because many modifications, and even slight modifications, can violate other aspects of the path command generation due to limitations of the industrial machine, for example.
- a system for path command generation includes an industrial machine, an interface accessible via a remote device, and a server communicably coupled to the industrial machine and the remote device via a network.
- the server includes processing circuitry configured to calculate an optimum path command, simulate the optimum path command based on the calculation of the optimum path command, calculate a cycle time and error of the path command, determine if the path command is acceptable, and transmit path command data to the industrial machine in response to the acceptable path command being selected.
- FIG. 1 depicts an exemplary overview of a path command generation system according to one or more aspects of the disclosed subject matter
- FIG. 2A depicts an exemplary interface displaying results based on a first set of input conditions according to one or more aspects of the disclosed subject matter
- FIG. 2B depicts an exemplary interface displaying results based on a second set of input conditions according to one or more aspects of the disclosed subject matter
- FIG. 2C depicts an exemplary interface displaying results based on the first set and the second set of input conditions according to one or more aspects of the disclosed subject matter
- FIG. 3 depicts an exemplary implementation of an optimal path command according to one or more aspects of the disclosed subject matter
- FIG. 4 is an algorithmic flow chart of a method for path command, generation according to one or more aspects of the disclosed subject matter.
- FIG. 5 is a hardware block diagram of a server according to one or more exemplary aspects of the disclosed subject matter.
- FIG. 1 depicts an exemplary overview of a path command generation system 100 (herein referred to as system 100 ) according to one or more aspects of the disclosed subject matter.
- system 100 can perform the functions or operations described herein regarding the various methods or portions thereof (including those implemented using a non-transitory computer-readable medium storing a program that, when executed, configures or causes a computer to perform or cause performance of the described method(s) or portions thereof).
- the system 100 can include a remote device 105 including an interface 110 , an industrial machine 115 , and a server 120 communicably coupled via a network 130 .
- the system 100 can generate an optimal path command which can be implemented by the industrial machine 115 .
- the optimization can include considering the trade-off between reducing a trajectory error and cycle time.
- an optimal path command can be generated including providing the shortest cycle time, optimizing an error margin to a user's requirements, and considering the physical boundaries of the industrial machine 115 on which the path command will be implemented (e.g., limited by acceleration and jerk). For example, various input conditions can be received via the interface 110 . The remote device 105 (and/or the server 120 ) can calculate and simulate an optimal path command based on the input conditions. The optimal path command can then be implemented via the industrial machine 115 .
- the system 100 can include one or more servo motors and a user interface (e.g., user interface 110 ) to optimize movement of the ⁇ one or more servo motors so that industrial machines (e.g., industrial machine 115 ), which are driven by the one or more servo motors, can run under user's requirements (e.g., acceptable trajectory error while the machine runs, acceptable noise made by the machine, acceptable damage on the machine, acceptable total operating time, etc.).
- user interface e.g., user interface 110
- the system 100 can include predetermined shape data (e.g., a set of coordinates that outline a shape in segments) and displays the user interface based on that shape, wherein the user interface includes a plurality of input conditions including setting a maximum acceleration, as well as other input conditions described herein.
- predetermined shape data e.g., a set of coordinates that outline a shape in segments
- displays the user interface based on that shape wherein the user interface includes a plurality of input conditions including setting a maximum acceleration, as well as other input conditions described herein.
- the system 100 can run a simulation based on the input conditions entered in the user interface, which simulates the results of operating the one or more servo motors to move along the segments, wherein the speed of each servo motor moving along each segment satisfies a predetermined trajectory error margin with or without consideration of a constraint of the industrial machines, which are driven by the one or more servo motors.
- the simulation may generate a plurality of options for the user (e.g., results simulated with values 5% more or less than the value of one or more predetermined input conditions). It should be appreciated that “5%” is an example and other ranges could be used.
- the system 100 in response to receiving a selection of the preferred option via the user interface. can transmit instructions to operate the one or more servo motors based on the selected simulation option (e.g., instructions can include how fast each servo motor should move along each segment).
- the output of the system 100 can be one or more path or trajectory commands corresponding to a series of destination points (e.g., X-Y coordinates) for the servo motor. Additionally, the time it takes to move between destination points can be the same (e.g., 1 second) even though the distances can be different. This sets the speed of the servo motor.
- a series of destination points e.g., X-Y coordinates
- the time it takes to move between destination points can be the same (e.g., 1 second) even though the distances can be different. This sets the speed of the servo motor.
- the user can have the system run a simulation based on different input parameters which can be entered by the user in the user interface. Alternatively, or additionally. if the user is not satisfied with the result or any of the options available in terms of constraints of the machines, the user can redesign the machines so that the machines can operate under the result or one of options that correspond with the user's input conditions.
- one or more output conditions can be calculated for the industrial machine, wherein the one or more output conditions are calculated based on values of input parameters (e.g., jerk, acceleration, velocity, etc.).
- the industrial machine implements a path command based on the one or more output conditions.
- the one or more output conditions can be calculated for the industrial machine to implement an alternative path command based on alternative values of the input parameters.
- the one or more output conditions can be selected, wherein the one or more output conditions can be selected based on the calculation for each set of input parameters.
- a user can select among the input parameters and set the values of the input parameters directly or indirectly.
- the user can select values (and/or alternative values) for the input parameters for path commands, which are displayed in the user interface.
- the alternative values may be set automatically based on the initial values for the input parameters.
- the user can select output conditions in the user interface. As a result, the values of the input parameters corresponding to the selected output conditions can be selected.
- command data corresponding to the path command can be transmitted to the industrial machine, wherein the industrial machine can implement the path command based on the selected output condition.
- the system 100 can be applicable to industrial machines, such as laser cutters, which are driven by the one or more servo motors.
- the remote device 105 can represent one or more remote devices connected to the industrial machine 115 and the server 120 via the network 130 .
- the remote device 105 can be a smart phone, a computer, a laptop, a tablet, a PDA, and the like.
- the remote device 105 can include a front end application as an interface 110 , for example, as further described in FIGS. 2A-2C .
- the interface 110 can receive various input conditions from a user.
- the interface 110 can additionally display the results of a simulation of a path command generated based on the input conditions. Based on the simulation results displayed via the interface 110 , the user can provide input that changes the input conditions.
- the path command (e.g., as X-Y axis command data) can be transmitted to the automated factory machine 115 .
- the remote device 105 can include processing circuitry to independently operate and/or assist in operating the system 100 .
- the industrial machine 115 can represent one or more industrial machines connected to the remote device 105 and the server 120 via the network 130 .
- the industrial machine 115 can include one or more servo motors.
- the industrial machine 115 can receive a path command (e.g., from one or more of the remote device and the server 120 ).
- the industrial machine 115 can receive the path command as X-Y axis command data, for example, wherein the path command as X-Y axis command data can control the position and speed of the one or more servo motors, thereby implementing the received path command.
- the industrial machine 115 can be a laser cutter driven by one or more servo motors.
- the movement of the servo motors of the industrial machine 115 can be optimized so that the industrial machine 115 , which is driven by the one or more servo motors, can run under user's requirements (e.g., acceptable trajectory error occurred while the machine runs, acceptable noise made by the machine, acceptable damage on the machine, acceptable total operating time, etc.).
- the server 120 can represent one or more servers connected to the remote device 105 and the industrial machine 115 via the network 130 .
- the server 120 can include processing circuitry to perform various processing for the system 100 including receiving the input conditions from interface 110 entered via the remote device 105 .
- the server 120 can include the interface 110 and receive the input conditions directly when the user enters the input conditions via the interface 110 .
- the server 120 can calculate the path command based on the input conditions; as well as simulate the path command.
- the server 120 can then transmit the results of the simulation to the remote device 105 , for example, to be displayed in the interface 110 .
- the server 120 can display the simulation results locally via the interface 110 .
- the server 120 can additionally generate and transmit the path command data (e.g., X-Y axis command data) to the automated factory machine 115 so the automated factory machine 115 can implement the path command.
- the server 110 can also take advantage of Edge Computing to prevent limitations associated with existing embedded systems. As a result, the user can implement path commands for the industrial machine 115 from remote locations.
- the network 130 can represent one or more networks connecting the remote device 105 , the industrial machine 115 , and the server 120 .
- the network 130 can be a public network, such as the Internet, or a private network such as a local area network (LAN) or a wide area network (WAN) network, or any combination thereof and can also include a public switched telephone network (PSTN) or integrated services for digital network (ISDN) sub-networks.
- PSTN public switched telephone network
- ISDN integrated services for digital network
- the network 130 can also be wired, such as an Ethernet network or a USB port, or can be wireless such as a cellular network including EDGE, 3G 4G, and LTE/LTE-A wireless cellular systems.
- the wireless network can also be Bluetooth, or any other wireless form of communication that is known.
- the network 130 can be an industrial network (e.g., CC-Link IE Field, Ethernet/IP, etc.) communicably coupling the interface 110 , displayed via the remote device 105 , and the server 120 .
- the interface 110 displayed via the remoted device 105 can be a human machine interface.
- the server 120 can be an IPC/PLC as would be understood by one or ordinary skill in the art.
- FIGS. 2A-2C depict exemplary interfaces 110 , wherein exemplary interfaces 110 can include results 205 , 210 , and 215 based on a first set of input conditions, a second set of input conditions, and a combination of the first and second set of input conditions, respectively.
- Each interface 110 can include a predetermined set of input options including max velocity (e.g., operation speed), max acceleration, max jerk, error margin, velocity limit (for each axis), torque limit (for each axis), jerk limit (for each axis), and servo response (for each axis).
- the torque limit can additionally include an acceleration limit for each acceleration because torque is equal to inertia multiplied by acceleration.
- the servo response can include a model gain where model gain is one parameter of a server amplifier and a dominant factor to servo response.
- FIG. 2A depicts an exemplary interface 110 displaying results 205 based on a first set of input conditions according to one or more aspects of the disclosed subject matter.
- the first set of input conditions includes max acceleration set at 40%.
- FIG. 2B depicts an exemplary interface 110 displaying results 210 based on a second set of input conditions according to one or more aspects of the disclosed subject matter.
- the second set of input conditions includes max acceleration set at 80%.
- FIG. 2C depicts an exemplary interface 110 displaying results 215 based on the first set and the second set of input conditions according to one or more aspects of the disclosed subject matter.
- the results 215 include a combination of the 40% max acceleration and the 80% max acceleration results for comparison, for example.
- the path command (e.g., as X-Y axis command data) can be transmitted to the automated factory machine 115 .
- the path command e.g., as X-Y axis command data
- Table I is an example of the X-Y axis command data, that can be sent to the industrial machine 115 . It should be appreciated that the rows can continue with additional destination points (e.g., set of coordinates) until the path command for each segment of the shape is complete.
- FIG. 3 depicts an exemplary implementation 300 of an optimal path command according to one or more aspects of the disclosed subject matter.
- the optimal path command can include various sections of the implementation including portions 305 , 310 , 315 , and 320 .
- portion 305 can be a sharp section of the shape which a small connecting angle.
- an arc with a small radius can be inserted without losing accuracy.
- Portion 310 can correspond to a straight segment or an arc segment. Based on servo-response and/or shape (e.g., radius of an arc), a command speed can be calculated for each portion 310 , wherein the command speed for each portion 310 satisfies a trajectory error, margin.
- shape e.g., radius of an arc
- Portion 315 can be positioned on either side of a portion 310 .
- portion 315 can be an interval of acceleration or deceleration on the ends of a straight segment (e.g., portion 310 ). Based on the direction of the path command, a portion 315 positioned before the portion 310 can be an acceleration interval. Additionally, a portion 315 positioned after the portion 310 can be a deceleration interval.
- Adjacent portions 320 can indicate a full segment, wherein the full segment can be associated with a predetermined time interval.
- X-Y axis command data can be based on time, as well as position, such that the path command can be instructed to travel between adjacent portions 320 in a predetermined amount of time.
- acceleration and/or jerk limits for both axes can be considered when making X-Y axis command data based on time, for example. By limiting the jerk) while continuing acceleration/deceleration, noise level and impact caused by changing axis direction can be reduced.
- FIG. 4 is an algorithmic flow chart of a method for path command generation according to one or more aspects of the disclosed subject matter.
- Input conditions can include max velocity (e.g., operation speed), max acceleration, max jerk, error margin, velocity limit (for each axis), torque limit (for each axis), jerk limit (for each axis), and servo response (for each axis).
- the torque limit can additionally include an acceleration limit for each acceleration because torque is equal to inertia multiplied by acceleration.
- the servo response can include a model gain where model gain is one parameter of a server amplifier and a dominant factor to servo response.
- the input conditions can be received via the interface 110 , for example.
- an optimum path command can be calculated based on the received input conditions.
- the path command can be simulated.
- the path command simulation can provide information to a user so the user can see a visual of the path command results.
- the simulation in S 415 may be options when a user changes input conditions in S 435 .
- cycle time and error can be calculated.
- Cycle time can be the average time for completing the path command.
- the cycle time can be the time period from the path command starting time to the path command ending time.
- results of the simulation can be displayed via the interface 110 , for example.
- the simulation results can include various information as illustrated in exemplary results 205 , 210 , and 215 as shown in FIGS. 2A, 2B , and 2 C, respectively.
- the path command it can be determined if the path command is acceptable. Determining if the path command is acceptable can be based on the simulation results displayed in S 425 , for example. A user may determine that the path command is not sufficient based on the results of the simulation, and the user may adjust the input conditions accordingly. If the path command is acceptable, then the process can end. For example, if the user is satisfied with either the result or one of options if available, the user can select it on the user interface 110 .
- the system 100 in response to receiving a selection of the preferred option via the user interface 110 , can transmit instructions to operate the one or more servo motors based on the selected simulation option (e.g., instructions can include how fast each servo motor should move along each segment (e.g., portions 305 , 310 , 315 )). However, if the path command is not acceptable, then input conditions can be changed in S 435 .
- one or more input conditions can be changed.
- the one or more input conditions can be changed when a user wants to adjust the path command.
- the process can return to S 410 to calculate the optimum path command based on the new input conditions.
- the simulate path command step S 415 may be optional because the user may have selected new input conditions that are within an error of the previous selection, and a new simulation does not need to be run as a result.
- the process may continue through S 420 , S 425 , and return to S 430 to determine if the path command is acceptable.
- any processes, descriptions or blocks in flowcharts can be understood as representing modules, segments or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process, and alternate implementations are included within the scope of the exemplary embodiments of the present advancements in which functions can be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending upon the functionality involved, as would be understood by those skilled in the art.
- the various elements, features, and processes described herein may be used independently of one another, or may be combined in various ways. All possible combinations and sub-combinations are intended to fall within the scope of this disclosure.
- a user cannot adjust the industrial machine 115 by changing more than three input conditions because the user may not anticipate the best combination of input conditions for a certain task. For example, this set-up may prevent a user from changing an input condition that has the biggest influence on the mechanical system, which may prevent damage to the industrial machine.
- the interface 110 can provide an opportunity for a user to preview the path command. Because the results of the simulation can be displayed for user selection, the user can pick the best option for their requirements. Additionally, updates to the input conditions can be changed in real time, thereby providing a quick turnaround for a user to see how different input conditions may affect the simulation. As a result, the user can select the best option and the path command data based on the selection can be transmitted (e.g., from any device (e.g., remote device 105 , server 120 ) displaying the interface, or from the server 120 after the selection occurs at the interface accessible via the remote device 105 ) to the industrial machine 315 .
- any device e.g., remote device 105 , server 120
- the interface 110 can display the energy consumption of the optimum path command with the smallest cycle time and the optimum path command with the smallest energy consumption when changing the input conditions, which can provide the user with even more specific information to assist in selecting the best path command option to meet their requirements.
- the server 120 includes a CPU 500 which performs one or more of the processes described above/below.
- the process data and instructions may be stored in memory 502 .
- These processes and instructions may also be stored on a storage medium disk 504 such as a hard drive (HDD) or portable storage medium or may be stored remotely.
- a storage medium disk 504 such as a hard drive (HDD) or portable storage medium or may be stored remotely.
- the claimed advancements are not limited by the form of the computer-readable media on which the instructions of the inventive process are stored.
- the instructions may be stored on CDs, DVDs, in FLASH memory, RAM, ROM, PROM, EPROM, EEPROM, hard disk or any other information processing device with which the server 120 (and/or the remote device 105 ) communicates, such as a server or computer.
- claimed advancements may be provided as a utility application, background daemon, or component of an operating system, or combination thereof, executing in conjunction with CPU 500 and an operating system such as Microsoft Windows, UNIX, Solaris, LINUX, Apple MAC-OS and other systems known to those skilled in the art.
- an operating system such as Microsoft Windows, UNIX, Solaris, LINUX, Apple MAC-OS and other systems known to those skilled in the art.
- a processing circuit includes a particularly programmed processor, for example, processor (CPU) 500 , as shown in FIG. 5 .
- a processing circuit also includes devices such as an application specific integrated circuit (ASIC) and conventional circuit components arranged to perform the recited functions.
- ASIC application specific integrated circuit
- the server 120 (and/or the remote device 105 ) includes a CPU 500 which performs the processes described above.
- the server 120 (and/or the remote device 105 ) may be a general-purpose computer or a particular, special-purpose machine.
- the server 110 (and/or the remote device 105 ) becomes a particular, special-purpose machine when the processor 500 is programmed to perform all or part of path command generation (and in particular, any of the processes discussed with reference to FIGS. 3 and 4 ).
- CPU 500 may be implemented on an FPGA, ASIC, PLD or using discrete logic circuits, as one of ordinary skill in the art would recognize. Further, CPU 500 may be implemented as multiple processors cooperatively working in parallel to perform the instructions of the inventive processes described above.
- the server 120 (and/or the remote device 105 ) in FIG. 5 also includes a network controller 506 , such as an Intel Ethernet PRO network interface card from Intel Corporation of America, for interfacing with network 130 .
- the network 130 can be a public network, such as the Internet, or a private network such as an LAN or WAN network, or any combination thereof and can also include PSTN or ISDN sub-networks.
- the network 130 can also be wired, such as an Ethernet network, or can be wireless such as a cellular network including EDGE, 3G and 4G wireless cellular systems.
- the wireless network can also be WiFi, Bluetooth, or any other wireless form of communication that is known.
- the server 120 (and/or the remote device 105 ) further includes a display controller 508 , such as a graphics card or graphics adaptor for interfacing with display 510 , such as a monitor.
- a display controller 508 such as a graphics card or graphics adaptor for interfacing with display 510 , such as a monitor.
- a general purpose I/O interface 512 interfaces with a keyboard and/or mouse 514 as well as a touch screen panel 516 on or separate from display 510 .
- General purpose I/O interface also connects to a variety of peripherals 518 including printers and scanners.
- a sound controller 520 is also provided in the server 120 (and/or the remote device 105 ) to interface with speakers/microphone 522 thereby providing sounds and/or music.
- the general purpose storage controller 524 connects the storage medium disk 504 with communication bus 526 , which may be an ISA, EISA, VESA, PCI, or similar, for interconnecting all of the components of the server 120 (and/or the remote device 105 ).
- communication bus 526 may be an ISA, EISA, VESA, PCI, or similar, for interconnecting all of the components of the server 120 (and/or the remote device 105 ).
- a description of the general features and functionality of the display 510 , keyboard and/or mouse 514 , as well as the display controller 508 , storage controller 524 , network controller 506 , sound controller 520 , and general purpose I/O interface 512 is omitted herein for brevity as these features are known.
- circuitry configured to perform features described herein may be implemented in multiple circuit units (e.g., chips), or the features may be combined in circuitry on a single chipset.
- the functions and features described herein may also be executed by various distributed components of a system.
- one or more processors may execute these system functions, wherein the processors are distributed across multiple components communicating in a network.
- the distributed components may include one or more client and server machines, which may share processing, in addition to various human interface and communication devices (e.g., display monitors, smart phones, tablets, personal digital assistants (PDAs)).
- the network may be a private network, such as a LAN or WAN, or may be a public network, such as the Internet. Input to the system may be received via direct user input and received remotely either in real-time or as a batch process. Additionally, some implementations may be performed on modules or hardware not identical to those described. Accordingly, other implementations are within the scope that may be claimed.
Abstract
Description
- The “background” description provided, herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description which may not otherwise qualify as prior art at the time of filing, are neither expressly or impliedly admitted as prior art against the present invention.
- Computing a path command for an industrial machine is known to have various difficulties in selecting the best input conditions for the task. For example, a larger operation speed correspond to a larger path error margin. However, when reducing operating speed to improve path error margin, the cycle time increases. In general, modifying the path command with specific conditions is difficult because many modifications, and even slight modifications, can violate other aspects of the path command generation due to limitations of the industrial machine, for example.
- The foregoing paragraphs have been provided by way of general introduction, and are not intended to limit the scope of the following claims. The described embodiments, together with further advantages, will be best understood by reference to the following detailed description taken in conjunction with the accompanying drawings.
- According to embodiments of the disclosed subject matter, a system for path command generation includes an industrial machine, an interface accessible via a remote device, and a server communicably coupled to the industrial machine and the remote device via a network. The server includes processing circuitry configured to calculate an optimum path command, simulate the optimum path command based on the calculation of the optimum path command, calculate a cycle time and error of the path command, determine if the path command is acceptable, and transmit path command data to the industrial machine in response to the acceptable path command being selected.
- A more complete appreciation of the disclosure and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein:
-
FIG. 1 depicts an exemplary overview of a path command generation system according to one or more aspects of the disclosed subject matter; -
FIG. 2A depicts an exemplary interface displaying results based on a first set of input conditions according to one or more aspects of the disclosed subject matter; -
FIG. 2B depicts an exemplary interface displaying results based on a second set of input conditions according to one or more aspects of the disclosed subject matter; -
FIG. 2C depicts an exemplary interface displaying results based on the first set and the second set of input conditions according to one or more aspects of the disclosed subject matter; -
FIG. 3 depicts an exemplary implementation of an optimal path command according to one or more aspects of the disclosed subject matter; -
FIG. 4 is an algorithmic flow chart of a method for path command, generation according to one or more aspects of the disclosed subject matter; and -
FIG. 5 is a hardware block diagram of a server according to one or more exemplary aspects of the disclosed subject matter. - The description set forth below in connection with the appended drawings is intended as a description of various embodiments of the disclosed subject matter and is not necessarily intended to represent the only embodiment(s). In certain instances, the description includes specific details for the purpose of providing an understanding of the disclosed subject matter. However, it will be apparent to those skilled in the art that embodiments may be practiced without these specific details. In some instances, well-known structures and components may be shown in block diagram form in order to avoid obscuring the concepts of the disclosed subject matter.
- Reference throughout the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, characteristic, operation, or function described in connection with an embodiment is included in at least one embodiment of the disclosed subject matter. Thus, any appearance of the phrases “in one embodiment” or “in an embodiment” in the specification is not necessarily referring to the same embodiment. Further, the particular features, structures, characteristics, operations, or functions may be combined in any suitable manner in one or more embodiments. Further, it is intended that embodiments of the disclosed subject matter can and do cover modifications and variations of the described embodiments.
- It must be noted that, as used in the specification and the appended claims, the singular forms “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. That is, unless clearly specified otherwise, as used herein the words “a” and “an” and the like carry the meaning of “one or more.” Additionally, it is to be understood that terms such as “left,” “right,” “top,” “bottom,” “front,” “rear,” “side,” “height,” “length,” “width,” “upper,” “lower,” “interior,” “exterior,” “inner,” “outer,” and the like that may be used herein, merely describe points of reference and do not necessarily limit embodiments of the disclosed subject matter to any particular orientation or configuration. Furthermore, terms such as “first,” “second,” “third,” etc., merely identify one of a number of portions, components, points of reference, operations and/or functions as described herein, and likewise do not necessarily limit embodiments of the disclosed subject matter to any particular configuration or orientation.
- Referring now to the drawings, wherein like reference numerals designate identical or corresponding parts throughout the several views,
FIG. 1 depicts an exemplary overview of a path command generation system 100 (herein referred to as system 100) according to one or more aspects of the disclosed subject matter. As will be discussed in more detail, one or more methods according to various embodiments of the disclosed subject matter can be implemented using thesystem 100 or portions thereof. In other words,system 100, or portions thereof, can perform the functions or operations described herein regarding the various methods or portions thereof (including those implemented using a non-transitory computer-readable medium storing a program that, when executed, configures or causes a computer to perform or cause performance of the described method(s) or portions thereof). - The
system 100 can include aremote device 105 including aninterface 110, anindustrial machine 115, and aserver 120 communicably coupled via anetwork 130. - Generally speaking, the
system 100 can generate an optimal path command which can be implemented by theindustrial machine 115. The optimization can include considering the trade-off between reducing a trajectory error and cycle time. - More specifically, an optimal path command can be generated including providing the shortest cycle time, optimizing an error margin to a user's requirements, and considering the physical boundaries of the
industrial machine 115 on which the path command will be implemented (e.g., limited by acceleration and jerk). For example, various input conditions can be received via theinterface 110. The remote device 105 (and/or the server 120) can calculate and simulate an optimal path command based on the input conditions. The optimal path command can then be implemented via theindustrial machine 115. - Further, the
system 100 can include one or more servo motors and a user interface (e.g., user interface 110) to optimize movement of the <one or more servo motors so that industrial machines (e.g., industrial machine 115), which are driven by the one or more servo motors, can run under user's requirements (e.g., acceptable trajectory error while the machine runs, acceptable noise made by the machine, acceptable damage on the machine, acceptable total operating time, etc.). - The
system 100 can include predetermined shape data (e.g., a set of coordinates that outline a shape in segments) and displays the user interface based on that shape, wherein the user interface includes a plurality of input conditions including setting a maximum acceleration, as well as other input conditions described herein. - The
system 100 can run a simulation based on the input conditions entered in the user interface, which simulates the results of operating the one or more servo motors to move along the segments, wherein the speed of each servo motor moving along each segment satisfies a predetermined trajectory error margin with or without consideration of a constraint of the industrial machines, which are driven by the one or more servo motors. - The simulation may generate a plurality of options for the user (e.g., results simulated with values 5% more or less than the value of one or more predetermined input conditions). It should be appreciated that “5%” is an example and other ranges could be used.
- If the user is satisfied with either the result or one of the options available, the user can select it on the
interface 110. Thesystem 100, in response to receiving a selection of the preferred option via the user interface. can transmit instructions to operate the one or more servo motors based on the selected simulation option (e.g., instructions can include how fast each servo motor should move along each segment). - The output of the
system 100 can be one or more path or trajectory commands corresponding to a series of destination points (e.g., X-Y coordinates) for the servo motor. Additionally, the time it takes to move between destination points can be the same (e.g., 1 second) even though the distances can be different. This sets the speed of the servo motor. - If the user is not satisfied with the result or any of options if available, the user can have the system run a simulation based on different input parameters which can be entered by the user in the user interface. Alternatively, or additionally. if the user is not satisfied with the result or any of the options available in terms of constraints of the machines, the user can redesign the machines so that the machines can operate under the result or one of options that correspond with the user's input conditions.
- In other words, one or more output conditions (e.g., cycle time, error, etc.) can be calculated for the industrial machine, wherein the one or more output conditions are calculated based on values of input parameters (e.g., jerk, acceleration, velocity, etc.). The industrial machine implements a path command based on the one or more output conditions. Additionally, the one or more output conditions can be calculated for the industrial machine to implement an alternative path command based on alternative values of the input parameters. After calculating the one or more output conditions for each set of input parameters, the one or more output conditions can be selected, wherein the one or more output conditions can be selected based on the calculation for each set of input parameters. A user can select among the input parameters and set the values of the input parameters directly or indirectly. That is, the user can select values (and/or alternative values) for the input parameters for path commands, which are displayed in the user interface. Additionally, the alternative values may be set automatically based on the initial values for the input parameters. Or, the user can select output conditions in the user interface. As a result, the values of the input parameters corresponding to the selected output conditions can be selected. Once the one or more output conditions have been selected, command data corresponding to the path command can be transmitted to the industrial machine, wherein the industrial machine can implement the path command based on the selected output condition.
- The
system 100 can be applicable to industrial machines, such as laser cutters, which are driven by the one or more servo motors. - The
remote device 105 can represent one or more remote devices connected to theindustrial machine 115 and theserver 120 via thenetwork 130. Theremote device 105 can be a smart phone, a computer, a laptop, a tablet, a PDA, and the like. Theremote device 105 can include a front end application as aninterface 110, for example, as further described inFIGS. 2A-2C . Theinterface 110 can receive various input conditions from a user. Theinterface 110 can additionally display the results of a simulation of a path command generated based on the input conditions. Based on the simulation results displayed via theinterface 110, the user can provide input that changes the input conditions. When the user is satisfied with the results of the simulation displayed via theinterface 110, the path command (e.g., as X-Y axis command data) can be transmitted to theautomated factory machine 115. Theremote device 105 can include processing circuitry to independently operate and/or assist in operating thesystem 100. - The
industrial machine 115 can represent one or more industrial machines connected to theremote device 105 and theserver 120 via thenetwork 130. In one or more embodiments, theindustrial machine 115 can include one or more servo motors. Theindustrial machine 115 can receive a path command (e.g., from one or more of the remote device and the server 120). Theindustrial machine 115 can receive the path command as X-Y axis command data, for example, wherein the path command as X-Y axis command data can control the position and speed of the one or more servo motors, thereby implementing the received path command. In one or more embodiments, theindustrial machine 115 can be a laser cutter driven by one or more servo motors. In other words, the movement of the servo motors of theindustrial machine 115 can be optimized so that theindustrial machine 115, which is driven by the one or more servo motors, can run under user's requirements (e.g., acceptable trajectory error occurred while the machine runs, acceptable noise made by the machine, acceptable damage on the machine, acceptable total operating time, etc.). - The
server 120 can represent one or more servers connected to theremote device 105 and theindustrial machine 115 via thenetwork 130. Theserver 120 can include processing circuitry to perform various processing for thesystem 100 including receiving the input conditions frominterface 110 entered via theremote device 105. Alternatively, theserver 120 can include theinterface 110 and receive the input conditions directly when the user enters the input conditions via theinterface 110. Further, theserver 120 can calculate the path command based on the input conditions; as well as simulate the path command. Theserver 120 can then transmit the results of the simulation to theremote device 105, for example, to be displayed in theinterface 110. Alternatively, theserver 120 can display the simulation results locally via theinterface 110. Theserver 120 can additionally generate and transmit the path command data (e.g., X-Y axis command data) to theautomated factory machine 115 so theautomated factory machine 115 can implement the path command. Theserver 110 can also take advantage of Edge Computing to prevent limitations associated with existing embedded systems. As a result, the user can implement path commands for theindustrial machine 115 from remote locations. - The
network 130 can represent one or more networks connecting theremote device 105, theindustrial machine 115, and theserver 120. Thenetwork 130 can be a public network, such as the Internet, or a private network such as a local area network (LAN) or a wide area network (WAN) network, or any combination thereof and can also include a public switched telephone network (PSTN) or integrated services for digital network (ISDN) sub-networks. Thenetwork 130 can also be wired, such as an Ethernet network or a USB port, or can be wireless such as a cellular network including EDGE, 3G 4G, and LTE/LTE-A wireless cellular systems. The wireless network can also be Bluetooth, or any other wireless form of communication that is known. - In one or more embodiment, the
network 130 can be an industrial network (e.g., CC-Link IE Field, Ethernet/IP, etc.) communicably coupling theinterface 110, displayed via theremote device 105, and theserver 120. Additionally, theinterface 110 displayed via theremoted device 105 can be a human machine interface. Further, theserver 120 can be an IPC/PLC as would be understood by one or ordinary skill in the art. -
FIGS. 2A-2C depictexemplary interfaces 110, whereinexemplary interfaces 110 can includeresults - Each
interface 110 can include a predetermined set of input options including max velocity (e.g., operation speed), max acceleration, max jerk, error margin, velocity limit (for each axis), torque limit (for each axis), jerk limit (for each axis), and servo response (for each axis). The torque limit can additionally include an acceleration limit for each acceleration because torque is equal to inertia multiplied by acceleration. Additionally, the servo response can include a model gain where model gain is one parameter of a server amplifier and a dominant factor to servo response. - More specifically,
FIG. 2A depicts anexemplary interface 110 displayingresults 205 based on a first set of input conditions according to one or more aspects of the disclosed subject matter. The first set of input conditions includes max acceleration set at 40%. -
FIG. 2B depicts anexemplary interface 110 displayingresults 210 based on a second set of input conditions according to one or more aspects of the disclosed subject matter. The second set of input conditions includes max acceleration set at 80%. -
FIG. 2C depicts anexemplary interface 110 displayingresults 215 based on the first set and the second set of input conditions according to one or more aspects of the disclosed subject matter. Theresults 215 include a combination of the 40% max acceleration and the 80% max acceleration results for comparison, for example. - Additionally, when the user is satisfied with the results of the simulation displayed via, the
interface 110, the path command (e.g., as X-Y axis command data) can be transmitted to theautomated factory machine 115. For example, Table I is an example of the X-Y axis command data, that can be sent to theindustrial machine 115. It should be appreciated that the rows can continue with additional destination points (e.g., set of coordinates) until the path command for each segment of the shape is complete. -
TABLE 1 Position Position Velocity Velocity Command X Command Y Command X Command Y Time [s] [m] [m] [m/s] [m/s] 0 0 0 0 0 0.000889 1.27E−07 3.88E−08 7.13E−05 2.18E−05 0.001778 4.05E−06 1.24E−06 0.006484 0.001985 0.002667 9.88E−06 3.02E−06 0.007838 0.002399 0.003556 2.03E−05 6.20E−06 0.012969 0.003969 0.004444 3.67E−05 1.12E−05 0.019667 0.006019 0.005333 6.08E−05 1.86E−05 0.028218 0.008636 . . . . . . . . . . . . . . . -
FIG. 3 depicts anexemplary implementation 300 of an optimal path command according to one or more aspects of the disclosed subject matter. The optimal path command can include various sections of theimplementation including portions portion 305 can be a sharp section of the shape which a small connecting angle. For portions of the path command with a sharp shape and small connecting angle (e.g., portion 305), an arc with a small radius can be inserted without losing accuracy. -
Portion 310 can correspond to a straight segment or an arc segment. Based on servo-response and/or shape (e.g., radius of an arc), a command speed can be calculated for eachportion 310, wherein the command speed for eachportion 310 satisfies a trajectory error, margin. -
Portion 315 can be positioned on either side of aportion 310. For example,portion 315 can be an interval of acceleration or deceleration on the ends of a straight segment (e.g., portion 310). Based on the direction of the path command, aportion 315 positioned before theportion 310 can be an acceleration interval. Additionally, aportion 315 positioned after theportion 310 can be a deceleration interval. -
Adjacent portions 320 can indicate a full segment, wherein the full segment can be associated with a predetermined time interval. In other words, X-Y axis command data can be based on time, as well as position, such that the path command can be instructed to travel betweenadjacent portions 320 in a predetermined amount of time. Further, acceleration and/or jerk limits for both axes can be considered when making X-Y axis command data based on time, for example. By limiting the jerk) while continuing acceleration/deceleration, noise level and impact caused by changing axis direction can be reduced. -
FIG. 4 is an algorithmic flow chart of a method for path command generation according to one or more aspects of the disclosed subject matter. - In S405, input conditions can be received. Input conditions can include max velocity (e.g., operation speed), max acceleration, max jerk, error margin, velocity limit (for each axis), torque limit (for each axis), jerk limit (for each axis), and servo response (for each axis). The torque limit can additionally include an acceleration limit for each acceleration because torque is equal to inertia multiplied by acceleration. Additionally, the servo response can include a model gain where model gain is one parameter of a server amplifier and a dominant factor to servo response. The input conditions can be received via the
interface 110, for example. - In S410, an optimum path command can be calculated based on the received input conditions.
- In S415, the path command can be simulated. The path command simulation can provide information to a user so the user can see a visual of the path command results. The simulation in S415 may be options when a user changes input conditions in S435.
- In S420, cycle time and error can be calculated. Cycle time can be the average time for completing the path command. In other words, the cycle time can be the time period from the path command starting time to the path command ending time.
- In S425, results of the simulation (including the cycle time and error) can be displayed via the
interface 110, for example. The simulation results can include various information as illustrated inexemplary results FIGS. 2A, 2B , and 2C, respectively. - In S430, it can be determined if the path command is acceptable. Determining if the path command is acceptable can be based on the simulation results displayed in S425, for example. A user may determine that the path command is not sufficient based on the results of the simulation, and the user may adjust the input conditions accordingly. If the path command is acceptable, then the process can end. For example, if the user is satisfied with either the result or one of options if available, the user can select it on the
user interface 110. Thesystem 100, in response to receiving a selection of the preferred option via theuser interface 110, can transmit instructions to operate the one or more servo motors based on the selected simulation option (e.g., instructions can include how fast each servo motor should move along each segment (e.g.,portions - In S435, one or more input conditions can be changed. The one or more input conditions can be changed when a user wants to adjust the path command. After changing the one or more input conditions, the process can return to S410 to calculate the optimum path command based on the new input conditions. The simulate path command step S415 may be optional because the user may have selected new input conditions that are within an error of the previous selection, and a new simulation does not need to be run as a result. The process may continue through S420, S425, and return to S430 to determine if the path command is acceptable.
- In the above description of
FIG. 4 , any processes, descriptions or blocks in flowcharts can be understood as representing modules, segments or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process, and alternate implementations are included within the scope of the exemplary embodiments of the present advancements in which functions can be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending upon the functionality involved, as would be understood by those skilled in the art. The various elements, features, and processes described herein may be used independently of one another, or may be combined in various ways. All possible combinations and sub-combinations are intended to fall within the scope of this disclosure. - Additionally, in one or more embodiments, a user cannot adjust the
industrial machine 115 by changing more than three input conditions because the user may not anticipate the best combination of input conditions for a certain task. For example, this set-up may prevent a user from changing an input condition that has the biggest influence on the mechanical system, which may prevent damage to the industrial machine. - Further advantages include improving cycle times while minimizing error margin. For example, even when servo-response is not high, the margin of error can be satisfied by optimal command. By adding jerk limitations (while continuing acceleration), the
system 100 can reduce noise level and impact caused by changing axis direction (e.g., from a straight line segment to an arc segment) as shown inFIG. 3 . - Additionally, the
interface 110 can provide an opportunity for a user to preview the path command. Because the results of the simulation can be displayed for user selection, the user can pick the best option for their requirements. Additionally, updates to the input conditions can be changed in real time, thereby providing a quick turnaround for a user to see how different input conditions may affect the simulation. As a result, the user can select the best option and the path command data based on the selection can be transmitted (e.g., from any device (e.g.,remote device 105, server 120) displaying the interface, or from theserver 120 after the selection occurs at the interface accessible via the remote device 105) to theindustrial machine 315. - Further, the
interface 110 can display the energy consumption of the optimum path command with the smallest cycle time and the optimum path command with the smallest energy consumption when changing the input conditions, which can provide the user with even more specific information to assist in selecting the best path command option to meet their requirements. - Next, a hardware description of a computer/device (such as the server 120) according to exemplary embodiments is described with reference to
FIG. 5 . The hardware description described herein can also be a hardware description of the processing circuitry. InFIG. 5 , the server 120 (and/or the remote device 105) includes aCPU 500 which performs one or more of the processes described above/below. The process data and instructions may be stored inmemory 502. These processes and instructions may also be stored on astorage medium disk 504 such as a hard drive (HDD) or portable storage medium or may be stored remotely. Further, the claimed advancements are not limited by the form of the computer-readable media on which the instructions of the inventive process are stored. For example, the instructions may be stored on CDs, DVDs, in FLASH memory, RAM, ROM, PROM, EPROM, EEPROM, hard disk or any other information processing device with which the server 120 (and/or the remote device 105) communicates, such as a server or computer. - Further, the claimed advancements may be provided as a utility application, background daemon, or component of an operating system, or combination thereof, executing in conjunction with
CPU 500 and an operating system such as Microsoft Windows, UNIX, Solaris, LINUX, Apple MAC-OS and other systems known to those skilled in the art. - The hardware elements in order to achieve the server 120 (and/or the remote device 105) may be realized by various circuitry elements. Further, each of the functions of the above described embodiments may be implemented by circuitry, which includes one or more processing circuits. A processing circuit includes a particularly programmed processor, for example, processor (CPU) 500, as shown in
FIG. 5 . A processing circuit also includes devices such as an application specific integrated circuit (ASIC) and conventional circuit components arranged to perform the recited functions. - In
FIG. 5 , the server 120 (and/or the remote device 105) includes aCPU 500 which performs the processes described above. The server 120 (and/or the remote device 105) may be a general-purpose computer or a particular, special-purpose machine. In one embodiment, the server 110 (and/or the remote device 105) becomes a particular, special-purpose machine when theprocessor 500 is programmed to perform all or part of path command generation (and in particular, any of the processes discussed with reference toFIGS. 3 and 4 ). - Alternatively, or additionally, the
CPU 500 may be implemented on an FPGA, ASIC, PLD or using discrete logic circuits, as one of ordinary skill in the art would recognize. Further,CPU 500 may be implemented as multiple processors cooperatively working in parallel to perform the instructions of the inventive processes described above. - The server 120 (and/or the remote device 105) in
FIG. 5 also includes anetwork controller 506, such as an Intel Ethernet PRO network interface card from Intel Corporation of America, for interfacing withnetwork 130. As can be appreciated, thenetwork 130 can be a public network, such as the Internet, or a private network such as an LAN or WAN network, or any combination thereof and can also include PSTN or ISDN sub-networks. Thenetwork 130 can also be wired, such as an Ethernet network, or can be wireless such as a cellular network including EDGE, 3G and 4G wireless cellular systems. The wireless network can also be WiFi, Bluetooth, or any other wireless form of communication that is known. - The server 120 (and/or the remote device 105) further includes a
display controller 508, such as a graphics card or graphics adaptor for interfacing withdisplay 510, such as a monitor. A general purpose I/O interface 512 interfaces with a keyboard and/ormouse 514 as well as atouch screen panel 516 on or separate fromdisplay 510. General purpose I/O interface also connects to a variety ofperipherals 518 including printers and scanners. - A
sound controller 520 is also provided in the server 120 (and/or the remote device 105) to interface with speakers/microphone 522 thereby providing sounds and/or music. - The general
purpose storage controller 524 connects thestorage medium disk 504 withcommunication bus 526, which may be an ISA, EISA, VESA, PCI, or similar, for interconnecting all of the components of the server 120 (and/or the remote device 105). A description of the general features and functionality of thedisplay 510, keyboard and/ormouse 514, as well as thedisplay controller 508,storage controller 524,network controller 506,sound controller 520, and general purpose I/O interface 512 is omitted herein for brevity as these features are known. - The exemplary circuit elements described in the context of the present disclosure may be replaced with other elements and structured differently than the examples provided herein. Moreover, circuitry configured to perform features described herein may be implemented in multiple circuit units (e.g., chips), or the features may be combined in circuitry on a single chipset.
- The functions and features described herein may also be executed by various distributed components of a system. For example, one or more processors may execute these system functions, wherein the processors are distributed across multiple components communicating in a network. The distributed components may include one or more client and server machines, which may share processing, in addition to various human interface and communication devices (e.g., display monitors, smart phones, tablets, personal digital assistants (PDAs)). The network may be a private network, such as a LAN or WAN, or may be a public network, such as the Internet. Input to the system may be received via direct user input and received remotely either in real-time or as a batch process. Additionally, some implementations may be performed on modules or hardware not identical to those described. Accordingly, other implementations are within the scope that may be claimed.
- Having now described embodiments of the disclosed subject matter, it should be apparent to those skilled in the art that the foregoing is merely illustrative and not limiting, having been presented by way of example only. Thus, although particular configurations have been discussed herein, other configurations can also be employed. Numerous modifications and other embodiments (e.g., combinations, rearrangements, etc.) are enabled by the present disclosure and are within the scope of one of ordinary skill in the art and are contemplated as falling within the scope of the disclosed subject matter and any equivalents thereto. Features of the disclosed embodiments can be combined, rearranged, omitted, etc., within the scope of the invention to produce additional embodiments. Furthermore, certain features may sometimes be used to advantage without a corresponding use of other features. Accordingly, Applicant(s) intend(s) to embrace all such alternatives, modifications, equivalents, and variations that are within the spirit and scope of the disclosed subject matter.
Claims (27)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/827,780 US10310473B1 (en) | 2017-11-30 | 2017-11-30 | Systems and methods for path command generation |
PCT/JP2018/031755 WO2019106899A1 (en) | 2017-11-30 | 2018-08-28 | Trajectory command generation system, trajectory command generation method, and interface |
JP2019512850A JP6545421B1 (en) | 2017-11-30 | 2018-08-28 | Trajectory command generation system, trajectory command generation method and interface |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/827,780 US10310473B1 (en) | 2017-11-30 | 2017-11-30 | Systems and methods for path command generation |
Publications (2)
Publication Number | Publication Date |
---|---|
US20190163156A1 true US20190163156A1 (en) | 2019-05-30 |
US10310473B1 US10310473B1 (en) | 2019-06-04 |
Family
ID=66634040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/827,780 Active US10310473B1 (en) | 2017-11-30 | 2017-11-30 | Systems and methods for path command generation |
Country Status (3)
Country | Link |
---|---|
US (1) | US10310473B1 (en) |
JP (1) | JP6545421B1 (en) |
WO (1) | WO2019106899A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102022134609A1 (en) | 2022-09-21 | 2023-08-10 | Scanlab Gmbh | Process for time optimization of laser processing of an object |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5005135A (en) * | 1989-03-22 | 1991-04-02 | Cincinnati Milacron, Inc. | Dynamic correction of servo following errors in a computer-numerically controlled system and fixed cycle utilizing same |
US5140236A (en) * | 1988-10-24 | 1992-08-18 | Fanuc Ltd. | Spline interpolation method |
US7139244B1 (en) * | 2001-09-21 | 2006-11-21 | Bellsouth Ip Corporation | System and method for remotely inventorying multiplexing element switching fabric |
US8050800B2 (en) * | 2007-10-21 | 2011-11-01 | Ge Intelligent Platforms, Inc. | Method and system for meeting end conditions in a motion control system |
US20120007536A1 (en) * | 2010-07-12 | 2012-01-12 | Fanuc Corporation | Tool path display apparatus with deceleration factor identification means for machine tool |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4841448A (en) * | 1987-09-01 | 1989-06-20 | Flight Dynamics, Inc. | Windshear flight recovery command system |
US4972321A (en) * | 1989-04-24 | 1990-11-20 | Honeywell Inc. | Lateral axis rollout control for aircraft |
US20050165590A1 (en) | 2004-01-23 | 2005-07-28 | Yuhong Huang | System and method for virtual laser marking |
JP2009048396A (en) | 2007-08-20 | 2009-03-05 | Koyo Electronics Ind Co Ltd | Simulator of motor motion |
US20090089234A1 (en) | 2007-09-28 | 2009-04-02 | Rockwell Automation Technologies, Inc. | Automated code generation for simulators |
JP5951200B2 (en) | 2010-09-09 | 2016-07-13 | Dmg森精機株式会社 | Processing related data processing system |
JP5149421B2 (en) | 2011-05-20 | 2013-02-20 | ファナック株式会社 | Numerical control device having machining time prediction unit and machining error prediction unit |
US10360316B2 (en) | 2012-12-21 | 2019-07-23 | Rockwell Automation Technologies, Inc. | Integration of simulation of a machine for industrial automation |
-
2017
- 2017-11-30 US US15/827,780 patent/US10310473B1/en active Active
-
2018
- 2018-08-28 WO PCT/JP2018/031755 patent/WO2019106899A1/en active Application Filing
- 2018-08-28 JP JP2019512850A patent/JP6545421B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5140236A (en) * | 1988-10-24 | 1992-08-18 | Fanuc Ltd. | Spline interpolation method |
US5005135A (en) * | 1989-03-22 | 1991-04-02 | Cincinnati Milacron, Inc. | Dynamic correction of servo following errors in a computer-numerically controlled system and fixed cycle utilizing same |
US7139244B1 (en) * | 2001-09-21 | 2006-11-21 | Bellsouth Ip Corporation | System and method for remotely inventorying multiplexing element switching fabric |
US8050800B2 (en) * | 2007-10-21 | 2011-11-01 | Ge Intelligent Platforms, Inc. | Method and system for meeting end conditions in a motion control system |
US20120007536A1 (en) * | 2010-07-12 | 2012-01-12 | Fanuc Corporation | Tool path display apparatus with deceleration factor identification means for machine tool |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102022134609A1 (en) | 2022-09-21 | 2023-08-10 | Scanlab Gmbh | Process for time optimization of laser processing of an object |
DE102022134609A9 (en) | 2022-09-21 | 2023-10-12 | Scanlab Gmbh | Method for optimizing the time of laser processing of an object |
Also Published As
Publication number | Publication date |
---|---|
WO2019106899A1 (en) | 2019-06-06 |
JP6545421B1 (en) | 2019-07-17 |
JPWO2019106899A1 (en) | 2019-12-12 |
US10310473B1 (en) | 2019-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210183166A1 (en) | Parameter configuration method, apparatus, and device for three-dimensional face model, and storage medium | |
WO2012001167A4 (en) | Method and device for editing workspace data objects | |
WO2013143372A1 (en) | Operation method of selection cursor, method for displaying object and terminal device | |
CN110941750B (en) | Data linkage method and related device | |
EP4047456A1 (en) | Method and device for predicting drawing point of stylus pen | |
CN107944098B (en) | BIM technology-based hyperbolic plate automatic optimization method and system | |
CN111563461B (en) | Cleaning path acquisition method and device for cleaning equipment and storage medium | |
US20130083694A1 (en) | Setting method of field device and setting system of field device | |
EP3274802A1 (en) | Dynamically merging multiple screens into one view port | |
US10310473B1 (en) | Systems and methods for path command generation | |
US20170153864A1 (en) | Synchronization Object Determining Method, Apparatus, and System | |
US20220297001A1 (en) | Server, processing system, processing method, and program | |
CN103473041A (en) | Visualized data processing method and system | |
KR20220032533A (en) | Sensing effect test method, apparatus, device, storage medium, computer program and test system | |
CN105607800A (en) | Method and device for input display of terminal screen | |
CN109634428A (en) | Electronic equipment, feedback prompts method, apparatus and terminal device | |
JP6290029B2 (en) | Production control support device, production control support method and program | |
JP6287861B2 (en) | Information processing apparatus, information processing method, and program storage medium | |
CN111737636B (en) | Path curve generation method, device, computer equipment and storage medium | |
CN114880061B (en) | Page component processing method and device, electronic equipment and medium | |
EP4120120A1 (en) | Method and apparatus for obtaining cleaning path of cleaning device, and storage medium | |
CN110750536B (en) | Vibration noise smoothing method and system for attitude time series data | |
US20190163166A1 (en) | Information processing device | |
US20190073835A1 (en) | Three-dimensional model cutting method and electronic apparatus | |
US20240045442A1 (en) | Method for controlling mobile robots |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MITSUBISHI ELECTRIC CORPORATION, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MARUSHITA, YOSHIHIRO;REEL/FRAME:044265/0577 Effective date: 20171129 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |