WO2014116360A1 - Position control for a positioning system comprising larger scale and smaller scale positioning mechanisms - Google Patents

Position control for a positioning system comprising larger scale and smaller scale positioning mechanisms Download PDF

Info

Publication number
WO2014116360A1
WO2014116360A1 PCT/US2013/074450 US2013074450W WO2014116360A1 WO 2014116360 A1 WO2014116360 A1 WO 2014116360A1 US 2013074450 W US2013074450 W US 2013074450W WO 2014116360 A1 WO2014116360 A1 WO 2014116360A1
Authority
WO
WIPO (PCT)
Prior art keywords
positioning mechanism
work space
larger scale
smaller scale
scale positioning
Prior art date
Application number
PCT/US2013/074450
Other languages
French (fr)
Inventor
Philip L. Freeman
Original Assignee
The Boeing Company
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by The Boeing Company filed Critical The Boeing Company
Publication of WO2014116360A1 publication Critical patent/WO2014116360A1/en

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D3/00Control of position or direction
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical 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/19Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • G05B19/27Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an absolute digital measuring device
    • G05B19/29Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an absolute digital measuring device for point-to-point control
    • G05B19/291Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an absolute digital measuring device for point-to-point control the positional error is used to control continuously the servomotor according to its magnitude
    • G05B19/298Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an absolute digital measuring device for point-to-point control the positional error is used to control continuously the servomotor according to its magnitude with a combination of feedback covered by G05B19/293 - G05B19/296
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40297Macro manipulator and microhand, distributed positioning

