BACKGROUND OF THE INVENTION
[0001] The present invention relates generally to earthmoving machines, and more particularly
to automatic blade slope control.
[0002] Construction machines referred to as earthmoving machines are used to shape a plot
of land into a desired ground profile. Examples of earthmoving machines include bulldozers
and motor graders. Bulldozers are used primarily for coarse movement of earth: motor
graders are used primarily for fine control of the final ground profile. Bulldozers
and motor graders are equipped with a blade to move earth. The blade position and
blade attitude are adjustable. Blade position can be specified by parameters such
as blade elevation and blade sideshift. Blade attitude can be specified by parameters
such as blade tip angle and blade slope angle.
[0003] Blade position and blade attitude are often manually controlled by a machine operator.
To improve operational speed and precision, automatic control is desirable. Various
automatic control systems have been deployed. They vary in complexity, cost, number
of parameters controlled, response time, and precision.
US 2009/0069987 A1 discloses a method and apparatus for controlling the blade elevation and blade slope
angle of a dozer blade. Elevation and slope angle measurements are calculated from
measurements received from a global navigation satellite system (GNSS) antenna and
an inertial measurement unit mounted on the dozer blade. The inertial measurement
unit includes three orthogonally placed accelerometers and three orthogonally placed
rate gyros. The measurements are processed by algorithms to calculate estimates of
the blade elevation, blade vertical velocity, blade slope angle, and blade slope angular
velocity. These estimates are then provided as inputs to a control algorithm which
provides control signals to control a dozer hydraulic system which controls the blade
elevation and blade slope angle.
BRIEF SUMMARY OF THE INVENTION
[0004] The invention is defined in the independent claims 1,13 and 14. Preferred embodiments
are defined in the dependent claims. A blade mounted on a vehicle is automatically
controlled based on measurements received from a three-axis gyroscope and two tilt
sensors mounted on the blade. Measurements from the three-axis gyroscope include angular
velocity measurements about three orthogonal axes. Measurements from the two tilt
sensors include a blade slope angle and a blade tip angle. Measurements from the three-axis
gyroscope and the two tilt sensors are fused. The three-axis gyroscope and the tilt
sensors are not synchronized. Algorithms for proper fusion of the measurements account
for the time sequence of the measurements. A measurement from a tilt sensor is not
fused with measurements from the three-axis gyroscope if the measurement from the
tilt sensor is older than the measurements from the three-axis gyroscope. A measurement
from a tilt sensor is also not fused with measurements from the three-axis gyroscope
if the measurement from the tilt sensor is invalid due to mechanical disturbances.
[0005] An estimate of the blade slope angle is computed from properly fused measurements.
The blade slope angle is controlled based on a reference blade slope angle and the
computed estimate of the blade slope angle. A proportional-derivative control algorithm
or a proportional control algorithm can be used.
[0006] Data processing algorithms and control algorithms can be stored as computer-executable
code stored on a computer readable medium and executed by a computational system.
A control signal outputted by the computational system can control a hydraulic system
that controls the blade slope angle.
[0007] These and other advantages of the invention will be apparent to those of ordinary
skill in the art by reference to the following detailed description and the accompanying
drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008]
Fig. 1A and Fig. 1B show a side view and a top view, respectively, of a motor grader;
Fig. 2 shows reference coordinate systems;
Fig. 3A and Fig. 3B show the definition of blade slope angle and blade tip angle,
respectively;
Fig. 4A and Fig. 4B show two mounting configurations for a sensor unit;
Fig. 5A shows a schematic of a proportional-derivative control algorithm for automatic
blade slope control;
Fig. 5B shows a schematic of a proportional control algorithm for automatic blade
slope control;
Fig. 6A shows a schematic of a blade slope estimator module for a proportional-derivative
control algorithm;
Fig. 6B shows a schematic of a blade slope estimator module for a proportional control
algorithm;
Fig. 7A - Fig. 7C show flowcharts of a method for sensor processing; and
Fig. 8 shows a schematic of a computational system for implementing an automatic blade
slope control system.
DETAILED DESCRIPTION
[0009] Earthmoving machines, such as bulldozers and motor graders, are equipped with a blade
to move earth. The blade position and blade attitude are controlled to shape the ground
to a desired profile. The blade position and blade attitude can be controlled manually
by a machine operator or automatically by an automatic blade control system. Combinations
of manual and automatic control are often used. The blade parameters placed under
automatic control are dependent on the application, type of earthmoving machine, desired
precision, response time, and the complexity and cost of the automatic control system.
[0010] For a motor grader, primary blade parameters to be controlled are the blade slope
angle and the blade elevation. Fig. 1A and Fig. 1B show a side view and a top view,
respectively, of a motor grader 100. The motor grader 100 includes an engine 102,
a cabin 104, and a front frame structure 106. The engine 102 is located at the rear
of the motor grader 100, and the front frame structure 106 is located at the front
of the motor grader 100. A machine operator (not shown) is seated in the cabin 104
and operates the motor grader 100.
[0011] A drawbar 108 is connected to the front frame structure 106 via a ball joint, and
a blade 110 is mounted on the drawbar 108. The drawbar is also connected to three
hydraulic cylinders: the right lift cylinder 112, the left lift cylinder 114, and
the centershift cylinder 116. Note: "right" and "left" are specified with respect
to the machine operator. The three hydraulic cylinders are connected to the front
frame structure 106 via a coupling 118. The elevation and the slope angle of the blade
110 are controlled by the right lift center 112 and the left lift center 114. The
centershift cylinder 116 is used to laterally shift the drawbar 108 relative to the
front frame structure 106. The tip angle of the blade 110 is controlled by a fourth
hydraulic cylinder, denoted the blade tip angle control cylinder 120. The blade slope
angle and the blade tip angle are described in more detail below.
[0012] Fig. 2 shows the reference frames used in the control algorithms described below.
The navigation frame 210 is a Cartesian coordinate system used as a local navigation
frame. The origin of the navigation frame 210 is denoted
On 211, and the axes are denoted North-East-Up (NEU). The NEU axes are also denoted
Xn-axis 212,
Yn-axis 214, and
Zn-axis 216, respectively. The
Xn-Yn plane is referred to as a local reference plane 202. The local reference plane 202
(also referred to as a local level plane) and the origin
On 211 are defined, for example, by a site engineer. A common practice is to define
the local reference plane 202 such that the
Zn-axis 216 is parallel to the local gravitational force vector. In some practices,
the local reference plane 202 is tangent to the World Geodetic System (WGS-84) Earth
ellipsoid or parallel to the tangent plane.
[0013] The blade frame 220 is a Cartesian coordinate system fixed with respect to the blade
110. The top edge of the blade 110 is denoted the blade top edge 110T. The bottom
edge of the blade 110 is denoted the blade bottom edge 110B. The origin of the blade
frame 220 is denoted
Ob 221, and the axes are denoted
Xb-axis 222,
Yb-axis 224, and
Zb-axis 226. The positive direction of the
Xb-axis 222 points away from the front surface of the blade 110. Note that the navigation
frame 210 and the blade frame 220 both follow the left-hand rule.
[0014] The blade angular rotation rates about the
Xb-axis 222,
Yb-axis 224, and
Zb-axis 226 are denoted
ωx 232,
ωy 234, and
ωz 236, respectively. To simplify the notation, the subscript
b in the blade angular rotation rates is omitted. The position of the origin
Ob 221 with respect to the blade 110 is defined by a user such as a control engineer.
The orientation of the
Xb-axis 222,
Yb-axis 224, and
Zb-axis 226 with respect to the blade 110 is defined by a user. Typically, to simplify
equations used in control algorithms, it is advantageous to align the
Yb-axis 224 parallel to the blade bottom edge 110B.
[0015] Refer to Fig. 3A. The blade slope angle, denoted
α 302, is defined as the angle of the blade bottom edge 110B relative to the local
reference surface 202 in the navigation frame 210.
[0016] Refer to Fig. 3B. The blade tip angle, denoted
β 304, is defined as the angle that the blade top edge 110T is tipped ahead of or behind
the blade bottom edge 110B. The
Zb-axis 226 is aligned such that it intersects the blade bottom edge 110B and the blade
top edge 110T. The blade tip angle
β 304 is the angle of the
Zb-axis 226 with respect to the
Zn-axis 216 in the navigation frame 210.
[0017] In an embodiment of a blade control system, the machine operator manually controls
the blade tip angle
β 304 by shifting the blade tip angle control cylinder 120 (Fig. 1A) forward and backward,
and an automatic blade slope control system automatically controls the blade slope
angle
α 302. Note that both the blade tip angle
β 304 and the blade slope angle
α 302 can be intentionally varied during a grading operation.
[0018] To control the blade slope angle under dynamic motion, accurate and fast estimation
of the blade slope angle is necessary. Tilt sensors are widely used for estimating
the blade slope angle. In general, a tilt sensor measures an inclination angle with
respect to the local reference surface by sensing the local gravitational force vector.
Various types of tilt sensors are available; for example, microelectromechanical systems
(MEMS) transducers and liquid inclinometers.
[0019] Although tilt sensors can provide accurate and stable blade slope angle measurements,
they have two major drawbacks. First, tilt sensors show slow response to rapid and
large changes of the blade slope angle. The slow response time in the blade slope
angle measurement is due to the internal filters used to reduce noise; these filters
limit the response time and the control speed. Second, tilt sensors work properly
only under a limited range of dynamic motion. As discussed above, tilt sensors sense
the local gravitational force vector to measure the blade slope angle. A high dynamic
motion, however, induces additional acceleration components on the tilt sensors. These
additional acceleration components perturb the sensing of the local gravitational
force vector and results in errors in the blade slope angle measurement. The vulnerability
to high dynamic motions degrades the performance of the control systems under high
dynamic motions of the motor grader (or other earthmoving machine). High dynamic motions
can result, for example, from sudden braking or turning.
[0020] In an embodiment, the drawbacks of tilt sensors are overcome by combining tilt sensors
with a three-axis gyroscope, which provides angular rotation measurements from three
orthogonally-placed rate gyros. A three-axis gyroscope can be assembled in various
configurations: as an integrated three-axis unit, as a combination of a single-axis
unit and a two-axis unit, or as a combination of three single-axis units. A three-axis
gyroscope generally provides attitude measurements with a high sampling rate by integrating
the outputs from the three orthogonally-placed rate gyros. Examples of rate gyros
include microelectromechanical systems (MEMS) and fiber-optic units. For earthmoving
machines, MEMS units are advantageous because of their ruggedness and low cost. In
contrast to a tilt sensor, a three-axis gyroscope shows significantly less delay in
the attitude measurement, and the attitude measurement is not degraded by dynamic
motions that occur during operation. A three-axis gyroscope does have a significant
drawback, however. Any sensor errors are accumulated in the computation of the attitude,
and attitude errors are potentially unbounded.
[0021] By integrating tilt sensors and a three-axis gyroscope, tilt sensor measurements
that have long-term accuracy and stability compensate for the gyroscope errors. A
three-axis gyroscope, in turn, provides attitude measurements with small delays and
high sampling rates; these attitude measurements retain high short-term accuracy regardless
of dynamic motion.
[0022] In addition to the improvement in the attitude measurements, a combination of tilt
sensors and a three-axis gyroscope permits an automatic blade slope control system
to use a proportional-and-derivative (PD) control algorithm. In an embodiment, a PD
control algorithm uses parameters (discussed in detail below) calculated from the
blade slope angle measured by one tilt sensor, the blade tip angle measured by a second
tilt sensor, and the blade angular rotation rates measured by a three-axis gyroscope.
The blade angular rotation rate feedback in the controller advantageously increases
the speed of the blade slope angle control while maintaining accuracy and stability.
As described below, measurements from two tilt sensors are used because of coupling
between the blade tip angle and the blade slope angle when performing transformations
between the navigation frame and the blade frame.
[0023] In the embodiment shown in Fig. 4A, a sensor unit 402 is mounted on the back of the
blade 110. The sensor unit 402 includes two tilt sensors and a three-axis gyroscope
(not shown). The first tilt sensor is mounted such that it measures the blade slope
angle
α 302 in the navigation frame 210 (Fig. 3A). The second tilt sensor is mounted such
that it measures the blade tip angle
β 304 in the navigation frame 210 (Fig. 3B). The three-axis gyroscope includes three
orthogonally-placed rate gyros. The sensitive axis of the first, second, and third
rate gyros coincide with the
Xb-axis 222,
Yb-axis 224, and
Zb-axis 226, respectively, in the blade frame 220 (Fig. 2). The first, second, and third
rate gyros measure the blade angular rotation rates
ωx 232,
ωy 234, and
ωz 236, respectively, in the blade frame 220.
[0024] In the embodiment shown in Fig. 4B, the sensor unit 402 is mounted on a post 404
attached to the blade 110. The post 404 can be installed specifically for the sensor
unit 402. The post 404 can also be used for the mounting of other measurement equipment.
In the example shown in Fig. 4B, an antenna 406 is mounted on the post 404. The antenna
406 is used to receive global navigation satellite system (GNSS) signals when a GNSS
is deployed to measure the position of the blade 110. In another example, an optical
receiver (not shown) is mounted on the post 404 when a laser system is deployed to
measure the elevation of the blade 110.
[0025] Herein, a sensor fixed to the blade 110 refers to a sensor whose position and orientation
are fixed relative to the blade frame 220. A sensor fixed to the blade 110 can be
mounted directly on the blade 110 (Fig. 4A) or mounted on a support rigidly attached
to the blade 110 (for example, the post 404 in Fig. 4B). In Fig. 4A and Fig. 4B, the
tilt sensors and the three-axis gyroscope are shown as a single assembly, the sensor
unit 402. In other embodiments, the tilt sensors and the three-axis gyroscope are
configured as separate assemblies. If tilt sensors are already fixed to the blade
for a previous measurement or control system, a three-axis gyroscope can be separately
fixed to the blade. Costs can therefore be reduced by using the existing tilt sensors.
[0026] Schematic diagrams of an automatic blade slope control system according to an embodiment
are shown in Fig. 5A and Fig. 6A. Fig. 5A shows a schematic of a proportional-and-derivative
(PD) control algorithm for the blade slope angle
α 302. Control signal
uα 507 is inputted into a hydraulic system 530 that controls the hydraulic cylinders
in the motor grader 100 (Fig. 1A and Fig. 1B). Hydraulic systems are well known in
the art, and details are not described herein. As discussed above, the blade elevation
and the blade slope angle
α 302 are controlled by the right lift cylinder 112 and the left lift cylinder 114.
In general, both the right lift cylinder 112 and the left lift cylinder 114 can be
adjusted to control the blade elevation, and both the right lift cylinder 112 and
the left lift cylinder 114 can be adjusted to control the blade slope angle
α 302. In an embodiment, one cylinder (referred to as the blade elevation control cylinder)
is used to control the blade elevation and the other cylinder (referred to as the
blade slope angle control cylinder) is used to control the blade slope angle
α 302. In one convention, the right lift cylinder 112 serves as the blade elevation
control cylinder and the left lift cylinder 114 serves as the blade slope angle control
cylinder; however, the roles of the two cylinders can be interchanged.
[0027] In an embodiment, the control signal
uα 507 is an electrical signal that controls an electrically-controlled valve in the
hydraulic system 530. The hydraulic system 530 controls the displacement of the blade
slope angle control cylinder 532 that controls the blade slope angle
α 302 of the blade 110. The sensor unit 402 fixed to the blade 110 sends a sensor signal
513, a sensor signal 515, and a sensor signal 517 to the blade slope estimator module
540. Further details are described below. The blade slope estimator module 540 refers
to a functional module. Implementation of the functional module is discussed below.
[0028] The sensor signal 513, the sensor signal 515, and the sensor signal 517 provide raw
measurements that include errors. The blade slope estimator module 540 performs computations
that reduce various errors. The outputs of the blade slope estimator module 540 are
output 531, which represents the blade angular rotation rate estimate
ω̃x about the
Xb-axis 222, and output 533, which represents the blade slope angle estimate
α̃. Estimates are discussed below.
[0029] The control signal
uα 507 is calculated as follows. The input
αref 501 represents the reference (desired) value of the blade slope angle. The input
αref 501 can be intentionally varied during different stages of a grading operation. In
one embodiment,
αref 501 is manually inputted by a machine operator or a site engineer. In another embodiment,
a mathematical model of the desired terrain profile is generated, and the values of
αref 501 are automatically computed based on the current blade position in the terrain
model.
[0030] At operation 520, the blade slope angle estimate
α̃ 533, computed by the blade slope estimator module 540, is subtracted from the reference
blade slope angle
αref 501 to yield the blade slope angle error
εα 503. At operation 522, the blade slope angle error
εα 503 is multiplied by the proportional control gain
Kp to yield the product
Kpεα 505. At operation 526, the blade angular rotation rate estimate
ω̃x 531 about the
Xb-axis 222, computed by the blade slope estimator module 540, is multiplied by the
velocity control gain
Kv to yield the product
Kvω̃x 535. At operation 524, the product
Kvω̃x, 535 is subtracted from the product
Kpεα 505 to yield the control signal
uα 507. The goal of the PD control algorithm is to maintain the blade slope angle error
εα 503 within user-defined limits. These limits are defined, for example, by a site
engineer or control engineer.
[0031] Refer to Fig. 6A. Shown are the sensor unit 402 and the blade slope estimator module
540. The sensor unit 402 includes a blade slope angle tilt sensor 602, a blade tip
angle tilt sensor 604, and a three-axis gyroscope 606. Measurements outputted by the
sensor unit 402 are referred to as raw measurements. The blade slope estimator module
540 includes a sensor pre-processing module 610, a sensor processing module 612, and
a gyro bias calibration module 614. The sensor pre-processing module 610, the sensor
processing module 612, and the gyro bias calibration module 614 refer to functional
modules. Implementation of the functional modules are described below.
[0032] The blade slope angle tilt sensor 602 measures the blade slope angle in the navigation
frame 210. The output of the blade slope angle tilt sensor 602 is denoted the blade
slope angle
αtilt. Due to factors such as measurement errors and measurement delays, this raw value
in general can differ from the true value of the blade slope angle
α 302. This raw value is transmitted in the sensor signal 513 from the sensor unit
402 to the blade slope estimator module 540.
[0033] The blade tip angle tilt sensor 604 measures the blade tip angle in the navigation
frame 210. The output of the blade tip angle tilt sensor 604 is denoted the blade
tip angle
βtilt. Due to factors such as measurement errors and measurement delays, this raw value
in general can differ from the true value of the blade tip angle
β 304. This raw value is transmitted in the sensor signal 515 from the sensor unit
402 to the blade slope estimator module 540.
[0034] The three-axis gyroscope 606 measures the blade angular rotation rates
ωx 232,
ωy 234, and
ωz 236 about the X
b-axis 222,
Yb-axis 224, and
Zb-axis 226, respectively, in the blade frame 220 (Fig. 2). The raw blade angular rotation
rates [denoted as (
ωgyro,x,
ωgyro,y, ωgyro,z)] are transmitted in the sensor signal 517 from the sensor unit 402 to the blade
estimator module 540.
[0035] The (
ωgyro,x, ωgyro,y,,
ωgyro,z) values are inputted into the sensor pre-processing module 610, which computes estimates
of the parameters that represent the current blade attitude. In an embodiment, Euler
angles (roll angle
φ, pitch angle
θ, and yaw angle
Ψ) are used to represent the current blade attitude. In another embodiment, a quaternion
is used to represent the current blade attitude.
[0036] Details of computing the estimates of the Euler angles are discussed below. The output
601 of the sensor pre-processing module 610 includes the computed roll angle estimate
φgyro and the computed pitch angle estimate
θgyro; these values are inputted into the sensor processing module 612. Under specific
conditions, as discussed below, the sensor processing module 612 fuses the computed
roll angle estimate
φgyro and the computed pitch angle estimate
θgyro with the blade slope angle
αtilt measured by the blade slope angle tilt sensor 602 and the blade tip angle
βtilt measured by the blade tip angle tilt sensor 604. The sensor processing module 612
computes the blade slope angle estimate
α̃, the
Xb-axis blade angular rotation rate estimate
ω̃x, the corrected roll angle estimate
φ̃, the corrected pitch angle estimate
θ̃ , the
Xb-axis corrected gyro bias estimate
G̃bx, and the
Yb -axis corrected gyro bias estimate
G̃by. Further details of the sensor processing module 612 are described below.
[0037] The fusion of the data collected from the blade slope angle tilt sensor 602, the
blade tip angle tilt sensor 604, and the three-axis gyroscope 606 can provide corrections
to the estimates computed from the three-axis gyroscope 606 alone. The corrected values
are referred to as corrected estimates since there are residual errors; that is, the
corrected values in general can differ from the true values. Gyro biases refer to
offset errors in the measurements from the three-axis gyroscope 606; determination
of the gyro biases is discussed in further detail below.
[0038] The output 603 of the sensor processing module 612 represents the corrected estimates
φ̃,
θ̃, G̃bx, and
G̃by; output 603 is fed back to the sensor pre-processing module 610 to improve the accuracy
of subsequent estimates of
φgyro and
θgyro. Further details of the sensor pre-processing module 610 are described below. The
output 605 of the sensor processing module 612 represents the
G̃bx value; output 605 is inputted into the gyro bias calibration module 614. The output
533 of the sensor processing module 612 represents the blade slope angle estimate
α̃.
[0039] The gyro bias calibration module 614 receives the
G̃bx value from the sensor processing module 612 and the raw
ωgyro,x value measured by the three-axis gyroscope 606. The output 531 of the gyro bias calibration
module 614 represents the blade angular rotation rate estimate
ω̃x The blade angular rotation rate estimate
ω̃x is computed by subtracting
G̃bx from
ωgyro,x.
[0040] The outputs of the blade slope estimator module 540 are output 533, which represents
the blade slope angle estimate
α̃, and output 531, which represents the blade angular rotation rate estimate
ω̃x. These values are used in the proportional-and-derivative control algorithm shown
in Fig. 5A, as described above.
[0041] Details of the Euler angle computation in the sensor pre-processing module 610 are
described as follows. The blade frame 220 is generated from the navigation frame 210
(Fig. 2) through successive rotations of angles, referred to as Euler angles and denoted
as roll angle
φ, pitch angle
θ, and yaw angle
Ψ:
- (1) Start with the initial navigation frame 210 with (Xn, Yn, Zn) axes. Denote this reference frame as RF0 with (X0 = Xn,Y0 = Yn,Z0 = Zn) axes.
- (2) Rotate RF0 about the Z0-axis through the angle Ψ. Denote the resulting reference frame as RF1 with (X1,Y1,Z1 = Z0) axes.
- (3) Rotate RF1 about the Y1-axis through the angle θ. Denote the resulting reference frame as RF2 with (X2,Y2 =Y1,Z2) axes.
- (4) Rotate RF2 about the X2-axis through the angle φ. Denote the resulting reference frame as RF3, with (X3 = X2, Y3,Z3)
Note: In steps (2) - (4), the origin of the reference frames remains fixed at
On 211 (Fig. 2). The blade frame 220 is generated from
RF3, by translating the origin from
On 211 to
Ob 222. Since the PD control algorithms use only the Euler angles, however, the translation
can be neglected.
[0042] Using these Euler angles, the blade slope angle
α and the blade tip angle
β are computed as follows:

