US20120239199A1 - Coordinated joint motion control system - Google Patents

Coordinated joint motion control system Download PDF

Info

Publication number
US20120239199A1
US20120239199A1 US13/430,602 US201213430602A US2012239199A1 US 20120239199 A1 US20120239199 A1 US 20120239199A1 US 201213430602 A US201213430602 A US 201213430602A US 2012239199 A1 US2012239199 A1 US 2012239199A1
Authority
US
United States
Prior art keywords
control
trajectory
machine
velocity components
joint
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US13/430,602
Inventor
George Danko
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nevada System of Higher Education NSHE
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to US13/430,602 priority Critical patent/US20120239199A1/en
Publication of US20120239199A1 publication Critical patent/US20120239199A1/en
Priority to US14/109,825 priority patent/US9969084B2/en
Assigned to BOARD OF REGENTS OF THE NEVADA SYSTEM OF HIGHER EDUCATION, ON BEHALF OF THE UNIVERSITY OF NEVADA, RENO reassignment BOARD OF REGENTS OF THE NEVADA SYSTEM OF HIGHER EDUCATION, ON BEHALF OF THE UNIVERSITY OF NEVADA, RENO CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: BOARD OF REGENTS OF THE UNIVERSITY AND COMMUNITY COLLEGE SYSTEM ON BEHALF OF THE UNIVERSITY OF NEVADA, RENO
Abandoned legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1651Programme controls characterised by the control loop acceleration, rate control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/1607Calculation of inertia, jacobian matrixes and inverses
    • EFIXED CONSTRUCTIONS
    • E02HYDRAULIC ENGINEERING; FOUNDATIONS; SOIL SHIFTING
    • E02FDREDGING; SOIL-SHIFTING
    • E02F3/00Dredgers; Soil-shifting machines
    • E02F3/04Dredgers; Soil-shifting machines mechanically-driven
    • E02F3/28Dredgers; Soil-shifting machines mechanically-driven with digging tools mounted on a dipper- or bucket-arm, i.e. there is either one arm or a pair of arms, e.g. dippers, buckets
    • E02F3/36Component parts
    • E02F3/42Drives for dippers, buckets, dipper-arms or bucket-arms
    • E02F3/43Control of dipper or bucket position; Control of sequence of drive operations
    • E02F3/435Control of dipper or bucket position; Control of sequence of drive operations for dipper-arms, backhoes or the like
    • E02F3/437Control of dipper or bucket position; Control of sequence of drive operations for dipper-arms, backhoes or the like providing automatic sequences of movements, e.g. linear excavation, keeping dipper angle constant
    • EFIXED CONSTRUCTIONS
    • E02HYDRAULIC ENGINEERING; FOUNDATIONS; SOIL SHIFTING
    • E02FDREDGING; SOIL-SHIFTING
    • E02F3/00Dredgers; Soil-shifting machines
    • E02F3/04Dredgers; Soil-shifting machines mechanically-driven
    • E02F3/28Dredgers; Soil-shifting machines mechanically-driven with digging tools mounted on a dipper- or bucket-arm, i.e. there is either one arm or a pair of arms, e.g. dippers, buckets
    • E02F3/36Component parts
    • E02F3/42Drives for dippers, buckets, dipper-arms or bucket-arms
    • E02F3/43Control of dipper or bucket position; Control of sequence of drive operations
    • E02F3/435Control of dipper or bucket position; Control of sequence of drive operations for dipper-arms, backhoes or the like
    • E02F3/438Memorising movements for repetition, e.g. play-back capability
    • EFIXED CONSTRUCTIONS
    • E02HYDRAULIC ENGINEERING; FOUNDATIONS; SOIL SHIFTING
    • E02FDREDGING; SOIL-SHIFTING
    • E02F3/00Dredgers; Soil-shifting machines
    • E02F3/04Dredgers; Soil-shifting machines mechanically-driven
    • E02F3/28Dredgers; Soil-shifting machines mechanically-driven with digging tools mounted on a dipper- or bucket-arm, i.e. there is either one arm or a pair of arms, e.g. dippers, buckets
    • E02F3/36Component parts
    • E02F3/42Drives for dippers, buckets, dipper-arms or bucket-arms
    • E02F3/43Control of dipper or bucket position; Control of sequence of drive operations
    • E02F3/435Control of dipper or bucket position; Control of sequence of drive operations for dipper-arms, backhoes or the like
    • E02F3/439Automatic repositioning of the implement, e.g. automatic dumping, auto-return
    • EFIXED CONSTRUCTIONS
    • E02HYDRAULIC ENGINEERING; FOUNDATIONS; SOIL SHIFTING
    • E02FDREDGING; SOIL-SHIFTING
    • E02F9/00Component parts of dredgers or soil-shifting machines, not restricted to one of the kinds covered by groups E02F3/00 - E02F7/00
    • E02F9/20Drives; Control devices
    • E02F9/2025Particular purposes of control systems not otherwise provided for
    • E02F9/2037Coordinating the movements of the implement and of the frame
    • EFIXED CONSTRUCTIONS
    • E02HYDRAULIC ENGINEERING; FOUNDATIONS; SOIL SHIFTING
    • E02FDREDGING; SOIL-SHIFTING
    • E02F9/00Component parts of dredgers or soil-shifting machines, not restricted to one of the kinds covered by groups E02F3/00 - E02F7/00
    • E02F9/20Drives; Control devices
    • E02F9/2025Particular purposes of control systems not otherwise provided for
    • E02F9/2041Automatic repositioning of implements, i.e. memorising determined positions of the implement
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39062Calculate, jacobian matrix estimator
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39224Jacobian transpose control of force vector in configuration and cartesian space
    • 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/40495Inverse kinematics model controls trajectory planning and servo system