Definitions

  • An automated positioning system may be used to perform a variety of manufacturing and other tasks.
  • the positioning system may include a tool attached to a computer controlled positioning mechanism.
  • the positioning mechanism may be configured to move the tool to various positions in a work space.
  • the positioning mechanism may be controlled to move the tool to various positions in the work space to perform various operations on a workpiece in the work space.
  • a robotic arm is one example of a positioning mechanism that may be used in an automated positioning system.
  • Direct digital manufacturing also may be referred to as additive manufacturing, additive free-form fabrication, solid free-form fabrication, rapid prototyping, layered manufacturing, or three-dimensional printing.
  • Direct digital manufacturing machines may be used to produce three- dimensional solid objects from three-dimensional digital models of the objects. To produce an object, the direct digital manufacturing machine may lay down successive layers of liquid, powder, or sheet material corresponding to virtual cross sections from the digital model of the object. The layers are joined together or fused automatically to create the final object. Objects of almost any shape or having any geometric feature may be made using a direct digital manufacturing
  • a direct digital manufacturing machine also may be referred to as a three-dimensional printer.
  • Current direct digital manufacturing machines may have working volumes of approximately one cubic meter. It may be desirable to have direct digital manufacturing machines with larger working volumes to produce larger objects. For example, without limitation, it may be desirable to have direct digital manufacturing machines with working volumes of approximately ten cubic meters.
  • Efficiency of direct digital manufacturing processes may be improved if the nozzle or other tool for laying down material in a direct digital manufacturing machine may be moved throughout the working volume of the machine at relatively high speed and with relatively high acceleration. For example, without
  • efficient direct digital manufacturing may be achieved with speeds of approximately 2 meters per second and accelerations of approximately 40 meters per second per second.
  • manufacturing machine designs may require significantly stiffer and more massive linkages in the positioning mechanism to move the nozzle or other tool through the working volume at the higher speeds and accelerations desirable for efficiency.
  • a first illustrative embodiment provides an apparatus comprising a smaller scale positioning mechanism, a larger scale positioning mechanism, and a positioning system controller.
  • the smaller scale positioning mechanism is configured to move a tool within a smaller scale work space.
  • the larger scale positioning mechanism is configured to change a position of the smaller scale work space within a larger scale work space.
  • positioning system controller is configured to receive a
  • Another illustrative embodiment provides a method for controlling a positioning mechanism.
  • a position command A position command
  • a smaller scale positioning mechanism is configured to move the tool within a smaller scale work space.
  • a larger scale positioning mechanism is configured to change a position of the smaller scale work space within the larger scale work space.
  • An error component is determined by the processor unit using a difference between the commanded position and a current position of the tool in the larger scale work space.
  • a restoring component configured to move the tool toward a selected position in the smaller scale work space is determined by the processor unit. Control signals for controlling the smaller scale positioning mechanism and the larger scale positioning mechanism together to move the tool from the current position to the commanded
  • Another illustrative embodiment provides another method for controlling a positioning mechanism.
  • a position command identifying a commanded position for a tool within a larger scale work space is received by a processor unit.
  • a smaller scale positioning mechanism is configured to move the tool within a smaller scale work space.
  • a larger scale positioning mechanism is configured to change a position of the smaller scale work space within the larger scale work space.
  • estimated velocity for the commanded position and an estimated acceleration for the commanded position are determined by the processor unit.
  • An error component is determined by the processor unit using a first difference between the commanded position and a first sum of the position of the smaller scale positioning mechanism and the position of the larger scale positioning mechanism and a second difference between the estimated velocity for the
  • a restoring component is determined by the processor unit using the integral of the position of the smaller scale positioning mechanism and the position of the smaller scale positioning mechanism.
  • acceleration for the smaller scale positioning mechanism and an acceleration for the larger scale positioning mechanism are determined using the error component, the restoring component, and the estimated acceleration for the commanded position.
  • Figure 1 is an illustration of a block diagram of a
  • Figure 2 is an illustration of a positioning mechanism in accordance with an illustrative embodiment
  • Figure 3 is a schematic illustration of another positioning mechanism in accordance with an illustrative embodiment
  • Figure 4 is an illustration of controlling a positioning system in accordance with an illustrative embodiment
  • FIG. 5 is an illustration of a flowchart of a process for controlling a positioning system in accordance with an
  • Figure 6 is an illustration of a flowchart of another process for controlling a positioning system in accordance with an illustrative embodiment.
  • FIG. 7 is an illustration of a block diagram of a data processing system in accordance with an illustrative embodiment.
  • a number means one or more items.
  • a number of different considerations means one or more different considerations.
  • the working volume of most current direct digital manufacturing machines may be relatively small.
  • the working volume of most current direct digital manufacturing machines may not exceed 1 cubic meter.
  • Current direct digital manufacturing machines that have larger working volumes may operate relatively slowly and with relatively low accelerations. As a result, larger current direct digital manufacturing machines may not be efficient enough for practical industrial use.
  • Linear motors may be more expensive than conventional motors and ball screws used in the positioning mechanisms of conventional direct digital manufacturing machines. Linear motors may only produce linear motion. Therefore, the use of linear motors may limit the use of articulated structures in the positioning mechanisms of direct digital manufacturing machines. Furthermore, linear motors may use more energy than the
  • direct digital manufacturing processes typically may be characterized by the desire for relatively short bursts of high acceleration of a positioning mechanism over a relatively small envelope of acceleration in the working volume of a direct digital manufacturing machine.
  • such short bursts of high acceleration may be used at the start and stop of a trajectory segment.
  • a relatively short burst of high acceleration also may be desired in turning a relatively small radius corner.
  • a positioning mechanism comprising a joint larger scale positioning mechanism and a smaller scale positioning mechanism may be used to improve dynamic performance and efficiency in a direct digital manufacturing machine with a relatively large working volume.
  • a positioning mechanism comprising a joint larger scale positioning mechanism and a smaller scale positioning mechanism may be used to improve dynamic performance and efficiency in a direct digital manufacturing machine with a relatively large working volume.
  • a tool to be moved to desired positions in the working volume may be attached to the smaller scale positioning mechanism.
  • the smaller scale positioning mechanism may use relatively small high-dynamic motors to move the tool around in a smaller scale work space.
  • the smaller scale positioning mechanism may be attached to the larger scale positioning mechanism.
  • the larger scale positioning mechanism may use relatively efficient low-dynamic motors to move the smaller scale positioning mechanism, and thus the smaller scale work space, around in a larger scale work space corresponding to the working volume of the direct digital manufacturing machine.
  • Such a positioning mechanism may be referred to as a macro/mini machine .
  • the different illustrative embodiments also recognize and take into account that, in order to achieve desired speed and efficiency of operation of a positioning mechanism including a joint larger scale positioning mechanism and a smaller scale positioning mechanism, it may be desirable that relatively short bursts of acceleration over a relatively small envelope of acceleration are achieved primarily by operation of the smaller scale positioning mechanism.
  • positioning mechanism may not be able to provide such
  • the slower larger scale positioning mechanism may need to be relied upon to move the tool, thereby increasing the time to perform an operation and reducing efficiency.
  • a tool may be positioned at or near the left edge of the smaller scale work space of the smaller scale positioning mechanism. If the positioning mechanism is commanded to move the tool to the left again, the smaller scale positioning mechanism will not be able to accelerate the tool in the desired direction. In this case, the slower larger scale positioning mechanism must be relied upon to move the tool by moving the smaller scale positioning mechanism, and thus the smaller scale work space, in the desired direction .
  • the positioning system may include a smaller scale positioning mechanism and a larger scale positioning mechanism.
  • the smaller scale positioning mechanism may be configured to move a tool within a smaller scale work space.
  • the larger scale positioning mechanism may be configured to change the position of the smaller scale work space within a larger scale work space.
  • a positioning system controller may be configured to control the smaller scale positioning mechanism and the larger scale
  • the positioning system controller may use a restoring component to generate control signals for controlling the smaller scale positioning mechanism and the larger scale positioning mechanism in a manner such that the position of the tool in the smaller scale work space is also driven toward a center of the smaller scale work space. Use of the restoring component in this manner may help to ensure that the tool is in an appropriate position in the smaller scale work space for the next acceleration in any direction .
  • Positioning system 100 may be used to perform any appropriate process. For example, without
  • positioning system 100 may be used for
  • positioning system 100 may be part of a direct digital manufacturing machine used for direct digital manufacturing .
  • Positioning system 100 may include positioning mechanism
  • Positioning mechanism 102 may include smaller scale positioning mechanism 104 and larger scale positioning mechanism 106. Smaller scale positioning mechanism 104 may be referred to as a mini positioning mechanism. Larger scale positioning mechanism 106 may be referred to as a macro positioning
  • Positioning mechanism 102 may be referred to as a macro/mini positioning mechanism.
  • Tool 108 may be attached to smaller scale positioning mechanism 104.
  • Tool 108 may include any appropriate device or structure that may be used for any appropriate purpose.
  • tool 108 may include a nozzle, a tape laying head, or any other device or structure for
  • tool 108 may include a drill, a saw, a scraper, a sander, a sand blaster, or any other device or structure for removing any appropriate material.
  • tool 108 may include a lens, a sensor, or any other device or
  • Tool 108 may include various devices or structures in any appropriate combination.
  • Smaller scale positioning mechanism 104 may be configured to move tool 108 within smaller scale work space 110.
  • Smaller scale work space 110 may be two-dimensional area 112 or three- dimensional volume 114.
  • Two-dimensional area 112 may be
  • Three-dimensional volume 114 may be referred to as a first three-dimensional volume .
  • Positions in smaller scale work space 110 may be defined with reference to smaller scale positioning mechanism 104.
  • Smaller scale positioning mechanism 104 may be configured to move tool 108 into any appropriate position in smaller scale work space 110.
  • the position of tool 108 in smaller scale work space 110 may refer to the location of tool 108 in smaller scale work space 110, the orientation of tool 108 in smaller scale work space 110, or both.
  • Smaller scale positioning mechanism 104 may include any appropriate devices and structures that may be configured to move tool 108 in any number of degrees of freedom within smaller scale work space 110. Smaller scale positioning mechanism 104 may use motors 116 for moving tool 108 in smaller scale work space 110. Motors 116 may be relatively high dynamic motors that may be configured to move tool 108 at relatively high speeds and with relatively high rates of acceleration.
  • Larger scale positioning mechanism 106 may be configured to change the relative position of smaller scale work space 110 in larger scale work space 118.
  • Larger scale work space 118 may correspond to the work space for positioning mechanism 102.
  • Larger scale work space 118 may be two-dimensional area 120 or three-dimensional volume 122.
  • Two-dimensional area 120 may be referred to as a second two-dimensional area.
  • Three-dimensional volume 122 may be referred to as a second three-dimensional volume.
  • the relative position of smaller scale work space 110 in larger scale work space 118 may refer to the location of smaller scale work space 110 in larger scale work space 118, the orientation of smaller scale work space 110 in larger scale work space 118, or both.
  • Larger scale positioning mechanism 106 may include any appropriate devices and structures that may be configured to change the relative position of smaller scale work space 110 in larger scale work space 118 in any number of degrees of freedom.
  • smaller scale positioning mechanism 104 may be attached to larger scale positioning mechanism 106.
  • larger scale positioning mechanism 106 may be configured to move smaller scale positioning mechanism 104 within larger scale work space 118 to change the position of smaller scale work space 110 in larger scale work space 118.
  • larger scale positioning mechanism 106 may be configured to move larger scale work space 118 with respect to smaller scale positioning mechanism 104 to change the position of smaller scale work space 110 in larger scale work space 118.
  • Larger scale positioning mechanism 106 may use motors 124 to change the relative position of smaller scale work space 110 in larger scale work space 118.
  • motors 124 may be larger and slower than motors 116 in smaller scale positioning mechanism 104.
  • Workpiece 126 may be positioned in larger scale work space 118.
  • Workpiece 126 may include any structure and any material that may be operated on in any appropriate manner using tool
  • Positioning system controller 130 may be configured to control the movement of tool 108 throughout larger scale work space 118.
  • positioning system controller 130 may be configured to generate control signals 132.
  • Control signals 132 may be configured for controlling motors 116 in smaller scale positioning mechanism 104 and motors 124 in larger scale positioning mechanism 106 in a manner such that smaller scale positioning mechanism 104 and larger scale positioning mechanism 106 together move tool 108 to desired positions in larger scale work space 118.
  • Positioning system controller 130 may be configured to receive position command 134.
  • Position command 134 may identify commanded position 136 in larger scale work space 118.
  • Commanded position 136 is a position in larger scale work space 118 to which tool 108 is to be moved.
  • commanded position 136 may correspond to a position on or in workpiece 126 in larger scale work space 118.
  • Position command 134 may be provided to positioning system controller 130 from any appropriate source.
  • position command 134 may be provided by a human operator, a machine, or a human operator in combination with a machine.
  • position command 134 may comprise a sequence of positions in larger scale work space 118.
  • the sequence of positions may correspond to interpolation points for a desired trajectory of tool 108 in larger scale work space 118.
  • the interpolation points may begin at current position 137 of tool 108 in larger scale work space 118 and may be spaced continuously in time. In this case, commanded
  • position 136 may be determined from the next position in the sequence of positions.
  • position command 134 may be generated and provided by a trajectory interpolator.
  • Positioning system controller 130 may be configured to generate control signals 132 for moving tool 108 from current position 137 to commanded position 136 using one or more of error component 138, restoring component 140, and stabilizing component 142, in any appropriate combination.
  • positioning system controller 130 may be configured to determine an acceleration for smaller scale positioning mechanism 104 and an acceleration for larger scale positioning mechanism 106 using one or more of error component 138, restoring component 140, and stabilizing component 142 in combination with an estimated acceleration for commanded
  • Positioning system controller 130 may be
  • control signals 132 configured to generate control signals 132 using the
  • Error component 138 may be configured to drive the position of tool 108 toward commanded position 136.
  • Positioning system controller 130 may be configured to determine error component 138 using the difference between commanded position 136 and current position 137 of tool 108 in larger scale work space 118.
  • positioning system controller 130 may be configured to determine error component 138 using a first difference between commanded position 136 and a sum of a position of smaller scale positioning mechanism 104 and a position of larger scale positioning mechanism 106 and a second difference between an estimated velocity for commanded position 136 and a sum of a velocity of smaller scale positioning
  • Restoring component 140 may be configured to drive the position of tool 108 toward selected position 148 in smaller scale work space 110.
  • selected position 148 may be center 150 of smaller scale work space 110.
  • restoring component 140 may be used to help ensure that tool 108 is in an appropriate position in smaller scale work space 110 for the next acceleration of tool 108 in any direction in larger scale work space 118.
  • positioning system controller 130 may be configured to determine restoring component 140 using an
  • Stabilizing component 142 may be configured to prevent unstable self-motion of larger scale positioning mechanism 106.
  • Self-motion refers to motion of larger scale positioning
  • Stabilizing larger scale positioning mechanism 106 may stabilize positioning mechanism 102 as a whole .
  • Positioning system controller 130 may be configured to determine stabilizing component 142 to provide a feedback loop to stabilize the self-motion velocities of larger scale
  • positioning system controller 130 may be configured to determine stabilizing component 142 using a velocity of larger scale positioning mechanism 106.
  • parameters of smaller scale positioning mechanism 104 and larger scale positioning mechanism 106 may be determined using feedback 152 from smaller scale positioning mechanism 104 and larger scale positioning mechanism 106. Any appropriate device or method may be used to provide feedback 152 for desired current parameters of smaller scale positioning mechanism 104 and larger scale positioning mechanism 106 to positioning system controller 130.
  • acceleration of smaller scale positioning mechanism 104 refers to the position, velocity, and acceleration, respectively, of tool 108 or of a portion of smaller scale positioning mechanism 104 to which tool 108 is attached.
  • the position, velocity, and acceleration of larger scale positioning mechanism 106 refers to the position, velocity, and
  • position may refer to location or orientation or both
  • velocity may refer to linear velocity or angular velocity or both
  • acceleration may refer to linear acceleration or angular acceleration or both.
  • FIG. 1 The illustration of Figure 1 is not meant to imply physical or architectural limitations to the manner in which illustrative embodiments may be implemented. Other components in addition to, in place of, or both in addition to and in place of the ones illustrated may be used. Some components may be unnecessary in some illustrative embodiments. Also, the blocks are presented to illustrate some functional components. One or more of these blocks may be combined or divided into different blocks when implemented in different illustrative embodiments.
  • positioning mechanism 200 is an example of one implementation of positioning mechanism 102 in Figure 1.
  • Positioning mechanism 200 may include larger scale
  • Smaller scale positioning mechanism 204 is attached to larger scale positioning mechanism 202.
  • Tool 206 is attached to smaller scale positioning mechanism 204.
  • Smaller scale positioning mechanism 204 may be configured to move tool 206 within a smaller scale work space defined with respect to smaller scale positioning mechanism 204. Larger scale
  • positioning mechanism 202 may be configured to move smaller scale positioning mechanism 204 in a larger scale work space.
  • positioning mechanism 200 is an example of a positioning mechanism wherein a larger scale positioning mechanism moves a smaller scale work space within a larger scale work space to change the relative position of the smaller scale work space in the larger scale work space.
  • positioning mechanism 300 is example of one implementation of positioning mechanism 102 in Figure 1.
  • Positioning mechanism 300 is an example of a positioning mechanism wherein a larger scale work space is moved with respect to a smaller scale work space to change the
  • Positioning mechanism 300 includes larger scale positioning mechanism 302 and smaller scale positioning mechanism 304.
  • Larger scale positioning mechanism 302 may be configured to move table 306 in a number of directions.
  • the surface of table 306 may define a larger scale work space.
  • Workpiece 308 may be positioned on table 306.
  • Tool 310 may be attached to smaller scale positioning mechanism 304.
  • Smaller scale positioning mechanism 304 may be configured to move tool 310 in a number of directions within a smaller scale work space defined by smaller scale positioning mechanism 304.
  • Smaller scale positioning mechanism 304 may be supported in a fixed position on support structure 312. Thus, the smaller scale work space is fixed in position in positioning mechanism 300.
  • larger scale work space 400 is an example of larger scale work space 118 in Figure 1 and smaller scale work space 402 is an example of smaller scale work space 110 in Figure 1.
  • point 404 indicates the center of smaller scale work space 402.
  • Point 406 indicates the current position of a tool in larger scale work space 400 and smaller scale work space 402.
  • Point 408 indicates a point in larger scale work space 400 to which the tool is commanded to move.
  • control signals for controlling movement of the tool include a component indicated by arrow 410 for moving smaller scale work space 402 toward point 408, a component indicated by arrow 412 for moving the tool in smaller scale work space 402 in the direction of point 408, and a component indicated by arrow 414 for moving the tool in the smaller scale work space in the direction of point 404.
  • Figure 5 may be used to control a positioning system comprising a smaller scale positioning mechanism configured to move a tool within a smaller scale work space and a larger scale positioning mechanism configured to change a position of the smaller scale work space within a larger scale work space.
  • the process of Figure 5 may be implemented in positioning system controller 130 to control positioning system 100 in Figure 1.
  • the process may begin by receiving a position command identifying a commanded position for the tool in the larger scale work space (operation 502) .
  • An error component may be determined using a difference between a current position of the tool in the larger scale work space and the commanded position (operation 504) .
  • a restoring component may be determined, wherein the restoring component is configured to move the tool toward a selected position in the smaller scale work space
  • the restoring component may be configured to move the tool toward the center of the smaller scale work space.
  • a stabilizing component may be determined, wherein the stabilizing component is configured to prevent unstable self-motion of the larger scale positioning mechanism (operation 508) .
  • Control signals for controlling the smaller scale positioning mechanism and the larger scale positioning mechanism together to move the tool from the current position to the commanded position then may be generated using the error component, the restoring component, and the stabilizing
  • FIG. 6 an illustration of a flowchart of another process for controlling a positioning system is depicted in accordance with an illustrative embodiment.
  • the process of Figure 6 may be used to control a positioning system comprising a smaller scale positioning mechanism configured to move a tool within a smaller scale work space and a larger scale positioning mechanism configured to change a position of the smaller scale work space within a larger scale work space.
  • the process of Figure 6 may be implemented in positioning system controller 130 to control positioning system 100 in Figure 1.
  • the process may begin by receiving a position command identifying a commanded position for the tool within the larger scale work space (operation 602) .
  • An estimated velocity and acceleration for the commanded position may be determined
  • a joint state of the positioning mechanism may be determined (operation 606) .
  • An error component may be determined using a difference between the commanded position state and the joint state of the positioning mechanism (operation 608) .
  • the error component may be determined using a first difference between the commanded position and a first sum of the position of the smaller scale positioning mechanism and the position of the larger scale positioning mechanism and a second difference between the estimated velocity for the commanded position and a second sum of the velocity of the smaller scale positioning mechanism and the velocity of the larger scale positioning mechanism.
  • a restoring component may be determined (operation 610) .
  • the restoring component may be configured to move the tool toward the center of the smaller scale work space.
  • the restoring component may be determined using an integral of the position of the smaller scale
  • a stabilizing component may be determined (operation 612) .
  • the stabilizing component may be configured to prevent unstable self-motion of the larger scale positioning mechanism.
  • the stabilizing component may be determined using the velocity of the larger scale positioning mechanism.
  • Joint acceleration for the positioning mechanism may be determined using the error component, the restoring component, and the stabilizing component (operation 614) .
  • Control signals for the positioning mechanism then may be generated from the joint acceleration (operation 616), with the process terminating thereafter.
  • control signals for controlling the smaller scale positioning mechanism and the larger scale positioning mechanism together to move the tool from the current position to the commanded position may be generated using the acceleration for the smaller scale
  • data processing system 700 is an example of one implementation of a data
  • data processing system 700 includes communications fabric 702.
  • Communications fabric 702 provides communications between processor unit 704, memory 706, persistent storage 708, communications unit 710, input/output (I/O) unit 712, and display 714.
  • Memory 706, persistent storage 708, communications unit 710, input/output (I/O) unit 712, and display 714 are examples of resources accessible by processor unit 704 via communications fabric 702.
  • Processor unit 704 serves to run instructions for software that may be loaded into memory 706.
  • Processor unit 704 may be a number of processors, a multi-processor core, or some other type of processor, depending on the particular implementation.
  • processor unit 704 may be implemented using a number of heterogeneous processor systems in which a main processor is present with secondary processors on a single chip. As another illustrative example, processor unit 704 may be a symmetric multi ⁇ processor system containing multiple processors of the same type.
  • Memory 706 and persistent storage 708 are examples of storage devices 716.
  • a storage device is any piece of hardware that is capable of storing information, such as, for example, without limitation, data, program code in functional form, and other suitable information either on a temporary basis or a permanent basis.
  • Storage devices 716 also may be referred to as computer readable storage devices in these examples.
  • Persistent storage 708 may take various forms,
  • persistent storage 708 may contain one or more components or devices.
  • persistent storage 708 may be a hard drive, a flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of the above.
  • the media used by persistent storage 708 also may be removable.
  • a removable hard drive may be used for persistent storage 708.
  • Communications unit 710 in these examples, provides for communications with other data processing systems or devices.
  • communications unit 710 is a network
  • Communications unit 710 may provide
  • Input/output (I/O) unit 712 allows for input and output of data with other devices that may be connected to data processing system 700.
  • input/output (I/O) unit 712 may provide a connection for user input through a keyboard, a mouse, and/or some other suitable input device. Further, input/output (I/O) unit 712 may send output to a printer.
  • Display 714
  • Instructions for the operating system, applications, and/or programs may be located in storage devices 716, which are in communication with processor unit 704 through communications fabric 702. In these illustrative examples, the instructions are in a functional form on persistent storage 708. These instructions may be loaded into memory 706 for execution by processor unit 704. The processes of the different embodiments may be performed by processor unit 704 using computer- implemented instructions, which may be located in a memory, such as memory 706.
  • program instructions are referred to as program instructions, program code, computer usable program code, or computer readable program code that may be read and executed by a processor in processor unit 704.
  • the program code in the different instructions are referred to as program instructions, program code, computer usable program code, or computer readable program code that may be read and executed by a processor in processor unit 704.
  • the program code in the different instructions are referred to as program instructions, program code, computer usable program code, or computer readable program code that may be read and executed by a processor in processor unit 704.
  • embodiments may be embodied on different physical or computer readable storage media, such as memory 706 or persistent storage 708.
  • Program code 718 is located in a functional form on
  • computer readable media 720 that is selectively removable and may be loaded onto or transferred to data processing system 700 for execution by processor unit 704.
  • Program code 718 and computer readable media 720 form computer program product 722 in these examples.
  • computer readable media 720 may be computer readable storage media 724 or computer readable signal media 726.
  • Computer readable storage media 724 may include, for example, an optical or magnetic disk that is inserted or placed into a drive or other device that is part of persistent storage 708 for transfer onto a storage device, such as a hard drive, that is part of persistent storage 708.
  • Computer readable storage media 724 also may take the form of a persistent
  • computer readable storage media 724 may not be removable from data processing system 700.
  • computer readable storage media 724 is a physical or tangible storage device used to store program code 718 rather than a medium that propagates or transmits program code 718.
  • Computer readable storage media 724 is also referred to as a computer readable tangible storage device or a computer readable physical storage device. In other words, computer readable storage media 724 is a media that can be touched by a person .
  • program code 718 may be transferred to data processing system 700 using computer readable signal media 726.
  • Computer readable signal media 726 may be, for example, a propagated data signal containing program code 718.
  • computer readable signal media 726 may be an
  • electromagnetic signal an optical signal, and/or any other suitable type of signal.
  • signals may be transmitted over communications links, such as wireless communications links, optical fiber cable, coaxial cable, a wire, and/or any other suitable type of communications link.
  • communications links such as wireless communications links, optical fiber cable, coaxial cable, a wire, and/or any other suitable type of communications link.
  • the communications link and/or the connection may be physical or wireless in the illustrative examples.
  • program code 718 may be downloaded over a network to persistent storage 708 from another device or data processing system through computer readable signal media 726 for use within data processing system 700.
  • program code stored in a computer readable storage medium in a server data processing system may be downloaded over a network from the server to data processing system 700.
  • the data processing system providing program code 718 may be a server computer, a client computer, or some other device capable of storing and transmitting program code 718.
  • data processing system 700 may include organic components integrated with inorganic components and/or may be comprised entirely of organic
  • a storage device may be comprised of an organic semiconductor.
  • processor unit 704 may take the form of a hardware unit that has circuits that are manufactured or configured for a particular use. This type of hardware may perform operations without needing program code to be loaded into a memory from a storage device to be configured to perform the operations.
  • processor unit 704 when processor unit 704 takes the form of a hardware unit, processor unit 704 may be a circuit system, an application specific integrated circuit (ASIC) , a programmable logic device, or some other suitable type of hardware configured to perform a number of operations.
  • ASIC application specific integrated circuit
  • a programmable logic device the device is configured to perform the number of operations.
  • the device may be reconfigured at a later time or may be permanently configured to perform the number of
  • programmable logic devices include, for example, a programmable logic array, a programmable array logic, a field programmable logic array, a field programmable gate array, and other suitable hardware devices.
  • program code 718 may be omitted, because the processes for the different embodiments are implemented in a hardware unit.
  • processor unit 704 may be implemented using a combination of processors found in computers and hardware units.
  • Processor unit 704 may have a number of hardware units and a number of processors that are configured to run program code 718. With this depicted example, some of the processes may be implemented in the number of hardware units, while other processes may be implemented in the number of processors.
  • a bus system may be used to implement communications fabric 702 and may be comprised of one or more buses, such as a system bus or an input/output bus.
  • the bus system may be implemented using any suitable type of architecture that provides for a transfer of data between different components or devices attached to the bus system.
  • communications unit 710 may include a number of devices that transmit data, receive data, or both transmit and receive data.
  • Communications unit 710 may be, for example, a modem or a network adapter, two network adapters, or some combination thereof.
  • a memory may be, for example, memory 706, or a cache, such as that found in an interface and memory controller hub that may be present in communications fabric 702.
  • each block in the flowcharts or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function or functions. It should also be noted that, in some alternative implementations, the functions noted in a block may occur out of the order noted in the
  • a method for controlling a positioning mechanism comprising :
  • a smaller scale positioning mechanism is configured to move the tool within a smaller scale work space and a larger scale positioning mechanism is configured to change a position of the smaller scale work space within the larger scale work space;
  • Clause 18 The method of clause 17 further comprising:
  • Clause 19 The method of clause 17, wherein the smaller scale positioning mechanism is attached to the larger scale positioning mechanism and the larger scale positioning mechanism is configured to move the smaller scale positioning mechanism within the larger scale work space to change the position of the smaller scale work space within the larger scale work space.
  • Clause 20 The method of clause 17, wherein the larger scale positioning mechanism is configured to move the larger scale work space with respect to the smaller scale positioning mechanism to change the position of the smaller scale work space within the larger scale work space.

