Autonomous vehicles, for instance, vehicles that may not require a human driver, can be used to aid in the transport of passengers or items from one location to another. Such vehicles may operate in a fully autonomous mode where passengers may provide some initial input, such as a pickup or destination location, and the autonomous vehicle maneuvers itself to that location. Autonomous vehicles are equipped with various types of sensors in order to detect objects in the surroundings. For example, autonomous vehicles may include sonar, radar, camera, lidar, and other devices that scan, generate and/or record data about the vehicle's surroundings in order to enable the autonomous vehicle to plan trajectories that maneuver through the surroundings.
Aspects of the disclosure provide a method for controlling an autonomous vehicle. The method includes receiving, by one or more processors of one or more first systems of the autonomous vehicles, a signal indicating a predicted traffic stack for a lane in which the autonomous vehicle is currently traveling; in response to the received signal, adjusting, by the one or more processors, costs of edges of a roadgraph between the autonomous vehicle and a location of the predicted traffic stack in order to encourage the autonomous vehicle to change lanes in response to the predicted traffic stack; generating, by the one or more processors, a route to a destination based on at least one of the adjusted costs; and providing, by the one or more processors, the route to one or more second systems of the autonomous vehicle in order to control the autonomous vehicle according to the route.
In one example, the predicted traffic stack is located at an intersection. In another example, the one or more first systems is a planning system of the autonomous vehicle configured to generate trajectories according to the route for the autonomous vehicle to follow. In another example, the one or more second systems include a routing system of the autonomous vehicle configured to generate the route. In another example, adjusting the costs includes increasing the costs. In another example, the edges correspond to the lane. In another example, the method also includes receiving a second signal indicating a second predicted traffic stack in a second lane adjacent to the lane, and in response to the received second signal, adjusting second costs of second edges of the roadgraph in the second lane. In this example, generating the route is further based on at least one of the adjusted second costs. In addition, the second signal further indicates which of the predicted traffic stack and the second predicted traffic stack is a worse traffic stack, and adjusting the edges and adjusting the second edges is further based on which of the predicted traffic stack and the second predicted traffic stack is a worse traffic stack.
Another aspect of the disclosure provides a system for controlling an autonomous vehicle. The system includes one or more processors configured to receive a signal indicating a predicted traffic stack for a lane in which the autonomous vehicle is currently traveling; in response to the received signal, adjust costs of edges of a roadgraph between the autonomous vehicle and a location of the predicted traffic stack in order to encourage the autonomous vehicle to change lanes in response to the predicted traffic stack; generate a route to a destination based on at least one of the adjusted costs; and provide the route to one or more second systems of the autonomous vehicle in order to control the autonomous vehicle according to the route.
In one example, the predicted traffic stack is located at an intersection. In another example, the system is a planning system of the autonomous vehicle configured to generate trajectories according to the route for the autonomous vehicle to follow. In another example, the system also includes the one or more second systems, wherein the one or more second systems include a routing system of the autonomous vehicle configured to generate the route. In another example, the one or more processors are further configured to adjust the costs includes increasing the costs. In another example, the edges correspond to the lane. In another example, the one or more processors are further configured to receive a second signal indicating a second predicted traffic stack in a second lane adjacent to the lane, and in response to the received second signal, adjust second costs of second edges of the roadgraph in the second lane, and wherein generating the route is further based on at least one of the adjusted second costs. In this example, the second signal further indicates which of the predicted traffic stack and the second predicted traffic stack is a worse traffic stack, and the one or more processors are further configured to adjust the edges and adjust the second edges further based on which of the predicted traffic stack and the second predicted traffic stack is a worse traffic stack.
A further aspect of the disclosure provides an autonomous vehicle comprising: memory storing a roadgraph and a planning system comprising one or more processors. The one or more processors are configured to receive a signal indicating a predicted traffic stack for a lane in which the autonomous vehicle is currently traveling; in response to the received signal, adjust costs of edges of a roadgraph between the autonomous vehicle and a location of the predicted traffic stack in order to encourage the autonomous vehicle to change lanes in response to the predicted traffic stack; generate a route to a destination based on at least one of the adjusted costs; and provide the route to one or more second systems of the autonomous vehicle in order to control the autonomous vehicle according to the route.
In one example, the system also includes the one or more second systems. In another example, the one or more second systems include a routing system of the autonomous vehicle configured to generate the route. In another example, the one or more processors are further configured to receive a second signal indicating a second predicted traffic stack in a second lane adjacent to the lane, and in response to the received second signal, adjusting second costs of second edges of the roadgraph in the second lane, and wherein generating the route is further based on at least one of the adjusted second costs.
The technology relates to responding to stacked vehicles, and in particular, stacked vehicles at traffic intersections. For example, as an autonomous vehicle approaches an intersection, the autonomous vehicle's planning system must determine whether to stop before entering the intersection. This decision can be made not only upon the status of any traffic signals, but also whether traffic within the intersection would prevent the autonomous vehicle from exiting the intersection. Such traffic may include, for example, a line of stopped vehicles in the same lane. These vehicles may be considered a traffic stack. When a traffic stack is predicted at an intersection, the autonomous vehicle's computing devices may take action to encourage lane changes.
In order to do so, the autonomous vehicle's computing devices must first detect or predict a traffic stack. For instance, one or more first systems of the autonomous vehicle, such as a perception or planning system, may predict whether a traffic stack exists or is likely to occur when the autonomous vehicle enters an intersection. This may involve receiving behavior predictions as well as occlusion information for other road users (e.g., other vehicles) and traffic density detected by the autonomous vehicle's perception system. These behavior predictions may provide a distribution of potential future locations and other characteristics for each of the detected road users.
The one or more first systems may use the behavior predictions as well as occlusion information about other road users based on the perceived traffic density to determine whether at least one vehicle in the same lane as the autonomous vehicle immediately in front of the autonomous vehicle will stop before a location beyond the intersection which would allow the autonomous vehicle to pull behind the other vehicle and exit the intersection. In this regard, the one or more first systems may also determine a likelihood of a traffic stack using the predicted trajectory likelihood and uncertainty distributions for each behavior prediction as well as occlusion information about other road users based on the perceived traffic density.
If a traffic stack is predicted, the one or more first systems may send a signal to one or more second systems in order to encourage the autonomous vehicle to perform lane changes. For instance, one or more second systems of the autonomous vehicle, such as a routing system, may receive a signal from the one or more first systems indicating that a traffic stack is predicted. In this regard, the one or more second systems may be configured to generate a route from a current location of the autonomous vehicle to a destination which, as described above, may be used by the perception or planning system to generate the aforementioned trajectories. In response to receiving the signal, the one or more second systems of the autonomous vehicle may modify the costs of effecting a lane change. For example, the one or more second systems may plan a plurality of routes by searching over nodes and edges in a road graph between a current location of the autonomous vehicle and a destination. Each edge may include an associated cost. In order to select one or more routes, the one or more second systems may sum the costs of the edges in each route and select the one or more routes with the lowest cost.
Thus, in order to encourage a lane change, in response to receiving the signal, the costs of any edges in the roadgraph between the autonomous vehicle and the traffic stack may be adjusted. The adjustment may be based on a fixed value, an exponentially decaying cost with respect to the predicted/observed length of a traffic stack, a heuristic or learned cost as a function of the situation. Thus, with all else being equal, the increase in costs may effectively encourage the autonomous vehicle to change lanes.
The one or more second systems may then use the roadgraph and adjusted costs to determine one or more new routes as described above. The one or more new routes may then be published to other systems of the autonomous vehicle, including the one or more first systems. In this regard, the one or more first systems may use the one or more new routes to generate new trajectories. As with the one or more second systems, the one or more first systems may generate trajectories using a cost analysis to select a route for the autonomous vehicle to follow. This may involve selecting a trajectory that does or does not result in a lane change; however, due to the adjusted costs used by the one or more second systems, the trajectory may be implicitly biased towards a lane change because of the predicted traffic stack.
The features described herein may enable an autonomous vehicle to respond to traffic stacks and in particular at intersections. For instance, a traffic stack is predicted, the autonomous vehicle's computing devices may take action to encourage lane changes. By encouraging lane changes as described herein, the autonomous vehicle may be better able to avoid being stopped behind a traffic stack within an intersection. This, in turn, may enable the autonomous vehicle to make greater forward progress in certain areas, such as dense intersection traffic which can be typical in dense urban and other environments.
As shown in
The U.S. National Highway Traffic Safety Administration (NHTSA) and the Society of Automotive Engineers (SAE) have each identified different levels to indicate how much, or how little, a vehicle controls the driving, although different organizations may categorize the levels differently. Moreover, such classifications may change (e.g., be updated) overtime.
As described herein, in a semi or partially autonomous driving mode, even though the vehicle assists with one or more driving operations (e.g., steering, braking and/or accelerating to perform lane centering, adaptive cruise control or emergency braking), the human driver is expected to be situationally aware of the vehicle's surroundings and supervise the assisted driving operations. Here, even though the vehicle may perform all driving tasks in certain situations, the human driver is expected to be responsible for taking control as needed.
In contrast, in a fully autonomous driving mode, the control system of the vehicle performs all driving tasks and monitors the driving environment. This may be limited to certain situations such as operating in a particular service region or under certain time or environmental restrictions, or may encompass driving under all conditions without limitation. In a fully autonomous driving mode, a person is not expected to take over control of any driving operation.
Unless indicated otherwise, the architectures, components, systems and methods described herein can function in a semi or partially autonomous driving mode, or a fully-autonomous driving mode.
While certain aspects of the disclosure are particularly useful in connection with specific types of vehicles, the vehicle may be any type of vehicle including, but not limited to, cars, trucks (e.g. garbage trucks, tractor-trailers, pickup trucks, etc.), motorcycles, buses, recreational vehicles, street cleaning or sweeping vehicles, etc. The vehicle may have one or more computing devices, such as computing device 110 containing one or more processors 120, memory 130 and other components typically present in general purpose computing devices.
The memory 130 stores information accessible by the one or more processors 120, including data 132 and instructions 134 that may be executed or otherwise used by the processor 120. The memory 130 may be of any type capable of storing information accessible by the processor, including a computing device or computer-readable medium, or other medium that stores data that may be read with the aid of an electronic device, such as a hard-drive, memory card, ROM, RAM, DVD or other optical disks, as well as other write-capable and read-only memories. Systems and methods may include different combinations of the foregoing, whereby different portions of the instructions and data are stored on different types of media.
The instructions 134 may be any set of instructions to be executed directly (such as machine code) or indirectly (such as scripts) by the processor. For example, the instructions may be stored as computing device code on the computing device-readable medium. In that regard, the terms “instructions” and “programs” may be used interchangeably herein. The instructions may be stored in object code format for direct processing by the processor, or in any other computing device language including scripts or collections of independent source code modules that are interpreted on demand or compiled in advance. Functions, methods and routines of the instructions are explained in more detail below.
The data 132 may be retrieved, stored or modified by processor 120 in accordance with the instructions 134. For instance, although the claimed subject matter is not limited by any particular data structure, the data may be stored in computing device registers, in a relational database as a table having a plurality of different fields and records, XML documents or flat files. The data may also be formatted in any computing device-readable format.
The one or more processors 120 may be any conventional processors, such as commercially available CPUs or GPUs. Alternatively, the one or more processors may include a dedicated device such as an ASIC or other hardware-based processor. Although
Computing devices 110 may include all of the components normally used in connection with a computing device such as the processor and memory described above as well as a user input 150 (e.g., one or more of a button, mouse, keyboard, touch screen and/or microphone), various electronic displays (e.g., a monitor having a screen or any other electrical device that is operable to display information), and speakers 154 to provide information to a passenger of the autonomous vehicle 100 or others as needed. For example, internal display 152 may be located within a cabin of autonomous vehicle 100 and may be used by computing devices 110 to provide information to passengers within the autonomous vehicle 100.
Computing devices 110 may also include one or more wireless network connections 156 to facilitate communication with other computing devices, such as the client computing devices and server computing devices. The wireless network connections may include short range communication protocols such as Bluetooth, Bluetooth low energy (LE), cellular connections, as well as various configurations and protocols including the Internet, World Wide Web, intranets, virtual private networks, wide area networks, local networks, private networks using communication protocols proprietary to one or more companies, Ethernet, WiFi and HTTP, and various combinations of the foregoing.
Computing devices 110 may be part of an autonomous control system for the autonomous vehicle 100 and may be capable of communicating with various components of the vehicle in order to control the vehicle in an autonomous driving mode. For example, returning to
As an example, computing devices 110 may interact with deceleration system 160 and acceleration system 162 in order to control the speed of the vehicle. Similarly, steering system 164 may be used by computing devices 110 in order to control the direction of autonomous vehicle 100. For example, if autonomous vehicle 100 is configured for use on a road, such as a car or truck, steering system 164 may include components to control the angle of wheels to turn the vehicle. Computing devices 110 may also use the signaling system 166 in order to signal the vehicle's intent to other drivers or vehicles, for example, by lighting turn signals or brake lights when needed.
Routing system 170 may be used by computing devices 110 in order to generate a route to a destination location using map information. Planning system 168 may be used by computing device 110 in order to generate short-term trajectories that allow the vehicle to follow routes generated by the routing system. In this regard, the planning system 168 and/or routing system 166 may store detailed map information, e.g., pre-stored, highly detailed maps identifying a road network including the shape and elevation of roadways, lane lines, intersections, crosswalks, speed limits, traffic signals, buildings, signs, real time traffic information (updated as received from a remote computing device), pullover spots, vegetation, or other such objects and information.
The map information may be configured as a roadgraph. The roadgraph may include a plurality of graph nodes and edges representing features such as crosswalks, traffic lights, road signs, road or lane segments, etc., that together make up the road network of the map information. Each edge is defined by a starting graph node having a specific geographic location (e.g., latitude, longitude, altitude, etc.), an ending graph node having a specific geographic location (e.g., latitude, longitude, altitude, etc.), and a direction. This direction may refer to a direction the autonomous vehicle 100 must be moving in in order to follow the edge (i.e., a direction of traffic flow). The graph nodes may be located at fixed or variable distances. For instance, the spacing of the graph nodes may range from a few centimeters to a few meters and may correspond to the speed limit of a road on which the graph node is located. In this regard, greater speeds may correspond to greater distances between graph nodes. The edges may represent driving along the same driving lane or changing driving lanes. Each node and edge may have a unique identifier, such as a latitude and longitude location of the node or starting and ending locations or nodes of an edge. In addition to nodes and edges, the map may identify additional information such as types of maneuvers required at different edges as well as which lanes are drivable.
These paths may be formed by following edges between nodes in the aforementioned roadgraph. As an example, an edge may correspond to a segment of drivable road surface. For instance, as shown in
The routing system 166 may use the aforementioned map information to determine a route from a current location (e.g., a location of a current node) to a destination location. Routes may be generated using a cost-based analysis which attempts to select a route to the destination location with the lowest cost. Costs may be assessed in any number of ways such as time to the destination location, distance traveled (each edge may be associated with a cost to traverse that edge), types of maneuvers required, convenience to passengers or the vehicle, etc. For example, each individual edge in the roadgraph may be associated with a cost. These costs may be summed together with or without additional costs (e.g., additional costs for maneuvers or convenience, etc.) in order to determine the overall cost of a particular route. When multiple routes are generated, the route with the lowest overall cost may be selected by the routing system and published to the various other systems of the autonomous vehicle. For example, between a route with a large number of intersections with traffic controls (such as stop signs or traffic signal lights) versus one with no or very few traffic controls, the latter route may have a lower cost (e.g., because it is faster) and therefore be preferable. Each route may include a list of a plurality of nodes and edges which the vehicle can use to reach the destination location. Routes may be recomputed periodically as the vehicle travels to the destination location.
The map information used for routing may be the same or a different map as that used for planning trajectories. For example, the map information used for planning routes not only requires information on individual driving lanes, but also the nature of driving and bicycle lane boundaries (e.g., solid white, dash white, solid yellow, etc.) to determine where lane changes are allowed. However, unlike the map used for planning trajectories, the map information used for routing need not include other details such as the locations of crosswalks, traffic lights, stop signs, etc., though some of this information may be useful for routing purposes.
Positioning system 170 may be used by computing devices 110 in order to determine the vehicle's relative or absolute position on a map or on the earth. For example, the positioning system 170 may include a GPS receiver to determine the device's latitude, longitude and/or altitude position. Other location systems such as laser-based localization systems, inertial-aided GPS, or camera-based localization may also be used to identify the location of the vehicle. The location of the vehicle may include an absolute geographical location, such as latitude, longitude, and altitude, a location of a node or edge of the roadgraph as well as relative location information, such as location relative to other cars immediately around it, which can often be determined with less noise than the absolute geographical location.
The positioning system 172 may also include other devices in communication with computing devices 110, such as an accelerometer, gyroscope or another direction/speed detection device to determine the direction and speed of the vehicle or changes thereto. By way of example only, an acceleration device may determine its pitch, yaw or roll (or changes thereto) relative to the direction of gravity or a plane perpendicular thereto. The device may also track increases or decreases in speed and the direction of such changes. The device's provision of location and orientation data as set forth herein may be provided automatically to the computing device 110, other computing devices and combinations of the foregoing.
The perception system 174 also includes one or more components for detecting objects external to the vehicle such as other road users (vehicles, pedestrians, bicyclists, etc.) obstacles in the roadway, traffic signals, signs, trees, buildings, etc. For example, the perception system 174 may include Lidars, sonar, radar, cameras, microphones and/or any other detection devices that generate and/or record data which may be processed by the computing devices of computing devices 110. In the case where the vehicle is a passenger vehicle such as a minivan or car, the vehicle may include Lidar, cameras, and/or other sensors mounted on or near the roof, fenders, bumpers or other convenient locations.
For instance,
Computing devices 110 may be capable of communicating with various components of the vehicle in order to control the movement of autonomous vehicle 100 according to primary vehicle control code of memory of computing devices 110. For example, returning to
The various systems of the vehicle may function using autonomous vehicle control software in order to determine how to control the vehicle. As an example, a perception system software module of the perception system 174 may use sensor data generated by one or more sensors of an autonomous vehicle, such as cameras, Lidar sensors, radar units, sonar units, etc., to detect and identify objects and their characteristics. These characteristics may include location, type, heading, orientation, speed, acceleration, change in acceleration, size, shape, etc.
In some instances, characteristics may be input into a behavior prediction system software module of the behavior modeling system 176 which uses various behavior models based on object type to output one or more behavior predictions or predicted trajectories for a detected object to follow into the future (e.g., future behavior predictions or predicted future trajectories). In this regard, different models may be used for different types of objects, such as pedestrians, bicyclists, vehicles, etc. The behavior predictions or predicted trajectories may be a list of positions and orientations or headings (e.g., poses) as well as other predicted characteristics such as speed, acceleration or deceleration, rate of change of acceleration or deceleration, etc.
In other instances, the characteristics from the perception system 174 may be put into one or more detection system software modules, such as a traffic light detection system software module configured to detect the states of known traffic signals, construction zone detection system software module configured to detect construction zones from sensor data generated by the one or more sensors of the vehicle as well as an emergency vehicle detection system configured to detect emergency vehicles from sensor data generated by sensors of the vehicle. Each of these detection system software modules may use various models to output a likelihood of a construction zone or an object being an emergency vehicle.
Detected objects, predicted trajectories, various likelihoods from detection system software modules, the map information identifying the vehicle's environment, position information from the positioning system 170 identifying the location and orientation of the vehicle, a destination location or node for the vehicle as well as feedback from various other systems of the vehicle may be input into a planning system software module of the planning system 168. The planning system 168 may use this input to generate planned trajectories for the vehicle to follow for some brief period of time into the future based on a route generated by a routing module of the routing system 170.
A similar process as described above with regard to assessing costs of routes may be used for computing costs of and selecting trajectories by the planning system 168. In other words, during a planning iteration, the planning system may generate a plurality of potential trajectories. The costs of each edge of a potential trajectory may be summed together with or without additional costs (e.g., additional costs for maneuvers or convenience, etc.) in order to determine the overall cost of the potential trajectory. The lowest cost potential trajectory may then be selected by the planning system as the next trajectory for the autonomous vehicle to follow.
Each planned trajectory may provide a planned path and other instructions for an autonomous vehicle to follow for some brief period of time into the future, such as 10 seconds or more or less. In this regard, the trajectories may define the specific characteristics of acceleration, deceleration, speed, direction, etc. to allow the vehicle to follow the route towards reaching a destination location. A control system software module of computing devices 110 may be configured to control movement of the vehicle, for instance by controlling braking, acceleration and steering of the vehicle, in order to follow a trajectory.
The computing devices 110 may control the vehicle in one or more of the autonomous driving modes by controlling various components. For instance, by way of example, computing devices 110 may navigate the vehicle to a destination location completely autonomously using data from the detailed map information and planning system 168. Computing devices 110 may use the positioning system 170 to determine the vehicle's location and perception system 174 to detect and respond to objects when needed to reach the location safely. Again, in order to do so, computing device 110 and/or planning system 168 may generate trajectories and cause the vehicle to follow these trajectories, for instance, by causing the vehicle to accelerate (e.g., by supplying fuel or other energy to the engine or power system 178 by acceleration system 162), decelerate (e.g., by decreasing the fuel supplied to the engine or power system 178, changing gears, and/or by applying brakes by deceleration system 160), change direction (e.g., by turning the front or rear wheels of autonomous vehicle 100 by steering system 164), and signal such changes (e.g., by lighting turn signals) using the signaling system 166. Thus, the acceleration system 162 and deceleration system 160 may be a part of a drivetrain that includes various components between an engine of the vehicle and the wheels of the vehicle. Again, by controlling these systems, computing devices 110 may also control the drivetrain of the vehicle in order to maneuver the vehicle autonomously.
In addition to the operations described above and illustrated in the figures, various operations will now be described. It should be understood that the following operations do not have to be performed in the precise order described below. Rather, various steps can be handled in a different order or simultaneously, and steps may also be added or omitted.
For instance, one or more first systems of the autonomous vehicle, such as a perception system 174 or planning system 168, may predict whether a traffic stack exists or is likely to occur when the autonomous vehicle enters an intersection. This may involve receiving behavior predictions as well as occlusion information for other road users (e.g., other vehicles) and traffic density detected by the autonomous vehicle's perception system. The behavior predictions may be provided as a series of probability distributions over time. The first probability distribution in the series may identify locations where an object (e.g., another road user) is predicted to be at time t, the next probability distribution may identify locations where the object is predicted to be at a time t+Δt, the next probability distribution may identify locations where the object is predicted to be at a time t+2*Δt, and so on. Each probability distribution may be a “density” spread over all the locations that the object could be in at each of those times, with higher density values indicating higher likelihood locations. From this, at each future time, the computing devices 110 can calculate a total probability distribution for whether the object's location will be beyond a threshold location D. This threshold location D may be defined as a location such that if the object passes this threshold location, the autonomous vehicle 100 will be able to exit the intersection when the traffic signal light turns red. Mathematically, each total probability may be defined as an integral from minus infinity to the threshold location D of the probability distribution. In some instances, the distribution of locations may be represented as a mixture of Gaussians. Known tables for Gaussian integrals that can be used to get an accurate value. In this regard, the computing device 110 may use the total probability for a future time R when the traffic signal light is expected to turn red to estimate the probability of the object being before the threshold location D at that time. This value may then be considered the likelihood of a traffic stack at the intersection.
The occlusion information may be tracked by the perception system 174 or another occlusion system, which takes the output of the perception system 174 (e.g., perception information) as input in order to estimate the locations of occluded road users. This occlusion information may include predicted information about vehicles which were detected by the perception system but thereafter have become occluded. For example, if the perception system 174 has detected three vehicles in front of the autonomous vehicle on an uphill grade, and the closest is a bus, when the autonomous vehicle reaches a more level road surface, the other two vehicles in front of the bus may not be able to be observed and tracked by the perception system. As such, at this point, the other two vehicles are occluded. However, by predicting that the other two vehicles have not left that lane, the perception system and/or a distinct occlusion system may output occlusion information or location and speed estimates for the two occluded vehicles based on prior observations of the two vehicles. For example, because the perceptions system, which also tracks vehicles in adjacent lanes, does not identify any vehicles moving into these adjacent lanes, the perception system and/or occlusion system may output estimates for the two vehicles in front of the bus with an estimated location and speed, even when the perception system cannot currently perceive the two vehicles.
Traffic density may be derived from perception information. As an example, the traffic density may identify how many vehicles the perception system has perceived in the autonomous vehicle's current lane and/or adjacent lanes.
The one or more first systems may use the behavior predictions as well as occlusion information about other road users based on the perceived traffic density to determine whether at least one vehicle in the same lane as the autonomous vehicle immediately in front of the autonomous vehicle will stop before a location beyond the intersection which would allow the autonomous vehicle to pull behind the other vehicle and exit the intersection. In this regard, the one or more first systems may also determine a likelihood of a traffic stack using the predicted trajectory likelihood and uncertainty distributions for each behavior prediction as well as occlusion information about other road users based on the perceived traffic density. In other words, a traffic stack may be predicted when another vehicle (i.e., the last vehicle in a traffic stack) in front of the autonomous vehicle is predicted to be likely (i.e., to at least some minimum threshold likelihood value) to stop in a location that will not leave enough room for the autonomous vehicle to exit the intersection.
As indicated above, this predicting could also include estimating when a traffic signal turns from red to yellow in order to avoid stopping in an intersection when the light is red or alternatively, the autonomous vehicle's computing systems could attempt to avoid stopping in intersections altogether. For the former case, the yellow to red transition time may be estimated using traffic engineering formulas or logged data for each intersection. This in turn may be used to narrow down the times for which the autonomous vehicle should not stop in the intersection. Additional and more complex approaches may also be used to predict traffic stacks. For example, machine-learned models which use map information, temporal information (e.g., based on logged observations or other data, traffic stacks at this location or generally may be more likely between 4 and 6 pm, and much less likely at 10 pm), occlusion information and the behavior predictions to output a prediction of a location (e.g., a starting position) of a traffic stack in a particular lane may be used. Such machine learned models may also output a likelihood of a predicted traffic stack. In this regard, if the likelihood is greater than a threshold value, the one or more first systems may predict a traffic stack.
In addition, or alternatively, machine learned models may be used to predict whether a given road user is “passable”, “impassable”, and “unsure”. Different features contribute to whether an agent is passable, such as the agent type (bus, large vehicle, motorcyclist, etc.), the vehicle's motion state (stationary vs. moving), and other perception annotations (unparking, double parked, parallel parking, etc.). Road users that are determined to be passable may be indicative of a stopped vehicle which can be nudged or otherwise driven around (and may be less of a concern for blocking an intersection), whereas those that are determined to be impassable should be yielded to as early as possible to avoid blocking the intersection. For agents classified as unsure, the autonomous vehicle may, in some instances, adjust its location (e.g., move slightly into the intersection) to get a better field of view for the autonomous vehicle's perception system in order to improve the likelihood of classifying the agent as passable or impassable.
In the case that other road users in the autonomous vehicle's lane are highly occluded, the autonomous vehicle's computing devices may predict whether there is a traffic stack according to the traffic in the adjacent lanes. For example, a bus in front of an autonomous vehicle may completely block the perception system's view of all the vehicles in front of the bus. Thus, the autonomous vehicle's computing devices may be unable to directly detect if there is a traffic stack in front of the bus. However, if there is a traffic stack in one or more adjacent lanes, and the bus is slowing down or moving relatively slowly (i.e., as compared to the speed limit), the autonomous vehicle's computing devices may predict a traffic stack is located in front of the bus as well.
For example,
If a traffic stack is predicted, the one or more first systems may send a signal to one or more second systems in order to encourage the autonomous vehicle to perform lane changes. For instance, returning to the example of
Returning to
Thus, in order to encourage a lane change, in response to receiving the signal, the costs of any edges in the roadgraph between the autonomous vehicle and the traffic stack (i.e., the vehicle immediately in front of the autonomous vehicle), may be adjusted (e.g., increased). The adjustment may be based on a fixed value, an exponentially decaying cost with respect to the predicted/observed length of a traffic stack, a heuristic or learned cost as a function of the situation (e.g., time of day, location, maneuver type, traffic density, expected or known traffic light duration for the next intersection, etc.). Costs of additional edges in the same lane beyond the last vehicle in the traffic stack may also be adjusted (e.g., increased), for example, when the one or more first systems are able to detect a plurality of vehicles in the traffic stack. These edges may also include those that correspond to the lane in which the autonomous vehicle is currently traveling, as opposed to adjacent lanes. Thus, with all else being equal, the increase in costs may effectively encourage the autonomous vehicle to change lanes.
Turning to
The amount of the adjustment may be determined manually by observation and simulation in order to increase the likelihood of lane changes while avoiding situations in which dramatic increases in the costs result in the autonomous vehicle changing lanes in a detrimental way. Examples of such may include missing a turn or exit which dramatically increases the time to destination, results in the autonomous vehicle leaving a service area, or results in the autonomous vehicle stranded or unable to make forward progress.
Returning to
The one or more new routes may then be published to other systems of the autonomous vehicle, including the one or more first systems. In this regard, the one or more first systems may use the one or more new routes to generate new trajectories. As with the one or more second systems, the one or more first systems may generate trajectories using a cost analysis to select a trajectory for the autonomous vehicle to follow. This may involve selecting a trajectory that does or does not result in a lane change; however, due to the adjusted costs used by the one or more second systems, the trajectory may be implicitly biased towards a lane change because of the predicted traffic stack.
In some instances, traffic stacks may also be predicted or detected in one or more adjacent lanes by the one or more first systems. In such situations, a signal may be sent to the one or more second systems which may adjust the costs of edges in the adjacent lane as well. Again, the one or more second systems may then use the roadgraph and adjusted costs to determine one or more new routes as described above. The one or more new routes may then be published to other systems of the autonomous vehicle, including the one or more first systems. In this regard, the one or more first systems may use the one or more new routes to generate new trajectories.
In such instances, the one or more first systems may also analyze which of the lanes has a “worse” traffic stack and provide corresponding signals to the one or more second systems. This may be based on the likelihood values for each traffic stack, traffic density in each lane, stopping distance (e.g., from the edge/exit of the intersection or the estimated stopping location of the autonomous vehicle), estimating the probability of being stuck in the traffic intersection or rather the likelihood of each predicted traffic stack, etc. In this regard, the costs of the edges in the “worse” lane may be increased by the one or more second systems by a greater value than the costs of the edges in any other lanes.
For example, regarding the stopping distance, if a traffic stack in a first lane allows the autonomous vehicle to stop closer to the intersection exit, this may be a more attractive, preferred, or less-worse option than a traffic stack in a second lane that forces the autonomous vehicle to stop in the middle of the intersection, blocking traffic.
As another example assuming predicted traffic stacks are generally the same for two lanes, if a first lane is in dense traffic that is moving more slowly, and a second lane has traffic that is making more progress, the first lane may be a less attractive, less preferred or worse option that the second lane which may be a more attractive, preferred or less-worse option.
As another example assuming predicted traffic stacks are generally the same for two lanes, if a first lane has a higher likelihood of a traffic stack than a second lane, the first lane may be a less attractive, less preferred or worse option that the second lane which may be a more attractive, preferred or less-worse option.
As another example assuming predicted traffic stacks are generally the same for two lanes, if a first lane will lead the autonomous vehicle out of a service area and a second lane would not, the first lane may be a less attractive, less preferred or worse option that the second lane which may be a more attractive, preferred or less-worse option.
As another example assuming predicted traffic stacks are generally the same for two lanes, if a first lane will increase an estimated time of arrival for the autonomous vehicle (e.g., at a pickup or drop off location or other destination) than a second lane, the first lane may be a less attractive, less preferred or worse option that then second lane which may be a more attractive, preferred or less-worse option.
As another example assuming predicted traffic stacks are generally the same for two lanes, if a first lane will lead the autonomous vehicle on a route which requires complex maneuvers (e.g., U-turns, K- or three-point turns, unprotected left turns, etc.) and second lane would not, the first lane may be a less attractive, less preferred or worse option that then second lane which may be a more attractive, preferred or less-worse option.
The features described herein may enable an autonomous vehicle to respond to traffic stacks and in particular at intersections. For instance, a traffic stack is predicted, the autonomous vehicle's computing devices may take action to encourage lane changes. By encouraging lane changes as described herein, the autonomous vehicle may be better able to avoid being stopped behind a traffic stack within an intersection. This, in turn, may enable the autonomous vehicle to make greater forward progress in certain areas, such as dense intersection traffic which can be typical in dense urban and other environments.
Unless otherwise stated, the foregoing alternative examples are not mutually exclusive, but may be implemented in various combinations to achieve unique advantages. As these and other variations and combinations of the features discussed above can be utilized without departing from the subject matter defined by the claims, the foregoing description of the embodiments should be taken by way of illustration rather than by way of limitation of the subject matter defined by the claims. In addition, the provision of the examples described herein, as well as clauses phrased as “such as,” “including” and the like, should not be interpreted as limiting the subject matter of the claims to the specific examples; rather, the examples are intended to illustrate only some of many possible embodiments. Further, the same reference numbers in different drawings can identify the same or similar elements.