The present invention relates generally to a control system for adjusting the height of an implement of a vehicle, and more particularly to input shaping for error detection and recovery in dynamically agile grading machines.
Grading is the process of manipulating the surface of terrain to achieve a target terrain surface. Grading is an important process in many different applications. For example, in construction, grading may be performed to set a foundation of a building. In agriculture, grading may be performed to direct surface water runoff. Dozing machines are typically used for grading terrain. A dozing machine comprises a body and a blade coupled to the body. In operation, as the dozing machine travels over the terrain, the height of the blade is adjusted to manipulate the surface of the terrain to achieve the target terrain surface.
Conventional control systems may be implemented in dozing machines for automatically adjusting the height of the blade to compensate for disturbances to the dozing machine as the dozing machine experiences the disturbances. However, conventional control systems have an inherent response delay time (e.g., approximately 100-300 milliseconds), which prevents the height of the blade from being timely adjusted to compensate for some disturbance. For example, the terrain typically includes many disturbances such as ditches. As the dozing machine travels over the terrain, a ditch will cause the dozing machine to pitch forward, thereby lowering the blade. Since conventional control systems are not able to timely adjust the height of the blade, the lowered blade will result in the creation of another ditch. The dozing machine will then travel over the created ditch, thereby creating another larger ditch. This problem will perpetuate as the dozing machine continues to travel over the terrain, resulting in instability and oscillations in the graded terrain.
In accordance with one or more embodiments, systems and methods for adjusting a height of an implement mounted on a body of a vehicle as the vehicle travels over a terrain are provided. Sensor data is received from a set of sensors disposed on the vehicle. A trajectory associated with the vehicle is determined based on the received sensor data. A profile of the terrain is estimated based on the determined trajectory associated with the vehicle. A ditch is detected in the terrain and compensation values for adjusting the height of the implement are determined based on the estimated profile of the terrain to compensate for the detected ditch. One or more control signals are transmitted to one or more actuators for adjusting the height of the implement based on the determined compensation values. The vehicle may be a dozer machine and the implement of the vehicle may be a blade.
In one embodiment, the trajectory associated with the vehicle is determined by determining a state of the body and a state of the implement based on the received sensor data, mapping the state of the body and the state of the implement to a one dimensional space to determine a state of the vehicle, and determining the trajectory associated with the vehicle based on the state of the vehicle. The state of the body and the state of the implement may be determined as a position and an orientation of the body and the implement and a linear velocity and an angular velocity associated with each axis of the position and the orientation of the body and the implement.
In one embodiment, the profile of the terrain is estimated by determining a pitch associated with the body based on the determined trajectory associated with the vehicle.
In one embodiment, the ditch is detected by computing a first derivative of the estimated profile of the terrain, determining that the first derivative of the estimated profile of the terrain for a current point is a zero crossing, and comparing a magnitude of the estimated profile of the terrain for the current point to a magnitude of the estimated profile of the terrain for a last point determined to be a zero crossing. The compensation values may be determined by determining a range of points between the current point and a last point determined to be a hump in the estimated profile of the terrain and determining the compensation value for each point in the range of points based on a shape characteristic and a differential magnitude of the estimated profile of the terrain at the current point and the last point determined to be the hump. The shape characteristic may include a step shape characteristic, a logarithmic shape characteristic, a quadratic shape characteristic, a ramp shape characteristic, an exponential shape characteristic, or a combination thereof.
In one embodiment, the one or more control signals are transmitted by combining initial error values for achieving a target terrain surface with the determined compensation values to generate final error values and generating the one or more control signals for adjusting the height of the implement according to the final error values.
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.
Referring to
Dozing machine 100 operates in a 3D (three dimensional) environment and blade 104 has three degrees of freedom of rotational movement with respect to the body. Accordingly, the state of dozing machine 100 may be defined by the position of body 102 (in navigation frame 116), the orientation of body 102 (in navigation frame 116), and a relative orientation of blade 104 with respect to body 102 (in body frame 112). In one embodiment, the position is defined in (X, Y, Z) Cartesian coordinates and the orientation is defined in (yaw, pitch, roll) Euler angles. However, it should be understood that the position and the orientation may be represented in any suitable format. For example, the position may be represented as a 2D (two dimensional) curve lying on the surface of terrain 108 (which would require knowledge of terrain 108) and the orientation may be represented as rotation matrices, quaternions, etc.
A dozing machine may be implemented with a conventional control system for adjusting the height of the blade. However, conventional control systems have an inherent response delay time, which prevents such conventional control systems from timely adjusting the height of the blade to compensate for ditches and other such disturbances.
Embodiments described herein provide for a predictive control system to predict disturbances (e.g., due to a ditch) to body 102 due to disturbances in terrain 108 based on motion of blade 104. The predictive control system comprises a controller 120, a set of sensors 122 disposed on blade 104 and/or sensors 124 disposed on body 102, and one or more actuators 118 coupled to body 102 and blade 104. Controller 120 receives data from the set of sensors 122 and/or sensors 124 to predict disturbances to body 102 and generates control signals for controlling actuators 118 to adjust the height of blade 104 to compensate for the predicted disturbances. Advantageously, controller 120 predicts the disturbances on body 102, thereby providing sufficient time to adjust blade 104 for compensating for ditches and other such disturbances. For simplicity of exposition, the prediction of disturbances to body 102 due to disturbances in terrain 108 will first be described for a 2D environment with respect to
At block 304, body attitude (position) of the vehicle is determined based on a set of sensors mounted on the body of the vehicle. The set of sensors for determining the body attitude may comprise a position sensor for determining the (X, Y) Cartesian coordinates of the body of the vehicle. At block 302, body kinematics of the vehicle is determined based on the set of sensors mounted on the body of the vehicle and the body attitude (determined at step 304). In one example, the set of sensors for determining body kinematics may comprise an angular rotation sensor and an accelerometer. At block 308, blade forward kinematics is determined based on the body attitude, the body kinematics, and a set of sensors mounted on the blade of the vehicle. At block 310, blade attitude is determined based on the blade forward kinematics. At block 306, inverse rotational kinematics of the blade is determined based on the blade attitude and the body attitude. At block 312, path and trajectory planning is performed based on surface query results from surface engine 314. At block 316, blade inverse kinematics is determined based on the path and trajectory planning. At block 318, joint to ram kinematics is determined from the blade inverse kinematics. At block 320, the joint to ram kinematics is input into a controller (e.g., a proportional-integral-derivative controller), which outputs instructions to valves 322 for adjusting the height of the blade.
The vehicle may be initially travelling over a terrain to manipulate the terrain via the implement to achieve a target terrain surface. The height of the implement of the vehicle is adjusted according to initial error values to achieve the target terrain surface. However, adjusting the height of the implement according to the initial error values may not be able to compensate for some disturbances such as, e.g., ditches in the terrain. In accordance with method 500, compensated values are determined for compensating for ditches and other disturbances in the terrain. The compensated values may be combined with the initial error values to generate final error values for adjusting the height of the implement to achieve the target terrain surface while also compensating for ditches and other disturbances in the terrain.
At step 602, sensor data is received from a set of sensors disposed on a vehicle. The vehicle may be any vehicle having an implement coupled to a body, such as, e.g., a construction vehicle (e.g., a dozing machine having a blade couple to a body or a compact track loader having a blade coupled to a body) or an agricultural vehicle (e.g., a combine harvester having a header coupled to a body). In one example, the vehicle is dozing machine 100 of
The set of sensors may include any number of suitable sensor or sensors for determining the position and the orientation of the body and the implement of the vehicle, as well as the linear and angular velocities for each axis. In one embodiment, the position is defined in (X, Y, Z) Cartesian coordinates and the orientation is defined in (yaw, pitch, roll) Euler angles. However, it should be understood that the position and the orientation may be represented in any suitable format. Exemplary sensors may include an IMU (inertial measurement unit), a GPS (global positioning system) sensor, an LPS (local positioning system) sensor, a sonic range finder, a laser range finder, an encoder, an in-ram pressure sensor, an odometer, or any other suitable sensor.
The set of sensors may be disposed on the vehicle at any suitable location or locations for determining the position and the orientation of the body and the implement, as well as the linear and angular velocities for each axis. For example, the set of sensors may comprise one or more sensors disposed on the implement and/or one or more sensors disposed on the body. In one embodiment, the set of sensors is disposed on the vehicle in a mastless configuration, where two GPS sensors are mounted on the body, an IMU is mounted on the body, and an IMU is mounted on the implement. The GPS sensors mounted on the body form a main-auxiliary pair and run the RTK (real-time kinematic) algorithm. Optionally, where the vehicle is a dozer machine with a push bar, an additional IMU may be mounted on the push bar. In another embodiment, the set of sensors is disposed on the vehicle in a masted configuration, where one or two GPS sensors are mounted on the implement, an IMU is mounted on the implement, and optionally an IMU is mounted on the body.
At step 604, a trajectory associated with the vehicle is determined based on the received sensor data. The trajectory represents the location of a point associated with the vehicle as the vehicle travels over the terrain. The determination of the trajectory will be described with continued reference to
To determine the trajectory, a state of the body of the vehicle and a state of the implement of the vehicle are first determined based on the received sensor data. As shown in
Referring for a moment back to
The state of the body and the state of the implement are determined using the following components:
The state of the body and the state of the implement, along with the target terrain surface, are then mapped to a one dimensional space to determine a one dimensional state of the vehicle as a whole. As shown in
To map the state of body 702 and blade 704 to one dimensional rectifying plane 706, various points of interest on blade 704 are identified:
One or more of such points of interest are projected onto the 1D plane to intersect at a point referred to as the surface intersection. A goal of the control system is to move blade 704 such that the points of interest (as a function time) converge to the surface intersection (also a function of time) in finite time. More generally, the edge of blade 704 should intersect and lie on the surface patch (which is a spatial plane) that intersects the vertical ray extended from the POI.
Although the embodiments described herein can be extended to 3D, they are greatly simplified and gain much more performance if the problem is cast as one defined on a 2D plane (embedded in 3D space). The middle point of blade 704 should not be a basis for choosing a plane because it varies all the time as the blade tilts and/or rotates. Moreover, the trajectory is created as the body moves. Consequently, this plane is chosen as the sagittal rectifying plane 706 dividing the dozer into two parts (e.g., left and right). It can be shown that this does not compromise generality. In other words, controlling the cylinders on this plane will make sure that the problem is also solved in 3D space.
Formally, the navigation coordinate frame is denoted N({right arrow over (X)}, {right arrow over (Y)}, {right arrow over (Z)}). The center of the navigation coordinate frame is not important. The middle point of blade 704 is denoted m(x, y, z) in 3D space, expressed with respect to the navigation frame. The coordinate frame of the edge of blade 704 (centered at m) is denoted M({right arrow over (x)}, {right arrow over (y)}, {right arrow over (z)}), where unit direction {right arrow over (y)} points along the edge of blade 704 (positive towards right), {right arrow over (z)} points down along vertical when blade 704 is at the zero position (determined at calibration time), and {right arrow over (x)} points forward, orthogonal to the {right arrow over (y)} and {right arrow over (z)}. The point of interest is denoted p(x, y, z). The surface intersection point is denoted s(x, y, z). The surface frame centered at p is denoted S({right arrow over (U)}, {right arrow over (V)}, {right arrow over (W)}). The sagittal rectifying plane 706 is denoted P({right arrow over (ι)}, {right arrow over (j)}, {right arrow over (k)}), where {right arrow over (ι)} lies on the plane pointing to the front of the machine, {right arrow over (j)} is orthogonal to the plane, and {right arrow over (k)} is along the local gravity vector.
The state of body 702 and blade 704 may be mapped to rectifying plane 706 as follows. First, a point of interest (the point-fit or best-fit point of interest) is selected by changing the ratio α. Using kinematics, the point of interest is represented in the navigation frame to get p(x, y, z). m and M are computed by kinematics, resulting in:
p(x,y,z)=m+α*{right arrow over (y)}
Second, the POI is projected in the vertical direction {right arrow over (Z)} to intersect a surface patch of the desired surface. Third, the line segment L, representing the edge of blade 704, is projected onto the surface patch. By definition, point s should already be on this projection. The unit vector {right arrow over (l)} is assumed to be on line segment L. Fourth, m is projected along {right arrow over (y)} onto P and the projected point is denoted mP. Fifth, s is projected along {right arrow over (l)} onto P, where the projected point is denoted sP. Finally, sixth, mP and sP are added as a blade point and target surface point respectively to the trajectory. The frames for both points will be the same as P since they reside on the same plane. It is to be noted that yaw and roll of blade 704 will change the position of mP, however this change is much smaller than the change in m, helping the stability of the system.
Referring back to step 604 of
In one embodiment, each point of the trajectory is determined based on its suitability for eliciting information about the shape of the ground. For example, if the points of the trajectory are taken as the tip of the implement, then it must be assumed that the implement is always in contact with the surface of the terrain, which might not always be true. If the implement pitches up, it will lose contact with the surface of the terrain and lead to fictitious humps and ditches. In another embodiment, each point of the trajectory is determined based on a virtual point on the body. Such a virtual point is located to be under the blade tip, which is further away from the physical body of the vehicle. The virtual point can be thought of as the vertical projection of the tip of the implement down onto the body, had the body been long enough. In another embodiment, each point of the trajectory is a point as representing the surface of the terrain instead of blade tip, which may be a good choice when the body only pitches up and down. In another embodiment, each point of the trajectory can be determined by comparing the vertical heights of the tip of the implement and the virtual point on the body and selecting the point with the lowest vertical height. Where the implement loses contact with the surface of the terrain, the trajectory would still be a reasonable estimate of where the surface of the terrain is. In another embodiment, each point of the trajectory may be determined to represent the surface of the terrain based on the amount by which the implement penetrates the target surface. This would be a good choice if the machine is close enough to the target surface, or, in other words, where the actual surface of the terrain is almost equal to the desired surface. However, for computational purposes, a small dither must be added to the point. Otherwise, the gradient of the point will be a constant value and not zero at inflection points.
In one embodiment, the trajectory is created in a volatile mode. In the volatile mode, points are added to the trajectory without any constraints. Accordingly, as time advances (regardless of whether the vehicle is moving or not), points are estimated and added. Depending on the rate of the system, points might, for example, be added approximately every 10 milliseconds. So, the points are always 10 ms apart in time. However, if the vehicle is static, the points will be forming a cloud centered at the mean of the added points. The width of the cloud is determined by the variances of the ensemble of filters in the system. The trajectory, however, has a maximum capacity. Once the maximum capacity is exceeded, the oldest point added at the end of the trajectory will be removed to make room for a new point. If the vehicle starts to move, over time, the point cloud will form a trail (referred to as a trajectory history). Depending on how fast the vehicle is moving, new points will be spaced apart based on the speed of the vehicle. For example, if the vehicle is travelling at 1 meter per second, with the rate of 10 ms=0.01 sec, in one second approximately 100 points will be added to the trajectory spaced 10 mm apart from each other. Thus, the trajectory will be of variable length as a function of the speed of the vehicle. In another embodiment, the trajectory is created in a retained mode. In the retained mode, the trajectory has a predefined maximum length. Once the predefined maximum length is reached, as points are added to the trajectory at the front, points are dropped from the trajectory at the tail to maintain the predefined maximum length. Points are added to the trajectory spaced apart according to a predefined spacing distance. For both the volatile mode and the retained mode, a time delay limit may be defined between two consecutive points for both the volatile mode and the retained mode. If the delay between two consecutive points exceeds the time delay limit, the trajectory will be reset.
At step 606, a profile of the terrain is estimated based on the determined trajectory associated with the vehicle. The trajectory associated with the vehicle roughly approximates the profile of the terrain, however is a very coarse indicator of the pitching behavior of the body of the vehicle. For example, the trajectory may not be an accurate representation of the profile of the terrain where the vehicle encounters a narrow ditch, where the implement is not in contact with the terrain, or where there is oscillation of the implement. Accordingly, the profile of the terrain is estimated by simulating the pitch of the body as the vehicle travels over the terrain (as approximated by the trajectory). The pitch of the body provides a more accurate profile of the terrain as compared to the trajectory of the vehicle. As shown in
In one embodiment, motion of the body is simulated using a rigid-body approach to determine the pitch of the body as the vehicle travels over the terrain. In the rigid-body approach, the vehicle is modelled as a rigid body characterized with a mass and a mass moment of inertia (which changes with changes in articulation geometry). Various sub-systems of the vehicle may be modeled in the rigid body model of the vehicle, such as, e.g., the body, the implement, the tracks, and the wheels. In some embodiments, the sub-systems modelled in the rigid body model of the vehicle may also include the suspension system, track shoes, or any other sub-system of the vehicle. To simplify the modelling, the interaction between the tracks and the terrain are modelled without taking into account the portions at the front and back of the tracks that curve up and do not interact with the terrain.
One challenge is to determine the stiffness and damping parameters of springs k and dampers b in spring-damper pairs 814, respectively. The springs k are nonlinear springs that model the elastic behavior of the rubber track 812 and pressure-sinkage behavior of terrain 808. According to Bekker's equation, the pressure-sinkage relation is given by:
where p is pressure, y is the amount of sinkage, b is the radius of the contact area of terrain 808, and
kϕ, and n are empirical constant parameters of terrain 808. The calculated sinkage y represents the force produced by terrain 808 (and applied to springs k). The exponent of y may potentially make the spring k nonlinear.
Returning to
The profile of the terrain comprises a plurality of points. The ditch is first detected in the terrain by analyzing a current point in the estimated profile of the terrain. The current point in the estimated profile of the terrain is a point at a predetermined distance from the front of the estimated profile of the terrain. As the vehicle travels over the terrain, additional points are be added to the estimated profile of the terrain, advancing the current point forward. Each point in the estimated profile of the terrain is associated with a shape profile representing a shape characteristic of the terrain. Based on the analysis of the current point, the shape profile associated with the current point (and possibly other points) may be updated to define the shape characteristic.
Compensation values for adjusting the height of the implement are then determined based on the estimated profile of the terrain to compensate for the detected ditch. In particular, if the current point is detected to be a ditch, the estimated profile bz(x) is traversed back to the last point determined to be a hump (or to the end of the estimated profile bz(x) if a last point determined to be a hump does not exist). The differential magnitude of the estimated profile bz(x) at the current point and at the last point determined to be a hump is calculated and used to update the profile associated with the points between the current point and the last point. In one embodiment, compensation values for adjusting the height of the implement may be determined based on the estimated profile of the terrain to compensate for the detected humps. If the current point is detected to be a hump, the estimated profile bz(x) is traversed back to the last point determined to be a ditch (or to the end of the estimated profile bz(x) if a last point determined to be a ditch does not exist). The differential magnitude of the estimated profile bz(x) at the current point and at the last point determined to be a ditch is calculated and used to update the profile associated with points between the current point and the last point.
Each point in the estimated profile bz(x) associated with an updated profile is identified as being adjusted. Unadjusted points occur where the body of the vehicle is travelling too fast or the ditch is too wide. In these cases, the height of the implement is user defined.
The shape profiles associated with points in the estimated profile bz(x) detected as being a ditch (i.e., the range of points between the current point and the last point determined to be a hump) may be updated by selecting a shape characteristic of the terrain. The shape characteristics may represent any suitable shape.
The compensation value for each of point in the range of points is determined by combining the shape characteristic with the differential magnitudes. In one embodiment, the shape characteristic may have a height ranging from 0 to 1 and may be overlaid over the range of points. The compensation value for each point may be determined by multiplying the height of the shape characteristic with the differential magnitude.
Returning to
In some embodiments, a simple controller (e.g., a PID controller) performing method 600 may perform poorly due to actuator delay. Predictive controllers (e.g., Smith Predictor, MPCs) and other more sophisticated controllers may be able to suitably perform method 600, but require mathematical modelling of the behavior vehicle. In accordance with one embodiment, the vehicle may be mathematically modelled. In
The kinematic model for the schematic diagram 1200 is given as follows:
{dot over (x)}1=v1 cos(θ1)
{dot over (y)}1=v1 sin(θ1)
x2=x1+l1 cos(θ1)+l2 cos(θ1+θ2)
y2=y1+l1 sin(θ1)+l2 sin(θ1+θ2)
{dot over (x)}2={dot over (x)}1−l1ω1 sin(θ1)−l2(ω1+ω2)sin(θ1+θ2)
{dot over (y)}2={dot over (y)}1+l1ω1 cos(θ1)+l2(ω1+ω2)cos(θ1+θ2)
{dot over (x)}2=v1 cos(θ1)−l1ω1 sin(θ1)−l2(ω1+ω2)sin(θ1+θ2)
{dot over (y)}2=v1 sin(θ1)+l1ω1 cos(θ1)+l2(ω1+ω2)cos(θ1+θ2)
The state-space model for the schematic diagram 1200 is given as follows:
{dot over (x)}1=v1 cos(x3)−l1ω1 sin(x3)−l2(ω1+ω2)sin(x3+x4)
{dot over (x)}2=v1 sin(x3)+l1ω1 cos(x3)+l2(ω1+ω2)cos(x3+x4)
where the state is {right arrow over (x)}=(x1, x2, x3, x4)T=(x2, y2, θ1, θ2)T, the input is {right arrow over (u)}=(v1, ω1, ω2)T, the reference input is {right arrow over (ud)}=(v1, ω1, 0)T, and xd=x2=y2=0 gives the reference trajectory. ω1 is the only controlled variable. However, the control of ω1 is not direct, but is the output of the actuator. In one embodiment, the actuator models can be identified as having a first or second order lag step response with a time delay. Such models can also be expressed in the state space and, together with the differential kinematic model of the body and implement, form the complete model for the system.
A linear state space model for a typical dozing machine (including a CTL) will now be derived. This model is based on the kinematic structure of the vehicle. The vehicle will be modeled as being composed of rigid links connected to (and moving with respect to) each other via 1 degree of freedom joints. Links can have arbitrary shapes and are characterized by their location and orientation with respect to a reference frame. To each link is attached a coordinate frame. To each joint is attached a unit vector indicating motion along or around it, depending on the type of the joint. Sensor positions and other important points of the machine are considered to be part of some link. These points are expressed with respect to the link they are attached to. Links and joints together form open (or closed) chains or trees. Such a rigid-body model can be very detailed but only a sufficiently detailed one will be discussed here.
The linear state space model will have the following links and joints in sequence:
The kinematics-dynamics module in the proposed system has the following responsibilities:
Formally, pBladeNav(x, y, z) denotes the position of the reference point (0,0,0) on the blade link expressed in the navigation frame. This same point, expressed in the blades own frame will be denoted by pBladeBLade(x, y, z) or simply pBlade(x, y, z). Other points on the blade are relative to this point such as m(x, y, z), the blade middle point. One choice for pBlade is m itself. RBladeNav denotes the rotation matrix of the blade frame in navigation frame. RBladeBody denotes the rotation matrix from body frame to blade frame. RBladeNav denotes the rotation matrix from blade to navigation frame. pBodyNav(x, y, z) denotes an arbitrary point on the body but usually taken to be the center of mass. RBodyNav denotes the rotation matrix from body to navigation frame.
As noted above, the kinematic structure has 5 links connected by 4 joints. All the joints are rotary. The joint angles are denoted Θ(t)=(θ1, θ2, θ3, θ4, θ5). A description of each joint is as follows:
It is to be noted that due to the actual mechanism of the implement, θ2(t), θ3(t) and θ4(t) are not independent of each other. θ3(t) will change if θ2(t) changes, and the same is true for θ4(t). Change in θ3(t) can be compensated by tilting the blade, however θ4(t) is a characteristic of the vehicle and cannot be manipulated with actuators.
Θ(t) Is an element of the joint space of the implement. Each value of mBody(x, y, z) (blade middle point in body frame) corresponds to a unique Θ(t) (not true in general but true in our special kinematic structure). These two are related by the formula
pBladeBody(x(t),y(t),z(t))=Kp(Θ(t))
where Kp(Θ(t)) is the kinematic mapping. This mapping can be constructed using robotics algorithms. Briefly, it involves constructing special 4 by 4 matrices (homogeneous transformations) Ai(θi) for each link-joint, multiplying them together and then extracting the position part:
Kp(Θ)=K(Θ)*(0001)T
where
K(Θ)=A1(θ1)*A2(θ2)*A3(θ3)*A4(θ4)*A5(θ5)
is the homogeneous kinematics matrix, such that
Also,
{dot over (p)}BladeBody(x,y,z)=Jp(Θ(t))*{dot over (Θ)}(t)
where Jp(Θ(t))=∂Kp(Θ)/∂Θ is the Jacobian matrix and {dot over (Θ)}(t) is the rate of change of joint values. More generally,
The forward kinematics model can now be states as
where ωBody is the angular rates of turn of the body around its axes.
For blade inverse kinematics, Θ(t) needs to be found given RBladeNav and RBodyNav. These matrices are independently estimated by the observer module. To do this, it is noted that the dozer blade mechanism can be modeled by the rotation matrix constructed as a Tait-Bryan angle sequence Y1-Z2-X3:
R=RBladeBody=RBodyNav
which, when expanded, becomes:
Thus, the angles are easily computed as
This method is complemented with a calibration phase. The reason is if the blade rolls, the boom pitch calculated will be in error. Thus, while calibrating the machine, the apparent observed boom pitch due to tilting must be modeled and subtracted from the value computed here. A quadratic curve is sufficient to model this dependence.
In case an additional IMU is installed on the boom, θ1 does not need to be estimated and can be easily determined using the extra IMU as an inclinometer. Dependence of θ4 on yaw, on the other hand, must always be calibrated. Again, a quadratic curve can model this dependence with sufficient accuracy.
For computing angle rates, we can use
{dot over (Θ)}(t)=Jp(Θ(t))−1ωBladeBody=Jp(Θ(t))−1(ωBlade−ωBody)
The rates for computing joint rates are measured by the IMUs on the body, boom, and blade. However, when the above model is used for predictive control, these rates are the output of the dynamic model of the actuators. A full hydraulic model is too cumbersome and also inaccurate if necessary sensors are not installed, which is normally the case in practice. However, simplified models for the dynamics of hydraulic valves can be easily constructed. Such a model would receive a valve command as input and will output the resultant speed of extension-retraction. In a dozer, the change in length of different cylinders ultimately leads to rotary motion of links around the joints. Thus, the hydraulic models can be thought of as mappings between valve command and joint angular rate. Boom pitch and blade tilt are the only controllable joints resulting in
ω={dot over (θ)}=T(c)
where T( ) denotes the transfer function and cis valve command. The transfer function can be experimentally identified. A second order transfer function with delay
has been shown to be more than sufficient for describing the relationship between a command sent to the valve and the measured angular velocity. The measurement can be done using the onboard IMUs.
Finally, a dynamic model is used to compute body angular velocity of the body when in contact and interacting with the ground. The ground refers to the estimate of the surface of the terrain on which the body will be moving, in accordance with embodiments described herein. This ground is represented as a curve in 2D space (a profile). It has to be endowed with soil properties to make the interaction realistic. As was previously discussed, a real-time rigid-body approach may be used. It is assumed that a lumped model can be used, comprising a body with mass and moment of inertia, and a series of discrete spring-damper elements attached to and distributed along the track. Interaction can further be limited to the bottom of the track. Here, interaction between the edge of the blade and the ground is not modelled as this would need a force sensor. It is also assumed that there are no suspensions between road wheels and the body (no so safe an assumption in the case of machines like tanks). The parameters selected for the stiffness K and damping D of the individual elements must cater for and represent the properties of the rubber as well as the soil.
For a particular soil type, Bekker's equation (with n=1) gives the relationship between the amount of penetration into the soil and the generated force. But this is exactly the definition of a linear spring. The tabulated parameters of the soil can be used to compute an estimate of the stiffness coefficient of the springs. Damping is added to complement the model. Its value is estimated through experiments.
Given that the problem has been reduced into a 2D one, suppose that travel occurs along x and points have coordinates (x, z). Denote by zc(t) the height of the center of mass of the body. M and I denote the mass and moment of inertia of the body, respectively. The moment of inertia can, in general, be variable if the change in position of the implement with respect to the body is significant.
Forward speed can, in principle, be found by modeling tractive force between the track and the ground but, in this case, it is known (observed) at the beginning of prediction and can be considered to remain constant during the prediction horizon. Thus,
{dot over (x)}c(t)=v
The bounce dynamic equation of the body can be stated as
and where θ(t) is the pitch of the body.
Similarly, for the pitch dynamics we have:
where
τi(t)=lifi cos(ϕi)cos(θ)
In one embodiment, the performance of a control system in accordance with method 600 may be assessed. To assess the control system, the predicted body pitch (determined at step 606) is correlated with the actual body pitch after the body passes over the point where the implement was located. In
The body-to-body correlation measures the predictability of the interaction between the tracks and the terrain. To calculate the body-to-body correlation, body pitch will be compared to the Z component of a virtual body point located a certain distance from the center of mass of the body. The certain distance is the same distance as the distance between the point at the center of mass of the body and a point at the edge of the implement. If the height of the virtual point corresponds (correlates) with the height of the point at the center of mass of the body (representing the pitch pattern of the body), there is a higher chance that the body will behave as expected when it reaches the location of the virtual point. A higher correlation indicates a higher confidence in the determined compensation values.
The body-to-implement correlation measures the amount that the motion of the implement can predict motion of the body. This correlation is calculated by comparing pitch of the body with the Z component of a point on the implement. A higher body-to-implement correlation indicates oscillatory behavior of the implement. Thus, the control system should reduce the body-to-implement correlation.
In one example, a vehicle travels over a perfectly sinusoidal terrain.
The lack of confidence of the correlations may be computed as follows
where σub and σbb represent body-body correlation and body-implement correlation respectively and σsoil represents softness of the terrain. The softer the terrain, the less chance that the body exhibits expected behavior. In other words, the softer terrain may result in the terrain changing shape and/or the position of the implement not representing the profile of the terrain. In such a situation, the strength of the corrections should be decreased.
Method 600 may be performed by any suitable controller. In one embodiment, the controller is a low-level controller. The low-level controller ensures that the edge of the implement tracks the surface of the terrain according to the target surface. The problem was reduced to that of convergence and tracking of one point on the plane s(x, z) (target level) by another p(x, z) (projection of blade edge on body sagittal). This is called elevation (mainfall) control for dozers. At the same time, the controller must also make sure that the whole edge is on the desired cross-slope (as dictated by the surface). The mainfall and cross-slope errors are denoted emainfall and ecross-slope, respectively. Cross-slope control can be thought of as being orthogonal to mainfall control and can be done independently from the other. The actuators effecting these two can be actuated separately but there is coupling between them due to the hydraulic system. It is, then, beneficial to couple them to achieve smooth tracking and avoid setpoint chasing. For example, an smooth switching (weighting) mechanism such as
Kelevation=Ke(−λe
can make sure that the desired cross-slope has been adequately achieved before attempting elevation (boom pitch) adjustment with full force. Here, Kelevation is the gain of the elevation controller.
Due to the delay in actuators, the controller should be able to cope with output delay in plants. One suitable controller is a specially tuned PID controller. However, since the valve model is known with sufficient accuracy through measurements, a better solution would be a Smith predictor type controller. An exemplary Smith predictor type controller 1400 is shown in
It should be understood that the scope of the embodiments described herein is more general and may be easily applied to systems equipped with other means of determining the profile of the surface of the terrain. For example, the profile of the surface of the terrain may additionally or alternatively be determined using an optical sensor (e.g., laser sensor) directed towards the surface of the terrain, possible mounted on the boom. If using the optical sensor mounted on the boom, instead of determining the point of the trajectory as described above, the point may be computed using a kinematic formula based on body position and orientation, boom pitch angle, location of the optical sensor on the boom, and the distance measured by the optical sensor.
Systems, apparatuses, and methods described herein may be implemented using digital circuitry, or using one or more computers using well-known computer processors, memory units, storage devices, computer software, and other components. Typically, a computer includes a processor for executing instructions and one or more memories for storing instructions and data. A computer may also include, or be coupled to, one or more mass storage devices, such as one or more magnetic disks, internal hard disks and removable disks, magneto-optical disks, optical disks, etc.
Systems, apparatus, and methods described herein may be implemented using a computer program product tangibly embodied in an information carrier, e.g., in a non-transitory machine-readable storage device, for execution by a programmable processor; and the method and workflow steps described herein, including one or more of the steps or functions of
A high-level block diagram of an example computer 1502 that may be used to implement systems, apparatus, and methods described herein is depicted in
Processor 1504 may include both general and special purpose microprocessors, and may be the sole processor or one of multiple processors of computer 1502. Processor 1504 may include one or more central processing units (CPUs), for example. Processor 1504, data storage device 1512, and/or memory 1510 may include, be supplemented by, or incorporated in, one or more application-specific integrated circuits (ASICs) and/or one or more field programmable gate arrays (FPGAs).
Data storage device 1512 and memory 1510 each include a tangible non-transitory computer readable storage medium. Data storage device 1512, and memory 1510, may each include high-speed random access memory, such as dynamic random access memory (DRAM), static random access memory (SRAM), double data rate synchronous dynamic random access memory (DDR RAM), or other random access solid state memory devices, and may include non-volatile memory, such as one or more magnetic disk storage devices such as internal hard disks and removable disks, magneto-optical disk storage devices, optical disk storage devices, flash memory devices, semiconductor memory devices, such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM), digital versatile disc read-only memory (DVD-ROM) disks, or other non-volatile solid state storage devices.
Input/output devices 1508 may include peripherals, such as a printer, scanner, display screen, etc. For example, input/output devices 1508 may include a display device such as a cathode ray tube (CRT) or liquid crystal display (LCD) monitor for displaying information to the user, a keyboard, and a pointing device such as a mouse or a trackball by which the user can provide input to computer 1502.
One skilled in the art will recognize that an implementation of an actual computer or computer system may have other structures and may contain other components as well, and that
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 and spirit of the invention. Those skilled in the art could implement various other feature combinations without departing from the scope and spirit of the invention.
Number | Name | Date | Kind |
---|---|---|---|
6904979 | Confoey | Jun 2005 | B1 |
20130277943 | Wendte | Oct 2013 | A1 |
20140019015 | Claxton | Jan 2014 | A1 |
20140343800 | Nelson | Nov 2014 | A1 |
20180038068 | Hashimoto et al. | Feb 2018 | A1 |
20190218747 | Hashimoto | Jul 2019 | A1 |
20190234045 | Wiewel et al. | Aug 2019 | A1 |
20200105072 | Wisley | Apr 2020 | A1 |
20210340735 | Veasy | Nov 2021 | A1 |
20220151133 | Mckinzie | May 2022 | A1 |
Number | Date | Country |
---|---|---|
2586918 | May 2013 | EP |
3660231 | Jun 2020 | EP |
Entry |
---|
International Search Report and Written Opinion dated Feb. 10, 2022, in connection with International Patent Application No. PCT/US2021/071792, filed Oct. 8, 2021, 14 pgs. |
Number | Date | Country | |
---|---|---|---|
20220195693 A1 | Jun 2022 | US |