Abstract

A method and apparatus for controlling a positioning mechanism comprising a smaller scale positioning mechanism for moving a tool within a smaller scale work space and a larger scale positioning mechanism for changing a position of the smaller scale work space within the larger scale work space. A commanded position for the tool is received by a processor unit. An error component is determined using a difference between the commanded position and a current position of the tool in the larger scale work space. A restoring component configured to move the tool toward a selected position in the smaller scale work space is determined. Control signals for controlling the smaller scale positioning mechanism and the larger scale positioning mechanism together to move the tool from the current position to the commanded position are generated using the error component and the restoring component.

Description

POSITION CONTROL FOR A POSITIONING SYSTEM COMPRISING LARGER SCALE AND SMALLER SCALE POSITIONING MECHANISMS
BACKGROUND INFORMATION
Background:
An automated positioning system may be used to perform a variety of manufacturing and other tasks. An automated
positioning system may include a tool attached to a computer controlled positioning mechanism. The positioning mechanism may be configured to move the tool to various positions in a work space. For example, the positioning mechanism may be controlled to move the tool to various positions in the work space to perform various operations on a workpiece in the work space. A robotic arm is one example of a positioning mechanism that may be used in an automated positioning system.
For example, automated positioning systems are used in direct digital manufacturing. Direct digital manufacturing also may be referred to as additive manufacturing, additive free-form fabrication, solid free-form fabrication, rapid prototyping, layered manufacturing, or three-dimensional printing. Direct digital manufacturing machines may be used to produce three- dimensional solid objects from three-dimensional digital models of the objects. To produce an object, the direct digital manufacturing machine may lay down successive layers of liquid, powder, or sheet material corresponding to virtual cross sections from the digital model of the object. The layers are joined together or fused automatically to create the final object. Objects of almost any shape or having any geometric feature may be made using a direct digital manufacturing
machine. A direct digital manufacturing machine also may be referred to as a three-dimensional printer. Current direct digital manufacturing machines may have working volumes of approximately one cubic meter. It may be desirable to have direct digital manufacturing machines with larger working volumes to produce larger objects. For example, without limitation, it may be desirable to have direct digital manufacturing machines with working volumes of approximately ten cubic meters.
Efficiency of direct digital manufacturing processes may be improved if the nozzle or other tool for laying down material in a direct digital manufacturing machine may be moved throughout the working volume of the machine at relatively high speed and with relatively high acceleration. For example, without
limitation, efficient direct digital manufacturing may be achieved with speeds of approximately 2 meters per second and accelerations of approximately 40 meters per second per second.
Larger volume versions of current direct digital
manufacturing machine designs may require significantly stiffer and more massive linkages in the positioning mechanism to move the nozzle or other tool through the working volume at the higher speeds and accelerations desirable for efficiency.
Larger motors may be required to move the larger linkages at the desired speeds and accelerations. As a result, such a machine may require more expensive components and may use more energy than current direct digital manufacturing machines.
Accordingly, it would be beneficial to have a method and apparatus that takes into account one or more of the issues discussed above as well as possibly other issues.
SUMMARY
A first illustrative embodiment provides an apparatus comprising a smaller scale positioning mechanism, a larger scale positioning mechanism, and a positioning system controller. The smaller scale positioning mechanism is configured to move a tool within a smaller scale work space. The larger scale positioning mechanism is configured to change a position of the smaller scale work space within a larger scale work space. The
positioning system controller is configured to receive a
position command identifying a commanded position for the tool within the larger scale work space, determine an error component using a difference between the commanded position and a current position of the tool in the larger scale work space, determine a restoring component configured to move the tool toward a
selected position in the smaller scale work space, and generate control signals for controlling the smaller scale positioning mechanism and the larger scale positioning mechanism together to move the tool from the current position to the commanded
position using the error component and the restoring component.
Another illustrative embodiment provides a method for controlling a positioning mechanism. A position command
identifying a commanded position for a tool within a larger scale work space is received by a processor unit. A smaller scale positioning mechanism is configured to move the tool within a smaller scale work space. A larger scale positioning mechanism is configured to change a position of the smaller scale work space within the larger scale work space. An error component is determined by the processor unit using a difference between the commanded position and a current position of the tool in the larger scale work space. A restoring component configured to move the tool toward a selected position in the smaller scale work space is determined by the processor unit. Control signals for controlling the smaller scale positioning mechanism and the larger scale positioning mechanism together to move the tool from the current position to the commanded
position are generated using the error component and the
restoring component.
Another illustrative embodiment provides another method for controlling a positioning mechanism. A position command identifying a commanded position for a tool within a larger scale work space is received by a processor unit. A smaller scale positioning mechanism is configured to move the tool within a smaller scale work space. A larger scale positioning mechanism is configured to change a position of the smaller scale work space within the larger scale work space. An
estimated velocity for the commanded position and an estimated acceleration for the commanded position are determined by the processor unit. A position of the smaller scale positioning mechanism, an integral of the position of the smaller scale positioning mechanism, a velocity of the smaller scale
positioning mechanism, a position of the larger scale
positioning mechanism, and a velocity of the larger scale positioning mechanism are determined by the processor unit. An error component is determined by the processor unit using a first difference between the commanded position and a first sum of the position of the smaller scale positioning mechanism and the position of the larger scale positioning mechanism and a second difference between the estimated velocity for the
commanded position and a second sum of the velocity of the smaller scale positioning mechanism and the velocity of the larger scale positioning mechanism. A restoring component is determined by the processor unit using the integral of the position of the smaller scale positioning mechanism and the position of the smaller scale positioning mechanism. An
acceleration for the smaller scale positioning mechanism and an acceleration for the larger scale positioning mechanism are determined using the error component, the restoring component, and the estimated acceleration for the commanded position.
Control signals for controlling the smaller scale positioning mechanism and the larger scale positioning mechanism together to move the tool from the current position to the commanded
position are generated using the acceleration for the smaller scale positioning mechanism and the acceleration for the larger scale positioning mechanism.
The features, functions, and benefits may be achieved independently in various embodiments of the present disclosure or may be combined in yet other embodiments in which further details can be seen with reference to the following description and drawings .
BRIEF DESCRIPTION OF THE DRAWINGS
The novel features believed characteristic of the
illustrative embodiments are set forth in the appended claims. The illustrative embodiments, however, as well as a preferred mode of use, further objectives, and features thereof will best be understood by reference to the following detailed description of illustrative embodiments of the present disclosure when read in conjunction with the accompanying drawings, wherein:
Figure 1 is an illustration of a block diagram of a
positioning system in accordance with an illustrative
embodiment;
Figure 2 is an illustration of a positioning mechanism in accordance with an illustrative embodiment;
Figure 3 is a schematic illustration of another positioning mechanism in accordance with an illustrative embodiment;
Figure 4 is an illustration of controlling a positioning system in accordance with an illustrative embodiment;
Figure 5 is an illustration of a flowchart of a process for controlling a positioning system in accordance with an
illustrative embodiment;
Figure 6 is an illustration of a flowchart of another process for controlling a positioning system in accordance with an illustrative embodiment; and
Figure 7 is an illustration of a block diagram of a data processing system in accordance with an illustrative embodiment. DETAILED DESCRIPTION
The different illustrative embodiments recognize and take into account a number of different considerations. "A number," as used herein with reference to items, means one or more items. For example, "a number of different considerations" means one or more different considerations.
The different illustrative embodiments recognize and take into account that the working volume of most current direct digital manufacturing machines may be relatively small. For example, the working volume of most current direct digital manufacturing machines may not exceed 1 cubic meter. Current direct digital manufacturing machines that have larger working volumes may operate relatively slowly and with relatively low accelerations. As a result, larger current direct digital manufacturing machines may not be efficient enough for practical industrial use.
It has been proposed to use relatively large linear motors in the positioning mechanisms of larger volume direct digital manufacturing machines. The use of such motors may improve the speed and acceleration performance, and thus the efficiency, of such machines. However, the use of large linear motors in direct digital manufacturing machines may have undesirable drawbacks .
Linear motors may be more expensive than conventional motors and ball screws used in the positioning mechanisms of conventional direct digital manufacturing machines. Linear motors may only produce linear motion. Therefore, the use of linear motors may limit the use of articulated structures in the positioning mechanisms of direct digital manufacturing machines. Furthermore, linear motors may use more energy than the
conventional motors used in conventional direct digital
manufacturing machines. Therefore, the use of linear motors in a direct digital manufacturing machine may result in a higher cost of operation.
The different illustrative embodiments recognize and take into account that direct digital manufacturing processes typically may be characterized by the desire for relatively short bursts of high acceleration of a positioning mechanism over a relatively small envelope of acceleration in the working volume of a direct digital manufacturing machine. For example, such short bursts of high acceleration may be used at the start and stop of a trajectory segment. A relatively short burst of high acceleration also may be desired in turning a relatively small radius corner.
The different illustrative embodiments also recognize and take into account that a positioning mechanism comprising a joint larger scale positioning mechanism and a smaller scale positioning mechanism may be used to improve dynamic performance and efficiency in a direct digital manufacturing machine with a relatively large working volume. In such a positioning
mechanism, a tool to be moved to desired positions in the working volume may be attached to the smaller scale positioning mechanism. The smaller scale positioning mechanism may use relatively small high-dynamic motors to move the tool around in a smaller scale work space. The smaller scale positioning mechanism may be attached to the larger scale positioning mechanism. The larger scale positioning mechanism may use relatively efficient low-dynamic motors to move the smaller scale positioning mechanism, and thus the smaller scale work space, around in a larger scale work space corresponding to the working volume of the direct digital manufacturing machine.
Such a positioning mechanism may be referred to as a macro/mini machine .
The different illustrative embodiments also recognize and take into account that, in order to achieve desired speed and efficiency of operation of a positioning mechanism including a joint larger scale positioning mechanism and a smaller scale positioning mechanism, it may be desirable that relatively short bursts of acceleration over a relatively small envelope of acceleration are achieved primarily by operation of the smaller scale positioning mechanism. However, the smaller scale
positioning mechanism may not be able to provide such
acceleration if the position of the tool in the smaller scale work space at the start of the acceleration is not appropriate. In this case, the slower larger scale positioning mechanism may need to be relied upon to move the tool, thereby increasing the time to perform an operation and reducing efficiency.
For example, following a move to the left, a tool may be positioned at or near the left edge of the smaller scale work space of the smaller scale positioning mechanism. If the positioning mechanism is commanded to move the tool to the left again, the smaller scale positioning mechanism will not be able to accelerate the tool in the desired direction. In this case, the slower larger scale positioning mechanism must be relied upon to move the tool by moving the smaller scale positioning mechanism, and thus the smaller scale work space, in the desired direction .
In accordance with an illustrative embodiment, a
positioning system may include a smaller scale positioning mechanism and a larger scale positioning mechanism. The smaller scale positioning mechanism may be configured to move a tool within a smaller scale work space. The larger scale positioning mechanism may be configured to change the position of the smaller scale work space within a larger scale work space. A positioning system controller may be configured to control the smaller scale positioning mechanism and the larger scale
positioning mechanism to move the tool from a current position to a commanded position in the larger scale work space in a manner such that relatively short and high accelerations of the tool are provided by the smaller scale positioning mechanism. The positioning system controller may use a restoring component to generate control signals for controlling the smaller scale positioning mechanism and the larger scale positioning mechanism in a manner such that the position of the tool in the smaller scale work space is also driven toward a center of the smaller scale work space. Use of the restoring component in this manner may help to ensure that the tool is in an appropriate position in the smaller scale work space for the next acceleration in any direction .
Turning now to Figure 1, an illustration of a block diagram of a positioning system is depicted in accordance with an illustrative embodiment. Positioning system 100 may be used to perform any appropriate process. For example, without
limitation, positioning system 100 may be used for
manufacturing, assembly, disassembly, inspection, testing, rework, or any other appropriate process or combination of processes. For example, positioning system 100 may be part of a direct digital manufacturing machine used for direct digital manufacturing .
Positioning system 100 may include positioning mechanism
102. Positioning mechanism 102 may include smaller scale positioning mechanism 104 and larger scale positioning mechanism 106. Smaller scale positioning mechanism 104 may be referred to as a mini positioning mechanism. Larger scale positioning mechanism 106 may be referred to as a macro positioning
mechanism. Positioning mechanism 102 may be referred to as a macro/mini positioning mechanism.
Tool 108 may be attached to smaller scale positioning mechanism 104. Tool 108 may include any appropriate device or structure that may be used for any appropriate purpose. For example, without limitation, tool 108 may include a nozzle, a tape laying head, or any other device or structure for
depositing or applying any appropriate material. As another example, tool 108 may include a drill, a saw, a scraper, a sander, a sand blaster, or any other device or structure for removing any appropriate material. As a further example, tool 108 may include a lens, a sensor, or any other device or
structure for destructive or non-destructive inspection or testing of any appropriate material. Tool 108 may include various devices or structures in any appropriate combination.
Smaller scale positioning mechanism 104 may be configured to move tool 108 within smaller scale work space 110. Smaller scale work space 110 may be two-dimensional area 112 or three- dimensional volume 114. Two-dimensional area 112 may be
referred to as a first two-dimensional area. Three-dimensional volume 114 may be referred to as a first three-dimensional volume .
Positions in smaller scale work space 110 may be defined with reference to smaller scale positioning mechanism 104.
Smaller scale positioning mechanism 104 may be configured to move tool 108 into any appropriate position in smaller scale work space 110. The position of tool 108 in smaller scale work space 110 may refer to the location of tool 108 in smaller scale work space 110, the orientation of tool 108 in smaller scale work space 110, or both.
Smaller scale positioning mechanism 104 may include any appropriate devices and structures that may be configured to move tool 108 in any number of degrees of freedom within smaller scale work space 110. Smaller scale positioning mechanism 104 may use motors 116 for moving tool 108 in smaller scale work space 110. Motors 116 may be relatively high dynamic motors that may be configured to move tool 108 at relatively high speeds and with relatively high rates of acceleration.
Larger scale positioning mechanism 106 may be configured to change the relative position of smaller scale work space 110 in larger scale work space 118. Larger scale work space 118 may correspond to the work space for positioning mechanism 102.
Larger scale work space 118 may be two-dimensional area 120 or three-dimensional volume 122. Two-dimensional area 120 may be referred to as a second two-dimensional area. Three-dimensional volume 122 may be referred to as a second three-dimensional volume. The relative position of smaller scale work space 110 in larger scale work space 118 may refer to the location of smaller scale work space 110 in larger scale work space 118, the orientation of smaller scale work space 110 in larger scale work space 118, or both.
Larger scale positioning mechanism 106 may include any appropriate devices and structures that may be configured to change the relative position of smaller scale work space 110 in larger scale work space 118 in any number of degrees of freedom. For example, smaller scale positioning mechanism 104 may be attached to larger scale positioning mechanism 106. In this case, larger scale positioning mechanism 106 may be configured to move smaller scale positioning mechanism 104 within larger scale work space 118 to change the position of smaller scale work space 110 in larger scale work space 118. Alternatively, larger scale positioning mechanism 106 may be configured to move larger scale work space 118 with respect to smaller scale positioning mechanism 104 to change the position of smaller scale work space 110 in larger scale work space 118.
Larger scale positioning mechanism 106 may use motors 124 to change the relative position of smaller scale work space 110 in larger scale work space 118. For example, motors 124 may be larger and slower than motors 116 in smaller scale positioning mechanism 104.
Workpiece 126 may be positioned in larger scale work space 118. Workpiece 126 may include any structure and any material that may be operated on in any appropriate manner using tool
108. For example, without limitation, workpiece 126 may be aircraft component 128. Aircraft component 128 may include any part or portion of any type of aircraft. For example, aircraft component 128 may include an entire aircraft. Positioning system controller 130 may be configured to control the movement of tool 108 throughout larger scale work space 118. For example, positioning system controller 130 may be configured to generate control signals 132. Control signals 132 may be configured for controlling motors 116 in smaller scale positioning mechanism 104 and motors 124 in larger scale positioning mechanism 106 in a manner such that smaller scale positioning mechanism 104 and larger scale positioning mechanism 106 together move tool 108 to desired positions in larger scale work space 118.
Positioning system controller 130 may be configured to receive position command 134. Position command 134 may identify commanded position 136 in larger scale work space 118.
Commanded position 136 is a position in larger scale work space 118 to which tool 108 is to be moved. For example, without limitation, commanded position 136 may correspond to a position on or in workpiece 126 in larger scale work space 118.
Position command 134 may be provided to positioning system controller 130 from any appropriate source. For example, position command 134 may be provided by a human operator, a machine, or a human operator in combination with a machine.
For example, without limitation, position command 134 may comprise a sequence of positions in larger scale work space 118. The sequence of positions may correspond to interpolation points for a desired trajectory of tool 108 in larger scale work space 118. For example, the interpolation points may begin at current position 137 of tool 108 in larger scale work space 118 and may be spaced continuously in time. In this case, commanded
position 136 may be determined from the next position in the sequence of positions. In this example, position command 134 may be generated and provided by a trajectory interpolator.
Positioning system controller 130 may be configured to generate control signals 132 for moving tool 108 from current position 137 to commanded position 136 using one or more of error component 138, restoring component 140, and stabilizing component 142, in any appropriate combination. For example, without limitation, positioning system controller 130 may be configured to determine an acceleration for smaller scale positioning mechanism 104 and an acceleration for larger scale positioning mechanism 106 using one or more of error component 138, restoring component 140, and stabilizing component 142 in combination with an estimated acceleration for commanded
position 136. Positioning system controller 130 may be
configured to generate control signals 132 using the
acceleration for smaller scale positioning mechanism 104 and the acceleration for larger scale positioning mechanism 106.
Error component 138 may be configured to drive the position of tool 108 toward commanded position 136. Positioning system controller 130 may be configured to determine error component 138 using the difference between commanded position 136 and current position 137 of tool 108 in larger scale work space 118. For example, without limitation, positioning system controller 130 may be configured to determine error component 138 using a first difference between commanded position 136 and a sum of a position of smaller scale positioning mechanism 104 and a position of larger scale positioning mechanism 106 and a second difference between an estimated velocity for commanded position 136 and a sum of a velocity of smaller scale positioning
mechanism 104 and a velocity of larger scale positioning
mechanism 106.
Restoring component 140 may be configured to drive the position of tool 108 toward selected position 148 in smaller scale work space 110. For example, without limitation, selected position 148 may be center 150 of smaller scale work space 110. In this example, restoring component 140 may be used to help ensure that tool 108 is in an appropriate position in smaller scale work space 110 for the next acceleration of tool 108 in any direction in larger scale work space 118. For example, without limitation, positioning system controller 130 may be configured to determine restoring component 140 using an
integral of the position of smaller scale positioning mechanism 104 and the position of smaller scale positioning mechanism 104.
Stabilizing component 142 may be configured to prevent unstable self-motion of larger scale positioning mechanism 106. Self-motion refers to motion of larger scale positioning
mechanism 106 that causes no motion of tool 108. In a general acceleration minimization scheme, the velocities associated with self-motion are unstable. Stabilizing larger scale positioning mechanism 106 may stabilize positioning mechanism 102 as a whole .
Positioning system controller 130 may be configured to determine stabilizing component 142 to provide a feedback loop to stabilize the self-motion velocities of larger scale
positioning mechanism 106. For example, without limitation, positioning system controller 130 may be configured to determine stabilizing component 142 using a velocity of larger scale positioning mechanism 106.
Current position 137 of tool 108 and other current
parameters of smaller scale positioning mechanism 104 and larger scale positioning mechanism 106 may be determined using feedback 152 from smaller scale positioning mechanism 104 and larger scale positioning mechanism 106. Any appropriate device or method may be used to provide feedback 152 for desired current parameters of smaller scale positioning mechanism 104 and larger scale positioning mechanism 106 to positioning system controller 130.
In the present application, including in the claims, and unless stated otherwise, the position, velocity, and
acceleration of smaller scale positioning mechanism 104 refers to the position, velocity, and acceleration, respectively, of tool 108 or of a portion of smaller scale positioning mechanism 104 to which tool 108 is attached. In the present application, including in the claims, and unless stated otherwise, the position, velocity, and acceleration of larger scale positioning mechanism 106 refers to the position, velocity, and
acceleration, respectively, of smaller scale work space 110 with respect to larger scale work space 118. In the present
application, including in the claims, "position" may refer to location or orientation or both, "velocity" may refer to linear velocity or angular velocity or both, and "acceleration" may refer to linear acceleration or angular acceleration or both.
The illustration of Figure 1 is not meant to imply physical or architectural limitations to the manner in which illustrative embodiments may be implemented. Other components in addition to, in place of, or both in addition to and in place of the ones illustrated may be used. Some components may be unnecessary in some illustrative embodiments. Also, the blocks are presented to illustrate some functional components. One or more of these blocks may be combined or divided into different blocks when implemented in different illustrative embodiments.
Turning now to Figure 2, an illustration of a positioning mechanism is depicted in accordance with an illustrative
embodiment. In this example, positioning mechanism 200 is an example of one implementation of positioning mechanism 102 in Figure 1.
Positioning mechanism 200 may include larger scale
positioning mechanism 202 and smaller scale positioning
mechanism 204. Smaller scale positioning mechanism 204 is attached to larger scale positioning mechanism 202. Tool 206 is attached to smaller scale positioning mechanism 204. Smaller scale positioning mechanism 204 may be configured to move tool 206 within a smaller scale work space defined with respect to smaller scale positioning mechanism 204. Larger scale
positioning mechanism 202 may be configured to move smaller scale positioning mechanism 204 in a larger scale work space. Thus, positioning mechanism 200 is an example of a positioning mechanism wherein a larger scale positioning mechanism moves a smaller scale work space within a larger scale work space to change the relative position of the smaller scale work space in the larger scale work space.
Turning now to Figure 3, a schematic illustration of another positioning mechanism is depicted in accordance with an illustrative embodiment. In this example, positioning mechanism 300 is example of one implementation of positioning mechanism 102 in Figure 1. Positioning mechanism 300 is an example of a positioning mechanism wherein a larger scale work space is moved with respect to a smaller scale work space to change the
position of the smaller scale work space in the larger scale work space.
Positioning mechanism 300 includes larger scale positioning mechanism 302 and smaller scale positioning mechanism 304.
Larger scale positioning mechanism 302 may be configured to move table 306 in a number of directions. In this example, the surface of table 306 may define a larger scale work space.
Workpiece 308 may be positioned on table 306.
Tool 310 may be attached to smaller scale positioning mechanism 304. Smaller scale positioning mechanism 304 may be configured to move tool 310 in a number of directions within a smaller scale work space defined by smaller scale positioning mechanism 304. Smaller scale positioning mechanism 304 may be supported in a fixed position on support structure 312. Thus, the smaller scale work space is fixed in position in positioning mechanism 300.
Turning now to Figure 4, an illustration of controlling a positioning system is depicted in accordance with an
illustrative embodiment. In this example, larger scale work space 400 is an example of larger scale work space 118 in Figure 1 and smaller scale work space 402 is an example of smaller scale work space 110 in Figure 1. In this example, point 404 indicates the center of smaller scale work space 402. Point 406 indicates the current position of a tool in larger scale work space 400 and smaller scale work space 402. Point 408 indicates a point in larger scale work space 400 to which the tool is commanded to move.
In accordance with an illustrative embodiment, the control signals for controlling movement of the tool include a component indicated by arrow 410 for moving smaller scale work space 402 toward point 408, a component indicated by arrow 412 for moving the tool in smaller scale work space 402 in the direction of point 408, and a component indicated by arrow 414 for moving the tool in the smaller scale work space in the direction of point 404.
Turning now to Figure 5, an illustration of a flowchart of a process for controlling a positioning system is depicted in accordance with an illustrative embodiment. The process of
Figure 5 may be used to control a positioning system comprising a smaller scale positioning mechanism configured to move a tool within a smaller scale work space and a larger scale positioning mechanism configured to change a position of the smaller scale work space within a larger scale work space. For example, the process of Figure 5 may be implemented in positioning system controller 130 to control positioning system 100 in Figure 1.
The process may begin by receiving a position command identifying a commanded position for the tool in the larger scale work space (operation 502) . An error component may be determined using a difference between a current position of the tool in the larger scale work space and the commanded position (operation 504) . A restoring component may be determined, wherein the restoring component is configured to move the tool toward a selected position in the smaller scale work space
(operation 506) . For example, the restoring component may be configured to move the tool toward the center of the smaller scale work space. A stabilizing component may be determined, wherein the stabilizing component is configured to prevent unstable self-motion of the larger scale positioning mechanism (operation 508) . Control signals for controlling the smaller scale positioning mechanism and the larger scale positioning mechanism together to move the tool from the current position to the commanded position then may be generated using the error component, the restoring component, and the stabilizing
component (operation 510) , with the process terminating
thereafter .
Turning now to Figure 6, an illustration of a flowchart of another process for controlling a positioning system is depicted in accordance with an illustrative embodiment. The process of Figure 6 may be used to control a positioning system comprising a smaller scale positioning mechanism configured to move a tool within a smaller scale work space and a larger scale positioning mechanism configured to change a position of the smaller scale work space within a larger scale work space. For example, the process of Figure 6 may be implemented in positioning system controller 130 to control positioning system 100 in Figure 1.
The process may begin by receiving a position command identifying a commanded position for the tool within the larger scale work space (operation 602) . An estimated velocity and acceleration for the commanded position may be determined
(operation 604) . A joint state of the positioning mechanism may be determined (operation 606) .
An error component may be determined using a difference between the commanded position state and the joint state of the positioning mechanism (operation 608) . For example, without limitation, the error component may be determined using a first difference between the commanded position and a first sum of the position of the smaller scale positioning mechanism and the position of the larger scale positioning mechanism and a second difference between the estimated velocity for the commanded position and a second sum of the velocity of the smaller scale positioning mechanism and the velocity of the larger scale positioning mechanism.
A restoring component may be determined (operation 610) . The restoring component may be configured to move the tool toward the center of the smaller scale work space. For example, without limitation, the restoring component may be determined using an integral of the position of the smaller scale
positioning mechanism and the position of the smaller scale positioning mechanism.
A stabilizing component may be determined (operation 612) .
The stabilizing component may be configured to prevent unstable self-motion of the larger scale positioning mechanism. For example, without limitation, the stabilizing component may be determined using the velocity of the larger scale positioning mechanism.
Joint acceleration for the positioning mechanism may be determined using the error component, the restoring component, and the stabilizing component (operation 614) . For example, without limitation, acceleration for the smaller scale
positioning mechanism and acceleration for the larger scale positioning mechanism may be determined using the error
component, the restoring component, the stabilizing component, and the estimated acceleration of the commanded position.
Control signals for the positioning mechanism then may be generated from the joint acceleration (operation 616), with the process terminating thereafter. For example, control signals for controlling the smaller scale positioning mechanism and the larger scale positioning mechanism together to move the tool from the current position to the commanded position may be generated using the acceleration for the smaller scale
positioning mechanism and the acceleration for the larger scale positioning mechanism.
Turning now to Figure 7, an illustration of a block diagram of a data processing system is depicted in accordance with an illustrative embodiment. In this example, data processing system 700 is an example of one implementation of a data
processing system for implementing positioning system controller 130 in Figure 1.
In this illustrative example, data processing system 700 includes communications fabric 702. Communications fabric 702 provides communications between processor unit 704, memory 706, persistent storage 708, communications unit 710, input/output (I/O) unit 712, and display 714. Memory 706, persistent storage 708, communications unit 710, input/output (I/O) unit 712, and display 714 are examples of resources accessible by processor unit 704 via communications fabric 702.
Processor unit 704 serves to run instructions for software that may be loaded into memory 706. Processor unit 704 may be a number of processors, a multi-processor core, or some other type of processor, depending on the particular implementation.
Further, processor unit 704 may be implemented using a number of heterogeneous processor systems in which a main processor is present with secondary processors on a single chip. As another illustrative example, processor unit 704 may be a symmetric multi¬ processor system containing multiple processors of the same type.
Memory 706 and persistent storage 708 are examples of storage devices 716. A storage device is any piece of hardware that is capable of storing information, such as, for example, without limitation, data, program code in functional form, and other suitable information either on a temporary basis or a permanent basis. Storage devices 716 also may be referred to as computer readable storage devices in these examples. Memory
706, in these examples, may be, for example, a random access memory or any other suitable volatile or non-volatile storage device. Persistent storage 708 may take various forms,
depending on the particular implementation.
For example, persistent storage 708 may contain one or more components or devices. For example, persistent storage 708 may be a hard drive, a flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of the above. The media used by persistent storage 708 also may be removable. For example, a removable hard drive may be used for persistent storage 708.
Communications unit 710, in these examples, provides for communications with other data processing systems or devices. In these examples, communications unit 710 is a network
interface card. Communications unit 710 may provide
communications through the use of either or both physical and wireless communications links.
Input/output (I/O) unit 712 allows for input and output of data with other devices that may be connected to data processing system 700. For example, input/output (I/O) unit 712 may provide a connection for user input through a keyboard, a mouse, and/or some other suitable input device. Further, input/output (I/O) unit 712 may send output to a printer. Display 714
provides a mechanism to display information to a user.
Instructions for the operating system, applications, and/or programs may be located in storage devices 716, which are in communication with processor unit 704 through communications fabric 702. In these illustrative examples, the instructions are in a functional form on persistent storage 708. These instructions may be loaded into memory 706 for execution by processor unit 704. The processes of the different embodiments may be performed by processor unit 704 using computer- implemented instructions, which may be located in a memory, such as memory 706.
These instructions are referred to as program instructions, program code, computer usable program code, or computer readable program code that may be read and executed by a processor in processor unit 704. The program code in the different
embodiments may be embodied on different physical or computer readable storage media, such as memory 706 or persistent storage 708.
Program code 718 is located in a functional form on
computer readable media 720 that is selectively removable and may be loaded onto or transferred to data processing system 700 for execution by processor unit 704. Program code 718 and computer readable media 720 form computer program product 722 in these examples. In one example, computer readable media 720 may be computer readable storage media 724 or computer readable signal media 726.
Computer readable storage media 724 may include, for example, an optical or magnetic disk that is inserted or placed into a drive or other device that is part of persistent storage 708 for transfer onto a storage device, such as a hard drive, that is part of persistent storage 708. Computer readable storage media 724 also may take the form of a persistent
storage, such as a hard drive, a thumb drive, or a flash memory, that is connected to data processing system 700. In some instances, computer readable storage media 724 may not be removable from data processing system 700.
In these examples, computer readable storage media 724 is a physical or tangible storage device used to store program code 718 rather than a medium that propagates or transmits program code 718. Computer readable storage media 724 is also referred to as a computer readable tangible storage device or a computer readable physical storage device. In other words, computer readable storage media 724 is a media that can be touched by a person .
Alternatively, program code 718 may be transferred to data processing system 700 using computer readable signal media 726. Computer readable signal media 726 may be, for example, a propagated data signal containing program code 718. For
example, computer readable signal media 726 may be an
electromagnetic signal, an optical signal, and/or any other suitable type of signal. These signals may be transmitted over communications links, such as wireless communications links, optical fiber cable, coaxial cable, a wire, and/or any other suitable type of communications link. In other words, the communications link and/or the connection may be physical or wireless in the illustrative examples.
In some illustrative embodiments, program code 718 may be downloaded over a network to persistent storage 708 from another device or data processing system through computer readable signal media 726 for use within data processing system 700. For instance, program code stored in a computer readable storage medium in a server data processing system may be downloaded over a network from the server to data processing system 700. The data processing system providing program code 718 may be a server computer, a client computer, or some other device capable of storing and transmitting program code 718.
The different components illustrated for data processing system 700 are not meant to provide architectural limitations to the manner in which different embodiments may be implemented. The different illustrative embodiments may be implemented in a data processing system including components in addition to and/or in place of those illustrated for data processing system 700. Other components shown in Figure 7 can be varied from the illustrative examples shown. The different embodiments may be implemented using any hardware device or system capable of running program code. As one example, data processing system 700 may include organic components integrated with inorganic components and/or may be comprised entirely of organic
components excluding a human being. For example, a storage device may be comprised of an organic semiconductor.
In another illustrative example, processor unit 704 may take the form of a hardware unit that has circuits that are manufactured or configured for a particular use. This type of hardware may perform operations without needing program code to be loaded into a memory from a storage device to be configured to perform the operations.
For example, when processor unit 704 takes the form of a hardware unit, processor unit 704 may be a circuit system, an application specific integrated circuit (ASIC) , a programmable logic device, or some other suitable type of hardware configured to perform a number of operations. With a programmable logic device, the device is configured to perform the number of operations. The device may be reconfigured at a later time or may be permanently configured to perform the number of
operations. Examples of programmable logic devices include, for example, a programmable logic array, a programmable array logic, a field programmable logic array, a field programmable gate array, and other suitable hardware devices. With this type of implementation, program code 718 may be omitted, because the processes for the different embodiments are implemented in a hardware unit.
In still another illustrative example, processor unit 704 may be implemented using a combination of processors found in computers and hardware units. Processor unit 704 may have a number of hardware units and a number of processors that are configured to run program code 718. With this depicted example, some of the processes may be implemented in the number of hardware units, while other processes may be implemented in the number of processors.
In another example, a bus system may be used to implement communications fabric 702 and may be comprised of one or more buses, such as a system bus or an input/output bus. Of course, the bus system may be implemented using any suitable type of architecture that provides for a transfer of data between different components or devices attached to the bus system.
Additionally, communications unit 710 may include a number of devices that transmit data, receive data, or both transmit and receive data. Communications unit 710 may be, for example, a modem or a network adapter, two network adapters, or some combination thereof. Further, a memory may be, for example, memory 706, or a cache, such as that found in an interface and memory controller hub that may be present in communications fabric 702.
The flowcharts and block diagrams described herein
illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various illustrative embodiments. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function or functions. It should also be noted that, in some alternative implementations, the functions noted in a block may occur out of the order noted in the
figures. For example, the functions of two blocks shown in succession may be executed substantially concurrently, or the functions of the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
The description of the different illustrative embodiments has been presented for purposes of illustration and description and is not intended to be exhaustive or to limit the embodiments in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. Further, different illustrative embodiments may provide different
benefits as compared to other illustrative embodiments. The embodiment or embodiments selected are chosen and described in order to best explain the principles of the embodiments, the practical application, and to enable others of ordinary skill in the art to understand the disclosure for various embodiments with various modifications as are suited to the particular use contemplated .
Further, the disclosure comprises embodiments according to the following clauses: Clause 17. A method for controlling a positioning mechanism comprising :
receiving, by a processor unit, a position command
identifying a commanded position for a tool within a larger scale work space, wherein a smaller scale positioning mechanism is configured to move the tool within a smaller scale work space and a larger scale positioning mechanism is configured to change a position of the smaller scale work space within the larger scale work space;
determining, by the processor unit, an estimated velocity for the commanded position and an estimated acceleration for the commanded position;
determining, by the processor unit, a position of the smaller scale positioning mechanism, an integral of the position of the smaller scale positioning mechanism, a velocity of the smaller scale positioning mechanism, a position of the larger scale positioning mechanism, and a velocity of the larger scale positioning mechanism;
determining, by the processor unit, an error component using a first difference between the commanded position and a first sum of the position of the smaller scale positioning mechanism and the position of the larger scale positioning mechanism and a second difference between the estimated velocity for the commanded position and a second sum of the velocity of the smaller scale positioning mechanism and the velocity of the larger scale positioning mechanism;
determining, by the processor unit, a restoring component using the integral of the position of the smaller scale
positioning mechanism and the position of the smaller scale positioning mechanism;
determining an acceleration for the smaller scale
positioning mechanism and an acceleration for the larger scale positioning mechanism using the error component, the restoring component, and the estimated acceleration for the commanded position; and
generating control signals for controlling the smaller scale positioning mechanism and the larger scale positioning mechanism together to move the tool from a current position to the commanded position using the acceleration for the smaller scale positioning mechanism and the acceleration for the larger scale positioning mechanism.
Clause 18. The method of clause 17 further comprising:
determining a stabilizing component using the velocity of the larger scale positioning mechanism; and
determining the acceleration for the smaller scale
positioning mechanism and the acceleration for the larger scale positioning mechanism using the error component, the restoring component, the estimated acceleration for the commanded
position, and the stabilizing component.
Clause 19. The method of clause 17, wherein the smaller scale positioning mechanism is attached to the larger scale positioning mechanism and the larger scale positioning mechanism is configured to move the smaller scale positioning mechanism within the larger scale work space to change the position of the smaller scale work space within the larger scale work space.
Clause 20. The method of clause 17, wherein the larger scale positioning mechanism is configured to move the larger scale work space with respect to the smaller scale positioning mechanism to change the position of the smaller scale work space within the larger scale work space.

