Relative speed based speed planning for buffer area

In one embodiment, a method, apparatus, and system for planning the trajectory of an autonomous driving vehicle (ADV) in view of an object within a buffer area in front of the ADV is disclosed. A buffer area in front of an ADV is identified. A first object of one or more objects that have entered the buffer area is identified. A first distance cost and a first relative speed cost associated with the first object are determined. A first object cost associated with the first object is determined based on a combination of the first distance cost and the first relative speed cost. A trajectory for the ADV is planned based at least in part on a cost function comprising the first object cost, where the cost function is minimized in the planning. Control signals are generated to drive the ADV based on the planned trajectory.

TECHNICAL FIELD

Embodiments of the present disclosure relate generally to operating autonomous driving vehicles. More particularly, embodiments of the disclosure relate to planning a trajectory for an autonomous driving vehicle in view of an object within a buffer area in front of the vehicle.

BACKGROUND

Conventionally, hard buffer areas surrounding an autonomous driving vehicle (ADV) are established to keep safe distances. During planning, the hard buffer areas are treated the same as the body of the ADV, and create hard boundaries. A hard buffer area immediately in front of the ADV may have the same width as the ADV, and may be 1-3 meters long. When an object enters a hard buffer area in front of the ADV, a command signal for braking the ADV at the maximum brake force is generated. Such a harsh brake causes discomfort to passengers of the ADV, but may not always be necessary.

DETAILED DESCRIPTION

According to some embodiments, a method, apparatus, and system for planning the trajectory of an autonomous driving vehicle (ADV) in view of an object within a (soft) buffer area in front of the ADV is disclosed. A buffer area in front of an ADV is identified. A first object of one or more objects that have entered the buffer area is identified. A first distance cost is determined based on a first distance between the first object and the ADV. A first relative speed cost is determined based on a first relative speed between the first object and the ADV. A first object cost associated with the first object is determined based on a combination of the first distance cost and the first relative speed cost. A trajectory for the ADV is planned based at least in part on a cost function comprising the first object cost, where the cost function is minimized in the planning. Control signals are generated to drive the ADV based on the planned trajectory.

In one embodiment, the buffer area is in front of the ADV, has a rectangular horizontal section, and shares a same width with the ADV. In one embodiment, the buffer area is flush with the ADV widthwise. In one embodiment, the first distance cost is determined based on a first function that is based on a reciprocal function. In one embodiment, the first relative speed cost is determined based on a second function. According to the second function, a relative speed cost is equal to a first positive constant when a projected relative speed is below a first threshold, decreases as the projected relative speed increases when the relative speed is above the first threshold and below a second threshold, and is equal to zero when the projected relative speed is above the second threshold.

In one embodiment, the first object cost is equal to a product of the first distance cost and the first relative speed cost. In one embodiment, a second object of the one or more objects that have entered the buffer area is identified. A second distance cost is determined based on a second distance between the second object and the ADV. A second relative speed cost is determined based on a second relative speed between the second object and the ADV. A second object cost associated with the second object based on a combination of the second distance cost and the second relative speed cost. The cost function that is minimized during the planning process further comprises the second object cost.

Referring now toFIG. 2, in one embodiment, sensor system115includes, but it is not limited to, one or more cameras211, global positioning system (GPS) unit212, inertial measurement unit (IMU)213, radar unit214, and a light detection and range (LIDAR) unit215. GPS system212may include a transceiver operable to provide information regarding the position of the ADV. IMU unit213may sense position and orientation changes of the ADV based on inertial acceleration. Radar unit214may represent a system that utilizes radio signals to sense objects within the local environment of the ADV. In some embodiments, in addition to sensing objects, radar unit214may additionally sense the speed and/or heading of the objects. LIDAR unit215may sense objects in the environment in which the ADV is located using lasers. LIDAR unit215could include one or more laser sources, a laser scanner, and one or more detectors, among other system components. Cameras211may include one or more devices to capture images of the environment surrounding the ADV. Cameras211may be still cameras and/or video cameras. A camera may be mechanically movable, for example, by mounting the camera on a rotating and/or tilting a platform.

