This disclosure relates to a system and method for providing trajectory tracking for an autonomous ground vehicle. The system and method may enable the autonomous ground vehicle to operate safely at relatively high speeds.
Autonomous ground vehicles (AGV) may generally be required to track a trajectory (i.e., follow a route or path within some tolerance or error) without human intervention, i.e., without a human providing steering input to the AGV either on-board or remotely. The trajectory may be predefined and/or may be dynamically determined. The AGV may therefore include sensors that provide positional data, e.g., lateral and longitudinal position, heading and/or velocity. It may be desirable for the AGV to track the trajectory while maintaining a relatively high speed. At relatively high speeds, vehicle dynamics may affect vehicle stability and should, therefore, be considered by a trajectory tracking function.
The present disclosure relates in one embodiment to a reference yaw rate generator for an autonomous vehicle control system. The reference yaw rate generator is configured to generate a reference yaw rate (rr) based on an actual latitudinal position (Y), a desired latitudinal position (Yd), an actual longitudinal position (X), a desired longitudinal position (Xd) and an actual heading (ψ) of the autonomous ground vehicle
The present disclosure relates in another embodiment to an autonomous ground vehicle control system for a vehicle having a steering mechanism. The system includes a reference yaw rate generator for an autonomous vehicle control system. The reference yaw rate generator is configured to generate a reference yaw rate based on an actual latitudinal position, a desired latitudinal position, an actual longitudinal position, a desired longitudinal position and an actual heading of the autonomous ground vehicle. The system further includes a yaw rate tracking controller configured to receive the reference yaw rate and configured to adjust a steering mechanism based on the reference yaw rate.
The present disclosure relates in another embodiment to a method for steering an autonomous ground vehicle. The method includes providing an actual latitudinal position (Y), a desired latitudinal position (Yd), an actual longitudinal position (X), a desired longitudinal position (Xd) and an actual heading (ψ) of the autonomous ground vehicle. The method further includes generating a reference yaw rate (rr) based on the actual latitudinal position (Y), the desired latitudinal position (Yd), the actual longitudinal position (X), the desired longitudinal position (Xd) and the actual heading (ψ) of the autonomous ground vehicle.
In yet another embodiment, the present disclosure relates to an article comprising a storage medium having stored thereon instructions that when executed by a machine result in the following operations for an autonomous ground vehicle: generating a reference yaw rate (rr) based on an actual latitudinal position (r), a desired latitudinal position (Yd), an actual longitudinal position (X), a desired longitudinal position (Xd) and an actual heading (ψ) of the autonomous ground vehicle.
The detailed description below may be better understood with reference to the accompanying figures which are provided for illustrative purposes and are not to be considered as limiting any aspect of the invention.
In general, the present disclosure describes a system and method that provides trajectory tracking for an autonomous ground vehicle (AGV). An AGV may be understood to mean a vehicle that travels substantially along a path (i.e., tracks a trajectory) without a human (on-board and/or remotely) providing steering input to the AGV. The path may be predefined and/or may be dynamically determined. It may be desirable for the AGV to travel along the trajectory at a relatively high speed. For example, it may be desirable for the AGV to travel at a speed of about 50 km/h (kilometers per hour). At such a speed, the vehicle dynamics may affect the AGV's ability to track a trajectory and/or maintain stable operation. Vehicle dynamics may include velocity, and/or yaw rate.
The accuracy with which an AGV is tracking a trajectory may be related to a positional error. For example, a positional error may include a distance between a location of the AGV, e.g., measured at or near the AGV's center of gravity and a desired trajectory. A frame of reference for this distance measurement may be inertial, i.e., global, as detected by a global positioning system (GPS), for example. A frame of reference may be local, i.e., relative to the AGV, and may be centered at the AGV's center of gravity.
A positional error may further include a heading or yaw angle. The yaw angle may be the angle between a longitudinal axis of the AGV and the desired heading of the AGV in the inertial frame. It may be appreciated that the heading or yaw angle may provide an angular (i.e., rotational) relationship between the inertial frame and the AGV frame.
A system for controlling an AGV to track a trajectory may detect a position and may command an AGV steering mechanism to adjust the yaw of the AGV. A steering mechanism may include adjusting an angle of one or more wheels relative to the AGV longitudinal axis, individually braking one or more wheels, and/or torque vectoring one or more wheels. At relatively high speeds, vehicle dynamics may affect operation of the vehicle. For example, navigating a tight turn at a relatively high speed may cause the vehicle to roll or spin (i.e., lose traction). It may therefore be desirable to account for vehicle dynamics when controlling an AGV to track a trajectory.
In an embodiment consistent with the present disclosure, a control system may be configured to determine a desired yaw rate and provide commands to the AGV to approach and/or achieve the desired yaw rate. By adjusting the AGV yaw rate, the controller may provide trajectory tracking, i.e., may minimize a tracking error, at relatively high speeds without causing an unstable condition. For example, the AGV yaw rate may be adjusted to minimize a difference between the desired yaw rate and the AGV yaw rate and/or to minimize a lateral distance between the AGV and the trajectory.
Attention is directed to
The Path Planner 110, may provide desired position data to the Desired Yaw Rate Generator 120. Desired position data may include an AGV 140 desired location in a global and/or inertial frame. The AGV 140 desired location may include a desired latitudinal position, Yd, and a desired longitudinal position, Xd. Desired position data may also include a time derivative of desired latitudinal position, {dot over (Y)}d, and a time derivative of desired longitudinal position, {dot over (X)}d. The AGV 140 desired position data may further include a desired heading or yaw angle, {dot over (ψ)}d. The Path Planner 110 may receive AGV 140 state and environment information from the Desired Yaw Rate Generator 120. The AGV 140 state and environment information may be provided to the Desired Yaw Rate Generator 120 from the AGV 140 via the Yaw Rate Tracking Controller 130.
The Desired Yaw Rate Generator 120 may receive actual position and planar motion data from the AGV 140 via the Yaw Rate Tracking Controller 130. Actual position data may include actual AGV 140 latitudinal position, Y, actual AGV 140 longitudinal position, X, and actual AGV 140 heading ψ. Planar motion data may include AGV 140 longitudinal velocity, Vx, and lateral velocity, Vy. The longitudinal velocity, Vx, and lateral velocity, Vy, may be referenced to a center of gravity of the AGV 140. Accordingly, the AGV 140 may include a global positioning system (GPS) and/or an inertial measurement unit (IMU). The IMU may include one or more gyroscopes and/or one or more accelerometers. Vx and Vy may be determined based on data from the GPS and/or IMU.
The Yaw Rate Tracking Controller 130 may receive a desired yaw rate, i.e., a reference yaw rate, rr, from the Desired Yaw Rate Generator 120. The Yaw Rate Tracking Controller 130 may further receive a time derivative of heading, i.e., actual yaw rate, {dot over (ψ)}, from the AGV 140. The Yaw Rate Tracking Controller 130 may provide a control signal to the AGV 140 that may cause the AGV 140 to adjust the AGV 140 speed and/or heading according to, inter alia, the reference yaw rate, rr, and the actual yaw rate, {dot over (ψ)}.
The Desired Yaw Rate Generator 120 may be configured to generate a reference yaw rate based on the AGV 140 actual position, desired position, actual velocity, desired velocity and/or heading (yaw angle). Accordingly, the reference yaw rate may depend on vehicle dynamics and may be independent of a mechanism that is used to steer the AGV 140. By incorporating yaw rate control that is dependent on vehicle dynamics, the AGV 140 may be commanded to track a trajectory at relatively high speed while maintaining vehicle stability. Further, by determining a reference (desired) yaw rate that is independent of steering mechanism, the Desired Yaw Rate Generator 120 may be used with any appropriate steering mechanism.
In an embodiment, the Yaw Rate Tracking Controller 130 may provide a control signal to the AGV 140 that may change the steering angle of a steering wheel of the AGV 140. In another embodiment, the Yaw Rate Tracking Controller 130 may provide a control signal to the AGV 140 that may cause the AGV 140 to adjust the angle of one or more wheels relative to an axis of the AGV 140. In an embodiment, the AGV 140 may be capable of two wheel steering. In another embodiment, the AGV may be capable of four wheel steering. In yet another embodiment, the Yaw Rate Tracking Controller 130 may command the AGV 140 to brake one or more wheels in order to effect a change in heading, for example. In yet another embodiment, the Yaw Rate Tracking Controller 130 may command the AGV 140 to apply power to one or more wheels, e.g., torque vectoring. In yet another embodiment, the Yaw Rate Tracking Controller 130 may command the AGV 140 to apply a combination of available steering mechanisms to effect a change in heading.
Attention is directed to
In an inertial frame, an AGV's global position and heading (X Y ψ)T may be described by the following equations of motion as:
{dot over (X)}=V
x cos(ψ)−Vy sin(ψ) (1a)
{dot over (Y)}=V
x sin(ψ)+Vy cos(ψ) (1b)
{dot over (ψ)}=r. (1c)
where {dot over (Y)} and {dot over (X)} are the time derivatives of the actual latitudinal and longitudinal positions, respectively, {dot over (ψ)} is the yaw rate and r is the yaw rate at the vehicle center of gravity, CG. As discussed above, Vx and Vy are AGV 140 longitudinal velocity and lateral velocity, respectively, referenced to the vehicle center of gravity. For example, a vehicle center of gravity may be located as shown in
A latitudinal position error, Ye, and a longitudinal position error, Xe, may be determined, e.g., control block 115. A heading error, ψe, may also be determined.
X
e
=X
d
−X (2a)
Y
e
=Y
d
−Y (2b)
ψe=ψd−ψ (2c)
The AGV 140 desired latitudinal position, Yd, desired longitudinal position, Xd, and desired heading, ψd, may be provided by a path planner, for example. The AGV 140 actual longitudinal position, X, and actual latitudinal position, Y, may be provided by the GPS, for example. The AGV 140 actual heading (yaw), ψ, and actual yaw rate, {dot over (ψ)}, may be provided by the IMU, for example.
It may be appreciated that the latitudinal position error, Ye, the longitudinal position error, Xe, and the heading error, ψe, are referenced to the inertial frame. These errors may be transformed to the AGV frame as:
where xe is the longitudinal position error in the vehicle frame and ye is the lateral position error in the vehicle frame, i.e., both referenced to the vehicle center of gravity, and ψe is the heading error.
In an embodiment, trajectory tracking may include minimizing the lateral position error, ye. A control law may be defined to specify a desired yaw rate to minimize the longitudinal position error, ye. For example, a time derivative, {dot over (y)}e, of the lateral position error may be defined as:
{dot over (y)}
e=−λ1ye, λ1ε (4)
where λ1 is a control gain (a parameter that adjusts the sensitivity to latitudinal and longitudinal position error). Using equations (3) and (4) and assuming that the AGV longitudinal speed tracking control is well-conducted, i.e., xe is small, yields:
−sin(ψ){dot over (X)}d+cos(ψ){dot over (Y)}d−Vy=λ1 sin(ψ)Xe−λ1 cos(ψ)Ye. (5)
It should be noted that, consistent with the present disclosure, the AGV longitudinal speed, Vx, may be tracked by another controller. In other words, the desired yaw rate generator, e.g.,
It may be appreciated that the AGV lateral velocity, Vy, may typically be relatively much smaller than the AGV's longitudinal velocity, Vx. Ignoring Vy in equation (5), and after algebraic manipulation, yields:
where atan is arctangent (inverse tangent) and ψr0 is an intermediate reference heading. Referring again to
It may be appreciated that the arctangent function, and therefore ψr0, has discontinuities corresponding to angles of
l=0, 1, 2, . . . . This may occur when {dot over (X)}d+λ1Xe→0 in equation (6). The discontinuities appear as a jump of π in the arctangent function and are a result of the arctangent being a multivalued function and the convention that an arctangent of a real number lie in the range −π/2 to +π/2. It may be appreciated that the actual AGV heading is not discontinuous. To account for this mathematical discontinuity, a sampled intermediate reference heading ψr0(i), may be filtered according to equation (7):
where ψr0(i) corresponds to a current sample, ψr0(i-1) corresponds to a prior sample, one time step ago and θt is a switching threshold. The effect of equation (7) is to correct for the π jump when the denominator in equation (6) changes sign and thereby maintain continuity in the intermediate reference heading.
The switching threshold, θt, may be set to a value between a maximum intermediate reference heading step size and π. The maximum intermediate reference heading step size may depend on sample rate. For example, for the simulation results discussed below, θt was set to π/2. Referring again to
It may be appreciated that, although not always explicitly shown, the parameters in this system are discrete, i.e., sampled in time. The sample index, i, is explicitly shown in equation (7) and block 135 because the functionality of the filter of equation (7) and block 135 may depend on the relative sample indices. Accordingly, the sample index, i, may be implicitly understood where it is not explicitly shown.
Equation (6) was derived ignoring AGV lateral velocity Vy. Accordingly, a tracking error may be introduced, especially during turning maneuvers when lateral velocity may be relatively greater than during substantially straight travel. To reduce the effect of ignoring AGV lateral velocity, a relatively small feedback term may be added to the intermediate reference heading ψr0. For example, a weighted lateral position error, kye, may be added where (from equation (3) above)
y
e=−sin(ψ)Xe+cos(ψ)Ye (8)
and k is a weight (i.e., may adjust the sensitivity of the reference yaw rate to the lateral position error). Referring to
ψr=ψr0+kye (9)
It may be appreciated that equation (9) represents a desired reference heading that is based on AGV dynamics and the weighting parameters (gains) λ1 and k. A desired reference yaw rate, rr, may be specified based on the desired reference heading, ψr. The desired yaw rate may then be provided to the Yaw Rate Tracking Controller 130 which may then provide one or more steering signals to the AGV 140. As used herein, a steering signal may include a command to adjust an angle of one or more wheels, a command to apply differential braking to one or more wheels and/or a command to apply differential power to one or more wheels, i.e., torque vectoring.
The desired reference yaw rate may be determined in one or more ways. For example, an intermediate desired reference yaw rate, {dot over (ψ)}r, may be defined as the time derivative of the reference heading, ψr. However, this intermediate desired reference yaw rate does not account for a magnitude of a heading error. A desired reference yaw rate, rr, that includes the magnitude of the heading error, can be defined as:
r
r={dot over (ψ)}r+λ2(ψr−ψ), λ2ε (10)
where {dot over (ψ)}r is the time derivative of the desired reference heading, ψr, ψ is the actual heading, and λ2 is a control gain.
Referring again to
As discussed above, once the Yaw Rate Tracking Controller 130 has received the desired reference yaw rate, rr, it may command the AGV 140 to adjust its yaw rate, using whatever steering mechanism may be available e.g., two or four wheel steering, differential braking, torque vectoring or the like. It may be appreciated that the desired reference yaw rate, rr, may be determined and/or updated and then provided to the Yaw Rate Tracking Controller 130 in real time.
As further discussed above, the particular control mechanism used to track yaw rate may be independent of the manner in which the reference yaw rate is determined. The yaw rate tracking control approach may therefore be constrained only in that it must be capable of tracking a desired yaw rate. One example of yaw rate tracking control follows. In this example, a general yaw rate tracking control is derived. The general yaw rate tracking control may account for a variety of steering mechanisms. The general yaw rate tracking control is then simplified for a two-wheel steering, rear wheel drive vehicle to correspond to an actual test vehicle.
Vehicle planar motion (e.g., longitudinal speed, lateral speed, and yaw rate) may be of interest for vehicle dynamic control.
m
v({dot over (V)}x−rVy)=Fx, (11a)
m
v({dot over (V)}y+rVx)=Fy, (11b)
Iz{dot over (r)}=Mz. (11c)
where mv is the vehicle mass (including both sprung and unsprung mass), Vx is vehicle velocity along the x axis (i.e., longitudinal velocity), Vy is vehicle velocity along the y axis (i.e., lateral velocity), and Iz is moment of inertia about the z axis, which is perpendicular to the y plane. The coordinates x, y, z are body-fixed at the center of gravity of the vehicle, CG. The generalized external forces that may act along the vehicle x and y axes are Fx and Fy, and the generalized moment is Mz about the z axis. As discussed above, each of the four tires (wheels) may independently drive, brake, and steer. Thus, these generalized forces/moment may be expressed as:
It may be appreciated that in these relations, δ** is the steering angle of a given wheel, with the first subscript representing front/rear and the second subscript right/left.
Tires may be the only vehicle components generating external forces that can be effectively manipulated to affect vehicle motions. Tires are therefore important for vehicle dynamics and control. Tire longitudinal force, lateral force, and aligning moment may be complex nonlinear functions of tire normal force, slip, slip angle, and tire-road friction coefficient.
A tire model may describe a dependence of a tire force on slip, slip angle, friction coefficient, tire normal force, as well as a coupling between tire longitudinal and lateral forces. Accordingly, longitudinal tire slip may be defined as:
where ωwyi is wheel rotational speed along a wheel y axis, Vxi is the longitudinal speed of the wheel center as a function of vehicle CG velocities, yaw rate and wheel steering angles, and Ri is the tire effective radius, with a specific tire indicated by subscript iε(fl fr rl rr). (Note that the subscript i used here is not the time sample index discussed above.) The slip angle for each tire may be calculated as:
For notational simplicity, slip angle may be represented as:
αi=fαi(δi,ξ) (15)
where ξ=[Vx,Vy,r]T is the vehicle motion vector.
Many tire models exist. For control simplicity, the following models may be adopted.
F
xi
=F
zi
K
x(μ)si (16a)
F
yi
=F
zi
K
y(μ)αi (16b)
It may be appreciated that this tire model may be valid when a tire is not experiencing significant longitudinal and lateral forces simultaneously.
Referring to equations 16a and 16b, it may be appreciated that the amplitudes of a tire longitudinal and lateral forces directly depend on the tire's normal force Fzi. The static tire normal load can be calculated from the equations:
For vehicle dynamics control systems, the effect of the load transfers due to vehicle sprung mass longitudinal and lateral accelerations may be considered in order to closely approximate the actual tire normal load during driving. For simplicity, it may be assumed that a front roll center height and a rear roll center height of the vehicle (sprung mass and unsprung mass) are the same. The dynamic load transfer of each tire may then be calculated from
where, κf, κr are roll stiffness factors of the front and rear suspension, respectively, and κf+κr=1. This estimation approach depends on the vehicle body longitudinal and lateral accelerations. These quantities may be measured by a GPS and/or IMU. Bias issues that may be associated with the inertial sensors can be overcome by sensor fusion methods, for example.
For example, a vehicle with rear two-wheel drive and front two-wheel steering, yields δfl=δfr=δs, δrl=δrr=0. In this example, a Ford/Explorer XLS was used as the target AGV platform. Since the vehicle has a rear wheel drive, the longitudinal forces of the front tires may be ignored and the longitudinal forces of the rear tires were assumed to be the same. With these simplifications, the yaw moment acting on the vehicle center of gravity, CG, then becomes
M
z
=l
s sin δs(Fyfl−Fyfr)+lf cos δs(Fyfl−Fyfr)−lr(Fyrl−Fyrr). (19)
For normal steering angle ranges, δs may be relatively small so that cos δs≈1 and the first term in equation (19) may be ignored. Equation (19) may then be further simplified as
where ΔM is the yaw moment caused by the ignored terms. Substituting (14) and (16) into (20), yields
where Rs is the steering mechanism gear ratio.
Recognizing that there may be some parametric uncertainties (e.g., payload and road condition variations) and un-modeled dynamics (e.g., roll and pitch motions), sliding mode control (SMC) may be used for the yaw rate tracking to enhance system robustness and address system nonlinearities. A sliding surface for the yaw rate tracking control may be defined as:
S
r
=r−r
r+λr(ψ−ψri). (22)
A time derivative of the surface is:
A Lyapunov function candidate may be:
The Lyapunov function candidate's derivative may be given by
{dot over (V)}r=Sr{dot over (S)}r. (25)
{dot over (V)}r should be less than or equal to −ηr|Sr| to ensure the attractiveness of the sliding surface. The following control law may meet this requirement
where
It may be appreciated that the yaw rate controller discussed above is just one example of a yaw rate controller that may receive a desired yaw rate from the yaw rate generator. It may also be appreciated that the particular yaw rate controller chosen may depend on the steering mechanisms available in a vehicle, e.g., two or four wheel steering, independent wheel braking and/or independent wheel powering (i.e., torque vectoring). In the experimental results discussed below, the test vehicle was a Ford Explorer XLS, with rear two-wheel drive, with front two-wheel steering, without independent wheel braking and without independent wheel powering. The test vehicle was simulated using CarSim®, a vehicle dynamic simulation program available from Mechanical Simulation Corporation.
The CarSim® vehicle simulation was validated against an actual Ford Explorer XLS test vehicle, using step-steering maneuvers at three vehicle speeds: 16 km/h, 24 km/h and 48 km/h.
For the illustrative experimental results that follow, the CarSim® simulation of the Ford Explorer XLS was used. The speed of the test vehicle was set at about 50 km/h. A proportional-integral controller was used to track vehicle speed. As a trajectory tracking comparison, also using the CarSim® simulation, a proportional-integral controller was implemented with the vehicle local lateral position error as a reference input and a steering command as output. Accordingly, each of the plots that follow includes illustrative yaw rate control, consistent with the present disclosure, and position error control, for comparison.
Attention is directed to
It should also be appreciated that the functionality described herein for the embodiments of the present invention may be implemented by using hardware, software, or a combination of hardware and software, as desired. If implemented by software, a processor and a machine readable medium are required. The processor may be any type of processor capable of providing the speed and functionality required by the embodiments of the invention. Machine-readable memory includes any media capable of storing instructions adapted to be executed by a processor. Some examples of such memory include, but are not limited to, read-only memory (ROM), random-access memory (RAM), programmable ROM (PROM), erasable programmable ROM (EPROM), electronically erasable programmable ROM (EEPROM), dynamic RAM (DRAM), magnetic disk (e.g., floppy disk and hard drive), optical disk (e.g. CD-ROM), and any other device that can store digital information. The instructions may be stored on a medium in either a compressed and/or encrypted format. Accordingly, in the broad context of the present invention, and with attention to
Although illustrative embodiments and methods have been shown and described, a wide range of modifications, changes, and substitutions is contemplated in the foregoing disclosure and in some instances some features of the embodiments or steps of the method may be employed without a corresponding use of other features or steps. Accordingly, it is appropriate that the claims be construed broadly and in a manner consistent with the scope of the embodiments disclosed herein.