Definitions

  • the present invention relates to coordinated joint motion control systems, for example, excavating equipment, robotic and semi-robotic arms and certain three-dimensional image generators such as anatomic simulators and to control systems and methods therefor.
  • the mining, construction and other industries are increasingly employing automation and robotics to enhance the efficiency of material processing operations, such as excavation and mining activities, using powered equipment, often with articulated arms having independent joint connections between the links.
  • Some machines have built-in mechanical means to coordinate joint motions.
  • Perreira et al disclose in U.S. Pat. No. 4,763,276 a robot control method intended to locate a robot at a desired position and orientation (pose) wherein an anticipated pose of a robot is predicted, compared with a desired pose and a correcting command signal is employed to place the robot.
  • Chan et al disclose in U.S. Pat. No. 4,893,254 a manipulator arm position sensing method wherein smoother operation of an the movement of the end point of an articulated arm to a preselected target is obtained by computer calculation of joint angle changes using an iterative pseudo inverse Jacobian having a damping factor. Though presumed to be useful for their intended purposes, neither the Perreira et al. nor the Chan et al. methods is suitable for controlling excavation or construction machinery in a manner capable of automating repeated operations and permitting flexible machine operation in a changing or diverse environment.
  • a human supervisor 10 observes the motion and position of an end effector 12 , and provides mission guidance, to a trajectory planner 14 .
  • Trajectory planner 14 selects a software control protocol corresponding with the mission guidance instruction and provides power and motion control to the machine actuators, for example hydraulic pistons and cylinders to execute the mission guidance instruction.
  • the traectory is planned either in Cartesian or joint space.
  • the software control protocol iterates every step needed, including every actuator adjustment, for the end effector to execute the desired trajectory.
  • end effector is used in the context of the invention herein, to reference the ultimate point or object component of the machine or system that is manipulated by the machine or system, for example a tool such as a front end loader shovel or drill, or an object picture in an imaging device.
  • An example of such an integrated, human controlled partially robotic operation is that of a three-boom robotic tunneling drilling machine each boom of which collars, corrects the alignment and drills a hole.
  • a supervisor who is effectively a robotic operator, “manually” checks and corrects the collaring of each pre-programmed drill hole using the machine's joysticks or other manual controls, but employs built-in automation to complete the drilling of each hole. If effective, the collaring and manual correction of the alignment and determination of the coordinates of the next hole can be made while the two other booms are drilling automatically. This is a typical example of sequentially applying operator adjustment and robotic automated control of a predetermined trajectory element.
  • FIG. 2 One known, robot control scheme suitable for control of a joint-based, continuous-path end effector is illustrated in FIG. 2 .
  • the control scheme shown employs a Cartesian trajectory generator 16 and the control architecture allows the motion to be executed at a desired speed and the actual movement to be adjusted relative to the basic trajectory.
  • the desired trajectory is assumed to be predefined, either as a preprogrammed or as a user-recorded pattern.
  • Trajectory generator 20 utilizes a time division base 22 to generate control signals comprising desired joint position, velocity and acceleration signals for moving a particular machine link through a desired trajectory. Trajectory generator 20 employs forward kinematics, using a model to determine where the end effector should be at a future point in time.
  • the control signals are supplied to a joint control system 24 which provides an appropriate power signal to robot actuators 26 .
  • Real-time integration of the operation of any or all levers 16 in each of three Cartesian directions yields machine kinematic configuration and an output which determines the actual Cartesian end effector position 30 over time.
  • Feedback control is provided by position sensors (not shown) at the robot actuators which provide joint position and velocity signals to the joint control system 24 enabling internal position error correction.
  • the three-dimensional trajectory of the end effector can be described by employing a surrogate variable for the definition of the trajectory as functions of three Cartesian position control signals, without specifying velocity.
  • the motion velocity can be given as the tangential velocity along the path.
  • the incremental arc length of the path can be related to the partial displacements in the three Cartesian directions to provide the relationship between time and the surrogate variable for a given motion. This relationship may be assumed to be solved by using an appropriate initial condition for the motion. Further simplification can be obtained for the special case where the selected parameter is identical with the arc length of the path. In this case, the variation of the surrogate parameter over time can readily be determined.
  • Variations in the tool orientation may be described by defining the tool direction with an ordered set of absolute-angle or Euler-angle rotations, one for each degree-of-freedom of the automated robotic machine, in a comparable manner to the description of the translational motions and displacements using a surrogate paramater. If the variation of the parameter with time is based on the position definition, the angular velocities can be defined and no further velocity relationship is needed. Otherwise, a further equation is required to specify the angular velocity, for example by prescribing the rate of the equivalent angular rotation as a function of the surrogate parameter. The position and angular velocities can then be defined in real time.
  • the angular velocities of the ordered rotations with time can be determined based on the foregoing approach, using manipulator kinematics formulations, such as described e.g., by Craig, J. J. (1989) “ Introduction to robotics: mechanics and control.” 2 nd Ed. Addison-Wesley, Reading, Mass.
  • This conventional control system is suitable for continuous path robotic control and in effect models the desired trajectory of the end effector in system space and applies power signals to the machine actuators of an amplitude and duration calculated to achieve the desired trajectory in real space.
  • the end effector can only travel on a preprogrammed path, the control does not permit human supervisory participation, and cannot adapt to new circumstances, such as novel changes in the end effector working environment.
  • FIG. 3 A completely manual control based only on a human operator is shown in FIG. 3 for comparison, as another conventional system.
  • Danko the inventor herein, in “Coordinated Motion Control.” Presentation to Sandwick - Tamrock Personnel, Tampere, Finland in 2000 (“Danko 2000a” hereinafter) described a modification of the conventional robot control scheme shown in FIG. 2 , for human supervisory control, which modification is schematically illustrated in FIG. 3 .
  • human supervisory control of the end effector position and orientation is accomplished by adjusting the motion velocity components of the joint or machine actuators and integrating the individual components with respect to time much as is done in the manual supervisory control scheme illustrated in FIG. 1 .
  • the main component of the motion control is the manual guidance of the tangential and angular velocities along the pre-determined path.
  • Other control inputs can be used to modify the trajectory.
  • Translational and rotational trajectory modifications can be accomplished by adding position correction terms to the absolute position.
  • the solution example requires the combination of ordinary robotic control with a supervisory adjustment which further increases the inherent complexity of a robotic system.
  • the present invention solves the problem of providing a control system for controlling a coordinated joint motion system which provides a coordinated joint motion system which is easy to operate and flexible in the tasks it can undertake.
  • the invention provides a coordinated joint control system, for controlling a coordinated joint motion system the coordinated joint motion system comprising:
  • the system can comprise an internal feedback loop to determine a mathematical model of the coordinated joint motion system and provide a model-based forward predictor for directly controlling the joint actuators, optionally by employing a differential control architecture.
  • the internal feedback loop can generate a differential inverse kinematics model of the machine configuration for a given end effector position and may comprise an inverse Jacobean matrix relating the joint-space variables as a vector, to an input vector of Cartesian variables.
  • control system enables a human supervisor to employ velocity control to adjust and correct the end effector position.
  • the operator interface can comprise a control box employing at least one manually movable member to input control signals and optionally a computer interface for selection of a trajectory and the manually movable member can comprise multiple joysticks.
  • the control system can distribute a control signal from a single joystick to multiple joint actuators.
  • the coordinated joint motion system comprises a mining or construction machine, optionally an excavator and the multiple links comprise a boom revolutely connected to the machine, an arm revolutely connected to the boom and a tool, optionally a bucket, revolutely connected to the arm.
  • the invention provides a coordinated joint control imaging system for imaging a coordinated joint motion system, the coordinated joint motion system comprising:
  • the new differential control architecture of the invention provides a simple control system while permitting integration of operator adjustments into the system.
  • hardware required to implement the invention may comprise a manual electronic electro-hydraulically controlled machine with the addition of joint position sensors and a control computer.
  • position control feedback loops may not be necessary to implement the inventive control system are needed as they are in conventional robotic equipment.
  • position control feedback loops may be employed, if already present in a particular machine, or if available or desired, for added precision.
  • internal velocity feedback loops required, in preferred embodiments, but their utilization e.g. in the form of application method electro-hydraulic servo valves, may increase precision.
  • the new solution can be considered as blending, preferably continuously and in real time, operator machine control with automatic control by re-distributing the operator's velocity control components into machine joint velocity components according to a selected and/or predetermined and/or optimized trajectory characteristic, given e.g. in the form of a differential relationship between partial motion components either in joint or Cartesian (real-world) co-ordinates or partial velocities.
  • Preferred embodiments of the present invention are capable of providing novel control systems and methods for coordinated joint motion systems which enable repeated tasks to be carried out automatically by the machine but which permit a human supervisor or operator to make corrections or adjustments, if necessary, and preferably also to select, import and/or create one or more predefined trajectories for the machine to execute.
  • One particular preferred embodiment provides a hydraulically powered excavating machine embodying a preferred inventive control system which is easy to operate and flexible in the tasks it can undertake.
  • FIG. 1 is a block flow diagram showing, in simplified form, a prior art high-level control schematic of an automated robotic machine employing a human supervisor;
  • FIG. 2 is a block flow diagram showing, in simplified form, a prior art joint-based, continuous-path robot control scheme
  • FIG. 3 is a block flow diagram showing, in simplified form, a prior art modification of the robot control scheme shown in FIG. 2 for human operator control;
  • FIG. 4 is a side elevation of a powered shovel embodying a coordinated joint motion control system according to the invention.
  • FIG. 5 is a schematic view of a motion control system according to the invention for the powered shovel shown in FIG. 4 ;
  • FIG. 6 is a block flow diagram of a continuous differential control architecture according to an embodiment of the invention for operating the motion control system illustrated in FIG. 5 ;
  • FIG. 7 is a schematic view illustrating the creation of a family of two-dimensional trajectories for use by the differential control architecture illustrated in FIG. 6 ;
  • FIG. 8 is a view similar to FIG. 7 of another parallel trajectory family that may be employed in the invention.
  • FIG. 9 is a time-lapse schematic depiction, in graphic form, of a first cut in a simulated prior art excavation operation employing a manually controlled front shovel;
  • FIG. 10 is a view similar to FIG. 9 of second and third cuts in the simulated prior art excavation operation
  • FIG. 11 is a time-lapse schematic depiction, in graphic form, of a simulated three-cut excavation operation employing an embodiment of differential control architecture according to the invention.
  • FIG. 12 is a schematic view of one example of a desirable excavation trajectory
  • FIG. 13 is a view similar to FIG. 11 of a first cut employing the desirable excavation trajectory illustrated in FIG. 12 ;
  • FIG. 14 is a view similar to FIG. 11 of a third cut employing the desirable excavation trajectory illustrated in FIG. 12 ;
  • FIG. 15 is a schematic view illustrating virtual configuration of an articulated machine such as an excavator using an embodiment of differential control architecture according to the invention.
  • FIG. 16 is a schematic view of another embodiment of differential control architecture according to the invention, which architecture is useful for virtual machine configuration;
  • FIG. 17 is a schematic view illustrating the application of an embodiment of the differential control architecture of the invention to simulation of the motion of a coordinated joint system, the particular example illustrated being an anatomical coordinated joint system, namely the human right arm; and
  • FIG. 18 is a block flow diagram of another embodiment of differential control architecture according to the invention suitable for effecting the simulation illustrated in FIG. 17 .
  • the coordinated joint motion control system of the invention and the control architecture embodied therein are here described, for illustrative purposes only and without limitation, in its application to the control of a particular machine 100 , namely mechanical excavator, more specifically a front end shovel loader. It will, however be understood that the control system and architecture have a wide variety of applications, some of which are described or referenced herein, including for example, to robotic arms and other articulated mechanical systems capable of performing a diversity of functions having repetitive elements as well as to other systems such as anatomic simulators.
  • the invention provides a motion control process for controlling the movement of an apparatus or machine employing manually operated multi-dimensional joysticks and a novel differential joint control architecture.
  • the control signal generated by an individual joystick is not dedicated to an individual actuator but can be distributed to multiple actuators.
  • one or more of the joystick signals may comprise number of joint motion parameters for the multiple actuators.
  • the joint motion parameters may be differentially based on the instantaneous inverse or pseudo-inverse of the Jacobian of the machine or apparatus.
  • the invention includes a control apparatus or machine, particularly but not exclusively an apparatus or machine employing a coordinated joint or articulated arm system, which apparatus or machine embodies the inventive motion control process to control movement of the apparatus or machine.
  • the invention further extends to electronic systems for rendering graphical, three dimensional image in space, and optionally also in time, of coordinated joint systems, for example anatomical systems such as the human arm, illustrating its articulation, and to the rendered images on screen, in print, in electronic storage or in other media.
  • the distribution of joystick control can be accomplished dynamically during motion based on a pre-programmed trajectory family, or pre-defined coordinate system, or a pre-defined control kinematics. If the Jacobean is non-singular, the inverse is calculated. If the joint parameters are over-determined relative to the end-effectors' Cartesian trajectory coordinate parameters, the least-square fit solution of the set of over-determined equations replaces of the inverse as a pseudo inverse. If the set is under-determined, additional constraints are added to aid the inverse solution. For the sake of simplicity of discussion, the existence of the inverse Jacobean is assumed.
  • the coordinated control is differential and represented by the Jacobean of the pre-defined desired control kinematics. Other components of the coordinated control are the desired starting point and the velocity component of the motion.
  • Coordinated joint parameters control greatly simplifies the control of machine tools or graphical objects through a desired task e.g., for navigating them through a course between obstacles.
  • Artificial intelligence can be used to obtain the optimum trajectory family for typical, repetitive tasks.
  • Sensory input can be used to obtain the optimum coordinate system for using as a pre-defined system.
  • Global positioning system can use sensory input for coordinate system definition.
  • a computer frame main space layout can be a pre-defined coordinate system.
  • a surveyed underground or surface mine coordinates can also be entered as a pre-defined coordinate system.
  • a fully autonomous target trajectory control system can utilize the differential coordinated joint manipulation. Such an application may arise in fitting a multi-link human body motion to captured images.
  • a new control architecture is advantageous to provide real-time operator support using programmable, automated coordination of the motion of the machine joints, while still retaining full manual control, if needed.
  • the new control architecture allows re-defining the machine inherent motion kinematics characteristic into a task-specific kinematics that fits a desired task optimally.
  • the definition of the task-specific kinematics can be re-programmed.
  • the control computer can be trained for recognising the desired coordinated movement pattern.
  • the machine movement follows the trained path while the operator still retains the master control for the overall trajectory parameters and the motion velocity.
  • the new control architecture allows for the optimisation of the control of the machine during operation.
  • An example is provided, based on robotic simulation and analysis, to illustrate the operator-assisted control of a front shovel.
  • the new architecture is based on the recognition that there is no need to generate an integrated path in the control computer model-space and then differentiate the trajectory for joint variable control during real-time machine control.
  • the differentiating control architecture shown in FIG. 1 , does not use joint position control loops.
  • a main, Cartesian position control loop is applied to each motion component through visual feedback to the supervisory operator.
  • the main position control signal can be control velocity, as a most common example characteristic to hydraulic power machinery. Through velocity control, the operator adjusts and corrects the tool position.
  • An internal feedback loop is applied to generate a differential inverse kinematics model of the machine configuration for a given position. This model is the inverse Jacobean, a sensitivity matrix that relates the joint-space ⁇ variables as a vector, to an input vector of Cartesian variables x i .
  • the architecture uses joint position variables only for the determination of the Jacobean, i.e., the matrix of the partial derivatives for a given position.
  • the internal feedback therefore, is accomplished through the determination of the mathematical model of the machine, and not through a signal. Consequently, the new differential control architecture realizes a model-based forward predictor through which the joint actuators are directly controlled
  • a front end shovel loader comprises a tracked motive under carrier or ground-engaging system 101 supporting a rotatable turret 102 .
  • Rotatable turret 102 has a cab 103 to house a human supervisory operator and supports one end of an articulated positioning unit 104 for manipulating a tool or other end effector supported at the other end of positioning unit 104 .
  • Positioning unit 104 comprises a boom 105 articulated to turret 102 for rotation about a pivot 106 , thereby providing a boom joint.
  • One end of a lever arm 108 is articulated to boom 104 for rotation about a pivot 110 , thereby providing an arm joint, while the other end is articulated to and supports a tool, in this case a shovel or bucket 112 , for rotation about a pivot 114 , thereby providing a tool joint, such rotations all being about axes perpendicular to the plane of the paper.
  • a tool in this case a shovel or bucket 112
  • the example illustrated in the drawings comprises revolute joints having one or multiple degrees of freedom, other joints may be utilized, for example prismatic joints.
  • the tilt or orientation of shovel 112 is preferably also variable, for which purpose shovel 112 can be mounted with two further degrees of rotational freedom about axes in the plane of the paper by means (not shown).
  • Such further shovel rotational means may comprise, for example, a first pivotal attachment to the distal end of arm 108 providing rotation about a longitudinal arm axis extending through pivots 110 and 114 and a second axis perpendicular thereto, also extending through pivot 114 .
  • Piston-and-cylinder hydraulic actuators 116 , 118 and 120 control the motion and position of boom 105 , arm 108 and shovel or bucket 112 , respectively.
  • Each actuator 116 - 120 is pivotally secured at its ends and cylinder 120 is connected to shovel 112 through an articulated link 122 to enhance its leverage.
  • One or more leveling, guide or ancillary cylinders such as leveling cylinder 124 can be provided if desired.
  • actuators such as 126 can optionally also be provided for moving and positioning other elements or systems, for example turret 102 , and ground-engaging system 101 , as will be further described hereinbelow.
  • each actuator 116 - 120 and 126 is operated by its own, local hydraulic control unit 130 - 136 , respectively, which control unit receives a signal from a joint control coordinator 138 b and controls its associated actuator 116 , 118 , 120 or 126 to provide a suitable output, namely a desired position and/or velocity of the associated articulated element 104 , 108 , 112 or 128 , determined by the joint control coordinator 138 b based on the forward input from the differential control kinematics generator 138 a and the feedback input from the machine differential kinematics feedback generator 138 c.
  • Each articulated element 104 , 108 , 112 or 128 is provided with a transducer sensor 140 - 146 to detect preferably at least the position of the respective articulated element 104 , 108 , 112 or 128 with respect to its supporting element, and report the sensed position, preferably as a continuous or time-divided signal, to the machine differential kinematics feedback generator 138 c.
  • a control box 140 comprises a suitable number of manually operable control members or joysticks 142 which can be moved, pressurized or otherwise manipulated by a human supervisor 144 to the boom 104 and/or arm 108 and/or shovel 112 and/or other elements according to a desired trajectory.
  • Joysticks 142 may be the same or different and may comprise any convenient and suitable manually operable input member such as a pivotable lever, wheel, slide, key, button or set of keys or buttons or comprise a pointing device such as a mouse, trackball or the like.
  • pivoted levers are common.
  • Conventional powered shovels and other such articulated hydraulic machinery employ at least one joystick for each powered joint.
  • this number may be varied, as will become apparent hereinbelow. Additional joysticks may be provided for operation of rotatable turret 102 and, possibly also for the drive to ground-engaging system 101 to move the powered shovel around, or to or from, a work site, or for other desired purposes.
  • control box 140 The signal outputs from control box 140 are supplied to the differential control kinematics generator 138 a that is provided with suitable data storage means, such as a hard drive, optical drive and the like. Suitable software and/or programs, as are known in the art of control computers or other appropriate art, for implementing the processes of the invention may be stored on such data storage means, or may be remotely accessed by central computer 138 .
  • the differential control kinematics generator 138 a is also be provided with conventional input output devices such as mouse, keyboard, touch pad or touch screen, monitor printer data transfer means such as radio wave input/output, removable data storage media, and so on, enabling human supervisor 144 to interface with the unit and mediate the operation of, for example, positioning unit 104 , if desired.
  • human supervisor 144 Such mediation or intervention by human supervisor 144 enables supervisor 144 to change the response of the control system to one or more inputs received by control box 140 to modify a programmed response or to choose a desired response from multiple possible preprogrammed responses, as will be further described hereinbelow.
  • the differential control kinematics generator 138 a , joint control coordinator 138 b , and machine differential kinematics feedback generator 138 c are preferably realized in a common central computer 138 .
  • the central computer 138 provides a visual display which can include schematic representations of the real machine's configuration and virtual machine configurations that can be employed by human supervisor 144 as well preferably as available calculated and learned trajectories which can be made available for selection by human supervisor 144 .
  • machine 100 may be equipped with cameras providing one or more views of the tool and the work area, which views can be displayed by the computer, and optionally integrated with the control programs to enhance the control system.
  • human supervisor 144 uses computer 138 to input, or select a predetermined shovel trajectory, for processing by trajectory generator 146 .
  • Trajectory generator 146 employs a differential time base 148 to generate a differential trajectory with transformation which outputs to differential inverse kinematics model 150 which is generated based on a Jacobian generator 152 .
  • Differential inverse kinematics model 150 provides a value, series of values or continuous signal for each machine joint to be moved; which may be the double differential with respect to time of the particular joint angle ⁇ .
  • Control system 154 preferably comprises relevant processing components of central computer 138 and control units 130 - 136 . Operation of control units 130 - 136 imparts suitable positioning and velocity to actuators 116 - 120 and 126 , providing a desired machine kinematics configuration 156 to the machine 100 .
  • Sensors 140 - 146 read the positions and optionally the velocities of actuators 116 - 120 and 126 which values or signals are applied to Jacobian generator 152 both directly and after forward kinematics processing 158 .
  • Human supervisor 144 observes the machine, notably the performance of the end effector, shovel 112 , but also the configuration of the boom 104 and the articulated arm 108 , and can employ visual feedback 160 to control trajectory generator 146 , or to apply tool trajectory adjustments using joysticks 142 or to select a different or modified trajectory using central computer 138 .
  • An optional artificial intelligence component 162 receiving input from machine actuators 116 - 120 , 126 and human supervisor 144 can be used to provide to trajectory generator 146 a desirable or optimum trajectory family for typical, repetitive tasks.
  • the term “trajectory” refers to a series of motion coordinates of an end effector, e.g. a tool or shovel 112 , which represent a number of consecutive motion positions or a locus of the motion of the end effector within a time frame;
  • machine kinematics refers to the relationship between the actuators' positions or movements and the end effector's position or movement;
  • the signal generated by an individual joystick 142 can be distributed to more than one actuator 116 - 120 and 126 .
  • the distribution of the joystick control is accomplished dynamically, while the system is in motion, using a pre-programmed trajectory family, or pre-defined coordinate system, or a pre-defined control kinematics.
  • control system illustrated in FIG. 6 employing differentiating control architecture, does not use joint position control loops.
  • a main, Cartesian position control loop can be applied to each motion component through visual feedback from the human supervisor 144 .
  • position feedback loops may optionally be employed for linearization, backlash compensation and/or to achieve added stability.
  • the main position control signal is control velocity, as a common example characteristic of hydraulic power machinery.
  • the human supervisor 144 can adjust and correct the tool position.
  • An internal feedback loop is applied via sensors 140 - 146 , forward kinematics 158 and Jacobian generator 152 to generate differential inverse kinematics model 150 of the machine configuration for a given tool position.
  • a model is generated of how the machine should be configured, which model specifies parameters such as the angular position and velocity of each joint.
  • this model can be an inverse, or pseudo inverse, Jacobian, a sensitivity matrix that relates the joint-space 6 variables as a vector, to an input vector of Cartesian variables x i .
  • a Jacobian is useful, inter alia, for effecting transformations between polar coordinates and Cartesian coordinates.
  • the Jacobian is a linear relationship between various possible changes in joint space and various possible changes in workspace.
  • General approaches are known for calculating an inverse Jacobian for coordinated joint systems and such methods may be used in the present invention as will be apparent to those skilled in the art.
  • One approach suitable for application in the embodiment of the invention illustrated in FIG. 4 on will now be described, by way of example.
  • x i is the Cartesian acceleration in direction x i
  • ⁇ t is the joint-space acceleration in direction ⁇ i
  • differentials are with respect to time increment “dt”.
  • the control architecture can use joint position variables alone for the determination of the Jacobian, providing the following possible matrix of the partial derivatives for a given position:
  • the novel differential control architecture comprises a model-based forward predictor, differential inverse kinematics model 150 , through which the joint actuators 116 - 120 , 126 are directly controlled.
  • dt differential time base
  • v(t) is the motion velocity controlled by the supervisor 144 .
  • the ⁇ f i / ⁇ s derivatives are determined by the predefined trajectory. Since differentiation eliminates any additive constants in the parametric trajectory, the movement can be originated from any starting point. Consequently, a trajectory family or families in the form of one or more sets of parallel trajectory curves can readily be generated by trajectory generator 146 by applying Equation (3).
  • Parallel shifting of the trajectory during motion can be accomplished by super-imposing the control velocities of Equation (3) and the modification velocity component ⁇ dot over ( ⁇ ) ⁇ i T , controlled by the supervisor 144 in machine joint space:
  • Equation (6) describes differential trajectory generation with coordinate transformation such, for example, as is illustrated in FIG. 7 .
  • Equation 6 Some examples of the physical meaning of the terms on the right-hand side of Equation 6 are as follows:
  • FIG. 7 there is shown an a priori or predefined trajectory 170 in a base coordinate system 172 extending in orthogonal directions x 2 and x 2 which trajectory has a sinuous shape.
  • An end effector position A is located a distance s from a home position H.
  • a parallel trajectory 174 in a transformed coordinate system 176 is also shown, in broken lines, which is illustrative of how a family of trajectories parallel to predefined trajectory 170 .
  • Parallel trajectories such as 174 may be generated by modifying the two-dimensional translational trajectory vectors of predefined trajectory 170 by adding position correction terms x 1 T and x 2 T to the absolute position coordinates in Equation (6) resulting in displacement of end effector position A to a new position B.
  • Three-dimensional and rotational embodiments of the parallel trajectory may be generated by adding corresponding third dimension and rotational corrections.
  • a family of trajectories may be generated by varying the values of the corrections.
  • the particular coordinate transformation employed may be selected by supervisor 144 and represents a parallel, similarity coordination between the individual control directions in addition to the one defined by the basic trajectory.
  • the a priori or predefined trajectory 170 and its derivatives such as parallel trajectory 174 define a trajectory family.
  • the parallel trajectory family shown comprises a curvilinear digging trajectory family in an orthonormal s-n coordinate system.
  • This family and other families of parallel trajectories that will be apparent to those skilled in the art may be employed in the invention to provide more or better choices to supervisor 144 .
  • a range of available trajectory families and their parameters is graphically displayed to supervisor 144 for selection and implementation.
  • the new optimized trajectory is recorded and added to a menu of trajectory selection available to supervisor 144 .
  • Software programming associates with each trajectory a corresponding implementation of the machine kinematics to control the automated robotic machine 100 to perform the trajectory.
  • the original functions of joysticks 142 are re-defined to distribute their outputs among actuators 116 - 120 and 126 for greater efficiency. If desired, each joystick 142 may instruct the coordinated movement of several of actuators 116 - 120 and 126 , depending on the need to simplify the control of a given task.
  • supervisor 144 can activate the appropriate machine kinematics corresponding with the new trajectory to perform the relevant task by selecting the new trajectory from a menu or visualization in graphical display, or by other suitable activation means.
  • Another preferred embodiment of the invention includes artificial intelligence component 162 integrated into the control architecture to identify one or more typical repetitive elements of the machine's movements.
  • the machine 100 goes through a teaching period where multiple predefined trajectories are input to the systems and stored by central computer 138 . Suitable trajectories can be manually input by supervisor 144 or could be electronically supplied from simulations or experience with or training of other similar machines.
  • Artificial intelligence component 162 of the control architecture can then review all the predefined trajectories and determine a best possible or most suitable common trajectory of all the input trajectories for a particular machine task e.g. “fill bucket” or “dump load”, or trajectory e.g. “high swing”. The selected common trajectory can be determined for each relevant link. The artificial intelligence component 162 can determine the optimum parameters for the differential trajectory generation with transformation units. The supervisor 144 is then notified by the artificial intelligence component 162 that a satisfactory common trajectory has been successful determined. From this point, the supervisor 144 can execute an optimized trajectory which can be further adjusted real-time in an ever-changing uncontrolled task environment with the new control architecture of the invention.
  • Appendix 1 An exemplary computer program simulating the application of the inventive differential control architecture to the control of an excavator, using a coordinate system transformation is given in Appendix 1 to this specification.
  • Appendix 1 program three machine actuators are coordinated by one control signal from a simulated joystick.
  • Subroutine functions used in the main program are given in Appendix 4.
  • the appendices employ MATLAB “The Language of Technical Computing, The Mathworks Inc., Version 6.1, 2001.
  • MATLAB is an enginnering computational and visualization package.
  • a large mining front shovel for example a Caterpillar model E650, is chosen as the automated robotic machine 100 on which to demonstrate the application of the differential control architecture of the invention.
  • Three operating constraints (referenced “the three specified operating constraints” hereinafter) are used in comparison exercises between fully manual control and control using the inventive differential control method: (1) to fill three buckets from one base position, (2) to reduce the complexity of the manual control by reducing the number of joints simultaneously moved, and (3) to produce an identical excavation profile at the end of the third bucket fill to the initial profile.
  • the last requirement is useful for emulating continuous shovel operation with a three-bucket load per machine advance excavating on a repeating pattern.
  • a conventional manual use of the machine 100 is graphically emulated using a simple graphical imaging tool for robotics by Danko (2000b) “Robotics Teaching support tools” or “Introduction to Robotics,” a 3-credit graduate course taught at the University of Technology, Helsinki, Finland.
  • FIG. 9 shows the automated robotic machine 100 executing an indicated first cut with time-lapse graphics showing the moving machine link positions at discrete time intervals.
  • the three specified operating constraints can only be satisfied by executing a steep, highly unrealistic excavation profile wherein boom 105 is extended forwards and upwardly and arm 108 is close to the horizontal throughout its pivoting movement.
  • both arm 108 and bucket 112 are moved; which requires operator coordination of both movements.
  • a previous machine position indicated in dotted lines, where the indicated previous excavation profile was executed.
  • the second bucket loading also needs coordination of the movements of two “links” arm 108 and bucket 112 , while the third, finishing cut can be made by controlling arm 108 only, i.e. by swinging arm 108 about pivot 110 without changing the orientation of bucket 112 relative to arm 108 about pivot 114 .
  • FIG. 11 illustrates that excavation along a different, more practical profile, for example a slope at an angle close to the angle-of-repose of a muck pile, requires the coordinated movements of all three joints at pivots 106 , 110 and 114 .
  • Employment of the differential control architecture for the execution of these complex control requirements provides a satisfactory outcome wherein the machine 100 can rake along a pre-defined slope angle in three layers from one base position, with simultaneous bucket angle adjustment, as shown in FIG. 11 .
  • FIG. 12 One possible desirable or even optimal predetermined trajectory for excavating along a slope is shown in FIG. 12 where f is the distance of horizontal excavation advance; s is the arc length; B is the bucket edge; H is the starting point and ⁇ b is the bucket angle.
  • the trajectory parameters illustrated in FIG. 12 may be generated by adjustment of an a priori trajectory, by the human supervisor 142 .
  • One suitable computer algorithm for effecting the FIG. 12 trajectory is given in Appendix 2, by way of example.
  • the excavation profile is a spline arc with a horizontal beginning at H and an end tangential to the slope sg.
  • the slope grade sg and the excavation advance f are variable parameters.
  • the parametric trajectory is defined by the derivatives with respect to the motion along the arc, and is therefore independent of the starting position. Therefore, the same basic trajectory can be used to emulate the first and the second bucket fills, as illustrated by the excavation trajectories shown in FIGS. 13 and 14 .
  • the third bucket fill employs a somewhat different, basic trajectory, a “cleaning trajectory”, so as to finish with a horizontal bench surface, followed by a raking motion along the slope until the height of the second cut is reached.
  • Each of the parallel, inclined, straight cutting trajectories illustrated in FIGS. 11-14 can be created using only one joystick control 142 , simultaneously coordinated to the boom, arm and bucket actuators 116 - 120 . Simulated, straight-line trajectories are shown in FIG. 11 . Shift of the cutting line normal to the slope can be accomplished by positioning the bucket cutting edge to a starting point by another joystick. Although this second joystick remains active during the control of the movement along each cut, it requires no action from the super-operator for one cut along the slope.
  • the differential control architecture of the invention can be employed to enable human supervisor 144 to configure machine 100 as a virtual machine, so that, for example, a small machine will follow joystick control according to the kinematics characteristics of a large machine.
  • FIG. 15 shows in solid line the relatively shorter boom 105 , arm 108 and bucket 112 of a small machine 100 .
  • a large virtual machine comprising a relatively longer boom 105 ′, arm 108 ′ and bucket 112 ′.
  • Human supervisor 144 can define the virtual machine and obtain the motion kinematics for a large machine enabling human supervisor 144 to select the virtual machine and have, for example, the small real machine move like a large machine.
  • the real machine responds in motion to one or more joysticks 100 as though it were a large machine.
  • Human supervisor 144 can directly control the virtual angles ⁇ 1 T , ⁇ 2 T and ⁇ 3 T with joysticks 142 .
  • the real machine moves according to the virtual machine kinematics, represented by the control kinematics inverse Jacobian, J c ⁇ 1 .
  • FIG. 16 One suitable differential control architecture for virtual configuration of an articulated machine in the manner described with reference to FIG. 15 is shown in FIG. 16 , in which ⁇ j denotes the user-selected parameters of the virtual machine kinematic configuration. Other symbols having meanings consistent with or parallel to their usages elsewhere herein.
  • the operation of the differential control architecture illustrated in FIG. 16 and modifications thereof or other suitable architectures for controlling an articulated machine for virtual operation will be, or will become, apparent to those skilled in the art from the disclosure herein.
  • Script Demo1 controls the machine image movement in x-y Cartesian coordinates while the x-y coordinate system can be user-rotated between +/ ⁇ 45 degrees.
  • Script Demo2 controls the machine image according to a pre-defined differential cutting trajectory.
  • FIGS. 11-14 show that the inventive control architecture application can be used not only for effective and efficient control of an articulated machine, but also for creating related 3D images, for example, as shown, a complete schematic of an excavator executing coordinated joint control.
  • the human supervisor 144 is, in most cases, an important element of the machine's control architecture.
  • the human supervisor 144 guides the machine 100 based on visual feedback and determines the preferred trajectory for a given task.
  • differential, coordinated joint motion control system of the invention may be applied to control problems that do not require a human operator or human supervisor as an element in a control loop. Such an application may arise when a multi-joint machine is required to follow a particular trajectory or trajectories generated by measurement and/or a mathematical model or models.
  • inventive concepts relating to the distribution of joint control velocity components from a single joystick 142 to multiple, or all, joint actuators can, pursuant to the present invention, be applied, with suitable adaptation to other problems involving the control, characterization, representation or simulation of coordinated joint systems.
  • One example is the graphical matching problem of a captured, filmed, digitized, or otherwise scanned image to a physical model, for example an anatomical model or subject.
  • Another problem, some solutions of which have been described hereinabove, is that of providing a graphical representation of a multi-linked machine.
  • the trajectories to be followed are the measured, and recorded paths of body points or markers, and the end effectors are the corresponding points on the multi-linked biomechanical model of the human body.
  • Matching the model to the measured trajectory with the use of the inventive, coordinated, joint motion control system can be advantageous and provide new solutions to evaluating joint parameters related to motion characteristics, and to evaluating muscle forces and torques in the human body.
  • Such matching methods and systems may be utilized for research, teaching, rehabilitation, athletics training, prosthetics design and other purposes as will be apparent to those skilled in the art.
  • the human supervisor 144 's visual feedback can be replaced by an automated error evaluator that calculates the difference between the measured or desired trajectory points and those calculated from a biomechanical forward kinematics model.
  • the error evaluator also reduces this difference by correcting the joint actuator velocities coordinately in a manner analogous to the way the inventive control architecture supports control by the human supervisor 144 in the above-described excavator examples.
  • FIG. 17 depicts the example of captured, or measured, [X i c ] and modeled [X i ] trajectories of part of a human right arm depicted as a three-link revolute machine.
  • FIG. 18 is a schematic chart of one embodiment of the application of the inventive joint velocity control coordination system for efficiently achieving a best fit of a modeled trajectory to a captured trajectory.
  • the illustrated method is intended to be iterative for each time interval until the best square fit between the desired trajectory, which is to say the measured or captured trajectory and the system executed or modeled trajectory is achieved. While the performance of the method is believed clear from FIG. 18 when read in conjunction with FIG. 17 , in light of the description herein, nevertheless, the control concept will now be described in more detail to illustrate the application of the inventive differential control principles in this coordinated joint manipulation example.
  • the trajectory for each X i point is guided by the captured trajectory X i c .
  • the velocity components ⁇ dot over (x) ⁇ i ⁇ dot over (y) ⁇ i and ⁇ i can be calculated from the X i c vector for each time interval by numerical derivation.
  • Cubic spline or other suitable smoothing of the trajectories can be used to achieve reliable derivatives.
  • Cubic spline smoothing of the trajectory function in arc-length parametric form, X i F i (s i ), can also be used, if desired.
  • the control velocity is the sum of two components, the first term, for following the captured trajectory, and the second term, for correcting the matching error, ⁇ X i E (t):
  • the matching error correction velocity vector ⁇ dot over (X) ⁇ i E can be iteratively calculated from finite differences (or higher-order differential schematics if deemed necessary) for each time step which is to say for each consecutive frame, as follows:
  • the control velocity vectors in Equation 7 are preferably distributed to the individual joints in terms of joints angular velocity components. This can be accomplished by applying the differential joint control coordination control concept based on a differential inverse kinematics model of the human body. It is convenient to assume that the trajectory coordinate data set over-determinates the set of joint angles. Therefore, a least-square-fit solution can be obtained for the joint motion velocities:
  • a further optimization loop is included in FIG. 18 to permit a further reduction in the multi-dimensional distance error, measured in root-mean-square norm, by varying the [ ⁇ i ] set. Fast convergence is achieved since every consecutive [X i ] set, being an element of the time-series of the positions, uses the previous set as a good initial approximate position.
  • inventive systems and methods enable the design of efficient computational algorithm equipment applicable to problems associated with coordinated joint systems or related or equivalent systems, as will be apparent to those skilled in the art.
  • the invention also provides a new level of operator control that can be called human supervisory control wherein the operator is relieved of repetitive and challenging manipulative tasks but serves a high level function selecting monitoring and adjusting automated machine performance.
  • the present invention provides human supervisor 144 control of an automated robotic machine 100 which with the inventive control architecture can be adapted to one or more given task-types by selecting from pre-programmed software-defined machine kinematics.
  • New machine kinematics can also be created by training the machine to a new kinematics in a new coordinate system.
  • Tool movement trajectory cant be directed point-to-point using one or more control joysticks or lever arms that are dynamically defined to control a number of machine actuators.
  • the control of the same trajectory may be accomplished using only one joystick.
  • Repeated tasks are built into the new control system's trajectory generator. The efficiency of task execution increases through the refinements of the control parameters either by the operator or the artificial intelligence component of the control system. possible to repeat a pre-defined trajectory.
  • Remote control with the new architecture provides better control since part of the trajectory control is supported by a priori trajectory characteristics. Remote control in poor visibility employing one or more cameras other viewing systems is a feasible embodiment of the invention and can be safe and efficient to execute.
  • wireless remote communication may be used to transmit the control signals.
  • An automated machine with a traditional robotic control architecture requires high-precision components to be used in the embedded, joint position control loops.
  • Another disadvantage is that complex algorithms are needed to combine the operator control components with the pre-defined trajectory feature of a conventional, robotic equipment with trajectory planner.
  • the differential control architecture of the present invention in preferred embodiments can provide a number of advantageous features.
  • Preferred inventive differential control schematics can apply simple velocity-controlled actuators that are similar to those of an electro-hydraulic, manual machine equipped with additional joint position sensors.
  • the additional inventive control architecture can be implemented by modifying the control joystick circuits and the human supervisor's user interface often without significant other modifications.
  • the inventive control architecture can accept a selection of parametric a priori trajectories.
  • the inventive system provides flexibility.
  • re-programming of the motion can be made through motion modification control executed in a transformed or joint space coordinate system.
  • Operator support optimization and computational assistance can be incorporated in the determination and selection of a basic trajectory, representing a motor schema of the motion.
  • the invention may favorably impact the performance of model-based evaluation of time-seriesed captured images.
  • the present invention is particularly, but not exclusively, suitable for application in the mining and construction and image matching and generation industries providing a flexible control of equipment in an unstructured environment.
  • the invention can provide relief to an operator by supporting automatic control regarding repetitive trajectory elements.
  • APPENDIX 1 Differential control architecture example to generate a sequence of computer images representing an excavator. Three actuators are coordinated by one control signal, of a simulated joystick. The coordinated control is based on coordinate transformation.
  • APPENDIX 2 Differential control architecture example to generate a sequence of computer images representing an excavator. Three actuators are coordinated by one control signal, of a simulated joystick. The control is based on a defined parametric trajectory. The first cut is simulated. The same parametric trajectory can be used for the second cut. % Figure 8.
  • APPENDIX 3 Differential control architecture example to generate a sequence of computer images representing an excavator. Three actuators are coordinated by one control signal, of a simulated joystick. The control is based on a pre-defined trajectory for cutting a sharp corner. % Figure 9.

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Mining & Mineral Resources (AREA)
  • Structural Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Civil Engineering (AREA)
  • Robotics (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Life Sciences & Earth Sciences (AREA)
  • Paleontology (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)
  • Operation Control Of Excavators (AREA)

Abstract

A coordinated joint control system for controlling a coordinated joint motion system, e.g. an articulated arm of a hydraulic excavator blends automation of routine tasks with real-time human supervisory trajectory correction and selection. One embodiment employs a differential control architecture utilizing an inverse Jacobian. Modelling of the desired trajectory of the end effector in system space can be avoided. The invention includes image generation and matching systems.

Description

    FIELD OF THE INVENTION
  • The present invention relates to coordinated joint motion control systems, for example, excavating equipment, robotic and semi-robotic arms and certain three-dimensional image generators such as anatomic simulators and to control systems and methods therefor.
  • BACKGROUND OF THE INVENTION
  • The mining, construction and other industries, are increasingly employing automation and robotics to enhance the efficiency of material processing operations, such as excavation and mining activities, using powered equipment, often with articulated arms having independent joint connections between the links. Some machines have built-in mechanical means to coordinate joint motions.
  • Many tasks require a human operator to coordinate the movement of several machine links by simultaneous control of a corresponding number of joysticks or other control devices. One example is the control of earth moving equipment such as an excavator employing a bucket as a tool. It can be a difficult, skilled task, often requiring years of experience effectively to control the machine so as to move the tool along a desired path with an efficient trajectory. The task demands continuous concentration and careful adjustment by the operator of multiple links so as to effectively control their motion.
  • Roberts, J. M. & Corke, P. I. 1997. in “Automation of underground truck haulage.” Fourth International Symposium on Mine Mechanization and Automation have described automated load-dump haulage roadheaders. Kogler, P., Melrose, R., Stratmann, T. & Sifferlinger, N. A. 1997. “Further approaches in automation on roadheaders/bolter miners in production and development.” Fourth International Symposium on Mine Mechanization and Automation: A6-11-A6-18. have described partially automated dragline stripping, production drilling, rock bolting, and shotcreting.
  • Of particular exemplary, but non-exclusive, interest for automation are large mining front end shovels. Such excavating machines may perform several hundred shovel cycles per day, each cycle including filling the machine's bucket, hoisting and swinging the load over a haul truck, dumping the load, and returning to the digging front. The term “bucket” is often used generically in the art to include a “shovel” and other tools with which an excavator arm may be equipped. Stentz, A., Bares, J., Singh, S. & Rowe, P. 1999. in A robotic excavator for autonomous truck loading. Autonomous Robots 7: 175-186. have proposed using sensory adjustments to vary the digging and loading points with a view to rendering fully robotic the repetitive components of the operations of a front end shovel. To integrate such fully automated or robotic components into the complex operations performed by mining and construction equipment, may require human supervisory control.
  • Employment of a human operator, even in a supervisory capacity, is contrary to traditional industrial robotics practice, for example for assembly and paint spraying operations and the like in automobile manufacture, where the absence of a real-time human supervisor is an important advantage of robots. Unlike the “cookie cutter” complex but repeated operations common in manufacturing robotics the flexibility and diversity of operations required in mining, construction and the like may justify or require the partial or even full-time attention of a human operator even when an automated machine is utilized. In general, robotics systems are designed to perform large numbers of iterations of a procedure or suite of procedures or selection of one or more procedures from an available suite, each of which procedures or suite of procedures is familiar to the robotic system. In contrast, an ability to adapt to unfamiliar terrain, environment or circumstances is a prerequisite of mining and construction operations. For these reasons alone, known robotics methods may not be suitable for automation of mining and construction equipment and the like.
  • Furthermore, conventional robotic equipment is generally unsuited to a mining and construction environment. Industrial robots employ precision engineering with fine-tuned valves and mechanical controls and sensitive hydraulics that require scrupulously clean oil. In a typical modern factory having a climate- and dust-controlled, indoor environment, these conditions can usually be met without undue difficulty. A typical mining or construction site offers quite the opposite conditions, presenting a hostile environment to industrial robotics. The air is typically dust and dirt laden. The equipment, as robust as it is, operates to relatively crude tolerances and commonly functions satisfactorily under mining conditions. Accordingly, severe problems may be encountered in adapting the principles of industrial robotics for operation of mining or construction machinery or the like.
  • Perreira et al disclose in U.S. Pat. No. 4,763,276 a robot control method intended to locate a robot at a desired position and orientation (pose) wherein an anticipated pose of a robot is predicted, compared with a desired pose and a correcting command signal is employed to place the robot.
  • Chan et al disclose in U.S. Pat. No. 4,893,254 a manipulator arm position sensing method wherein smoother operation of an the movement of the end point of an articulated arm to a preselected target is obtained by computer calculation of joint angle changes using an iterative pseudo inverse Jacobian having a damping factor. Though presumed to be useful for their intended purposes, neither the Perreira et al. nor the Chan et al. methods is suitable for controlling excavation or construction machinery in a manner capable of automating repeated operations and permitting flexible machine operation in a changing or diverse environment.
  • As shown in FIG. 1, Alami, R., Chatila, R., Fleury, S., Ghallab, M. & Ingrand, F. 1998. in “An architecture for autonomy.” The International Journal of Robotics Research 17(4): 315-337. have proposed a control architecture for mobile robots which reportedly integrates human supervisory direction into an automated robotic machine. Referring to FIG. 1, a human supervisor 10 observes the motion and position of an end effector 12, and provides mission guidance, to a trajectory planner 14. Trajectory planner 14 selects a software control protocol corresponding with the mission guidance instruction and provides power and motion control to the machine actuators, for example hydraulic pistons and cylinders to execute the mission guidance instruction. The traectory is planned either in Cartesian or joint space. The software control protocol iterates every step needed, including every actuator adjustment, for the end effector to execute the desired trajectory.
  • The term “end effector” is used in the context of the invention herein, to reference the ultimate point or object component of the machine or system that is manipulated by the machine or system, for example a tool such as a front end loader shovel or drill, or an object picture in an imaging device.
  • An example of such an integrated, human controlled partially robotic operation is that of a three-boom robotic tunneling drilling machine each boom of which collars, corrects the alignment and drills a hole.
  • Ideally, a supervisor, who is effectively a robotic operator, “manually” checks and corrects the collaring of each pre-programmed drill hole using the machine's joysticks or other manual controls, but employs built-in automation to complete the drilling of each hole. If effective, the collaring and manual correction of the alignment and determination of the coordinates of the next hole can be made while the two other booms are drilling automatically. This is a typical example of sequentially applying operator adjustment and robotic automated control of a predetermined trajectory element.
  • One known, robot control scheme suitable for control of a joint-based, continuous-path end effector is illustrated in FIG. 2. Referring to FIG. 2, the control scheme shown employs a Cartesian trajectory generator 16 and the control architecture allows the motion to be executed at a desired speed and the actual movement to be adjusted relative to the basic trajectory. For this control scheme, the desired trajectory is assumed to be predefined, either as a preprogrammed or as a user-recorded pattern.
  • Operation of one of the levers or controls 16 of the excavator's manual control unit 18 provides a Cartesian position control signal to a trajectory generator 20. Trajectory generator 20 utilizes a time division base 22 to generate control signals comprising desired joint position, velocity and acceleration signals for moving a particular machine link through a desired trajectory. Trajectory generator 20 employs forward kinematics, using a model to determine where the end effector should be at a future point in time. The control signals are supplied to a joint control system 24 which provides an appropriate power signal to robot actuators 26. Real-time integration of the operation of any or all levers 16 in each of three Cartesian directions yields machine kinematic configuration and an output which determines the actual Cartesian end effector position 30 over time. Feedback control is provided by position sensors (not shown) at the robot actuators which provide joint position and velocity signals to the joint control system 24 enabling internal position error correction.
  • Mathematically, the three-dimensional trajectory of the end effector can be described by employing a surrogate variable for the definition of the trajectory as functions of three Cartesian position control signals, without specifying velocity. The motion velocity can be given as the tangential velocity along the path. The incremental arc length of the path can be related to the partial displacements in the three Cartesian directions to provide the relationship between time and the surrogate variable for a given motion. This relationship may be assumed to be solved by using an appropriate initial condition for the motion. Further simplification can be obtained for the special case where the selected parameter is identical with the arc length of the path. In this case, the variation of the surrogate parameter over time can readily be determined.
  • Variations in the tool orientation may be described by defining the tool direction with an ordered set of absolute-angle or Euler-angle rotations, one for each degree-of-freedom of the automated robotic machine, in a comparable manner to the description of the translational motions and displacements using a surrogate paramater. If the variation of the parameter with time is based on the position definition, the angular velocities can be defined and no further velocity relationship is needed. Otherwise, a further equation is required to specify the angular velocity, for example by prescribing the rate of the equivalent angular rotation as a function of the surrogate parameter. The position and angular velocities can then be defined in real time. For further purposes, the angular velocities of the ordered rotations with time can be determined based on the foregoing approach, using manipulator kinematics formulations, such as described e.g., by Craig, J. J. (1989) “Introduction to robotics: mechanics and control.” 2nd Ed. Addison-Wesley, Reading, Mass.
  • This conventional control system is suitable for continuous path robotic control and in effect models the desired trajectory of the end effector in system space and applies power signals to the machine actuators of an amplitude and duration calculated to achieve the desired trajectory in real space. However, it is deterministic, the end effector can only travel on a preprogrammed path, the control does not permit human supervisory participation, and cannot adapt to new circumstances, such as novel changes in the end effector working environment.
  • A completely manual control based only on a human operator is shown in FIG. 3 for comparison, as another conventional system. Danko, the inventor herein, in “Coordinated Motion Control.” Presentation to Sandwick-Tamrock Personnel, Tampere, Finland in 2000 (“Danko 2000a” hereinafter) described a modification of the conventional robot control scheme shown in FIG. 2, for human supervisory control, which modification is schematically illustrated in FIG. 3. In this example, in order to show for comparison the complexity of prior art approaches, human supervisory control of the end effector position and orientation is accomplished by adjusting the motion velocity components of the joint or machine actuators and integrating the individual components with respect to time much as is done in the manual supervisory control scheme illustrated in FIG. 1. The main component of the motion control is the manual guidance of the tangential and angular velocities along the pre-determined path. Other control inputs can be used to modify the trajectory. Translational and rotational trajectory modifications can be accomplished by adding position correction terms to the absolute position. The solution example, however, requires the combination of ordinary robotic control with a supervisory adjustment which further increases the inherent complexity of a robotic system.
  • The foregoing description of background art may include insights, discoveries, understandings or disclosures, or associations together of disclosures, that were not known to the relevant art prior to the present invention but which were provided by the invention. Some such contributions of the invention may have been specifically pointed out herein, whereas other such contributions of the invention will be apparent from their context.
  • BRIEF SUMMARY OF THE INVENTION
  • The present invention solves the problem of providing a control system for controlling a coordinated joint motion system which provides a coordinated joint motion system which is easy to operate and flexible in the tasks it can undertake.
  • In one aspect, the invention provides a coordinated joint control system, for controlling a coordinated joint motion system the coordinated joint motion system comprising:
      • a) support;
      • b) multiple links;
      • c) multiple joints, optionally revolute or prismatic joints, connecting the links one to another and to a support, each joint permitting relative movement between the connected members;
      • d) multiple actuators to effect said relative movement between the connected members, the multiple actuators being controlled by the coordinate joint control system; and
      • e) an end effector supported by the jointed links for movement relative to the support;
        wherein the coordinated joint motion system is capable of execution of an automated end effector trajectory without human intervention wherein the coordinated joint control system comprises an operator interface enabling a human supervisor to change the end effector motion or position during execution of the automated trajectory.
  • The system can comprise an internal feedback loop to determine a mathematical model of the coordinated joint motion system and provide a model-based forward predictor for directly controlling the joint actuators, optionally by employing a differential control architecture. The internal feedback loop can generate a differential inverse kinematics model of the machine configuration for a given end effector position and may comprise an inverse Jacobean matrix relating the joint-space variables as a vector, to an input vector of Cartesian variables.
  • Preferably, the control system enables a human supervisor to employ velocity control to adjust and correct the end effector position. The operator interface can comprise a control box employing at least one manually movable member to input control signals and optionally a computer interface for selection of a trajectory and the manually movable member can comprise multiple joysticks. The control system can distribute a control signal from a single joystick to multiple joint actuators.
  • The coordinated joint motion system comprises a mining or construction machine, optionally an excavator and the multiple links comprise a boom revolutely connected to the machine, an arm revolutely connected to the boom and a tool, optionally a bucket, revolutely connected to the arm.
  • In another aspect the invention provides a coordinated joint control imaging system for imaging a coordinated joint motion system, the coordinated joint motion system comprising:
      • a) support;
      • b) multiple links;
      • c) multiple joints, optionally revolute or prismatic joints, connecting the links one to another and to a support, each joint permitting relative movement between the connected members;
      • d) multiple actuators to effect said relative movement between the connected members, the multiple actuators being controlled by the coordinate joint control system; and
      • e) an end effector supported by the jointed links for movement relative to the support;
        wherein the imaging system comprises an internal feedback loop to determine a mathematical model of the coordinated joint motion system and provide a a model-based forward predictor for directly controlling the joint actuators, optionally by employing a differential control architecture. method for controlling a coordinated joint motion system, the coordinated joint motion system comprising:
      • a) support;
      • b) multiple links;
      • c) multiple joints, optionally revolute or prismatic joints, connecting the links one to another and to a support, each joint permitting relative movement between the connected members;
      • d) multiple actuators to effect said relative movement between the connected members, the multiple actuators being controlled by the coordinate joint control system; and
      • e) an end effector supported by the jointed links for movement relative to the support;
        the method comprising execution of an automated end effector trajectory without human intervention a human supervisor changing the end effector motion or position during execution of the automated trajectory.
  • The new differential control architecture of the invention provides a simple control system while permitting integration of operator adjustments into the system. In one embodiment, hardware required to implement the invention, may comprise a manual electronic electro-hydraulically controlled machine with the addition of joint position sensors and a control computer. Internal, position control feedback loops may not be necessary to implement the inventive control system are needed as they are in conventional robotic equipment. However, position control feedback loops may be employed, if already present in a particular machine, or if available or desired, for added precision. Nor are internal velocity feedback loops required, in preferred embodiments, but their utilization e.g. in the form of application method electro-hydraulic servo valves, may increase precision.
  • While the invention is not bound by any particular theory, the new solution can be considered as blending, preferably continuously and in real time, operator machine control with automatic control by re-distributing the operator's velocity control components into machine joint velocity components according to a selected and/or predetermined and/or optimized trajectory characteristic, given e.g. in the form of a differential relationship between partial motion components either in joint or Cartesian (real-world) co-ordinates or partial velocities.
  • Preferred embodiments of the present invention are capable of providing novel control systems and methods for coordinated joint motion systems which enable repeated tasks to be carried out automatically by the machine but which permit a human supervisor or operator to make corrections or adjustments, if necessary, and preferably also to select, import and/or create one or more predefined trajectories for the machine to execute.
  • One particular preferred embodiment provides a hydraulically powered excavating machine embodying a preferred inventive control system which is easy to operate and flexible in the tasks it can undertake.
  • BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING
  • Some embodiments of the invention, and of making and using the invention, as well as the best mode contemplated of carrying out the invention, if not described above, are described in detail below, by way of example, with reference to the accompanying drawings, in which like reference characters designate the same or similar elements throughout the several views, and in which:
  • FIG. 1 is a block flow diagram showing, in simplified form, a prior art high-level control schematic of an automated robotic machine employing a human supervisor;
  • FIG. 2 is a block flow diagram showing, in simplified form, a prior art joint-based, continuous-path robot control scheme;
  • FIG. 3 is a block flow diagram showing, in simplified form, a prior art modification of the robot control scheme shown in FIG. 2 for human operator control;
  • FIG. 4 is a side elevation of a powered shovel embodying a coordinated joint motion control system according to the invention;
  • FIG. 5 is a schematic view of a motion control system according to the invention for the powered shovel shown in FIG. 4;
  • FIG. 6 is a block flow diagram of a continuous differential control architecture according to an embodiment of the invention for operating the motion control system illustrated in FIG. 5;
  • FIG. 7 is a schematic view illustrating the creation of a family of two-dimensional trajectories for use by the differential control architecture illustrated in FIG. 6;
  • FIG. 8 is a view similar to FIG. 7 of another parallel trajectory family that may be employed in the invention;
  • FIG. 9 is a time-lapse schematic depiction, in graphic form, of a first cut in a simulated prior art excavation operation employing a manually controlled front shovel;
  • FIG. 10 is a view similar to FIG. 9 of second and third cuts in the simulated prior art excavation operation;
  • FIG. 11 is a time-lapse schematic depiction, in graphic form, of a simulated three-cut excavation operation employing an embodiment of differential control architecture according to the invention;
  • FIG. 12 is a schematic view of one example of a desirable excavation trajectory;
  • FIG. 13 is a view similar to FIG. 11 of a first cut employing the desirable excavation trajectory illustrated in FIG. 12;
  • FIG. 14 is a view similar to FIG. 11 of a third cut employing the desirable excavation trajectory illustrated in FIG. 12;
  • FIG. 15 is a schematic view illustrating virtual configuration of an articulated machine such as an excavator using an embodiment of differential control architecture according to the invention;
  • FIG. 16 is a schematic view of another embodiment of differential control architecture according to the invention, which architecture is useful for virtual machine configuration;
  • FIG. 17 is a schematic view illustrating the application of an embodiment of the differential control architecture of the invention to simulation of the motion of a coordinated joint system, the particular example illustrated being an anatomical coordinated joint system, namely the human right arm; and
  • FIG. 18 is a block flow diagram of another embodiment of differential control architecture according to the invention suitable for effecting the simulation illustrated in FIG. 17.
  • DETAILED DESCRIPTION OF THE INVENTION
  • The coordinated joint motion control system of the invention and the control architecture embodied therein are here described, for illustrative purposes only and without limitation, in its application to the control of a particular machine 100, namely mechanical excavator, more specifically a front end shovel loader. It will, however be understood that the control system and architecture have a wide variety of applications, some of which are described or referenced herein, including for example, to robotic arms and other articulated mechanical systems capable of performing a diversity of functions having repetitive elements as well as to other systems such as anatomic simulators.
  • The invention provides a motion control process for controlling the movement of an apparatus or machine employing manually operated multi-dimensional joysticks and a novel differential joint control architecture. Pursuant to the novel joint control architecture the control signal generated by an individual joystick is not dedicated to an individual actuator but can be distributed to multiple actuators. Thus, one or more of the joystick signals may comprise number of joint motion parameters for the multiple actuators. For example, the joint motion parameters may be differentially based on the instantaneous inverse or pseudo-inverse of the Jacobian of the machine or apparatus.
  • The invention includes a control apparatus or machine, particularly but not exclusively an apparatus or machine employing a coordinated joint or articulated arm system, which apparatus or machine embodies the inventive motion control process to control movement of the apparatus or machine. The invention further extends to electronic systems for rendering graphical, three dimensional image in space, and optionally also in time, of coordinated joint systems, for example anatomical systems such as the human arm, illustrating its articulation, and to the rendered images on screen, in print, in electronic storage or in other media.
  • The distribution of joystick control can be accomplished dynamically during motion based on a pre-programmed trajectory family, or pre-defined coordinate system, or a pre-defined control kinematics. If the Jacobean is non-singular, the inverse is calculated. If the joint parameters are over-determined relative to the end-effectors' Cartesian trajectory coordinate parameters, the least-square fit solution of the set of over-determined equations replaces of the inverse as a pseudo inverse. If the set is under-determined, additional constraints are added to aid the inverse solution. For the sake of simplicity of discussion, the existence of the inverse Jacobean is assumed. The coordinated control is differential and represented by the Jacobean of the pre-defined desired control kinematics. Other components of the coordinated control are the desired starting point and the velocity component of the motion.
  • Coordinated joint parameters control greatly simplifies the control of machine tools or graphical objects through a desired task e.g., for navigating them through a course between obstacles. Artificial intelligence can be used to obtain the optimum trajectory family for typical, repetitive tasks. Sensory input can be used to obtain the optimum coordinate system for using as a pre-defined system. Global positioning system can use sensory input for coordinate system definition. A computer frame main space layout can be a pre-defined coordinate system. A surveyed underground or surface mine coordinates can also be entered as a pre-defined coordinate system. A fully autonomous target trajectory control system can utilize the differential coordinated joint manipulation. Such an application may arise in fitting a multi-link human body motion to captured images.
  • Many tasks require performing coordinated movement of several machine links with the simultaneous control of the corresponding joysticks or other control signal. One example is the control of earth moving equipment such as an excavator with a bucket as a tool. It is difficult to control the tool along a desired path that demands continuous concentration and motion adjustment of multiple links from the operator. A new control architecture is advantageous to provide real-time operator support using programmable, automated coordination of the motion of the machine joints, while still retaining full manual control, if needed. The new control architecture allows re-defining the machine inherent motion kinematics characteristic into a task-specific kinematics that fits a desired task optimally. The definition of the task-specific kinematics can be re-programmed. The control computer can be trained for recognising the desired coordinated movement pattern.
  • During execution, the machine movement follows the trained path while the operator still retains the master control for the overall trajectory parameters and the motion velocity. In addition to convenience and manual flexibility, the new control architecture allows for the optimisation of the control of the machine during operation. An example is provided, based on robotic simulation and analysis, to illustrate the operator-assisted control of a front shovel.
  • The new architecture is based on the recognition that there is no need to generate an integrated path in the control computer model-space and then differentiate the trajectory for joint variable control during real-time machine control. The differentiating control architecture, shown in FIG. 1, does not use joint position control loops. A main, Cartesian position control loop is applied to each motion component through visual feedback to the supervisory operator.
  • The main position control signal can be control velocity, as a most common example characteristic to hydraulic power machinery. Through velocity control, the operator adjusts and corrects the tool position. An internal feedback loop is applied to generate a differential inverse kinematics model of the machine configuration for a given position. This model is the inverse Jacobean, a sensitivity matrix that relates the joint-space θ variables as a vector, to an input vector of Cartesian variables xi.
  • The architecture uses joint position variables only for the determination of the Jacobean, i.e., the matrix of the partial derivatives for a given position. The internal feedback, therefore, is accomplished through the determination of the mathematical model of the machine, and not through a signal. Consequently, the new differential control architecture realizes a model-based forward predictor through which the joint actuators are directly controlled
  • Referring to FIG. 4, the powered shovel shown, in this case a front end shovel loader comprises a tracked motive under carrier or ground-engaging system 101 supporting a rotatable turret 102. Rotatable turret 102 has a cab 103 to house a human supervisory operator and supports one end of an articulated positioning unit 104 for manipulating a tool or other end effector supported at the other end of positioning unit 104.
  • Positioning unit 104 comprises a boom 105 articulated to turret 102 for rotation about a pivot 106, thereby providing a boom joint. One end of a lever arm 108 is articulated to boom 104 for rotation about a pivot 110, thereby providing an arm joint, while the other end is articulated to and supports a tool, in this case a shovel or bucket 112, for rotation about a pivot 114, thereby providing a tool joint, such rotations all being about axes perpendicular to the plane of the paper. While the example illustrated in the drawings comprises revolute joints having one or multiple degrees of freedom, other joints may be utilized, for example prismatic joints.
  • The tilt or orientation of shovel 112 is preferably also variable, for which purpose shovel 112 can be mounted with two further degrees of rotational freedom about axes in the plane of the paper by means (not shown). Such further shovel rotational means may comprise, for example, a first pivotal attachment to the distal end of arm 108 providing rotation about a longitudinal arm axis extending through pivots 110 and 114 and a second axis perpendicular thereto, also extending through pivot 114.
  • Piston-and-cylinder hydraulic actuators 116, 118 and 120 control the motion and position of boom 105, arm 108 and shovel or bucket 112, respectively. Each actuator 116-120 is pivotally secured at its ends and cylinder 120 is connected to shovel 112 through an articulated link 122 to enhance its leverage. One or more leveling, guide or ancillary cylinders such as leveling cylinder 124 can be provided if desired.
  • Referring to FIG. 5, other actuators such as 126 can optionally also be provided for moving and positioning other elements or systems, for example turret 102, and ground-engaging system 101, as will be further described hereinbelow.
  • In the motion control system illustrated in FIG. 5, each actuator 116-120 and 126 is operated by its own, local hydraulic control unit 130-136, respectively, which control unit receives a signal from a joint control coordinator 138 b and controls its associated actuator 116, 118, 120 or 126 to provide a suitable output, namely a desired position and/or velocity of the associated articulated element 104, 108, 112 or 128, determined by the joint control coordinator 138 b based on the forward input from the differential control kinematics generator 138 a and the feedback input from the machine differential kinematics feedback generator 138 c.
  • Each articulated element 104, 108, 112 or 128 is provided with a transducer sensor 140-146 to detect preferably at least the position of the respective articulated element 104, 108, 112 or 128 with respect to its supporting element, and report the sensed position, preferably as a continuous or time-divided signal, to the machine differential kinematics feedback generator 138 c.
  • A control box 140 comprises a suitable number of manually operable control members or joysticks 142 which can be moved, pressurized or otherwise manipulated by a human supervisor 144 to the boom 104 and/or arm 108 and/or shovel 112 and/or other elements according to a desired trajectory. Joysticks 142 may be the same or different and may comprise any convenient and suitable manually operable input member such as a pivotable lever, wheel, slide, key, button or set of keys or buttons or comprise a pointing device such as a mouse, trackball or the like. However, in the mining and construction industries, pivoted levers are common. Conventional powered shovels and other such articulated hydraulic machinery employ at least one joystick for each powered joint. Pursuant to the present invention, this number may be varied, as will become apparent hereinbelow. Additional joysticks may be provided for operation of rotatable turret 102 and, possibly also for the drive to ground-engaging system 101 to move the powered shovel around, or to or from, a work site, or for other desired purposes.
  • The signal outputs from control box 140 are supplied to the differential control kinematics generator 138 a that is provided with suitable data storage means, such as a hard drive, optical drive and the like. Suitable software and/or programs, as are known in the art of control computers or other appropriate art, for implementing the processes of the invention may be stored on such data storage means, or may be remotely accessed by central computer 138.
  • Preferably, but optionally, the differential control kinematics generator 138 a is also be provided with conventional input output devices such as mouse, keyboard, touch pad or touch screen, monitor printer data transfer means such as radio wave input/output, removable data storage media, and so on, enabling human supervisor 144 to interface with the unit and mediate the operation of, for example, positioning unit 104, if desired. Such mediation or intervention by human supervisor 144 enables supervisor 144 to change the response of the control system to one or more inputs received by control box 140 to modify a programmed response or to choose a desired response from multiple possible preprogrammed responses, as will be further described hereinbelow.
  • The differential control kinematics generator 138 a, joint control coordinator 138 b, and machine differential kinematics feedback generator 138 c are preferably realized in a common central computer 138.
  • Preferably also, the central computer 138 provides a visual display which can include schematic representations of the real machine's configuration and virtual machine configurations that can be employed by human supervisor 144 as well preferably as available calculated and learned trajectories which can be made available for selection by human supervisor 144. Optionally also, machine 100 may be equipped with cameras providing one or more views of the tool and the work area, which views can be displayed by the computer, and optionally integrated with the control programs to enhance the control system.
  • Referring to FIGS. 5-6, employing the control architecture illustrated in FIG. 6, human supervisor 144 uses computer 138 to input, or select a predetermined shovel trajectory, for processing by trajectory generator 146. Trajectory generator 146 employs a differential time base 148 to generate a differential trajectory with transformation which outputs to differential inverse kinematics model 150 which is generated based on a Jacobian generator 152. Differential inverse kinematics model 150 provides a value, series of values or continuous signal for each machine joint to be moved; which may be the double differential with respect to time of the particular joint angle θ.
  • Employing an integrator 154, a matrix of angular acceleration and velocity signals for each joint to be moved is applied to the joint control system 154 in FIG. 6. Control system 154 preferably comprises relevant processing components of central computer 138 and control units 130-136. Operation of control units 130-136 imparts suitable positioning and velocity to actuators 116-120 and 126, providing a desired machine kinematics configuration 156 to the machine 100.
  • Sensors 140-146 read the positions and optionally the velocities of actuators 116-120 and 126 which values or signals are applied to Jacobian generator 152 both directly and after forward kinematics processing 158.
  • Human supervisor 144 observes the machine, notably the performance of the end effector, shovel 112, but also the configuration of the boom 104 and the articulated arm 108, and can employ visual feedback 160 to control trajectory generator 146, or to apply tool trajectory adjustments using joysticks 142 or to select a different or modified trajectory using central computer 138.
  • An optional artificial intelligence component 162 receiving input from machine actuators 116-120, 126 and human supervisor 144 can be used to provide to trajectory generator 146 a desirable or optimum trajectory family for typical, repetitive tasks.
  • As used herein, the term “trajectory” refers to a series of motion coordinates of an end effector, e.g. a tool or shovel 112, which represent a number of consecutive motion positions or a locus of the motion of the end effector within a time frame; the term “machine kinematics” refers to the relationship between the actuators' positions or movements and the end effector's position or movement;
  • As described above, the signal generated by an individual joystick 142 can be distributed to more than one actuator 116-120 and 126. Preferably, the distribution of the joystick control is accomplished dynamically, while the system is in motion, using a pre-programmed trajectory family, or pre-defined coordinate system, or a pre-defined control kinematics.
  • Employing the novel control architecture provided by the invention, it is possible provide efficient control of coordinated joint motion without generating an integrated path in the control computer model-space and then differentiating the trajectory for joint variable control during real-time machine control.
  • Thus, the control system illustrated in FIG. 6 employing differentiating control architecture, does not use joint position control loops. Instead, as provided by the invention, a main, Cartesian position control loop can be applied to each motion component through visual feedback from the human supervisor 144.
  • Although not an inherent or required component in the inventive control architecture, position feedback loops may optionally be employed for linearization, backlash compensation and/or to achieve added stability.
  • While modified control architectures based upon other control parameters will be, or become, apparent to those skilled in the art, in a preferred embodiment of the invention, the main position control signal is control velocity, as a common example characteristic of hydraulic power machinery. Using velocity control, applied by joysticks 142, the human supervisor 144 can adjust and correct the tool position. An internal feedback loop is applied via sensors 140-146, forward kinematics 158 and Jacobian generator 152 to generate differential inverse kinematics model 150 of the machine configuration for a given tool position. In other words, for a given tool position a model is generated of how the machine should be configured, which model specifies parameters such as the angular position and velocity of each joint. Pursuant to one preferred embodiment of the invention, this model can be an inverse, or pseudo inverse, Jacobian, a sensitivity matrix that relates the joint-space 6 variables as a vector, to an input vector of Cartesian variables xi.
  • A “Jacobian” or “Jacobian determinant” is a determinant of the matrix whose ith row lists all the first order partial derivatives of a function fi(x1, x2, . . . , xn), i=1, 2, . . . , n, of real variables xi. A Jacobian is useful, inter alia, for effecting transformations between polar coordinates and Cartesian coordinates.
  • In management of the control of coordinated joint systems such as described herein, the mathematical conversion from tool workspace to joint space should be made efficiently to permit real time operation of the controlled articulated arm or manipulator. Solution of the inverse kinematics problem required to effect the transformation can conveniently use an iterative method employing a Jacobian.
  • The Jacobian is a linear relationship between various possible changes in joint space and various possible changes in workspace. General approaches are known for calculating an inverse Jacobian for coordinated joint systems and such methods may be used in the present invention as will be apparent to those skilled in the art. One approach suitable for application in the embodiment of the invention illustrated in FIG. 4 on will now be described, by way of example.
  • Some basic relationships for the variables and derivations are:
  • [ d θ i ] = J - 1 [ dx i ] [ θ . i ] = J - 1 [ x . i ] [ θ ¨ i ] = J - 1 [ x ¨ i ] ( 1 )
  • where “xi” is the Cartesian acceleration in direction xi; θt is the joint-space acceleration in direction θi; and differentials are with respect to time increment “dt”.
  • The control architecture can use joint position variables alone for the determination of the Jacobian, providing the following possible matrix of the partial derivatives for a given position:
  • J ( i , j ) = { x i θ j } i = 1 N , j = 1 N ( 2 )
  • Internal feedback, can accordingly be accomplished by determination of the mathematical model of the machine, rather than from a signal. Thus, the novel differential control architecture provided by the invention comprises a model-based forward predictor, differential inverse kinematics model 150, through which the joint actuators 116-120, 126 are directly controlled.
  • Position control of the tool can be based on the Cartesian acceleration components, {umlaut over (x)}i=d{dot over (x)}i/dt evaluated from the {dot over (x)}i(t) functions using a sufficiently fine differential time base, dt, for example in the range of from about 1 microsecond to about 100 milliseconds, preferably from about 1 to about 10 milliseconds. These variables can be determined from the combination of the a priori trajectory and the supervisor 144's corrections input. Assuming that a predefined trajectory is given in the parametric form of xi=fi(g) with g chosen to be the arc length of the path s, {dot over (x)}i can be determined as follows:
  • x . i = f i g g t = f i s v ( t ) , i = 1 N ( 3 )
  • wherein v(t) is the motion velocity controlled by the supervisor 144. The ∂fi/∂s derivatives are determined by the predefined trajectory. Since differentiation eliminates any additive constants in the parametric trajectory, the movement can be originated from any starting point. Consequently, a trajectory family or families in the form of one or more sets of parallel trajectory curves can readily be generated by trajectory generator 146 by applying Equation (3).
  • Parallel shifting of the trajectory during motion can be accomplished by super-imposing the control velocities of Equation (3) and the modification velocity component {dot over (θ)}i T, controlled by the supervisor 144 in machine joint space:
  • x . i = f i s v ( t ) + θ . i T , i = 1 N ( 4 )
  • The relationship between the {dot over (x)}l T correction control and the {dot over (θ)}l T machine joint control components defines a correction control kinematics that can be expressed with the introduction of the control kinematics Jacobian matrix, Jc, as follows using bracketed vector notation:

  • [{dot over (x)} i T ]=J c[{dot over (θ)}i T]  (5)
  • Such implementation is illustrated in FIG. 5. Expressing [{dot over (θ)}i T] from Equation (5) and substituting it into Equation (4) for all components gives:
  • [ x . i ] = [ f i s ( s ) ] v ( t ) + J c - 1 [ x . i T ] ( 6 )
  • Equation (6) describes differential trajectory generation with coordinate transformation such, for example, as is illustrated in FIG. 7.
  • Some examples of the physical meaning of the terms on the right-hand side of Equation 6 are as follows:
  • [ f i s ( s ) ]
      • is the predefined trajectory that is available to the human supervisor 144 to copy into the motion to create a desired trajectory. This term is a function of the movement along the trajectory through s. If desired, the human supervisor 144 can “re-wind” s and start at the beginning for a new motion.
      • v(t): is the real-time automated execution velocity along the pre-defined trajectory, and is controlled by the human supervisor 144. If v=0, the automated robotic machine 100 becomes fully manual.
      • Jc −1: is the coordinate transformation feature for manual correction or fully manual control. Several Jc −1 choices can be provided for selection. If Jc −1 is the unit matrix, the automated robotic machine 100 is controlled directly in the joint space, acting like a plain manual machine.
      • [{dot over (x)}i T
        Figure US20120239199A1-20120920-P00001
        : correction or manual motion control velocities guided by the original joysticks.
  • Referring now to FIG. 7, there is shown an a priori or predefined trajectory 170 in a base coordinate system 172 extending in orthogonal directions x2 and x2 which trajectory has a sinuous shape. An end effector position A is located a distance s from a home position H. Also shown, in broken lines, is a parallel trajectory 174 in a transformed coordinate system 176, which is illustrative of how a family of trajectories parallel to predefined trajectory 170. Parallel trajectories such as 174 may be generated by modifying the two-dimensional translational trajectory vectors of predefined trajectory 170 by adding position correction terms x1 T and x2 T to the absolute position coordinates in Equation (6) resulting in displacement of end effector position A to a new position B. Three-dimensional and rotational embodiments of the parallel trajectory may be generated by adding corresponding third dimension and rotational corrections. A family of trajectories may be generated by varying the values of the corrections. The particular coordinate transformation employed may be selected by supervisor 144 and represents a parallel, similarity coordination between the individual control directions in addition to the one defined by the basic trajectory. The a priori or predefined trajectory 170 and its derivatives such as parallel trajectory 174 define a trajectory family.
  • In FIG. 8, the parallel trajectory family shown comprises a curvilinear digging trajectory family in an orthonormal s-n coordinate system. This family and other families of parallel trajectories that will be apparent to those skilled in the art may be employed in the invention to provide more or better choices to supervisor 144.
  • Preferably, a range of available trajectory families and their parameters is graphically displayed to supervisor 144 for selection and implementation.
  • The new optimized trajectory is recorded and added to a menu of trajectory selection available to supervisor 144. Software programming associates with each trajectory a corresponding implementation of the machine kinematics to control the automated robotic machine 100 to perform the trajectory. Preferably, in the software defined kinematics, the original functions of joysticks 142 are re-defined to distribute their outputs among actuators 116-120 and 126 for greater efficiency. If desired, each joystick 142 may instruct the coordinated movement of several of actuators 116-120 and 126, depending on the need to simplify the control of a given task.
  • Once a given trajectory has been input to the system and processed, supervisor 144 can activate the appropriate machine kinematics corresponding with the new trajectory to perform the relevant task by selecting the new trajectory from a menu or visualization in graphical display, or by other suitable activation means.
  • Another preferred embodiment of the invention includes artificial intelligence component 162 integrated into the control architecture to identify one or more typical repetitive elements of the machine's movements. In one example of the employment of artificial intelligence component 162, the machine 100 goes through a teaching period where multiple predefined trajectories are input to the systems and stored by central computer 138. Suitable trajectories can be manually input by supervisor 144 or could be electronically supplied from simulations or experience with or training of other similar machines.
  • Artificial intelligence component 162 of the control architecture can then review all the predefined trajectories and determine a best possible or most suitable common trajectory of all the input trajectories for a particular machine task e.g. “fill bucket” or “dump load”, or trajectory e.g. “high swing”. The selected common trajectory can be determined for each relevant link. The artificial intelligence component 162 can determine the optimum parameters for the differential trajectory generation with transformation units. The supervisor 144 is then notified by the artificial intelligence component 162 that a satisfactory common trajectory has been successful determined. From this point, the supervisor 144 can execute an optimized trajectory which can be further adjusted real-time in an ever-changing uncontrolled task environment with the new control architecture of the invention.
  • An exemplary computer program simulating the application of the inventive differential control architecture to the control of an excavator, using a coordinate system transformation is given in Appendix 1 to this specification. In the Appendix 1 program three machine actuators are coordinated by one control signal from a simulated joystick. The operation of the program will be readily understood by one skilled in the art. Accordingly, no further explanation is provided here. Subroutine functions used in the main program are given in Appendix 4. The appendices employ MATLAB “The Language of Technical Computing, The Mathworks Inc., Version 6.1, 2001. MATLAB is an enginnering computational and visualization package. It is also a programming environment in which a computer program script (in its specific sytax) can be executed to make (1) calculations, (2) graphs-images, (3) to access data from computer interface such as a joystick, etc. All the appendix scripts are in MATLAB symbolic language. The joystick drivers came from a third-party supplier, interfacing a common, 3-dimensional game joystick to MATLAB.
  • For the simulated bucket manipulation operations illustrated in FIGS. 9-14, a large mining front shovel, for example a Caterpillar model E650, is chosen as the automated robotic machine 100 on which to demonstrate the application of the differential control architecture of the invention. Three operating constraints (referenced “the three specified operating constraints” hereinafter) are used in comparison exercises between fully manual control and control using the inventive differential control method: (1) to fill three buckets from one base position, (2) to reduce the complexity of the manual control by reducing the number of joints simultaneously moved, and (3) to produce an identical excavation profile at the end of the third bucket fill to the initial profile. The last requirement is useful for emulating continuous shovel operation with a three-bucket load per machine advance excavating on a repeating pattern.
  • For comparison, as illustrated in FIG. 9, a conventional manual use of the machine 100 is graphically emulated using a simple graphical imaging tool for robotics by Danko (2000b) “Robotics Teaching support tools” or “Introduction to Robotics,” a 3-credit graduate course taught at the University of Technology, Helsinki, Finland.
  • FIG. 9 shows the automated robotic machine 100 executing an indicated first cut with time-lapse graphics showing the moving machine link positions at discrete time intervals. As depicted, the three specified operating constraints can only be satisfied by executing a steep, highly unrealistic excavation profile wherein boom 105 is extended forwards and upwardly and arm 108 is close to the horizontal throughout its pivoting movement. As may be seen, in executing the first cut, both arm 108 and bucket 112 are moved; which requires operator coordination of both movements. Also shown is a previous machine position, indicated in dotted lines, where the indicated previous excavation profile was executed.
  • As shown in FIG. 10, pursuant to this prior art method, the second bucket loading also needs coordination of the movements of two “links” arm 108 and bucket 112, while the third, finishing cut can be made by controlling arm 108 only, i.e. by swinging arm 108 about pivot 110 without changing the orientation of bucket 112 relative to arm 108 about pivot 114.
  • FIG. 11 illustrates that excavation along a different, more practical profile, for example a slope at an angle close to the angle-of-repose of a muck pile, requires the coordinated movements of all three joints at pivots 106, 110 and 114. Employment of the differential control architecture for the execution of these complex control requirements provides a satisfactory outcome wherein the machine 100 can rake along a pre-defined slope angle in three layers from one base position, with simultaneous bucket angle adjustment, as shown in FIG. 11.
  • Long and shallow raking is not advantageous, and a different digging strategy can be used to accomplish the three constraints defined previously while excavating along a slope. One possible desirable or even optimal predetermined trajectory for excavating along a slope is shown in FIG. 12 where f is the distance of horizontal excavation advance; s is the arc length; B is the bucket edge; H is the starting point and θb is the bucket angle. The trajectory parameters illustrated in FIG. 12 may be generated by adjustment of an a priori trajectory, by the human supervisor 142. One suitable computer algorithm for effecting the FIG. 12 trajectory is given in Appendix 2, by way of example.
  • In FIG. 12, the excavation profile is a spline arc with a horizontal beginning at H and an end tangential to the slope sg. The slope grade sg and the excavation advance f are variable parameters. The parametric trajectory is defined by the derivatives with respect to the motion along the arc, and is therefore independent of the starting position. Therefore, the same basic trajectory can be used to emulate the first and the second bucket fills, as illustrated by the excavation trajectories shown in FIGS. 13 and 14.
  • As indicated by the multiple positions of boom 105, arm 108 and bucket 112, in FIGS. 13-14, all three cuts require coordination of three machine links, yet they are easily controlled by human supervisor 144, employing the inventive control architecture. The third bucket fill employs a somewhat different, basic trajectory, a “cleaning trajectory”, so as to finish with a horizontal bench surface, followed by a raking motion along the slope until the height of the second cut is reached.
  • Each of the parallel, inclined, straight cutting trajectories illustrated in FIGS. 11-14 can be created using only one joystick control 142, simultaneously coordinated to the boom, arm and bucket actuators 116-120. Simulated, straight-line trajectories are shown in FIG. 11. Shift of the cutting line normal to the slope can be accomplished by positioning the bucket cutting edge to a starting point by another joystick. Although this second joystick remains active during the control of the movement along each cut, it requires no action from the super-operator for one cut along the slope.
  • Referring to FIG. 15, the differential control architecture of the invention can be employed to enable human supervisor 144 to configure machine 100 as a virtual machine, so that, for example, a small machine will follow joystick control according to the kinematics characteristics of a large machine.
  • FIG. 15 shows in solid line the relatively shorter boom 105, arm 108 and bucket 112 of a small machine 100. Subtending the same beginning and end points, and shown in broken lines is a large virtual machine comprising a relatively longer boom 105′, arm 108′ and bucket 112′. Human supervisor 144 can define the virtual machine and obtain the motion kinematics for a large machine enabling human supervisor 144 to select the virtual machine and have, for example, the small real machine move like a large machine. The real machine responds in motion to one or more joysticks 100 as though it were a large machine.
  • Human supervisor 144 can directly control the virtual angles θ1 T, θ2 T and θ3 T with joysticks 142. The real machine moves according to the virtual machine kinematics, represented by the control kinematics inverse Jacobian, Jc −1.
  • One suitable differential control architecture for virtual configuration of an articulated machine in the manner described with reference to FIG. 15 is shown in FIG. 16, in which ρj denotes the user-selected parameters of the virtual machine kinematic configuration. Other symbols having meanings consistent with or parallel to their usages elsewhere herein. The operation of the differential control architecture illustrated in FIG. 16 and modifications thereof or other suitable architectures for controlling an articulated machine for virtual operation will be, or will become, apparent to those skilled in the art from the disclosure herein.
  • Two useful virtual machine scripts are included in the accompanying Appendix 5. These two scripts can control images based on real joystick signals according to the inventive control architecture. Script Demo1 controls the machine image movement in x-y Cartesian coordinates while the x-y coordinate system can be user-rotated between +/−45 degrees. Script Demo2 controls the machine image according to a pre-defined differential cutting trajectory.
  • The graphical examples of FIGS. 11-14 show that the inventive control architecture application can be used not only for effective and efficient control of an articulated machine, but also for creating related 3D images, for example, as shown, a complete schematic of an excavator executing coordinated joint control. One example of the implementation of the differential control architecture of the invention to generate a sequence of computer images representing an excavator employing three actuators coordinated by one control signal, of a simulated joystick, appears in Appendix 3 herein.
  • In the foregoing examples, including those employing artificial intelligence component 162, the human supervisor 144 is, in most cases, an important element of the machine's control architecture. The human supervisor 144 guides the machine 100 based on visual feedback and determines the preferred trajectory for a given task.
  • It will however be apparent to one of ordinary skill in the art that the differential, coordinated joint motion control system of the invention may be applied to control problems that do not require a human operator or human supervisor as an element in a control loop. Such an application may arise when a multi-joint machine is required to follow a particular trajectory or trajectories generated by measurement and/or a mathematical model or models. The inventive concepts relating to the distribution of joint control velocity components from a single joystick 142 to multiple, or all, joint actuators can, pursuant to the present invention, be applied, with suitable adaptation to other problems involving the control, characterization, representation or simulation of coordinated joint systems.
  • One example is the graphical matching problem of a captured, filmed, digitized, or otherwise scanned image to a physical model, for example an anatomical model or subject. Another problem, some solutions of which have been described hereinabove, is that of providing a graphical representation of a multi-linked machine.
  • In the particular example of gait analysis of the human body, the trajectories to be followed are the measured, and recorded paths of body points or markers, and the end effectors are the corresponding points on the multi-linked biomechanical model of the human body. Matching the model to the measured trajectory with the use of the inventive, coordinated, joint motion control system can be advantageous and provide new solutions to evaluating joint parameters related to motion characteristics, and to evaluating muscle forces and torques in the human body. Such matching methods and systems may be utilized for research, teaching, rehabilitation, athletics training, prosthetics design and other purposes as will be apparent to those skilled in the art.
  • In such matching and representation applications, the human supervisor 144's visual feedback can be replaced by an automated error evaluator that calculates the difference between the measured or desired trajectory points and those calculated from a biomechanical forward kinematics model. The error evaluator also reduces this difference by correcting the joint actuator velocities coordinately in a manner analogous to the way the inventive control architecture supports control by the human supervisor 144 in the above-described excavator examples.
  • One example of such an automated image-matching application is illustrated in FIGS. 17 and 18. FIG. 17 depicts the example of captured, or measured, [Xi c] and modeled [Xi] trajectories of part of a human right arm depicted as a three-link revolute machine.
  • FIG. 18 is a schematic chart of one embodiment of the application of the inventive joint velocity control coordination system for efficiently achieving a best fit of a modeled trajectory to a captured trajectory. The illustrated method is intended to be iterative for each time interval until the best square fit between the desired trajectory, which is to say the measured or captured trajectory and the system executed or modeled trajectory is achieved. While the performance of the method is believed clear from FIG. 18 when read in conjunction with FIG. 17, in light of the description herein, nevertheless, the control concept will now be described in more detail to illustrate the application of the inventive differential control principles in this coordinated joint manipulation example.
  • The trajectory for each Xi point is guided by the captured trajectory Xi c. The velocity components {dot over (x)}i{dot over (y)}i and żi can be calculated from the Xi c vector for each time interval by numerical derivation. Cubic spline or other suitable smoothing of the trajectories can be used to achieve reliable derivatives. Cubic spline smoothing of the trajectory function in arc-length parametric form, Xi=Fi(si), can also be used, if desired. The control velocity is the sum of two components, the first term, for following the captured trajectory, and the second term, for correcting the matching error, ΔXi E(t):
  • X . i = F i s i ( s i ) · s t + X i E , i = 1 N ( 7 )
  • The matching error correction velocity vector {dot over (X)}i E can be iteratively calculated from finite differences (or higher-order differential schematics if deemed necessary) for each time step which is to say for each consecutive frame, as follows:
  • X . i E ( t ) = X i c ( t ) - X i ( t ) Δ t = Δ X i E ( t ) Δ t ( 8 )
  • The control velocity vectors in Equation 7 are preferably distributed to the individual joints in terms of joints angular velocity components. This can be accomplished by applying the differential joint control coordination control concept based on a differential inverse kinematics model of the human body. It is convenient to assume that the trajectory coordinate data set over-determinates the set of joint angles. Therefore, a least-square-fit solution can be obtained for the joint motion velocities:

  • i c ]=[J i ]\{[X i c ]+[X i E]}  (9)
  • A further optimization loop is included in FIG. 18 to permit a further reduction in the multi-dimensional distance error, measured in root-mean-square norm, by varying the [θi] set. Fast convergence is achieved since every consecutive [Xi] set, being an element of the time-series of the positions, uses the previous set as a good initial approximate position.
  • As illustrated by the foregoing examples the inventive systems and methods enable the design of efficient computational algorithm equipment applicable to problems associated with coordinated joint systems or related or equivalent systems, as will be apparent to those skilled in the art. The invention also provides a new level of operator control that can be called human supervisory control wherein the operator is relieved of repetitive and challenging manipulative tasks but serves a high level function selecting monitoring and adjusting automated machine performance.
  • A comparison is given below between a machine operator control, as it is currently known, and a human supervisor 144 control that becomes possible with the inventive, differential control architecture.
  • Conventional articulated arm machines suffer from a number of drawbacks. A manual operator is required to control the machine. Conventional machines usually cannot be adapted to a given task-type without making hardware adjustment(s) and often no task-type adjustment is possible. Tool movement trajectory is usually directed point-to-point using multiple control joysticks or lever arms each of which is rigidly pre-defined to control only one corresponding machine actuator. The control of a complex trajectory may require the use of all joysticks simultaneously. Repeated tasks are always new tasks. Repetition increases the operator's skills, and the efficiency of task execution increases through the skills of the operator. Automated repeatability of a trajectory is not usually supported. Remote control with camera vision is difficult to execute since visually coordinated joystick movement is needed. Visual feedback is key to trajectory control; in poor visibility, the task is problematic.
  • In contrast, the present invention provides human supervisor 144 control of an automated robotic machine 100 which with the inventive control architecture can be adapted to one or more given task-types by selecting from pre-programmed software-defined machine kinematics. New machine kinematics can also be created by training the machine to a new kinematics in a new coordinate system.
  • Tool movement trajectory cant be directed point-to-point using one or more control joysticks or lever arms that are dynamically defined to control a number of machine actuators. The control of the same trajectory may be accomplished using only one joystick. Repeated tasks are built into the new control system's trajectory generator. The efficiency of task execution increases through the refinements of the control parameters either by the operator or the artificial intelligence component of the control system. possible to repeat a pre-defined trajectory. Remote control with the new architecture provides better control since part of the trajectory control is supported by a priori trajectory characteristics. Remote control in poor visibility employing one or more cameras other viewing systems is a feasible embodiment of the invention and can be safe and efficient to execute. Optionally, wireless remote communication may be used to transmit the control signals.
  • An automated machine with a traditional robotic control architecture requires high-precision components to be used in the embedded, joint position control loops. Another disadvantage is that complex algorithms are needed to combine the operator control components with the pre-defined trajectory feature of a conventional, robotic equipment with trajectory planner. In contrast the differential control architecture of the present invention, in preferred embodiments can provide a number of advantageous features.
  • Safety of control the manual and the pre-programmed motion control components can be blended together continuously and always under the guidance of the human supervisor 144. Preferred inventive differential control schematics can apply simple velocity-controlled actuators that are similar to those of an electro-hydraulic, manual machine equipped with additional joint position sensors. The additional inventive control architecture can be implemented by modifying the control joystick circuits and the human supervisor's user interface often without significant other modifications.
  • The inventive control architecture can accept a selection of parametric a priori trajectories. The inventive system provides flexibility. In addition to trajectory selection or parametric modification, re-programming of the motion can be made through motion modification control executed in a transformed or joint space coordinate system. Operator support optimization and computational assistance can be incorporated in the determination and selection of a basic trajectory, representing a motor schema of the motion. In addition the invention may favorably impact the performance of model-based evaluation of time-seriesed captured images.
  • INDUSTRIAL APPLICABILITY
  • The present invention is particularly, but not exclusively, suitable for application in the mining and construction and image matching and generation industries providing a flexible control of equipment in an unstructured environment. In repetitive but slightly modulated tasks, the invention can provide relief to an operator by supporting automatic control regarding repetitive trajectory elements.
  • The entire disclosure of each patent and patent application cross-referenced or referenced herein and of each non-patent publication referenced herein is hereby incorporated herein by reference thereto, as though wholly set forth herein. Each document incorporated by reference in any of the foregoing patents, patent applications or non-patent publications is also incorporated herein in its entirety by reference thereto.
  • While illustrative embodiments of the invention have been described above, it is, of course, understood that various modifications will be apparent to those of ordinary skill in the relevant art, or may become apparent as the art develops. Many such modifications are contemplated as being within the spirit and scope of the invention.
  • APPENDIXES 1-5
  • APPENDIX 1
    Differential control architecture example to generate a sequence of
    computer images representing an excavator. Three actuators are
    coordinated by one control signal, of a simulated joystick. The
    coordinated control is based on coordinate transformation.
    %Figure 6.
    %dynamic trajectory planning
    %machine makes linear rakeing: cannot advance slices since it reaches
    envelope
    clear all
    close
    frame=[0 16 −1 15]; %figure frame size
    bl=39*.1789;
    sl=25*.1789;
    bm=[0 b1;0 0];
    ds=[0 s1;0 0];
    bt=[0  1  6.5   11   16  19   14.5  10 1 0;
      0  −9  −12  −10 −7.5   0   −3   −1.5 4.5 0];
    bt=bt*.1789;
    bct=bt(1,6)−bt(1,1);     %bucket opening size
    s1=ones(size(bt));
    s2=ones(size(ds));
    cab=[NaN  0  12  14.88  16.98  17.75  16.98  14.88   12   4
    4   6  0
      NaN  0   0  0.77   2.88   5.75   8.63   10.73  11.5  13
      34  44  44];
    cab=cab*.1789;
    bmss(1,:)=s2(1,:)*bm(1,2); %stick-size vector
    bmss(2,:)=s2(2,:)*bm(2,2); %stick-size
    bmbs(1,:)=s1(1,:)*bm(1,2); %bucket-size vector
    bmbs(2,:)=s1(2,:)*bm(2,2); %bucket-size
    dsbs(1,:)=s1(1,:)*ds(1,2); %bucket-size
    dsbs(2,:)=s1(2,:)*ds(2,2); %bucket-size
    bx=0;
    by=26*.1789;
    %control
    %home
    x=4.2;y=0;dh=−120; %horizontal vx constant
    %x=12;y=2.1468;dh=0; %verical vy constant
    d=dh;
    u=90;
    pf=1;
    inv_gr1 % inverse kinematic provides home joint coordinates
    hold on %keeps picture
    ah=a;
    bh=b;
    aint=ah;
    bint=bh;
    dint=dh;
    %dynamic trajectory planning
    prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
    abd=[ ];
      L=7.62;  %25 ft
      vav=mean(prof);
      dta=L/vav/120;
    for i=1:120
      vx=0.8*prof(i); %m/s
      vy=0.8*prof(i);
      dt=dta/.8;
      a=aint;
      b=bint;
      dd=.82;
      d=dint;  %bucket absolute angle
      pf=1; %pf=rem(i,10); %plots at every time pf==0
       pf=rem(i,10);if i==1;pf=0;end;
      fwd_gr1
      %Machine Jacobian JM
      JM=flipud([eds−bbm eds−ebm]);JM(1,:)=−JM(1,:);
      vbx=−(ebt(2,1)−eds(2,1))*dd*pi/180/dt;
      vby=(ebt(1,1)−eds(1,1))*dd*pi/180/dt;
      dang=inv(JM)*[vx−vbx;vy−vby]*180/pi*dt;
      aint=aint+dang(1,1);
      bint=bint+dang(2,1);
      dint=dint+dd;
      abd=[abd [dang;dd]];
      plot(ebt(1,1),ebt(2,1),‘k’) %plots bucket edge
      axis(frame)
      figure(gcf)
    pause(.01)
    end
    plot(cab(1,:),cab(2,:),‘k:’)
    xlabel(‘Horizontal Distance [m]’)
    ylabel(‘Elevation [m]’)
    %FORWARD BOUNDARY
    by=26*.1789;
    %control
    %home
    x=4.2+1.7;y=0;dh=−120; %horizontal vx constant
    %x=12;y=2.1468;dh=0; %verical vy constant
    d=dh;
    u=90;
    pf=1;
    inv_gr1 % inverse kinematic provides home joint coordinates
    hold on %keeps picture
    ah=a;
    bh=b;
    aint=ah;
    bint=bh;
    dint=dh;
    %dynamic trajectory planning
    prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
    abd=[ ];
      L=7.62;
      vav=mean(prof);
      dta=L/vav/120;
    for i=1:120
      vx=0.8*prof(i); %m/s
      vy=0.8*prof(i);
      dt=dta/.8;
      a=aint;
      b=bint;
      dd=.82;
      d=dint; %bucket absolute angle
      pf=rem(i,10);if i==1;pf=0;end; %plots at every time pf==0
      fwd_gr1
      %Machine Jacobian JM
      JM=flipud([eds−bbm eds−ebm]);JM(1,:)=−JM(1,:);
      vbx=−(ebt(2,1)−eds(2,1))*dd*pi/180/dt;
      vby=(ebt(1,1)−eds(1,1))*dd*pi/180/dt;
      dang=inv(JM)*[vx−vbx;vy−vby]*180/pi*dt;
      aint=aint+dang(1,1);
      bint=bint+dang(2,1);
      dint=dint+dd;
      abd=[abd [dang;dd]];
      plot(ebt(1,1),ebt(2,1),‘k’) %plots bucket edge
      axis(frame)
      figure(gcf)
    pause(.01)
    end
    %plot(cab(1,:),cab(2,:),‘k:’)
    xlabel(‘Horizontal Distance [m]’)
    ylabel(‘Elevation [m]’)
    %CUT UPPER CORNER
    plot(cab(1,:),cab(2,:),‘k:’)
    hold off
  • APPENDIX 2
    Differential control architecture example to generate a sequence of
    computer images representing an excavator. Three actuators are
    coordinated by one control signal, of a simulated joystick.
    The control is based on a defined parametric trajectory. The
    first cut is simulated. The same parametric trajectory can
    be used for the second cut.
    %Figure 8.
    %dynamic trajectory planning
    %machine makes linear rakeing: cannot advance slices since it reaches envelope
    clear all
    close
    frame=[0 16 −1 15]; %figure frame size
    b1=39*.1789;
    s1=25*.1789;
    bm=[0 b1;0 0];
    ds=[0 s1;0 0];
    bt=[0  1  6.5 11  16  19 14.5   10  1 0;
      0 −9 −12  −10 −7.5  0  −3  −1.5 4.5 0];
    bt=bt*.1789;
    bct=bt(1,6)−bt(1,1);    %bucket opening size
    s1=ones(size(bt));
    s2=ones(size(ds));
    cab=[NaN 0 12 14.88 16.98 17.75 16.98 14.88  12  4  4  6 0
      NaN 0  0 0.77  2.88  5.75  8.63  10.73 11.5 13 34 44 44];
    cab=cab*.1789;
    bmss(1,:)=s2(1,:)*bm(1,2); %stick-size vector
    bmss(2,:)=s2(2,:)*bm(2,2); %stick-size
    bmbs(1,:)=s1(1,:)*bm(1,2); %bucket-size vector
    bmbs(2,:)=s1(2,:)*bm(2,2); %bucket-size
    dsbs(1,:)=s1(1,:)*ds(1,2); %bucket-size
    dsbs(2,:)=s1(2,:)*ds(2,2); %bucket-size
    bx=0;
    by=26*.1789;
    %control
    %home
    x=4.2;y=0;dh=−120; %horizontal vx constant
    %x=12;y=2.1468;dh=0; %verical vy constant
    d=dh;
    u=90;
    pf=1;
    inv_gr1 % inverse kinematic provides home joint coordinates
    hold on %keeps picture
    ah=a;
    bh=b;
    aint=ah;
    bint=bh;
    dint=dh;
    %dynamic trajectory planning
    prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
    abd=[ ];
      L=7.62; %25 ft
      vav=mean(prof);
      dta=L/vav/120;
    for i=1:120
      vx=0.8*prof(i); %m/s
      vy=0.8*prof(i);
      dt=dta/.8;
      a=aint;
      b=bint;
      dd=.82;
      d=dint; %bucket absolute angle
      pf=1; %pf=rem(i,10); %plots at every time pf==0
      % pf=rem(i,10);if i==1;pf=0;end;
      fwd_gr1
      %Machine Jacobian JM
      JM=flipud([eds−bbm eds−ebm]);JM(1,:)=−JM(1,:);
      vbx=−(ebt(2,1)−eds(2,1))*dd*pi/180/dt;
      vby=(ebt(1,1)−eds(1,1))*dd*pi/180/dt;
      dang=inv(JM)*[vx−vbx;vy−vby]*180/pi*dt;
      aint=aint+dang(1,1);
      bint=bint+dang(2,1);
      dint=dint+dd;
      abd=[abd [dang;dd]];
      plot(ebt(1,1),ebt(2,1),‘k’) %plots bucket edge
      axis(frame)
      figure(gcf)
    pause(.01)
    end
    plot(cab(1,:),cab(2,:),‘k:’)
    xlabel(‘Horizontal Distance [m]’)
    ylabel(‘Elevation [m]’)
    %FORWARD BOUNDARY
    by=26*.1789;
    %control
    %home
    x=4.2+1.7;y=0;dh=−120; %horizontal vx constant
    %x=12;y=2.1468;dh=0; %verical vy constant
    d=dh;
    u=90;
    pf=1;
    inv_gr1 % inverse kinematic provides home joint coordinates
    hold on %keeps picture
    ah=a;
    bh=b;
    aint=ah;
    bint=bh;
    dint=dh;
    %dynamic trajectory planning
    prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
    abd=[ ];
      L=7.62;
      vav=mean(prof);
      dta=L/vav/120;
    for i=1:120
      vx=0.8*prof(i); %m/s
      vy=0.8*prof(i);
      dt=dta/.8;
      a=aint;
      b=bint;
      dd=.82;
      d=dint; %bucket absolute angle
      pf=1; %pf=rem(i,10);if i==1;pf=0;end; %plots at every time pf==0
      fwd_gr1
      %Machine Jacobian JM
      JM=flipud([eds−bbm eds−ebm]);JM(1,:)=−JM(1,:);
      vbx=−(ebt(2,1)−eds(2,1))*dd*pi/180/dt;
      vby=(ebt(1,1)−eds(1,1))*dd*pi/180/dt;
      dang=inv(JM)*[vx−vbx;vy−vby]*180/pi*dt;
      aint=aint+dang(1,1);
      bint=bint+dang(2,1);
      dint=dint+dd;
      abd=[abd [dang;dd]];
      plot(ebt(1,1),ebt(2,1),‘k’) %plots bucket edge
      axis(frame)
      figure(gcf)
    pause(.01)
    end
    %plot(cab(1,:),cab(2,:),‘k:’)
    xlabel(‘Horizontal Distance [m]’)
    ylabel(‘Elevation [m]’)
    %CUT UPPER CORNER
    %DEFINE CUTTING TRAJECTORY
    %constants
    f=1.7; %forward advance
    sg=1; %slope grade 45 degrees
    dh=−90; %home bucket position
    dhr=dh*pi/180;
    %x=4.2;y=0; %hone coordinates
    x=8.75;y=4.6;
    d=dh;
    u=90;
    pf=0;
    inv_gr1 % inverse kinematic provides home joint coordinates
    ah=a;
    bh=b;
      pf=0; %pf=rem(i,10);if i==1;pf=0;end; %plots at every time pf==0
     fwd_gr1
     axis(frame)
    xh=ebt(1,1); %home coordinate of x
    yh=ebt(2,1); %home coordinate of x
    k=−bct*(sin(dh*pi/180)+cos(atan(sg)));
    h=f+k/sg;
    c3=sg/h{circumflex over ( )}2−2*k/h{circumflex over ( )}3;
    c2=3*k/h{circumflex over ( )}2−sg/h;
    hold on
    %variables
    aint=ah;
    bint=bh;
    prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
    abd=[ ];
      L=25; %degrees here
      vav=mean(prof);
      dta=L/vav/120;
    d1o=dh;
    for i=1:30
      dd=.06*prof(i); %degree/sec
      dt=dta;
      X=ebt(1,1)−xh;
      Y=ebt(2,1)−yh;
      if (X{circumflex over ( )}2+Y{circumflex over ( )}2)==0
        xpy=1;
      else
        xpy=X/(X{circumflex over ( )}2+Y{circumflex over ( )}2){circumflex over ( )}.5;
      end
      if X<=h
        vx1=(dd/dt)*h/(atan(sg)−dh−90)*xpy;
        vy1=(3*c3*X{circumflex over ( )}2+2*c2*X)*vx1;
                      l1=(h−bct*(sin(atan(sg))−cos(dhr)));
                      xdiff=X*(1−l1/h)+bct*cos(dhr);
                      ydiff=bct*sin(dhr)+Y;
        d1=180/pi*atan2(ydiff,xdiff);
      else
        vx1=(dd/dt)*h/(atan(sg)−dh−90)*xpy;
        vy1=vx1*sg;
        xdiff=X*(1−l1/h)+bct*cos(dhr);
                      ydiff=bct*sin(dhr)+Y;
        d1=180/pi*atan2(ydiff,xdiff)*(X/h){circumflex over ( )}2; %reduced angular bucket adjustment
        %d1=−(90−180/pi*atan(sg));
      end
      dd1=d1−d1o; %angular incremental change
      d1o=d1;
     JM=flipud([eds−bbm eds−ebm]);JM(1,:)=−JM(1,:);
    abd=[abd [vx1;vy1;d1]];
      vbx=−(ebt(2,1)−eds(2,1))*dd1*pi/180/dt;
      vby=(ebt(1,1)−eds(1,1))*dd1*pi/180/dt;
      dang=inv(JM)*[vx1−vbx;vy1−vby]*180/pi*dt;
      aint=aint+dang(1,1);
      bint=bint+dang(2,1);
      %dint=dint+dd;
      a=aint;
      b=bint;
      d=d1;
     pf=0; %pf=rem(i,10);if i==1;pf=0;end; %plots at every time pf==0
     fwd_gr1
     figure(gcf)
     pause(.1)
    end
    plot(cab(1,:),cab(2,:),‘k;’)
    hold off %pap8.m
    %dynamic trajectory planning
    %machine makes linear rakeing: cannot advance slices since it reaches envelope
    clear all
    close
    frame=[0 16 −1 15]; %figure frame size
    b1=39*.1789;
    s1=25*.1789;
    bm=[0 b1;0 0];
    ds=[0 s1;0 0];
    bt=[0  1 6.5  11  16  19  14.5  10 1  0;
      0 −9 −12  −10 −7.5  0  −3  −1.5 4.5  0];
    bt=bt*.1789;
    bct=bt(1,6)−bt(1,1);    %bucket opening size
    s1=ones(size(bt));
    s2=ones(size(ds));
    cab=[NaN 0 12 14.88 16.98 17.75 16.98 14.88  12  4  4  6 0
      NaN 0  0 0.77  2.88  5.75  8.63  10.73 11.5 13 34 44 44];
    cab=cab*.1789;
    bmss(1,:)=s2(1,:)*bm(1,2); %stick-size vector
    bmss(2,:)=s2(2,:)*bm(2,2); %stick-size
    bmbs(1,:)=s1(1,:)*bm(1,2); %bucket-size vector
    bmbs(2,:)=s1(2,:)*bm(2,2); %bucket-size
    dsbs(1,:)=s1(1,:)*ds(1,2); %bucket-size
    dsbs(2,:)=s1(2,:)*ds(2,2); %bucket-size
    bx=0;
    by=26*.1789;
    %control
    %home
    x=4.2;y=0;dh=−120; %horizontal vx constant
    %x=12;y=2.1468;dh=0; %verical vy constant
    d=dh;
    u=90;
    pf=1;
    inv_gr1 % inverse kinematic provides home joint coordinates
    hold on %keeps picture
    ah=a;
    bh=b;
    aint=ah;
    bint=bh;
    dint=dh;
    %dynamic trajectory planning
    prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
    abd=[ ];
      L=7.62; %25 ft
      vav=mean(prof);
      dta=L/vav/120;
    for i=1:120
      vx=0.8*prof(i); %m/s
      vy=0.8*prof(i);
      dt=dta/.8;
      a=aint;
      b=bint;
      dd=.82;
      d=dint; %bucket absolute angle
      pf=1; %pf=rem(i,10); %plots at every time pf==0
      % pf=rem(i,10);if i==1;pf=0;end;
      fwd_gr1
      %Machine Jacobian JM
      JM=flipud([eds−bbm eds−ebm]);JM(1,:)=−JM(1,:);
      vbx=−(ebt(2,1)−eds(2,1))*dd*pi/180/dt;
      vby=(ebt(1,1)−eds(1,1))*dd*pi/180/dt;
      dang=inv(JM)*[vx−vbx;vy−vby]*180/pi*dt;
      aint=aint+dang(1,1);
      bint=bint+dang(2,1);
      dint=dint+dd;
      abd=[abd [dang;dd]];
      plot(ebt(1,1),ebt(2,1),‘k’) %plots bucket edge
      axis(frame)
      figure(gcf)
    pause(.01)
    end
    plot(cab(1,:),cab(2,:),‘k:’)
    xlabel(‘Horizontal Distance [m]’)
    ylabel(‘Elevation [m]’)
    %FORWARD BOUNDARY
    by=26*.1789;
    %control
    %home
    x=4.2+1.7;y=0;dh=−120; %horizontal vx constant
    %x=12;y=2.1468;dh=0; %verical vy constant
    d=dh;
    u=90;
    pf=1;
    inv_gr1 % inverse kinematic provides home joint coordinates
    hold on %keeps picture
    ah=a;
    bh=b;
    aint=ah;
    bint=bh;
    dint=dh;
    %dynamic trajectory planning
    prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
    abd=[ ];
      L=7.62;
      vav=mean(prof);
      dta=L/vav/120;
    for i=1:120
      vx=0.8*prof(i); %m/s
      vy=0.8*prof(i);
      dt=dta/.8;
      a=aint;
      b=bint;
      dd=.82;
      d=dint; %bucket absolute angle
      pf=1; %pf=rem(i,10);if i==l;pf=0;end; %plots at every time pf==0
      fwd_gr1
      %Machine Jacobian JM
      JM=flipud([eds−bbm eds−ebm]);JM(1,:)=−JM(1,:);
      vbx=−(ebt(2,1)−eds(2,1))*dd*pi/180/dt;
      vby=(ebt(1,1)−eds(1,1))*dd*pi/180/dt;
      dang=inv(JM)*[vx−vbx;vy−vby]*180/pi*dt;
      aint=aint+dang(1,1);
      bint=bint+dang(2,1);
      dint=dint+dd;
      abd=[abd [dang;dd]];
      plot(ebt(1,1),ebt(2,1),‘k’) %plots bucket edge
      axis(frame)
      figure(gcf)
    pause(.01)
    end
    %plot(cab(1,:),cab(2,:),‘k:’)
    xlabel(‘Horizontal Distance [m]’)
    ylabel(‘Elevation [m]’)
    %CUT UPPER CORNER
    %DEFINE CUTTING TRAJECTORY
    %constants
    f=1.7; %forward advance
    sg=1; %slope grade 45 degrees
    dh=−90; %home bucket position
    dhr=dh*pi/180;
    %x=4.2;y=0; %hone coordinates
    x=8.75;y=4.6;
    d=dh;
    u=90;
    pf=0;
    inv_gr1 % inverse kinematic provides home joint coordinates
    ah=a;
    bh=b;
      pf=0; %pf=rem(i,10);if i==1;pf=0;end; %plots at every time pf==0
     fwd=gr1
     axis(frame)
    xh=ebt(1,1); %home coordinate of x
    yh=ebt(2,1); %home coordinate of x
    k=−bct*(sin(dh*pi/180)+cos(atan(sg)));
    h=f+k/sg;
    c3=sg/h{circumflex over ( )}2−2*k/h{circumflex over ( )}3;
    c2=3*k/h{circumflex over ( )}2−sg/h;
    hold on
    %variables
    aint=ah;
    bint=bh;
    prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
    abd=[ ];
      L=25; %degrees here
      vav=mean(prof);
      dta=L/vav/120;
    d1o=dh;
    for i=1:30
      dd=.06*prof(i); %degree/sec
      dt=dta;
      X=ebt(1,1)−xh;
      Y=ebt(2,1)−yh;
      if (X{circumflex over ( )}2+Y{circumflex over ( )}2)==0
        xpy=1;
      else
        xpy=X/(X{circumflex over ( )}2+Y{circumflex over ( )}2){circumflex over ( )}.5;
      end
      if X<=h
        vx1=(dd/dt)*h/(atan(sg)−dh−90)*xpy;
        vy1=(3*c3*X{circumflex over ( )}2+2*c2*X)*vx1;
                      l1=h−bct*(sin(atan(sg))−cos(dhr)));
                      xdiff=X*(1−l1/h)+bct*cos(dhr);
                      ydiff=bct*sin(dhr)+Y;
        d1=180/pi*atan2(ydiff,xdiff);
      else
        vx1=(dd/dt)*h/(atan(sg)−dh−90)*xpy;
        vy1=vx1*sg;
        xdiff=X*(1−l1/h)+bct*cos(dhr);
                      ydiff=bct*sin(dhr)+Y;
        d1=180/pi*atan2(ydiff,xdiff)*(X/h){circumflex over ( )}2; %reduced angular bucket adjustment
        %d1=−(90−180/pi*atan(sg));
      end
      dd1=d1−d1o; %angular incremental change
      d1o=d1;
     JM=flipud([eds−bbm eds−ebm]);JM(1,:)=−JM(1,:);
    abd=[abd [vx1;vy1;d1]];
      vbx=−(ebt(2,1)−eds(2,1))*dd1*pi/180/dt;
      vby=(ebt(1,1)−eds(1,1))*dd1*pi/180/dt;
      dang=inv(JM)*[vx1−vbx;vy1−vby]*180/pi*dt;
      aint=aint+dang(1,1);
      bint=bint+dang(2,1);
      %dint=dint+dd;
      a=aint;
      b=bint;
      d=d1;
     pf=0; %pf=rem(i,10);if i==1;pf=0;end; %plots at every time pf==0
     fwd_gr1
     figure(gcf)
     pause(.1)
    end
    plot(cab(1,:),cab(2,:),‘k:’)
    hold off\\\\\
  • APPENDIX 3
    Differential control architecture example to generate a sequence of computer images representing an excavator.
    Three actuators are coordinated by one control signal, of a simulated joystick.
    The control is based on a pre-defined trajectory for cutting a sharp corner.
    %Figure 9.
    %pap8.m
    %dynamic trajectory planning
    %machine makes linear rakeing: cannot advance slices since it reaches envelope
    clear all
    close
    frame=[0 16 −1 15]; %figure frame size
    b1=39*.1789;
    s1=25*.1789;
    bm=[0 b1;0 0];
    ds=[0 s1;0 0];
     bt=[0  1  6.5  11  16 19 14.5  10 1  0;
        0 −9 −12 −10 −7.5  0  −3 −1.5 4.5  0];
    bt=bt*.1789;
    bct=bt(1,6)−bt(1,1); %bucket opening size
    s1=ones(size(bt));
    s2=ones(size(ds));
    cab=[NaN 0 12 14.88 16.98 17.75 16.98 14.88  12 4 4  6 0
       NaN 0  0 0.77 2.88 5.75 8.63 10.73 11.5 13 34 44 44];
    cab=cab*.1789;
    bmss(1,:)=s2(1,:)*bm(1,2);  %stick-size vector
    bmss(2,:)=s2(2,:)*bm(2,2);  %stick-size
    bmbs(1,:)=s1(1,:)*bm(1,2);  %bucket-size vector
    bmbs(2,:)=s1(2,:)*bm(2,2);  %bucket-size
    dsbs(1,:)=s1(1,:)*ds(1,2);   %bucket-size
    dsbs(2,:)=s1(2,:)*ds(2,2);   %bucket-size
    bx=0;
    by=26*.1789;
    %control
    %home
    x=4.2;y=0;dh=−120; %horizontal vx constant
    %x=12;y=2.1468;dh=0; %verical vy constant
    d=dh;
    u=90;
    pf=1;
    inv_gr1  % inverse kinematic provides home joint coordinates
    hold on %keeps picture
    ah=a;
    bh=b;
    aint=ah;
    bint=bh;
    dint=dh;
    %dynamic trajectory planning
    prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
    abd=[ ];
     L=7.62;  %25 ft
     vav=mean(prof);
     dta=L/vav/120;
    for i=1:120
     vx=0.8*prof(i); %m/s
     vy=0.8*prof(i);
     dt=dta/.8;
     a=aint;
     b=bint;
     dd=.82;
     d=dint;  %bucket absolute angle
     pf=1;  %pf=rem(i,10); %plots at every time pf==0
     % pf=rem(i,10);if i==1;pf=0;end;
     fwd_gr1
     %Machine Jacobian JM
     JM=flipud([eds−bbm eds−ebm]);JM(1,:)=−JM(1,:);
     vbx=−(ebt(2,1)−eds(2,1))*dd*pi/180/dt;
     vby=(ebt(1,1)−eds(1,1))*dd*pi/180/dt;
     dang=inv(JM)*[vx−vbx;vy−vby]*180/pi*dt;
     aint=aint+dang(1,1);
     bint=bint+dang(2,1);
     dint=dint+dd;
     abd=[abd [dang;dd]];
     plot(ebt(1,1),ebt(2,1),‘k’) %plots bucket edge
     axis(frame)
     figure(gcf)
    pause(.01)
    end
    plot(cab(1,:),cab(2,:),‘k:’)
    xlabel(‘Horizontal Distance [m]’)
    ylabel(‘Elevation [m]’)
    %FORWARD BOUNDARY
    by=26*.1789;
    %control
    %home
    x=4.2+1.7;y=0;dh=−120; %horizontal vx constant
    %x=12;y=2.1468;dh=0; %verical vy constant
    d=dh;
    u=90;
    pf=1;
    inv_gr1  % inverse kinematic provides home joint coordinates
    hold on %keeps picture
    ah=a;
    bh=b;
    aint=ah;
    bint=bh;
    dint=dh;
    %dynamic trajectory planning
    prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
    abd=[ ];
     L=7.62;
     vav=mean(prof);
     dta=L/vav/120;
    for i=1:120
     vx=0.8*prof(i); %m/s
     vy=0.8*prof(i);
     dt=dta/.8;
     a=aint;
     b=bint;
     dd=.82;
     d=dint;  %bucket absolute angle
     pf=1;  %pf=rem(i,10);if i==1;pf=0;end; %plots at every time pf==0
     fwd_gr1
     %Machine Jacobian JM
     JM=flipud([eds−bbm eds−ebm]);JM(1,:)=−JM(1,:);
     vbx=−(ebt(2,1)−eds(2,1))*dd*pi/180/dt;
     vby=(ebt(1,1)−eds(1,1))*dd*pi/180/dt;
     dang=inv(JM)*[vx−vbx;vy−vby]*180/pi*dt;
     aint=aint+dang(1,1);
     bint=bint+dang(2,1);
     dint=dint+dd;
     abd=[abd [dang;dd]];
     plot(ebt(1,1),ebt(2,1),‘k’) %plots bucket edge
     axis(frame)
     figure(gcf)
    pause(.01)
    end
    %plot(cab(1,:),cab(2,:),‘k:’)
    xlabel(‘Horizontal Distance [m]’)
    ylabel(‘Elevation [m]’)
    %CUT UPPER CORNER
    %DEFINE CUTTING TRAJECTORY
    %constants
    f=1.7;  %forward advance
    sg=1;  %slope grade 45 degrees
    dh=−90;  %home bucket position
    dhr=dh*pi/180;
    %x=4.2;y=0; %hone coordinates
    x=8.75;y=4.6;
    %comment 1: use predefined parametric trajectory. Use approximate analytical solution for %
     derivative df/ds in Equation (6) for the parametric trajectory in Figure 7.
    d=dh;
    u=90;
    pf=0;
    inv_gr1  % inverse kinematic provides home joint coordinates
    ah=a;
    bh=b;
     pf=0; %pf=rem(i,10);if i==1;pf=0;end; %plots at every time pf==0
      fwd_gr1
      axis(frame)
    xh=ebt(1,1);  %home coordinate of x
    yh=ebt(2,1);  %home coordinate of x
    k=−bct*(sin(dh*pi/180)+cos(atan(sg)));
    h=f+k/sg;
    c3=sg/h{circumflex over ( )}2−2*k/h{circumflex over ( )}3;
    c2=3*k/h{circumflex over ( )}2−sg/h;
    hold on
    %variables
    aint=ah;
    bint=bh;
    prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
    abd=[ ];
     L=25;  %degrees here
     vav=mean(prof);
     dta=L/vav/120;
    d1o=dh;
    for i=1:30
     dd=.06*prof(i); %degree/sec
     dt=dta;
     X=ebt(1,1)−xh;
     Y=ebt(2,1)−yh;
     if (X{circumflex over ( )}2+Y{circumflex over ( )}2)==0
      xpy=1;
     else
      xpy=X/(X{circumflex over ( )}2+Y{circumflex over ( )}2){circumflex over ( )}.5;
     end
     if X<=h
      vx1=(dd/dt)*h/(atan(sg)−dh−90)*xpy;
      vy1=(3*c3*X{circumflex over ( )}2+2*c2*X)*vx1;
    l1=(h−bct*(sin(atan(sg))−cos(dhr)));
    xdiff=X*(1−l1/h)+bct*cos(dhr);
    ydiff=bct*sin(dhr)+Y;
      d1=180/pi*atan2(ydiff,xdiff);
     else
      vx1=(dd/dt)*h/(atan(sg)−dh−90)*xpy;
      vy1=vx1*sg;
      xdiff=X*(1−l1/h)+bct*cos(dhr);
    ydiff=bct*sin(dhr)+Y;
      d1=180/pi*atan2(ydiff,xdiff)*(X/h){circumflex over ( )}2;  %reduced angular bucket adjustment
      %d1=−(90−180/pi*atan(sg));
     end
     dd1=d1−d1o; %angular incremental change
     d1o=d1;
      JM=flipud([eds−bbm eds−ebm]);JM(1,:)=−JM(1,:);
    abd=[abd [vx1;vy1;d1]];
     vbx=−(ebt(2,1)−eds(2,1))*dd1*pi/180/dt;
     vby=(ebt(1,1)−eds(1,1))*dd1*pi/180/dt;
     dang=inv(JM)*[vx1−vbx;vy1−vby]*180/pi*dt;
     aint=aint+dang(1,1);
     bint=bint+dang(2,1);
     %dint=dint+dd;
     a=aint;
     b=bint;
     d=d1;
      pf=1; %pf=rem(i,10);if i==1;pf=0;end; %plots at every time pf==0
      fwd_gr1
      plot(ebt(1,1),ebt(2,1),‘k’) %plots bucket edge
      figure(gcf)
      pause(.1)
    end
    %CUT middle
    %DEFINE CUTTING TRAJECTORY
    %constants
    f=1.7;  %forward advance
    sg=1;  %slope grade 45 degrees
    dh=−90; %home bucket position
    dhr=dh*pi/180;
    %x=4.2;y=0; %hone coordinates
    x=8.75−2.35;y=4.6−2.35; %4/1.7=2.35 -- a bucketful of material
    d=dh;
    u=90;
    pf=0;
    inv_gr1  % inverse kinematic provides home joint coordinates
    %see comment 1
    ah=a;
    bh=b;
     pf=0; %pf=rem(i,10);if i==1;pf=0;end; %plots at every time pf==0
      fwd_gr1
      axis(frame)
    xh=ebt(1,1);  %home coordinate of x
    yh=ebt(2,1);  %home coordinate of x
    k=−bct*(sin(dh*pi/180)+cos(atan(sg)));
    h=f+k/sg;
    c3=sg/h{circumflex over ( )}2−2*k/h{circumflex over ( )}3;
    c2=3*k/h{circumflex over ( )}2−sg/h;
    hold on
    %variables
    aint=ah;
    bint=bh;
    prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
    abd=[ ];
     L=25;  %degrees here
     vav=mean(prof);
     dta=L/vav/120;
    d1o=dh;
    for i=1:30
     dd=.06*prof(i); %degree/sec
     dt=dta;
     X=ebt(1,1)−xh;
     Y=ebt(2,1)−yh;
     if (X{circumflex over ( )}2+Y{circumflex over ( )}2)==0
      xpy=1;
     else
      xpy=X/(X{circumflex over ( )}2+Y{circumflex over ( )}2){circumflex over ( )}.5;
     end
     if X<=h
      vx1=(dd/dt)*h/(atan(sg)−dh−90)*xpy;
      vy1=(3*c3*X{circumflex over ( )}2+2*c2*X)*vx1;
    l1=(h−bct*(sin(atan(sg))−cos(dhr)));
    xdiff=X*(1−l1/h)+bct*cos(dhr);
    ydiff=bct*sin(dhr)+Y;
      d1=180/pi*atan2(ydiff,xdiff);
     else
      vx1=(dd/dt)*h/(atan(sg)−dh−90)*xpy;
      vy1=vx1*sg;
      xdiff=X*(1−l1/h)+bct*cos(dhr);
    ydiff=bct*sin(dhr)+Y;
      d1=180/pi*atan2(ydiff,xdiff)*(X/h){circumflex over ( )}2;  %reduced angular bucket adjustment
      %d1=−(90−180/pi*atan(sg));
     end
     dd1=d1−d1o; %angular incremental change
     d1o=d1;
      JM=flipud([eds−bbm eds−ebm]);JM(1,:)=−JM(1,:);
    abd=[abd [vx1;vy1;d1]];
     vbx=−(ebt(2,1)−eds(2,1))*dd1*pi/180/dt;
     vby=(ebt(1,1)−eds(1,1))*dd1*pi/180/dt;
     dang=inv(JM)*[vx1−vbx;vy1−vby]*180/pi*dt;
     aint=aint+dang(1,1);
     bint=bint+dang(2,1);
     %dint=dint+dd;
     a=aint;
     b=bint;
     d=d1;
      pf=1; %pf=rem(i,10);if i==1;pf=0;end; %plots at every time pf==0
      fwd_gr1
      plot(ebt(1,1),ebt(2,1),‘k’) %plots bucket edge
      figure(gcf)
      pause(.1)
    end
    %CUT bottom
    %DEFINE CUTTING TRAJECTORY
    %constants
    f=1.7;  %forward advance
    sg=1;  %slope grade 45 degrees
    dh=−120; %home bucket position
    dhr=dh*pi/180;
    %x=4.2;y=0;  %home coordinates
    x=4.2;y=0;  %4/1.7=2.35 -- a bucketful of material
    d=dh;
    u=90;
    pf=0;
    inv_gr1  % inverse kinematic provides home joint coordinates
    %see comment 1
    ah=a;
    bh=b;
     pf=0; %pf=rem(i,10);if i==1;pf=0;end; %plots at every time pf==0
      fwd_gr1
      axis(frame)
    xh=ebt(1,1);  %home coordinate of x
    yh=ebt(2,1);  %home coordinate of x
    k=−bct*(sin(dh*pi/180)+cos(atan(sg)));
    h=f+k/sg;
    c3=sg/h{circumflex over ( )}2−2*k/h{circumflex over ( )}3;
    c2=3*k/h{circumflex over ( )}2−sg/h;
    hold on
    %variables
    aint=ah;
    bint=bh;
    prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
    abd=[ ];
     L=25;  %degrees here
     vav=mean(prof);
     dta=L/vav/120;
    d1o=dh;
    for i=1:100
     dd=prof(i); %degree/sec
     dt=dta;
     X=ebt(1,1)−xh;
     Y=ebt(2,1)−yh;
     if (X{circumflex over ( )}2+Y{circumflex over ( )}2)==0
      xpy=1;
     else
      xpy=X/(X{circumflex over ( )}2+Y{circumflex over ( )}2){circumflex over ( )}.5;
     end
     if X<=f
      vx1=(dd/dt)*f/(atan(sg)−dh−90)*xpy;
      vy1=0;
      d1=dh;
     else
      vx1=(dd/dt)*f/(atan(sg)−dh−90)*xpy;
      vy1=vx1*sg;
      xdiff=X*(1−l1/h)+bct*cos(dhr);
    ydiff=bct*sin(dhr)+Y;
      d1=d1+dd*180/pi*dt/20;  %integrated angular bucket adjustment
      %d1=−(90−180/pi*atan(sg));
     end
     dd1=d1−d1o; %angular incremental change
     d1o=d1;
      JM=flipud([eds−bbm eds−ebm]);JM(1,:)=−JM(1,:);
    abd=[abd [vx1;vy1;d1]];
     vbx=−(ebt(2,1)−eds(2,1))*dd1*pi/180/dt;
     vby=(ebt(1,1)−eds(1,1))*dd1*pi/180/dt;
     dang=inv(JM)*[vx1−vbx;vy1−vby]*180/pi*dt;
     aint=aint+dang(1,1);
     bint=bint+dang(2,1);
     %dint=dint+dd;
     a=aint;
     b=bint;
     d=d1;
      pf=rem(i,5);if i==1;pf=0;end; %plots at every time pf==0
      fwd_gr1
      figure(gcf)
      pause(.1)
    end
    plot(cab(1,:),cab(2,:),‘k:’)
    hold off
  • APPENDIX 4
    Subroutine functions used in the Matlab programs in Appendices 1 to 3
    %inv_gr1.m
    de=d*pi/180;
    %wrist coordinates
    xe=x−bct*cos(de);
    ye=y−bct*sin(de);
    %solve inverse
    u2=0;v2=0; %u - alpha
    err=1;
    %for j=1:1000
      while err>1e−12
      v=(atan2(((b1*sin(u)−(ye−by)),(b1*cos(u)−(xe−bx))));
      u=(atan2(((ye−by)+sl*sin(v)),((xe−bx)+sl*cos(v))));
      err=abs(u−u2)+abs(v−v2);
      u2=u;v2=v;
      end
    a=u*180/pi;
    b=(v−u)*180/pi;
    %boom rotation
    %a=45;
    al=a*pi/180;
    rbm=[cos(al) −sin(al); sin(al) cos(al)];
    %dipperstick rotation
    %b=45;
    be=(−180+b)*pi/180;
    rds=[cos(be) −sin(be); sin(be) cos(be)];
    %bucket rotation
    g=180+d−a−b;
    %g=20;
    ga=g*pi/180;
    rbt=[cos(ga) −sin(ga); sin(ga) cos(ga)];
    %shape
    shbm=rbm*bm;
    shds=rbm*rds*ds+rbm*bmss;
    shbt=rbm*rds*rbt*bt+rbm*bmbs+rbm*rds*dsbs;
    %add boom base shift
    shbm(1,:)=shbm(1,:)+bx;
    shbm(2,:)=shbm(2,:)+by;
    shds(1,:)=shds(1,:)+bx;
    shds(2,:)=shds(2,:)+by;
    shbt(1,:)=shbt(1,:)+bx;
    shbt(2,:)=shbt(2,:)+by;
    [m1 n1]=size(shbm);
    [m2 n2]=size(shds);
    [m3 n3]=size(shbt);
    %beginning of boom
    bbm=shbm(:,1);
    %end of boom
    ebm=shbm(:,n1);
    %end of stick
    eds=shds(:,n2);
    %end of bucket
    ebt=shbt(:,6);
    %add boom base shift
    if pf==0
      plot(bbm(1,1),bbm(2,1),‘ko’,shbm(1,:),shbm(2,:),‘k’,ebm(1,1),
      ebm(2,1),‘ko’,...shds(1,:),shds(2,:),‘k’,eds(1,1),eds(2,1),‘ko’,...
      shbt(1,:),shbt(2,:),‘k’)
      axis(frame);
      figure(gcf)
    end
    %fwd_gr1.m
    de=d*pi/180;
    %boom rotation
    %a=45;
    al=a*pi/180;
    rbm=[cos(al) −sin(al); sin(al) cos(al)];
    %dipperstick rotation
    %b=45;
    be=(−180+b)*pi/180;
    rds=[cos(be) −sin(be); sin(be) cos(be)];
    %bucket rotation
    g=180+d−a−b;
    %g=20;
    ga=g*pi/180;
    rbt=[cos(ga) −sin(ga); sin(ga) cos(ga)];
    %shape
    shbm=rbm*bm;
    shds=rbm*rds*ds+rbm*bmss;
    shbt=rbm*rds*rbt*bt+rbm*bmbs+rbm*rds*dsbs;
    %add boom base shift
    shbm(1,:)=shbm(1,:)+bx;
    shbm(2,:)=shbm(2,:)+by;
    shds(1,:)=shds(1,:)+bx;
    shds(2,:)=shds(2,:)+by;
    shbt(1,:)=shbt(1,:)+bx;
    shbt(2,:)=shbt(2,:)+by;
    [m1 n1]=size(shbm);
    [m2 n2]=size(shds);
    [m3 n3]=size(shbt);
    %beginning of boom
    bbm=shbm(:,1);
    %end of boom
    ebm=shbm(:,n1);
    %end of stick
    eds=shds(:,n2);
    %end of bucket
    ebt=shbt(:,6);
    %add boom base shift
    if pf==0
    plot(bbm(1,1),bbm(2,1),‘ko’,shbm(1,:),shbm(2,:),‘k’,ebm(1,1),
      ebm(2,1),‘ko’,...shds(1,:),shds(2,:),‘k’,eds(1,1),eds(2,1),‘ko’,...
      shbt(1,:),shbt(2,:),‘k’)
                   axis(frame);
                   figure(gcf)
    end
  • APPENDIX 5
    Demo 1
    %pap1_new.m
    %dynamic trajectory planning
    %basic swing
    clear all
    close all
    axis equal
    hMatStick = InitMatStick;   %Create the Joystick handle
    joy0=GetMatStick(hMatStick); %Get the Joystick middle position
    frame=[0 16 −1 15]; %figure frame size
    figure(1)
    set(1,‘renderer’,‘opengl’)
    axis(frame)
    bl=39*.1789;
    sl=25*.1789;
    bm=[0 bl;0 0];
    ds=[0 sl;0 0];
    bt=[0 1 6.5 11 16 19  14.5 10 1 0;
     0 −9 −12  −10 −7.5 0  −3 −1.5 4.5 0];
    bt=bt*.1789;
    bct=bt(1,6)−bt(1,1);      %bucket opening size
    s1=ones(size(bt));
    s2=ones(size(ds));
    cab=[NaN 0 12 14.88 16.98 17.75 16.98 14.88 12 4 4 6 0
     NaN 0 0 0.77 2.88 5.75 8.63 10.73 11.5 13 34 44 44
    ];
    cab=cab*.1789;
    bmss(1,:)=s2(1,:)*bm(1,2); %stick-size vector
    bmss(2,:)=s2(2,:)*bm(2,2); %stick-size
    bmbs(1,:)=s1(1,:)*bm(1,2); %bucket-size vector
    bmbs(2,:)=s1(2,:)*bm(2,2); %bucket-size
    dsbs(1,:)=s1(1,:)*ds(1,2); %bucket-size
    dsbs(2,:)=s1(2,:)*ds(2,2); %bucket-size
    bx=0;
    by=26*.1789;
    %control
    %home
    %Prepare 45 degree-angle slope as forward boundary
    x=4.2+1.7;y=0;dh=−120; %horizontal vx constant
    %x=12;y=2.1468;dh=0; %verical vy constant
    d=dh;
    u=90;
    pf=0;
    inv_gr1 % inverse kinematic provides home joint coordinates
    ah=a;
    bh=b;
    aint=ah;
    bint=bh;
    dint=dh;
    EB1=[ ];
    prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
     L=7.62;
     vav=mean(prof);
     dta=L/vav/120;
    for i=1:120
     vx=0.8*prof(i); %m/s
     vy=0.8*prof(i);
     dt=dta/.8;
     a=aint;
     b=bint;
     dd=.82;
     d=dint; %bucket absolute angle
     pf=1; %pf=rem(i,10);if i==1;pf=0;end; %plots at every time pf==0
     fwd_gr1
     %Machine Jacobian JM
     JM=flipud([eds−bbm eds−ebm]);JM(1,:)=−JM(1,:);
     vbx=−(ebt(2,1)−eds(2,1))*dd*pi/180/dt;
     vby=(ebt(1,1)−eds(1,1))*dd*pi/180/dt;
     dang=inv(JM)*[vx−vbx;vy−vby]*180/pi*dt;
     aint=aint+dang(1,1);
     bint=bint+dang(2,1);
     dint=dint+dd;
     EB1=[EB1 ebt];
    end
    %Original trajectory plot preparation
    x=5.5;y=0;dh=−90; %horizontal vx constant
    %x=12;y=2.1468;dh=0; %verical vy constant
    d=dh;
    u=90;
    pf=0; %first frame
    inv_gr1 % inverse kinematic provides home joint coordinates
    ah=a;
    bh=b;
    aint=ah;
    bint=bh;
    dint=dh;
    prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
    L=90+18.5; %angle here
    vav=mean(prof);
    dta=L/vav/120;
    %trajectory plot
    EB=[ ];
    for i=1:120
     vx=0.8*prof(i); %m/s
     vy=0.8*prof(i);
     dt=dta/.8;
     %a=aint;
     b=bint;
     %dd=.4;
     d=dint; %bucket absolute angle
     pf=1;%pf=rem(i,10); %plots at every time pf==0
     fwd_gr1
     aint=aint; %+dang(1,1);
     bint=bint+vy*dt; %+dang(2,1);
     dint=dint+vy*dt; %+dd;
     EB=[EB ebt];
    end
    hold on
    %re-wind bucket to bottom position
    d=dh;
    u=90;
    pf=0; %first frame
    inv_gr1 % inverse kinematic provides home joint coordinates
    aint=a;
    bint=b;
    dint=d;
    type=0;
    holdf=0;
    joy=GetMatStick(hMatStick);  %Get the Joystick middle position
    %manual control in machine kinematics
    while ( joy(4)~=16)
     if (joy(4)==0)
      holdf=0;
     end
     if (joy(4)==1 & holdf==0)
      type=~type;
      holdf=1;
     end
     %vx=0.8*prof(i); %m/s
     %vy=0.8*prof(i);
     joy=GetMatStick(hMatStick);   %Get the Joystick middle position
     ii=[1; 2; 3; 5];
     djoy=joy−joy0; %Get the joystick movement
     djoy(ii)=djoy(ii).*(abs(djoy(ii))>2045/1); %makes a 2045-unit
     joystick deadzone
     vx=−0.0003/5*djoy(1);
     vy=−0.0003/5*djoy(2);
     vz=−0.0003/5*djoy(5);
     disp([vx vy joy′])
     dt=dta/.8;
     a=aint;
     b=bint;
     %dd=.4;
     dd=(vx{circumflex over ( )}2+vy{circumflex over ( )}2){circumflex over ( )}.5;
     d=dint; %bucket absolute angle
     pf=0; %rem(i,10); %plots at every time pf==0
     fwd_gr1
     if type==0
      %original kinematics
      aint=aint+vx*dt; %+dang(1,1);
      bint=bint+vy*dt; %+dang(2,1);
      dint=dint+vz*dt; %+dd;
     else
      a2=djoy(3)/65280*90;
      s=a2*pi/180;
      R=[cos(s) −sin(s);sin(s) cos(s)];
      v1=R*[vx;vy];
      vx=v1(1);
      vy=v1(2);
      slow=.1;
      %dd=1;
      %transformed kinematics
      %Machine Jacobian JM
      JM=flipud([eds−bbm eds−ebm]);JM(1,:)=−JM(1,:);
      vbx=−(ebt(2,1)−eds(2,1))*dd*pi/180/dt;
      vby=(ebt(1,1)−eds(1,1))*dd*pi/180/dt;
      dang=slow*inv(JM)*[vx−vbx;vy−vby]*180/pi*dt;
      aint=aint+dang(1,1);
      bint=bint+dang(2,1);
      %dd is replaced here with 1
      %dint=dint+dd*vz;
      dint=dint+1*vz;
      %abd=[abd [dang;dd]];
     end
     hold on
     plot(cab(1,:),cab(2,:),‘k’,EB(1,:),EB(2,:),‘:’,EB1(1,:),EB1(2,:),‘:’)
     %plot(cab(1,:),cab(2,:),‘k’,EB(1,:),EB(2,:))
     xlabel(‘Horizontal Distance [m]’)
     ylabel(‘Elevation [m]’)
     if type==0
      title(‘Original’)
     else
      title([‘Transformed 1 (angle=‘ num2str(a2) ’)’])
     end
     axis equal
     hold off
     pause(.01)
    end
    hold off
    Demo 2
    %pap1_new.m
    %dynamic trajectory planning
    %basic swing
    clear all
    close all
    axis equal
    hMatStick = InitMatStick; %Create the Joystick handle
    joy0=GetMatStick(hMatStick);  %Get the Joystick middle position
    frame=[0 16 −1 15]; %figure frame size
    figure(1)
    set(1,‘renderer’,‘opengl’)
    axis(frame)
    bl=39*.1789;
    sl=25*.1789;
    bm=[0 bl;0 0];
    ds=[0 sl;0 0];
    bt=[0 1 6.5 11 16 19  14.5 10 1 0;
     0 −9 −12 −10 −7.5 0  −3 −1.5 4.5 0];
    bt=bt*.1789;
    bct=bt(1,6)−bt(1,1);   %bucket opening size
    s1=ones(size(bt));
    s2=ones(size(ds));
    cab=[NaN 0 12 14.88 16.98 17.75 16.98 14.88 12  4 4 6 0
     NaN 0 0 0.77  2.88  5.75  8.63  10.73 11.5 13 34 44 44
    ];
    cab=cab*.1789;
    bmss(1,:)=s2(1,:)*bm(1,2); %stick-size vector
    bmss(2,:)=s2(2,:)*bm(2,2); %stick-size
    bmbs(1,:)=s1(1,:)*bm(1,2); %bucket-size vector
    bmbs(2,:)=s1(2,:)*bm(2,2); %bucket-size
    dsbs(1,:)=s1(1,:)*ds(1,2); %bucket-size
    dsbs(2,:)=s1(2,:)*ds(2,2); %bucket-size
    bx=0;
    by=26*.1789;
    %control
    %home
    %Prepare 45 degree-angle slope as forward boundary
    x=4.2+1.7;y=0;dh=−120; %horizontal vx constant
    %x=12;y=2.1468;dh=0; %verical vy constant
    d=dh;
    u=90;
    pf=0;
    inv_gr1 % inverse kinematic provides home joint coordinates
    ah=a;
    bh=b;
    aint=ah;
    bint=bh;
    dint=dh;
    EB1=[ ];
    prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
    L=7.62;
    vav=mean(prof);
    dta=L/vav/120;
    for i=1:120
     vx=0.8*prof(i); %m/s
     vy=0.8*prof(i);
     dt=dta/.8;
     a=aint;
     b=bint;
     dd=.82;
     d=dint; %bucket absolute angle
     pf=1; %pf=rem(i,10);if i==1;pf=0;end; %plots at every time pf==0
     fwd_gr1
     %Machine Jacobian JM
     JM=flipud([eds−bbm eds−ebm]);JM(1,:)=−JM(1,:);
     vbx=−(ebt(2,1)−eds(2,1))*dd*pi/180/dt;
     vby=(ebt(1,1)−eds(1,1))*dd*pi/180/dt;
     dang=inv(JM)*[vx−vbx;vy−vby]*180/pi*dt;
     aint=aint+dang(1,1);
     bint=bint+dang(2,1);
     dint=dint+dd;
     EB1=[EB1 ebt];
    end
    %Prepare 45 degree-angle slope as starting boundary
    x=4.2;y=0;dh=−120; %horizontal vx constant
    %x=12;y=2.1468;dh=0; %verical vy constant
    d=dh;
    u=90;
    pf=0;
    inv_gr1 % inverse kinematic provides home joint coordinates
    ah=a;
    bh=b;
    aint=ah;
    bint=bh;
    dint=dh;
    EB2=[ ];
    prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
    L=7.62;
    vav=mean(prof);
    dta=L/vav/120;
    for i=1:120
     vx=0.8*prof(i); %m/s
     vy=0.8*prof(i);
     dt=dta/.8;
     a=aint;
     b=bint;
     dd=.82;
     d=dint; %bucket absolute angle
     pf=1; %pf=rem(i,10);if i==1;pf=0;end; %plots at every time pf==0
     fwd_gr1
     %Machine Jacobian JM
     JM=flipud([eds−bbm eds−ebm]);JM(1,:)=−JM(1,:);
     vbx=−(ebt(2,1)−eds(2,1))*dd*pi/180/dt;
     vby=(ebt(1,1)−eds(1,1))*dd*pi/180/dt;
     dang=inv(JM)*[vx−vbx;vy−vby]*180/pi*dt;
     aint=aint+dang(1,1);
     bint=bint+dang(2,1);
     dint=dint+dd;
     EB2=[EB2 ebt];
    end
    %Original trajectory plot preparation
    x=5.5;y=0;dh=−90; %horizontal vx constant
    %x=12;y=2.1468;dh=0; %verical vy constant
    d=dh;
    u=90;
    pf=0; %first frame
    inv_gr1 % inverse kinematic provides home joint coordinates
    ah=a;
    bh=b;
    aint=ah;
    bint=bh;
    dint=dh;
    prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
    L=90+18.5;  %angle here
    vav=mean(prof);
    dta=L/vav/120;
    %trajectory plot
    EB=[ ];
    for i=1:120
     vx=0.8*prof(i); %m/s
     vy=0.8*prof(i);
     dt=dta/.8;
     %a=aint;
     b=bint;
     %dd=.4;
     d=dint; %bucket absolute angle
     pf=1;%pf=rem(i,10); %plots at every time pf==0
     fwd_gr1
     aint=aint; %+dang(1,1);
     bint=bint+vy*dt; %+dang(2,1);
     dint=dint+vy*dt; %+dd;
     EB=[EB ebt];
    end
    hold on
    %re-wind bucket to bottom position
    d=dh;
    u=90;
    pf=0; %first frame
    inv_gr1 % inverse kinematic provides home joint coordinates
    aint=a;
    bint=b;
    dint=d;
    home0=ebt;
    type=0;
    holdf=0;
    joy=GetMatStick(hMatStick);  %Get the Joystick middle position
    %manual control in machine kinematics
    while ( joy(4)~=16)
     if (joy(4)==0)
      holdf=0;
     end
     if (joy(4)==1 & holdf==0)
      type=~type;
      holdf=1;
     end
     %vx=0.8*prof(i); %m/s
     %vy=0.8*prof(i);
     joy=GetMatStick(hMatStick);  %Get the Joystick middle position
     ii=[1; 2; 3; 5];
     djoy=joy−joy0; %Get the joystick movement
     djoy(ii)=djoy(ii).*(abs(djoy(ii))>2045/1); %makes a 2045-unit
     joystick deadzone
     vx=−0.0003/5*djoy(1);
     vy=−0.0003/5*djoy(2);
     vz=−0.0003/5*djoy(5);
     disp([vx vy joy′])
     %  dt=dta/.8;
     %  a=aint;
     %  b=bint;
     %  %dd=.4;
     %  dd=(vx{circumflex over ( )}2+vy{circumflex over ( )}2){circumflex over ( )}.5;
     d=dint; %bucket absolute angle
     pf=0; %rem(i,10); %plots at every time pf==0
     fwd_gr1
     if type==0
      L=90+18.5; %angle here
      vav=mean(prof);
      dta=L/vav/120;
      dt=dta/.8;
      a=aint;
      b=bint;
      %dd=.4;
      dd=(vx{circumflex over ( )}2+vy{circumflex over ( )}2){circumflex over ( )}.5;
      d=dint; %bucket absolute angle
      pf=0; %rem(i,10); %plots at every time pf==0
      fwd_gr1
      %original kinematics
      aint=aint+vx*dt; %+dang(1,1);
      bint=bint+vy*dt; %+dang(2,1);
      dint=dint+vz*dt; %+dd;
      home=ebt;
    once=1;
     else
      if once
        %constants
      f=1.7; %forward advance
      sg=1; %slope grade 45 degrees
      dh=−90; %home bucket position
      dhr=dh*pi/180;
      x=home(1);y=home(2); %hone coordinates
      % x=8.75−2.35;y=4.6−2.35; %4/1.7=2.35 -- a bucketful of material
      %
      % d=dh;
      % u=90;
      % pf=0;
      inv_gr1 % inverse kinematic provides home joint coordinates
      ah=a;
      bh=b;
      pf=0; %pf=rem(i,10);if i==1;pf=0;end; %plots at every time pf==0
      fwd_gr1
      axis(frame)
      xh=ebt(1,1); %home coordinate of x
      yh=ebt(2,1); %home coordinate of x
      k=−bct*(sin(dh*pi/180)+cos(atan(sg)));
      h=f+k/sg;
      c3=sg/h{circumflex over ( )}2−2*k/h{circumflex over ( )}3;
      c2=3*k/h{circumflex over ( )}2−sg/h;
      hold on
      %variables
      aint=ah;
      bint=bh;
      prof=[(0:9)/10 ones(1,100) (9:−1:0)/10];
      abd=[ ];
      L=25; %degrees here
      vav=mean(prof);
      dta=L/vav/120;
      d1o=dh;
      once=0;
     end
      %CUT middle
      %DEFINE CUTTING TRAJECTORY
      %do once
      %  for i=1:30
      dd=0.06*vy;
      %   dd=.06*prof(i); %degree/sec
      dt=dta;
      X=ebt(1,1)−xh;
      Y=ebt(2,1)−yh;
      if (X{circumflex over ( )}2+Y{circumflex over ( )}2)==0
       xpy=1;
      else
       xpy=X/(X{circumflex over ( )}2+Y{circumflex over ( )}2){circumflex over ( )}.5;
      end
      if X<=h
       vx1=(dd/dt)*h/(atan(sg)−dh−90)*xpy;
       vy1=(3*c3*X{circumflex over ( )}2+2*c2*X)*vx1;
       l1=(h−bct*(sin(atan(sg))−cos(dhr)));
       xdiff=X*(1−l1/h)+bct*cos(dhr);
       ydiff=bct*sin(dhr)+Y;
       d1=180/pi*atan2(ydiff,xdiff);
      else
       vx1=(dd/dt)*h/(atan(sg)−dh−90)*xpy;
       vy1=vx1*sg;
       xdiff=X*(1−l1/h)+bct*cos(dhr);
       ydiff=bct*sin(dhr)+Y;
       d1=180/pi*atan2(ydiff,xdiff)*(X/h){circumflex over ( )}2; %reduced angular bucket
       adjustment
       %d1=−(90−180/pi*atan(sg));
      end
      dd1=d1−d1o; %angular incremental change
      d1o=d1;
      JM=flipud([eds−bbm eds−ebm]);JM(1,:)=−JM(1,:);
      vbx=−(ebt(2,1)−eds(2,1))*dd1*pi/180/dt;
      vby=(ebt(1,1)−eds(1,1))*dd1*pi/180/dt;
      dang=inv(JM)*[vx1−vbx;vy1−vby]*180/pi*dt*(abs(djoy(2))>2045);
      aint=aint+dang(1,1);
      bint=bint+dang(2,1);
      %dint=dint+dd;
      a=aint;
      b=bint;
      d=d1;
      %dint=d;
      pf=0; %pf=rem(i,10);if i==1;pf=0;end; %plots at every time pf==0
      a=mod(a,360);
      b=mod(b,360);
      d=mod(d,360);
      if a>=60, a=60; end
      if a<=−60, a=−60; end
      if b>=179, b=179; end
      if b<=1, b=1; end
      %  if d>=90, d=90; end
      %  if d<=−90, d=−90; end
      fwd_gr1
      axis equal
     end
     %  end
     hold on
     plot(cab(1,:),cab(2,:),‘k’,EB(1,:),EB(2,:),‘:’,EB1(1,:),EB1(2,:),‘:’,
     EB2(1,:),EB2(2,:),‘:’)
     %plot(cab(1,:),cab(2,:),‘k’,EB(1,:),EB(2,:))
     xlabel(‘Horizontal Distance [m]’)
     ylabel(‘Elevation [m]’)
     if type==0
      title(‘Original’)
     else
      %title([‘Transformed 1 (angle=‘ num2str(a2) ’)’])
      title([‘Transformed 1 (angle=‘ ’)’])
     end
     axis equal
     hold off
     pause(.01)
    end
    hold off

Claims (10)

1-32. (canceled)
33. A tangible computer-readable storage medium storing computer-executable instructions for causing a computer system programmed thereby to perform a method comprising:
outputting to a display device a menu of virtual kinematics configurations, each virtual kinematics configuration comprising a plurality of trajectory paths of a user-manipulable implement, each trajectory path comprising at least two dimensions;
calculating velocity components for at least one of the plurality of trajectory paths using a model-based forward predictor;
modifying the velocity components based on signals received from an input device to provide modified velocity components;
generating a position-dependent inverse kinematics model of the modified velocity components; and
based on the position-dependent inverse kinematics model, outputting the modified velocity components to at least one of a plurality of control connections associated with a plurality of joints of the user-manipulable implement.
34. The computer readable storage medium of claim 33, the method further comprising receiving signals from an input device regarding a virtual kinematics configuration selected by a user.
35. The computer readable storage medium of claim 33, the method further comprising receiving signals from an input device for modifying the velocity components.
36. A computer-implemented method of operating an apparatus comprising a user-manipulable implement comprising a plurality of joints, the method comprising:
outputting to a display device a menu of virtual kinematics configurations, each virtual kinematics configuration comprising a plurality of trajectory paths of a user-manipulable implement, each trajectory path comprising at least two dimensions;
calculating velocity components for at least one of the plurality of trajectory paths using a model-based forward predictor;
modifying the velocity components based on signals received from an input device to provide modified velocity components;
generating a position-dependent inverse kinematics model of the modified velocity components; and
based on the position-dependent inverse kinematics model, outputting the modified velocity components to at least one of a plurality of control connections associated with a plurality of joints of the user-manipulable implement.
37. A method comprising:
storing on a computer-readable storage medium computer-executable instructions for causing a computer system programmed thereby to perform acts comprising:
outputting to a display device a menu of virtual kinematics configurations, each virtual kinematics configuration comprising a plurality of trajectory paths of a user-manipulable implement, each trajectory path comprising at least two dimensions;
calculating velocity components for at least one of the plurality of trajectory paths using a model-based forward predictor;
modifying the velocity components based on signals received from an input device to provide modified velocity components;
generating a position-dependent inverse kinematics model of the modified velocity components; and
based on the position-dependent inverse kinematics model, outputting the modified velocity components to at least one of a plurality of control connections associated with a plurality of joints of the user-manipulable implement.
38. A system comprising:
a processor;
the tangible computer readable storage medium of claim 33.
39. The system of claim 38, further comprising a display.
40. The system of claim 38, further comprising an input device, the input device configured to generate signals allowing an operator to select a virtual kinematics configuration from the displayed menu.
41. The system of claim 38, further comprising an input device, the input device configured to generate signals modifying the velocity components.
US13/430,602 2001-08-31 2012-03-26 Coordinated joint motion control system Abandoned US20120239199A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/430,602 US20120239199A1 (en) 2001-08-31 2012-03-26 Coordinated joint motion control system
US14/109,825 US9969084B2 (en) 2001-08-31 2013-12-17 Coordinated joint motion control system

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US31665201P 2001-08-31 2001-08-31
US10/488,011 US7457698B2 (en) 2001-08-31 2002-09-03 Coordinated joint motion control system
PCT/US2002/027860 WO2003021365A2 (en) 2001-08-31 2002-09-03 Coordinated joint motion control system
US12/276,791 US8145355B2 (en) 2001-08-31 2008-11-24 Coordinated joint motion control system
US13/430,602 US20120239199A1 (en) 2001-08-31 2012-03-26 Coordinated joint motion control system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/276,791 Continuation US8145355B2 (en) 2001-08-31 2008-11-24 Coordinated joint motion control system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/109,825 Continuation US9969084B2 (en) 2001-08-31 2013-12-17 Coordinated joint motion control system

Publications (1)

Publication Number Publication Date
US20120239199A1 true US20120239199A1 (en) 2012-09-20

Family

ID=23230016

Family Applications (4)

Application Number Title Priority Date Filing Date
US10/488,011 Expired - Fee Related US7457698B2 (en) 2001-08-31 2002-09-03 Coordinated joint motion control system
US12/276,791 Expired - Fee Related US8145355B2 (en) 2001-08-31 2008-11-24 Coordinated joint motion control system
US13/430,602 Abandoned US20120239199A1 (en) 2001-08-31 2012-03-26 Coordinated joint motion control system
US14/109,825 Expired - Fee Related US9969084B2 (en) 2001-08-31 2013-12-17 Coordinated joint motion control system

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US10/488,011 Expired - Fee Related US7457698B2 (en) 2001-08-31 2002-09-03 Coordinated joint motion control system
US12/276,791 Expired - Fee Related US8145355B2 (en) 2001-08-31 2008-11-24 Coordinated joint motion control system

Family Applications After (1)

Application Number Title Priority Date Filing Date
US14/109,825 Expired - Fee Related US9969084B2 (en) 2001-08-31 2013-12-17 Coordinated joint motion control system

Country Status (4)

Country Link
US (4) US7457698B2 (en)
AU (1) AU2002331786A1 (en)
CA (1) CA2458979C (en)
WO (1) WO2003021365A2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110224873A1 (en) * 2009-09-17 2011-09-15 Reeve David R Vehicle assembly controller with automaton framework and control method
US9304501B2 (en) 2006-01-18 2016-04-05 Board Of Regents Of The Nevada System Of Higher Education, On Behalf Of The University Of Nevada, Reno Coordinated joint motion control system with position error correction
US9895803B1 (en) 2015-06-19 2018-02-20 X Development Llc Calculating trajectory corridor for robot end effector
US9969084B2 (en) 2001-08-31 2018-05-15 Board Of Regents Of The Nevada System Of Higher Education, On Behalf Of The University Of Nevada, Reno Coordinated joint motion control system
US10494788B2 (en) 2016-11-02 2019-12-03 Clark Equipment Company System and method for defining a zone of operation for a lift arm
US20200318316A1 (en) * 2019-04-02 2020-10-08 Hexagon Technology Center Gmbh System for remapping a control signal for excavator arm movement to a rotatory degree of freedom of a tool
US20220075333A1 (en) * 2019-01-11 2022-03-10 Omron Corporation Control device
DE102021200436A1 (en) 2021-01-19 2022-07-21 Robert Bosch Gesellschaft mit beschränkter Haftung Control unit for a mobile working machine, mobile working machine therewith, and method for controlling the working machine
US12124232B2 (en) * 2019-01-11 2024-10-22 Omron Corporation Programmable logic controller that supplies a target command to control a target device

Families Citing this family (146)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10164496A1 (en) * 2001-12-28 2003-07-17 Siemens Ag automation system
DE10251600A1 (en) * 2002-11-06 2004-05-27 Kuka Roboter Gmbh Method and device for controlling movements in handling devices
WO2006022201A1 (en) * 2004-08-25 2006-03-02 Kabushiki Kaisha Yaskawa Denki Robot evaluation system and evaluation method
US10555775B2 (en) 2005-05-16 2020-02-11 Intuitive Surgical Operations, Inc. Methods and system for performing 3-D tool tracking by fusion of sensor and/or camera derived data during minimally invasive robotic surgery
US8073528B2 (en) 2007-09-30 2011-12-06 Intuitive Surgical Operations, Inc. Tool tracking systems, methods and computer products for image guided surgery
US8108072B2 (en) * 2007-09-30 2012-01-31 Intuitive Surgical Operations, Inc. Methods and systems for robotic instrument tool tracking with adaptive fusion of kinematics information and image information
US7859540B2 (en) 2005-12-22 2010-12-28 Honda Motor Co., Ltd. Reconstruction, retargetting, tracking, and estimation of motion for articulated systems
US8467904B2 (en) * 2005-12-22 2013-06-18 Honda Motor Co., Ltd. Reconstruction, retargetting, tracking, and estimation of pose of articulated systems
US20070205910A1 (en) * 2006-02-22 2007-09-06 Parker-Hannifin Corporation Wireless motion control system
CN101326034A (en) * 2006-03-24 2008-12-17 松下电器产业株式会社 Manipulator control method and control system
US7853356B2 (en) * 2006-04-14 2010-12-14 Fanuc Robotics America, Inc. Method for optimizing a robot program and a robot system
US8924021B2 (en) * 2006-04-27 2014-12-30 Honda Motor Co., Ltd. Control of robots from human motion descriptors
US8485822B2 (en) * 2006-05-31 2013-07-16 Caterpillar Inc. Simulation system implementing historical machine data
US20080004749A1 (en) * 2006-06-30 2008-01-03 Honeywell International, Inc. System and method for generating instructions for a robot
JP4941068B2 (en) * 2007-04-16 2012-05-30 トヨタ自動車株式会社 Route creation method and route creation device
KR100916638B1 (en) * 2007-08-02 2009-09-08 인하대학교 산학협력단 Device for Computing the Excavated Soil Volume Using Structured Light Vision System and Method thereof
WO2009019750A1 (en) * 2007-08-03 2009-02-12 Panasonic Electric Works Co., Ltd. Massage machine
US8065037B2 (en) * 2007-08-07 2011-11-22 Board Of Regents Of The Nevada System Of Higher Education, On Behalf Of The University Of Nevada, Reno Control method and system for hydraulic machines employing a dynamic joint motion model
ATE546768T1 (en) * 2007-08-28 2012-03-15 Univ Surrey INVERSE KINEMATICS
US7706920B2 (en) * 2007-09-19 2010-04-27 Disney Enterprises, Inc. Smooth clipping of data streams
US8135518B2 (en) * 2007-09-28 2012-03-13 Caterpillar Inc. Linkage control system with position estimator backup
FI123361B (en) * 2007-10-01 2013-03-15 Sandvik Mining & Constr Oy Procedure and apparatus and computer program for adjusting the function of a hydraulic boom
DE102008003440A1 (en) * 2008-01-07 2009-07-09 Kuka Roboter Gmbh Method for error detection in a control system of a medical treatment and / or diagnostic device
US20090177337A1 (en) * 2008-01-07 2009-07-09 Caterpillar Inc. Tool simulation system for remotely located machine
SE537181C2 (en) * 2008-10-21 2015-02-24 Svab Hydraulik Ab Control system and procedure for a tiltrotator
EP2370644A4 (en) * 2008-11-26 2014-03-05 Volvo Constr Equip Ab Method for calibrating an angle sensor and vehicle with an angle sensor
US8204623B1 (en) * 2009-02-13 2012-06-19 Hrl Laboratories, Llc Planning approach for obstacle avoidance in complex environment using articulated redundant robot arm
DE102009018070A1 (en) * 2009-04-20 2010-10-21 Robert Bosch Gmbh Mobile work machine with a position control device of a working arm and method for position control of a working arm of a mobile machine
KR20110041950A (en) * 2009-10-16 2011-04-22 삼성전자주식회사 Teaching and playback method using redundancy resolution control for manipulator
US20110106338A1 (en) * 2009-10-29 2011-05-05 Allis Daniel P Remote Vehicle Control System and Method
FR2960074B1 (en) * 2010-05-14 2012-06-15 Staubli Sa Ets METHOD FOR CONTROLLING AN AUTOMATED WORKING CELL
FR2960075B1 (en) 2010-05-14 2012-06-15 Staubli Sa Ets METHOD FOR CONTROLLING AN AUTOMATED WORKING CELL
US9906838B2 (en) 2010-07-12 2018-02-27 Time Warner Cable Enterprises Llc Apparatus and methods for content delivery and message exchange across multiple content delivery networks
WO2012061834A1 (en) * 2010-11-07 2012-05-10 The Trustees Of Columbia University In The City Of New York Methods, systems, and media for interactive garment modeling and editing
US8527158B2 (en) * 2010-11-18 2013-09-03 Caterpillar Inc. Control system for a machine
CN102226677B (en) * 2011-01-26 2013-01-16 东南大学 Calibration method for multi-robot system base coordinate system possessing cooperation relation
JP5849403B2 (en) * 2011-02-15 2016-01-27 セイコーエプソン株式会社 Robot controller, robot, and robot system
KR20120107714A (en) * 2011-03-22 2012-10-04 삼성테크윈 주식회사 Multi-linkage and multi-tree structure system and method for controlling the same
CL2012000933A1 (en) * 2011-04-14 2014-07-25 Harnischfeger Tech Inc A method and a cable shovel for the generation of an ideal path, comprises: an oscillation engine, a hoisting engine, a feed motor, a bucket for digging and emptying materials and, positioning the shovel by means of the operation of the lifting motor, feed motor and oscillation engine and; a controller that includes an ideal path generator module.
US9566710B2 (en) 2011-06-02 2017-02-14 Brain Corporation Apparatus and methods for operating robotic devices using selective state space training
US20150127154A1 (en) * 2011-06-02 2015-05-07 Brain Corporation Reduced degree of freedom robotic controller apparatus and methods
WO2012178020A1 (en) * 2011-06-22 2012-12-27 Bruce Donald Jette Robotic tunneling system
JP5160700B1 (en) * 2011-08-24 2013-03-13 ヤマザキマザック株式会社 NC machine tool system
WO2013043087A1 (en) * 2011-09-23 2013-03-28 Volvo Construction Equipment Ab Method for selecting an attack pose for a working machine having a bucket
US8731784B2 (en) * 2011-09-30 2014-05-20 Komatsu Ltd. Blade control system and construction machine
US9186793B1 (en) 2012-08-31 2015-11-17 Brain Corporation Apparatus and methods for controlling attention of a robot
JP5529949B2 (en) * 2012-11-20 2014-06-25 株式会社小松製作所 Work machine and work management system
US9540789B2 (en) * 2013-02-06 2017-01-10 Volvo Construction Equipment Ab Swing control system for construction machines
US9174525B2 (en) 2013-02-25 2015-11-03 Fairfield Manufacturing Company, Inc. Hybrid electric vehicle
US9056396B1 (en) * 2013-03-05 2015-06-16 Autofuss Programming of a robotic arm using a motion capture system
US8996177B2 (en) * 2013-03-15 2015-03-31 Brain Corporation Robotic training apparatus and methods
US9764468B2 (en) 2013-03-15 2017-09-19 Brain Corporation Adaptive predictor apparatus and methods
JP6284302B2 (en) * 2013-04-02 2018-02-28 株式会社タダノ Boom telescopic pattern selection device
US20220187855A1 (en) * 2013-05-09 2022-06-16 Terydon, Inc. Indexer and method of use thereof
CN103268381B (en) * 2013-05-28 2016-02-10 哈尔滨工业大学 A kind of method for double-workpiece-platform semi-physical simulation based on virtual reality technology
US9242372B2 (en) 2013-05-31 2016-01-26 Brain Corporation Adaptive robotic interface apparatus and methods
US9314924B1 (en) 2013-06-14 2016-04-19 Brain Corporation Predictive robotic controller apparatus and methods
US9792546B2 (en) 2013-06-14 2017-10-17 Brain Corporation Hierarchical robotic controller apparatus and methods
US9384443B2 (en) 2013-06-14 2016-07-05 Brain Corporation Robotic training apparatus and methods
US9579789B2 (en) 2013-09-27 2017-02-28 Brain Corporation Apparatus and methods for training of robotic control arbitration
US9597797B2 (en) 2013-11-01 2017-03-21 Brain Corporation Apparatus and methods for haptic training of robots
US9463571B2 (en) 2013-11-01 2016-10-11 Brian Corporation Apparatus and methods for online training of robots
US9358685B2 (en) * 2014-02-03 2016-06-07 Brain Corporation Apparatus and methods for control of robot actions based on corrective user inputs
JP6338389B2 (en) * 2014-02-07 2018-06-06 キヤノン株式会社 Dynamic calculation method and program, and simulation apparatus
US9533413B2 (en) 2014-03-13 2017-01-03 Brain Corporation Trainable modular robotic apparatus and methods
US9987743B2 (en) 2014-03-13 2018-06-05 Brain Corporation Trainable modular robotic apparatus and methods
US9364950B2 (en) 2014-03-13 2016-06-14 Brain Corporation Trainable modular robotic methods
US9458598B2 (en) * 2014-04-24 2016-10-04 Komatsu Ltd. Work vehicle
US9346167B2 (en) 2014-04-29 2016-05-24 Brain Corporation Trainable convolutional network apparatus and methods for operating a robotic vehicle
GB2527795B (en) * 2014-07-02 2019-11-13 Bamford Excavators Ltd Automation of a material handling machine digging cycle
US9630318B2 (en) 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
US9426946B2 (en) 2014-12-02 2016-08-30 Brain Corporation Computerized learning landscaping apparatus and methods
US9822507B2 (en) * 2014-12-02 2017-11-21 Cnh Industrial America Llc Work vehicle with enhanced implement position control and bi-directional self-leveling functionality
US10120369B2 (en) * 2015-01-06 2018-11-06 Joy Global Surface Mining Inc Controlling a digging attachment along a path or trajectory
US9717387B1 (en) 2015-02-26 2017-08-01 Brain Corporation Apparatus and methods for programming and training of robotic household appliances
JP6314105B2 (en) * 2015-03-05 2018-04-18 株式会社日立製作所 Trajectory generator and work machine
JP6615473B2 (en) * 2015-03-27 2019-12-04 住友建機株式会社 Excavator
AR104232A1 (en) * 2015-04-13 2017-07-05 Leica Geosystems Pty Ltd DYNAMIC MOVEMENT COMPENSATION IN MACHINERY
DE102015108473A1 (en) * 2015-05-28 2016-12-01 Schwing Gmbh Large manipulator with quick folding and unfolding articulated mast
CN105180962B (en) * 2015-05-29 2017-12-29 浙江大学 A kind of cooperating robot's basis coordinates system scaling method based on the spot projection of space two
US9840003B2 (en) 2015-06-24 2017-12-12 Brain Corporation Apparatus and methods for safe navigation of robotic devices
US20170089043A1 (en) * 2015-09-25 2017-03-30 Caterpillar Inc. Online system identification for controlling a machine
US10296030B2 (en) * 2015-10-07 2019-05-21 University Of Utah Research Foundation Systems and methods for power system management
US10509374B2 (en) 2015-10-07 2019-12-17 University Of Utah Research Foundation Systems and methods for managing power generation and storage resources
US10282687B2 (en) * 2015-10-07 2019-05-07 University Of Utah Research Foundation Systems and methods for managing power generation resources
DE102015012961B4 (en) * 2015-10-08 2022-05-05 Kastanienbaum GmbH robotic system
US20160060842A1 (en) * 2015-11-06 2016-03-03 Caterpillar Sarl System for controlling lift path of machine work tool
US10471594B2 (en) * 2015-12-01 2019-11-12 Kindred Systems Inc. Systems, devices, and methods for the distribution and collection of multimodal data associated with robots
DE102017000063B4 (en) * 2016-01-14 2019-10-31 Fanuc Corporation Robot device with learning function
EP3409849B1 (en) * 2016-01-29 2023-10-18 Sumitomo (S.H.I.) Construction Machinery Co., Ltd. Excavator and autonomous flying body to fly around excavator
US9752336B2 (en) 2016-02-09 2017-09-05 Caterpillar Inc. Systems and methods for controlling an implement of a machine utilizing an orientation leveling system
KR102487493B1 (en) 2016-03-03 2023-01-11 구글 엘엘씨 Deep machine learning methods and apparatus for robotic grasping
CN111832702A (en) 2016-03-03 2020-10-27 谷歌有限责任公司 Deep machine learning method and device for robot grabbing
EP3428350B1 (en) * 2016-03-11 2021-03-03 Hitachi Construction Machinery Co., Ltd. Control device for construction machinery
US10241514B2 (en) 2016-05-11 2019-03-26 Brain Corporation Systems and methods for initializing a robot to autonomously travel a trained route
US9987752B2 (en) 2016-06-10 2018-06-05 Brain Corporation Systems and methods for automatic detection of spills
US10282849B2 (en) 2016-06-17 2019-05-07 Brain Corporation Systems and methods for predictive/reconstructive visual object tracker
US10016896B2 (en) 2016-06-30 2018-07-10 Brain Corporation Systems and methods for robotic behavior around moving bodies
JP6697361B2 (en) * 2016-09-21 2020-05-20 川崎重工業株式会社 Hydraulic excavator drive system
US10274325B2 (en) 2016-11-01 2019-04-30 Brain Corporation Systems and methods for robotic mapping
US10001780B2 (en) 2016-11-02 2018-06-19 Brain Corporation Systems and methods for dynamic route planning in autonomous navigation
US10723018B2 (en) 2016-11-28 2020-07-28 Brain Corporation Systems and methods for remote operating and/or monitoring of a robot
WO2017086488A1 (en) 2016-11-29 2017-05-26 株式会社小松製作所 Control device for construction equipment and control method for construction equipment
US10377040B2 (en) 2017-02-02 2019-08-13 Brain Corporation Systems and methods for assisting a robotic apparatus
US10852730B2 (en) 2017-02-08 2020-12-01 Brain Corporation Systems and methods for robotic mobile platforms
US10293485B2 (en) 2017-03-30 2019-05-21 Brain Corporation Systems and methods for robotic path planning
JP6577522B2 (en) * 2017-06-07 2019-09-18 ファナック株式会社 Control device and machine learning device
JP6506348B2 (en) * 2017-06-14 2019-04-24 ファナック株式会社 Robot teaching device to correct robot's trajectory
US10899017B1 (en) * 2017-08-03 2021-01-26 Hrl Laboratories, Llc System for co-adaptation of robot control to human biomechanics
US11987949B2 (en) 2017-08-30 2024-05-21 Topcon Positioning Systems, Inc. Method and apparatus for machine operator command attenuation
JP7082477B2 (en) 2017-11-22 2022-06-08 古河機械金属株式会社 Controls, control methods and programs
JP7082476B2 (en) * 2017-11-22 2022-06-08 古河機械金属株式会社 Controls, control methods and programs
JP7155516B2 (en) * 2017-12-20 2022-10-19 コベルコ建機株式会社 construction machinery
JP7227222B2 (en) * 2018-03-20 2023-02-21 住友重機械工業株式会社 Excavator
US10689831B2 (en) * 2018-03-27 2020-06-23 Deere & Company Converting mobile machines into high precision robots
US11162241B2 (en) 2018-03-27 2021-11-02 Deere & Company Controlling mobile machines with a robotic attachment
US10870968B2 (en) * 2018-04-30 2020-12-22 Deere & Company Work vehicle control system providing coordinated control of actuators
WO2020023103A1 (en) * 2018-07-23 2020-01-30 Massachusetts Institute Of Technology Automated control for excavators
EP3610993A1 (en) * 2018-08-14 2020-02-19 Beckman Coulter, Inc. System for active motion displacement control of a robot
DE102018126809A1 (en) * 2018-10-26 2020-04-30 Liebherr-France Sas System and method for determining the mass of a payload moved by an implement
US11529741B2 (en) 2018-12-17 2022-12-20 Divergent Technologies, Inc. System and method for positioning one or more robotic apparatuses
CN109782767B (en) * 2019-01-25 2022-06-07 北京百度网讯科技有限公司 Method and apparatus for outputting information
US11697917B2 (en) * 2019-07-26 2023-07-11 Deere & Company Anticipatory modification of machine settings based on predicted operational state transition
WO2021059931A1 (en) * 2019-09-24 2021-04-01 日立建機株式会社 Work machine
US11828040B2 (en) 2019-09-27 2023-11-28 Topcon Positioning Systems, Inc. Method and apparatus for mitigating machine operator command delay
US11408449B2 (en) 2019-09-27 2022-08-09 Topcon Positioning Systems, Inc. Dithering hydraulic valves to mitigate static friction
WO2021056591A1 (en) * 2019-09-29 2021-04-01 西门子股份公司 Method and apparatus for controlling multi-axis motion machine, and storage medium
KR20210060866A (en) * 2019-11-19 2021-05-27 두산인프라코어 주식회사 Method and system for controlling construction machinery
WO2021108271A1 (en) * 2019-11-26 2021-06-03 Teradyne, Inc. Multi-angle end effector
EP3854943B1 (en) 2020-01-23 2022-06-08 ABI Anlagentechnik-Baumaschinen-Industriebedarf Maschinenfabrik und Vertriebsgesellschaft mbH Excavation device
DE102020110186A1 (en) 2020-04-14 2021-10-14 Danfoss Power Solutions Gmbh & Co. Ohg Improved hydraulic device
DE102020110187A1 (en) 2020-04-14 2021-10-14 Danfoss Power Solutions Inc. Improved hydraulic device
CN113768626B (en) * 2020-09-25 2024-03-22 武汉联影智融医疗科技有限公司 Surgical robot control method, computer device and surgical robot system
EP3988255A1 (en) * 2020-10-26 2022-04-27 Siemens Aktiengesellschaft Method and assembly unit for assembling non-electric components onto a component-carrier
US20220143821A1 (en) * 2020-11-11 2022-05-12 Sony Interactive Entertainment Inc. Method for robotic training based on randomization of surface stiffness
US12017359B2 (en) * 2020-11-11 2024-06-25 Sony Interactive Entertainment Inc. Method for robotic training based on randomization of surface damping
CN112571420B (en) * 2020-12-21 2022-08-23 西北工业大学 Dual-function model prediction control method under unknown parameters
US11724390B2 (en) 2021-03-29 2023-08-15 Samsung Electronics Co., Ltd. Systems and methods for automated preloading of actuators
US11712804B2 (en) 2021-03-29 2023-08-01 Samsung Electronics Co., Ltd. Systems and methods for adaptive robotic motion control
US11731279B2 (en) 2021-04-13 2023-08-22 Samsung Electronics Co., Ltd. Systems and methods for automated tuning of robotics systems
WO2023007517A1 (en) * 2021-07-28 2023-02-02 Salins Paul Christadas Method and system for calculating and modelling inverse kinematics in complex systems
WO2023053584A1 (en) * 2021-09-29 2023-04-06 コベルコ建機株式会社 Trajectory-generating system and work machine comprising same
WO2024034624A1 (en) * 2022-08-09 2024-02-15 住友重機械工業株式会社 Assistance device, work machine, assistance system, and program
CN115451972B (en) * 2022-09-29 2024-08-20 中煤科工集团重庆研究院有限公司 Intelligent planning method for coal cutter path based on photogrammetry
CN115562045A (en) * 2022-11-09 2023-01-03 徐州市检验检测中心 Delay compensation control method of remote control loader
JP2024094059A (en) * 2022-12-27 2024-07-09 住友重機械工業株式会社 Excavator

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763276A (en) * 1986-03-21 1988-08-09 Actel Partnership Methods for refining original robot command signals
US5062264A (en) * 1990-07-24 1991-11-05 The University Of British Columbia Hydraulic control system
US5167121A (en) * 1991-06-25 1992-12-01 University Of British Columbia Proportional hydraulic control
US5341459A (en) * 1991-05-09 1994-08-23 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Generalized compliant motion primitive
US5430643A (en) * 1992-03-11 1995-07-04 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Configuration control of seven degree of freedom arms
US5710870A (en) * 1995-09-07 1998-01-20 California Institute Of Technology Decoupled six degree-of-freedom robot manipulator
US5737500A (en) * 1992-03-11 1998-04-07 California Institute Of Technology Mobile dexterous siren degree of freedom robot arm with real-time control system
US6025686A (en) * 1997-07-23 2000-02-15 Harnischfeger Corporation Method and system for controlling movement of a digging dipper

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4156835A (en) * 1974-05-29 1979-05-29 Massachusetts Institute Of Technology Servo-controlled mobility device
US4243923A (en) * 1979-01-22 1981-01-06 Massachusetts Institute Of Technology Servo-controlled mobility device
JPS61248104A (en) 1985-04-26 1986-11-05 Nissan Motor Co Ltd Manipulator controlling device
US4889466A (en) 1985-07-26 1989-12-26 Kabushiki Kaisha Komatsu Seisakusho Control device for a power shovel
US4937759A (en) 1986-02-18 1990-06-26 Robotics Research Corporation Industrial robot with controller
US4975856A (en) * 1986-02-18 1990-12-04 Robotics Research Corporation Motion controller for redundant or nonredundant linkages
US5155423A (en) * 1986-02-18 1992-10-13 Robotics Research Corporation Industrial robot with servo
US4973215A (en) 1986-02-18 1990-11-27 Robotics Research Corporation Industrial robot with servo
US4773025A (en) 1986-11-20 1988-09-20 Unimation, Inc. Multiaxis robot control having curve fitted path control
US4829418A (en) 1987-04-24 1989-05-09 Laser Alignment, Inc. Apparatus and method for controlling a hydraulic excavator
JPH0683976B2 (en) * 1988-03-15 1994-10-26 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン Compliance control method
US4893254A (en) 1988-04-20 1990-01-09 University Of British Columbia Manipulator arm position sensing
US4891767A (en) * 1988-06-02 1990-01-02 Combustion Engineering, Inc. Machine vision system for position sensing
US5160239A (en) * 1988-09-08 1992-11-03 Caterpillar Inc. Coordinated control for a work implement
US5159249A (en) * 1989-05-16 1992-10-27 Dalila Megherbi Method and apparatus for controlling robot motion at and near singularities and for robot mechanical design
DE68925907T2 (en) * 1989-09-26 1996-08-01 Komatsu Mfg Co Ltd OPERATING AUTOMATION APPARATUS OF A HYDRAULICALLY DRIVEN MACHINE
US4999553A (en) * 1989-12-28 1991-03-12 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Method and apparatus for configuration control of redundant robots
US5390104A (en) * 1990-04-02 1995-02-14 Fulton; Francis M. Adaptive control man-augmentation system for a suspended work station
DE4030954C2 (en) 1990-09-29 1994-08-04 Danfoss As Method for controlling the movement of a hydraulically movable implement and path control device for carrying out the method
JP2736569B2 (en) * 1991-01-23 1998-04-02 新キャタピラー三菱株式会社 Operating method of hydraulic excavator
WO1993009300A1 (en) 1991-10-29 1993-05-13 Kabushiki Kaisha Komatsu Seisakusho Method of selecting automatic operation mode of working machine
US5550953A (en) * 1994-04-20 1996-08-27 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration On-line method and apparatus for coordinated mobility and manipulation of mobile robots
US5255571A (en) * 1992-06-25 1993-10-26 United Parcel Service Of America, Inc. Three degree of freedom actuator system
JPH0626067A (en) * 1992-07-09 1994-02-01 Kobe Steel Ltd Excavation control device for dipper shovel
US5294873A (en) * 1992-10-27 1994-03-15 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Kinematic functions for redundancy resolution using configuration control
JP3364303B2 (en) 1993-12-24 2003-01-08 株式会社小松製作所 Work machine control device
US5404661A (en) 1994-05-10 1995-04-11 Caterpillar Inc. Method and apparatus for determining the location of a work implement
US5528843A (en) 1994-08-18 1996-06-25 Caterpillar Inc. Control system for automatically controlling a work implement of an earthworking machine to capture material
US5784542A (en) * 1995-09-07 1998-07-21 California Institute Of Technology Decoupled six degree-of-freedom teleoperated robot system
JP3361007B2 (en) * 1995-11-07 2003-01-07 富士通株式会社 Link mechanism analyzer
US5767648A (en) * 1996-04-19 1998-06-16 Massachusetts Institute Of Technology Base force/torque sensor apparatus for the precise control of manipulators with joint friction and a method of use thereof
US5854988A (en) 1996-06-05 1998-12-29 Topcon Laser Systems, Inc. Method for controlling an excavator
JP3306301B2 (en) 1996-06-26 2002-07-24 日立建機株式会社 Front control device for construction machinery
GB2318651A (en) 1996-10-23 1998-04-29 New Holland Integrated vehicle control system
US6047227A (en) 1996-11-19 2000-04-04 Caterpillar Inc. Method and apparatus for operating geography altering machinery relative to a work site
US5953838A (en) 1997-07-30 1999-09-21 Laser Alignment, Inc. Control for hydraulically operated construction machine having multiple tandem articulated members
US6061617A (en) 1997-10-21 2000-05-09 Case Corporation Adaptable controller for work vehicle attachments
US6233511B1 (en) 1997-11-26 2001-05-15 Case Corporation Electronic control for a two-axis work implement
SE9704398L (en) 1997-11-28 1998-12-14 Spectra Precision Ab Device and method for determining the position of the machining part
US6076030A (en) * 1998-10-14 2000-06-13 Carnegie Mellon University Learning system and method for optimizing control of autonomous earthmoving machinery
US6336067B1 (en) 1998-08-12 2002-01-01 Hitachi Construction Machinery Co., Ltd. Electronic control system and control device for construction machine
US6211471B1 (en) 1999-01-27 2001-04-03 Caterpillar Inc. Control system for automatically controlling a work implement of an earthmoving machine to capture, lift and dump material
US6208925B1 (en) 1999-04-26 2001-03-27 Caterpillar Inc. Simplified powertrain load prediction method and system using computer based models
JP2001123478A (en) 1999-10-28 2001-05-08 Hitachi Constr Mach Co Ltd Automatically operating excavator
CN1422352A (en) 2000-03-31 2003-06-04 日立建机株式会社 System for changing function of work machine and base station
DE10029173A1 (en) * 2000-06-19 2002-01-03 Deutsch Zentr Luft & Raumfahrt Method and arrangement for commanding control operations for kinematic movements of an object using a hand-operated input device
US6327517B1 (en) * 2000-07-27 2001-12-04 Applied Materials, Inc. Apparatus for on-the-fly center finding and notch aligning for wafer handling robots
CN1249307C (en) 2000-11-17 2006-04-05 日立建机株式会社 Display device and display controller of construction machinery
US6655465B2 (en) 2001-03-16 2003-12-02 David S. Carlson Blade control apparatuses and methods for an earth-moving machine
JP3808321B2 (en) * 2001-04-16 2006-08-09 ファナック株式会社 Robot controller
AU2002331786A1 (en) 2001-08-31 2003-03-18 The Board Of Regents Of The University And Community College System, On Behalf Of The University Of Coordinated joint motion control system
DE10164496A1 (en) 2001-12-28 2003-07-17 Siemens Ag automation system
WO2003060754A1 (en) 2001-12-31 2003-07-24 The Board Of Regents Of The University And Community College System, On Behalf Of The University Of Nevada, Reno Multiphase physical transport modeling method and modeling system
US6609315B1 (en) 2002-10-31 2003-08-26 Deere & Company Automatic backhoe tool orientation control
DE10251600A1 (en) 2002-11-06 2004-05-27 Kuka Roboter Gmbh Method and device for controlling movements in handling devices
US6691437B1 (en) 2003-03-24 2004-02-17 Trimble Navigation Limited Laser reference system for excavating machine
US6968264B2 (en) 2003-07-03 2005-11-22 Deere & Company Method and system for controlling a mechanical arm
US7010367B2 (en) 2003-10-16 2006-03-07 Caterpillar Inc. Operator interface for a work machine
US7114430B2 (en) 2004-09-30 2006-10-03 Caterpillar Inc. Adaptive position determining system for hydraulic cylinder
US7555855B2 (en) 2005-03-31 2009-07-07 Caterpillar Inc. Automatic digging and loading system for a work machine
US8467904B2 (en) 2005-12-22 2013-06-18 Honda Motor Co., Ltd. Reconstruction, retargetting, tracking, and estimation of pose of articulated systems
US7859540B2 (en) 2005-12-22 2010-12-28 Honda Motor Co., Ltd. Reconstruction, retargetting, tracking, and estimation of motion for articulated systems
US8065060B2 (en) 2006-01-18 2011-11-22 The Board Of Regents Of The University And Community College System On Behalf Of The University Of Nevada Coordinated joint motion control system with position error correction
US7853356B2 (en) 2006-04-14 2010-12-14 Fanuc Robotics America, Inc. Method for optimizing a robot program and a robot system
US8924021B2 (en) * 2006-04-27 2014-12-30 Honda Motor Co., Ltd. Control of robots from human motion descriptors
US7752778B2 (en) 2007-04-30 2010-07-13 Deere & Company Automated control of boom or attachment for work vehicle to a preset position
US8065037B2 (en) 2007-08-07 2011-11-22 Board Of Regents Of The Nevada System Of Higher Education, On Behalf Of The University Of Nevada, Reno Control method and system for hydraulic machines employing a dynamic joint motion model
ATE546768T1 (en) 2007-08-28 2012-03-15 Univ Surrey INVERSE KINEMATICS
US8135518B2 (en) 2007-09-28 2012-03-13 Caterpillar Inc. Linkage control system with position estimator backup
US8204623B1 (en) 2009-02-13 2012-06-19 Hrl Laboratories, Llc Planning approach for obstacle avoidance in complex environment using articulated redundant robot arm
US8527158B2 (en) 2010-11-18 2013-09-03 Caterpillar Inc. Control system for a machine
JP6284302B2 (en) 2013-04-02 2018-02-28 株式会社タダノ Boom telescopic pattern selection device

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763276A (en) * 1986-03-21 1988-08-09 Actel Partnership Methods for refining original robot command signals
US5062264A (en) * 1990-07-24 1991-11-05 The University Of British Columbia Hydraulic control system
US5341459A (en) * 1991-05-09 1994-08-23 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Generalized compliant motion primitive
US5167121A (en) * 1991-06-25 1992-12-01 University Of British Columbia Proportional hydraulic control
US5430643A (en) * 1992-03-11 1995-07-04 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Configuration control of seven degree of freedom arms
US5737500A (en) * 1992-03-11 1998-04-07 California Institute Of Technology Mobile dexterous siren degree of freedom robot arm with real-time control system
US5710870A (en) * 1995-09-07 1998-01-20 California Institute Of Technology Decoupled six degree-of-freedom robot manipulator
US6025686A (en) * 1997-07-23 2000-02-15 Harnischfeger Corporation Method and system for controlling movement of a digging dipper

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9969084B2 (en) 2001-08-31 2018-05-15 Board Of Regents Of The Nevada System Of Higher Education, On Behalf Of The University Of Nevada, Reno Coordinated joint motion control system
US9304501B2 (en) 2006-01-18 2016-04-05 Board Of Regents Of The Nevada System Of Higher Education, On Behalf Of The University Of Nevada, Reno Coordinated joint motion control system with position error correction
US20110224873A1 (en) * 2009-09-17 2011-09-15 Reeve David R Vehicle assembly controller with automaton framework and control method
US9895803B1 (en) 2015-06-19 2018-02-20 X Development Llc Calculating trajectory corridor for robot end effector
US10494788B2 (en) 2016-11-02 2019-12-03 Clark Equipment Company System and method for defining a zone of operation for a lift arm
US20220075333A1 (en) * 2019-01-11 2022-03-10 Omron Corporation Control device
US12124232B2 (en) * 2019-01-11 2024-10-22 Omron Corporation Programmable logic controller that supplies a target command to control a target device
US20200318316A1 (en) * 2019-04-02 2020-10-08 Hexagon Technology Center Gmbh System for remapping a control signal for excavator arm movement to a rotatory degree of freedom of a tool
US11505918B2 (en) * 2019-04-02 2022-11-22 Hexagon Technology Center Gmbh System for remapping a control signal for excavator arm movement to a rotatory degree of freedom of a tool
DE102021200436A1 (en) 2021-01-19 2022-07-21 Robert Bosch Gesellschaft mit beschränkter Haftung Control unit for a mobile working machine, mobile working machine therewith, and method for controlling the working machine

Also Published As

Publication number Publication date
US20090099738A1 (en) 2009-04-16
CA2458979C (en) 2010-09-28
WO2003021365A2 (en) 2003-03-13
US20140107841A1 (en) 2014-04-17
WO2003021365A3 (en) 2003-04-10
WO2003021365B1 (en) 2003-06-26
US7457698B2 (en) 2008-11-25
CA2458979A1 (en) 2003-03-13
US9969084B2 (en) 2018-05-15
AU2002331786A1 (en) 2003-03-18
US20040267404A1 (en) 2004-12-30
US8145355B2 (en) 2012-03-27

Similar Documents

Publication Publication Date Title
US9969084B2 (en) Coordinated joint motion control system
US9304501B2 (en) Coordinated joint motion control system with position error correction
Singh State of the art in automation of earthmoving
Yoon et al. Development of an intuitive user interface for a hydraulic backhoe
Tiwari et al. Bucket trajectory classification of mining excavators
EP3719212B1 (en) System for remapping a control signal for excavator arm movement to a rotatory degree of freedom of a tool
Patel et al. A review on kinematics of hydraulic excavator’s backhoe attachment
Makkonen et al. A 3D model based control of an excavator
Chacko et al. State of the art in excavators
Heikkilä et al. Development of an earthmoving machinery autonomous excavator development platform
Lee et al. Blade control in Cartesian space for leveling work by bulldozer
Patel et al. A critical review on kinematics of hydraulic excavator backhoe attachment
Kim et al. Human-assisted obstacle avoidance system using 3D workspace modeling for construction equipment operation
CN115330055A (en) Hierarchical planning of autonomous machines for various tasks
Mitrev et al. CAD/CAE Investigation of a Large Hydraulic Мining Excavator
Shao et al. Automatic excavation planning of hydraulic excavator
Mrad et al. Automated excavation in construction using robotics trajectory and envelop generation
Egli et al. Reinforcement Learning-Based Bucket-Filling for Autonomous Excavation
Singh Developing plans for robotic excavators
Wang et al. Hierarchical planning for autonomous excavator on material loading tasks
Salimov Design and Manufacturing of a Virtual Reality-Assisted Teleoperated Excavator Platform
Makkonen et al. Automation of an excavator based on a 3D CAD model and GPS measurement
Lertcomepeesin et al. Study of Autnomous Pond Excavation in Real Environment
Kotte et al. Excavators Using Adjustable Linkages
Kotte Excavating Machines Using Adjustable Linkages

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: BOARD OF REGENTS OF THE NEVADA SYSTEM OF HIGHER ED

Free format text: CHANGE OF NAME;ASSIGNOR:BOARD OF REGENTS OF THE UNIVERSITY AND COMMUNITY COLLEGE SYSTEM ON BEHALF OF THE UNIVERSITY OF NEVADA, RENO;REEL/FRAME:036338/0309

Effective date: 20050518