Using Discomfort for Speed Planning of Autonomous Vehicles
By identifying trailing vehicles and adjusting discomfort values, autonomous vehicle technology solves the problem of difficult-to-consider behavior, optimizes speed planning and path selection, and improves interactive safety.
Patent Information
- Application Number
- CN202210106742.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-11-13
- Filing Date
- 2018-11-20
- Publication Date
- 2025-02-25
- Estimated Expiration
- 2038-11-20
AI Technical Summary
Existing autonomous vehicle technology is difficult to effectively consider the behavior and discomfort of the objects behind the vehicle (such as the trailing vehicle), which affects the vehicle's speed planning and path selection.
By identifying the second vehicle as the trailing vehicle and adjusting the initial allowable discomfort value based on the set of factors related to the discomfort of the first vehicle passenger and the trailing vehicle passenger, determining the speed curve that satisfies the adjusted allowable discomfort value, The first vehicle is controlled in the autonomous driving mode.
It is realized that the speed planning and path selection of the vehicle are optimized while considering the discomfort of passengers of autonomous vehicles and trailing vehicles, and the interaction safety between the vehicle and trailing vehicles is improved.
Smart Images

Figure CN114312850B_ABST
Abstract
Description
[0001] This application is a divisional application of an invention patent application with an application date (international application date) of November 20, 2018, application number 201880091506.4 (international application number PCT / US2018 / 062044), and invention name “Using Discomfort for Speed Planning of Autonomous Vehicles”.
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS
[0003] This application is a continuation of U.S. patent application No. 16 / 188,619 filed on November 13, 2018 and a continuation of U.S. patent application No. 15 / 820,757 filed on November 22, 2017, the disclosures of which are incorporated herein by reference. Background Art
[0004] Autonomous vehicles, e.g., vehicles that do not require a human driver, can be used to help transport passengers or items from one location to another. Such vehicles can operate in a fully autonomous mode, where a passenger can provide some initial input, such as a pick-up or destination location, and the vehicle maneuvers itself to that location, e.g., by determining and following a route that may require the vehicle to respond to and interact with other road users (e.g., vehicles, pedestrians, cyclists, etc.). Summary of the invention
[0005] One aspect of the present disclosure provides a method for controlling a first vehicle. The method includes, while operating the first vehicle in an autonomous driving mode, identifying a second vehicle by one or more processors; identifying a geometry of a future trajectory of the first vehicle by one or more processors; identifying an initial allowable discomfort value by one or more processors; attempting to determine a speed curve of a geometry that satisfies the initial allowable discomfort value by determining a discomfort value of the speed curve based on a set of factors at least related to discomfort of a passenger of the first vehicle and discomfort of a passenger of the second vehicle by one or more processors; when a speed curve that satisfies the initial allowable discomfort value cannot be determined, adjusting the initial allowable discomfort value by one or more processors until a speed curve that satisfies the adjusted allowable discomfort value is determined; and controlling the first vehicle in an autonomous driving mode using a speed curve that satisfies the adjusted allowable discomfort value by one or more processors.
[0006] In one example, the geometry includes a first vehicle attempting to make a right turn in front of or behind a second vehicle. In this example, the speed profile that satisfies the adjusted allowable discomfort value corresponds to accelerating the first vehicle to turn right in front of the second vehicle. Alternatively, the speed profile that satisfies the adjusted allowable discomfort value corresponds to decelerating the first vehicle to turn right behind the second vehicle. In another example, the geometry includes the first vehicle merging into the lane of the second vehicle in front of or behind the second vehicle. In this example, the speed profile that satisfies the adjusted allowable discomfort value corresponds to accelerating the first vehicle to merge in front of the second vehicle. Alternatively, the speed profile that satisfies the adjusted allowable discomfort value corresponds to decelerating the first vehicle to merge behind the second vehicle. In another example, the geometry includes the first vehicle crossing a path in front of or behind the second vehicle. In this example, the speed profile that satisfies the adjusted allowable discomfort value corresponds to accelerating the first vehicle to cross the path in front of the second vehicle. Alternatively, the speed profile that satisfies the adjusted allowable discomfort value corresponds to decelerating the first vehicle to cross the path behind the second vehicle.
[0007] In another example, the factor set includes at least a maximum deceleration amount for the first vehicle. In another example, the factor set includes at least a maximum acceleration amount for the first vehicle. In another example, the factor set includes the amount by which the first vehicle is expected to exceed the speed limit of the lane in which the first vehicle is currently traveling. In another example, the factor set includes a lateral acceleration of the first vehicle. In another example, the factor set includes at least how close the first vehicle will approach the second vehicle. In another example, the factor set includes the amount by which the second vehicle is expected to need to decelerate. In another example, the factor set includes the amount by which the second vehicle is expected to need to accelerate. In another example, the factor set includes the amount by which the second vehicle will have to shift its position. In another example, the factor set includes an uncertainty value representing uncertainty in the discomfort value.
[0008] Another aspect of the present disclosure provides a system for controlling a first vehicle. The system includes: one or more processors configured to: identify a second vehicle while operating the first vehicle in an autonomous driving mode; identify the geometry of the future trajectory of the first vehicle; identify an initial allowable maximum allowable discomfort value; attempt to determine a speed curve that satisfies the geometry of the initial allowable discomfort value by determining the discomfort value of the speed curve based on a set of factors related to at least the discomfort of the passengers of the first vehicle and the discomfort of the passengers of the second vehicle; when a speed curve that satisfies the maximum allowable discomfort value cannot be determined, adjust the initial allowable discomfort value until a speed curve that satisfies the adjusted allowable discomfort value is determined; and control the first vehicle in an autonomous driving mode using the speed curve that satisfies the adjusted allowable discomfort value.
[0009] Aspects of the present disclosure provide a method for controlling a first vehicle. The method includes: while operating the first vehicle in an autonomous driving mode, identifying a second vehicle by one or more processors; determining by one or more processors that the second vehicle is a trailing vehicle; identifying by one or more processors an initial allowable discomfort value representing the expected discomfort of an occupant of the first vehicle and the expected discomfort of an occupant of the second vehicle; attempting by one or more processors to determine a speed curve of a future trajectory of the first vehicle that satisfies the initial allowable discomfort value based on a set of factors corresponding to the reaction of the trailing vehicle; when a speed curve that satisfies the initial allowable discomfort value cannot be determined, adjusting by one or more processors the initial allowable discomfort value until a speed curve that satisfies the adjusted allowable discomfort value is determined; and controlling the first vehicle in an autonomous driving mode using the speed curve that satisfies the adjusted allowable discomfort value by one or more processors.
[0010] In one example, the factor set includes a maximum allowable deceleration of the second vehicle. In another example, the method further includes: when the initial allowable discomfort value is adjusted, the maximum allowable deceleration of the second vehicle is also adjusted. In this example, adjusting the maximum allowable deceleration includes increasing the limit on the expected deceleration of the second vehicle. In another example, the factor set includes a reaction time of the second vehicle. In this example, when the initial allowable discomfort value is adjusted, the reaction time of the second vehicle is also adjusted. In addition, adjusting the reaction time includes reducing the reaction time. In another example, the factor set also includes constraints for stopping the first vehicle at an intersection. In this example, when the initial allowable discomfort value is adjusted, the constraints for stopping the first vehicle at an intersection are adjusted. In another example, when the initial allowable discomfort value is adjusted, the constraints for stopping the first vehicle at an intersection are ignored. In another example, determining that the second vehicle is a trailing vehicle is based on the position of the second vehicle relative to the first vehicle. In this example, determining that the second vehicle is a trailing vehicle is based on the speed of the second vehicle. In another example, the method further includes periodically updating the determination of whether the second vehicle is a trailing vehicle. In another example, the method further includes identifying, by one or more processors, a third vehicle while operating the first vehicle in the autonomous driving mode; determining, by the one or more processors, that the third vehicle is not a trailing vehicle, and attempting to determine a velocity profile of a geometry that satisfies the initial allowable discomfort value is also based on a second set of factors related to the third vehicle. In this example, the set of factors includes a first value for a maximum allowable deceleration of the second vehicle, and the second set of factors includes a second value for a maximum allowable deceleration of the third vehicle, and the second value is different from the first value. Additionally, the first value allows for a first limit on an expected deceleration of the second vehicle, the second value allows for a second limit on an expected deceleration of the third vehicle, and the first limit is less than the second limit. Additionally or alternatively, the set of factors includes a first value for a reaction time of the second vehicle, and the second set of factors includes a second value for a reaction time of the third vehicle, and the second value is different from the first value. Additionally, the first value is less than the second value, such that the reaction time of the second vehicle is less than the reaction time of the third vehicle.
[0011] Another aspect of the present disclosure provides a system for controlling a first vehicle. The system includes: one or more processors configured to: identify a second vehicle while operating the first vehicle in an autonomous driving mode; determine that the second vehicle is a trailing vehicle; identify an initial allowable discomfort value representing the expected discomfort of an occupant of the first vehicle and the expected discomfort of an occupant of the second vehicle; attempt to determine a speed curve of a future trajectory of the first vehicle that satisfies the initial allowable discomfort value based on a set of factors corresponding to a reaction of the trailing vehicle; when a speed curve that satisfies the initial allowable discomfort value cannot be determined, adjust the initial allowable discomfort value until a speed curve that satisfies the adjusted allowable discomfort value is determined; and control the first vehicle in an autonomous driving mode using the speed curve that satisfies the adjusted allowable discomfort value.
[0012] In one example, the one or more processors are further configured to: while operating the first vehicle in the autonomous driving mode, identify a third vehicle; and determine that the third vehicle is not a trailing vehicle. In this example, attempting to determine a speed profile that satisfies the geometry of the initial allowable discomfort value is also based on a second set of factors related to the third vehicle, the set of factors including a first value for a maximum allowable deceleration of the second vehicle, the second set of factors including a second value for a maximum allowable deceleration of the third vehicle, and the second value being different from the first value. In another example, the system further includes a vehicle.
[0013] In one example, a method for controlling a first vehicle is provided, the method comprising: while operating the first vehicle in an automatic driving mode, identifying, by one or more processors, a second vehicle as a following vehicle; identifying, by one or more processors, an initial allowable discomfort value; attempting, by the one or more processors, to determine a speed curve of a future trajectory of the first vehicle that satisfies the initial allowable discomfort value based on the following vehicle; when a speed curve that satisfies the initial allowable discomfort value cannot be determined, adjusting, by the one or more processors, the initial allowable discomfort value until a speed curve that satisfies the adjusted allowable discomfort value is determined; and controlling the first vehicle in an automatic driving mode using, by the one or more processors, the speed curve that satisfies the adjusted allowable discomfort value.
[0014] In one example, a system for controlling a first vehicle is provided, the system comprising one or more processors configured to: identify a second vehicle as a trailing vehicle while operating the first vehicle in an autonomous driving mode; identify an initial allowable discomfort value; attempt to determine a speed curve of a future trajectory of the first vehicle that satisfies the initial allowable discomfort value based on the trailing vehicle; when a speed curve that satisfies the initial allowable discomfort value cannot be determined, adjust the initial allowable discomfort value until a speed curve that satisfies the adjusted allowable discomfort value is determined; and control the first vehicle in an autonomous driving mode using the speed curve that satisfies the adjusted allowable discomfort value.
[0015] In one example, a method for controlling a first vehicle is provided, the method comprising: while operating the first vehicle in an automatic driving mode, identifying, by one or more processors, a person outside the first vehicle; identifying, by one or more processors, a geometry of a future trajectory of the first vehicle; identifying, by one or more processors, an initial allowable discomfort value; attempting, by the one or more processors, to determine a speed curve having a geometry that satisfies the initial allowable discomfort value by determining a discomfort value for the speed curve based on a set of factors at least related to the discomfort of a passenger of the first vehicle and the discomfort of the person; when a speed curve that satisfies the initial allowable discomfort value cannot be determined, adjusting, by the one or more processors, the initial allowable discomfort value until a speed curve that satisfies the adjusted allowable discomfort value is determined; and controlling the first vehicle in an automatic driving mode using, by the one or more processors, the speed curve that satisfies the adjusted allowable discomfort value.
[0016] In one example, a system for controlling a first vehicle is provided, the system comprising one or more processors configured to: identify a person outside the first vehicle while operating the first vehicle in an autonomous driving mode; identify a geometry of a future trajectory of the first vehicle; identify an initial allowable discomfort value; attempt to determine a speed curve of a geometry that satisfies the initial allowable discomfort value by determining a discomfort value for the speed curve based on a set of factors at least related to the discomfort of a passenger of the first vehicle and the discomfort of the person; when a speed curve that satisfies the initial allowable discomfort value cannot be determined, adjust the initial allowable discomfort value until a speed curve that satisfies the adjusted allowable discomfort value is determined; and control the first vehicle in an autonomous driving mode using the speed curve that satisfies the adjusted allowable discomfort value. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] Figure 1 is a functional diagram of an example vehicle according to an exemplary embodiment.
[0018] Figure 2 is an example of map information according to aspects of the present disclosure.
[0019] Figure 3 are example exterior views of a vehicle according to aspects of the present disclosure.
[0020] Figure 4 is a schematic diagram of an example system according to an exemplary embodiment.
[0021] Figure 5 According to various aspects of the present disclosure Figure 4 Functional diagram of the system.
[0022] Figure 6is an example aerial view of a geographic area in accordance with aspects of the present disclosure.
[0023] Figure 7 is an example aerial view of a geographic area in accordance with aspects of the present disclosure.
[0024] Figure 8 is an example aerial view of a geographic area in accordance with aspects of the present disclosure.
[0025] Fig. 9 is an example aerial view of a geographic area in accordance with aspects of the present disclosure.
[0026] Fig.10 is an example aerial view of a geographic area in accordance with aspects of the present disclosure.
[0027] Fig.11 is an example flow chart according to aspects of the present disclosure.
[0028] Fig.12 is an example flow chart according to aspects of the present disclosure. DETAILED DESCRIPTION
[0029] Overview
[0030] The technology involves using a discomfort value to determine how to control the speed of an autonomous vehicle. When generating a trajectory of the vehicle, the geometry of the autonomous vehicle's path can be determined before determining the speed profile of the trajectory. In some cases, the computing device of the autonomous vehicle may detect an object behind the vehicle, such as another road user. In some cases, these objects may be trailing vehicles, and therefore, it may be important to consider how the behavior of the vehicle will affect these trailing vehicles. To this end, a discomfort value can be used that indicates the discomfort to the vehicle and road users in the vehicle's environment (e.g., other vehicles, cyclists, or pedestrians).
[0031] In order for a computing device of a vehicle to autonomously operate the vehicle, the computing device must generate a trajectory or future path for the vehicle to follow a short time in the future. These future paths may include a geometry component and a velocity component or velocity profile. The velocity profile may be generated following the geometry component. In this regard, for any given geometry, many different possible velocity profiles may be generated, including, for example, those that require the vehicle to accelerate or decelerate. Again, deciding which of these velocity profiles to use may be a challenge.
[0032] When determining the speed profile, the computing device may generate a plurality of constraints. The constraints may be generated based on objects in the vehicle environment and their predicted behavior or trajectory. In some cases, constraints may be generated based only on objects in front of and / or beside the vehicle. In this regard, objects behind the vehicle may be ignored. However, in some cases, when an object behind the vehicle is determined to be a trailing vehicle, constraints may also be generated for that object.
[0033] The computing device may also attempt to determine a speed profile for a given geometry that minimizes the discomfort value for the ego vehicle and other vehicles to identify the speed profile. The discomfort value may be determined based on a combination of factors related to the expected discomfort experienced by a passenger of the ego vehicle (whether the ego vehicle actually includes a passenger) and a passenger or occupant of another vehicle (whether the other vehicle actually includes a passenger), a pedestrian or bicyclist, etc.
[0034] In other words, the computing device can determine whether there is a solution (i.e., a speed curve) that will satisfy or conform to the associated discomfort value of the maximum allowable discomfort value. For example, for a given maximum allowable discomfort value, if a solution cannot be found within the constraints of the maximum allowable discomfort value, the computing device can return the speed curve for that maximum allowable discomfort value or fail. This causes the computing device to select the speed plan with the lowest feasible maximum allowable discomfort value. The computing device can iteratively search for speed curves using different maximum allowable discomfort values. For example, the computing device starts with an initial or lowest maximum allowable discomfort value. If the computing device cannot find a speed curve at the maximum allowable discomfort value, the computing device can increase the maximum allowable discomfort value until a solution or speed curve is found that satisfies the current maximum allowable speed discomfort value.
[0035] For a given maximum allowable discomfort value, the computing device of the vehicle may start with a speed profile that moves as fast as possible given speed limits (such as road speed limits and lateral acceleration limits when turning) and slow speed areas (defined by map information). This initial profile may not necessarily satisfy constraints, including any constraints generated for objects determined to be trailing vehicles. These constraints are resolved one by one. If the computing device cannot satisfy the constraints for the maximum allowable discomfort value even when braking as hard and as early as possible, the given maximum allowable discomfort value may be increased and a new speed profile generated. However, if the speed profile can both pass and give way to another vehicle at the given maximum allowable discomfort value, the computing device may select a default action, such as accelerating to pass the other object. In addition, as the maximum allowable discomfort value increases, some constraints may even be ignored.
[0036] The computing device may then control the vehicle according to a speed profile that satisfies a minimum maximum allowable discomfort value. The discomfort value may be used when generating all speed profiles, but may be particularly useful when the autonomous vehicle is in certain types of situations that require the autonomous vehicle to speed up or slow down when interacting with another vehicle.
[0037] Features described herein can allow an autonomous vehicle to determine a speed profile while taking into account how that speed profile will affect any occupants of the autonomous vehicle (even if there are no occupants currently in the vehicle) and any passengers or occupants of another vehicle with which the autonomous vehicle is interacting. Furthermore, by generating constraints based on trailing vehicles, the vehicle's computing device is able to make driving decisions that also take into account how the vehicle's behavior will affect those trailing vehicles. This also increases safety. In other words, using more conservative estimates to predict the behavior of other objects and using larger safety margins at lower maximum allowable discomfort values can result in safer solutions.
[0038] Example System
[0039] like Figure 1 As shown in , a vehicle 100 according to one aspect of the present disclosure includes various components. Although certain aspects of the present disclosure are particularly useful for specific types of vehicles, the vehicle can be any type of vehicle, including but not limited to automobiles, trucks, motorcycles, buses, recreational vehicles, etc. The vehicle can have one or more computing devices, such as a computing device 110 that includes one or more processors 120, memory 130, and other components typically found in a general-purpose computing device.
[0040] The memory 130 stores information accessible by the one or more processors 120, including instructions 134 and data 132 that can be executed or otherwise used by the processor 120. The memory 130 can be of any type capable of storing information accessible by the processor, including computing device readable media, or other media that stores data that can be read with the aid of an electronic device, such as a hard drive, memory card, ROM, RAM, DVD or other optical disk, and other writable and read-only memory. The 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.
[0041] Instructions 134 may be any set of instructions to be executed directly (such as machine code) or indirectly (such as a script) by a processor. For example, instructions may be stored as computing device code on a computing device readable medium. In this regard, the terms "instructions" and "programs" are used interchangeably herein. Instructions may be stored in an object code format for direct processing by a processor, or in any other computing device language, including a collection of scripts or independent source code modules that are interpreted on demand or pre-compiled. The functions, methods, and routines of instructions will be described in more detail below.
[0042] Data 132 may be retrieved, stored, or modified by processor 120 according to instructions 134. For example, although the claimed subject matter is not limited to any particular data structure, the data may be stored in a computing device register, in a relational database as a table with multiple different fields and records, in an XML document, or in a flat file. The data may also be formatted in any computing device readable format.
[0043] The one or more processors 120 may be any conventional processor, such as a commercially available CPU. Alternatively, the one or more processors may be dedicated devices, such as an ASIC or other hardware-based processor. Figure 1 The processor, memory, and other elements of computing device 110 are illustrated as being functionally within the same block, but one of ordinary skill in the art will appreciate that a processor, computing device, or memory may actually include multiple processors, computing devices, or memories that may or may not be stored within the same physical housing. For example, the memory may be a hard drive or other storage medium located in a different housing than computing device 110. Thus, references to a processor or computing device will be understood to include references to a collection of processors or computing devices or memories that may or may not operate in parallel.
[0044] The computing device 110 may be all components typically used in conjunction with a computing device, such as the processor and memory described above, as well as a user input 150 (e.g., a mouse, keyboard, touch screen, and / or microphone) and various electronic displays (e.g., a monitor with a screen or any other electronic device operable to display information). In this example, the vehicle includes an interior electronic display 152 and one or more speakers 154 to provide information or an audio-visual experience. In this regard, the interior electronic display 152 may be located within the cockpit of the vehicle 100 and may be used by the computing device 110 to provide information to passengers within the vehicle 100.
[0045] The computing device 110 may also include one or more wireless network connections 156 to facilitate communication with other computing devices, such as client computing devices and server computing devices described in detail below. Wireless network connections may include short-range communication protocols such as Bluetooth, Bluetooth Low Energy (LE), cellular connections, and various configurations and protocols including the Internet, the World Wide Web, an intranet, a virtual private network, a wide area network, a local network, a private network using one or more company-proprietary communication protocols, Ethernet, WiFi, and HTTP, as well as various combinations of the foregoing.
[0046] In one example, computing device 110 may be a control computing device of an autonomous driving computing system or incorporated into vehicle 100. The autonomous driving computing system may be capable of communicating with various components of the vehicle to control the movement of vehicle 100 according to the primary vehicle control code of memory 130. For example, returning to Figure 1 , the computing device 110 can communicate with various systems of the vehicle 100, such as a deceleration system 160, an acceleration system 162, a steering system 164, a signal notification system 166, a route selection system 168, a positioning system 170, a perception system 172, and a power system 174 (i.e., the engine or motor of the vehicle) to control the movement, speed, etc. of the vehicle 100 according to the instructions 134 of the memory 130. Furthermore, although these systems are shown as being external to the computing device 110, in fact, these systems can also be incorporated back into the computing device 110 as an autonomous driving computing system for controlling the vehicle 100.
[0047] As an example, computing device 110 may interact with one or more actuators (e.g., brakes, accelerator pedals, and / or the engine or motor of the vehicle) of deceleration system 160 and / or acceleration system 162 to control the speed of the vehicle. Similarly, one or more actuators of steering system 164, such as a steering wheel, a steering shaft, and / or a gear and rack in a rack and pinion system, may be used by computing device 110 to control the direction of vehicle 100. For example, if vehicle 100 is configured for on-road use, such as a car or truck, the steering system may include one or more actuators to control the angle of the wheels to steer the vehicle. Signaling system 166 may be used by computing device 110 to signal the vehicle's intentions to other drivers or vehicles, such as by illuminating a turn signal or brake light, when desired.
[0048] Routing system 168 may be used by computing device 110 to determine and follow a route to a location. In this regard, routing system 168 and / or data 132 may store detailed map information, such as a highly detailed map that identifies roads, lane lines, intersections, crosswalks, speed limits, traffic signals, buildings, signs, real-time traffic information, the shape and elevation of vegetation, or other such objects and information.
[0049] Figure 2 200 is an example of a road segment map information 200 including intersections 202 and 204. In this example, the map information 200 includes information identifying the shape, location and other characteristics of lane lines 210, 212, 214, traffic lights 220, 222, crosswalks 230, sidewalks 240, stop signs 250, 252, give way signs 260 and stop lines 262. Although the map information is described herein as an image-based map, the map information does not have to be completely based on images (e.g., grids). For example, the map information may include one or more information road maps or graph networks, such as roads, lanes, intersections, and connections between these features. Each feature may be stored as graphical data and may be associated with information such as a geographic location and whether it is linked to other related features, for example, a stop sign may be linked to roads and intersections, etc. In some examples, the associated data may include a grid-based index of a road map to allow efficient search for specific road map features.
[0050] Positioning system 170 may be used by computing device 110 to determine the relative or absolute position of the vehicle on a map or on the earth. For example, position system 170 may include a GPS receiver to determine the latitude, longitude, and / or altitude position of the device. Other positioning systems (such as laser-based positioning systems, inertial assisted GPS, or camera-based positioning) may also be used to identify the location of the vehicle. The location of the vehicle may include an absolute geographic location, such as latitude, longitude, and altitude, as well as relative position information, such as relative to the location of other cars immediately surrounding it, which can generally determine the location of the vehicle with less noise than the absolute geographic location.
[0051] Positioning system 170 may also include other devices in communication with computing device 110, such as an accelerometer, a 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 provision of position and orientation data by a device as described herein may be automatically provided to computing device 110, other computing devices, and combinations of the foregoing.
[0052] Perception system 172 also includes one or more components for detecting objects external to the vehicle, such as other vehicles, obstacles in the road, traffic signals, signs, trees, etc. For example, perception system 172 may include lasers, sonar, radar, cameras, and / or any other detection devices that record data that can be processed by computing device 110. In the case where the vehicle is a passenger car such as a minivan, the minivan may include lasers or other sensors mounted on the roof or other convenient location. For example, Figure 3 is an example exterior view of the vehicle 100. In this example, the roof housing 310 and the dome housing 312 may include a lidar sensor and various cameras and radar units. Additionally, a housing 320 located at the front end of the vehicle 100 and housings 330, 332 on the driver and passenger sides of the vehicle may store lidar sensors, respectively. For example, housing 330 is located in front of the driver's door 360. The vehicle 100 also includes housings 340, 342 for radar units and / or cameras that are also located on the roof of the vehicle 100. Additional radar units and cameras (not shown) may be located at the front and rear ends of the vehicle 100 and / or at other locations along the roof or roof housing 310.
[0053] The computing device 110 can control the direction and speed of the vehicle by controlling various components. For example, the computing device 110 can use data from the detailed map information and routing system 168 to fully autonomously navigate the vehicle to a destination location. When it is necessary to safely reach a location, the computing device 110 can use the positioning system 170 to determine the location of the vehicle, and use the perception system 172 to detect and respond to objects. To this end, the computing device 110 can accelerate the vehicle (e.g., by increasing the fuel or other energy provided to the engine by the acceleration system 162), decelerate (e.g., by reducing the fuel supplied to the engine, changing gears and / or by applying brakes via the deceleration system 160), change direction (e.g., by rotating the front or rear wheels of the vehicle 100 via the steering system 164) and signal such changes (e.g., by illuminating the turn signal of the signal notification system 166). Therefore, the acceleration system 162 and the deceleration system 160 can be part of a transmission system that includes various components between the engine of the vehicle and the wheels of the vehicle. Furthermore, by controlling these systems, the computing device 110 can also control the transmission system of the vehicle so as to autonomously operate the vehicle.
[0054] The computing device 110 of the vehicle 100 may also receive information from or transmit information to other computing devices, such as those computing devices as part of a delivery service and other computing devices. Figure 4 and Figure 54 are schematic and functional diagrams of an example system 400, respectively, which includes multiple computing devices 410, 420, 430, 440 and a storage system 450 connected via a network 460. The system 400 also includes a vehicle 100 and vehicles 100A, 100B that may be configured the same as or similar to the vehicle 100. Although only some vehicles and computing devices are shown for simplicity, a typical system may include significantly more vehicles and computing devices.
[0055] like Figure 4 As shown in , each computing device 410, 420, 430, 440 may include one or more processors, memory, data, and instructions. Such processors, memory, data, and instructions may be configured similarly to the one or more processors 120, memory 130, data 132, and instructions 134 of computing device 110.
[0056] The network 460 and intermediate nodes may include a variety of configurations and protocols, including short-range communication protocols such as Bluetooth, Bluetooth LE, the Internet, the World Wide Web, an intranet, a virtual private network, a wide area network, a local area network, a private network using one or more company-proprietary communication protocols, Ethernet, WiFi, and HTTP, and various combinations of the foregoing. Any device capable of transmitting data to and from other computing devices, such as a modem and a wireless interface, may facilitate such communications.
[0057] In one example, the one or more computing devices 110 may include one or more server computing devices having multiple computing devices, such as a load balancing server farm, which exchanges information with different nodes of the network for the purpose of receiving data from other computing devices, processing data, and sending data to other computing devices. For example, the one or more computing devices 410 may include one or more server computing devices that can communicate with the computing device 110 of the vehicle 100 or a similar computing device of the vehicle 100A and computing devices 420, 430, 440 via the network 460. For example, the vehicles 100, 100A may be part of a fleet that can be dispatched to various locations by the server computing device. In this regard, the server computing device 410 can be used as a dispatching system. In addition, the vehicles of the fleet can periodically send location information provided by the corresponding positioning system of the vehicle and other information related to the status of the vehicle discussed further below to the server computing device, and the one or more server computing devices can track the location and status of each vehicle in the fleet.
[0058] Additionally, server computing device 410 may send and present information to users, such as users 422, 432, 442, on displays, such as displays 424, 434, 444 of computing devices 420, 430, 440, using network 460. In this regard, computing devices 420, 430, 440 may be considered client computing devices.
[0059] like Figure 4 As shown in , each client computing device 420, 430, 440 can be a personal computing device intended for use by a user 422, 432, 442, and has all components commonly used in conjunction with a personal computing device, including one or more processors (e.g., a central processing unit (CPU)), memory (e.g., RAM and an internal hard drive) to store data and instructions, a display (such as a display 424, 434, 444) (e.g., a monitor with a screen, a touch screen, a projector, a television, or other device operable to display information), and a user input device 426, 436, 446 (e.g., a mouse, keyboard, touch screen, or microphone). The client computing device may also include a camera for recording a video stream, a speaker, a network interface device, and all components for connecting these elements to each other.
[0060] Although client computing devices 420, 430, and 440 may each comprise a full-size personal computing device, they may alternatively comprise a mobile computing device 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 device such as a wireless-enabled PDA, a tablet PC, a wearable computing device or system, or a netbook capable of obtaining information via the Internet or other network. In another example, client computing device 430 may be a wearable computing system such as a Figure 4 As shown in , it is shown as a watch. As examples, the user can use a keypad, a keyboard, a microphone, use visual signals with a camera, or a touch screen to enter information.
[0061] In some examples, client computing device 440 may be a concierge workstation used by an administrator or operator of a warehouse to provide warehouse services to a fleet of vehicles. Figure 4 and Figure 5 Only a single warehouse workstation 440 is shown, but any number of such workstations may be included in a typical system.
[0062] As with memory 130, storage system 450 may be any type of computer storage capable of storing information accessible to server computing device 410, such as a hard drive, memory card, ROM, RAM, DVD, CD-ROM, writable and read-only memory. In addition, storage system 450 may include a distributed storage system in which data is stored on multiple different storage devices that may be physically located in the same or different geographic locations. Figure 4 and Figure 5 As shown in , storage system 450 may be connected to the computing device via network 460 and / or may be directly connected to or incorporated into any of computing devices 110 , 410 , 420 , 430 , 440 , etc.
[0063] Storage system 450 may store various types of information, as described in more detail below. This information may be retrieved or otherwise accessed by a server computing device (such as one or more server computing devices 410) in order to perform some or all of the features described herein. In order to provide shipping services to users, the information of storage system 450 may include user account information such as credentials (e.g., such as a username and password in the case of traditional single-factor authentication and other types of credentials commonly used in multi-factor authentication, such as random identifiers, biometrics, etc.), which may be used to identify the user to one or more server computing devices. The user account information may also include personal information, such as a username, contact information, identification information of the user's client computing device (or multiple devices if multiple devices are used with the same user account), one or more unique signals of the user, and other user preference settings or settings data.
[0064] Storage system 450 may also store information that can be provided to a client computing device for display to a user. For example, storage system 450 may store predetermined distance information for determining areas where a vehicle may be parked for a given pickup or destination location. Storage system 450 may also store graphics, icons, and other items that may be displayed to a user, as described below.
[0065] Example Method
[0066] In addition to the operations described above and shown in the accompanying drawings, various operations will now be described. It should be understood that the following operations do not have to be performed in the exact order described below. Instead, the various steps can be processed in a different order or simultaneously, and steps can also be added or omitted.
[0067] The computing device of the vehicle can control the vehicle so as to follow the route. This can include generating multiple short-term trajectories for the vehicle. These trajectories can essentially be future paths that the vehicle follows in a short period of time in the future (such as 2 seconds, 10 seconds, 16 seconds, or longer or shorter) to follow the route to the destination. These future paths can include a geometry component and a speed component or speed profile. The speed profile can be generated after the geometry component. In this regard, for any given geometry, many different possible speed profiles can be generated, including, for example, those that require the vehicle to accelerate or decelerate. Again, deciding which of these speed profiles to use can be a challenge.
[0068] Figure 6 is with Figure 2 The portion of the road defined in the map information corresponds to an example diagram of maneuvering the vehicle 100 on the portion of the road. For example, Figure 6 The vehicle 100 is depicted maneuvering on a portion of a road 600 including intersections 602 and 604. In this example, intersections 602 and 604 correspond to intersections 202 and 204, respectively, of map information 200. In this example, lane lines 610, 612, and 614 correspond to the shapes, positions, and other characteristics of lane lines 210, 212, and 214, respectively. Similarly, crosswalk 630 corresponds to the shapes, positions, and other characteristics of crosswalk 230, respectively; sidewalk 640 corresponds to sidewalk 240; traffic lights 620, 622 correspond to traffic lights 220, 222, respectively; stop signs 650, 652 correspond to stop signs 250, 252, respectively; give way sign 660 corresponds to give way sign 260; and stop line 662 corresponds to stop line 262.
[0069] In this example, computing device 110 has used map information 200 to determine a trajectory 670 for vehicle 100 to follow to reach a destination (not shown). Trajectory 670 includes a velocity component and a geometry component (corresponding to Figure 6 ), which would require vehicle 100 to turn left at intersection 604.
[0070] Computing device 100 may then attempt to determine a speed profile for a given geometry, such as geometry trajectory 670, that minimizes discomfort for passengers or occupants of the autonomous vehicle and road users in the vehicle's environment, including any objects identified as trailing the vehicle. The discomfort value may be determined based on a combination of factors related to the expected discomfort experienced by passengers or occupants of the autonomous vehicle (whether or not the autonomous vehicle actually includes passengers) and passengers or occupants of another vehicle (whether or not the other vehicle actually includes occupants), pedestrians or bicyclists, etc. The discomfort value may be determined based on a combination of factors, including, for example, maximum deceleration, maximum acceleration, maximum jerk, maximum lateral acceleration, maximum lateral jerk, the maximum amount by which the autonomous vehicle will exceed a speed limit, whether the autonomous vehicle will have to enter a crosswalk, whether the vehicle will have to enter an occluded crosswalk, whether the vehicle's speed will exceed an approaching speed limit, a minimum distance between the vehicle and any other object (e.g., how close two vehicles will be to each other), etc. With respect to an approaching speed limit, this may correspond to limiting the vehicle's speed based on the distance to nearby objects. The limit may correspond to a limit on an absolute speed, a relative speed, a percentage of a speed limit of the road the vehicle is currently traveling on, or the like.
[0071] In addition to these factors, for other road users, such as other vehicles, cyclists, or pedestrians, these factors may also include the reaction time of the other road user to react to the vehicle 100, how much the other object will have to slow down, when the other road user will be able to see or detect the vehicle 100, how much the other road user will have to shift its position (to the right or left), the headway corresponding to the estimated reaction time of the other road user, whether the other vehicle will have to enter a crosswalk, whether the other road user will have to enter a blocked crosswalk, the maximum amount any other road user will need to exceed the speed limit, and an uncertainty value for how confident the computing device is in its prediction of the position and speed of the other road user.
[0072] Each of these factors may be evaluated using a specific scale of values. For example, the minimum acceleration (or maximum allowable deceleration) may be in the range of -2 m / s2 to -8 m / s2 or more, the maximum acceleration may be in the range of 2 m / s2 to 3 m / s2, the jerk may be in the range of 2 m / s2 to 8 m / s2 or more, the lateral acceleration may be in the range of 3 m / s2 to 4 m / s2, the speed limit exceeded may be in the range of 0% to 12% or more, the speed limit approached may be in the range of 0% to 12% or more, the headway may be in the range of 0.75 seconds to 0 seconds or more, and the uncertainty may be in the range of 0.8 standard deviation to 0 standard deviation or more.
[0073] In addition, these scales can be adjusted in certain circumstances. For example, when two vehicles interact, a vehicle with priority (i.e., the right of way) may be allowed or expected to behave more assertively, while a vehicle without priority (i.e., not having the right of way) may be allowed or expected to behave more cooperatively. In this regard, the scales may be adjusted according to the order of priority. In this regard, for vehicles without priority, the scale of the maximum allowed deceleration may be increased, for example, the scale may then be from -2m / s2 to -10m / s2 or greater or less. Similarly, for vehicles with priority, the scale of the maximum acceleration may be increased, for example, the scale may be in the range of 2m / s2 to 10m / s2 or greater or less.
[0074] In order to determine the speed curve for a given discomfort value, the computing device can generate multiple constraints based on the aforementioned factors and corresponding values. For example, these constraints can be generated based on objects in the vehicle environment and their predicted behavior or trajectory. For example, constraints can include speed limits, such as road speed limits and lateral acceleration limits when turning, minimum distances to other objects, slow areas (defined by map information), etc. For example, the computing device 110 and / or the perception system 172 can identify objects such as vehicles, cyclists, pedestrians, debris, etc., and estimate one or more future predicted trajectories for those objects. Constraints can be generated using the predicted trajectories of those objects to prevent the computing device of the vehicle from determining the speed curve that will result in the geometric shape component of the trajectory (i.e., the location where the vehicle 100 is expected to be located). In some cases, the area corresponding to the predicted trajectory for the object can be used to determine the constraints on the object. For example, if a pedestrian is predicted to cross the trajectory of the vehicle at a given location, the location and the time when the pedestrian is expected to enter and leave the trajectory of the vehicle may define a speed constraint.
[0075] In some cases, constraints may be generated based only on objects in front of and / or beside the vehicle. For example, this may include only those vehicles that are in front of and / or beside the vehicle and also have predicted trajectories that may intersect with the trajectory of the vehicle. In this regard, objects behind the vehicle may be ignored. However, in some cases, objects behind the vehicle (such as a trailing vehicle) may actually be relevant to determining the speed plan of the vehicle. In this way, if the object meets multiple requirements, the computing device 110 may determine that the object is a trailing vehicle. For example, these multiple requirements may include: identifying the object as a vehicle, the object is located behind the vehicle and in the same lane as the vehicle, the object is traveling at a specific speed relative to the speed of the vehicle 100, the object is within a specific distance behind the vehicle, etc. In this regard, for any object in the lane behind the vehicle 100, the computing device 110 may determine whether the object is a trailing vehicle. Such as, for example, whenever the computing device 110 receives updated sensor data from the perception system 172, the evaluation may be periodically updated.
[0076] Similarly, when an object behind the vehicle is determined to be a trailing vehicle, constraints may also be generated for the object. However, the values of the constraints for trailing vehicles may differ from the values of the constraints for typical vehicles. For example, for trailing vehicles, the computing device 110 may assume a greater response to the actions of the vehicle 100 than for more types of vehicles, based on greater braking and / or less reaction time. In other words, as the expected trailing vehicle behind the vehicle 100 reacts to the vehicle 100, the trailing vehicle is more likely to slow down for the vehicle 100 than other vehicles because the vehicle 100 cannot be expected to react strongly to the trailing vehicle.
[0077] The computing device may determine whether there is a solution (i.e., a speed profile) that will satisfy or conform to the maximum allowable discomfort value and satisfy all constraints. For example, for a given maximum allowable discomfort value, if no solution can be found within the constraints of the maximum allowable discomfort value, the computing device 110 may return a speed profile for that maximum allowable discomfort value or fail. This results in the computing device selecting a speed plan with the lowest feasible maximum allowable discomfort value.
[0078] For example, for the case where there are no constraints to consider, such as Figure 6 For example, computing device 110 may be able to find a speed profile at the lowest maximum allowable discomfort value, and therefore does not need to evaluate a higher maximum allowable discomfort value. In other words, in the absence of other road users (such as vehicles approaching vehicle 100, bicyclists, or pedestrians), computing device 110 will generally be able to find a speed profile that satisfies an initial or lowest maximum allowable discomfort value (e.g., zero discomfort).
[0079] When the trajectory of the vehicle 100 approaches other such road users (such as vehicles or pedestrians), the vehicle should be controlled at a slower speed for safety reasons. Therefore, the desired speed may be a function of the type of other road user (e.g., vehicle, cyclist, or pedestrian) and how close the vehicle 100 may be to the other object. By increasing the maximum allowable discomfort value, the vehicle 100 may even be allowed to slightly exceed the desired speed to avoid a collision with such other road users.
[0080] The computing device may iteratively search for a speed curve using different maximum allowable discomfort values. For example, the computing device starts with the first and lowest maximum allowable discomfort value, such as zero. If the computing device cannot find a speed curve at the maximum allowable discomfort value, the computing device may increase the maximum allowable discomfort value until a solution is found. For example, the maximum allowable discomfort value may increase from 0 by 0.1, 0.2, 0.25, 0.5, or more or less until the maximum allowable discomfort value reaches some absolute maximum value, such as 0.5, 1, 2, 10, or more or less. In the example with an increment of 0.25 and a maximum value of 1, there would be 5 discrete levels, although other or different levels, increments, and absolute maximums may also be used.
[0081] Each time the maximum allowable discomfort is increased, the values of the various factors of each constraint may also be adjusted. For example, for a typical vehicle, the reaction delay at a discomfort of 0 may be expected to be 2 seconds, while for a trailing vehicle, the reaction delay may be expected to be 1.5 seconds. At a discomfort value of 1, the reaction delay may be expected to be 1.5 seconds for a typical vehicle, while for a trailing vehicle, the reaction delay may be expected to be 0 seconds. As another example, at a discomfort value of 0, the maximum allowable deceleration of the trailing vehicle may be -2m / s / s, and at a discomfort value of 1, the maximum allowable deceleration of the trailing vehicle may be -8m / s / s. For a typical vehicle, at a discomfort value of 0, the maximum allowable deceleration may be -1m / s / s, and at a discomfort value of 1, the maximum allowable deceleration may be -6m / s / s. In the case where a typical vehicle has priority (as described above), at a discomfort value of 1, the maximum allowable deceleration may be -4m / s / s.
[0082] For each given maximum allowable discomfort value, the vehicle's computing device may begin with an initial speed profile that moves as fast as possible given the one or more constraints.
[0083] This initial curve may not necessarily satisfy all the constraints of all other objects (including the trailing vehicle). These constraints are solved one by one. If the computing device determines that one of the constraints is violated, the computing device attempts to make way for the object related to the constraint by slowing down the speed curve. When slowing down the speed curve, the computing device can decelerate (or brake) the vehicle as late as possible and accelerate again as quickly as possible after the constraint. Therefore, the speed curve moves as fast as possible while satisfying the constraints. It is important that as long as the computing device understands that the speed curve always moves as fast as possible, slowing down the speed curve is the only option to make the curve meet the violated constraints. If the computing device is able to slow down the speed curve and meet the constraints, the computing device repeats the process with the next violated constraint until all constraints are met. If the computing device cannot meet the constraints even when braking as hard as possible and as early as possible, the maximum allowable discomfort value may increase and a new speed curve may be generated. However, if the speed curve can pass or give way to another vehicle with a given maximum allowable discomfort value, the computing device can select a default action, such as speeding up to pass another object.
[0084] The computing device may then control the vehicle according to a speed profile that satisfies the minimum maximum allowable discomfort value. If the vehicle can use a speed profile for passing or yielding for a given maximum allowable discomfort value, the computing device of the vehicle may select a speed profile that passes at the highest speed. This speed profile may then be used in conjunction with the geometry component to control the vehicle.
[0085] Uncomfort values may be used when generating all speed profiles, but may be particularly useful when the autonomous vehicle is in certain types of situations that require the autonomous vehicle to speed up or slow down when interacting with another vehicle. These situations may include turning right in front of or behind another vehicle, merging in front of or behind another vehicle, crossing the path of another vehicle in front of or behind another vehicle, etc. Again, such decisions may be made automatically by using the uncomfort values rather than by requiring the computing device to make specific selections and then determine the speed plan.
[0086] In the example of a right turn, the computing device may need to decide between a speed profile that includes acceleration to allow the vehicle to turn in front of another vehicle and a speed profile that includes deceleration to allow the vehicle to yield to the other vehicle. Figure 7, vehicle 100 must turn right at intersection 604 to follow trajectory 710. Different speed profiles may result in vehicle 100 passing in front of or behind vehicle 720. For example, if the speed profile causes the vehicle to move immediately along the trajectory, such as increasing its speed, then vehicle 100 may pass in front of vehicle 720. Similarly, if the speed profile causes the vehicle to wait or move very slowly, then vehicle 100 may pass behind vehicle 720. By using the maximum allowable discomfort value as described above, such a decision may be made automatically by considering the discomfort to the passengers or occupants of both vehicles 100 and 720 rather than by requiring the computing device to make a specific selection and then determine the speed plan.
[0087] Similarly, in the incorporated example, the computing device may need to decide between a speed profile that includes accelerating to pass in front of another vehicle and a speed profile that includes decelerating to get behind another vehicle. Figure 8 , vehicle 100 must merge into traffic to follow trajectory 810. Different speed profiles may result in vehicle 100 merging before or after vehicle 820. For example, if the speed profile causes the vehicle to move immediately along the trajectory, such as increasing its speed, then vehicle 100 may merge in front of vehicle 820. Similarly, if the speed profile causes the vehicle to wait or move very slowly, then vehicle 100 may merge behind vehicle 820. Again, by using the maximum allowable discomfort value as described above, such a decision may be made automatically by considering the discomfort to the passengers or occupants of vehicles 100 and 820 rather than by requiring the computing device to make a specific selection and then determine the speed plan.
[0088] Again, in the example of crossing the path of another vehicle, the computing device may need to decide between a speed profile that includes accelerating to cross the path of the other vehicle in front of the vehicle and a speed profile that includes decelerating to cross the path of the other vehicle behind the vehicle. Fig. 9 , vehicle 100 must proceed straight through intersection 604 to follow trajectory 910. Different speed profiles may result in vehicle 100 passing in front of or behind vehicle 920. For example, if the speed profile causes the vehicle to move immediately along the trajectory, such as increasing its speed, vehicle 100 may cross the path of vehicle 920 in front of vehicle 920. Similarly, if the speed profile causes the vehicle to wait or move very slowly, vehicle 100 may cross the path of vehicle 920 behind vehicle 920. Again, by using the maximum allowable discomfort value as described above, such a decision may be made automatically by considering the discomfort to the passengers or occupants of both vehicles 100 and 920 rather than by requiring the computing device to make a specific selection and then determine the speed plan.
[0089] As the discomfort value increases, certain constraints may be "phased out" or their values may be such that they do not affect the speed profile, allowing the vehicle to disregard or ignore the constraints. This behavior may enable computing device 110 to make trade-offs between which constraints are more important than others. Thus, for example, a trailing vehicle may also affect the behavior of the vehicle by causing computing device 110 to adjust or even ignore some constraints. For example, if vehicle 100 is approaching an intersection, the trailing vehicle may indirectly cause computing device 110 to adjust a constraint related to stopping at the stop line of the intersection because the tailgater did not slow down quickly enough or at all.
[0090] For example, go to Fig.10 , vehicle 100 is approaching intersection 602 and follows trajectory 1010 to pass through intersection 602. At this time, the traffic light controlling the lane where vehicle 100 is located is red or yellow (i.e., about to turn red). In this way, computing device 110 may need to stop vehicle 100 at intersection 602. In addition, vehicle 1010 is behind vehicle 100 and in the same lane as vehicle 100. In this example, computing device 110 can determine that vehicle 1020 is a trailing vehicle, as described above. In this way, computing device 110 can adjust the constraint for stopping at stop line 662, for example, by moving the position of the constraint a few feet outside the stop line. Alternatively, computing device 110 can simply ignore the constraint completely. By adjusting or ignoring, computing device 110 can stop vehicle 100 a few feet past stop line 662 or move forward a few feet into intersection 604 to avoid being hit by trailing vehicle 1020 (i.e., rear-end collision). Of course, the vehicle 100 does not necessarily disregard its own safety or the safety of others by running a stop sign or passing through an intersection while the traffic light controlling the lane in which the vehicle 100 is located is red or is about to turn red. For example, to ensure safety relative to crossing traffic, movement into the intersection is permitted only when the traffic light controlling the lane in which the vehicle 100 is located is still yellow (i.e., the light has not yet turned red).
[0091] Regarding uncertainty factors, in some cases, in order to reduce the maximum allowable discomfort value, the vehicle's computing device may adjust the vehicle's behavior to move more cautiously. For example, at a lower maximum allowable discomfort value, the computing device may impose a "buffer" constraint around the future state of other objects, which represents the uncertainty about their future trajectory. As an example, this buffer constraint can be generated so that the probability that another object stays within the inflated constraint is 60% or higher or lower. For higher maximum allowable discomfort values, this buffer constraint can be reduced.
[0092] Fig.11An example flowchart 1100 including some examples for controlling a first vehicle, such as vehicle 100, may be executed by one or more processors, such as processor 120 of computing device 110. For example, at box 1110, while operating the first vehicle in an autonomous driving mode, a second vehicle is identified. At box 1120, a geometry of a future trajectory of the first vehicle is received. At box 1130, an initial allowable discomfort value is identified. At box 1140, a speed curve is attempted to determine a geometry that satisfies the initial allowable discomfort value based on a set of factors related to at least discomfort of a passenger or occupant of the first vehicle and discomfort of a passenger or occupant of the second vehicle. At box 1150, when a speed curve that satisfies the initial allowable discomfort value cannot be determined, the initial allowable discomfort value is adjusted until a speed curve that satisfies the adjusted allowable discomfort value is determined. At box 1160, the vehicle is controlled in an autonomous driving mode using the speed curve that satisfies the adjusted allowable discomfort value.
[0093] Fig.12 An example flowchart 1200 in some examples for controlling a first vehicle, such as vehicle 100, is included, which may be executed by one or more processors, such as processor 120 of computing device 110. At block 1210, while maneuvering the vehicle in an autonomous driving mode, a second vehicle is identified. At block 1220, it is determined that the second vehicle is a trailing vehicle. At block 1230, an initial allowable discomfort value representing an expected discomfort of an occupant of the first vehicle and an expected discomfort of an occupant of the second vehicle is determined. At block 1240, a speed profile of a geometry that satisfies the initial allowable discomfort value is attempted to be determined based on a set of factors corresponding to the reaction of the second vehicle. At block 1250, when a speed profile that satisfies the initial allowable discomfort value cannot be determined, the initial allowable discomfort value is adjusted until a speed profile that satisfies the adjusted allowable discomfort value is determined. At block 1260, the first vehicle is controlled in an autonomous driving mode using the speed profile that satisfies the adjusted allowable discomfort value.
[0094] Unless otherwise stated, the aforementioned alternative examples are not mutually exclusive, but can be implemented in various combinations to achieve unique advantages. Since 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 aforementioned description of the embodiments should be made by way of illustration rather than by way of limiting the subject matter defined by the claims. In addition, the provision of the examples described herein and the phrases expressed as "such as", "including", etc. should not be interpreted as limiting the subject matter of the claims to specific examples; rather, these examples are intended to illustrate only one of many possible embodiments. In addition, the same reference numerals in different figures can identify the same or similar elements.
Claims
1. A method for controlling a first vehicle, the method comprising: while operating the first vehicle in the automated driving mode, identifying, by the one or more processors, a second vehicle as a trailing vehicle; identifying, by one or more processors, a geometry of a future trajectory of the first vehicle; identifying, by one or more processors, an initial allowable discomfort value; attempting, by the one or more processors, to determine a velocity profile of a geometry of a future trajectory of the identified first vehicle that satisfies an initial allowable discomfort value based on the trailing vehicle; When a speed curve satisfying the initial allowable discomfort value cannot be determined, adjusting the initial allowable discomfort value by one or more processors until a speed curve satisfying the adjusted allowable discomfort value is determined; as well as The first vehicle is controlled in the automated driving mode by the one or more processors using a speed profile that satisfies the initial allowable discomfort value or satisfies the adjusted allowable discomfort value.
2. The method according to claim 1, wherein: The initial allowable discomfort value represents an expected discomfort of an occupant of the first vehicle and an expected discomfort of an occupant of the second vehicle.
3. The method according to claim 1, wherein: The initial allowable discomfort value is based on a set of factors corresponding to the reaction of the following vehicle.
4. The method according to claim 3, wherein: The set of factors includes a maximum allowed deceleration of the second vehicle.
5. The method according to claim 4, further comprising: When the initial allowable discomfort value is adjusted, the maximum allowable deceleration of the second vehicle is also adjusted.
6. The method according to claim 5, wherein: Adjusting the maximum permissible deceleration includes increasing a limit on the expected deceleration of the second vehicle.
7. The method according to claim 3, wherein: The set of factors includes a reaction time of the second vehicle.
8. The method according to claim 7, further comprising: When the initial allowable discomfort value is adjusted, the reaction time of the second vehicle is also adjusted.
9. The method according to claim 3, wherein: The set of factors also includes constraints for stopping the first vehicle at the intersection.
10. The method according to claim 9, wherein: When the initial allowable discomfort value is adjusted, the constraints for stopping the first vehicle at the intersection are adjusted.
11. The method according to claim 9, wherein: When the initial allowable discomfort value is adjusted, the constraint for stopping the first vehicle at the intersection is ignored.
12. The method according to claim 11, wherein: When the following vehicle is not decelerating, the constraint for stopping the first vehicle at the intersection is ignored.
13. The method according to claim 11, wherein: Ignoring the constraint allows the first vehicle to move to the intersection without being hit by the second vehicle.
14. The method according to claim 13, wherein: When the traffic light controlling the lane in which the first vehicle is located is green or yellow, movement to the intersection is permitted.
15. The method according to claim 3, further comprising: identifying, by the one or more processors, a third vehicle while operating the first vehicle in the automated driving mode; as well as A determination is made, by the one or more processors, that the third vehicle is not a trailing vehicle, and wherein the speed profile attempting to determine a geometry of a future trajectory that satisfies the initial allowable discomfort value is further based on a second set of factors related to the third vehicle.
16. The method according to claim 15, wherein: The set of factors includes a first value for a maximum allowed deceleration of a second vehicle, and the second set of factors includes a second value for a maximum allowed deceleration of a third vehicle, and the second value is different from the first value.
17. The method according to claim 16, wherein: The first value allows for a first limit on the expected deceleration of the second vehicle, the second value allows for a second limit on the expected deceleration of the third vehicle, and the first limit is less than the second limit.
18. The method according to claim 15, wherein: The set of factors includes a first value for a reaction time of a second vehicle, and the second set of factors includes a second value for a reaction time of a third vehicle, and the second value is different from the first value.
19. A system for controlling a first vehicle, the system comprising one or more processors, the one or more processors being configured to: while operating the first vehicle in the automated driving mode, identifying the second vehicle as a trailing vehicle; identifying a geometry of a future trajectory of the first vehicle; identifying an initial allowable discomfort value; attempting to determine a velocity profile of a geometry of a future trajectory of the identified first vehicle that satisfies an initial allowable discomfort value based on the trailing vehicle; When a speed curve satisfying the initial allowable discomfort value cannot be determined, adjusting the initial allowable discomfort value until a speed curve satisfying the adjusted allowable discomfort value is determined; as well as The first vehicle is controlled in the automatic driving mode using a speed profile that satisfies the initial allowable discomfort value or satisfies the adjusted allowable discomfort value.
20. The system of claim 19, wherein: The one or more processors are further configured to: while operating the first vehicle in the automated driving mode, identifying a third vehicle; as well as A determination is made that the third vehicle is not a trailing vehicle, and wherein the speed profile attempting to determine a geometry of a future trajectory that satisfies the initial allowable discomfort value is further based on a set of factors corresponding to a reaction of the trailing vehicle and a second set of factors related to the third vehicle, the set of factors including a first value for a maximum allowable deceleration of the second vehicle, the second set of factors including a second value for the maximum allowable deceleration of the third vehicle, and the second value being different than the first value.
21. A method of controlling a first vehicle, the method comprising: identifying, by the one or more processors, a person outside of the first vehicle while operating the first vehicle in an automated driving mode; identifying, by one or more processors, a geometry of a future trajectory of the first vehicle; identifying, by one or more processors, an initial allowable discomfort value; attempting to determine, by the one or more processors, a speed profile of the identified geometry that satisfies an initial allowable discomfort value by determining a discomfort value for the speed profile based on at least a set of factors related to discomfort of an occupant of the first vehicle and discomfort of the person; When a speed curve satisfying the initial allowable discomfort value cannot be determined, adjusting the initial allowable discomfort value by one or more processors until a speed curve satisfying the adjusted allowable discomfort value is determined; as well as The first vehicle is controlled in the automated driving mode by the one or more processors using a speed profile that satisfies the initial allowable discomfort value or satisfies the adjusted allowable discomfort value.
22. The method according to claim 21, wherein: The person is walking, running, skating, skateboarding, riding a motorcycle or a bicycle.
23. The method according to claim 21, wherein: The geometry includes the first vehicle attempting to make a right turn in front of or behind the person.
24. The method according to claim 23, wherein: The speed profile that satisfies the adjusted allowable discomfort value corresponds to accelerating the first vehicle to make a right turn in front of the person.
25. The method according to claim 23, wherein: The speed profile that satisfies the adjusted allowable discomfort value corresponds to slowing the first vehicle down to make a right turn behind the person.
26. The method of claim 21, wherein: The geometry includes the first vehicle merging into a lane of traffic in front of or behind the person.
27. The method according to claim 26, wherein: The speed profile that satisfies the adjusted allowable discomfort value corresponds to accelerating the first vehicle to merge in front of the person.
28. The method according to claim 26, wherein: The speed profile that satisfies the adjusted allowable discomfort value corresponds to slowing the first vehicle down in order to merge behind the person.
29. The method according to claim 21, wherein: The geometry includes the first vehicle crossing a path in front of or behind the person.
30. The method of claim 29, wherein: The speed profile that satisfies the adjusted allowable discomfort value corresponds to accelerating the first vehicle to cross the path ahead of the person.
31. The method of claim 29, wherein: The speed profile that satisfies the adjusted allowable discomfort value corresponds to decelerating the first vehicle in order to cross the path behind the person.
32. The method of claim 21, wherein: The set of factors includes at least a maximum deceleration metric of the first vehicle.
33. The method of claim 21, wherein: The set of factors includes at least a maximum acceleration measure of the first vehicle.
34. The method of claim 21, wherein: The set of factors includes how much the first vehicle is expected to exceed the speed limit of a lane in which the first vehicle is currently traveling.
35. The method of claim 21, wherein: The set of factors includes a lateral acceleration of the first vehicle.
36. The method of claim 21, wherein: The set of factors includes at least how close the first vehicle will be to the person.
37. The method of claim 21, wherein: The set of factors includes whether the first vehicle will have to enter a crosswalk.
38. The method of claim 21, wherein: The set of factors includes an estimate of when the person will be able to see or detect the first vehicle.
39. The method of claim 21, wherein the set of factors includes an estimate of the person's reaction time.
40. The method of claim 21, wherein: The set of factors includes the extent to which the person will have to change his or her location.
41. The method of claim 21, wherein: The set of factors includes an uncertainty value representing uncertainty in the discomfort value.
42. A system for controlling a first vehicle, the system comprising one or more processors, the one or more processors being configured to: while operating the first vehicle in the automated driving mode, identifying a person outside the first vehicle; identifying a geometry of a future trajectory of the first vehicle; identifying an initial allowable discomfort value; attempting to determine a speed profile of the identified geometry that satisfies an initial allowable discomfort value by determining a discomfort value for the speed profile based on at least a set of factors related to discomfort of an occupant of the first vehicle and discomfort of the person; When a speed curve satisfying the initial allowable discomfort value cannot be determined, adjusting the initial allowable discomfort value until a speed curve satisfying the adjusted allowable discomfort value is determined; as well as The first vehicle is controlled in the automatic driving mode using a speed profile that satisfies the initial allowable discomfort value or satisfies the adjusted allowable discomfort value.
Citation Information
Patent Citations
Traveling control plan evaluation device
JP2009043090A