Some or all of the functions of ADV101may be controlled or managed by ADS110, especially when operating in an autonomous driving mode. ADS110includes the necessary hardware (e.g., processor(s), memory, storage) and software (e.g., operating system, planning and routing programs) to receive information from sensor system115, control system111, wireless communication system112, and/or user interface system113, process the received information, plan a route or path from a starting point to a destination point, and then drive vehicle101based on the planning and control information. Alternatively, ADS110may be integrated with vehicle control system111.

While ADV101is moving along the route, ADS110may also obtain real-time traffic information from a traffic information system or server (TIS). Note that servers103-104may be operated by a third party entity. Alternatively, the functionalities of servers103-104may be integrated with ADS110. Based on the real-time traffic information, MPOI information, and location information, as well as real-time local environment data detected or sensed by sensor system115(e.g., obstacles, objects, nearby vehicles), ADS110can plan an optimal route and drive vehicle101, for example, via control system111, according to the planned route to reach the specified destination safely and efficiently.

Server103may be a data analytics system to perform data analytics services for a variety of clients. In one embodiment, data analytics system103includes data collector121and machine learning engine122. Data collector121collects driving statistics123from a variety of vehicles, either ADVs or regular vehicles driven by human drivers. Driving statistics123include information indicating the driving commands (e.g., throttle, brake, steering commands) issued and responses of the vehicles (e.g., speeds, accelerations, decelerations, directions) captured by sensors of the vehicles at different points in time. Driving statistics123may further include information describing the driving environments at different points in time, such as, for example, routes (including starting and destination locations), MPOIs, road conditions, weather conditions, etc.

Based on driving statistics123, machine learning engine122generates or trains a set of rules, algorithms, and/or predictive models124for a variety of purposes. In one embodiment, algorithms124may include an algorithm for planning the trajectory of an ADV in view of an object within a buffer area in front of the ADV, as well as speed planning on the trajectory based on a relative speed cost and a distance cost using a set of predetermined cost functions. Algorithms124can then be uploaded on ADVs to be utilized during autonomous driving in real-time.

FIGS. 3A and 3Bare block diagrams illustrating an example of an autonomous driving system used with an ADV according to one embodiment. System300may be implemented as a part of ADV101ofFIG. 1including, but is not limited to, ADS110, control system111, and sensor system115. Referring toFIGS. 3A-3B, ADS110includes, but is not limited to, localization module301, perception module302, prediction module303, decision module304, planning module305, control module306, routing module307, object cost determination module308.

Based on the sensor data provided by sensor system115and localization information obtained by localization module301, a perception of the surrounding environment is determined by perception module302. The perception information may represent what an ordinary driver would perceive surrounding a vehicle in which the driver is driving. The perception can include the lane configuration, traffic light signals, a relative position of another vehicle, a pedestrian, a building, crosswalk, or other traffic related signs (e.g., stop signs, yield signs), etc., for example, in a form of an object. The lane configuration includes information describing a lane or lanes, such as, for example, a shape of the lane (e.g., straight or curvature), a width of the lane, how many lanes in a road, one-way or two-way lane, merging or splitting lanes, exiting lane, etc.

For each of the objects, prediction module303predicts what the object will behave under the circumstances. The prediction is performed based on the perception data perceiving the driving environment at the point in time in view of a set of map/rout information311and traffic rules312. For example, if the object is a vehicle at an opposing direction and the current driving environment includes an intersection, prediction module303will predict whether the vehicle will likely move straight forward or make a turn. If the perception data indicates that the intersection has no traffic light, prediction module303may predict that the vehicle may have to fully stop prior to enter the intersection. If the perception data indicates that the vehicle is currently at a left-turn only lane or a right-turn only lane, prediction module303may predict that the vehicle will more likely make a left turn or right turn respectively.

For each of the objects, decision module304makes a decision regarding how to handle the object. For example, for a particular object (e.g., another vehicle in a crossing route) as well as its metadata describing the object (e.g., a speed, direction, turning angle), decision module304decides how to encounter the object (e.g., overtake, yield, stop, pass). Decision module304may make such decisions according to a set of rules such as traffic rules or driving rules312, which may be stored in persistent storage device352.

