The present disclosure relates to a trajectory planning system for an autonomous vehicle, where the trajectory planning system ensures maneuvers to avoid one or more moving obstacles always exist when the autonomous vehicle is driving.
Semi-autonomous and autonomous vehicles are becoming more ubiquitous on the road. An autonomous vehicle may execute various planning tasks such as mission planning, behavior planning, and local planning. In general, a mission planner determines a trajectory or route based on an ego vehicle's start position to an end position. A behavior planner focuses on handling moving obstacles and static objects while following any stipulated road rules as the vehicle progresses along the prescribed route determined by the mission planner.
Behavior planners do not currently utilize dynamics-based predictive information to make decisions regarding a vehicle's trajectory. As a result, in some instances a vehicle may not be able to complete a maneuver to avoid a moving obstacle in time during extreme or unexpected events. Some examples of extreme or unexpected event include inclement weather, when an actuator becomes non-operational, or to avoid erratic drivers. In particular, traditional approaches may use a kinematic model combined with worst-case accelerations to constrain the headway between vehicles. However, the kinematic model does not consider both linear and non-linear tire dynamics, higher-slip driving conditions, or coupled-motion between lateral and longitudinal states of the vehicle.
Thus, while current autonomous vehicles achieve their intended purpose, there is a need in the art for an improved trajectory planning system that ensures that evasive maneuvers always exist and are executable within an operating domain of interest by leveraging fidelity dynamic models.
According to several aspects, a trajectory planning system for an autonomous vehicle is disclosed and includes one or more controllers in electronic communication with one or more external vehicle networks that collect data with respect to one or more moving obstacles located in an environment surrounding the autonomous vehicle. The one or more controllers executing instructions to determine a discrete-time relative vehicle state based on an autonomous vehicle dynamics model. The one or more controllers determine, based on the discrete-time relative vehicle state, a position avoidance set representing relative lateral positions and longitudinal positions that the autonomous vehicle avoids while bypassing the one or more moving obstacles when performing a maneuver. The one or more controllers determine a set of ego states for which the autonomous vehicle is unable to execute maneuvers without entering the position avoidance set for a set of given speed limits and road conditions. The one or more controllers compute a plurality of relative state trajectories for the autonomous vehicle, where the plurality of relative state trajectories avoid intersecting an evasion set for the set of ego states. The one or more controllers select a trajectory from the plurality of relative state trajectories for the autonomous vehicle, where the autonomous vehicle follows the trajectory while performing the maneuver.
In an aspect, the one or more controllers select the trajectory by assigning a score to each relative state trajectory for the autonomous vehicle based on one or more properties and selecting the relative state trajectory having the highest score as the trajectory.
In another aspect, the one or more properties include one or more of the following: ride comfort, fuel consumption, timing, and duration.
In yet another aspect, the trajectory planning system comprising a plurality of sensors in electronic communication with the one or more controllers, where the one or more controllers receive a plurality of dynamic variables as input from the plurality of sensors.
In an aspect, the one or more controllers determine the autonomous vehicle dynamics model for the autonomous vehicle based on the plurality of dynamic variables, vehicle chassis configuration information, and a control input vector corresponding to the autonomous vehicle.
In another aspect, the position avoidance set is determined by:
={(es,ed)∈R2: es,l≤es≤es,u,ed,l≤ed≤ed,u}
where S is the position avoidance set, es is a discrete-time relative longitudinal state of the autonomous vehicle, ed is a discrete-time relative lateral state of the autonomous vehicle, es,l is a lower limit of the discrete-time relative longitudinal state es, es,u is an upper limit of the discrete-time relative longitudinal state es, ed,l is a lower limit of the discrete-time relative lateral state ed, and ed,u is a lower limit of the discrete-time relative longitudinal state es, of the position avoidance set .
In yet another aspect, the evasion set for the set of ego states is saved as one or more look-up tables and are indexed based on a current speed limit of a roadway that autonomous vehicle is presently traveling along and one or more road conditions.
In an aspect, the one or more controllers determine the plurality of relative state trajectories for the autonomous vehicle based on an initial state of the autonomous vehicle, a final state of the autonomous vehicle, and one or more levels of driving aggression.
In another aspect, the one or more levels of driving aggression include a conservative level, a moderate level, and an aggressive level of aggression.
In yet another aspect, the one or more controllers determine the set of ego states during an offline process based on one of simulated data and experimental data.
In an aspect, the one or more moving obstacles include another vehicle located along a roadway that the autonomous vehicle is driving along.
In another aspect, the set of ego states represent vehicle states where the autonomous vehicle is unable to execute maneuvers during a time horizon to avoid the one or more moving obstacles.
In yet another aspect, the autonomous vehicle dynamics model includes one or more of the following: a linear tire model and non-linear tire models.
In an aspect, an autonomous vehicle including a trajectory planning system is disclosed and includes a plurality of sensors that determine a plurality of dynamic variables, one or more external vehicle networks that collect data with respect to one or more moving obstacles located in an environment surrounding the autonomous vehicle, and one or more controllers in electronic communication with the one or more external vehicle networks and the plurality of sensors. The one or more controllers executing instructions to determine an autonomous vehicle dynamics model for the autonomous vehicle based on the plurality of dynamic variables and vehicle chassis configuration information. The one or more controllers determine a discrete-time relative vehicle state based on the autonomous vehicle dynamics model. The one or more controllers determine, based on the discrete-time relative vehicle state, a position avoidance set representing relative lateral positions and longitudinal positions that the autonomous vehicle avoids while bypassing the one or more moving obstacles when performing a maneuver. The one or more controllers determine a set of ego states for which the autonomous vehicle is unable to execute maneuvers without entering the position avoidance set for a set of given speed limits and road conditions. The one or more controllers compute a plurality of relative state trajectories for the autonomous vehicle, where the plurality of relative state trajectories avoid intersecting an evasion set for the set of ego states. The one or more controllers select a trajectory from the plurality of relative state trajectories for the autonomous vehicle, where the autonomous vehicle follows the trajectory while performing the maneuver.
In another aspect, the one or more controllers select the trajectory by assigning a score to each relative state trajectory for the autonomous vehicle based on one or more properties and selecting the relative state trajectory having the highest score as the trajectory.
In yet another aspect, the evasion set for the set of ego states is saved as one or more look-up tables and are indexed based on a current speed limit of a roadway that autonomous vehicle is presently traveling along and one or more road conditions.
In an aspect, the one or more controllers determine the plurality of relative state trajectories for the autonomous vehicle based on an initial state of the autonomous vehicle, a final state of the autonomous vehicle, and one or more levels of driving aggression.
In another aspect, the autonomous vehicle dynamics model includes one or more of the following: a linear tire model and non-linear tire models.
In an aspect, a method for selecting a trajectory for an autonomous vehicle includes determining, by one or more controllers, a discrete-time relative vehicle state based on an autonomous vehicle dynamics model, where the one or more controllers are in electronic communication with one or more external vehicle networks that collect data with respect to one or more moving obstacles located in an environment surrounding the autonomous vehicle. The method includes determining, based on the discrete-time relative vehicle state, a position avoidance set representing relative lateral positions and longitudinal positions that the autonomous vehicle avoids while bypassing the one or more moving obstacles when performing a maneuver. The method includes determining a set of ego states for which the autonomous vehicle is unable to execute maneuvers without entering the position avoidance set for a set of given speed limits and road conditions. The method also includes computing a plurality of relative state trajectories for the autonomous vehicle, where the plurality of relative state trajectories avoid intersecting an evasion set for the set of ego states. The method also includes selecting a trajectory from the plurality of relative state trajectories for the autonomous vehicle, where the autonomous vehicle follows the trajectory while performing the maneuver.
In another aspect, the method includes selecting the trajectory by assigning a score to each relative state trajectory for the autonomous vehicle based on one or more properties and selecting the relative state trajectory having the highest score as the trajectory.
Further areas of applicability will become apparent from the description provided herein. It should be understood that the description and specific examples are intended for purposes of illustration only and are not intended to limit the scope of the present disclosure.
The drawings described herein are for illustration purposes only and are not intended to limit the scope of the present disclosure in any way.
The following description is merely exemplary in nature and is not intended to limit the present disclosure, application, or uses.
Referring to
The trajectory planning system 10 includes one or more controllers 20 in electronic communication with a plurality of sensors 22 configured to monitor data indicative of a dynamic state of the autonomous vehicle 12 and data indicating obstacles located in an environment 52 (
Referring to both
The offline module 70 considers a control input vector ukh corresponding to the autonomous vehicle 12 and a control input vector uko corresponding to the one or more moving obstacles 54 located in the environment 54. The control input vectors 4, ukh, uko are constrained based on data saved in the one or more controllers 20 or by inference based on information such as vehicle model, vehicle make, and vehicle type, where h denotes the host vehicle (i.e., the autonomous vehicle 12), and o denotes the moving obstacle 54. The control input vector ukh represents a vector form of input variables that are used to determine an autonomous vehicle dynamics model, which is described below. Specifically, the input variables for determining the autonomous vehicle dynamics include a longitudinal acceleration along and a steering wheel angle δ of the autonomous vehicle 12. The input variables, which are in vector form, belongs to or are constrained by an admissible input set uh that captures an upper limit and a lower limit for the longitudinal acceleration along and the steering wheel angle δ. Similarly, a control input vector uko corresponding to the one or more moving obstacles 54 located in the environment 54 represents the vector form of the input variables to the dynamics model of the moving obstacle 54 (i.e., a longitudinal acceleration along and a steering wheel angle δ corresponding to the moving obstacle 54). The input vector of the moving obstacle 54 belongs to or is constrained by an admissible input set uo, that captures an upper limit and a lower limit for the longitudinal acceleration along and the steering wheel angle δ of the moving obstacle 54.
Referring to
The offline module 70 also receives dynamics variables 98 and vehicle chassis configuration information 100 regarding one or more vehicles located in the environment 52 surrounding the autonomous vehicle 12 from the one or more external vehicle networks 26. The offline module 70 determines the obstacle dynamics model based on the dynamic variables 98, the vehicle chassis configuration information 100, and the control input vector ukh corresponding to the one or more moving obstacles 54 located in the environment 52. It is to be appreciated that both the vehicle dynamic model and the obstacle dynamics model are both expressed in terms of the Frenet coordinate system. Both the autonomous vehicle dynamics model and the obstacle dynamics model are based on the dynamic modeling approach, and not the kinematic modeling approach. It is to be appreciated that the autonomous vehicle dynamics model and the obstacle dynamics model include linear and/or non-linear tire models as well as coupling between lateral states and longitudinal states of the relevant vehicle.
The offline module 70 determines a discrete-time relative vehicle state e based on the autonomous vehicle dynamics model for the autonomous vehicle 12 and the obstacle dynamics model for the one or more moving obstacles 54 located in the environment 52, where the discrete-time relative vehicle state e represents a function that predicts a relative state of the autonomous vehicle 12 at the next time step k, with respect to the moving obstacle 54. It is to be appreciated that the lateral displacements and the longitudinal displacements of the discrete-time relative vehicle state e are expressed in the Frenet coordinate system.
The offline module 70 determines the discrete-time relative vehicle state e by first determining a difference in position and velocity between the autonomous vehicle dynamics model corresponding to the autonomous vehicle 12 and the obstacle dynamic model of the one or more moving obstacles 54 located in the environment 52 to determine a relative nonlinear dynamic model. As mentioned above, the autonomous vehicle dynamics model for the autonomous vehicle 12 and the obstacle dynamics model for the one or more moving obstacles 54 located in the environment 52 both include a linear tire model, a non-linear tire model, or both the linear and non-linear tire model. Accordingly, the non-linear tire model of the relative nonlinear dynamic model is linearized about an operating condition of interest. One example of an operating condition of interest is constant speed along a centerline of a lane, however, it is to be appreciated that other operating conditions may be used as well. Linearizing the non-linear tire model results in a continuous time plant and input matrices associated with the relative nonlinear dynamic model. The linearized relative nonlinear dynamics model is then discretized from a continuous-time model into a discrete time model. In an embodiment, the linearized relative nonlinear dynamics model is discretized by either a zero-order hold model or a first-order hold model, which yields the discrete-time relative vehicle state e, however, other discretization approaches may be used as well.
The offline module 70 then determines the position avoidance set and the occupancy set , which are both expressed in Frenet frame coordinates based on the discrete-time relative vehicle state e. The position avoidance set represents relative lateral positions and longitudinal positions that the autonomous vehicle 12 avoids in order to bypass or avoid contact with the moving obstacle 54 while performing a maneuver. In an embodiment, the position avoidance set is expressed by Equation 1, which is:
={(es,ed)∈R2: es,l≤es≤es,u,ed,l≤ed≤ed,u} Equation 1
where es is a discrete-time relative longitudinal state of the autonomous vehicle 12, ed is a discrete-time relative lateral state of the autonomous vehicle 12, es,l is a lower limit of the discrete-time relative longitudinal state es, es,u is an upper limit of the discrete-time relative longitudinal state es, ed,l is a lower limit of the discrete-time relative lateral state ed, and ed,u is a lower limit of the discrete-time relative longitudinal state es, of the avoidance set . It is to be appreciated that the limits merely characterize the avoidance set , and not the lateral or longitudinal states of the autonomous vehicle 12 while driving The occupancy set is centered at the moving obstacle 54 and represents lateral positions and longitudinal positions that bound the one or more moving obstacles 54 located in the environment 52 (
={(s,d)∈R2: sl≤s≤su,dl≤d≤du} Equation 2
where s is a longitudinal position of the one or more vehicles, d is the lateral position of the one or more vehicles, sl is the lower limit of the longitudinal position, su is the upper limit of the longitudinal position, dl is the lower limit of the lateral position, and du is the upper limit of the lateral position of the initial occupancy set 0. Referring to both
The offline module 70 then determines the set of ego states N−k for which the autonomous vehicle 12 is unable to execute the maneuver without entering the position avoidance set over the horizon of interest for a set of given set of parameters. The given set of parameters include variables such as speed limits and road conditions, and the set of ego states N−k are calculated for each time step index and the horizon of interest ranges from the final time N to a current or initial time 0, or k=N−1, . . . , 0 based on a backwards reachability analysis from the final time N to the initial time 0. Some examples of road conditions include, but are not limited to, road geometry, curvature, inclination, and coefficient of friction based on road conditions. At the final time N, the individual set of ego states N is equal to the position avoidance set . The backwards reachability analysis varies the step N from an initial time of interest to a final time of interest, which characterizes the horizon of interest. For each time step, an individual ego state N−k is determined based on Equation 3 and is backwards calculated from a chosen final time N to the initial time 0, and is expressed as:
N−k
={e
k+1
∈ε|∀u
k
h∈h,∃uko∈o,Akek+Bkhukh+Bkhuko∈N−k+1} Equation 3
where e k+1 is the discrete-time relative vehicle state at time step k−1, is a set of admissible relative position and velocity states between the autonomous vehicle 12 and the moving obstacle 54, h, o are the admissible input sets of the autonomous vehicle 12 or the one or more vehicles located in the environment 52, respectively, that represents combinations of the longitudinal acceleration along and the steering wheel angle δ, Ak is a continuous-time plant matrix of the linearized relative dynamics model, ek is the discrete-time relative vehicle state at the time step k, Bkh is a continuous-time input matrix of the autonomous vehicle 12 with respect to the time step k, and Bko is a continuous-time input matrix of the one or more moving obstacles 54 in the environment 52 with respect to the time step k.
Once the offline module 70 solves for the set of ego states N−k, the offline module 70 then repeats solving the set of ego states N−k while varying the time step index N from 0 to Nf, where Nf is the maximum horizon time. It is to be appreciated that a Minkowski sum and Pontryagin differences may be performed between each set. A union between the ego states N−k is determined, where the union is expressed as an evasion set ∪k=0NN−k for the set of ego states. The evasion set ∪k=0NN−k for the ego set of states is saved as one or more look-up tables 102 and are indexed based on a current speed limit of the roadway 50 (
The offline module 70 determines the multi-actor set of states N−k where the autonomous vehicle 12 and the one or more moving obstacles 54 located in the environment 52 are unable to execute the maneuver without entering the position avoidance set over the horizon of interest for a set of speed limits, where an individual multi-actor set of states N−k are calculated for each time step index N based on a backwards reachability analysis from the final time N to the initial time 0. At the time step N, the individual multi-actor set of states N is equal to the position avoidance set . For each time step, an individual multi-actor set of states N−k is determined based on Equation 4 and is backwards calculated from the final time N to the initial time 0, and is expressed as:
N−k
={e
k+1
∈ε|∀u
k
h
∈
,∀u
k
o
∈
,A
k
e
k
+B
k
h
u
k
h∈N−k+1} Equation 4
Once the offline module 70 determines the multi-actor set of states N−k, the offline module 70 then repeats the process while varying the time step index N from 0 to Nf. A union is determined between the multi-actor set of states N−k, where the union is an avoidance set ∪k=0NN−k for the multi-actor set of states. The avoidance set ∪k=0NN−k for the multi-actor set of states is saved as one or more look-up tables 104 and are indexed based on the speed limit. In embodiments, the data saved within the one or more look-up tables 104 may be approximated and simplified for purposes of memory allocation.
The offline module 70 then determines a plurality of occupancy sets k+1 that bound the one or more moving obstacles 54 located in the environment 52 over the horizon of interest forward in time starting from the initial time 0 to the maximum horizon time Nf. The occupancy set at the initial time 0 is equal to the occupancy set . For each time step, an individual occupancy set k+1 is determined based on Equation 5, which is:
k+1=prOjP({xk+1∈|∃uko∈o,xk+1=Akxk+Bkh+Bkouko}) Equation 5
where P represents an admissible position subspace (i.e., the allowable driving area or road geometry), X represents admissible states of the moving obstacle 54, and xk+1 represents a state vector of the moving obstacle 54. The offline module 70 may then save the occupancy sets k+1 over the horizon of interest from the initial time 0 to the maximum horizon time Nf as one or more look-up tables 106, where the values for the occupancy sets k+1 are indexed based on the position and velocity of the one or more moving obstacles 54 and environmental variables such as, but not limited to, road geometry, inclination, and the coefficient of friction based on road conditions.
The state monitoring system module 72 estimates the vehicle state 120, where the vehicle state 120 indicates a current position and velocity of the autonomous vehicle 12. The state monitoring system module 72 also estimates an obstacle state 122, where the obstacle state 122 indicates a current position and velocity of the one or more moving obstacles 54 located within the environment 52. It is to be appreciated that the vehicle state 120 and the obstacle state 122 are both expressed in the Frenet coordinate system. The vehicle state 120 and the obstacle state 122 are both estimated based on any estimation technique such as, for example, linear and non-linear Kalman filters or object detection and tracking systems.
The real-time module 74 determines a set of trajectory constraints based on the one or more look-up tables 102 corresponding to the evasion set ∪k=0NN−k for the set of ego states, the one or more look-up tables 104 corresponding to the avoidance set ∪k=0NN−k for the multi-actor set of states, a speed limit of the roadway 50 that the autonomous vehicle 12 is presently traveling along (seen in
The real-time module 74 then computes the plurality of relative state trajectories ph(t) for the autonomous vehicle 12 based on an initial state of the autonomous vehicle 12, a final state of the autonomous vehicle 12, and one or more levels of driving aggression, where the plurality of relative state trajectories ph(t) avoid intersecting the evasion set ∪k=0NN−k for the set of ego states. As mentioned above, in embodiments the relative state trajectories ph(t) may slightly encroach the region of interest 60 along its boundaries 66 (
The real-time module 74 then selects the trajectory 62 by assigning a score to each relative state trajectory ph(t) for the autonomous vehicle 12 based on one or more properties, and then selecting the trajectory 62 based on the scare of each relative state trajectory ph(t). Specifically, the real-time module 74 selects the relative state trajectory ph(t) having the highest score as the trajectory 62. The one or more properties represent characteristics such as, but not limited to, ride comfort, fuel consumption, timing, and duration. In one embodiment, the real-time module 74 may discard any relative state trajectories ph(t) for the autonomous vehicle 12 that falls within the evasion set ∪k=0NN−k for the set of ego states. The real-time module 74 may then select the relative state trajectory ph(t) based on the score assigned to each relative state trajectory ph(t). Referring to both
In block 204, the offline module 70 of the one or more controllers 20 determine the discrete-time relative vehicle state e based on the autonomous vehicle dynamics model for the autonomous vehicle 12. The method 200 may then proceed to block 206.
In block 206, the offline module 70 of the one or more controllers 20 determine, based on the discrete-time relative vehicle state e, the position avoidance set representing relative lateral positions and longitudinal positions that the autonomous vehicle 12 avoids in order to bypass or avoid contact with the moving obstacle 54 while performing a maneuver. The method 200 may then proceed to block 208.
In block 208, the offline module 70 of the one or more controllers 20 determine the set of ego states N−k for which the autonomous vehicle 12 is unable to execute maneuvers without entering the position avoidance set for a set of given speed limits and road conditions. The method 200 may then proceed to block 210.
In block 210, the offline module 70 of the one or more controllers 20 determine the evasion set ∪k=0NN−k for the set of ego states. As mentioned above, the evasion set ∪k=0NN−k for the set of ego states is saved as one or more look-up tables 102 and are indexed based on a current speed limit of the roadway 50 and one or more road conditions. The method 200 may then proceed to block 212.
In block 212, the real-time module 74 of the one or more controllers 20 computes the relative state trajectories ph(t) for the autonomous vehicle 12, where the relative state trajectories ph(t) avoid intersecting the evasion set ∪k=0NN−k for the set of ego states. The method 200 may then proceed to block 214.
In block 214, the real-time module 74 of the one or more controllers 20 selects a trajectory 62 from the plurality of relative state trajectories ph(t) for the autonomous vehicle 12, where the autonomous vehicle 12 follows the trajectory 62 while performing a maneuver. Specifically, the real-time module 74 determines the trajectory 62 in blocks 214A-214D. In block 214A, the real-time module 74 assigns a score to each relative state trajectory ph(t) for the autonomous vehicle 12 based on one or more properties. In decision block 214B, if a particular relative state trajectory ph(t) has the score of all the relative state trajectories ph(t), then in block 214C the real-time module 74 selects the particular relative state trajectory ph(t) as the trajectory 62 in block 214C. Otherwise, the real-time module 74 does not select the particular relative state trajectory ph(t) as the trajectory 62.
Referring generally to the figures, the disclosed trajectory planning system provides various technical effects and benefits. Specifically, the disclosure provides a methodology and architecture that ensures maneuvers for avoiding the moving obstacles always exist and are executable by the autonomous vehicle within an operating domain of interest. It is to be appreciated that the trajectory planning system may be enhanced by applying external vehicle networks (such as V2X) to communicate with other moving obstacles located within the environment surrounding the autonomous vehicle. Furthermore, current approaches may rely upon the kinematic model to determine the headway between vehicles, however, the kinematic model does not consider linear and non-linear tire dynamics or coupling between the motion of the lateral and longitudinal states of the vehicle. In contrast, the disclosed trajectory planning system captures linear as well as non-linear tire dynamics as well as coupled lateral and longitudinal motion of the vehicle.
The controllers may refer to, or be part of an electronic circuit, a combinational logic circuit, a field programmable gate array (FPGA), a processor (shared, dedicated, or group) that executes code, or a combination of some or all of the above, such as in a system-on-chip. Additionally, the controllers may be microprocessor-based such as a computer having a at least one processor, memory (RAM and/or ROM), and associated input and output buses. The processor may operate under the control of an operating system that resides in memory. The operating system may manage computer resources so that computer program code embodied as one or more computer software applications, such as an application residing in memory, may have instructions executed by the processor. In an alternative embodiment, the processor may execute the application directly, in which case the operating system may be omitted.
The description of the present disclosure is merely exemplary in nature and variations that do not depart from the gist of the present disclosure are intended to be within the scope of the present disclosure. Such variations are not to be regarded as a departure from the spirit and scope of the present disclosure.