AUTOMATIC GENERATING OF BLOCKAGES IN MAP INFORMATION FOR USE BY A FLEET OF AUTONOMOUS VEHICLES
Aspects of the disclosure provide methods of generating blockages in map information for use by a fleet of autonomous vehicles. For instance, information from an autonomous vehicle of the fleet may be received by one or more processors of a server computing system. That the received information meets at least one set of rules for generating blockages may be determined. Based on the determination that the received information meets at least one set of rules for generating blockages, blockage data identifying a specific area of a blockage may be generated. The blockage data may be sent to the autonomous vehicles of the fleet in order to enable the autonomous vehicles of the fleet to avoid the specific area of the blockage.
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. This data may be combined with pre-stored map information in order to enable the autonomous vehicle to plan trajectories in order to maneuver itself through the surroundings.
BRIEF SUMMARYOne aspect of the disclosure provides a method of generating blockages in map information for use by a fleet of autonomous vehicles. The method includes receiving, by one or more processors of a server computing system, information from an autonomous vehicle; determining, by the one or more processors, that the received information meets at least one set of rules for generating blockages, wherein the at least one set of rules specifies whether a specific geographic area has a minimum number of disengagement or stranding instances associated with the fleet; based on the determination that the received information meets the at least one set of rules for generating blockages, generating, by the one or more processors, blockage data identifying a specific area of a blockage; and sending, by the one or more processors, the blockage data to autonomous vehicles of the fleet in order to enable the autonomous vehicles of the fleet to avoid the specific area of the blockage.
In one example, the received information includes stranding information indicating a stranding instance associated with the autonomous vehicle. In another example, the received information includes disengagement information indicative of a disengagement instance associated with the autonomous vehicle has become stranded. In another example, the at least one set of rules for generating blockages is associated with a minimum number of autonomous vehicles reporting information that satisfies the at least one set of rules for generating blockages. In this example, the at least one set of rules for generating blockages is associated with a timing constraint for meeting the set of rules. In another example, the method also includes receiving, by the one or more processors, updated information from a second autonomous vehicle; determining, by the one or more processors, based on the updated information that a second set of rules for removing the blockage has been met by a minimum number of autonomous vehicles; and based on the determination that the second set of rules has been met, sending a second instruction to the autonomous vehicles of the fleet to remove the blockage from map information stored locally at the autonomous vehicles of the fleet. In this example, the second set of rules is associated with a timing constraint for meeting the second set of rules. In another example, the method also includes receiving, by the one or more processors, second information from a second autonomous vehicle; determining, by the one or more processors, that the received information does not meet any of the set of rules for generating blockages; determining, by the one or more processors, that a second blockage is needed based on the second information and an increase in a number of disengagement or stranding instances associated with the fleet; in response to determining that a second blockage is needed, generating, by the one or more processors, second blockage data identifying a second specific area of the second blockage; and sending, by the one or more processors, the second blockage data to the autonomous vehicles of the fleet in order to enable the autonomous vehicles of the fleet to avoid the second specific area of the second blockage. In this example, the method also includes determining the increase based on a probabilistic approach.
Another aspect of the disclosure provides a method of generating blockages in map information for use by a fleet of autonomous vehicles. The method includes receiving, by one or more processors of a server computing system, information from an autonomous vehicle; determining, by the one or more processors, that the received information meets at least one set of rules for generating blockages, wherein at least one of the sets of rules specifies whether a specific geographic area has been traversed by a minimum number of autonomous vehicles; based on the determination that the received information meets at least one set of rules for generating blockages, generating, by the one or more processors, a blockage data identifying a specific area of a blockage; and sending, by the one or more processors, the blockage data to autonomous vehicles of the fleet in order to enable the autonomous vehicles of the fleet to avoid the specific area of the blockage.
In one example, the specific geographic area is a cul-de-sac. In another example, the at least one set of rules for generating blockages is associated with a minimum number of autonomous vehicles reporting information that satisfies the at least one set of rules for generating blockages. In this example, the at least one set of rules for generating blockages is associated with a timing constraint for meeting the set of rules. In another example, the method also includes receiving, by the one or more processors, updated information from a second autonomous vehicle of the fleet; determining, by the one or more processors, based on the updated information that a second set of rules for removing the blockage has been met by a minimum number of autonomous vehicles; and based on the determination that the second set of rules has been met, sending a second instruction to the autonomous vehicles of the fleet to remove the blockage from map information stored locally at the autonomous vehicles of the fleet. In this example, the second set of rules is associated with a timing constraint for meeting the second set of rules.
Another aspect of the disclosure provides a method of generating blockages in map information for use by a fleet of autonomous vehicles. The method includes receiving, by one or more processors of a server computing system, information from an autonomous vehicle; determining, by the one or more processors, that the received information meets at least one set of rules for generating blockages, wherein at least one of the sets of rules specifies whether autonomous vehicle has reported an error situation or fallback state for the autonomous vehicle; based on the determination that the received information meets at least one set of rules for generating blockages, generating, by the one or more processors, a blockage data identifying a specific area of a blockage; and sending, by the one or more processors, the blockage data to autonomous vehicles of the fleet in order to enable the autonomous vehicles of the fleet to avoid the specific area of the blockage.
In one example, the at least one set of rules for generating blockages is associated with a minimum number of autonomous vehicles reporting information that satisfies the at least one set of rules for generating blockages. In another example, the at least one set of rules for generating blockages is associated with a timing constraint for meeting the at least one set of rules. In another example, the method also includes receiving, by the one or more processors, updated information from a second autonomous vehicle of the fleet; determining, by the one or more processors, based on the second information that a second set of rules for removing the blockage has been met by a minimum number of autonomous vehicles; and based on the determination that the second set of rules has been met, sending a second instruction to the autonomous vehicles of the fleet to remove the blockage from map information stored locally at the autonomous vehicles of the fleet. In this example, the second set of rules is associated with a timing constraint for meeting the second set of rules.
The technology relates to automatically generating blockages for map information for use by a fleet of autonomous vehicles. For example, as these autonomous vehicles drive around, respective perception systems detect and identify objects. Certain information about the status of the autonomous vehicles as well as information about detected objects or agents is reported to a fleet management system. The reported information may be leveraged in order to determine when it may be appropriate to create a blockage in map information used by the autonomous vehicles to navigate. As such, a blockage may include an area of map information that the system marks for an autonomous vehicle to avoid. Blockage data or information identifying these blockages may then be provided to all or some or the autonomous vehicles of the fleet in order to enable them to update their respective map information and thereby prevent the autonomous vehicles from driving within areas of these blockages.
As noted above, as an autonomous vehicle of a fleet drives around, the autonomous vehicle's perception system may detect and identify objects in the vehicle's environment. For example, the perceptions system of the autonomous vehicle may use sensors to detect and identify road users (e.g., pedestrians, bicyclists, vehicles, etc.), fences, construction objects (e.g., cones, fences, barriers), signs (e.g., temporary or persistent stop signs, speed limit signs, etc.), etc. In some instances, certain detectors may be used to identify the location and bounds of certain types of areas which may or may not already be incorporated into the map information such as a school zone, construction zones, etc.
Certain of this information generated by the perception system as well as other information about the status of the autonomous vehicle may be sent to a fleet management system. For example, the other information may include the pose, speed, and other characteristics. This information may be sent via a network. In this regard, the fleet management system may receive the information from the plurality of vehicles as a stream of coordinates for respective perception objects.
The received information may be compared by the fleet management system to at least one set of rules for generating different types of blockages. Each set of rules may be associated with, for example, a minimum number of autonomous vehicles reporting information that meets the rules of the set of rules. In some instances, sets of rules may be associated with a timing constraint for meeting the set of rules. In addition, each set of rules may be associated with blockage generation instructions and a blockage time as discussed further below.
For example, one set of rules may correspond to construction zone blockages. As another example, one set of rules may correspond to potential construction blockages. As another example, one set of rules may correspond to cul-de-sac blockages. As another example, one set of rules may correspond to stranding or disengage blockages. As another example, one set of rules may correspond to volume blockages. As another example, one set of rules may correspond to fallback blockages.
If any of the sets of rules are met by the received information, the fleet management system may generate blockage data for a blockage for a particular area. Depending upon which set of rules is met, the fleet management system may generate the blockage in different ways. In this regard as noted above, each set of rules may be associated with blockage generation instructions for generating blockage data for a blockage including a particular area. This particular area may be as granular as a specific section of a lane, sections of a plurality of lanes, an intersection, or even larger areas.
Once blockage data for a blockage is generated, the fleet management system may broadcast blockage data identifying the specific area of the blockage to the autonomous vehicles of the fleet. For instance, the fleet management system needs only identify edges of the road graph which are associated with some change. This may provide an efficient and reliable way to update the map information stored locally at each autonomous vehicle of the fleet in real time.
Each autonomous vehicle may receive the information and incorporate it into that autonomous vehicle's local version of the map information. In this regard, the autonomous vehicles may be automatically able to avoid the specific areas associated with the blockages.
As noted above, each set of rules may also be associated with a blockage time. This blockage time may define how long a particular blockage is to persist in an autonomous vehicle's local map information. In this regard, the fleet management system may provide a blockage time with each new blockage. In some instances, the fleet management system may provide an update to the fleet to remove blockage data for a blockage once certain conditions for the blockage have been met. In some instances, the updates may be based on the aforementioned information received from the autonomous vehicles of the fleet.
The features described herein may provide a centralized system that is able to control where autonomous vehicles of a fleet are able to drive in real time. For example, the features may allow for a fleet management system to automatically and without human intervention prevent autonomous vehicles of a fleet from driving in certain areas without the need for humans to first confirm the blockage or to notify specific vehicles. In other words, the approaches described herein may improve the overall quality of driving for a fleet of autonomous vehicles without necessarily requiring any specific, centralized decision-making. By generating blockage and implementing blockages automatically, autonomous vehicles of the fleet can immediately start avoiding particular lanes and there is no need to do any intelligence gathering before implementing a blockage. Moreover, the features described herein provide for a system where the map information at each autonomous vehicle is as consistent as possible across the fleet. In many instances, adding blockages to the map information used by the autonomous vehicle may reduce the numbers of strandings and disengagements, reduce traffic congestion caused by slow moving or stopped (e.g., stranded) autonomous vehicles through certain areas, and may also improve navigation quality. As such, the features described herein may also improve the experience of passengers of these autonomous vehicles. Moreover, the more autonomous vehicles providing information, the more useful and up to date the blockages may be.
Example SystemsAs 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, electronic 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 described in detail below. 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 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). For example,
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. Routes may be generated using a cost-based analysis which attempts to select a route to the destination with the lowest cost. Costs may be assessed in any number of ways such as time to the destination, 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. Each route may include a list of a plurality of nodes and edges which the vehicle can use to reach the destination. Routes may be recomputed periodically as the vehicle travels to the destination.
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 lanes, but also the nature of 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. 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.
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. 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. 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.
Computing device 110 of autonomous vehicle 100 may also receive or transfer information to and from other computing devices, such as those computing devices that are a part of the transportation service as well as other computing devices.
As shown in
The network 460, and intervening graph nodes, may include various configurations and protocols including short range communication protocols such as Bluetooth, Bluetooth LE, 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. Such communication may be facilitated by any device capable of transmitting data to and from other computing devices, such as modems and wireless interfaces.
In one example, one or more computing devices 410 may include one or more server computing devices having a plurality of computing devices, e.g., a load balanced server farm, that exchange information with different nodes of a network for the purpose of receiving, processing and transmitting the data to and from other computing devices. For instance, one or more computing devices 410 may include one or more server computing devices that are capable of communicating with computing device 110 of autonomous vehicle 100 or a similar computing device of autonomous vehicle 100A or autonomous vehicle 100B as well as computing devices 420, 430, 440 via the network 460. For example, autonomous vehicles 100, 100A, 100B, may be a part of a fleet of vehicles that can be dispatched by server computing devices to various locations.
In this regard, the server computing devices 410 may function as a fleet management system which can be used to track the status of autonomous vehicles of the fleet and arrange trips for passengers by assigning and dispatching vehicles such as autonomous vehicles 100, 100A, 100B. These assignments may include scheduling trips to different locations in order to pick up and drop off those passengers. In this regard, the server computing devices 410 may operate using scheduling system software in order to manage the aforementioned autonomous vehicle scheduling and dispatching. In addition, the computing devices 410 may use network 460 to transmit and present information to a user, such as user 422, 432, 442 on a display, such as displays 424, 434, 444 of computing devices 420, 430, 440. In this regard, computing devices 420, 430, 440 may be considered client computing devices.
As shown in
Although the client computing devices 420, 430 may each comprise a full-sized personal computing device, they may alternatively comprise mobile computing devices capable of wirelessly exchanging data with a server over a network such as the Internet. By way of example only, client computing device 420 may be a mobile phone or a device such as a wireless-enabled PDA, a tablet PC, a wearable computing device or system, or a netbook that is capable of obtaining information via the Internet or other networks. In another example, client computing device 430 may be a wearable computing system, such as a wristwatch as shown in
In some examples, client computing device 420 may be a mobile phone used by a passenger of a vehicle. In other words, user 422 may represent a passenger. In addition, client computing device 430 may represent a smart watch for a passenger of a vehicle. In other words, user 432 may represent a passenger. The client computing device 440 may represent a workstation for an operations person, for example, a remote assistance operator or someone who may provide remote assistance to an autonomous vehicle and/or a passenger. In other words, user 442 may represent an operator (e.g. operations person) of a transportation service utilizing the autonomous vehicles 100, 100A, 100B. Although only a few passengers and operations persons are shown in
As with memory 130, storage system 450 can be of any type of computerized storage capable of storing information accessible by the server computing devices 410, such as a hard-drive, memory card, ROM, RAM, DVD, CD-ROM, write-capable, and read-only memories. In addition, storage system 450 may include a distributed storage system where data is stored on a plurality of different storage devices which may be physically located at the same or different geographic locations. Storage system 450 may be connected to the computing devices via the network 460 as shown in
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.
As noted above, as the autonomous vehicle 100 drives around, the perception system 174 may detect and identify objects in the vehicle's environment. For example, the perceptions system of the autonomous vehicle may use sensors to detect and identify road users (e.g., pedestrians, bicyclists, vehicles, etc.), fences, construction objects (e.g., cones, fences, barriers), signs (e.g., temporary or persistent stop signs, speed limit signs, etc.), traffic control devices, etc. In some instances, certain detectors may be used to identify the location and bounds of certain types of areas which may or may not already be incorporated into the map information such as a school zone, construction zones, etc.
Certain of this information generated by the perception system as well as other information about the status of the autonomous vehicle may be sent to the server computing devices 410. For example, the other information may include the pose (e.g., position and orientation of the autonomous vehicle), speed, and other characteristics. This information may be sent via a network, such as a mobile network including 4G or 5G depending on what is available where the autonomous vehicle is currently located. In this regard, the server computing devices 410 may receive the information from the plurality of vehicles as a stream of coordinates for respective perception objects.
In this regard, such transmission of the information to the system may occur in real time. For example, every autonomous vehicle in the fleet may transmit in real time the objects or agents perceived while driving around in its respective environment, and transmit its observations to the fleet management system. In such examples, every autonomous vehicle of the fleet may maintain a local version of the map information and be able to receive, in real time, updates for the map information from the server computing devices 410. The updates may be generated based on the observations of the other autonomous vehicles of the fleet as discussed further below.
Returning to
For example, one set of rules may correspond to construction zone blockages. This set of rules may be associated with a minimum number of autonomous vehicles being at least 1. The set of rules may include that the autonomous vehicle 100 includes a passenger or a safety (monitoring) driver, that the safety driver switched the autonomous vehicle from autonomous driving mode to a manual driving mode (e.g., a disengage) or that a remote assistance operator had to send a command to prevent the autonomous vehicle from becoming or remaining stranded (e.g., a stranding), that the autonomous vehicle has perceived one or more construction objects (e.g., fences or cones), the perception system has detected a construction zone, that there is no existing blockage nearby in the map information (local to the server computing devices 410) which may cause the autonomous vehicle to have to enter into the autonomous vehicle's current location (i.e., there is a high penalty for entering the existing blockage or some other nearby location), that the construction zone is located in front of the autonomous vehicle, and that the autonomous vehicle is not current located within a depot or other secure location for the fleet of autonomous vehicle. In addition, the timing constraint may include a minimum amount of time for the autonomous vehicle to be operated in manual driving mode or that the autonomous vehicle is controlled based on instructions received from the remote assistance operator, such as 5 seconds or more or less.
As another example, one set of rules may correspond to potential construction blockages. This set of rules may be associated with a minimum number of autonomous vehicles being at least one or more. The set of rules may include that two or more construction objects are detected within some threshold distance (e.g., within 15 meters or more or less) of the autonomous vehicle. In addition, the timing constraint may include a minimum amount of time for the autonomous vehicle to be operated in manual driving mode or that the autonomous vehicle is controlled based on instructions from the remote assistance operator, such as 5 seconds or more or less. In this regard, even though the perception system has not actually detected a construction zone, the server computing devices 410 may still be able to generate a blockage.
As another example, one set of rules may correspond to stranding or disengage blockages. This set of rules may be associated with a minimum number of autonomous vehicles being at least two or more. The set of rules may include that a specific geographic area has a minimum number of disengagements or strandings, for example, at least two. In addition, the timing constraint may include a sliding window of some fixed period of time such as the last 24 hours or more or less and evaluated every 15, 30, 60 minutes or more or less.
As another example, one set of rules may correspond to a fallback blockages. This set of rules may be associated with a minimum number of autonomous vehicles being at least one or more. The set of rules may include that an autonomous vehicle has reported its status as corresponding to an error situation or fallback state such as when the autonomous vehicle must stop or pull over immediately, is no longer generating trajectories, or some other hardware or software error or failure has occurred. The set of rules may also include that the autonomous vehicle includes a passenger or a safety (monitoring) driver and that there is no existing blockage nearby in the map information which may cause the autonomous vehicle to have to enter into the autonomous vehicle's current location. In this example, a timing constraint may not be necessary.
As another example, one set of rules may correspond to volume blockages. This set of rules may be associated with a minimum number of autonomous vehicles being at least five, seven, or more or less. The set of rules may include that a specific geographic area has a minimum number of vehicles traversing the same location (e.g., road graph edges), lanes of less than a certain number in each direction of traffic or less than a certain width, etc. This may prevent situations in which a plurality of autonomous vehicles inadvertently creates traffic in certain areas or become stranded and create physical barriers to the flow of traffic in the area.
Similar to volume blockages, as another example, one set of rules may correspond to cul-de-sac blockages. This set of rules may be associated with a minimum number of autonomous vehicles being at least two, at least five, or more or less. The set of rules may include that a specific cul-de-sac in the map information was traversed by autonomous vehicles of the fleet more than five times. In addition, the timing constraint may include a sliding window of some fixed period of time such as the last 24 hours or more or less and evaluated every 15, 30, 60 minutes or more or less.
Because there may be various sets of rules for different types of blockages, to improve efficiency of the fleet management system, the server computing devices may only compare data as needed. For example, if the set of rules for cul-de-sac blockages limits the number of autonomous vehicles passing through the same cul-de-sac over a certain period of time, the server computing devices 410 need only compare the location and orientation information received from the autonomous vehicles to determine whether the set of rules for cul-de-sac blockages has been met within that certain period of time. At the same time, for the set of rules for potential construction zones, the server computing devices 410 may consider the location and orientation of the autonomous vehicle as well as construction objects such as fences, cones, and temporary signs, as well as nearby features of the road such as lane lines, curbs or other features defining a road edge. As new information is received by the server computing devices, this information may be sent to different applications of the server computing devices in order to process the data and determine whether a particular set of rules for blockages has been met.
Returning to
For example, for construction zone blockages, blockage data for a blockage may be generated corresponding to a specific area of a construction zone determined by the autonomous vehicle's perception system.
For example, for a potential construction zone blockage, blockage data for a blockage may be generated using a polygon of a predetermined size. For example, blockage data for a blockage may be generated to correspond to a pentagon with a 5 m radius of some point at or within the potential construction zone. This may be sufficient for a short period of time (e.g., a few hours or so) before a human operator is available to check the details of the automatically-created blockage and leave the blockage or create a new, more appropriate one. In other examples, the geometry of a lane and other roadgraph annotations on roadgraph features may be used to determine the geometry and size of the polygon.
For stranding or disengage blockages, the specific area of the blockage may correspond to all lanes moving in the same direction of travel of the lane in which the autonomous vehicles were traveling that reported the stranding or disengaging limited by the closest intersections or some other change to the geometry of the lanes of the blockage.
For fallback blockages, the specific area of the blockage may be a single lane in which the autonomous vehicle was traveling that reported the fallback extending from the location of the autonomous vehicle when the fallback was for a few dozen meters or more or less.
For volume blockages (including cul-de-sac blockages), blockage data for a blockage may be generated corresponding to the nodes and edges of where the autonomous vehicles were located or as another example, for all of the nodes and edges within an area of the cul-de-sac.
As noted above, in some instances, the server computing devices 410 may identify more than one set of rules that are met. In such instances, the server computing devices 410 may check to determine whether a blockage already exists at the area where a new blockage would be generated. For instance if there is any overlap between a blockage in the map information and the area of a new blockage (e.g., one or more nodes or edges in common), the server computing devices 410 need not generate the new blockage.
Returning to
For instance, as noted above, the blockage data may identify a polygon or nodes and/or edges of the roadgraph for a blockage. In this regard, certain edges of the roadgraph within the specific area of a blockage (e.g., within the polygon or identified in the blockage data) may be assigned higher costs to traverse or may be designated as nodes and/or edges which are closed to travel by the autonomous vehicles. For example, for a particular blockage, the cost of any edges within the specific area (or specifically identified edges) may be increased to “1000” whereas the typical cost may only be “10”. Of course, different cost values may be used. The routing and planning systems of an autonomous vehicle may always use the most recently updated costs in the local map information. In this regard, the autonomous vehicles may be automatically able to avoid the specific areas associated with the blockages while still traveling within such areas when necessary (e.g., because following an alternative route or trajectory would result in even higher costs).
For example, in each of the example blockages of
As noted above, each set of rules may also be associated with a blockage time. This blockage time may define how long a particular blockage is to persist in an autonomous vehicle's local map information. For example, for construction zone blockages, potential construction zone blockages, or volume blockages, the blockage time may be 30 minutes or more or less. This may be especially useful for construction zones which may only be temporary (i.e., just a few hours of work) or which were false positive detections by the onboard systems of an autonomous vehicle. In the example of a cul-de-sac blockage, the blockage may be automatically removed after some period of time has passed. For example, if the blockage was created after 5 autonomous vehicles entered the cul-de-sac within the last 12 hours, the blockage time may be 12 hours or more or less. Thereafter, the blockage may be removed from the map information at the autonomous vehicle. In other instances, such as stranding or disengaging blockages, the blockage time may be infinite or persistent such that the blockage will not be removed until the autonomous vehicle receives an update from the server computing devices 410. In this regard, the server computing devices 410 may provide a blockage time with each new blockage.
In some instances, in addition to the various sets of rules for different types of blockages, the server computing devices 410 may look for anomalies, such as sudden increases in certain behaviors which may not necessarily meet the aforementioned set of rules but may suggest that a blockage may is needed. For example, if the server computing devices 410 identify a statistical, clustering, or probabilistic increase in instances of strandings, disengages or fallback states reported within a particular geographic area or otherwise proximate to one another, this may be used by the server computing devices to determine that a blockage is needed even if the set of rules for a stranding, disengage or fallback blockage has not actually been met. In some instances, the geographic area may correspond to a threshold distance such as 50 meter or more or less radius.
For the statistical example, if the number of instances of strandings, disengages or fallback states reported within such a threshold distance increases rapidly or increases at least a threshold amount within a short period of time (e.g., a predetermined window), this may be used by the server computing devices to determine that a blockage is needed.
For the clustering example, the server computing devices 410 may use one or more clustering approaches to determine whether a blockage is needed. For example, the server computing devices 410 may utilize approaches such as the Ordering points to identify the clustering structure (OPTICS) algorithm.
For the probabilistic example, one or more anomaly detection algorithms may be used. For instance, such anomaly detection algorithms may include a standard score approach, local outlier factor approach, or any such similar approaches. Historical data about the circumstances (e.g., locations, dates, times, etc.) of strandings and disengages for the autonomous vehicles of the fleet at different locations may be stored by the server computing devices 410 (e.g., in the storage system 450). The anomaly detection algorithms may be applied to the historical data in combination with or without the clustering described above.
In such instances, the server computing devices may automatically generate a blockage for the geographic area while at the same time flagging the geographic area of the blockage in the map information stored by the server computing devices (e.g., in the storage system 450) for further review by a human operator. This enables the system to both react to anomalies quickly and thereby prevent unnecessary future stranding, disengages, etc. in the geographic area while also enabling human operators to further investigate the anomaly (e.g., the strandings, disengages, etc. and/or the geographic area itself.
In other instances, the server computing devices 410 may compare information received from the autonomous vehicles to information generated by the server computing devices in order to determine whether a certain geographic area may be flagged for review, for instance by a human operator who may then determine whether a blockage should be generated. In one example, the server computing devices 410 may compare estimated times of arrival generated by the routing systems of the autonomous vehicles to estimated times of arrival generated by the server computing devices. For example, the server computing devices 410 may use a local version of the routing systems used by the autonomous vehicles or third party products such as GOOGLE MAPS estimated times of arrival which may be determined using the current location of the autonomous vehicle and the destination of that autonomous vehicle (e.g., for a particular trip). For example, if the server computing devices 410 estimate a time of arrival for an autonomous vehicle to a destination location to be 25 minutes, while the routing system of the autonomous vehicle estimates a time of arrival of 30 minutes, a ratio of these may be determined. For example, 30 minutes/25 minutes results in a ratio of a value of 1.2. The server computing devices 410 may determine that the set of rules has been met and a blockage is needed if the ratio from multiple autonomous vehicles within the same geographic area increases rapidly or increases at least a threshold amount within a short period of time (e.g., a predetermined window). In some instances, the geographic area may correspond to a threshold distance such as 50 meter or more or less radius. This may indicate that there is some issue with the routing systems of the autonomous vehicles which can be flagged for further review by human operators, for example, by generating and transmitting a notification to another computing system for display, for example, on display 444 of computing device 440.
In other examples, in addition to using reports from the autonomous vehicles, the server computing devices 410 may use simulation data to determine whether a blockage is needed. For example, the server computing devices 410 may continuously run simulations to determine an anticipated difficulty of lane changes, merges, intersections, etc. at a certain location or rather, a difficulty value indicative of the difficulty of such maneuvers at that location. For example, a difficulty value may be a normalized value on a particular scale such as 0 to 1, where 1 is most difficult, or rather most costly (e.g., in terms of time) or likely to result in a stranding or disengaging). For instance, the server computing devices 410 may run simulations for certain geographic areas such as an intersection. Rather than driving the autonomous vehicles of the fleet through the intersection (e.g., making different types of turns or not turning) numerous times to assess a difficulty value, simulations can be used to assess difficulty values under various conditions (e.g., rain, snow, heavy traffic, no traffic, heavy pedestrian traffic, etc.). The difficulty value may be associated with the intersection such that if the likelihood of stranding or disengaging or the number of actual strandings exceed the difficulty value for the intersection, the intersection (or other geographic area) may be flagged for review by a human operator, for example, by generating and transmitting a notification to another computing system for display, for example, on display 444 of computing device 440.
In some instances, the server computing devices 410 may provide an update to the autonomous vehicles of the fleet to remove a blockage (e.g. the blockage data for a blockage) once certain conditions for the blockage have been met. For instance, blockage data may be removed from the local version of the map information for the autonomous vehicle 100. For example, in each of the example blockages of
For example, autonomous vehicles of the fleet or human drivers may be sent to observe the locations of blockages. In this regard, at the time blockage data for a blockage is generated by the server computing devices 410, the server computing devices 410 may generate one or more notifications for a human operator identifying portions of the map information included in a blockage. In some instances, these notifications may request the human operator to observe the area of the blockage in order to update aspects of (e.g., size, shape, blockage time or other characteristics) or completely remove the blockage from the map information. Once removed by a human operator, the server computing devices 410 may send a corresponding update to all or some of the autonomous vehicles of the fleet.
In some instances, the updates may be based on updated information received from the autonomous vehicles of the fleet. For example if a minimum number of vehicles reports a change in a specific area of a blockage the server computing devices 410 may determine whether to remove that blockage from the map information. In this regard, similar to the sets of rules for generating different types of blockages, all or some types of blockage (such as those with sets of rules associated with a persistent blockage time) may be associated with a set of rules for removing a blockage of that type. Each set of rules may be associated with, for example, a minimum number of autonomous vehicles reporting information that meets the rules of the set of rules for removing a blockage. In some instances, sets of rules may be associated with a timing constraint for meeting the set of rules. If the set of rules and timing constraints for a blockage of the given type are met by the minimum number of autonomous vehicles for that blockage, the server computing devices 410 may remove the blockage from the map information and send an update to autonomous vehicles of the fleet.
As an example, one set of rules may correspond to removing construction zone blockages. This set of rules may be associated with a minimum number of autonomous vehicles being at least three, four, five or more. The set of rules may include that an area of the blockage was observed by the perception system of an autonomous vehicle, the autonomous vehicle did not detect a construction zone overlapping with the area of the blockage, and there are no relevant construction zone objects (e.g., cones or fences). In addition, the timing constraint may include a sliding window of some fixed period of time such as the last 4 hours or more or less evaluated every 15, 30 or more or less minutes.
The features described herein may provide a centralized system that is able to control where autonomous vehicles of a fleet are able to drive in real time. For example, the features may allow for a fleet management system to automatically and without human intervention prevent autonomous vehicles of a fleet from driving in certain areas without the need for humans to first confirm the blockage or to notify specific vehicles. In other words, the approaches described herein may improve the overall quality of driving for a fleet of autonomous vehicles without necessarily requiring any specific, centralized decision-making. By generating blockage and implementing blockages automatically, autonomous vehicles of the fleet can immediately start avoiding particular lanes and there is no need to do any intelligence gathering before implementing a blockage. Moreover, the features described herein provide for a system where the map information at each autonomous vehicle is as consistent as possible across the fleet. In many instances, adding blockages to the map information used by the autonomous vehicle may reduce the numbers of strandings and disengagements, reduce traffic congestion caused by slow moving or stopped (e.g., stranded) autonomous vehicles through certain areas, and may also improve navigation quality. As such, the features described herein may also improve the experience of passengers of these autonomous vehicles. Moreover, the more autonomous vehicles providing information, the more useful and up to date the blockages may be.
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.
Claims
1. A method of generating blockages in map information for use by a fleet of autonomous vehicles, the method comprising:
- receiving, by one or more processors of a server computing system, information from an autonomous vehicle;
- determining, by the one or more processors, that the received information meets at least one set of rules for generating blockages, wherein the at least one set of rules specifies whether a specific geographic area has a minimum number of disengagement or stranding instances associated with the fleet;
- based on the determination that the received information meets the at least one set of rules for generating blockages, generating, by the one or more processors, blockage data identifying a specific area of a blockage; and
- sending, by the one or more processors, the blockage data to autonomous vehicles of the fleet in order to enable the autonomous vehicles of the fleet to avoid the specific area of the blockage.
2. The method of claim 1, wherein the received information includes stranding information indicating a stranding instance associated with the autonomous vehicle.
3. The method of claim 1, wherein the received information includes disengagement information indicative of a disengagement instance associated with the autonomous vehicle.
4. The method of claim 1, wherein the at least one set of rules for generating blockages is associated with a minimum number of autonomous vehicles reporting information that satisfies the at least one set of rules for generating blockages.
5. The method of claim 4, wherein the at least one set of rules for generating blockages is associated with a timing constraint for meeting the rules of the at least one set of rules for generating blockages.
6. The method of claim 1, further comprising:
- receiving, by the one or more processors, updated information from a second autonomous vehicle;
- determining, by the one or more processors, based on the updated information that a second set of rules for removing the blockage has been met by a minimum number of autonomous vehicles; and
- based on the determination that the second set of rules has been met, sending a second instruction to the autonomous vehicles of the fleet to remove the blockage from map information stored locally at the autonomous vehicles of the fleet.
7. The method of claim 6, wherein the second set of rules is associated with a timing constraint for meeting the second set of rules.
8. The method of claim 1, further comprising:
- receiving, by the one or more processors, second information from a second autonomous vehicle;
- determining, by the one or more processors, that the received information does not meet any of the sets of rules for generating blockages;
- determining, by the one or more processors, that a second blockage is needed based on the second information and an increase in a number of disengagement or stranding instances associated with the fleet;
- in response to determining that a second blockage is needed, generating, by the one or more processors, second blockage data identifying a second specific area of the second blockage; and
- sending, by the one or more processors, the second blockage data to the autonomous vehicles of the fleet in order to enable the autonomous vehicles of the fleet to avoid the second specific area of the second blockage.
9. The method of claim 8, further comprising determining the increase based on a probabilistic approach.
10. A method of generating blockages in map information for use by a fleet of autonomous vehicles, the method comprising:
- receiving, by one or more processors of a server computing system, information from an autonomous vehicle;
- determining, by the one or more processors, that the received information meets at least one set of rules for generating blockages, wherein at least one of the sets of rules specifies whether a specific geographic area has been traversed by a minimum number of autonomous vehicles;
- based on the determination that the received information meets at least one set of rules for generating blockages, generating, by the one or more processors, a blockage data identifying a specific area of a blockage; and
- sending, by the one or more processors, the blockage data to autonomous vehicles of the fleet in order to enable the autonomous vehicles of the fleet to avoid the specific area of the blockage.
11. The method of claim 10, wherein the specific geographic area is a cul-de-sac.
12. The method of claim 10, wherein the at least one set of rules for generating blockages is associated with a minimum number of autonomous vehicles reporting information that satisfies the at least one set of rules for generating blockages.
13. The method of claim 12, wherein the at least one set of rules for generating blockages is associated with a timing constraint for meeting the rules of the at least one set of rules.
14. The method of claim 10, further comprising:
- receiving, by the one or more processors, updated information from a second autonomous vehicle of the fleet;
- determining, by the one or more processors, based on the updated information that a second set of rules for removing the blockage has been met by a minimum number of autonomous vehicles; and
- based on the determination that the second set of rules has been met, sending a second instruction to the autonomous vehicles of the fleet to remove the blockage from map information stored locally at the autonomous vehicles of the fleet.
15. The method of claim 14, wherein the second set of rules is associated with a timing constraint for meeting the second set of rules.
16. A method of generating blockages in map information for use by a fleet of autonomous vehicles, the method comprising:
- receiving, by one or more processors of a server computing system, information from an autonomous vehicle;
- determining, by the one or more processors, that the received information meets at least one set of rules for generating blockages, wherein at least one of the sets of rules specifies whether autonomous vehicle has reported an error situation or fallback state for the autonomous vehicle;
- based on the determination that the received information meets at least one set of rules for generating blockages, generating, by the one or more processors, a blockage data identifying a specific area of a blockage; and
- sending, by the one or more processors, the blockage data to autonomous vehicles of the fleet in order to enable the autonomous vehicles of the fleet to avoid the specific area of the blockage.
17. The method of claim 16, wherein the at least one set of rules for generating blockages is associated with a minimum number of autonomous vehicles reporting information that satisfies the at least one set of rules for generating blockages.
18. The method of claim 16, wherein the at least one set of rules for generating blockages is associated with a timing constraint for meeting the at least one set of rules.
19. The method of claim 16, further comprising:
- receiving, by the one or more processors, updated information from a second autonomous vehicle of the fleet;
- determining, by the one or more processors, based on the second information that a second set of rules for removing the blockage has been met by a minimum number of autonomous vehicles; and
- based on the determination that the second set of rules has been met, sending a second instruction to the autonomous vehicles of the fleet to remove the blockage from map information stored locally at the autonomous vehicles of the fleet.
20. The method of claim 19, wherein the second set of rules is associated with a timing constraint for meeting the second set of rules.
Type: Application
Filed: Mar 10, 2023
Publication Date: Sep 12, 2024
Inventors: Dmytro Tymofieiev (Sunnyvale, CA), Chenyue Cook (San Francisco, CA), Joshua Jacob (San Francisco, CA), Zekai Li (Belmont, CA)
Application Number: 18/120,138