Claims

CLAIMS :
What is claimed is: 1. An apparatus, comprising:
a smaller scale positioning mechanism configured to move a tool within a smaller scale work space;
a larger scale positioning mechanism configured to change a position of the smaller scale work space within a larger scale work space; and
a positioning system controller configured to receive a position command identifying a commanded position for the tool within the larger scale work space, determine an error component using a difference between the commanded position and a current position of the tool in the larger scale work space, determine a restoring component configured to move the tool toward a
selected position in the smaller scale work space, and generate control signals for controlling the smaller scale positioning mechanism and the larger scale positioning mechanism together to move the tool from the current position to the commanded
position using the error component and the restoring component.
2. The apparatus of claim 1, wherein the selected position is a center of the smaller scale work space.
3. The apparatus of claims 1-2, wherein the positioning system controller is further configured to:
determine a stabilizing component configured to prevent unstable self-motion of the larger scale positioning mechanism, and
generate the control signals for controlling the smaller scale positioning mechanism and the larger scale positioning mechanism together to move the tool from the current position to the commanded position using the error component, the restoring component, and the stabilizing component.
4. The apparatus of claims 1-3, wherein the positioning system controller is configured to:
determine an estimated velocity for the commanded position and an estimated acceleration for the commanded position;
determine a position of the smaller scale positioning mechanism, an integral of the position of the smaller scale positioning mechanism, a velocity of the smaller scale
positioning mechanism, a position of the larger scale
positioning mechanism, and a velocity of the larger scale positioning mechanism;
determine the error component using a first difference between the commanded position and a sum of the position of the smaller scale positioning mechanism and the position of the larger scale positioning mechanism and a second difference between the estimated velocity for the commanded position and a sum of the velocity of the smaller scale positioning mechanism and the velocity of the larger scale positioning mechanism;
determine the restoring component using the integral of the position of the smaller scale positioning mechanism and the position of the smaller scale positioning mechanism;
determine an acceleration for the smaller scale positioning mechanism and an acceleration for the larger scale positioning mechanism using the error component, the restoring component, and the estimated acceleration for the commanded position; and generate the control signals using the acceleration for the smaller scale positioning mechanism and the acceleration for the larger scale positioning mechanism.
5. The apparatus of claims 1-4, wherein the smaller scale positioning mechanism is attached to the larger scale
positioning mechanism and the larger scale positioning mechanism is configured to move the smaller scale positioning mechanism within the larger scale work space to change the position of the smaller scale work space within the larger scale work space.
6. The apparatus of claims 1-5, wherein the larger scale positioning mechanism is configured to move the larger scale work space with respect to the smaller scale positioning
mechanism to change the position of the smaller scale work space within the larger scale work space.
7. The apparatus of claims 1-6, wherein the smaller scale work space is selected from a first two-dimensional area and a first three-dimensional volume and the larger scale work space is selected from a second two-dimensional area and a second three- dimensional volume.
8. The apparatus of claims 1-7 further comprising:
an aircraft component positioned in the larger scale work space and wherein the control signals are configured to control the smaller scale positioning mechanism and the larger scale positioning mechanism together to move the tool to the commanded position on the aircraft component.
9. A method for controlling a positioning mechanism
comprising:
receiving, by a processor unit, a position command
identifying a commanded position for a tool within a larger scale work space, wherein a smaller scale positioning mechanism is configured to move the tool within a smaller scale work space and a larger scale positioning mechanism is configured to change a position of the smaller scale work space within the larger scale work space; determining, by the processor unit, an error component using a difference between the commanded position and a current position of the tool in the larger scale work space;
determining, by the processor unit, a restoring component configured to move the tool toward a selected position in the smaller scale work space; and
generating control signals for controlling the smaller scale positioning mechanism and the larger scale positioning mechanism together to move the tool from the current position to the commanded position using the error component and the
restoring component.
10. The method of claim 9, wherein the selected position is a center of the smaller scale work space.
11. The method of claims 9-10 further comprising:
determining a stabilizing component configured to prevent unstable self-motion of the larger scale positioning mechanism, and
generating the control signals for controlling the smaller scale positioning mechanism and the larger scale positioning mechanism together to move the tool from the current position to the commanded position using the error component, the restoring component, and the stabilizing component.
12. The method of claims 9-11 further comprising:
determining an estimated velocity for the commanded
position and an estimated acceleration for the commanded
position;
determining a position of the smaller scale positioning mechanism, an integral of the position of the smaller scale positioning mechanism, a velocity of the smaller scale
positioning mechanism, a position of the larger scale positioning mechanism, and a velocity of the larger scale positioning mechanism;
determining the error component using a first difference between the commanded position and a sum of the position of the smaller scale positioning mechanism and the position of the larger scale positioning mechanism and a second difference between the estimated velocity for the commanded position and a sum of the velocity of the smaller scale positioning mechanism and the velocity of the larger scale positioning mechanism;
determining the restoring component using the integral of the position of the smaller scale positioning mechanism and the position of the smaller scale positioning mechanism;
determining an acceleration for the smaller scale
positioning mechanism and an acceleration for the larger scale positioning mechanism using the error component, the restoring component, and the estimated acceleration for the commanded position; and
generating the control signals using the acceleration for the smaller scale positioning mechanism and the acceleration for the larger scale positioning mechanism.
13. The method of claims 9-12, wherein the smaller scale positioning mechanism is attached to the larger scale
positioning mechanism and the larger scale positioning mechanism is configured to move the smaller scale positioning mechanism within the larger scale work space to change the position of the smaller scale work space within the larger scale work space.
14. The method of claims 9-13, wherein the larger scale
positioning mechanism is configured to move the larger scale work space with respect to the smaller scale positioning
mechanism to change the position of the smaller scale work space within the larger scale work space.
15. The method of claims 9-14, wherein the smaller scale work space is selected from a first two-dimensional area and a first three-dimensional volume and the larger scale work space is selected from a second two-dimensional area and a second three- dimensional volume.
16. The method of claims 9-15 further comprising:
positioning an aircraft component in the larger scale work space and generating the control signals for controlling the smaller scale positioning mechanism and the larger scale
positioning mechanism together to move the tool to the commanded position on the aircraft component.
PCT/US2013/074450 2013-01-28 2013-12-11 Position control for a positioning system comprising larger scale and smaller scale positioning mechanisms WO2014116360A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/751,981 2013-01-28
US13/751,981 US9278448B2 (en) 2013-01-28 2013-01-28 Position control for a positioning system comprising larger scale and smaller scale positioning mechanisms