[0043] During a grading operation, in general, the actual blade slope angle varies from
the reference blade slope angle. The values of the blade slope angle and the blade
tip angle measured by the tilt sensors and the values of the blade angular rotation
rates measured by the three-axis gyroscope in general are functions of time. Measurements
from the tilt sensors and the three-axis gyroscope are sampled at specific times.
The number of samples per unit time is referred to as the sampling rate; and the time
interval between successive samples is referred to as the sampling interval. Typically,
the sampling rate of the three-axis gyroscope is greater than the sampling rate of
the tilt sensors.
[0044] In the sensor pre-processing module 610, the Euler angles are updated every time
new measurements (samples) from the three-axis gyroscope 606 are obtained. The Euler
angles based on the three-axis gyroscope measurements are computed as follows. First,
the initial values of the Euler angles and biases on the rate gyros in the three-axis
gyroscope 606 are estimated. For this estimation, the control system requests a certain
period of initialization time during which the blade stays motionless. Theoretically,
because the blade stays motionless, the three-axis gyroscope 606 should output blade
angular rotation rates of zero during this period (ignoring the effect of the Earth's
rotation). Because of random noise and bias, however, the measurements are generally
noisy and biased. The initial bias estimate on each rate gyro (
G̃bx,0 for the
Xb-axis gyro,
G̃by,0 for the
Yb-axis gyro, and
G̃bz,0 for the
Zb-axis gyro) is estimated by averaging the blade angular rotation rate measurements
over this initialization period.
[0045] The biases can vary as a function of time. The variation is substantial in MEMS gyroscopes
in particular. To improve the accuracy of the blade slope angle estimate, therefore,
the current biases are estimated by the sensor processing module 612, as described
below.
[0046] The initial estimate of the yaw angle (
Ψgyro,0) can be set to an arbitrary value such as zero because the blade slope angle and
the blade tip angle are independent of yaw angle, as shown in (E1) and (E2). The initial
estimate of the pitch angle (
θgyro,0) is estimated by averaging the measurements of the blade tip angle tilt sensor 604
over the initialization period. The initial value of the roll angle (
φgyro,0) is then estimated according to the following equation:

where
α is the average of the measurements of the blade slope angle tilt sensor 602 over
the initialization period.
[0047] Once the initial values of the Euler angles and the gyro biases have been set, the
Euler angle estimates are updated by a method using a rotation matrix. The rotation
matrix
Ct at time
t is given as follows with the Euler angle estimates (
φgt,θgt,Ψgt) at time
t :

The following compact notation is used:
ρgt =
ρgyro(
t), where
ρgt is an estimate of an arbitrary function
ρ computed from values of (
ωgyro,x(
t),
ωgyro,y(
t),
ωgyro,z(
t)) outputted by the three-axis gyroscope 606 at time
t. In compact notation, (
ωgyro,x(
t),
ωgyro,y(
t),
ωgyro,z(
t)) are denoted (
ωgxt, ωgyt, ωgzt)
.
[0048] The measurements (
ωgxt, ωgyt,
ωgzt) are updated by the three-axis gyroscope 606 at discrete time instants τ
=(
...,t-2,
t-1
,t,t+1
,t+2,....), where
τ is the system time (for example, referenced to a system clock). These discrete time
instants are also referred to as the sampling times of the three-axis gyroscope 606.
The time interval between time instants is the sampling interval Δ
t. Every time new measurements (
ωgxt,
ωgyt,
ωgzt) from the three-axis gyroscope 606 are obtained, the rotation matrix is updated.
[0049] The update of the rotation matrix from
t to
t+1 is calculated as follows:

where I is the 3×3 identity matrix. σ
2 and [σ×] are given as follows:

[0050] Then, new Euler angles are computed from the new rotation matrix as follows:

where
cij represents the (
i,j) element in the rotation matrix.
[0051] After updating the Euler angles, the sensor pre-processing module 610 outputs the
computed roll angle estimates
φgyro and the computed pitch angle estimate
θgyro. From these two values, as shown below, the blade slope angle estimate
α̃ can be computed. In principle, the accuracy of the blade slope angle estimate
α̃ can be improved by fusing the computed roll angle estimate
φgyro and the computed pitch angle estimate
θgyro with the blade slope angle
αtilt measured by the blade slope angle tilt sensor 602 and the blade tip angle
βtilt measured by the blade tip angle tilt sensor 604 (as shown below). In practice, however,
fusion of the data is not straightforward because the sensors are not synchronized
and because tilt sensors are not accurate during strong dynamic motion. These factors
are discussed below.
[0052] In general, the sampling rate of a three-axis gyroscope is higher than the sampling
rate of a tilt sensor. Furthermore, in general, the three-axis gyroscope 606, the
blade slope angle tilt sensor 602, and the blade tip angle tilt sensor 604 are not
synchronized. If data from the three-axis gyroscope 606 is fused with out-of-date
data from the blade slope angle tilt sensor 602 or the blade tip angle tilt sensor
604, resulting estimates can have large errors.
[0053] As discussed above, tilt sensors are vulnerable to high dynamic motions, whereas
three-axis gyroscopes are relatively immune to high dynamic motions. If data from
the three-axis gyroscope 606 is fused with inaccurate data from the blade slope angle
tilt sensor 602 or the blade tip angle tilt sensor 604, resulting estimates can have
large errors.
[0054] Sensor fusion (the fusion of data from multiple sensors) can be performed by various
filters. As discussed above, the blade slope angle estimate
α̃ is computed from the computed roll angle estimate
φgyro and the computed pitch angle estimate
θgyro.Therefore, the accuracy of the blade slope angle estimate is dependent on the accuracy
of
φgyro and
θgyro. The accuracy of
φgyro and the accuracy of
θgyro are dependent on the accuracy of the gyro bias estimates. Furthermore, the accuracy
of the blade angular rotation rate estimate
ω̃x is dependent on the accuracy of the gyro bias estimate
G̃bx. To obtain an accurate blade slope angle estimate and an accurate blade angular rotation
rate estimate, therefore, the sensor fusion should provide accurate corrections on
all of the computed roll angle estimate
φgyro, the computed pitch angle estimate
θgyro, the
Xb-axis gyro bias estimate, and the
Yb-axis gyro bias estimate.
[0055] There are two available observations for the sensor fusion filter: the blade slope
angle
αtilt and the blade tip angle
βtilt measured by the blade slope angle tilt sensor and the blade tip angle tilt sensor,
respectively. On the other hand, there are four parameters which should be estimated
by the filter: the corrections on the computed roll angle estimate, the computed pitch
angle estimate, the
Xb-axis gyro bias estimate, and the
Yb-axis gyro bias estimate. Therefore, the filter should work on single or multiple
dynamic system models that relate the errors on the roll angle, the pitch angle, the
Xb-axis gyro bias, and the
Yb-axis gyro bias with the blade slope angle and the blade tip angle. Kalman filters
or particle filters are examples of suitable filters which are designed based on a
dynamic system model.
[0056] Fig. 7A - Fig. 7C show a flowchart of an algorithm, according to an embodiment, performed
by the sensor processing module 612. Reference marks shown as an alphabetical character
inside a hexagon are used to maintain continuity among Fig. 7A - Fig. 7C. The reference
marks are reference mark A 701, reference mark B 703, reference mark C 705, and reference
mark D 707. The reference marks are shown in the figures as visual aids but are not
explicitly included in the description below.
[0057] Refer to Fig. 7A. In step 702, the computed roll angle estimate
φgyro(
t) is inputted from the sensor pre-processing module 610. The process then passes to
step 704, in which the availability of a new value of
αtilt from the blade slope angle tilt sensor 602 is determined. The value of
φgyro(
t) arrives at the sensor processing module 612 at
τt =
t +
δspp, where
δspp is the processing delay for the sensor pre-processing module 610. The previous value
of
φgyro(
t-1) had arrived at the sensor processing module 612 at
τt-1 = (
t-1) +
δspp. If a value of
αtilt arrives at a time
τα, such that
τt-1 <
τα ≤
τt, then a new value of
αtilt is available. To simplify the notation, the new value of
αtilt is denoted
αtilt(
t) when the time dependence is explicitly called out. A similar notation holds for
a new value of
βtilt, as discussed below.
[0058] In step 704, if a new value of
αtilt is not available, then the process passes to step 714 in which the value of
φgyro(
t) is outputted to step 740 in Fig. 7C. If a new value of
αtilt is available, then the process passes to step 706 in which the occurrence of a disturbance
is determined. As discussed above, the measurement of a tilt sensor can be corrupted
by disturbances such as sudden movements of the blade (including sudden movements
of the entire motor grader).
[0059] Various criteria can be used to determine when a disturbance sufficiently high to
yield an invalid measurement from a tilt sensor has occurred. In one embodiment, a
disturbance is detected if

where

is the new value of
αtilt,

is the previous value of
αtilt, and Δα
tilt,max is a user-defined threshold value. Under normal operation, variations in
αtilt are expected to fall within a particular range. If the change in
αtilt from one measurement to the next is unexpectedly large, then the new measurement
of
αtilt is suspect.
[0060] In another embodiment, a disturbance is detected if |
ωgyro,z(
t)| >
Ωgyro,z, where
Ωgyro,z is a user-defined threshold value. An excessively high value of |
ωgyro,z(
t)| can result, for example, if the blade turns sharply or spins. In Fig. 6A, input
of
ωgyro,z into the sensor processing module 612 is not explicitly shown. The value of
ωgyro,z can be inputted from the three-axis axis gyroscope 606 or passed through the sensor
pre-processing module 610.
[0061] Note that logical combinations of different criteria can be used for determining
a disturbance. As one example, a disturbance is detected if

OR |
ωgyro,z(
t)| > Ω
gyro,z.
[0062] In step 706, if a disturbance is detected, then the new value of
αtilt is discarded, and the process passes to step 714, in which the value of
φgyro(
t) is outputted to step 740 in Fig. 7C. If a disturbance is not detected, then the
new value of
αtilt is accepted, and the process passes to step 708, in which
Zroll(
t), the Kalman filter measurement at time
t , is computed. Details of step 708 are described below. The process then passes to
step 710, in which an additional disturbance determination is performed. If |
zroll(
t)| >
ζroll, where
ζroll is a user-defined threshold value, then a disturbance is detected. In the embodiment
shown in Fig. 7A, the disturbance detection in step 710 is performed in addition to
the disturbance detection in step 706. In a second embodiment, step 706 is omitted,
and only step 708 and step 710 are performed for disturbance detection. In a third
embodiment, step 708 and step 710 are omitted, and only step 706 is performed for
disturbance detection.
[0063] In step 710, if a disturbance is detected, then the new value of
αtilt is declared to be invalid, and the process passes to step 714, in which the value
of
φgyro(
t) is outputted to step 740 in Fig. 7C. If a disturbance is not detected, then the
new value of
αtilt is declared to be valid, and the process passes to step 712. The corrected estimates,
φ̃(
t) and
G̃bx(
t)
, are computed and outputted to step 740 in Fig. 7C. Details of step 712 are discussed
below.
[0064] Refer to Fig. 7B. The flowchart in Fig. 7B is similar to the flowchart in Fig. 7A,
except that the pitch angle estimate is processed instead of the roll angle estimate.
In step 722, the computed pitch angle estimate
θgyro(
t) is inputted from the sensor pre-processing module 610. The process then passes to
step 724, in which the availability of a new value of
βtilt from the blade tip angle tilt sensor 604 is determined. The criteria for the availability
of a new value of
βtilt is similar to the criteria discussed above for the availability of a new value of
αtilt. If a new value of
βtilt is not available, then the process passes to step 734, in which the value of
θgyro(
t) is outputted to step 740 in Fig. 7C.
[0065] If a new value of
βtilt is available, then the process passes to step 726, in which the occurrence of a disturbance
is determined. The criteria for detecting a disturbance in measurements of
βtilt are similar to the criteria discussed above for detecting a disturbance in measurements
of
αtilt.
[0066] In step 726, if a disturbance is detected, then the new value of
βtilt is discarded, and the process passes to step 734, in which the value of
θgyro(
t) is outputted to step 740 in Fig. 7C. If a disturbance is not detected, then the
new value of
βtilt is accepted, and the process passes to step 728, in which
zpitch(
t)
, the Kalman filter measurement at time
t , is computed. Details of step 728 are described below. The process then passes to
step 730, in which an additional disturbance detection is performed. If |
zpitch(
t)| >
ζpitch, where
ζpitch is a user-defined threshold value, then a disturbance is detected. In the embodiment
shown in Fig. 7B, the disturbance detection in step 730 is performed in addition to
the disturbance detection in step 726. In a second embodiment, step 726 is omitted,
and only step 728 and step 730 are performed for disturbance detection. In a third
embodiment, step 728 and step 730 are omitted, and only step 726 is performed for
disturbance detection.
[0067] In step 730, if a disturbance is detected, then the new value of
βtilt is declared to be invalid, and the process passes to step 734, in which the value
of
θgyro(
t) is outputted to step 740 in Fig. 7C. If a disturbance is not detected, then the
new value of
βtilt is declared to be valid, and the process passes to step 732. The corrected estimates,
θ̃(
t) and
G̃by(
t)
, are computed and outputted to step 740 in Fig. 7C. Details of step 732 are discussed
below.
[0068] Refer to Fig. 7C. In step 740, a blade slope estimation' algorithm (BSEA) is selected.
The choice of BSEA depends on whether a valid new value of
αtilt is available (Fig. 7A) and on whether a valid new value of β
tilt is available (Fig. 7B). There are four possible selections:
Step 750: Compute BSEA 1 (valid new value of αtilt not available, valid new value of βtilt not available)
Step 760: Compute BSEA 2 (valid new value of αtilt available, valid new value of βtilt not available)
Step 770: Compute BSEA 3 (valid new value of αtilt not available, valid new value of βtilt available)
Step 780: Compute BSEA 4 (valid new value of αtilt available, valid new value of βtilt available).
[0069] The individual BSEAs are first summarized below. Details of the algorithms for computing
the corrected estimates
φ̃(
t),
θ̃(
t)
, G̃bx(
t)
, and
G̃by(
t) are discussed afterwards.
[0070] In BSEA 1, a valid new value of
αtilt is not available, and a valid new value of
βtilt is not available. No sensor fusion is performed. The blade slope angle estimate
α̃(
t) is computed from
φgyro(
t) and
θgyro(
t):