Routing module307is configured to provide one or more routes or paths from a starting point to a destination point. For a given trip from a start location to a destination location, for example, received from a user, routing module307obtains route and map information311and determines all possible routes or paths from the starting location to reach the destination location. Routing module307may generate a reference line in a form of a topographic map for each of the routes it determines from the starting location to reach the destination location. A reference line refers to an ideal route or path without any interference from others such as other vehicles, obstacles, or traffic condition. That is, if there is no other vehicle, pedestrians, or obstacles on the road, an ADV should exactly or closely follows the reference line. The topographic maps are then provided to decision module304and/or planning module305. Decision module304and/or planning module305examine all of the possible routes to select and modify one of the most optimal routes in view of other data provided by other modules such as traffic conditions from localization module301, driving environment perceived by perception module302, and traffic condition predicted by prediction module303. The actual path or route for controlling the ADV may be close to or different from the reference line provided by routing module307dependent upon the specific driving environment at the point in time.

Based on the planning and control data, control module306controls and drives the ADV, by sending proper commands or signals to vehicle control system111, according to a route or path defined by the planning and control data. The planning and control data include sufficient information to drive the vehicle from a first point to a second point of a route or path using appropriate vehicle settings or driving parameters (e.g., throttle, braking, steering commands) at different points in time along the path or route.

Note that decision module304and planning module305may be integrated as an integrated module. Decision module304/planning module305may include a navigation system or functionalities of a navigation system to determine a driving path for the ADV. For example, the navigation system may determine a series of speeds and directional headings to affect movement of the ADV along a path that substantially avoids perceived obstacles while generally advancing the ADV along a roadway-based path leading to an ultimate destination. The destination may be set according to user inputs via user interface system113. The navigation system may update the driving path dynamically while the ADV is in operation. The navigation system can incorporate data from a GPS system and one or more maps so as to determine the driving path for the ADV.

FIG. 4is a block diagram illustrating an example of a decision and planning system according to one embodiment. System400may be implemented as part of autonomous driving system300ofFIGS. 3A-3Bto perform path planning and speed planning operations. Referring toFIG. 4, Decision and planning system400(also referred to as a planning and control or PnC system or module) includes, amongst others, routing module307, localization/perception data401, path decision module403, speed decision module405, path planning module407, speed planning module409, aggregator411, and trajectory calculator413.

Path decision module403and speed decision module405may be implemented as part of decision module304. In one embodiment, path decision module403may include a path state machine, one or more path traffic rules, and a station-lateral maps generator. Path decision module403can generate a rough path profile as an initial constraint for the path/speed planning modules407and409using dynamic programming.

In one embodiment, the path state machine includes at least three states: a cruising state, a changing lane state, and/or an idle state. The path state machine provides previous planning results and important information such as whether the ADV is cruising or changing lanes. The path traffic rules, which may be part of driving/traffic rules312ofFIG. 3A, include traffic rules that can affect the outcome of a path decisions module. For example, the path traffic rules can include traffic information such as construction traffic signs nearby the ADV can avoid lanes with such construction signs. From the states, traffic rules, reference line provided by routing module307, and obstacles perceived by perception module302of the ADV, path decision module403can decide how the perceived obstacles are handled (i.e., ignore, overtake, yield, stop, pass), as part of a rough path profile.

For example, in one embedment, the rough path profile is generated by a cost function consisting of costs based on: a curvature of path and a distance from the reference line and/or reference points to obstacles. Points on the reference line are selected and are moved to the left or right of the reference lines as candidate movements representing path candidates. Each of the candidate movements has an associated cost. The associated costs for candidate movements of one or more points on the reference line can be solved using dynamic programming for an optimal cost sequentially, one point at a time.

In one embodiment, a state-lateral (SL) maps generator (not shown) generates an SL map as part of the rough path profile. An SL map is a two-dimensional geometric map (similar to an x-y coordinate plane) that includes obstacles information perceived by the ADV. From the SL map, path decision module403can lay out an ADV path that follows the obstacle decisions. Dynamic programming (also referred to as a dynamic optimization) is a mathematical optimization method that breaks down a problem to be solved into a sequence of value functions, solving each of these value functions just once and storing their solutions. The next time the same value function occurs, the previous computed solution is simply looked up saving computation time instead of recomputing its solution.

