Abstract:
A control for an excavator controls the position of the bucket cutting edge to a desired depth accurately by a calibrating laser receiver mounted on the excavator stick member and passed through a stationary laser plane wherever the stick is moved into or out of a trench. Linear position encoders monitor the length that the actuating cylinders are extended and lookup tables convert the encoder outputs to angle representations for determining the positions of the laser receiver and the cutting edge. Other lookup tables are utilized to avoid time-consuming iterative calculation procedures to provide real-time digital process solutions of trigonometric functions. The apparatus includes a unique laser receiver comprising a plurality of linearly aligned photo receptors with associated circuitry for producing an output representative of the receptor illuminated or, if a group of receptors are illuminated, the centermost receptor illuminated. An alternative embodiment, suitable for retrofit of existing excavators, utilizes gravity-operated pendant angle sensors on each member to provide an indication of cutting edge position.

Description:
BACKGROUND OF THE INVENTION 
     This application is a continuation-in-part of application Ser. No. 042,449, filed Apr. 24, 1987. 
    
    
     This invention relates to a control for a hydraulic excavator and in particular to an excavator control of the type that is used in conjunction with a laser generator capable of generating a laser beam or plane. 
     The use of lasers to automatically control earth moving equipment is known in the construction industry. Some limited success has been achieved in controlling bulldozer blade elevations as well as controlling the blade elevation of motor graders. One piece of construction equipment that has eluded successful application of a laser is the excavator. A desirable attribute for an excavator would be one that could easily and quickly dig exactly to a finished grade at a desired length depth without the requirement for frequent operator checks or for requiring additional workers in the area. The system should be easy to operate and function properly even though the excavator changes its elevation and attitude frequently. In addition, an excavator should allow the operator to dig to a level grade or to a nonlevel grade having a desired slope or percent of grade. 
     Several attempts have been made at such an excavator control but all have had serious disadvantages. For example, in U.S. Pat. No. 4,129,224 issued to Ted L. Teach for an Automatic Control of Backhoe Digging Depth, a laser beam sensor unit is mounted on the end of a pendular mast pivotally mounted by the boom pivot pin. A vertical motor continuously adjusts the vertical height of the mast to keep the laser beam sensor in the plane of the laser beam. A transducer monitors the amount of extension of the mast and produces an electrical signal proportonal to the height of the mast and hence proportional to the absolute vertical spacing between the pivot axis of the boom and the laser plane. Angular displacement transducers monitor the angles between the backhoe frame and the boom, between the boom and the stick and between the stick and the bucket. The position of the bucket cutting teeth with respect to the backhoe can be determined as a trigonometric relationship between the three angles. By combining the distance from the laser receiver to the backhoe and from the backhoe to the cutting edge the true depth of the cut should be determinable. 
     Such a device has several drawbacks. The laser height-seeking detector requires a mast, that not only extends above the excavator and is therefore vulnerable to damage, but also requires means such as pendular mounting to maintain the mast vertically aligned. In a conventional excavator, the boom pivot is typically disposed under the cab or other obstruction, so application of a mast becomes impractical. In addition, a beam-seeking drive motor and transducer are required. Further, while the angular displacement transducers may lend themselves well to implementation in a control using analog circuits, such circuits may be ambient temperature sensitive and the trigonometric relationships between the cutting edge of the bucket and the transducer outputs makes direct conversion to digital control prohibitive. The reason this is prohibitive is that a digital computer traditionally performs trigonometric calculations by successive approximation, an iterative trial and error process. While such calculations pose no problem in the laboratory setting, they are much too slow for real-time control of a dynamic machine such as an excavator. 
     In U.S. Pat. No. 4,231,700 issued to Robert H. Studebaker for a Method and Apparatus for Laser Beam Control of Backhoe Digging Depth, the laser receiver is mounted to the stick member rather than on the end of a pendular mast. However, just as with Teach U.S. Pat. No. 4,129,224, the laser receiver must at all times stay in contact with the laser beam to function. Studebaker suggests that by directing a laser beam along a plane that is a predetermined elevation with respect to the desired dig depth, a manual or automatic control could be made to cause the cutting edge of the bucket to dig to a predetermined depth. While some of the difficulties of the previous devices are overcome, the limitations of this device are apparent. The location of the laser plane is extremely inflexible. If even a moderately-deep ditch is being dug, the laser plane must be located below ground level. Further, the other difficulties inherent in Teach U.S. Pat. No. 4,129,224 are not even addressed in Studebaker. 
     Other solutions have been suggested, but they all require that the position of the excavator be located with a transit and relocated every time the frame moves. This not only is a time-consuming task but the precise position of the frame is subject to frequent and often abrupt changes during the operation of the excavator. As a result, the digging progress is not only slow but is also likely to be inaccurate. 
     SUMMARY OF THE INVENTION 
     The present invention provides a method and apparatus for controlling an excavator to position the cutting edge, during a cut, to a desired depth with extreme accuracy. The present invention is used in conjunction with a laser plane generator that generates a laser plane and which repetitively calibrates the reference coordinate system of the excavator every time the digging stick passes through the laser plane. In this manner, the control will be frequently and repetitively calibrated as the excavator hauls bucket-loads of dirt out of the ditch and will thus compensate for frequent movement of the excavator frame without requiring time-consuming reestablishment of the frame location. Further, the present invention provides an improved control technique for controlling the cutting edge, in relationship to the angular relationship between the various members of the excavator, in a very fast and efficient manner using digital processing techniques. Further, an improved technique is provided for monitoring these angles with a significantly more accurate determination of the position of the cutting edge than has before been possible. In addition, the control of the present invention is capable of digging to a nonlevel grade as well as to a level one. In an alternative embodiment, a field-installable control system is provided for retrofit of existing excavators. 
     According to the invention, a control has means for monitoring the angle of displacement of an excavator from a vertical plane as well as the various angles of the members of the excavator and means for determining the position of the bucket cutting edge from these angles. A laser receiver is mounted on the stick member and is passed through the laser plane every time the stick is brought out of or put into a trench. The control determines the position of the laser receiver with respect to the excavator frame at the precise moment that the receiver detects the laser beam. This information is used to determine the location of the excavator frame with respect to the laser beam. The position of the bucket cutting edge with respect to the laser plane can therefore be accurately determined and is compared to a desired cutting distance with respect to the laser plane to operate the means that actuates the cutting edge. 
     The location of the laser receiver on the stick provides other advantages besides the ability to recalibrate the location of the frame every time the stick is moved into or out of the ditch. For instance, the position of the cutting means is determined by monitoring the angle between the frame and true vertical, the angle of the boom, the angle of the stick and the angle of the bucket. The position of the laser receiver, at the moment that it is struck by a beam, is determined by monitoring the angle between the frame and true vertical, the angle of the boom and the angle of the stick. Because the same angles are monitored in both determinations, any errors that occur in monitoring these angles tend to be cancelled out in the calibration process. 
     A laser plane transmitter produces a very narrow beam that revolves in a plane at at typical frequency of 12 revolutions per second. Therefore, a single photo receptor mounted to a stick could pass through the laser plane and not be struck by the laser beam. To resolve this problem, the laser receiver of the invention is made up of a plurality of photo receptors linearly arranged in an array having a generally vertical orientation. At least one receptor in the array of the laser receiver will always be struck by the rotating beam and, should more than one receptor be struck, means are provided to determine the location of the single receptor that is centermost in the group of receptors that is struck. 
     Every time that the laser receiver is struck by a laser beam, the control is calibrated and considered to thereafter be in a calibrated mode. If a predetermined amount of time passes since the last calibration, or if the frame experiences a significant amount of movement that may indicate the previous calibration is no longer valid, the control enters a noncalibrated mode wherein automatic control ceases and the operator is informed thereof. The control can then be recalibrated by moving the stick through the laser beam. 
     Although the invention lends itself to implementation in many forms, in the preferred mode the control will only guide the positioning of the cutting edge during approximately the last 6 inches of the cut. When the bucket is in other positions, the excavator is controlled by manual operation. When the operator brings the cutting edge to within 6 inches of the desired depth, an indicator light will illuminate and the automatic control will take over. However, even when the cutting edge is within 6 inches of the desired depth, the operator will always be able to override the automatic control, if desired. In addition, any time the control detects an excessive tilting of the frame, that may indicate the existence of a dangerous condition such as the bucket being lodged against an immovable object, the control will be immediately removed from the automatic mode. It is additionally contemplated that the present invention could be combined with other known control techniques that provide for memorizing certain repetitive routines such as dumping a bucket of dirt into a truck. 
     In addition to digging precisely to a predetermined depth on the level, the present invention can cut on a sloping grade, such as needed for laying drain tile or the like. Just as the control provides precise monitoring of the generally vertical coordinate of the position of the cutting edge, the control is also capable of precise determination of the generally horizontal coordinate of the cutting edge position. The previously described calibration method is utilized to determine both the vertical and horizontal components of the distance between the laser receiver and the frame at the moment the receiver crosses the laser plane. Therefore, the control will be aware of the distance that the cutting edge is below the laser plane and horizontally away from the point where it was when the laser receiver crossed the laser plane. By continually adjusting the desired depth for the changing cutting edge horizontal position and desired percent of grade, the cutting edge can be guided on a precise slope. Additionally, it is contemplated that the laser plane would be inclined to match the desired percent of grade, so that desired depth would be recalibrated every time the receiver crosses the laser plane just as it is when cutting on the level. 
     Angular displacement transducers of superior accuracy have been developed. However, because the position of the cutting edge is determined by monitoring four successive angles, even small errors in angular measurement rapidly compound. The invention comprehends monitoring the angles between the frames and the boom, between the boom and the stick and between the stick and the bucket in a manner which is significantly more accurate than the use of angular displacement transducers. In a hydraulic excavator, linearly extending hydraulic cylinders are utilized between the members to actuate or rotate the members about mutually coupling pivot means. For example, a boom cylinder between the frame and the boom actuates the boom. To determine the angle between the boom and the frame according to the invention, a linear displacement transducer monitors the linear extension of the boom cylinder relative to its retracted position. The relationship between the extension of the boom cylinder and the angular displacement of the boom is a readily determinable, trigonometric relationship. Because the invention provides for the rapid digital solution to trigonometric functions, it is able to convert the cylinder extension to angular displacement in real-time. Because a proportionately greater degree of accuracy can be obtained in the measurement of the amount of cylinder displacement compared to the angular rotation, greater overall accuracy is achieved. 
     As previously mentioned, the absolute position of the cutting edge is a trigonometric function or equation of the four previously discussed angles. While the equation is not a difficult one to solve manually, or by using an analog computer, a digital computer normally utilizes an iterative, and therefore slow, approximation process to provide a solution. To provide sufficiently rapid solution to these equations to effect real-time control, the control of the invention combines the four angles into three representations or numbers. For each of the three representations or numbers, the control utilizes a lookup table that contains the corresponding value of the cutting edge position component that relates to the representation for every unique value of the representation. Thus, the angles between the frame and vertical and between the boom and the frame are combined to provide a first representation and a lookup table is used to obtain the value of the component of the cutting edge corresponding to this representation. A second lookup table is associated with a second representation that is a combination of the first representation and the angle between the boom and the stick. Yet a third lookup table is associated with a third representation that is a combination of the second representation and the angle between the stick and the bucket. The control repetitively samples the register storing the respective representation, or number, looks up the corresponding value of the component of the position of the cutting edge that relates to that representation or number and combines the values obtained from the three lookup tables to determine the position of the cutting edge by mere arithmetical manipulation. In a like manner, a lookup table is utilized in association with each hydraulic cylinder to provide a corresponding angular displacement for each and every possible value of liner extension of the cylinder. Therefore, a total of six lookup tables is required to rapidly and accurately determine either the vertical or horizontal components of the position of the cutting edge. For example, a first lookup table associated with the hydraulic cylinder between the frame and the boom converts the amount of extension of the cylinder to an angular displacement. A second lookup table converts the angular displacement, corrected for frame tilt, to a vertical component of the cutting edge that relates to that corrected angle. In a like manner, two lookup tables are associated with the rotation between the boom and the stick and two lookup tables are associated with the rotation between the stick and the bucket. If three additional lookup tables are provided to convert the respective three representations that are combinations of angular displacements to the horizontal component, both vertical and horizontal components can be accurately and rapidly determined using only nine lookup tables. 
     Each lookup table will necessarily store a large quantity of numbers, on the order of 50,000. However, this is not particularly vexatious because memory devices much larger than this are commercially available. Because the equations relating the length of the cylinders to the amount of angular displacement and relating the amount of angular displacement to the position of the bucket are readily solvable in the laboratory using conventional techniques, the lookup table can be constructed in a manner that is well within the capabilities of one skilled in the art. 
     In an alternative embodiment, a control is disclosed that may be readily fitted to an existing excavator. In this embodiment a gravity actuated sensor is mounted to each of the boom, the stick and the bucket, as well as the cab, to monitor the absolute angle of each member and the cab with respect to an earth reference, i.e., true horizontal or true vertical. The position of the cutting edge is determined with respect to a system origin from the outputs of the angle sensors which are monitored by the computer and the length of the members, which are constants entered into the computer by the technician installing the control. The position of the origin is determined by these same sensors and constants during calibration. 
     The angle sensors are motion sensitive, so the excavator members must be motionless in order for the control to be calibrated or for the position of the cutting edge to be determined. Thus, the operator will stop the motion of the members when a reading of the depth of the cutting edge is desired. Likewise, during calibration, the members will be stopped with the laser receiver in the laser plane. A brief delay is required after stopping, in order for the sensors to &#34;settle&#34; before a valid measurement or calibration may be made. This delay precludes automatic control of the cutting depth but still provides an accurate indication of the depth of the cutting edge. However, the elimination of this real-time control allows the hardware requirements to be reduced because the control may perform the trigonometric calculations according to the slower iterative methods. 
     These and other related objects, advantages and features of this invention will become apparent upon review of the following specification in conjunction with the drawings. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a side elevational view of an excavator and a laser transmitter in their intended environment controlled according to the invention; 
     FIG. 2 is an abstraction of the elements of the excavator to illustrate their geometric relationship; 
     FIG. 3 is a control block diagram showing the interconnection of the components of the invention; 
     FIG. 4 is a schematic diagram of the array of photo receptors in the laser receiver; 
     FIG. 5 is a schematic diagram of the rest of the circuitry of the laser receiver; 
     FIG. 6 is a schematic diagram of the control panel; 
     FIGS. 7a through 7e are a control flow diagram of the main control loop of the present invention; 
     FIGS. 8a and 8b are control flow diagrams of the laser calibration interrupt routine; 
     FIG. 9 is a control flow diagram of the manual calibration interrupt routine; 
     FIG. 10 is a layout of the control panel; 
     FIG. 11 is the same view as FIG. 1 of an alternative embodiment; 
     FIG. 12 is the same view as FIG. 2 of an alternative embodiment; 
     FIG. 13 is the same view as FIG. 3 of an alternative embodiment; 
     FIGS. 14a through 14d are the same views as FIGS. 7a through 7e of an alternative embodiment; 
     FIGS. 15a and 15b are the same views as FIGS. 8a and 8b of an alternative embodiment; and 
     FIG. 16 is the same view as FIG. 10 of an alternative embodiment. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     For the purpose of illustration, the term &#34;X-coordinate&#34; will be used to designate a distance from a reference coordinate in a a generally horizontal plane. However, such reference is not in relationship to earth horizontal unless so specified. Similarly, the reference to &#34;Y-coordinate&#34; refers to a measure of distance that is perpendicular to the X axis and will be in a generally vertical direction. However, this is not intended to refer to earth vertical unless so stated. Any reference to the front of the excavator is to indicate the portion to which the boom is attached. Any reference to Origin is to the center of boom pivot 32. 
     The variables used in the description are defined in Table I. 
     
                       TABLE I______________________________________VARIABLESDESIGNATION      EXPLANATION     SOURCE______________________________________CYLBOOM    Length Boom Cylinder                      Input From      Extended        Linear EncoderCYLSTIK    Length Stick Cylinder                      Input From      Extended        Linear EncoderCYLBUCK    Length Bucket Cylinder                      Input From      Extended        Linear EncoderANGVERT    Angle Between True                      Input From      Vertical and Cab                      Verticality                      SensorRABOOM     Angle Between Frame                      Lookup Table      and BoomRASTIK     Angle Between Boom                      Lookup Table      and StickRABUCK     Angle Between Stick                      Lookup Table      and BucketANGBOOM    Calculated Angle of                      Calculated      Boom Relative      to True HorizontalANGSTIK    Calculated Angle of                      Calculated      Stick Relative      to True HorizontalANGBUCK    Calculated Angle of                      Calculated      Bucket Relative to True      HorizontalHTBOOM     Vertical Distance From                      Lookup Table      Origin to stick or Calculated      Pivot PointHTSTIK     Vertical Distance From                      Lookup Table      Stick Pivot     or Calculated      Point to Bucket      Pivot PointHTBUCK     Vertical Distance From                      Lookup Table      Stick End Pivot Point                      or Calculated      to Cutting EdgeDSLSR      Distance From Center-                      Input From      most Cell, Struck by                      Laser Receiver      the Laser, in the Laser      Sensor to the Reference      Point on the StickHTLSR      Vertical Distance From                      Lookup Table      Reference Point on                      or Calculated      Stick to laser PlaneLNSTIK     Length of Stick From                      Constant      Boom End to Laser      Sensor Reference      PointHTREL      Vertical Distance                      Calculated      From Origin to the      Cutting EdgeHTCAB      Vertical Displacement                      Calculated      of Cab From Position      During Previous      CalibrationCHTREL     Vertical Distance                      Calculated      from Origin to the      Cutting Edge Corrected      for Vertical Displace-      ment of CabHTORIG     Vertical Distance of                      Calculated      the Origin Below      The Laser PlaneHTACT      Vertical Distance of                      Calculated      Cutting Edge Below      Laser PlaneHTTRGT     Desired Vertical                      Input From      Depth of Final Cut                      Control Panel      From Laser PlaneGDTRGT     The Varying Desired                      Calculated      Depth of Final Cut With      Respect to True Hori-      zontal Continually Ad-      justed According to Cur-      rent WDACT and      PERGRADPERGRAD    Desired Percent of                      Input From      Grade of Final Cut                      Control                      PanelWDBOOM     Horizontal Distance                      Lookup Table      From Origin to Boom                      or Calculated      End Pivot PointWDSTIK     Horizontal Distance                      Lookup Table      From Boom End Pivot                      or Calculated      Point to Stick End      Pivot PointWDBUCK     Horizontal Distance                      Lookup Table      From Stick End Pivot                      or Calculated      Point to Cutting EdgeWDORIG     Horizontal Distance                      Calculated      From the Origin to the      Cutting Edge at the      Instant the Laser      Receiver Contacts the      Laser BeamWDREL      Horizontal Distance                      Calculated      From the Origin      to the Cutting EdgeWDACT      Horizontal Distance of                      Calculated      Cutting Edge From Its      Position at the      Instant the Laser      Receiver Contacts the      Laser BeamCDBOOM     Length Boom Cylinder                      Input From      Extended At Instant                      Linear Encoder      of Laser Beam ContactCDSTIK     Length Stick Cylinder                      Input From      Extended at Instant of                      Linear Encoder      Laser Beam ContactCDBUCK     Length Bucket Cylinder                      Input From      Extended at Instant of                      Linear Encoder      Laser Beam ContactCAVERT     Angle Between True                      Input From      Vertical and Cab                      Verticality      at Instant of Laser                      Sensor      Beam ContactCBDIST     Assigned Number of                      Input From      Median Laser Receptor                      Laser Receiver      Cell Illuminated by      LaserCABOOM     Angle Between Frame                      Lookup Table      and Boom at Instant      of Laser Beam ContactCASTIK     Angle Between Boom                      Lookup Table      and Stick at Instant      of Laser Beam ContactCABUCK     Angle Between Stick                      Lookup Table      and Bucket at Instant      of Laser Beam ContactPNDBOOM    Sensed Angle of Boom                      Input From      Relative to True                      Boom Absolute      Horizontal      Angle SensorPNDSTIK    Sensed Angle of Stick                      Input From Stick      Relative to True                      Absolute Angle      Horizontal      SensorPNDBUCK    Sensed Angle of Bucket                      Input From Bucket      Relative to True                      Absolute Angle      Horizontal      SensorLENBOOM    Length of Boom  Constant      Between PivotsLENSTIK    Length of Stick Constant      Between PivotsLENBUCK    Distance From Bucket                      Constant      Pivot to Cutting EdgeLENCAB     Distance From Cab                      Constant      Pivot to Boom PivotSINBOOM    Sine of PNDBOOM CalculatedSINSTIK    Sine of PNDSTIK CalculatedSINBUCK    Sine of PNDBUCK CalculatedSINVERT    Sine of ANGVERT CalculatedIPBOOM     Angle of Boom Relative                      Input From Boom      to True Horizontal at                      Absolute Angle      Instant of Laser Flash                      SensorIPSTIK     Angle of Stick  Input From Stick      Relative to True                      Absolute Angle      Horizontal at Instant                      Sensor      of Laser FlashIPBUCK     Angle of Bucket Input From Bucket      Relative to True                      Absolute Angle      Horizontal at Instant                      Sensor      of Laser FlashGHACT      Perpendicular Distance                      Calculated      Between Laser Plane      and Cutting Edge When      Excavating on a      Nonlevel Grade______________________________________ 
    
     Referring now specifically to the drawings, and the illustrative embodiments depicted therein, FIG. 1 shows an excavator 20 having a frame 22 which consists of a cab member 24 horizontally pivoted at pivot means 31 about a tread member 26. A boom 28 is pivotally mounted at a proximal end 30 to cab 22 by pivot means 32. A stick 34 is pivotally mounted at a proximal end 36 to a distal end 38 of boom 28 by pivot means 40. A bucket 42 is pivotally mounted at a proximal end 44 to a distal end 46 of the stick by a pivot means 48. A distal end of the bucket 42 defines a cutting edge 50 which is used to excavate dirt in response to movement of bucket 42 towards the frame 22. Boom 28, stick 36, and bucket 42 make up connecting means 52 for connecting the cutting edge 50 to frame 22. 
     A first linearly extendable device, such as a hydraulic cylinder 54, connected between the frame and the boom provides means for pivotally moving the boom with respect to the frame. A second linearly extendable device, such as hydraulic cylinder 56, provides means for pivotally moving the stick 34 with respect to the boom. A third linearly extendable device, such as hydraulic cylinder 58, provides means for pivotally moving the bucket 42 with respect to the stick. Hydraulic cylinders 54, 56 and 58 provide actuation means for moving the cutting edge 50 with respect to frame 22. 
     A first encoder 60 produces a signal or representation proportional to the distance that hydraulic cylinder 54 is extended from its fully retracted position. A second encoder 62 produces a signal or representation proportional to the length that second hydraulic cylinder 56 is extended from its fully retracted position. A third encoder 64 provides a signal or representation proportional to the distance that third hydraulic cylinder 58 is extended from its fully retracted position. The operation of encoders 60, 62 and 64 will be explained in detail below. 
     A verticality sensor 61 mounted on cab 24 provides a signal or representation proportional to the amount of deviation between the cab 24 and the earth&#39;s horizontal plane. In other words, verticality sensor 61 measures the degree to which cab 24 is not level in its front-to-back reference plane. Verticality sensor 61 is typically a rheostat operated by a weighted pendulum and is available from Humphrey Inc. as Model No. CP17-1101-1. Also provided on frame 22 is a motion detector 63, which is a pressure switch for monitoring the hydrualic lines that control the track movement. Detector 63 determines that the operator has activated the manual control that causes the track motor to operate and the excavator to move. 
     FIG. 1 shows the excavator 20 in use with a laser generator 66. Laser 66 produces a narrow beam at a predetermined frequency that revolves in a plane at typically about 12 revolutions per second. With laser 66 properly aligned with respect to the true horizontal orientation of the earth&#39;s surface, it will produce a generally horizontal laser plane 68 but the invention comprehends use of an excavator with a laser plane that is nonhorizontal as well. Such a laser is well-known in the art of surveying and grading and the specific construction thereof forms no part of the invention. Such a laser is sold by Laser Alignment Incorporated of Grand Rapids, Mich. under Model No. 5000. 
     Also shown, but not forming a portion of the invention, is a grade stake 70 which is placed in the ground by a surveying team during establishment of the work site and provides a bench mark elevation with respect to which the desired depth of various trenches and holes is measured. 
     An incremental laser receiver 72 is mounted to stick 34 in a position where it will intersect laser plane 68 substantially every time that the bucket 42 is withdrawn from or inserted into a trench during the normal course of emptying a load of dirt from the bucket 42. The structure and function of laser receiver 72 will be explained in more detail below. 
     FIG. 2 shows a schematic representation of an excavator 20 performing an excavation operation. The two relevant coordinate systems are shown. First, there is the earth coordinate system which has a true horizontal reference coordinate, which is parallel to the earth&#39;s surface and a true vertical reference coordinate, which is essentially perpendicular to the earth&#39;s surface. The second coordinate system is defined with respect to the excavator frame 22. An X axis is defined to be parallel to the base or track of the frame 22. The Y axis is defined as being perpendicular to the X axis in a generally upward direction. The origin of the X-Y coordinate system is the center of boom pivot means 32. Under most circumstances the frame 22 will not be perfectly level and therefore the X-Y coordinate system will not coincide with the earth coordinate reference system. 
     FIG. 2 illustrates the physical meaning of the variables in Table I as they apply to these two coordinate systems. It can be seen that the three angular measurements RABOOM, RASTIK and RABUCK are all monitored with respect to the frame of the excavator. The position of the cutting edge with respect to the origin could be precisely determined by accurate measurement of these three variables. However, what is relevant is the variable HTACT, which described the relationship or distance between the cutting edge and the laser plane, which is set up at a predefined relationship to the earth coordinate system. This variable also requires knowledge of the angle between the frame and true vertical (ANGVERT) and the distance between the laser plane and the origin. 
     As will be explained in more detail below, laser receiver 72 is periodically passed through the plane generated by laser 66 and, at the instant of the beam contacting the receiver, the control computes HTLSR, the vertical distance between the centermost receptor cell of the group of cells that the beam strikes and a reference point on the stick, as well as the vertical height of the reference point on the stick with respect to the boom and the vertical height of the boom with respect to the origin. The control is then able to precisely determine the variable HTORIG, which is the true vertical distance between the laser plane and the center of the boom pivot means 32, which is the origin of the X-Y coordinate system. This number is stored and, until recalculated during the next pass of the laser receiver through the laser plane, serves as a calbiration number. By continuously comparing the calculated height of the cutting edge with the calibration number previously calculated and stored, the control can determine at all times, during which the system is calibrated, the precise vertical distance between the cutting edge and the laser plane. This variable, HTACT is used as a control variable to cause the actuation means to move the cutting edge to a desired distance from the laser plane. 
     The origin is a reference point selected on the frame and, for convenience, is selected to coincide with boom pivot means 32. Because the distance of the origin is the variable that is calibrated by the laser plane, it is important that the height of the origin not be allowed to vary without compensating the value of HTORIG. If boom pivot means 32 is in vertical alignment with cab pivot means 31 then the origin will not change its vertical position as the cab horizontally pivots about the treads 26, even if the frame is situated on a nonlevel surface. If, however, there is a significant horizontal spacing between the boom pivot and the cab pivot and if the frame is situated on a nonlevel surface, then as the cab pivots, the origin will change vertical position. The value of HTORIG is, therefore, continually adjusted according to the difference between the instantaneous value of ANGVERT and the same variable at the moment of calibration (CAVERT). 
     LASER RECEIVER 
     Referring to FIG. 4, incremental laser receiver 72 has, in the illustrated embodiment, has a quantity of 32 photo receptors or cells 74 which respond to the frequency of light emitted by laser 66 by reducing their impedance. The 32 receptors 74 are assigned consecutive integer numbers 1-32 for a reason to be explained below. The receptors assigned number 1-32 are arranged in a straight line, or linear array with adjacent receptors having consecutively assigned numbers. Therefore, if receptor #1 is at the top of the line, receptor #32 would be at the bottom or vice versa. Of course, the specific quantity of receptors used may be increased or decreased for application to different excavators. 
     It can be seen from FIG. 4 that the receptors are electrically interconnected in a matrix made up of N rows and M columns of interconnections. Each receptor 74 is located at a unique intersection of a particular column and row. Each row N is connected to a corresponding amplifier 76 and each column M is connected to a column amplifier 78. When a particular receptor is illuminated by light at the appropriate frequency, the corresponding output terminal B0 through B3 of the appropriate row amplifier 76 decreases in voltage and the appropriate output terminal C0 through C7 of the corresponding column amplifier 78 increases in voltage. 
     Terminals B0 through B3 and C0 through C7 are in turn connected to a plurality of comparators 80 (FIG. 5). Terminals B0 through B3 are each connected to the inverting input of the respective comparator 80. The noninverting inputs of the comparators connected to terminals B0 through B3 are connected to a fixed voltage source to establish a reference level. Terminals C0 through C7 each are connected to the noniverting input of their respective comparators 80. The inverting inputs of the comparators 80 connected to terminals C0 through C7 are connected to a fixed voltage source to establish a reference level. In this manner, comparator means 80 provide means for determining the identity of receptors that are receiving light at a predetermined frequency and above a predetermined level. The outputs of comparators 80 are provided as inputs to latch circuits 82 and 84. Latch circuits 82 and 84 store the combination of inputs received from comparators 80 until a next set of inputs are received from comparators 80. The outputs from latches 82 and 84 are provided as inputs to a median detector 86. Median detector 86 is a microcomputer programmed to determine, from the inputs received from the output of latches 82 and 84, which of the photo receptors are in a group that are receiving light at an appropriate frequency and above a predetermined level, and from among this group, which is the receptor that is closest to the longitudinal center of the group, an physically arranged in the array. 
     The N×M matrix is not square in the preferred embodiment. The longer row length allows a larger diameter laser beam to be unambiguously located. If the laser beam diameter illuminated more receptors than M, the control would not be able to precisely identify which receptors will illuminate. Therefore, a trade-off is made to require more interconnection circuitry due to the non-squaare matrix but to allow larger beam detection. Although the matrix is shown as a two-dimension matrix, a higher dimension may be appropriate for larger quantity of receptors. 
     The determination made by median detector 86 will correspond to a particular receptor number 1-32. The particular number will be transmitted as a parallel word in ASCII code through output lines 88 to a parallel to serial converter 90. The parallel to serial converter 90 converts the number of the centermost receptor 74 to a serial bit number which is then converted by a second converter 92 to a standard-format, such as RS232, where it is transmitted to the main computer over a coaxial cable 94. 
     A plurality of OR gates 96 connected to the outputs of comparators 80 form a clock signal 98 which is provided as an input to an interrupt generator 100. The interrupt generator 100 is a one-shot multivibrator that produces a pulse that is distributed on line 102 to the main computer. 
     When incremental laser receiver 72 intersects a laser plane 68, a group of receptors 74 receive photons from the laser source. Row output terminals B0 through B3, corresponding to the rows that have illuminated receptors 74, will decrease in voltage and the column terminals C0 through C7, corresponding to the columns M having illuminated receptors, will increase in voltage. Comparators 80 will go from a low digital level to a high digital level according to the rows N and columns M that have illuminated receptors. Latches 82 and 84 will store the digital values received from each comparator 80 and will produce those values on their lines 85 going to median detector 86. 
     Simultaneously with the respective comparators 80 switching state in response to the illuminated receptors, a signal is generated on line 98 from OR gates 96 to cause interrupt generator 100 to generate an individual plulse on line 102. Concurrently, the median detector 86 decodes the inputs received on line 85 from latches 82 and 84 and determines which of the 32 receptors are illuminated. The median detector then assigns the corresponding predetermined integer value of 1-32 to the appropriate receptors that have been determined to be illuminated. The median detector then performs an arithmetic averaging function to determine, of the group of receptors determined to be illuminated, which is the closest to the longitudinal center of the group. For example, if median detector 86 determines that receptors 20-24 are illuminated, it will determine receptor 22 to be the longitudinal centermost receptor of the group. The determination made by detector 86 is outputted on lines 88 as an ASCII Number to parallel to serial converter 90 and ultimately to RS232 format by converter 92. 
     Therefore, whenever the incremental laser receiver 72 penetrates the laser plane, laser receiver 72 will produce an output on line 94 that is an RS232 representation of a number corresponding to the longitudinally centermost of the group of receptors which is illuminated and will, simultaneously therewith, produce a single pulse on line 102. The illustrated median detector 86 is implemented by an Intel 8749 8-Bit Microcomputer. Illustrated converter 90 is an Intel 8251 Data Format Converter and converter 92 is a standard-bit serial RS232 converter. Interrupt generator 100 is a one-shot pulse generating circuit. 
     CONTROL SYSTEM ORGANIZATION 
     Output lines 94 and 102 from incremental receiver 72 are fed into a central control microcomputer 104 (Fig. 3). Micorcomputer 104 has a plurality of registers 106 for storage of variables produced during the control procedure. Computer 104 additionally has a plurality of timers 108 and a clock (not shown) for measuring real-time. Timers 108 are formed in hardward and are hardward decremented without the need for commands in the software program. In addition, a scratch pad memory 110 is provided for storing intermediate results of various calculations and other procedures. Computer 104 has numerous input and output ports (I/O) that are used to interface with a number of input and output devices. Two such ports interface with a main control panel 112 over a pair of lines or buses 114 and 116. Control panel 112, which will be described in more detail below, has its own microcomputer which encodes the positions of the various user input devices to send to the central computer 104 over databus 116. In addition, control panel 112 receives data messages from the central computer over databus 116, decodes these messages and use them to illuminate various lights and displays. Line 114 is a control line shared by computers 104 and 112 to coordinate the sending and receiving of messages. 
     Each encoder 60, 62 and 64 provides an output on lines of buses 118, 120 and 122, respectively, that is proportional to the length that the respective hydraulic cylinder 54, 56 and 58 is extended from its retracted positions. Lines 118, 120 and 122 are provided as inputs to central computer 104. Encoders 60, 62 and 64 could be of the absolute-position encoding type, which provide an output word corresponding to a unique position of the cylinder. Such a device may be provided either a parallel-bit or a serial-bit output, but the serial-bit output would be preferred to minimize the number of wires extending along connecting means 52. Alternatively, encoders 60, 62 and 64 could be of the incremental encoder type with a quadrature output. Such an encoder produces two phase-shifted output signals that change voltage state in proportion to linear movement. The output of such an incremental encoder only indicates the amount of incremental movement and requires an accumulating device (not shown) to monitor the exact position of the cylinder. Such an accumulating function could be performed by the central computer 104 if desired. Encoders 60, 62 and 64 are provided integrally with a hydraulic cylinder in a device manufactured by Parker Fluidpower Company and sold under Model No. Parkertron CBB2HXLTS13AC60 with Feedback A-0-B-2. 
     Verticality sensor 61 is a potentiometer that provides an analog voltage to an analog to digital converter 124 that, in turn, provides a digital input to computer 104 over a line or bus 126. Vehicle movement detector 63 is a pressure sensing device that produces a digital output having a first state when no hydraulic control pressure is detected and a second state when pressure is detected. The output of detector 63 is provided as an input to computer 104 over line 128. Alternatively, an accelerometer could be used as a motion detector to detect actual frame movement. 
     Encoders 60, 62 and 64 produce signals or representations that are proportional to the distance that cylinders 54, 56 and 58 are extended from their retracted positions. In order to determine the location of cutting edge 50, computer 104 requires, inter alia, a representation that is proportional to the angular position of boom 28 with respect to frame 22, the angular position of stick 34 with respect to boom 28 and the angular position of bucket 42 with respect to stick 34. The relationship between the output of encoders 60, 62 and 64 to the above mentioned angles is not linear but is, rather, determined by a trigonometric function. In order to provide translation means for translating the length representation from encoders 60, 62 and 64 to the necessary angle representations, lookup tables 130, 132 and 134 are provided. Each lookup table provides a multiplicity of values, each value representing the respective angular displacement, or a number related thereto, of the connecting member (boom 28, stick 34 or bucket 42) for each unique value of extension of the respective hydraulic cylinder or a number related thereto. One such lookup table is provided for each encoder. During every loop through the program, computer 104 samples the output from each encoder 60, 62 and 64. These values or numbers related thereto are stored in respective registers. The computer uses an output line or bus 136 to send a data word enabling or addressing the respective lookup table 130, 132 or 134 and containing the value of the respective cylinder length representation or related number. The enabled lookup table has retrieving means for retrieving the value of the angle representation or a number directly related to the angle representation, corresponding to the value read from the encoder. This angle representation, or related number, is transferred to the computer 104 over a databus 137. 
     The retrieving means used in the preferred embodiment is as follows. The encoder output representation or number is provided to the lookup table as an address word to the respective lookup table. The lookup table responds to the address word by reading out the number that is in the memory location specified by the address. 
     Each lookup table 130, 132 and 134 is a nonvolatile PROM. The contents therein are developed by calculating, during engineering development of the excavator control, the angle value or a number directly related to the angle value that corresponds to every unique incremental cylinder extension value or a number directly related to the extension value. This calculation would preferably be performed by a computer programmed with an appropriate algorithm. The particular algorithm varies based on the configuration of the hydraulic cylinder and the members to which it is attached, but is a trigonometric function that may be readily determined by one skilled in the art. 
     In addition to means for translating the length representation from the encoders 60, 62 and 64 to angle representations, the computer has additional lookup tables 138, 140 and 142. As previously mentioned, the position of cutting means 50 is related to the angles between the frame and true vertical, between the frame and the boom, between the boom and the stick and between the stick and the bucket by a trigonometric function. The invention provides that one particular component of the cutting means position, or a number directly related to this component, such as either the vertical distance or the horizontal distance from the boom pivot means, can be obtained directly from a combination of numbers derived from the four above mentioned angle representations or from numbers directly related to the angle representations. Lookup table 138 contains a multiplicity of values, each consisting of the vertical component of the cutting means position corresponding to each unique value of a first respective number or representation that is the angle representation between the frame and the boom adjusted for the deviation of the frame from true vertical or a related number. Likewise, lookup table 140 contains a plurality of values, each consisting of the vertical component of the cutting means position, or a related number, corresponding to each unique value of a second respective number or representation that is a combination of the first number and the angle representation between the boom and the stick or a related number. Likewise, lookup table 142 contains a plurality of values, each consisting of the vertical component of the cutting means position, or a related number, corresponding to each unique value of a third respective number or representation that is a combination of the second number and the angle representation between the stick and the cutting means or a related number. 
     Lookup tables 130, 132 and 134 translate the values or cylinder extension, or number related thereto, directly to angle representations, or numbers related thereto. However, for lookup tables 138, 140 and 142 the computer 104 must first perform simple addition to combine the respective angle representations to numbers that are trigonometrically related to the component of the cutting means position. After this addition is performed, each resulting number is separately provided on line or bus 136 along with an enabling signal or address for the appropriate lookup table. The respective lookup table has retrieving means that use the data word to locate and read out the corresponding value onto bus 137. 
     A pair of lookup tables 144 and 146 are provided as alternative lookup tables for table 142. The purpose of the alternative lookup tables is to enable the excavator to be utilized with different size and shaped buckets 42. A switch 168 (FIG. 6) on the control panel allows the operator to indicate which bucket configuration is being used. Computer 104 responds to the position of switch 168 by enabling either lookup table 142, 144 or 146. Additional lookup tables 141, 143, 145 and 148 are provided for functions that will be explained in detail below. 
     A digital output bus 150 is provided from computer 104 to a digital to analog converter 152. Converter 152 converts a digital signal to an analog signal of the proper impedance to match a proportional hydraulic valve 154. Valve 154 controls the hydraulic fluid supply to boom cylinder 54. Valve 154 responds proportionally to an increasing positive analog signal from converter 152 by moving cylinder 54 in one direction and proportionally to a increasing negative analog voltage from converter 152 by moving cylinder 54 in the opposite direction. While the illustrative embodiment provides a digital to analog converter with appropriate interface circuitry to operate the proportional hydraulic valve, it may be desirable to provide a valve control computer between computer 104 and the digital to analog converter in order to provide a more precise control over the hydraulic valve. Alternatively, a nonproportional fully-open/fully-closed valve could be utilized to provide full actuating hydraulic pressure to move the cylinder 54 in one direction, or alternatively, in the other direction. However, the more precise control provided by the proportional control valve is preferred. 
     CONTROL PANEL 
     Referring to FIGS. 6 and 10, control panel 112 has a microcomputer 156 with combination input and output ports that are connected to lines or buses 114 and 116 for communication with the central computer 104. Computer 156 monitors the position of the switches on the control panel and forms a data word for transmission to the computer 104 indicative of the position of the switches. In addition, computer 156 receives data words from the main computer and decodes these words in order to illuminate the appropriate lamps and displays. Computer 156 also has a plurality of registers 158 to provide storage for appropriate variables. 
     Computer 156 receives a series of inputs on lines 160 from switches generally shown at 162. Computer 156 is also connected to an input/output expander circuit 164 by a series of lines 166. Input/output expander 164 provides connection to configuration switch 168 and a plurality of indicators generally shown at 170. Lines 166 are additionally multiplexed to a display assembly 172 which has decoders, display drivers and display elements (not shown). 
     The desired depth (HTTRGT) is inputted to the panel 126 by a pair of slewing switches 174, 176 which cause computer 156 to increment or decrement a number in a register 158. The current value of HTTRGT is displayed on a display 178 (FIG. 10). The operator determines the desired depth by adding the distance between the laser plane and the grade stake to the desired depth of the cut as measured from the grade stake. 
     A display 180 indicates the actual vertical distance of the cutting edge from either the laser plane &#34;actual depth&#34; or the final desired depth &#34;relative depth&#34;. A pair of switches 189, 190 are for selecting which &#34;depth&#34; indication is displayed. A green &#34;on grade&#34; light 182 indicates when the actual distance between the cutting edge and the laser plane equals the desired distance. 
     A pair of slewing switches 184 and 186 are provided for incrementing or decrementing the desired percent of grade (PERGRAD) in a register 158 in computer 156. The PERGRAD value is displayed on a display 188. A series of lamps 192, 193 and 194 indicate the laser calibration status of the control. A calibration mode switch 195 has bi-stable positions to select whether the system is to be calibrated manually or by a laser beam. A switch 196 is used to indicate the precise incident of calibration in the manual calibration routine and a green lamp 197 indicates when the control is properly calibrated in the manual mode. A power switch 198 controls power to the entire control system and a light 199 indicates that power is applied. 
     CONTROL ROUTINE 
     A. Excavating to Level Grade 
     Referring to 7a of the drawings, upon application of power to the computer with the power switch 198 the computer performs a routine to initialize the hardware, reset the various flags and load preestablished values for timers 108 from ROM. The timers 108, which are hardware decremented but reset by software, are started. Control then moves to block 202 where a determination is made whether there has been a change in the status of any input devices from panel 112. If the control determines that there was a change in input status, control moves to a block 204 where the new input information is accepted, both manual and laser calibration mode flags are reset to take the control out of a calibrated mode, and control is returned to block 202. If it is determined that there are no changes in input status then control moves to a block 206 where the control interrogates the PERGRAD register to determine if the number equals exactly 0% (level grade). If it does, then control passes to a block 210 where a grade flag is reset. 
     If block 206 determines that a nonzero grade number is entered then it is concluded that the operator desires to cut to a sloping grade so control moves to block 208 where a grade flag is set. Control then passes to a block 212 where it is determined whether the vehicle movement detector is activated. If it is, then control moves to block 214 where the laser and the manual calibration mode flags are reset to take the control out of the calibrated mode. The purpose of this is to require that the system be recalibrated if the frame moves, which would indicate that the previously calculated calibration information is no longer valid. 
     If it is determined in block 212 that the vehicle movement detector is not activated, then control bypasses block 214 and moves to block 216 where it is determined whether calibration switch 195 is in the manual position. If it is determined that switch 195 is in the manual position, control moves to block 218 where it is determined whether the manual calibration flag is set. If it is determined that the manual calibration flag is not set then control passes to block 220 where the control turns off the green &#34;on grade&#34; lamp, turns off the yellow &#34;caution calibration&#34; lamp and turns on the red &#34;no calibration&#34; lamp. Control then passes to block 222 where the D/A converter 152, which controls hydraulic valve 154 provides a zero output, meaning a command to maintain the status quo of the hydraulic valve. If a hydraulic valve control computer is used with the D/A converter 152 then it, rather than the D/A converter, will receive the zero command from block 222. If the control determines in block 218 that the manual calibration flag is set then control passes to block 224 where the computer 104 is instructed to ignore interrupt signals from line 102 and the timer associated with the laser calibration mode. Control then passes to a block 226 where the &#34;manual calibration&#34; lamp is energized and to block 228 where the red &#34;no calibration&#34; lamp is turned off. From block 228 control passes to block 236 in FIG. 7c. 
     If the control determines in block 216 that calibration switch 195 is not in the manual position, then it is concluded that the switch is in the laser calibration position and control passes to block 230 where the manual calibration flag is reset, and the computer 104 is instructed to respond to interrupt signals from line 102 and the laser calibration mode timer. Control then passes to block 232 where it is determined whether the laser calibration mode flag is set. If it is determined that the laser calibration mode flag is not set then control passes to block 220 where the green and yellow calibration lamps are turned off and the red &#34;no calibration&#34; lamp is turned on. If block 232 determines that the laser calibration mode flag is set then control passes to block 234 where the green laser calibration lamp is turned on and block 228 where the red &#34;no calibration&#34; lamp is turned off. Control then passes to block 236 in FIG. 7c. 
     In block 236, the computer is instructed to sample lines 118, 120 and 122 to determine the instantaneous value of the output representations from boom encoder 60, stick encoder 62 and bucket encoder 64. If, alternatively, incremental encoders are utilized rather than absolute position encoders, the computer will sample the accumulating registers that are internally monitoring the extended position of the hydraulic cylinders 54, 56 and 58. Control then passes to block 238 where the control converts CYLBOOM to RABOOM by enabling lookup table 130 and retrieving, over bus 137, the value of RABOOM in table 130 corresponding to the value of CYLBOOM that was obtained in the previous step. A similar conversion of CYLSTIK to RASTIK is performed utilizing lookup table 132 and a conversion of CYLBUCK to RABUCK is performed utilizing lookup table 134. 
     After the conversion has taken place in block 238, control passes to block 240 where the control samples the value of ANGVERT obtained from the analog to digital converter 124 and arithmetically combines it with RABOOM to create ANGBOOM. ANGBOOM is thus a number that is directly dependent on the angle between the frame and the boom, corrected for the offset between the frame and vertical. In block 242, the value of ANGBOOM is used to obtain HTBOOM using lookup table 138. This is performed by the computer enabling lookup table 138 over line 136 and retrieving the value for HTBOOM that corresponds to the value of ANGBOOM that was computed in block 240. The value is transmitted on bus 137 to computer 104 where it is stored in the appropriate register. 
     Control then passes to block 244 where ANGBOOM is combined with RASTIK to determine ANGSTIK according to the algorithm: ANGSTIK is equal to the sum of ANGBOOM and RASTIK (expressed in degrees) minus 180 degrees. The resulting number is therefore dependent upon both the corrected angle between the frame and the boom and the angle between the boom and the stick. Control then passes the block 246 where the value of HTSTIK corresponding to the value of ANGSTIK calculated in block 244 is selected from lookup table 140. Control then passes to block 248 where the value of ANGSTIK, calculated in block 244, is added to RABUCK minus 180 degrees to obtain the value of ANGBUCK. ANGBUCK is thus seen to depend on the value of the angles between the frame and the boom, corrected for tilt, between the boom and the stick and between the stick and the bucket. From block 248, control then passes to block 250. 
     In block 250, the control examines the status of a plurality of flags associated with configuration switch 168 to determine the position that switch 168 is in. Control then passes to block 252 where the appropriate lookup table 142, 144, 146 . . . is enabled depending upon the status of the configuration switch flags. Control then passes to block 254 where the value of HTBUCK corresponding to the previously calculated value of ANGBUCK is obtained from the enabled bucket lookup table. 
     Control then passes to block 256 where the previously established values of HTBOOM, HTSTIK and HTBUCK are algebraically combined, or added, to obtain the value of HTREL. HTREL is proportional to the true vertical distance between the cutting means 50 and the origin, pivot means 32, of the X-Y coordinate system. Control then passes to block 257 where the control algebraically subtracts the present value of ANGVERT from the value of CAVERT, which is the angle between true vertical and the cab during the previous calibration routine. This difference is applied to a lookup table (not shown) to determine the value of HTCAB which represents the vertical offset of the origin from the moment of calibration. The value of HTCAB is then algebraically combined with HTREL to obtain CHTREL which is compensated for the vertical offset of the origin from the moment of calibration. Control then passes to block 258 where the previously established value of CHTREL is algebraically subtracted from the value of HTORIG to obtain HTACT. HTORIG is obtained during a calibration interrupt routine that will be explained in detail below and represents the vertical distance of the origin of the X-Y coordinate system below the laser plane. As a result, the value HTACT is proportional to the true vertical distance that the cutting means is below the laser plane. 
     Control then passes to block 260 (FIG. 7d) where the computer examines the status of the grade flag to determine if it is set. If it is determined that the grade flag is not set, then control passes to block 262 where it is determined whether the value of HTACT is equal to the value of HTTRGT within some predetermined small tolerance. If it is determined that the value of HTACT does equal the value of HTTRGT within tolerance, then the cutting edge 50 has cut to the desired depth and control passes to block 264 (FIG. 7e) where the &#34;on grade&#34; lamp is turned on and to block 284 where the D/A converter or hydraulic valve control computer, if provided, is provided a zero command. Control then passes to block 268 where either the value of HTACT (actual) or HTACT minus HTTRGT (relative) is displayed on the &#34;depth&#34; indicator 180 on the display panel. 
     If block 262 determines that the value of HTACT does not equal the value of HTTRGT within tolerance, then control passes to block 270 (FIG. 7e) where the &#34;on grade&#34; lamp is turned off, if energized. Control then passes to block 272 where it is determined whether HTACT is within 0.5 feet of HTTRGT. If it is determined that HTACT is within 0.5 feet of HTTRGT, then the cutting means 50 is within 6 inches of the desired depth and control passes to block 274 where it is determined whether the operator is operating the manual boom control and thus attempting to override the automatic control. If the operator is not attempting to override the automatic control, then control passes to block 276 where the control subtracts the value of HTACT from HTTRGT in order to obtain an error signal proportionate to the additional depth that the cutting means must obtain to equal the desired depth. Block 276 provides a comparison means or error means for comparing the true vertical distance of the cutting means from the laser plane with the user-inputted vertical distance from the laser plane that the user desires the cutting means to excavate to. The result of the calculation in block 276 is outputted to the D/A converter or the hydraulic valve control computer whichever is controlling the proportion hydraulic valve 154, so that it will operate the boom cylinder so as to move the cutting edge towards the desired depth. Control then passes to block 268 for display of the value of HTACT or HTACT minus HTTRGT in display 180. 
     Control then passes to block 280 where it is determined whether the value of ANGVERT equals CAVERT within a first predetermined small tolerance. The purpose of this block is to detect movement of the frame that is insufficient to cause the control to become uncalibrated but which indicates some caution about the validity of the calibration value HTORIG. If it is determined that ANGVERT does equal CAVERT within this first small tolerance, then control passes to the beginning of the loop at block 202 (FIG. 7a). If ANGVERT does not equal CAVERT within the first small tolerance then control moves to block 281 where the control determines whether ANGVERT equals CAVERT within a second tolerance that is larger than the first tolerance. If ANGVERT equals CAVERT within the second tolerance then a yellow &#34;caution calibration&#34; lamp is energized in block 282. If ANGVERT does not equal CAVERT within the second tolerance then control passes to block 283 where the laser and manual calibration mode flags are reset to take the control out of the calibrated mode. 
     If block 272 (FIG. 7e) determines that HTACT is not within 0.5 feet of HTTRGT, then control passes to block 284 where the D/A converter or the hydraulic value control computer is provided a zero output. It should be noted that the present invention is directed to a control capable of excavating to a predetermined depth. It is the intention of the inventors that the operator should exert general control over the stick and bucket, so control is only exercised automatically by the computer when the cutting edge 50 is within 0.5 feet of the desired depth. Similarly, if block 274 determines that the operator is attempting to manually override the automatic control, then control will pass from block 274 to 284 where the automatic control will be disabled even if within 0.5 feet of the desired depth to return control to the operator. 
     B. Excavating on a Sloping Grade 
     If the operator desires to cut a trench on a sloping grade, as is normal for laying tile and other drain pipe, then the laser orientation will be adjusted to direct the laser plane parallel the desired grade slope, or percent of grade. The desired percent of grade, in terms of feet of elevation per horizontal foot of length, is entered using slewing switches 184 and 186 to control the number in the PERGRAD register and the number displayed by display 188. With a value of PERGRAD other than 0, the control will determine at block 206 (FIG. 7a) that a grade input equal to other than 0% has been entered and control will pass to block 208 where the grade flag will be set. 
     If block 260 (FIG. 7d) determines that the grade flag is set, then control passes to block 286 where the control converts the value of ANGBOOM, calculated previously in block 240, to the corresponding value of WDBOOM using a lookup table 141. 
     When it is desired to cut a trench on a grade then the horizontal position of the cutting edge becomes a necessary variable because the desired depth of the trench varies according to the horizontal position of the cutting edge. Just as the vertical distance of the cutting edge with respect to the boom pivot 32 is related to the angle between the boom and the frame adjusted for frame tilt, the horizontal distance between the cutting edge and pivot 32 is, likewise, related to the angle between the boom and the frame adjusted for frame tilt. Therefore, the value of WDBOOM is obtained from a lookup table 141 containing a multiplicity of values of WDBOOM, each value corresponding to a respective value of ANGBOOM. 
     From block 286, control moves to a block 288 where the value of WDSTIK, corresponding to the value of ANGSTIK calculated in block 244, is obtained from a lookup table 143. Control then passes to block 290 where the value of WDBUCK, corresponding to the value ANGBUCK calculated in block 248 is obtained from a lookup table 145. In block 292, the previously obtained values of WDBOOM, WDSTIK and WDBUCK are algebraically combined to create the value WDREL, which is proportional to the horizontal distance from boom pivot 32 to the cutting edge 50. Control then passes to block 294 where the value of WDREL is subtracted from the value of WDORIG to obtain the value WDACT which represents the horizontal distance of the cutting edge from the position it was in the most recent instant the laser receiver crossed the laser plane, i.e., at calibration. 
     As previously mentioned, when cutting a trench on grade, the desired depth of the cut varies with horizontal distance. Therefore, for each pass through the program when a nonzero value of the grade is inputted to the control, block 296 adjusts the desired depth or HTTRGT according to the horizontal distance the cutting edge is from the position at calibration (WDACT) and the percentage grade number entered by the operator (PERGRAD). The resulting value of GDTRGT represents a desired depth that varies according to the horizontal position of the cutting edge 50. Once GDTRGT is determined for the particular loop in software, control passes to block 298 where it is determined whether HTACT is equal to GDTRGT within a predetermined small tolerance. If it is determined that HTACT is equal to GDTRGT within tolerance, then control passes to block 264 (FIG. 7e) where the &#34;on grade&#34; lamp is energized and block 284 where the D/A converter is provided a zero output. If block 298 determines that HTACT does not equal GDTRGT within tolerance then control passes to block 270 (FIG. 7e) where the &#34;on grade&#34; lamp is turned off, if it is on, and control passes to block 272 where it is determined whether HTACT is within 0.5 feet of GDTRGT. If it is, then HTACT is subtracted from GDTRGT in block 276 and the difference is outputted to the D/A converter to operate the proportional hydraulic valve. If the value of HTACT is not within 0.5 feet of GDTRGT or if the operator is manually attempting to override the automatic control, then control block 284 provides a zero output to the D/A converter. 
     C. Laser Calibration Routine 
     As explained above, the incremental laser receiver 72 generates a number that represents the longitudinally centermost receptor of the group cells that are illuminated by the laser on line 94 and an interrupt signal on line 102 at the precise moment that the beam strikes the receiver. When the microcomputer 104 receives an interrupt signal on line 102 it interrupts the operation of the main control program in FIG. 7 and performs the interrupt routine shown in FIGS. 8a and 8b. 
     Receipt of the interrupt signal 102 in block 300 causes the microcomputer to examine lines 118, 120 and 122 to obtain the value of the outputs or representations from encoders 60, 62 and 64 which are proportional to the length that the boom, stick and bucket cylinders are extended. Block 302 additionally examines line 126 to obtain the output from the verticality sensor. Control then passes to block 304 where the values of CDBOOM, CDSTIK and CDBUCK are converted to CABOOM, CASTIK and CABUCK, respectively, using lookup tables 130, 132 and 134. Control then passes to block 306 where the value of CBDIST obtained on line 94, simultaneous with the interrupt signal, is examined. The value CBDIST is the assigned number of the median laser receptor cell at the instant of the laser flash and is proportionate to the height on the receiver that the laser beam strikes the receiver. 
     In block 308, the value of CABOOM, CASTIK, CAVERT and LNSTIK are used to determine the vertical distance of the reference point on the stick from the origin using the same control procedure used in blocks 240 to 246 to obtain the vertical distance of the distal end of the stick from the origin, except that the constant LNSTIK is subtracted from the result obtained in the block 246 portion of the procedure because the reference point is located only part of the length between the distal end of the boom and the distal end of the stick. 
     Because the stick, and therefore the laser receiver, may not be perpendicular to the laser plane when passing through it, the distance from the median laser receptor to the reference point on the stick may need to be adjusted to compensate for this lack of perpendicularity. This relationship is again a trigonometric function and, therefore, a lookup table 148 is used to convert DSLSR to HTLSR. Control then passes to block 310 where the value of HTLSR, determined in block 309, is algebraically added to the height of the stick reference point relative to the origin in order to obtain the calibration number of HTORIG. The value of HTORIG will be stored in its respective register and represents the vertical distance of the origin from the laser plane. 
     Control then passes to block 312 where the control determines whether the grade flag is set. When a percent of grade number other than zero is inputted to the computer through switches 184 and 186, the grade flag will be set. Because the calibration mode requires monitoring the horizontal as well as the vertical positions of the cutting edge, the horizontal position of the origin or pivot point 32 must be established with respect to a reference. The reference will be the horizontal position of the cutting edge at the instant of the laser striking the receiver. This position of the cutting edge does not correspond to any predetermined location in the earth-coordinate system. Such correspondence is not necessary because only the amount of relative horizontal movement of the cutting edge, during sloping grade digging, is important. The laser, which is inclined so as to be parallel with the final grade, will adjust the vertical component of the desired depth (GDTRGT) for horizontal displacement during every calibration procedure. However, the control needs to internally adjust this vertical component (GDTRGT) for relative horizontal displacement between calibration procedures. 
     If it is determined in block 312 that the grade flag is set, then control passes to block 314 where the horizontal distance of the cutting edge from the origin is obtained by using the values of CABOOM, CASTIK, CABUCK and CAVERT determined in block 304 along with the procedure in blocks 240 through 256. However, blocks 250 and 252 are omitted because the same horizontal lookup table is used for all bucket configurations and lookup tables 141, 143 and 145 are used instead of lookup tables 138, 140 and 142 to obtain the horizontal component of the cutting edge position that corresponds to the number related to the respective angles. 
     Control then passes to block 318 where the laser calibration mode flag is set and the counter that monitors the time between calibration operations is reset. Control then returns to the point in the main loop where it had exited. 
     D. Manual Calibration 
     When it is desired to utilize the excavator without a laser, many of the advantages of the invention can still be realized. To perform a manual (without laser) calibration procedure, as illustrated in FIG. 9, the cutting edge is brought into contact with a grade stake or other indication of vertical height. When this has been accomplished, the calibration button 196 is pressed which generates an interrupt signal 500 which causes control to exit the main loop and pass into an interrupt loop. Control then passes to block 502 where inputs CDBOOM, CDSTIK, CDBUCK and CAVERT (which relate to the instant the manual calibration button is pressed) are inputted. Control then passes to block 504 where the values are converted to CABOOM, CASTIK and CABUCK. Control then passes to block 506 where the vertical and horizontal distances from the cutting edge to the origin are calculated according to the control procedures in blocks 240-256. The resulting HTORIG and WDORIG are stored and control passes to block 508 where the manual calibration mode flag is set and the counter that monitors the time between calibration cycles is reset. Control then returns to the portion of the program where it had exited. This routine will provide manual calibration for both level grade and sloping grade cutting procedures. 
     ALTERNATIVE EMBODIMENT 
     The previously described embodiment is not readily adapted to retrofit of existing excavators. The replacement of the hydraulic cylinders with those fitted with encoders is expensive. Retrofitting an excavator with angle transducers on the boom, stick and bucket pivot means is not straightforward. One problem is that the pivot pin is usually free-floating, which prevents a readily accessible reference point for determining the position of the member to which the transducer is not affixed. A second problem is that the boom pivot may not be easily accessible for the purpose of retrofit. 
     Referring to FIGS. 11 and 12, in the alternative embodiment, an absolute angle sensor 60&#39; mounted to the boom monitors the angle between the boom and true horizontal (PNDBOOM) which is an earth reference. Similarly, absolute angle sensor 62&#39; mounted to the stick monitors the angle between the stick and true horizontal (PNDSTIK). Absolute angle sensor 64&#39; mounted to the bucket monitors the absolute angle between the bucket and true horizontal (PNDBUCK). A verticality sensor 61&#39; mounted to the cab monitors the absolute angle between the cab and true vertical (ANGVERT). Angle sensors 60&#39;-64&#39; may be a rheostat operated by a weighted pendulum, such as the Humphrey, Inc. Model No. CP17-1101-1 that is used as the cab verticality sensor 61&#39; in the previously described embodiment. Sensor 60&#39; is mounted close to pivot means 32&#39; to reduce the amount of motion experienced by the sensor. Similarly, sensor 62&#39; is mounted close to pivot means 40&#39; and sensor 64&#39; is mounted close to pivot means 48&#39;. 
     Referring to FIG. 13, the output of boom angle sensor 60&#39; produces an analog voltage to an analog to digital converter 117&#39; that, in turn, provides a digital input to computer 104&#39; over a line or bus 118&#39;. Similarly, the analog output of the stick angle sensor 62&#39; is converted by A/D converter 119&#39; to a digital signal provided to computer 104&#39; over line 120&#39; and the analog output of bucket angle sensor 64&#39; is converted by A/D converter 121&#39; to a digital signal provided to computer 104&#39; over line 120&#39;. 
     The absolute angle sensors are gravity actuated by a pendulum member that tends to oscillate while the excavator is moving and for a while after it stops moving. Until this oscillation stops, it is not possible to make accurate angle measurements. In order to prevent erroneous readings, the control monitors the output of the angle sensors to determine when the pendulum member has essentially stopped oscillating. This time lag makes it impractical for real-time automatic control of the hydraulic valve that actuates the boom. Rather, the control illustrated in this embodiment serves as an indicator to allow the operator to stop the motion of the bucket and determine the position of the cutting edge when desired. Accordingly, no circuitry is included for operating the proportional hydraulic valve. Also, because control is not exercised over the excavator, the speed of calculating the position of the bucket is no longer critical. Accordingly, this embodiment is illustrated without a multiplicity of lookup tables to provide corresponding position numbers for each angle increment of the respective boom, stick and bucket member. The various trigonometric functions are solved by conventional digital techniques, whose relatively slow speed of execution is not a hindrance. A ROM 133 is provided to store values of the lengths of the boom (LENBOOM), the stick (LENSTIK) and the bucket (LENBUCK) for various excavators to which this control system may be field-installed. A configuration switch 115&#39; is provided for the field installation technique to input to the computer the particular excavator to which the control is mated. Alternatively, several different versions of ROM 133 may be encoded with the appropriate ROM used with a particular excavator. 
     Referring to FIG. 16, the control panel is somewhat less complicated in this embodiment. As in the previous embodiment, DEPTH indicator 180&#39; provides an indication of either the vertical distance of the cutting edge from the laser plane (HTACT), if the ACTUAL button 189&#39; is pressed and lamp 190&#39; illuminated, or the vertical distance of the cutting edge from the system origin (CHTREL), if the RELATIVE button 191&#39; is pressed and lamp 187&#39; illuminated. A green VALID lamp 182&#39; is provided to advise the operator when the pendulums in the angle sensors have settled sufficiently so that the DEPTH reading is valid. 
     As with the previous embodiment, a % GRADE input register/indicator 188&#39; and adjustment switches 184&#39; and 186&#39; are provided. The present embodiment is capable of indicating the distance of the cutting edge from a laser plane which is oriented such that it is inclined at the desired grade. The inclination of the laser is entered in the % GRADE register/indicator. However, no input register/indicator is provided for a desired depth number because that value was utilized in the previous embodiment in conjunction with control of the boom hydraulic cylinder to control the depth to which the cutting edge is to cut. No such control is exercised in this embodiment. The remainder of the control panel and associated circuitry (not shown) is identical to the previous embodiment. 
     Referring to 14a of the drawings, upon application of power to the computer with the power switch 198&#39; the computer performs a routine to initialize the hardware, reset the various flags and load preestablished values for timers 108&#39; from ROM. The timers 108&#39;, which are hardware decremented but reset by software, are started. Control then moves to block 202&#39; where a determination is made whether there has been a change in the status of any input devices from panel 112&#39;. If the control determines that there was a change in input status, control moves to a block 204&#39; where the new input information is accepted, both manual and laser calibration mode flags are reset to take the control out of a calibrated mode, and control is returned to block 202&#39;. If it is determined that there are no changes in input status then control moves to a block 206&#39; where the control interrogates the PERGRAD register to determine if the number equals exactly 0% (level grade). If it does, then control passes to a block 210&#39; where a grade flag is reset. 
     If block 206&#39; determines a nonzero grade number, control moves to block 208&#39; where a grade flag is set. Control then passess to a block 212&#39; where it is determined whether the vehicle movement detector is activated. If it is, then control moves to block 214&#39; where the laser and the manual calibration mode flags are reset to take the control out of the calibrated mode. 
     If it is determined in block 212&#39; that the vehicle movement detector is not activated, then control bypasses block 214&#39; and moves to block 216&#39; where it is determined whether calibration switch 195&#39; is in the manual position. If it is determined that switch 195&#39; is in the manual position, control moves to block 218&#39; where it is determined whether the manual calibration flag is set. If it is determined that the manual calibration flag is not set then control passes to block 220&#39; where the control turns off the green &#34;on grade&#34; lamp, turns off the yellow &#34;caution calibration&#34; lamp and turns on the red &#34;no calibration&#34; lamp. Control then passes to block 235a&#39; in FIG. 14c. If the control determines in block 218&#39; that the manual calibration flag is set then control passes to block 224&#39; where the computer 104&#39; is instructed to ignore interrupt signals from line 102&#39; and the timer associated with the laser calibration mode. Control then passes to a block 226&#39; where the &#34;manual calibration&#34; lamp is energized and to block 228&#39; where the red &#34;no calibration&#34; lamp is turned off. From block 228&#39; control passes to block 235a&#39; in FIG. 14c. 
     If the control determines in block 216&#39; that calibration switch 195 is not in the manual position, then it is concluded that the switch is in the laser calibration position and control passes to block 230&#39; where the manual calibration flag is reset, and the computer 104&#39; is instructed to respond to interrupt signals from line 102&#39; and the laser calibration mode timer. Control then passes to block 232&#39; where it is determined whether the laser calibration mode flag is set. If it is determined that the laser calibration mode flag is not set then control passes to block 220&#39; where the green and yellow calibration lamps are turned off and the red &#34;no calibration&#34; lamp is turned on. If block 232&#39; determines that the laser calibration mode flag is set then control passes to block 234&#39; where the green laser calibration lamp is turned on and block 228&#39; where the red &#34;no calibration&#34; lamp is turned off. Control then passes to block 235a&#39; in FIG. 14c. The control algorithm up to this point is essentially the same as in the previous embodiment. 
     In block 235a&#39; (FIG. 14c) the computer repetitively examines lines 118&#39;, 120&#39;, 122&#39; and 126&#39; to determine whether successive readings are within a predetermined tolerance. If they are not within this tolerance, then it is concluded that the angle sensors are in motion and thus incapable of providing an accurate output. Control passes to block 235b&#39; where the DEPTH display is darkened to advise the operator of this status. Control then passes back to block 235a&#39;. When it is determined in block 235a&#39; that successive readings are within the tolerance then it is concluded that the angle sensors have settled to the extent that they are capable of providing accurate outputs. Control passes to block 235c&#39; where the green VALID lamp 182&#39; is illuminated, to indicate to the operator that the displayed DEPTH reading is valid, and the display is enabled in order to display the depth value which is determined as described below. Control then passes to block 236&#39;. 
     In block 236&#39;, the computer is instructed to sample lines 118&#39;, 120&#39;, 122&#39; and 126&#39; to determine the instantaneous values of the output representations from boom absolute angle sensor 60&#39;, stick absolute angle sensor 62&#39;, bucket absolute angle sensor 64&#39; and cab verticality sensor 61&#39; which have been converted to digital form. Control then passes to block 238&#39; where the control converts PNDBOOM to SINBOOM by a conventional digital processing technique. A similar conversion of PNDSTIK to SINSTIK and PNDBUCK to SINBUCK are performed utilizing conventional techniques. 
     After the conversion has taken place in block 238&#39;, control passes to block 240&#39; where the control arithmetically multiplies the value of SINBOOM obtained in block 238&#39; by the value of LENBOOM, stored as a constant in ROM 133, to obtain HTBOOM. 
     Control then passes to block 242&#39; where, in the same manner, the control arithmetically multiplies the value of SINSTIK by LENSTIK to obtain HTSTIK. Control then passes to block 244&#39; where LENCAB is multiplied by the sine of the difference between CAVERT and ANGVERT to determine the vertical offset in the cab (HTCAB), and hence the origin, caused by rotation of the cab while the frame is on a nonlevel surface and the horizontal spacing between the cab pivot 31&#39; and the boom pivot 32&#39;. 
     Control then passes to block 250&#39;, and the status of a plurality of flags associated with configuration switch 168&#39; are examined to determine the position that switch 168&#39; is in. Control then passes to block 252&#39; where the value of LENBUCK, corresponding to the position of switch 168&#39; and stored in ROM 133, is loaded into the LENBUC register. Control then passes to block 254&#39; where the value of SINBUCK obtained in block 238&#39; is multiplied by the value of LENBUCK to obtain HTBUCK. 
     Control then passes to block 256&#39; where the previously established values of HTBOOM, HTSTIK and HTBUCK are algebraically combined, or added, to obtain the value of HTREL. Control then passes to blocks 257&#39; where the value of HTREL is algebraically combined with HTCAB to obtain CHTREL. Control then passes to block 258&#39; where the previously established value of CHTREL is algebraically subtracted from the value of HTORIG to obtain HTACT. Either CHTREL or HTACT are displayed by the DEPTH display depending upon the position of switches 189&#39; and 191&#39;. 
     Control then passes to block 260&#39; (FIG. 14d) where the computer examines the status of the grade flag to determine if it is set. If it is determined that the grade flag is not set, then control passes to block 202&#39; (FIG. 14a) to begin another pass through the program. If it is determined in block 260&#39; that the grade flag is set, then control passes to block 286&#39; where the control calculates the value of WDBOOM by determining the cosine of the value of PNDBOOM and multiplying it by LENBOOM. From block 286&#39;, control moves to a block 288&#39; where the value of WDSTIK is obtained in a like manner but using the cosine of PNDSTIK and multiplying it by LENSTIK. Control then passes to block 290&#39; where the value of WDBUCk is obtained in a like manner but using PNDBUCK and LENBUCK. 
     Control then passes to block 292&#39;, where the previously calculated values of WDBOOM, WDSTIK and WDBUCK are algebraically combined to create the value WDREL, which is proportional to the horizontal distance from boom pivot 32&#39; to the cutting edge 50&#39;. Control then passes to block 294&#39; where the value of WDREL is subtracted from the value of WDORIG to obtain the value WDACT which represents the horizontal distance of the cutting edge from the position it was in the most recent instant the laser receiver crossed the laser plane, i.e., at calibration. 
     Control then passes to block 296&#39;, where the distance between the cutting edge and the laser plane (GHACT) is determined by adjusting the value of HTACT according to the horizontal distance the cutting edge is from the position it occupied at the immediately previous calibration (WDACT) and the percentage grade number entered by the operator (PERGRAD). The resulting value represents the actual depth with respect to the laser plane which is sloped with respect to true horizontal. Therefore, this value varies during grade excavation according to the horizontal position of the cutting edge 50&#39;. When the grade flag is set, GHACT is displayed on display 180&#39;, rather than HTACT or CHTREL. Control then passes to block 202&#39; in FIG. 14a. 
     Whenever the laser receiver is contacted by a laser beam, the microcomputer 104&#39; receives an interrupt signal on line 102&#39; which causes it to interrupt the operation of the main control program in FIG. 14 and performs the interrupt routine shown in FIGS. 15a and 15b. In contrast to the previous embodiment, the pendulum type of angle sensors in the present embodiment requires the operator to pause with the laser receiver in the laser plane to effect laser calibration. However, this requirement also allows a reduction in the number of individual receptor cells 74&#39; because calibration will not occur with the laser receiver in motion. 
     Receipt of the interrupt signal on line 102&#39; in block 300&#39; causes the microcomputer to examine lines 118&#39;, 120&#39;, 122&#39; and 126&#39; to obtain the value of the outputs or representations from sensors 60&#39;, 61&#39;, 62&#39; and 64&#39;. In block 301a&#39;, the computer repetitively examines the lines to determine whether successive readings are within a predetermined tolerance. If they are not within this tolerance then it is concluded that the angle sensors are in motion. Control then passes to block 301b&#39; where the VALID light is blinked to advise the operator of this status. Control then passes back to block 301a&#39;. When it is determined in block 301a&#39; that successive readings are within the tolerance, control passes to block 301c&#39; where the green VALID lamp is illuminated in order to indicate to the operator that the unit is being calibrated. 
     Control then passes to block 302&#39; where the values on lines 118&#39;, 120&#39;, 122&#39; and 126&#39; are loaded into their respective registers. Control then passes to block 306&#39; where the value of CBDIST obtained on line 94&#39;, simultaneous with the interrupt signal, is examined. The value CBDIST is the assigned number of the median laser receptor cell at the instant of the laser flash and is proportionate to the height on the receiver that the laser beam strikes the receiver. 
     In block 308&#39;, the values of IPBOOM, IPSTIK, and LNSTIK are used to determine the vertical distance of the reference point on the stick from the origin using the same control procedure used in blocks 238&#39; to 242&#39; except that the value of LNSTIK is substituted for LENSTIK. DSLSR is converted to HTLSR in block 309&#39; by multiplication by the cosine of IPSTIK. Control then passes to block 310&#39; where the value of HTLSR, determined in block 309&#39;, is algebraically added to the height of the stick reference point relative to the origin in order to obtain the calibration number of HTORIG. The value of HTORIG will be stored in its respective register and represents the vertical distance of the origin from the laser plane. 
     Control then passes to block 312&#39; where the control determines whether the grade flag is set. If it is determined in block 312&#39; that the grade flag is set, then control passes to block 314&#39; where the horizontal distance of the cutting edge from the origin (WDORIG) is determined by using the values of IPBOOM, IPSTIK, and IPBUCK along with the procedure in blocks 286&#39; through 292&#39;. 
     Control then passes to block 318&#39; where the laser calibration mode flag is set and the counter that monitors the time between calibration operations is reset. Control then returns to the point in the main loop where it had exited. 
     Manual calibration, i.e., use of the system without a laser establishing a reference plane, is available with the alternative embodiment. The routine is the same as in the primary embodiment except that provision must be made to assure that the angle sensors have settled before calibration is effected. 
     Of course, it is understood that the above embodiments are merely illustrative of the invention. Changes and modifications in the specifically described embodiments can be carried out without departing from the scope of the invention. For example, the calibration technique could be utilized with commercially available angular displacement encoders provided for monitoring the angles between the excavator members. Also, the use of linear encoders monitoring the length of cylinders to obtain a representation of angular displacement could be utilized in other control systems. One skilled in the art may choose to store various trigonometric tables in the lookup tables and apply the signals derived from the cylinder length encoders to the tables after some initial calculating steps. Similarly, the lookup table approach to real-time solutions of complicated algorithms may be used in other applications. 
     In addition, the desired cutting depth technique could be combined with other inputs to, for example, avoid coming into contact with underground or overhead cables. It additionally may be desirable to monitor the rate of change of the extension of the hydraulic cylinders to modulate the proportional hydraulic valve in order to more closely control the approach of the cutting edge to the desired depth according to the rate of movement of the stick and bucket under manual control. 
     It is to be emphasized that the invention is usable with other known excavator control techniques, such as ones that memorize and repeat a particular routine such as loading dirt to a truck, and cause the bucket to be returned to the trench. The invention is intended to encompass all such variations and to be limited only by the scope of the appended claims and all equivalents to which are entitled as a matter of law.