Publications (1)

Publication Number Publication Date
WO2014116360A1 true WO2014116360A1 (en) 2014-07-31

Family

ID=49887319

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2013/074450 WO2014116360A1 (en) 2013-01-28 2013-12-11 Position control for a positioning system comprising larger scale and smaller scale positioning mechanisms

Country Status (2)

Country Link
US (1) US9278448B2 (en)
WO (1) WO2014116360A1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9452616B1 (en) 2015-05-29 2016-09-27 The Boeing Company System and method for printing an image on a surface
US10308039B2 (en) 2015-05-29 2019-06-04 The Boeing Company System for printing images on a surface and method thereof
BR112019000728B1 (en) 2016-07-15 2023-03-28 Fastbrick Ip Pty Ltd VEHICLE INCORPORATING BRICK LAYING MACHINE
EP3485109B1 (en) 2016-07-15 2021-09-29 Fastbrick IP Pty Ltd Boom for material transport
AU2018295572B2 (en) 2017-07-05 2022-09-29 Fastbrick Ip Pty Ltd Real time position and orientation tracker
US10831173B2 (en) * 2017-08-11 2020-11-10 The Boeing Company Tool having magnetic material
WO2019033170A1 (en) 2017-08-17 2019-02-21 Fastbrick Ip Pty Ltd Laser tracker with improved roll angle measurement
AU2018348785A1 (en) 2017-10-11 2020-05-07 Fastbrick Ip Pty Ltd Machine for conveying objects and multi-bay carousel for use therewith
US11872780B2 (en) 2022-06-02 2024-01-16 The Boeing Company Methods and tool for cutting an uncured composite material

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5090002A (en) * 1989-03-07 1992-02-18 International Business Machines Corporation Positioning systems employing velocity and position control loops with position control loop having an extended range
EP0455371A3 (en) * 1990-04-24 1992-04-22 Engineering Incorporated Robotic carrier mechanism for aircraft maintenance
JP2735153B2 (en) * 1995-03-03 1998-04-02 工業技術院長 Precision position control device and precision position control method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AGATHE HODAC ET AL: "Decoupled macro/micro-manipulator for fast and precise assembly operations: design and experiments", SPIE CONFERENCE ON MICROROBOTICS AND MICROASSEMBLY, 1 September 1999 (1999-09-01), pages 122 - 130, XP055112051, DOI: http://dx.doi.org/10.1117/12.357816 *
TANG WEN YANG ET AL: "Dynamic Compensation Control of Flexible Macroâ Micro Manipulator Systems", 1 January 2010, IEEE TRANSACTIONS ON CONTROL SYSTEMS TECHNOLOGY, IEEE SERVICE CENTER, NEW YORK, NY, US, PAGE(S) 143 - 151, ISSN: 1063-6536, XP011281072 *