Speed decision module405or the speed decision module includes a speed state machine, speed traffic rules, and a station-time graphs generator (not shown). Speed decision process405or the speed decision module can generate a rough speed profile as an initial constraint for the path/speed planning modules407and409using dynamic programming. In one embodiment, the speed state machine includes at least two states: a speed-up state and/or a slow-down state. The speed traffic rules, which may be part of driving/traffic rules312ofFIG. 3A, include traffic rules that can affect the outcome of a speed decisions module. For example, the speed traffic rules can include traffic information such as red/green traffic lights, another vehicle in a crossing route, etc. From a state of the speed state machine, speed traffic rules, rough path profile/SL map generated by decision module403, and perceived obstacles, speed decision module405can generate a rough speed profile to control when to speed up and/or slow down the ADV. The SL graphs generator can generate a station-time (ST) graph as part of the rough speed profile.

In one embodiment, path planning module407includes one or more SL maps, a geometry smoother, and a path costs module (not shown). The SL maps can include the station-lateral maps generated by the SL maps generator of path decision module403. Path planning module407can use a rough path profile (e.g., a station-lateral map) as the initial constraint to recalculate an optimal reference line using quadratic programming. Quadratic programming (QP) involves minimizing or maximizing an objective function (e.g., a quadratic function with several variables) subject to bounds, linear equality, and inequality constraints.

One difference between dynamic programming and quadratic programming is that quadratic programming optimizes all candidate movements for all points on the reference line at once. The geometry smoother can apply a smoothing algorithm (such as B-spline or regression) to the output station-lateral map. The path costs module can recalculate a reference line with a path cost function, to optimize a total cost for candidate movements for reference points, for example, using QP optimization performed by a QP module (not shown). For example, in one embodiment, a total path cost function can be defined as follows:
path cost=Σpoints(heading)2+Σpoints(curvature)2Σpoints(distance)2,
where the path costs are summed over all points on the reference line, heading denotes a difference in radial angles (e.g., directions) between the point with respect to the reference line, curvature denotes a difference between curvature of a curve formed by these points with respect to the reference line for that point, and distance denotes a lateral (perpendicular to the direction of the reference line) distance from the point to the reference line. In some embodiments, distance represents the distance from the point to a destination location or an intermediate point of the reference line. In another embodiment, the curvature cost is a change between curvature values of the curve formed at adjacent points. Note the points on the reference line can be selected as points with equal distances from adjacent points. Based on the path cost, the path costs module can recalculate a reference line by minimizing the path cost using quadratic programming optimization, for example, by the QP module.

Speed planning module409includes station-time graphs, a sequence smoother, and a speed costs module. The station-time graphs can include a ST graph generated by the ST graphs generator of speed decision module405. Speed planning module409can use a rough speed profile (e.g., a station-time graph) and results from path planning module407as initial constraints to calculate an optimal station-time curve. The sequence smoother can apply a smoothing algorithm (such as B-spline or regression) to the time sequence of points. The speed costs module can recalculate the ST graph with a speed cost function to optimize a total cost for movement candidates (e.g., speed up/slow down) at different points in time.

For example, in one embodiment, a total speed cost function can be:
speed cost=Σpoints(speed′)2+Σpoints(speed″)2+(distance)2,
where the speed costs are summed over all time progression points, speed′ denotes an acceleration value or a cost to change speed between two adjacent points, speed″ denotes a jerk value, or a derivative of the acceleration value or a cost to change the acceleration between two adjacent points, and distance denotes a distance from the ST point to the destination location. Here, the speed costs module calculates a station-time graph by minimizing the speed cost using quadratic programming optimization, for example, by the QP module.

Aggregator411performs the function of aggregating the path and speed planning results. For example, in one embodiment, aggregator411can combine the two-dimensional ST graph and SL map into a three-dimensional SLT graph. In another embodiment, aggregator411can interpolate (or fill in additional points) based on two consecutive points on an SL reference line or ST curve. In another embodiment, aggregator411can translate reference points from (S, L) coordinates to (x, y) coordinates. Trajectory generator413can calculate the final trajectory to control ADV510. For example, based on the SLT graph provided by aggregator411, trajectory generator413calculates a list of (x, y, T) points indicating at what time should the ADC pass a particular (x, y) coordinate.

Thus, path decision module403and speed decision module405are configured to generate a rough path profile and a rough speed profile taking into consideration obstacles and/or traffic conditions. Given all the path and speed decisions regarding the obstacles, path planning module407and speed planning module409are to optimize the rough path profile and the rough speed profile in view of the obstacles using QP programming to generate an optimal trajectory with minimum path cost and/or speed cost.