No corrected values of parameters are fed back to the sensor pre-processing module
610. No corrected value of the
Xb-axis gyro bias estimate is inputted into the gyro bias calibration module 614. Since
no corrected value of the
Xb-axis gyro bias estimate is inputted into the gyro bias calibration module 614, the
gyro bias calibration module 614 computes the
Xb-axis blade angular rotation rate estimate
ω̃x(
t) from
ωgyro,x(
t) and the previous value of the
Xb-axis gyro bias estimate, denoted
Gbx(
t-1) :

Note that
G̃bx(
t-1) =
Gbx,0 if the
Xb-axis gyro bias estimate has not been previously corrected.
[0071] In BSEA 2, a valid new value of
αtilt is available, and a valid new value of
βtilt is not available. Sensor fusion of
φgyro, θgyro, and
αtilt is performed. A corrected estimate of the roll angle, denoted
φ̃(
t), is computed (details are discussed below). A corrected estimate of the
Xb-axis gyro bias estimate, denoted
G̃bx(
t), is computed (details are discussed below). The corrected estimates
φ̃(
t) and
G̃bx(
t) are fed back to the sensor pre-processing module 610. The blade slope angle estimate
α̃(
t) is computed from
φ̃(
t) and
θgyro(
t) :

The corrected estimate
G̃bx(
t) is inputted to the gyro bias calibration module 614. The
Xb-axis blade angular rotation rate estimate
ω̃x(
t) is computed from
ωgyro,x(
t) and
G̃bx(
t)
: 
[0072] In BSEA 3, a valid new value of
αtilt is not available, and a valid new value of
βtilt is available. Sensor fusion of (
φgyro, θgyro, and
βtilt is performed. A corrected estimate of the pitch angle, denoted
θ(
t)
, is computed (details are discussed below). A corrected estimate of the
Yb-axis gyro bias estimate, denoted
G̃by(
t) is computed (details are discussed below). The corrected estimates
θ̃(
t) and
G̃by(
t) are fed back to the sensor pre-processing module 610. The blade slope angle estimate
α̃(
t) is computed from
φgyro(
t) and
θ̃(
t):

No corrected value of the
Xb-axis gyro bias estimate is inputted into the gyro bias calibration module 614. The
Xb-axis blade angular rotation rate estimate
ω̃x(
t) is computed from
ωgyro,x(
t) and
G̃bx(
t-1):

[0073] In BSEA 4, a valid new value of
αtilt is available, and a valid new value of
βtilt is available. Sensor fusion of
φgyro,
θgyro, αtilt, and
βtilt is performed. The corrected estimates
φ̃(
t)
, θ̃(
t)
, G̃bx(
t)
, and
G̃by(
t) are computed. The corrected estimates
φ̃(
t)
θ̃(
t)
, G̃bx(
t), and
G̃by(
t) are fed back to the sensor pre-processing module 610. The blade slope angle estimate
α̃(
t) is computed from
φ̃(
t) and
θ̃(
t) :

The corrected estimate
G̃bx(
t) is inputted into the gyro bias calibration module 614. The
Xb-axis blade angular rotation rate estimate
ω̃x(
t) is computed from
ωgyro,x(
t) and
G̃bx(
t) :

[0074] As discussed above, computation of the current values of
φgyro(
t) and
θgyro(
t) in the sensor pre-processing module 610 uses the previous value of the roll angle,
the previous value of the pitch angle, the value of the roll angle bias estimate,
and the value of the pitch angle bias estimate. The accuracy of computing the next
values of
φgyro(
t + 1) and
θgyro(
t+1) can be improved by using the corrected estimates
φ̃(
t)
θ̃(
t)
, G̃bx(
t)
, and
G̃by(
t) instead of
φgyro(
t)
, θgyro(
t)
, G̃bx(
t-1), and
G̃by(
t-1). Therefore, the sensor processing module 612 feeds back values of the corrected
estimates
φ̃(
t)
, θ̃(
t)
, G̃bx(
t)
, and
G̃by(
t)
, when they are available, to the sensor pre-processing module 610.
[0075] In an embodiment, the sensor processing module 612 uses two extended Kalman filters
(EKFs) for fusing sensor data. The first EKF computes the corrected roll angle estimate
and the corrected roll angle bias estimate (corrected
Xb-axis gyro bias estimate). The second EKF computes the corrected pitch angle estimate
and the corrected pitch angle bias estimate (corrected
Yb-axis gyro bias estimate).
[0076] The details of the EKF for the roll angle and roll angle bias estimates are as follows.
The state vector
Xroll of the EKF includes the roll angle error Δ
φ and the
Xb-axis gyro bias error Δ
Gbx: 
For this state vector, a state propagation model can be given as follows:

where
wroll(
t) is a 2 X 1 system noise vector at time
t in which the first element represents the noise on the roll angle, and the second
element represents the noise on the roll angular rotation rate.
[0077] With the state vector
xroll(
t) and the tilt sensor measurements
αtilt(
t)
, an observation model is formed as follows:

where
Rroll(
t) is the measurement noise on the blade slope angle tilt sensor 602.
zroll(
t), the Kalman filter measurement at time
t, is computed with the following equation using the computed roll angle estimate
φgyro and the computed pitch angle estimate
θgyro computed in the sensor pre-processing module 610 and the blade slope angle
αtilt measured by the blade slope angle tilt sensor 602:

Representing these models in a general form of Kalman filter, an EKF that estimates
the roll angle error Δ
φ and the
Xb-axis gyro bias error Δ
Gbx using tilt sensor measurements can be realized.
[0078] With the state vector estimated in the EKF, the roll angle and the
Xb-axis gyro bias are corrected as follows:

[0079] In the same manner, the models for the EKF for the pitch angle can be derived. The
state vector (
xpitch) for this EKF includes the pitch angle error Δ
θ and the
Yb-axis gyro bias error Δ
Gby. The state propagation model is then given as follows:

where
wpitch(
t) is a 2 X 1 system noise vector at time
t in which the first element represents the noise on the pitch angle, and the second
element represents the noise on the pitch angular rotation rate. With the blade tip
angle tilt sensor measurement (
βtilt)
, the observation model is formed as follows:

where
Rpitch(
t) is the measurement noise on the blade tip angle tilt sensor 604
. zpitch(
t), the Kalman filter measurement at time
t, is computed with the following equation using the computed pitch angle estimate
θgyro computed in the sensor pre-processing module 610 and the blade tip angle
βtilt measured by the blade tip angle tilt sensor 604:

Representing these models in a general form of Kalman filter, an EKF that estimates
the pitch angle error Δ
θ and the
Yb-axis gyro bias error Δ
Gby using tilt sensor measurements can be realized.
[0080] With the state vector estimated in the EKF, the pitch angle and the
Yb -axis gyro bias are corrected as follows:

[0081] In the embodiment described above, the blade attitude is represented by Euler angles.
In another embodiment, the blade attitude is represented by a quaternion. In contrast
with Euler angles, the quaternion is a four-parameter attitude representation with
which the coordinate system of the navigation frame 210 can be transformed to the
coordinate system of the blade frame 220 (Fig. 2). The quaternion at the current time
instant can be propagated to the quaternion at the next time instant by the using
the measurements (
ωgyro,x,
ωgyro,y,
ωgyro,z) from the three-axis gyroscope 606 (see Fig. 6A). Attitude representation by a quaternion
and the propagation method using gyroscope measurements are well known in the art.
One skilled in the art can design embodiments of a sensor pre-processing module and
a sensor processing module for a quaternion similar to those described above for Euler
angles.
[0082] In the embodiments described above, the coordinate system of the navigation frame
210 is transformed to the coordinate system of the blade frame 220 via Euler angles
or a quaternion. In other embodiments, the coordinate system of the blade frame 220
is transformed to the coordinate system of the navigation frame 210 via Euler angles
or a quaternion.
[0083] Fig. 5A and Fig. 6A show a schematic of a proportional-and-derivative control algorithm.
For some applications, a proportional control algorithm can be used. For example,
if the specifications for the finished graded surface are not too strict, a less complex
and lower cost automatic blade slope control system can be used. Fig. 5B and Fig.
6B show a schematic of a proportional control algorithm. As shown in Fig. 5B, for
a proportional control algorithm, the derivative loop in Fig. 5A (operation 526 and
operation 524) are omitted. The control signal
uα is then equal to the product
Kpεα 505. In Fig. 6B, the gyro bias calibration module 614 is omitted, since the
Xb-axis blade angular rotation rate estimate
ω̃x 531 is not needed for the proportional control algorithm.
[0084] Since the automatic blade slope control system described herein is independent of
blade elevation, the automatic blade slope control system can be added to existing
motor graders without replacing or modifying the existing elevation control systems.
Although the motor grader 100 (Fig. 1A and Fig. 1B) was used as a specific example
of an earthmoving machine, embodiments of the automatic blade slope control system
described herein can be used for other earthmoving machines, such as bulldozers. In
general, one skilled in the art can develop embodiments of the automatic blade slope
control system described herein for automatic slope control of an implement mounted
on a vehicle, wherein the attitude of the implement with respect to a local reference
plane can be specified by an implement slope angle and an implement tip angle. For
example, embodiments of the automatic blade slope control system described herein
can be used for automatic slope control of a screed on a paver. In general, herein,
the term "blade" refers to a blade or a blade-like implement such as a screed.
[0085] In Fig. 5A, the control signal
uα 507 is inputted into the hydraulic system 530, which controls the displacement of
the blade slope angle control cylinder 532. As discussed above, the hydraulic system
530 can also control the blade slope angle by controlling the displacement of two
hydraulic control cylinders (the right lift cylinder 112 and the left lift cylinder
114 shown in Fig. 1A and Fig. 1B). One skilled in the art can develop embodiments
of the automatic blade slope control system for other drive systems. For example,
control signal
uα 507 can be inputted into an electronic control system driving an electric motor which
in turn drives a gear, screw, piston, or driveshaft via an appropriate coupling. In
general, the control signal
uα 507 is inputted into a blade slope angle drive system, which controls a blade slope
angle control driver operatively coupled to the blade 110. A driver is also referred
to as an actuator.
[0086] An embodiment of a computational system 800 for implementing an automatic blade slope
angle control system is shown in Fig. 8. The computational system 800, for example,
can be installed in the cabin 104 of the motor grader 100 (Fig. 1A and Fig. 1 B).
One skilled in the art can construct the computational system 800 from various combinations
of hardware, firmware, and software. One skilled in the art can construct the computational
system 800 from various electronic components, including one or more general purpose
microprocessors, one or more digital signal processors, one or more application-specific
integrated circuits (ASICs), and one or more field-programmable gate arrays (FPGAs).
[0087] The computational system 800 includes a computer 802, which includes a central processing
unit (CPU) 804, memory 806, and a data storage device 808. The data storage device
808 includes at least one persistent, non-transitory, tangible computer readable medium,
such as nonvolatile semiconductor memory, a magnetic hard drive, or a compact disc
read only memory.
[0088] The computational system 800 can further include a user input/output interface 810,
which interfaces computer 802 to user input/output devices 830. Examples of user input/output
devices 830 include a keyboard, a mouse, a local access terminal, and a video display.
Data, including computer executable code, can be transferred to and from the computer
802 via the user input/output interface 810.
[0089] The computational system 800 can further include a communications network interface
822, which interfaces the computer 802 with a communications network 840. Examples
of the communications network 840 include a local area network and a wide area network.
A user can access the computer 802 via a remote access terminal (not shown) communicating
with the communications network 840. Data, including computer executable code, can
be transferred to and from the computer 802 via the communications network interface
822.
[0090] The computational system 800 can further include a blade slope angle tilt sensor
interface 812, which interfaces the computer 802 with the blade slope angle tilt sensor
602.
[0091] The computational system 800 can further include a blade tip angle tilt sensor interface
814, which interfaces the computer 802 with the blade tip angle tilt sensor 604.
[0092] The computational system 800 can further include a three-axis gyroscope interface
816, which interfaces the computer 802 with the three-axis gyroscope 606.
[0093] The computational system 800 can further include a hydraulic system interface 818,
which interfaces the computer 802 with the hydraulic system 530.
[0094] The computational system 800 can further include an auxiliary sensors interface 820,
which interfaces the computer 802 with auxiliary sensors 830. Examples of auxiliary
sensors 830 include a global navigation satellite system receiver and an optical receiver.
[0095] Each of the interfaces described above can operate over different physical media.
Examples of physical media include wires, optical fibers, free-space optics, and electromagnetic
waves (typically in the radiofrequency range and commonly referred to as a wireless
interface).
[0096] As is well known, a computer operates under control of computer software, which defines
the overall operation of the computer and applications. The CPU 804 controls the overall
operation of the computer and applications by executing computer program instructions
that define the overall operation and applications. The computer program instructions
can be stored in the data storage device 808 and loaded into the memory 806 when execution
of the program instructions is desired. The automatic blade slope angle control algorithms
shown schematically in Fig. 5A, Fig. 5B, Fig. 6A, and Fig. 6B can be defined by computer
program instructions stored in the memory 806 or in the data storage device 808 (or
in a combination of the memory 806 and the data storage device 808) and controlled
by the CPU 804 executing the computer program instructions. For example, the computer
program instructions can be implemented as computer executable code programmed by
one skilled in the art to perform algorithms. Accordingly, by executing the computer
program instructions, the CPU 804 executes the automatic blade slope angle control
algorithms shown schematically in Fig. 5A, Fig. 5B, Fig. 6A, and Fig. 6B.
[0097] The foregoing Detailed Description is to be understood as being in every respect
illustrative and exemplary, but not restrictive, and the scope of the invention disclosed
herein is not to be determined from the Detailed Description, but rather from the
claims as interpreted according to the full breadth permitted by the patent laws.
It is to be understood that the embodiments shown and described herein are only illustrative
of the principles of the present invention and that various modifications may be implemented
by those skilled in the art without departing from the scope of the invention as conferred
by the accompanying claims. Those skilled in the art could implement various other
feature combinations without departing from the scope of the invention as conferred
by the accompanying claims.
1. Verfahren zur Steuerung einer an einem Fahrzeug befestigten Schaufel, wobei das Verfahren
folgende Schritte umfasst:
zu einem ersten Zeitpunkt Erhalten einer ersten berechneten Rollwinkelschätzung und
einer ersten berechneten Nickwinkelschätzung, wobei die erste berechnete Rollwinkelschätzung
und die erste berechnete Nickwinkelschätzung mindestens teilweise auf einer ersten
Winkelgeschwindigkeitsmessung um eine erste Achse, eine zweite Winkelgeschwindigkeitsmessung
um eine zweite Achse und eine dritte Winkelgeschwindigkeitsmessung um eine dritte
Achse von einem auf der Schaufel montierten Dreiachsenkreisel basiert, wobei die erste
Achse, die zweite Achse und die dritte Achse orthogonal verlaufen;
zu einem zweiten Zeitpunkt Erhalten einer zweiten berechneten Rollwinkelschätzung
und einer zweiten berechneten Nickwinkelschätzung, wobei die zweite berechnete Rollwinkelschätzung
und die zweite berechnete Nickwinkelschätzung mindestens teilweise auf einer vierten
Winkelgeschwindigkeitsmessung um die erste Achse, eine fünfte Winkelgeschwindigkeitsmessung
um die zweite Achse und eine sechste Winkelgeschwindigkeitsmessung um die dritte Achse
von dem auf der Schaufel montierten Dreiachsenkreisel basiert; wobei das Verfahren
gekennzeichnet ist durch
das Empfangen zu einem dritten Zeitpunkt einer Schaufelneigungswinkelmessung von einem
auf der Schaufel montierten Neigungssensor für den Schaufelneigungswinkel;
das Empfangen zu einem vierten Zeitpunkt einer Schaufelspitzenwinkelmessung von einem
auf der Schaufel montierten Neigungssensor für den Schaufelspitzenwinkel;
das Ermitteln, ob eine erste Zeitbedingung erfüllt ist, wobei die erste Zeitbedingung
dadurch dargestellt wird, dass:
der dritte Zeitpunkt größer ist als der erste Zeitpunkt und kleiner als oder gleich
dem zweiten Zeitpunkt;
nach dem Ermitteln, dass die erste Zeitbedingung erfüllt ist:
das Ermitteln, ob die erhaltene Schaufelneigungswinkelmessung gültig ist;
das Ermitteln, ob eine zweite Zeitbedingung erfüllt wird, wobei die zweite Zeitbedingung
dadurch dargestellt wird, dass:
der vierte Zeitpunkt größer ist als der erste Zeitpunkt und kleiner als oder gleich
dem zweiten Zeitpunkt;
nach dem Ermitteln, dass die zweite Zeitbedingung erfüllt ist:
das Ermitteln, ob die erhaltene Schaufelspitzenwinkelmessung gültig ist;
nach dem Ermitteln, dass die erste Zeitbedingung erfüllt ist, die erhaltene Schaufelneigungswinkelmessung
gültig ist, die zweite Zeitbedingung erfüllt ist und die erhaltene Schaufelspitzenwinkelmessung
gültig ist:
das Berechnen einer Schätzung des Schaufelneigungswinkels mindestens teilweise aufgrund
der erhaltenen zweiten berechneten Rollwinkelschätzung, der erhaltenen zweiten berechneten
Nickwinkelschätzung, der erhaltenen Schaufelneigungswinkelmessung und der erhaltenen
Schaufelspitzenwinkelmessung.
2. Verfahren nach Anspruch 1, das ferner folgende Schritte umfasst:
nach dem Ermitteln, dass die erste Zeitbedingung nicht erfüllt ist und die zweite
Zeitbedingung nicht erfüllt ist:
Berechnen einer Schätzung des Schaufelneigungswinkels mindestens teilweise aufgrund
der erhaltenen zweiten berechneten Rollwinkelschätzung und der erhaltenen zweiten
berechneten Nickwinkelschätzung;
nach dem Ermitteln, dass die erste Zeitbedingung erfüllt ist, die erhaltene Schaufelneigungswinkelmessung
nicht gültig ist und die zweite Zeitbedingung nicht erfüllt ist:
Berechnen einer Schätzung des Schaufelneigungswinkels mindestens teilweise aufgrund
der erhaltenen zweiten berechneten Rollwinkelschätzung und der erhaltenen zweiten
berechneten Nickwinkelschätzung;
nach dem Ermitteln, dass die erste Zeitbedingung nicht erfüllt ist, die zweite Zeitbedingung
erfüllt ist und der erhaltene Schaufelspitzenwinkel nicht gültig ist:
Berechnen einer Schätzung des Schaufelneigungswinkels mindestens teilweise aufgrund
der erhaltenen zweiten berechneten Rollwinkelschätzung und der erhaltenen zweiten
berechneten Nickwinkelschätzung; und
nach dem Ermitteln, dass die erste Zeitbedingung erfüllt ist, die erhaltene Schaufelneigungswinkelmessung
nicht gültig ist, die zweite Zeitbedingung erfüllt ist und der erhaltene Schaufelspitzenwinkel
nicht gültig ist:
Berechnen einer Schätzung des Schaufelneigungswinkels mindestens teilweise aufgrund
der erhaltenen zweiten berechneten Rollwinkelschätzung und der erhaltenen zweiten
berechneten Nickwinkelschätzung;
3. Verfahren nach Anspruch 1, das ferner folgende Schritte umfasst:
nach dem Ermitteln, dass die erste Zeitbedingung erfüllt ist, die erhaltene Schaufelneigungswinkelmessung
gültig ist und die zweite Zeitbedingung nicht erfüllt ist:
Berechnen einer Schätzung des Schaufelneigungswinkels mindestens teilweise aufgrund
der erhaltenen zweiten berechneten Rollwinkelschätzung, der erhaltenen zweiten berechneten
Nickwinkelschätzung und der erhaltenen Schaufelneigungswinkelmessung; und
nach dem Ermitteln, dass die erste Zeitbedingung erfüllt ist, die erhaltene Schaufelneigungswinkelmessung
gültig ist, die zweite Zeitbedingung erfüllt ist und die erhaltene Schaufelspitzenwinkelmessung
nicht gültig ist:
Berechnen einer Schätzung des Schaufelneigungswinkels mindestens teilweise aufgrund
der erhaltenen zweiten berechneten Rollwinkelschätzung, der erhaltenen zweiten berechneten
Nickwinkelschätzung und der erhaltenen Schaufelneigungswinkelmessung.
4. Verfahren nach Anspruch 1, das ferner folgende Schritte umfasst:
nach dem Ermitteln, dass die erste Zeitbedingung nicht erfüllt ist, die zweite Zeitbedingung
erfüllt ist und der erhaltene Schaufelspitzenwinkel gültig ist:
Berechnen einer Schätzung des Schaufelneigungswinkels mindestens teilweise aufgrund
der erhaltenen zweiten berechneten Rollwinkelschätzung, der erhaltenen zweiten berechneten
Nickwinkelschätzung und der erhaltenen Schaufelspitzenwinkelmessung; und
nach dem Ermitteln, dass die erste Zeitbedingung erfüllt ist, die erhaltene Schaufelneigungswinkelmessung
nicht gültig ist, die zweite Zeitbedingung erfüllt ist und die erhaltene Schaufelspitzenwinkelmessung
gültig ist:
Berechnen einer Schätzung des Schaufelneigungswinkels mindestens teilweise aufgrund
der erhaltenen zweiten berechneten Rollwinkelschätzung, der erhaltenen zweiten berechneten
Nickwinkelschätzung und der erhaltenen Schaufelspitzenwinkelmessung.
5. Verfahren nach Anspruch 1, das ferner folgende Schritte umfasst:
Empfangen eines Referenz-Schaufelneigungswinkels; und
Steuern des Schaufelneigungswinkels mindestens teilweise aufgrund des erhaltenen Referenz-Schaufelneigungswinkels
und der berechneten Schätzung des Schaufelneigungswinkels.
6. Verfahren nach Anspruch 1, das ferner folgende Schritte umfasst:
Empfangen eines Referenz-Schaufelneigungswinkels;
Berechnen einer Schätzung der vierten Winkelgeschwindigkeit mindestens teilweise aufgrund
der vierten Winkelgeschwindigkeitsmessung, der fünften Winkelgeschwindigkeitsmessung,
der sechsten Winkelgeschwindigkeitsmessung, der erhaltenen Schaufelneigungswinkelmessung
und der erhaltenen Schaufelspitzenwinkelmessung; und
Steuern des Schaufelneigungswinkels mindestens teilweise aufgrund des erhaltenen Referenz-Schaufelneigungswinkels,
der berechneten Schätzung des Schaufelneigungswinkels und der berechneten Schätzung
der vierten Winkelgeschwindigkeit.
7. Verfahren nach Anspruch 1, wobei der Schritt der Berechnung einer Schätzung des Schaufelneigungswinkels
folgende Schritte umfasst:
Ermitteln einer ersten Schätzung einer Vorspannung der vierten Winkelgeschwindigkeitsmessung;
Ermitteln einer ersten Schätzung einer Vorspannung der fünften Winkelgeschwindigkeitsmessung;
Berechnen einer ersten Schätzung eines Rollwinkels mindestens teilweise aufgrund der
vierten Winkelgeschwindigkeitsmessung, der fünften Winkelgeschwindigkeitsmessung,
der sechsten Winkelgeschwindigkeitsmessung, der ermittelten ersten Schätzung der Vorspannung
der vierten Winkelgeschwindigkeitsmessung und der ermittelten ersten Schätzung der
Vorspannung der fünften Winkelgeschwindigkeitsmessung; und
Berechnen einer ersten Schätzung eines Nickwinkels aufgrund der ersten Winkelgeschwindigkeitsmessung,
der zweiten Winkelgeschwindigkeitsmessung und der dritten Winkelgeschwindigkeitsmessung,
der ermittelten ersten Schätzung der Vorspannung der ersten Winkelgeschwindigkeitsmessung
und der ermittelten ersten Schätzung der Vorspannung der zweiten Winkelgeschwindigkeitsmessung.
8. Verfahren nach Anspruch 7, das ferner folgenden Schritt umfasst:
Berechnen einer korrigierten Schätzung des Rollwinkels, einer korrigierten Schätzung
des Nickwinkels, einer korrigierten Schätzung der Vorspannung der vierten Winkelgeschwindigkeitsmessung
und einer korrigierten Schätzung der Vorspannung der fünften Winkelgeschwindigkeitsmessung
aufgrund der vierten Winkelgeschwindigkeitsmessung, der fünften Winkelgeschwindigkeitsmessung,
der dritten Winkelgeschwindigkeitsmessung, der erhaltenen Schaufelneigungswinkelmessung,
der erhaltenen Schaufelspitzenwinkelmessung, der ermittelten ersten Schätzung der
Vorspannung der vierten Winkelgeschwindigkeitsmessung und der ermittelten ersten Schätzung
der Vorspannung der fünften Winkelgeschwindigkeitsmessung.
9. Verfahren nach Anspruch 1, wobei das Fahrzeug eine Erdbewegungsmaschine umfasst.
10. Verfahren nach Anspruch 9, wobei die Erdbewegungsmaschine einen Motor-Grader umfasst.
11. Verfahren nach Anspruch 9, wobei die Erdbewegungsmaschine einen Bulldozer umfasst.
12. Verfahren nach Anspruch 1, wobei die Schaufel eine Bohle umfasst und das Fahrzeug
einen Fertiger umfasst.
13. Vorrichtung, umfassend Mittel zur Durchführung des Verfahrens nach einem der Ansprüche
1 bis 8.
14. Computerprogramm zur Anweisung eines Computers zur Durchführung des Verfahrens nach
einem der Ansprüche 1 bis 12.
15. Computerlesbares Medium zur Speicherung des Computerprogramms nach Anspruch 14.
1. Procédé pour commander une lame montée sur un véhicule, le procédé comprenant les
étapes :
recevoir, à un premier instant, une première estimation d'angle de roulis calculée
et une première estimation d'assiette longitudinale calculée, la première estimation
d'angle de roulis calculée et la première estimation d'assiette longitudinale calculée
étant basées au moins en partie sur une première mesure de vitesse angulaire autour
d'un premier axe, une deuxième mesure de vitesse angulaire autour d'un deuxième axe,
et une troisième mesure de vitesse angulaire autour d'un troisième axe, à partir d'un
gyroscope à trois axes monté sur la lame, le premier axe, le deuxième axe et le troisième
axe étant orthogonaux ;
recevoir, à un deuxième instant, une seconde estimation d'angle de roulis calculée
et une seconde estimation d'assiette longitudinale calculée, la seconde estimation
d'angle de roulis calculée et la seconde estimation d'assiette longitudinale calculée
étant basées au moins en partie sur une quatrième mesure de vitesse angulaire autour
du premier axe, une cinquième mesure de vitesse angulaire autour du deuxième axe,
et une sixième mesure de vitesse angulaire autour du troisième axe, à partir du gyroscope
à trois axes monté sur la lame ; le procédé étant caractérisé par :
recevoir, à un troisième instant, une mesure d'angle de pente de lame à partir d'un
capteur d'inclinaison d'angle de pente de lame monté sur la lame ;
recevoir, à un quatrième instant, une mesure d'angle de pointe de lame à partir d'un
capteur d'inclinaison d'angle de pointe de lame monté sur la lame ;
déterminer si une première condition temporelle est satisfaite, la première condition
temporelle étant représentée par :
le troisième instant est supérieur au premier instant et inférieur ou égal au deuxième
instant ;
lorsqu'il est déterminé que la première condition temporelle est satisfaite :
déterminer si la mesure d'angle de pente de lame reçue est valide ;
déterminer si une seconde condition temporelle est satisfaite, la seconde condition
temporelle étant représentée par :
le quatrième instant est supérieur au premier instant et inférieur ou égal au deuxième
instant ;
lorsqu'il est déterminé que la seconde condition temporelle est satisfaite :
déterminer si la mesure d'angle de pointe de lame reçue est valide ; et
lorsqu'il est déterminé que la première condition temporelle est satisfaite, que la
mesure d'angle de pente de lame reçue est valide, que la seconde condition temporelle
est satisfaite, et que la mesure d'angle de pointe de lame reçue est valide :
calculer une estimation de l'angle de pente de lame sur la base au moins en partie
de la seconde estimation d'angle de roulis calculée reçue, de la seconde estimation
d'assiette longitudinale calculée reçue, de la mesure d'angle de pente de lame reçue
et de la mesure d'angle de pointe de lame reçue.
2. Procédé selon la revendication 1, comprenant en outre les étapes :
lorsqu'il est déterminé que la première condition temporelle n'est pas satisfaite
et que la seconde condition temporelle n'est pas satisfaite :
calculer une estimation de l'angle de pente de lame sur la base au moins en partie
de la seconde estimation d'angle de roulis calculée reçue et de la seconde estimation
d'assiette longitudinale calculée reçue ;
lorsqu'il est déterminé que la première condition temporelle est satisfaite, que la
mesure d'angle de pente de lame reçue n'est pas valide et que la seconde condition
temporelle n'est pas satisfaite :
calculer une estimation de l'angle de pente de lame sur la base au moins en partie
de la seconde estimation d'angle de roulis calculée reçue et de la seconde estimation
d'assiette longitudinale calculée reçue ;
lorsqu'il est déterminé que la première condition temporelle n'est pas satisfaite,
que la seconde condition temporelle est satisfaite et que l'angle de pointe de lame
reçu n'est pas valide :
calculer une estimation de l'angle de pente de lame sur la base au moins en partie
de la seconde estimation d'angle de roulis calculée reçue et de la seconde estimation
d'assiette longitudinale calculée reçue ; et
lorsqu'il est déterminé que la première condition temporelle est satisfaite, que la
mesure d'angle de pente de lame reçue n'est pas valide, que la seconde condition temporelle
est satisfaite et que l'angle de pointe de lame reçu n'est pas valide :
calculer une estimation de l'angle de pente de lame sur la base au moins en partie
de la seconde estimation d'angle de roulis calculée reçue et de la seconde estimation
d'assiette longitudinale calculée reçue.
3. Procédé selon la revendication 1, comprenant en outre les étapes :
lorsqu'il est déterminé que la première condition temporelle est satisfaite, que la
mesure d'angle de pente de lame reçue est valide et que la seconde condition temporelle
n'est pas satisfaite :
calculer une estimation de l'angle de pente de lame sur la base au moins en partie
de la seconde estimation d'angle de roulis calculée reçue, de la seconde estimation
d'assiette longitudinale calculée reçue et de la mesure d'angle de pente de lame reçue
; et
lorsqu'il est déterminé que la première condition temporelle est satisfaite, que la
mesure d'angle de pente de lame reçue est valide, que la seconde condition temporelle
est satisfaite et que la mesure d'angle de pointe de lame reçue n'est pas valide :
calculer une estimation de l'angle de pente de lame sur la base au moins en partie
de la seconde estimation d'angle de roulis calculée reçue, de la seconde estimation
d'assiette longitudinale calculée reçue et de la mesure d'angle de pente de lame reçue.
4. Procédé selon la revendication 1, comprenant en outre les étapes :
lorsqu'il est déterminé que la première condition temporelle n'est pas satisfaite,
que la seconde condition temporelle est satisfaite et que l'angle de pointe de lame
reçu est valide :
calculer une estimation de l'angle de pente de lame sur la base au moins en partie
de la seconde estimation d'angle de roulis calculée reçue, de la seconde estimation
d'assiette longitudinale calculée reçue et de la mesure d'angle de pointe de lame
reçue ; et
lorsqu'il est déterminé que la première condition temporelle est satisfaite, que la
mesure d'angle de pente de lame reçue n'est pas valide, que la seconde condition temporelle
est satisfaite et que la mesure d'angle de pointe de lame reçue est valide :
calculer une estimation de l'angle de pente de lame sur la base au moins en partie
de la seconde estimation d'angle de roulis calculée reçue, de la seconde estimation
d'assiette longitudinale calculée reçue et de la mesure d'angle de pointe de lame
reçue.
5. Procédé selon la revendication 1, comprenant en outre les étapes :
recevoir un angle de pente de lame de référence ; et
commander l'angle de pente de lame sur la base au moins en partie de l'angle de pente
de lame de référence reçu et de l'estimation calculée de l'angle de pente de lame.
6. Procédé selon la revendication 1, comprenant en outre les étapes :
recevoir un angle de pente de lame de référence ;
calculer une estimation de la quatrième vitesse angulaire sur la base au moins en
partie de la quatrième mesure de vitesse angulaire, de la cinquième mesure de vitesse
angulaire, de la sixième mesure de vitesse angulaire, de la mesure d'angle de pente
de lame reçue et de la mesure d'angle de pointe de lame reçue ; et
commander l'angle de pente de lame sur la base au moins en partie de l'angle de pente
de lame de référence reçu, de l'estimation calculée de l'angle de pente de lame et
de l'estimation calculée de la quatrième vitesse angulaire.
7. Procédé selon la revendication 1, dans lequel l'étape de calcul d'une estimation de
l'angle de pente de lame comprend les étapes :
déterminer une première estimation d'un biais de la quatrième mesure de vitesse angulaire
;
déterminer une première estimation d'un biais de la cinquième mesure de vitesse angulaire
;
calculer une première estimation d'un angle de roulis sur la base au moins en partie
de la quatrième mesure de vitesse angulaire, de la cinquième mesure de vitesse angulaire,
de la sixième mesure de vitesse angulaire, de la première estimation déterminée du
biais de la quatrième mesure de vitesse angulaire et de la première estimation déterminée
du biais de la cinquième mesure de vitesse angulaire ; et
calculer une première estimation d'une assiette longitudinale sur la base de la première
mesure de vitesse angulaire, de la deuxième mesure de vitesse angulaire, et de la
troisième mesure de vitesse angulaire, de la première estimation déterminée du biais
de la première mesure de vitesse angulaire et de la première estimation déterminée
du biais de la deuxième mesure de vitesse angulaire.
8. Procédé selon la revendication 7, comprenant en outre les étapes :
calculer une estimation corrigée de l'angle de roulis, une estimation corrigée de
l'assiette longitudinale, une estimation corrigée du biais de la quatrième mesure
de vitesse angulaire et une estimation corrigée du biais de la cinquième mesure de
vitesse angulaire sur la base de la quatrième mesure de vitesse angulaire, de la cinquième
mesure de vitesse angulaire, de la troisième mesure de vitesse angulaire, de la mesure
d'angle de pente de lame reçue, de la mesure d'angle de pointe de lame reçue, de la
première estimation déterminée du biais de la quatrième mesure de vitesse angulaire
et de la première estimation déterminée du biais de la cinquième mesure de vitesse
angulaire.
9. Procédé selon la revendication 1, dans lequel le véhicule comprend une machine de
terrassement.
10. Procédé selon la revendication 9, dans lequel la machine de terrassement comprend
une niveleuse automotrice.
11. Procédé selon la revendication 9, dans lequel la machine de terrassement comprend
un bouteur.
12. Procédé selon la revendication 1, dans lequel la lame comprend une table et le véhicule
comprend une finisseuse.
13. Appareil comprenant des moyens pour mettre en oeuvre le procédé selon l'une quelconque
des revendications 1 à 8.
14. Programme d'ordinateur pour ordonner à un ordinateur de mettre en oeuvre le procédé
selon l'une quelconque des revendications 1 à 12.
15. Support lisible par ordinateur stockant le programme d'ordinateur selon la revendication
14.