Also Published As

Publication number Publication date
US9278448B2 (en) 2016-03-08
US20140214184A1 (en) 2014-07-31

Similar Documents

Publication Publication Date Title
US9278448B2 (en) Position control for a positioning system comprising larger scale and smaller scale positioning mechanisms
EP3250347B1 (en) Specialized robot motion planning hardware and methods of making and using same
US10303180B1 (en) Generating and utilizing non-uniform volume measures for voxels in robotics applications
US9895803B1 (en) Calculating trajectory corridor for robot end effector
US9981381B1 (en) Real time generation of phase synchronized trajectories
US20160263833A1 (en) Apparatus and method for additive manufacturing
EP3819733A1 (en) Creation of a digital twin from a mechanical model
EP3563270B1 (en) System and method for providing variation in bead size to improve geometrical accuracy of deposited layers in an additive manufacturing process
CN105398053A (en) 3d printing system
JP2018097661A (en) Production system, control apparatus and control method
US20210387229A1 (en) System and Method for Coating a Body
US11675936B2 (en) Unifying multiple simulation models
CN107783501A (en) A kind of numerical control interpolation system of PCIe controls
Liu et al. A method of energy-optimal trajectory planning for palletizing robot
CN204036852U (en) A kind of 3D printer controller
US20140172146A1 (en) Machine control system employing lathe tool and scraping cutter
Ma et al. Robotsculptor: Artist-directed robotic sculpting of clay
US9566648B2 (en) Lathe control system
US10035264B1 (en) Real time robot implementation of state machine
CN103744354A (en) PLC control system for manufacturing robot, and control method thereof
Gonzalez et al. Smooth transition-based control of encounter-type haptic devices
Sagar et al. Multi-goal path planning for robotic agents with discrete-step locomotion
CN103552072B (en) A kind of robot control method based on embedded controller and device
Shen et al. An NC code based machining movement simulation method for a parallel robotic machine
EP3971758A1 (en) Industrial network emulation

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13815314

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13815314

Country of ref document: EP

Kind code of ref document: A1