FIG. 5is a block diagram illustrating a station-lateral map according to one embodiment. Referring toFIG. 5, SL map500has an S horizontal axis, or station, and an L vertical axis, or lateral. As described above, station-lateral coordinates are a relative geometric coordinate system that references a particular stationary point on a reference line and follows the reference line. For example, a (S, L)=(1, 0) coordinate can denote one meter ahead of a stationary point (i.e., a reference point) on the reference line with zero meter lateral offset. A (S, L)=(2, 1) reference point can denote two meters ahead of the stationary reference point along the reference line and an one meter perpendicular lateral offset from the reference line, e.g., a left offset.

Referring toFIG. 5, SL map500includes reference line501and obstacles503-509perceived by ADV510. In one embodiment, obstacles503-509may be perceived by a RADAR or LIDAR unit of ADV510in a different coordinate system and translated to the SL coordinate system. In another embodiment, obstacles503-509may be artificially formed barriers as constraints so the decision and planning modules would not search in the constrained geometric spaces. In this example, a path decision module can generate decisions for each of obstacles503-509such as decisions to avoid obstacles503-508and nudge (approach very closely) obstacle509(i.e., these obstacles may be other cars, buildings and/or structures). A path planning module can then recalculate or optimize reference line501based on a path cost in view of obstacles503-509using QP programming to fine tune reference line501with the minimum overall cost as described above. In this example, the ADV nudges, or approaches very close, for obstacle509from the left of obstacle509.

FIGS. 6A and 6Bare block diagrams illustrating station-time maps according to some embodiments. Referring toFIG. 6A, ST graph600has a station (or S) vertical axis and a time (or T) horizontal axis. ST graph600includes curve601and obstacles603-607. As described above, curve601on station-time graph indicates, at what time and how far away is the ADV from a station point. For example, a (T, S)=(10000, 150) can denote in 10000 milliseconds, an ADV would be 150 meters from the stationary point (i.e., a reference point). In this example, obstacle603may be a building/structure to be avoided and obstacle607may be an artificial barrier corresponding to a decision to overtake a moving vehicle.

Referring toFIG. 6B, in this scenario, artificial barrier605is added to the ST graph610as a constraint. The artificial barrier can be examples of a red light or a pedestrian in the pathway that is at a distance approximately S2from the station reference point, as perceived by the ADV. Barrier705corresponds to a decision to “stop” the ADV until the artificial barrier is removed at a later time (i.e., the traffic light changes from red to green, or a pedestrian is no longer in the pathway).

Referring toFIG. 7, a block diagram700illustrating various example modules usable for planning the trajectory of an autonomous driving vehicle (ADV) in view of an object within a buffer area in front of the ADV according to one embodiment is shown. Each of the various modules may be implemented in hardware, software, or a combination thereof. At buffer area identification module701, a buffer area in front of an ADV is identified. At object identification module702, a first object of one or more objects that have entered the buffer area is identified. At distance cost determination module703, a first distance cost is determined based on a first distance between the first object and the ADV. At relative speed cost determination module704, a first relative speed cost is determined based on a first relative speed between the first object and the ADV. At object cost determination module308, a first object cost associated with the first object is determined based on a combination of the first distance cost and the first relative speed cost. At planning module305, a trajectory for the ADV is planned based at least in part on a cost function (e.g., the overall cost described above) comprising the first object cost, where the cost function is minimized in the planning. At control module306, control signals are generated to drive the ADV based on the planned trajectory. Note that some or all of the modules as shown may be integrated into fewer number of modules or a single module.

Referring toFIG. 8, a diagram800illustrating an example ADV with a soft front buffer area according to one embodiment is shown. The buffer area804is immediately in front of the ADV802. In one embodiment, the buffer area802has a rectangular horizontal section, and shares a same width with the ADV802. In one embodiment, the length of the buffer area802may be approximately 3 meters (m). In one embodiment, the buffer area802is flush with the ADV804widthwise.

In one embodiment, the first distance cost is determined based on a function that is based on a reciprocal function. Referring toFIG. 9A, a diagram900A illustrating a plot of an example first cost function that maps a distance to a distance cost implemented at the distance cost determination module according to one embodiment is shown. The function that maps a distance to a distance cost may be based on a reciprocal function. In one embodiment, the function that maps a distance to a distance cost may be of the form: distance cost=1/(0.5*distance). Therefore, it should be appreciated that the plot illustrated inFIG. 9Ais one branch of a hyperbola: the distance cost approaches infinity as the distance approaches zero, and decreases precipitously as the distance increases. It should be appreciated that the body of the ADV is treated as a hard boundary as is conventionally done: the distance cost is equal to infinity when an object intersects with the body of the ADV, and in that case a braking command at the maximum brake force would be generated.

In one embodiment, the first relative speed cost is determined based on a second cost function. Referring toFIG. 9B, a diagram900B illustrating a plot of an example second function that maps a projected relative speed to a relative speed cost implemented at the relative speed cost determination module according to one embodiment is shown. The projected relative speed may be determined by projecting the relative speed between an object and the ADV to a direction of travel of the ADV. It should be appreciated that the projected relative speed is a signed variable—It is negative when the object is moving away from the ADV (i.e., the object is traveling forward in front of the ADV at a forward speed faster than that of the ADV), is zero when the object is stationary relative to the ADV in the direction of travel of the ADV, and is positive when the ADV is moving closer to the object (i.e., the object is 1) traveling forward in front of the ADV at a forward speed slower than that of the ADV, 2) stationary in the direction of travel of the ADV, or 3) traveling backward in front of the ADV toward the ADV).

According to the second cost function illustrated inFIG. 9B, the relative speed cost is equal to a first positive constant when the projected relative speed is below a first threshold (e.g., approximately 1 m/s) (i.e., when the projected relative speed is negative, zero, or positive still below the first threshold), decreases as the projected relative speed increases when the relative speed is above the first threshold (e.g., approximately 1 m/s) and below a second threshold (e.g., approximately 5 m/s), and is equal to zero when the relative speed is above the second threshold (e.g., approximately 5 m/s). The example first and second thresholds provided herein are for illustrative purposes only. Further, it should be appreciated that without deviating from the present disclosure, the projected relative speed may be defined in a different way (e.g., positive when the object is moving away from the ADV, and negative when the ADV is moving closer to the object), and the second function may be adapted accordingly.

An object cost associated with an object may be equal to a product of a respective distance cost associated with the object and a respective relative speed cost associated with the object (i.e., object cost=distance cost*relative speed cost). In one embodiment, the first object cost is equal to a product of the first distance cost and the first relative speed cost.

If more than one object has entered the buffer area, the object costs associated with the additional objects can be similarly determined. For example, in one embodiment, a second object of the one or more objects that have entered the buffer area is identified. A second distance cost is determined based on a second distance between the second object and the ADV. A second relative speed cost is determined based on a second relative speed between the second object and the ADV. A second object cost associated with the second object based on a combination of the second distance cost and the second relative speed cost. The cost function that is minimized during the planning process (e.g., the overall cost) further comprises the second object cost.

Referring toFIG. 10, a flowchart illustrating an example method1000for planning the trajectory of an autonomous driving vehicle (ADV) in view of an object within a buffer area in front of the ADV according to one embodiment is shown. The process1000may be implemented in hardware, software, or a combination thereof. At block1001, a buffer area in front of an ADV is identified. At block1002, a first object of one or more objects that have entered the buffer area is identified. At block1003, a first distance cost is determined based on a first distance between the first object and the ADV. At block1004, a first relative speed cost is determined based on a first relative speed between the first object and the ADV. At block1005, a first object cost associated with the first object is determined based on a combination of the first distance cost and the first relative speed cost. At block1006, a trajectory for the ADV is planned based at least in part on a cost function comprising the first object cost, where the cost function is minimized in the planning. At block1007, control signals are generated to drive the ADV based on the planned trajectory.

Therefore, embodiments relate to planning the trajectory of an autonomous driving vehicle (ADV) in view of an object within a buffer area in front of the ADV, where a soft buffer area is utilized and object costs for objects that have entered the buffer area are determined. The object costs are included in a cost function that is minimized during the planning process. Accordingly, unnecessary harsh brakes that would result from using a hard buffer area could be avoided.