Obstacle avoidance action
By determining updated drivable areas and using cost analysis, autonomous vehicles can efficiently navigate around obstacles, enhancing safety and reducing delays through optimized trajectory planning.
Patent Information
- Application Number
- JP2022525160
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-10-31
- Filing Date
- 2020-10-26
- Publication Date
- 2025-09-08
- Estimated Expiration
- 2040-10-26
AI Technical Summary
Autonomous vehicles face challenges in navigating through environments with obstacles, such as dynamic and static objects, which can block or slow their progress, requiring efficient methods to determine safe trajectories that avoid unnecessary stops and delays.
The technology enables autonomous vehicles to determine an updated drivable area by leveraging sensor and perception data to identify obstacles and plan trajectories that efficiently navigate around them, using cost analysis to select the most optimal path, including actions like lane changes or partial widening, to ensure a smoother and safer ride.
This approach allows autonomous vehicles to safely and efficiently traverse obstacles, improving safety and reducing delays by determining target trajectories that avoid unnecessary stops and align with operator expectations, ensuring a smoother ride.
Smart Images

Figure 0007735264000001 
Figure 0007735264000002 
Figure 0007735264000003
Abstract
Description
[Technical Field]
[0001] [CROSS-REFERENCE TO RELATED APPLICATIONS] This patent application claims priority to U.S. patent application entitled "Obstacle Avoidance Action," serial number 16 / 670,992, filed October 31, 2019, and to U.S. patent application entitled "State Machine for Obstacle Avoidance," serial number 16 / 671,012, filed October 31, 2019. Application serial numbers 16 / 670,992 and 16 / 671,012 are incorporated herein by reference in their entireties. [Background technology]
[0002] An autonomous vehicle may use various methods, devices, and systems to guide the autonomous vehicle through an environment. For example, an autonomous vehicle may use planning methods, devices, and systems to determine a driving path and guide the autonomous vehicle through an environment that includes dynamic objects (e.g., vehicles, pedestrians, animals, etc.) and static objects (e.g., buildings, signs, stationary vehicles, etc.). In some examples, the dynamic and / or static objects may act as obstacles that block or slow the autonomous vehicle as it traverses the environment. [Brief explanation of the drawings]
[0003] The detailed description will be set forth with reference to the accompanying drawings, in which the leftmost digit(s) of a reference number identifies the figure in which the reference number first appears. Use of the same reference number in different drawings indicates similar or identical components or features.
[0004] [Figure 1] FIG. 1 shows a schematic flow diagram of an exemplary process for determining a target trajectory through a first drivable area and a second drivable area, and a cost associated with the target trajectory. [Figure 2] FIG. 2 shows an example of determining multiple actions to traverse through an environment. [Figure 3] FIG. 3 shows an exemplary state machine that includes an approach state, a prepare to stop state, a stop state, a go attention state, and a go state. [Figure 4A] FIG. 4A shows an example of determining an updated region through a junction. [Figure 4B] FIG. 4B shows an example of determining an updated region through a junction. [Figure 5] FIG. 5 illustrates a block diagram illustrating an example computing system for determining a target trajectory through a first drivable region and a second drivable region. [Figure 6] FIG. 6 illustrates an exemplary process for determining a target trajectory through a first drivable region and a second drivable region. DETAILED DESCRIPTION OF THE INVENTION
[0005] [Detailed explanation] The present disclosure describes systems, methods, and apparatus for determining a target trajectory through a first drivable area and a second drivable area of an environment for an autonomous vehicle to traverse. For example, the autonomous vehicle can traverse the environment while occupying the first drivable area. The first drivable area can be associated with a first direction of travel. As the autonomous vehicle traverses the environment within the first drivable area, the autonomous vehicle can detect obstacles within the first drivable area. The obstacles can include dynamic objects (e.g., pedestrians, animals, bicyclists, trucks, motorcycles, other vehicles, etc.), static objects (e.g., buildings, signs, curbs, debris, etc.), static obstacles (e.g., road markings, physical lane boundaries, road defects, construction zones, etc.), and / or other objects, which may be known or unknown, and / or the predicted action (e.g., estimated trajectory) of the obstacles.
[0006] The first drivable area can be adjacent to a second drivable area associated with a second direction of travel that is different from the first direction of travel. By way of example and not limitation, the second drivable area can be an oncoming traffic lane. The autonomous vehicle can determine one or more actions (e.g., an in-lane action or an oncoming lane action). Based on the actions, the autonomous vehicle can determine an updated drivable area associated with the actions. For example, an in-lane action can be associated with an updated drivable area that includes the first drivable area. An oncoming lane action can be associated with an updated drivable area that includes the first drivable area and the second drivable area.
[0007] In some examples, the autonomous vehicle can determine candidate trajectories for traversing through the updated drivable area associated with each action. For example, the autonomous vehicle can determine an updated drivable area associated with an oncoming lane action and a candidate trajectory for traversing through the updated drivable area that can cross from a first drivable area to a second drivable area. The candidate trajectories can enable the autonomous vehicle to safely traverse an obstacle in the first drivable area and return to the first drivable area after traversing the obstacle.
[0008] The autonomous vehicle can compare costs associated with one or more actions and determine a target trajectory for the autonomous vehicle to follow based on the candidate trajectories and the costs. In some examples, a target trajectory that traverses within the second drivable area can enable the autonomous vehicle to avoid an obstacle at a lower cost (or more efficiently), for example, when a lane-changing action is impractical or unavailable.
[0009] The technology described herein is directed to leveraging sensor and perception data to enable a vehicle, such as an autonomous vehicle, to navigate an environment while avoiding obstacles in the environment using an updated drivable area. The technology described herein can determine an updated drivable area associated with vehicle actions and actions that the vehicle can traverse along a target trajectory relative to those obstacles in an efficient manner. In some examples, determining a target trajectory within the updated drivable area can avoid unnecessary stops and / or delays, which can result in a smoother ride and can improve safety outcomes, for example, by more accurately determining a safe area within which the vehicle can operate to reach an intended destination and operating in a manner consistent with the expectations of operators of other vehicles. For example, a planned path, such as a reference trajectory, can be determined to perform a mission. For example, a mission can be a high-level navigation to a destination, e.g., a series of roads to navigate to the destination. Once the mission is determined, one or more actions can then be determined to perform the high-level navigation. In some instances, an obstacle can interrupt one or more actions, and determining a target trajectory that allows the vehicle to traverse through oncoming lanes can more efficiently enable the vehicle to navigate around the obstacle and move forward toward the mission.
[0010] FIG. 1 is an illustrative flow diagram showing an example process 100 for determining a target trajectory and a cost associated with the target trajectory.
[0011] In operation 102, the vehicle 104 can determine a first drivable area 106 and a second drivable area 108 based at least in part on map data. In some examples, the vehicle 104 accesses map data associated with the environment via a map database. The vehicle can be configured to use the map data to determine the first drivable area 106 and the second drivable area 108. For example, the map data can indicate that the first drivable area is associated with a first driving lane 110 and the second drivable area is associated with a second driving lane 112. Additionally, the map data can indicate that the first drivable area 106 is associated with a first direction of travel and the second drivable area 108 is associated with a second direction of travel that is different from the first direction of travel. In some examples, the map data can include road marker data (e.g., a single yellow marker, a double yellow marker, a single white marker, a double white marker, a solid marker, a broken marker, etc.). The road marker data may indicate whether the oncoming lane is permitted to be used, where the vehicle 104 may determine whether to use the oncoming lane based at least in part on the road marker data.
[0012] In operation 114, the vehicle 104 can determine obstacles associated with the first drivable area based at least in part on the sensor data. For example, the vehicle 104 can capture sensor data of an environment that can include obstacles, such as the object 116. By way of example, and not limitation, the object 116 can represent a vehicle that is stalled or otherwise stopped in the first driving lane 110. In some examples, the object 116 may not be physically located in the first driving lane 110, but an area around the object 116 can be defined to limit the width of the first drivable area 106. FIG. 1 illustrates the object 116 as occupying a portion of the first drivable area 106, which can reduce the size of the first drivable area 106 and the amount of available space for the vehicle 104 to traverse the environment.
[0013] Although the object 116 is shown as a stationary vehicle, other types of obstacles are considered, such as double-parked vehicles, parked vehicles protruding into the first drivable area 106, debris, signs, construction zones, pedestrians, road defects, etc.
[0014] The vehicle 104 may use the sensor data to determine that the object 116 is in a position ahead of the vehicle 104. Additionally, the vehicle 104 may use the sensor data and / or map data to determine that the object 116 is in a position corresponding to a lane occupied by the vehicle 104. By way of example and not limitation, the vehicle 104 may use a perception engine and / or localization algorithms to determine the position of the object 116 and associate the position of the object 116 with a portion of the map data, which may include road / lane data associated with the environment, to determine the area occupied by the object 116.
[0015] In operation 118, the vehicle 104 may determine a target trajectory associated with a first action. For example, the vehicle 104 may determine the first action, which may include an oncoming lane action, which may be an action that results in the vehicle 104 crossing from the first drivable area 106 into the second drivable area 108, as represented by the candidate trajectory 120. The oncoming lane action may enable the vehicle 104 to safely pass the object 116 by using the available second drivable area 108.
[0016] When determining actions (e.g., oncoming lane actions) and candidate trajectories 120, the vehicle 104 can use sensor data representing obstacles to determine the contours or boundaries of an updated drivable area. For example, the updated drivable area can be a virtual representation of the environment that can define constraints and / or boundaries within which the vehicle 104 can safely navigate relative to obstacles (e.g., objects 116) in the environment to effectively reach its intended destination. In some examples, the updated drivable area is determined by the vehicle and / or by a computing device on a remote computing system and can be used by the vehicle to traverse the environment. That is, the vehicle can determine a trajectory (e.g., candidate trajectory 120) and / or driving path based on the contours of the updated drivable area. Examples of techniques for determining the drive envelope can be found, for example, in U.S. Patent Application No. 15 / 982,694, entitled "Drive Envelope Determination," filed May 17, 2018 (which describes, in part, determining a drivable region (also called a drive envelope) for traversing an environment), which is incorporated herein by reference in its entirety.
[0017] As discussed above, the vehicle 104 can determine oncoming lane actions and candidate trajectories 120 for navigating through the environment to pass the object 116 while traversing the second drivable area 108. The candidate trajectories 120 can include distinct segments within the updated drivable area along which the vehicle will travel. Thus, the candidate trajectories 120 can include discrete, short segments intended to be performed by the vehicle traversing through the environment within the updated drivable area. Examples of techniques for determining trajectories within a drivable area can be found, for example, in U.S. Patent Application No. 16 / 179,679, entitled "Adaptive Scaling in Trajectory Generation," filed November 2, 2018, which is incorporated herein by reference in its entirety.
[0018] In some examples, a reference trajectory representing an initial path or trajectory for the vehicle 104 to follow may be generated or received by the vehicle 104. In some examples, the reference trajectory may correspond to the centerline of a road segment, although the reference trajectory may represent any path within the environment.
[0019] In operation 122, the vehicle can determine one or more costs associated with the candidate trajectory based at least in part on the candidate trajectory. In some examples, the one or more costs can be associated with points on the reference trajectory. Generally, the one or more costs can include, but are not limited to, a reference cost, an obstacle cost, a lateral cost, a longitudinal cost, an area cost, a width cost, an indicator cost, an action switch cost, an action cost, an utilization cost, etc. Examples of cost types and techniques for determining costs can be found, for example, in U.S. Patent Application No. 16 / 147,492, entitled "Trajectory Generation and Optimization Using Closed Form Numerical Integration in Route Relative Coordinates," filed November 02, 2018, which is incorporated herein by reference in its entirety.
[0020] For example, as the boundaries of the updated drivable area are modified (e.g., using the techniques discussed herein), such costs can change and ultimately change the position of the vehicle within the environment. In examples where an updated drivable area is determined to provide an updated drivable area around an obstacle in the environment, the vehicle can plan a trajectory (e.g., candidate trajectory 120) based in part on the determined costs for the updated drivable area.
[0021] In some examples, the reference cost may include a cost associated with a difference between a point on the reference trajectory and a corresponding point on the candidate trajectory, whereby the difference represents one or more differences in yaw, lateral offset, velocity, acceleration, curvature, curvature rate, etc.
[0022] In some examples, the obstacle cost may include a cost associated with a distance between a point on the reference trajectory or the candidate trajectory and a point associated with an obstacle in the environment. For example, the point associated with the obstacle may correspond to a point on the boundary of the updated drivable area or may correspond to a point associated with the obstacle in the environment. As discussed above, obstacles in the environment may include, but are not limited to, static objects (e.g., buildings, curbs, sidewalks, lane markings, sign posts, traffic lights, trees, etc.) or dynamic objects (e.g., vehicles, bicyclists, pedestrians, animals, etc.). In some examples, dynamic objects may also be referred to as agents. In some examples, static objects or dynamic objects may be generally referred to as objects or obstacles.
[0023] In some examples, the lateral cost may refer to a cost associated with a steering input to the vehicle 104, such as a maximum steering input relative to the speed of the vehicle 104. In some examples, the longitudinal cost may refer to a cost associated with the speed and / or acceleration (e.g., maximum braking and / or acceleration) of the vehicle 104.
[0024] In some examples, the area cost may refer to a cost associated with a drivable area. For example, a first area cost may be associated with the first drivable area 106, and a second area cost may be associated with the second drivable area 108. By way of example, and without limitation, the first area cost may be lower than the second area cost based on the direction of travel of the vehicle and the direction of travel associated with the first drivable area 106 and / or the second drivable area 108. As can be appreciated, if the direction of travel of the vehicle 104 is the same as the direction of travel of the first drivable area 106 and different from the direction of travel of the second drivable area 108, the first area cost may be lower than the second area cost.
[0025] A width cost may refer to a cost associated with the width of a drivable area. For example, a first width cost may be associated with the first drivable area 106, and a second width cost may be associated with the second drivable area 108. By way of example, and without limitation, the first drivable area 106 may have a width of 3 meters, and the second drivable area 108 may have a width of 4 meters. The first width cost may be higher than a lower width cost based on the first drivable area 106 having a narrower width than the second drivable area 108, where the second drivable area 108 may allow the vehicle 104 to traverse the second drivable area 108, which may provide more lateral space than the first drivable area 106.
[0026] Indicator cost may refer to the cost associated with the amount of time that the vehicle 104 has enabled an indicator (e.g., a turn light). For example, the vehicle 104 may enable an indicator, such as a turn light, that periodically enables and disables a light that is visible from outside the vehicle 104. The indicator may provide an indicator to individuals within the environment of the intent to perform an action (e.g., a turn action or a lane change action) of the vehicle 104. As the amount of time that the indicator is enabled increases, the indicator cost may decrease.
[0027] As discussed above, one or more costs (e.g., a baseline cost, an obstacle cost, a lateral cost, a longitudinal cost, an area cost, a width cost, an indicator cost, an action switch cost, an action cost, a utilization cost, etc.) may be associated with a candidate trajectory. In some examples, the vehicle 104 may compare the cost to a cost threshold. Based on the comparison, the vehicle 104 may determine a target trajectory 124 for the vehicle 104 to follow, which may be, by way of example and without limitation, the candidate trajectory 120.
[0028] In at least some examples, such costs may be determined concurrently with candidate trajectories. For example, candidate trajectories through an environment may be determined as an optimization that minimizes total cost (e.g., the sum of all component costs as described above). Thus, when costs are discussed herein based on trajectories, such discussion may include examples in which costs are determined concurrently (substantially simultaneously) with such trajectories. Figure 2 illustrates an example of determining multiple actions for traversing an environment, and updated drivable regions and trajectories associated with the multiple actions.
[0029] For example, the vehicle 104 can traverse through the environment 202. Additionally, as discussed above, the vehicle 104 can determine one or more actions represented in the first action 204, the second action 206, and the third action 208.
[0030] In the first action 204, the vehicle 104 may determine an in-lane action and an updated drivable area 210. The updated drivable area 210 may represent a drivable area associated with the in-lane action. For example, the in-lane action may be an action that causes the vehicle 104 to remain in the first driving lane 110, and the updated drivable area 210 may represent a drivable area associated with remaining in the first driving lane 110.
[0031] Based at least in part on the updated drivable area 210, the vehicle 104 can determine a candidate trajectory 212 associated with an in-lane action that can cause the vehicle 104 to remain within the first drivable area 106, reduce the speed of the vehicle 104, and / or stop the vehicle 104 at a location as the vehicle 104 approaches the object 116.
[0032] In the second action 206, the vehicle 104 may determine a partial lane widening action and an updated drivable area 214 associated with the partial lane widening action. For example, the partial lane widening action may be an action that causes the vehicle 104 to use a portion of the second driving lane 112 to pass the object 116, and the updated drivable area 214 may represent a drivable area that incorporates the portion of the second driving lane 112.
[0033] Based at least in part on the updated drivable area 214, the vehicle 104 can determine a candidate trajectory 216 associated with a partial lane expansion action. The candidate trajectory 216 can cause the vehicle 104 to partially traverse within the second driving lane 112, which can allow the vehicle 104 to safely pass the object 116. Examples of techniques for determining a trajectory using lane expansion can be found, for example, in U.S. Patent Application No. 16 / 457,197, entitled "Dynamic Lane Expansion," filed June 28, 2019, which is incorporated herein by reference in its entirety.
[0034] In a third action 208, the vehicle 104 may determine an oncoming lane action and an updated drivable area 218 associated with the oncoming lane action. For example, the oncoming lane action may be an action that causes the vehicle 104 to cross into the second driving lane 112 (e.g., the oncoming lane) and pass the object 116, and the updated drivable area 218 may represent a drivable area that incorporates the second driving lane 112.
[0035] Based at least in part on the updated drivable region 218 , the vehicle 104 can determine candidate trajectories 220 associated with oncoming lane actions to safely traverse the object 116 .
[0036] In some examples, the vehicle can determine candidate trajectory 212, 216, or 220 as a target trajectory based on conditions in the environment. For example, a lane divider (or lane marker) can indicate a no passing zone where a vehicle is not allowed to pass into oncoming traffic. Thus, based on the lane divider, the vehicle 104 can determine an in-lane action, such as reducing the speed of the vehicle 104 and / or stopping at a certain location as the vehicle 104 approaches the object 116. position You can come as far as
[0037] In some examples, the vehicle 104 can determine a partial lane widening action and the candidate trajectory 212 as a target trajectory. For example, the vehicle 104 can determine a width required for the vehicle 104 to pass through the object 116 based on map data and / or sensor data. The vehicle 104 can determine that the width is less than a width threshold (e.g., a maximum widening width) associated with the partial lane widening action. The vehicle 104 can then determine the candidate trajectory 212 as a target trajectory and continue traversing the environment by following the target trajectory, as shown in the second action 206, and pass the object 116 by partially traversing within the second drivable area 108.
[0038] In some examples, the vehicle 104 can determine the oncoming lane action and the candidate trajectory 220 as the target trajectory. For example, as discussed above, the vehicle 104 can determine that the width required by the vehicle 104 meets or exceeds a width threshold associated with a partial lane widening action. Additionally, the vehicle 104 can determine that the available width meets or exceeds an available width threshold. For example, the available width can be associated with the width of an updated drivable area (e.g., a drivable area that includes the oncoming driving lane and accounts for obstacles in the environment), and the available width threshold can be associated with the width of the vehicle 104, such that meeting or exceeding the available width threshold can indicate that the vehicle 104 can traverse through the environment without encountering a complete obstruction. Additionally, the vehicle 104 can determine, based on map data and / or sensor data, that a lane divider indicates a passing zone in which the vehicle is permitted to pass in the oncoming traffic lane. Additionally, the vehicle 104 can determine additional driving lane data that indicates that an additional driving lane associated with the same direction of travel of the vehicle 104 is not available (e.g., the additional driving lane does not exist or is also obstructed). Thus, the vehicle 104 can determine the oncoming lane action and candidate trajectory 220 as a target trajectory based on the width, lane splitting instructions, and / or additional driving lane data, where following the target trajectory can enable the vehicle 104 to pass the object 116 by crossing into the second drivable area 108.
[0039] In some examples, the vehicle 104 can determine the oncoming lane action and candidate trajectory 220 as the target trajectory based on the speed of the object 116. For example, the vehicle 104 can determine a speed associated with the object 116 and compare the speed of the object 116 to a speed threshold. In some examples, the speed threshold can be 0 meters per second, which can indicate that the object 116 must be stationary for the vehicle to determine the oncoming lane action and candidate trajectory 220 as the target trajectory. In some examples, the speed threshold can be greater than 0 (e.g., 0.5 meters per second, 1 meter per second, or any suitable speed threshold), which can indicate a slow-moving vehicle, such as, for example, farm equipment, construction equipment, or a truck-towing trailer. The oncoming lane action can allow the vehicle 104 to safely pass the slow-moving vehicle.
[0040] In some examples, the vehicle 104 can determine an attribute associated with the object 116 to determine oncoming lane actions. By way of example, and without limitation, the vehicle 104 can determine attributes such as hazard lights and / or excessive smoke emitted by the tailpipe of the object 116. The attribute can indicate that the object 116 needs maintenance or attention, and can determine oncoming lane actions to safely pass the object 116.
[0041] FIG. 3 illustrates an exemplary state machine (also referred to as a finite state machine) that includes an approach state, a stop-ready state (also referred to as a ready state), an attention-progressing state (also referred to as an attention state), a stop state, and a progress state. Of course, such states and the connections between them are depicted for illustrative purposes only, and other state machines that include more or fewer states and / or different connections between them are contemplated. In at least some examples, different state machines may be used for different scenarios and / or operations. Examples of techniques for using state machines to determine how to traverse an environment can be found, for example, in U.S. Patent Application No. 16 / 295,935, entitled "State Machine for Traversing Junctions," filed March 7, 2019, which is incorporated herein by reference in its entirety.
[0042] The oncoming action state machine 302 may include an approach state 304. In some examples, the approach state 304 may include evaluating the environment 306 (e.g., by analyzing data collected by one or more sensors) for various objects (e.g., the object 116) that may trigger the vehicle to take a particular action. For example, the environment 306 may represent an environment including the vehicle 104 traversing a drivable area associated with the first driving lane 110 approaching the object 116.
[0043] The object 116 in this example may be a stationary vehicle. The approaching state 304 is indicated by "1," and the vehicle 104 may be in the approaching state. In some examples, sensor data may be captured by the vehicle 104 during the approaching state 304 and used to determine information about the object 116, including, but not limited to, the type of object (e.g., semantic information indicating the object's classification, such as a vehicle, a pedestrian, a bicycle, an animal, etc.). In some examples, the operation of the oncoming action state machine 302 may include determining the type of object 116, a bounding box associated with the object 116, segmentation information associated with the object 116, and / or movement information associated with the object 116, as well as any uncertainty associated therewith, as discussed herein. The vehicle 104 may determine, via sensors associated with the vehicle 104, that the object 116 is a stationary vehicle. While not explicitly shown, it may be understood that the vehicle 104 may also detect that the object 116 is another type of object, such as a double-parked vehicle, or another type of obstacle, such as a road defect, a construction zone, etc. The approach state 304 may additionally include accessing map data representing the environment.
[0044] In some examples, while the vehicle 104 is in the approaching state 304, the vehicle 104 can detect additional objects. For example, another vehicle may be in an oncoming lane (e.g., the second driving lane 112), or another vehicle may be behind the vehicle 104, with the estimated object trajectory passing the vehicle 104 on the left side of the vehicle 104. The vehicle 104 can determine whether the vehicle 104 must yield to another vehicle and / or whether the other vehicle should yield to the vehicle 104. Examples of techniques for determining whether an object, such as another vehicle, should yield can be found, for example, in U.S. Patent Application No. 16 / 549,704, filed August 23, 2019, entitled "Yield Behavior Modeling and Prediction," which is incorporated herein by reference in its entirety.
[0045] In response to determining that the vehicle 104 must yield, the vehicle 104 may determine a yield trajectory that executes a transition 308 from the approaching state 304 to a prepare to stop state 310. The prepare to stop state 310 may include determining a stopping location where the vehicle 104 should stop. In some examples, as discussed above, one or more other vehicles or objects may be ahead of the vehicle 104 approaching the vehicle 104 in the second driving lane 112, which may be identified by sensors in the vehicle 104. The vehicle 104 may determine a stopping location that meets or exceeds a threshold distance from the object 116 and / or other objects in the environment ahead of the vehicle 104.
[0046] Once the stopping position is determined, the vehicle 104 may traverse through the environment and stop at the stopping position, thereby executing a transition 312 from the prepare to stop state 310 to the stopped state 314 when the vehicle 104 comes to a complete stop. The stopped state 314 is designated by a "3".
[0047] While in the stopped state 314, the vehicle 104 may determine whether the vehicle 104 is within a threshold distance of a maneuver position corresponding to a lane change maneuver associated with an oncoming lane action. The vehicle 104 may compare the current position of the vehicle 104 in the stopped state 314 to a suitable position for making a lane change (a "maneuver position"). For example, if the vehicle 104 is too close to the object 116, executing a lane change into the second driving lane 112 may be difficult due to a limited amount of available space, whereas a maneuver position may allow the vehicle 104 to execute a lane change into the second driving lane 112.
[0048] If the vehicle 104 determines that it no longer needs to yield (e.g., another vehicle has cleared, allowing the vehicle 104 to proceed forward), the vehicle 104 may transition 316 from the stopped state 314 to a proceeding caution state 318, indicated by a "4." Upon entering the proceeding caution state 318, the vehicle 104 begins to slow down into a "caution zone," indicated by a "4." The caution zone may provide the vehicle 104 with sufficient distance between the body of the vehicle 104 and the boundary associated with the drivable area of the second driving lane 112 such that, if the vehicle 104 stops in the caution zone, other vehicles will be able to safely avoid a collision with the vehicle 104 while crossing the second driving lane 112. Upon approaching the attention region, the vehicle 104 may proceed from stopped in the stopped state 314 at a transition speed that depends on the amount of visibility (e.g., occlusion regions and / or occlusion grids can reduce the amount of visibility, where an occlusion region can be an area of the environment with limited visibility from the vehicle 104) and the distance to the attention region. For example, greater distance and greater visibility from the attention region may result in a faster transition speed approaching the attention region, while a shorter distance and lower visibility to the attention region may result in a slower transition speed approaching the attention region.
[0049] To determine the size and / or dimensions of the attention region, vehicle 104 may consider the geometry of the area in which vehicle 104 is stopped, in addition to other factors for performing the maneuver. For example, vehicle 104 may determine a desired arc length from the initiation of a lane change into second driving lane 112 to a return to first driving lane 110 after passing object 116. The desired arc length thus corresponds to a projected path of travel for vehicle 104 from the stopped position to merging into first driving lane 110. The desired arc length defines at least a first portion of the attention region for vehicle 104 when performing a lane change maneuver.
[0050] The vehicle 104 can also consider the acceleration (or transition speed at which the vehicle approaches the attention area) from a stop to reach a desired speed (e.g., the speed limit of the first driving lane 110 and / or the second driving lane 112) and use the arc length to determine the time to perform the maneuver. The determined time to perform the maneuver can then be used to determine the desired amount of visibility distance the vehicle 104 can perceive before performing the maneuver. The vehicle 104 can detect the visibility of the second driving lane 112 by evaluating sensor data from sensors in the vehicle 104 and determine whether there is sufficient visibility to perform a lane change maneuver.
[0051] The vehicle 104 can use the information generated during the attention proceeding state 318 to then determine a transition speed for traversing the attention region. Several factors can contribute to determining the transition speed, such as the determined amount of visibility (e.g., higher visibility favors a higher transition speed, while lower visibility favors a lower transition speed), the estimated time to perform a lane change maneuver (e.g., longer execution times favor a lower transition speed, while shorter execution times favor a higher transition speed), etc. The vehicle 104 can use the determined transition speed to control the vehicle 104 to proceed through the attention region in progression in the attention proceeding state 318 and continue to evaluate sensor data of the surrounding environment throughout the attention region.
[0052] If an oncoming vehicle is detected while the vehicle 104 is in the attention zone, the vehicle 104 can yield to the oncoming vehicle by executing a transition 320 from the attention proceeding state 318 back to the prepare to stop state 310. Once the vehicle 104 has yielded to the oncoming vehicle and the oncoming vehicle is clear, the vehicle 104 can continue through the attention zone at a transition speed (which need not be constant throughout the maneuver) by executing a transition 322 from the prepare to stop state 310 to the attention proceeding state 318. However, if the vehicle 104 passes a threshold point within the attention zone, the vehicle 104 can execute a transition 324 from the attention proceeding state 318 to a proceeding state 326. The proceeding state 326 is indicated by a "5," and the representation of the vehicle 104 has completed a lane change into the second driving lane 112 and is entering the oncoming lane.
[0053] In some examples, while the vehicle 104 is in the approaching state 304, if the vehicle 104 determines that it does not need to yield (e.g., other vehicles and / or objects are not present within an area that would allow the vehicle 104 to proceed), the vehicle 104 may transition 328 from the approaching state 304 to the proceeding caution state 318, indicated by a "4." As discussed above, in proceeding in the proceeding caution state 318, the vehicle 104 begins to creep into the "caution area," indicated by a "4." The creeping of the vehicle 104 may, for example, involve the vehicle 104 proceeding at or below a speed threshold while monitoring the conditions of the environment. By way of example and not limitation, the speed threshold may be 3 meters / second, where the speed of the vehicle 104 may be below the speed threshold to allow the vehicle 104 to monitor the environment for objects, pedestrians, vehicles, etc., while allowing the vehicle 104 to stop within a short period of time. The attention area may provide the vehicle 104 with sufficient distance between the body of the vehicle 104 and the boundary associated with the drivable area of the second driving lane 112 such that if the vehicle 104 were to stop in the attention area, other vehicles would be able to safely avoid colliding with the vehicle 104 while crossing the second driving lane 112. Upon approaching the attention area, the vehicle 104 may proceed at a transition speed that depends on the amount of visibility and the distance to the attention area. For example, greater distance from the attention area and higher visibility may result in a faster transition speed approaching the attention area, while a shorter distance to the attention area and lower visibility may result in a slower transition speed approaching the attention area.
[0054] In some examples, a vehicle 104, as described above, may determine while in the approaching state 304 that the vehicle 104 does not need to yield (e.g., there are no other vehicles and / or objects within the area that would allow the vehicle 104 to proceed). Based on determining that the vehicle 104 does not need to yield, the vehicle 104 may transition from the approaching state 304 to the proceeding state 326. This may allow the vehicle 104 to bypass the proceeding with caution state 318 based on determining that the vehicle 104 can safely pass the object 116.
[0055] 4A and 4B show an example of determining an updated region through a junction.
[0056] 4A , an environment 402 shows a vehicle 104 traversing through the environment 402 and detecting an object 116, which may be, for example, a stationary vehicle. As discussed above, the vehicle 104 can determine an oncoming lane action and determine an updated drivable area 404 that includes the second driving lane 112 (e.g., the oncoming lane). Based on the updated drivable area 404, the vehicle 104 can determine a target trajectory 406 for traversing through the updated drivable area 404. While traversing through the junction, the vehicle 104 can continue to monitor and / or detect other vehicles and / or objects with an estimated trajectory leading toward the updated drivable area 404, and the vehicle 104 can proceed safely through the junction using the oncoming action state machine (also referred to as a finite state machine) described in FIG. 3 .
[0057] Similarly, in FIG. 4B , environment 408 depicts vehicle 104 traversing through environment 408 and detecting object 116. As discussed above, vehicle 104 can determine an oncoming lane action and determine an updated drivable area 410 that includes second driving lane 112 (e.g., the oncoming lane). However, in contrast to environment 402, the target lane of vehicle 104 is, by way of example and not limitation, a third driving lane 412 that is perpendicular to the current direction of travel and intersects with the current driving lane (e.g., first driving lane 110). Vehicle 104 can determine an updated drivable area 410, which can initially include a portion of second driving lane 112 to pass through object 116 and a portion of fourth driving lane 414. In some examples, updated drivable area 410 can omit the portion that includes fourth driving lane 414. In some examples, the contours of updated drivable area 410 can depend on the capabilities of vehicle 104, such as turning radius. Based on the updated drivable area 410 , the vehicle 104 can determine a target trajectory 416 that traverses through the updated drivable area 410 .
[0058] 5 is a block diagram illustrating an example system 500 for determining an updated drivable area and determining a target trajectory through obstacles. In at least one example, system 500 may include a vehicle 502 that may be the same as or similar to vehicle 104 described above with reference to FIGS. 1-4B.
[0059] By way of example, and not limitation, vehicle 502 may be an autonomous vehicle configured to operate in accordance with a Level 5 classification issued by the U.S. National Highway Traffic Safety Administration, which describes a vehicle capable of performing all safety-critical functions for the entire journey without expecting a driver (or passenger) to be in constant control of the vehicle. In such an example, vehicle 104 may be configured to control all functions from start to stop, including all parking functions, and thus be driverless. This is merely an example, and the systems and methods described herein may be incorporated into any land, air, or water vehicle, ranging from vehicles that require manual control at all times by a driver to those that are partially or fully autonomously controlled. Additional details associated with vehicle 502 are described throughout this disclosure.
[0060] The vehicle 502 can be a vehicle of any configuration, such as, for example, a van, a sport utility vehicle, a crossover vehicle, a truck, a bus, an agricultural vehicle, and / or a construction vehicle. The vehicle 502 can be powered by one or more internal combustion engines, one or more electric motors, hydrogen power, any combination thereof, and / or any other suitable power source. The vehicle 502 has four wheels, although the systems and methods described herein can be incorporated into vehicles having a fewer or greater number of wheels and / or tires. The vehicle 502 can have four-wheel steering and can operate with generally equal or similar performance characteristics in all directions, e.g., a first end of the vehicle 502 is the front end of the vehicle 502 when traveling in a first direction, and the first end is the rear end of the vehicle 502 when traveling in the opposite direction. Similarly, a second end of the vehicle 502 is the front end of the vehicle when traveling in a second direction, and the second end is the rear end of the vehicle 502 when traveling in the opposite direction. These exemplary characteristics can facilitate better maneuverability in small spaces or crowded environments such as, for example, parking lots and / or urban areas.
[0061] The vehicle 502 can include a computing device 504 , a sensor system 506 , an emitter 508 , a communication connection 510 , a direct connection 512 , and a drive system 514 .
[0062] The vehicle computing device 504 may include a processor 516 and a memory 518 communicatively coupled to the processor 516. In the illustrated example, the vehicle 502 may be an autonomous vehicle. However, the vehicle 502 could be any other type of vehicle. In the illustrated example, the memory 518 of the vehicle computing device 504 may store a localization system 520, a perception system 522, a prediction system 524, a planning system 526, a system controller 528, a map system 530, a drivable area system 532, an action system 534, a cost system 536, and a comparison system 538. These systems and components are illustrated and described below as separate components for ease of understanding, although the functions of the various systems and controllers may be attributed differently than described. By way of example, and without limitation, functions attributed to the perception system 522 may be performed by the localization system 520 and / or the prediction system 524. Additionally, fewer or more systems and components may be utilized to perform the various functions described herein. Additionally, while depicted in FIG. 5 as residing in memory 518 for illustrative purposes, it is contemplated that localization system 520, perception system 522, prediction system 524, planning system 526, system controller 528, map system 530, drivable area system 532, action system 534, cost system 536, and / or comparison system 538 may additionally or alternatively be accessible to vehicle 502 (e.g., stored in memory separate from vehicle 502 or otherwise accessible).
[0063] In at least one example, the localization system 520 may include functionality to receive data from the sensor system 506 to determine the position and / or orientation of the vehicle 502 (e.g., one or more of x, y, z position, roll, pitch, or yaw). For example, the localization system 520 may include and / or request / receive a map of the environment (e.g., from the map system 530) and continuously determine the position and / or orientation of the autonomous vehicle within the map. In some examples, the localization system 520 may receive image data, LIDAR data, RADAR data, IMU data, GPS data, wheel encoder data, etc., to accurately determine the position of the autonomous vehicle using SLAM (simultaneous localization and mapping), CLAMS (calibration, localization, and mapping simultaneously), relative SLAM, bundle adjustment, nonlinear least squares optimization, differential dynamic programming, etc. In some examples, the localization system 520 may provide data to various components of the vehicle 502 to determine an initial position of the autonomous vehicle for generating a trajectory for moving through the environment.
[0064] In some examples, the perception system 522 may include functionality to perform object detection, segmentation, and / or classification. In some examples, the perception system 522 may provide processed sensor data indicating the presence of an object in proximity to the vehicle 502, such as the object 116. The perception system may also include a classification of the entity as an entity type (e.g., car, pedestrian, bicyclist, animal, building, tree, road surface, curb, sidewalk, unknown, etc.). For example, the perception system 522 may compare the sensor data with object information in the comparison system 538 to determine a classification. In additional and / or alternative examples, the perception system 522 may provide processed sensor data indicating one or more characteristics associated with the detected object and / or the environment in which the object is located. In some examples, characteristics associated with the object may include, but are not limited to, an x-position (global and / or local position), a y-position (global and / or local position), a z-position (global and / or local position), an orientation (e.g., roll, pitch, yaw), an object type (e.g., classification), an object's velocity, an object's acceleration, an object's extent (size), a bounding box associated with the object, etc. Characteristics associated with an environment may include, but are not limited to, the presence of other objects in the environment, the state of other objects in the environment, the time of day, the day of the week, the season, weather conditions, dark / light indications, etc.
[0065] Prediction system 524 has access to sensor data from sensor system 506, map data from map system 530, and, in some examples, sensory data (e.g., processed sensor data) output from perception system 522. In at least one example, prediction system 524 can determine features associated with an object based at least in part on the sensor data, map data, and / or sensory data. As described above, the features can include the object's range (e.g., height, weight, length, etc.), the object's pose (e.g., x-coordinate, y-coordinate, z-coordinate, pitch, roll, yaw), the object's velocity, the object's acceleration, and the object's direction of movement (e.g., heading). Additionally, prediction system 524 can be configured to determine the distance between the object and an adjacent driving lane, the width of the current driving lane, proximity to a crosswalk, semantic features, interaction features, etc.
[0066] The prediction system 524 can analyze the object's characteristics to predict the object's future actions (e.g., the object's estimated trajectory). For example, the prediction system 524 can predict lane changes, decelerations, accelerations, turns, changes of direction, etc. Examples of techniques for determining object characteristics can be found, for example, in U.S. Patent Application No. 15 / 982,658, entitled "Vehicle Lighting State Determination," filed May 17, 2018 (which describes, in part, determining the state of an object such as a parked vehicle, a double-parked vehicle, a stationary vehicle, and / or a slow-moving vehicle), and is incorporated herein by reference in its entirety. The prediction system 524 can transmit the prediction data to the drivable zone system 532, which can then use the prediction data to determine the boundaries of the drivable zone (e.g., based on one or more of uncertainties in position, velocity, acceleration, in addition to, or as an alternative to, the object's semantic classification). For example, if predictive data indicates that a pedestrian walking along the shoulder is behaving erratically, the drivable area system 532 can determine an increased offset of the drivable area in proximity to the pedestrian. In some examples where the vehicle 502 is not autonomous, the predictive system 524 can provide an indication (e.g., audio and / or visual alert) to the driver of a predicted event that may affect travel.
[0067] In some examples, the prediction system 524 may include functionality to determine predicted points representing predicted locations of objects within the environment. The prediction system 524, in some embodiments, may determine predicted points associated with the heat map based at least in part on the cell associated with the highest probability and / or based at least in part on a cost associated with generating a predicted trajectory (also referred to as an estimated trajectory) associated with the predicted point.
[0068] For example, the prediction system 524 can select points, cells, or regions of the heat map as predicted points based at least in part on evaluating one or more cost functions associated with risk factors, safety, and vehicle dynamics, to name a few. Such costs can include, but are not limited to, position-based costs (e.g., limiting the allowable distance between predicted points), speed costs (e.g., constant speed costs that enforce a constant speed throughout the predicted trajectory), acceleration costs (e.g., enforcing acceleration bounds throughout the predicted trajectory), expectations that the object is likely to obey rules of the road, etc. In at least some examples, the probability associated with a cell can be multiplied (and, in at least some examples, normalized) by the cost such that the point (e.g., candidate point) associated with the highest value of the product of the cost and probability is selected as the predicted point associated with the object at a particular time.
[0069] In general, the planning system 526 can determine a path that the vehicle 502 will follow to traverse through an environment. For example, the planning system 526 can determine various routes and trajectories as well as various levels of detail. For example, the planning system 526 can determine a route to travel from a first location (e.g., a current location) to a second location (e.g., a target location). For purposes of this discussion, the route can be a series of waypoints for traveling between the two locations. As non-limiting examples, the waypoints include streets, intersections, Global Positioning System (GPS) coordinates, etc. Furthermore, the planning system 526 can generate instructions for guiding the autonomous vehicle along at least a portion of the route from the first location to the second location. In at least one example, the planning system 526 can determine how to guide the autonomous vehicle from a first waypoint in the series of waypoints to a second waypoint in the series of waypoints. In some examples, the instructions can be a trajectory or a portion of a trajectory. In some examples, multiple trajectories can be generated substantially simultaneously (e.g., within technical tolerances) according to a receding horizon technique, where one of the multiple trajectories is selected for navigating vehicle 502. Thus, in the exemplary embodiment described herein, planning system 526 can generate a trajectory that the vehicle can navigate, where the trajectory is contained within the drivable region.
[0070] System controller 528 can be configured to control steering, propulsion, braking, safety, emitter, communication, and other systems of vehicle 502. These system controllers 528 can communicate with and / or control corresponding systems of drive system 514 and / or other components of vehicle 502. For example, system controller 528 can cause the vehicle to traverse along a driving path determined by planning system 526, e.g., in a drivable area determined by drivable area system 532.
[0071] Map system 530 can be configured to store one or more maps as map data. A map can be any number of data structures modeled in two or three dimensions that can provide information about an environment, such as, but not limited to, topology (such as intersections), streets, mountain ranges, roads, terrain, and the general environment. In some examples, the map data can outline drivable areas within the environment and identify types of drivable areas. For example, the map data can indicate portions of the environment associated with driving lanes, bus lanes, two-way left-turn lanes, bicycle lanes, sidewalks, etc., and, if applicable, directions of travel associated with portions of the environment.
[0072] The drivable area system 532 can be configured to determine a drivable area, such as drivable areas 106, 108, 210, 214, 218, 404, and 410. For example, the drivable area can represent an area of the environment that is free of obstacles and corresponds to an area that the vehicle 502 can traverse. In some examples, after determining the drivable area, the drivable area system 532 can further determine an updated drivable area, as discussed above. Although illustrated as a separate block in the memory 518, in some examples and embodiments, the drivable area system 532 can be part of the planning system 526. The drivable area system 532 can access sensor data from the sensor system 506, map data from the map system 530, object information from the comparison system 538, output (e.g., processed data) from one or more of the localization system 520, the perception system 522, and / or the prediction system 524.
[0073] As a non-limiting example, the drivable area system 532 can access (e.g., retrieve or receive) one or more planned paths. The planned paths can represent potential paths for navigating an environment and can be determined, for example, based on map data, object information, and / or sensory data. In some examples, the planned paths can be determined as candidate paths for executing a mission. For example, the computing device 504 can define or determine a mission as a highest-level navigation to a destination, e.g., a set of roads for navigating to the destination. Once the mission is determined, one or more actions can be determined to execute that high-level navigation.
[0074] An action system 534 can be used to determine actions for how to perform the mission. For example, actions can include tasks such as "follow vehicle," "pass vehicle on the right," "slow down," "stop," "stay in lane," "oncoming lane," "change lane," etc. In some examples, the actions described herein can be used to determine actions for how to perform the mission. For example, actions can include tasks such as "follow vehicle," "pass vehicle on the right," "slow down," "stop," "stay in lane," "oncoming lane," "change lane," etc. prediction A path can be determined for each action. For example, a stay-in-lane action can be used to stay in the current driving lane of vehicle 502, and an oncoming lane action can be used to traverse around an obstacle using at least a portion of the oncoming lane as a drivable area. Although shown as a separate block in memory 518, in some examples and embodiments, action system 534 can be part of planning system 526. Action system 534 can access sensor data from sensor system 506 and / or map data from map system 530. In some examples, action system 534 can use the sensor data and / or map data to determine an action for vehicle 502.
[0075] For a planned path, the drivable area system 532 can determine lateral distances from the path to objects in the environment at discrete points along the planned path. For example, the distances can be received as sensory data generated by the perception system 522 and / or can be determined using mathematical and / or computer vision models, such as ray casting techniques. The various lateral distances can then be adjusted, taking other factors into account. For example, it may be desirable to maintain a minimum distance between the vehicle 502 and objects in the environment. In some embodiments, information about the objects, including their semantic classification, can be used to determine those distance adjustments.
[0076] Additionally, the prediction system 524 can also provide prediction data regarding the predicted movement of the object, and the distance can further be adjusted based on those predictions. For example, the prediction data can include a confidence score, and the lateral distance can be adjusted based on the confidence score, e.g., by making larger adjustments for less reliable predictions and lesser or no adjustments for more reliable predictions. Using the adjusted distances, the drivable zone system 532 can define boundaries of the drivable zone. In at least some examples, the boundaries can be discretized (e.g., every 10 cm, 50 cm, 1 meter, etc.) and can encode information about the boundaries (e.g., the lateral distance to the nearest object, a semantic classification of the nearest object, a confidence and / or probability score associated with the boundaries, etc.). As described herein, the trajectory determined by the planning system 526 can be constrained by the drivable zone and therefore the trajectory. Although the drivable zone system 532 is illustrated as being separate from the planning system 526, one or more of the functions of the drivable zone system 532 can be performed by the planning system 526. In some embodiments, the drivable zone system 532 may be part of the planning system 526 .
[0077] The cost system 536 can be configured to determine one or more costs associated with an action. For example, one or more costs can be associated with a planned path (e.g., a candidate trajectory) through a drivable area associated with the action. The one or more costs can include, but are not limited to, a baseline cost, an obstacle cost, a lateral cost, a longitudinal cost, an area cost, a width cost, an indicator cost, an action switch cost, an action cost, a utilization cost, etc.
[0078] The comparison system 538 can be configured to compare costs associated with a first candidate trajectory and a second candidate trajectory. For example, the first candidate trajectory can be associated with a stay-in-lane action, where the first candidate trajectory would stop the vehicle 502 in front of an obstacle in the environment. The second candidate trajectory can be associated with an oncoming lane action, where the second candidate trajectory would allow the vehicle 502 to traverse the obstacle using the oncoming lane. The cost system 536 can determine costs associated with the first candidate trajectory and the second candidate trajectory. By way of example and not limitation, the comparison system 538 can determine that the second candidate trajectory is associated with a cost that is less than the cost associated with the first candidate trajectory, and the planning system 526 can use the second candidate trajectory as a target trajectory for traversing through the environment. In some examples, the comparison system 538 can compare the cost associated with the candidate trajectory to a cost threshold. For example, if the cost associated with the candidate trajectory is not less than the cost threshold, the cost threshold can be used to maintain the current action.
[0079] In at least one example, the localization system 520, the perception system 522, the prediction system 524, the planning system 526, the drivable area system 532, the action system 534, and / or the cost system 536 can process the sensor data and / or the map data as described above and can transmit their respective outputs to the computing device 542 via the network 540. In at least one example, the localization system 520, the perception system 522, the prediction system 524, the planning system 526, the drivable area system 532, the action system 534, and / or the cost system 536 can transmit their respective outputs to the computing device 542 at a particular frequency, after a predetermined period of time, in near real time, etc.
[0080] In at least one example, sensor system 506 can include time-of-flight sensors, lidar sensors, radar sensors, ultrasonic transducers, sonar sensors, position sensors (e.g., GPS, compass, etc.), inertial sensors (e.g., inertial measurement units, accelerometers, magnetometers, gyroscopes, etc.), cameras (e.g., RGB, UV, IR, intensity, depth, etc.), microphones, wheel encoders, environmental sensors (e.g., temperature sensors, humidity sensors, light sensors, pressure sensors, etc.), etc., and sensor system 506 can include multiple instances of each of these or other types of sensors. For example, lidar sensors can include individual lidar sensors located at the corners, front, rear, sides, and / or top of vehicle 502. As another example, camera sensors can include multiple cameras positioned at various locations around the exterior and / or interior of vehicle 502. Sensor system 506 can provide input to computing device 504. Additionally and / or alternatively, the sensor system 506 can transmit sensor data over the network 540 to a computing device 542 at a particular frequency, after a predetermined period of time, in near real time, etc.
[0081] Vehicle 502 may also include emitters 508 for emitting light and / or sound. Emitters 508 in this example include interior audio and interior visual emitters for communicating with passengers of vehicle 502. By way of illustration, and not limitation, interior emitters may include speakers, lights, symbols, display screens, touch screens, tactile emitters (e.g., vibration and / or force feedback), mechanical actuators (e.g., seat belt tensioners, seat positioners, headrest positioners, etc.). Emitters 508 in this example also include exterior emitters. By way of example and not limitation, exterior emitters in this example include light emitters (e.g., indicator lights, signs, light arrays, etc.) for visually communicating with pedestrians, other drivers, other nearby vehicles, etc., one or more audio emitters (e.g., speakers, speaker arrays, horns, etc.) for audibly communicating with pedestrians, other drivers, other nearby vehicles, etc. In at least one example, emitters 508 may be positioned at various locations around the exterior and / or interior of vehicle 502 .
[0082] Vehicle 502 may also include a communications connection 510 that enables communication between vehicle 502 and other local or remote computing devices. For example, communications connection 510 may facilitate communication with other local computing devices on vehicle 502 and / or drive system 514. Communications connection 510 may also enable the vehicle to communicate with other nearby computing devices (e.g., other nearby vehicles, traffic signals, etc.). Communications connection 510 may also enable vehicle 502 to communicate with remote teleoperation computing devices or other remote services.
[0083] The communication connection 510 may include a physical and / or logical interface for connecting the vehicle computing device 504 to another computing device or network, such as the network 540. For example, the communication connection 510 may enable Wi-Fi-based communications, such as over frequencies defined by the IEEE 802.11 standard, short-range radio frequencies such as BLUETOOTH®, or any suitable wired or wireless communication protocol that allows each computing device to interface with other computing devices.
[0084] In at least one example, the vehicle 502 can include a drive system 514. In some examples, the vehicle 502 can have a single drive system 514. In at least one example, if the vehicle 502 has multiple drive systems 514, the individual drive systems 514 can be located at either end of the vehicle 502 (e.g., the front and rear, etc.). In at least one example, the drive system 514 can include a sensor system that detects the condition of the drive system 514 and / or the surroundings of the vehicle 502. By way of example and not limitation, the sensor system 506 can include wheel encoders (e.g., rotary encoders) that sense the rotation of the wheels of the drive module, inertial sensors (e.g., inertial measurement units, accelerometers, gyroscopes, magnetometers, etc.) that measure the position and acceleration of the drive module, cameras or other imaging sensors, ultrasonic sensors that acoustically detect objects around the drive module, lidar sensors, radar sensors, time-of-flight sensors, etc. Some sensors, such as the wheel encoders, can be specific to the drive system 514. In some cases, the sensor system 506 on the drive system 514 can overlap or complement a corresponding system (e.g., the sensor system 506) on the vehicle 502.
[0085] The drive system 514 can include many vehicle systems, including a high-voltage battery, a motor that propels the vehicle 502, an inverter that converts direct current from the battery to alternating current for use by other vehicle systems, a steering system (which can be electric) including a steering motor and steering rack, a braking system including hydraulic or electric actuators, a suspension system including hydraulic and / or pneumatic components, a stability control system for braking force distribution to mitigate loss of traction and maintain control, an HVAC system, lighting (e.g., head / tail lights that illuminate the vehicle's exterior environment), and one or more other systems (e.g., a cooling system, safety systems, other electrical components such as an on-board charging system, a DC / DC converter, a high-voltage junction, high-voltage cables, a charging system, and a charge port). Additionally, the drive system 514 can include a drive module controller that can receive and pre-process data from sensor systems and control the operation of various vehicle systems. In some examples, the drive module controller can include a processor and memory communicatively coupled to the processor. The memory can store one or more modules that perform various functions of the drive system 514. Additionally, drive system 514 also includes communication connections that enable each drive module to communicate with other local or remote computing devices.
[0086] As described above, the vehicle 502 can transmit sensor data to the computing device 542 over the network 540. In some examples, the vehicle 502 can transmit raw sensor data to the computing device 542. In other examples, the vehicle 502 can transmit processed sensor data and / or representations of the sensor data (e.g., data output from the localization system 520, the perception system 522, the prediction system 524, and / or the planning system 526) to the computing device 542. In some examples, the vehicle 502 can transmit sensor data to the computing device 542 at a particular frequency, after a predetermined period of time, in near real time, etc.
[0087] Computing device 542 can receive sensor data (raw or processed) from vehicle 502 and / or one or more other vehicles and / or data collection devices and can determine the expanded drivable area based on the sensor data and other information. In at least one example, computing device 542 can include a processor 544 and a memory 546 communicatively coupled to processor 544. In the illustrated example, memory 546 of computing device 542 stores, for example, a map system 548, a drivable area system 550, an action system 552, a cost system 554, and a comparison system 556. In at least one example, map system 548 can correspond to map system 530, drivable area system 550 can correspond to drivable area system 532, action system 552 can correspond to action system 534, cost system 554 can correspond to cost system 536, and comparison system 556 can correspond to comparison system 538.
[0088] Processor 516 of vehicle 502 and processor 544 of computing device 542 may be any suitable processor capable of processing data and executing instructions to perform the operations described herein. By way of example and not limitation, processors 516 and 544 may comprise one or more central processing units (CPUs), graphics processing units (GPUs), or any other device or portion of a device that processes electronic data and converts it into other electronic data that can be stored in registers and / or memory. In some examples, integrated circuits (e.g., ASICs, etc.), gate arrays (e.g., FPGAs, etc.), and other hardware devices may also be considered processors so long as they are configured to implement encoded instructions.
[0089] Memories 518 and 546 are examples of non-transitory computer-readable media. Memories 518 and 546 may store an operating system and one or more software applications, instructions, programs, and / or data to implement the methods and functionality attributed to the various systems described herein. In various embodiments, memory may be implemented using any suitable memory technology, such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), non-volatile / flash-type memory, or any other type of memory capable of storing information. The architectures, systems, and individual elements described herein may include many other logical, programmatic, and physical components, of which those illustrated in the accompanying drawings are merely examples relevant to the description herein.
[0090] 5 is shown as a distributed system, it should be noted that in alternative examples, components of vehicle 502 may be associated with computing device 542 and / or components of computing device 542 may be associated with vehicle 502. That is, vehicle 502 may perform one or more of the functions associated with computing device 542, and vice versa. Additionally, while the various systems and components are shown as separate systems, the illustration is by way of example only, and more or fewer separate systems may perform the various functions described herein.
[0091] In some examples, some or all aspects of the components discussed herein may include any model, algorithm, and / or machine learning algorithm. For example, in some examples, the components in memories 518 and 546 may be implemented as a neural network.
[0092] FIG. 6 shows an example process 600 for determining a target trajectory and controlling an autonomous vehicle based at least in part on the target trajectory.
[0093] In operation 602, the computing device may determine a first drivable area associated with the first direction of travel and a second drivable area associated with the second direction of travel. For example, the drivable area may represent an area in an environment that may define constraints and / or boundaries within which a vehicle may safely travel to effectively reach an intended destination. In some examples, the drivable area may represent an area in an environment that may define constraints and / or boundaries within which a vehicle may safely travel relative to objects in the environment.
[0094] In operation 604, the computing device may determine a reference trajectory for the autonomous vehicle to traverse. In some examples, the reference trajectory may be associated with a planned path for performing the mission.
[0095] In operation 606, the computing device can receive sensor data. The sensor data can be data generated by sensors such as time-of-flight sensors, lidar sensors, radar sensors, ultrasonic transducers, sonar sensors, cameras (e.g., RGB, UV, IR, intensity, depth, etc.), microphones, environmental sensors (e.g., temperature sensors, humidity sensors, light sensors, pressure sensors, etc.), etc.
[0096] At operation 608, the computing device may determine, based at least in part on the sensor data, obstacles associated with the first drivable area. The obstacles may be dynamic objects (e.g., pedestrians, animals, bicyclists, trucks, motorcycles, other vehicles, etc.), static objects (e.g., buildings, signs, curbs, debris, etc.), static obstructions (e.g., road markings, physical lane boundaries, road defects, construction zones, etc.), and / or other objects, which may be known or unknown. Additionally, the obstacles may be associated with the first drivable area, which may be a current lane of the vehicle 502 that the vehicle 502 is using to traverse the environment. In some examples, the obstacles may interrupt one or more actions (e.g., high-level navigation) associated with performing a mission, where navigating around the obstacles may enable the vehicle 502 to progress toward the mission.
[0097] At operation 610, the computing device can determine a first action associated with a first cost and a second action associated with a second cost. By way of example, and without limitation, the first action can be a dwell in lane action, and the second action can be an oncoming lane action. The first action can be associated with a first cost, and the second action can be associated with a second cost, where the first cost and the second cost can include costs such as a baseline cost, an obstacle cost, a lateral cost, a longitudinal cost, an area cost, a width cost, an indicator cost, an action switch cost, an action cost, and a utilization cost.
[0098] At operation 612, the computing device may determine a target trajectory based at least in part on the difference between the first cost and the second cost. The target trajectory may be a trajectory that enables the autonomous vehicle to traverse the obstacle using the oncoming driving lane.
[0099] At operation 614, a computing device of the autonomous vehicle can control the autonomous vehicle based at least in part on the target trajectory. As discussed above, the autonomous vehicle can use oncoming driving lanes to avoid objects that may obstruct the trajectory of the autonomous vehicle.
[0100] The various techniques described herein may be implemented in the context of computer-executable instructions or software, such as program modules, stored in computer-readable storage and executed by processors of one or more computers or other devices, such as those illustrated in the figures. Generally, program modules include routines, programs, objects, components, data structures, etc., that define operational logic for performing particular tasks or implement particular abstract data types.
[0101] Other architectures can be used to implement the described functionality and are intended to be within the scope of this disclosure. Additionally, although a particular distribution of responsibilities has been defined above for purposes of discussion, the various functions and responsibilities may be distributed and divided in different ways depending on the circumstances.
[0102] Likewise, software can be stored and distributed in a variety of ways, using different means, and the particular software storage and execution configurations described above can be varied in many different ways. Thus, software implementing the above techniques can be distributed on various types of computer-readable media, including but not limited to the specifically described forms of memory.
[0103] [Example of invention content] A: A system including one or more processors and one or more computer-readable media having computer-executable instructions stored thereon, the computer-executable instructions, when executed, causing the system to: receive map data associated with an environment; determine a first drivable area of the environment based at least in part on the map data, the first drivable area being associated with a first direction of travel; and determine a second drivable area adjacent to the first drivable area based at least in part on the map data, the second drivable area being associated with a second direction of travel that is different from the first direction of travel. receiving a reference trajectory for an autonomous vehicle to traverse the environment; receiving sensor data representing the environment from a sensor of the autonomous vehicle; determining obstacles associated with the first drivable area based at least in part on the sensor data; determining a first action associated with a first cost and a second action associated with a second cost based at least in part on the obstacles; determining a target trajectory for traversing at least a portion of the second drivable area based at least in part on a difference between the first cost and the second cost; and controlling the autonomous vehicle based at least in part on the target trajectory. A system that causes an operation including
[0104] B: the operations include determining, based at least in part on the sensor data, an initial drivable area associated with the first drivable area; and determining, based at least in part on the sensor data, an updated drivable area that includes the initial drivable area and the portion of the second drivable area; and wherein determining the target trajectory is further based at least in part on the updated drivable region.
[0105] C: The system described in paragraph A, wherein the operations further include determining an occlusion area based at least in part on the target trajectory and the sensor data, and determining a velocity associated with the target trajectory based at least in part on the occlusion area.
[0106] D: The system described in paragraph A, wherein the operation further includes determining a speed associated with the obstacle and determining that the speed is equal to or less than a speed threshold, and the obstacle is associated with at least one of a vehicle, a pedestrian, a road defect, or a construction zone.
[0107] E: A method comprising: receiving sensor data from a sensor associated with a vehicle; determining a first region of an environment, the first region associated with a first direction of movement; determining a second region adjacent the first region, the second region associated with a second direction of movement different from the first direction of movement; determining obstacles associated with the first region based at least in part on the sensor data; determining a target trajectory for traversing through the second region and passing the obstacles in the second region, the target trajectory being associated with an associated cost; and controlling the vehicle based at least in part on the cost and the target trajectory.
[0108] F: The method of paragraph E, further including: determining, based at least in part on the sensor data, an initial drivable area associated with the first area; and determining, based at least in part on the sensor data, an updated drivable area including the initial drivable area and a portion of the second area, wherein determining the target trajectory is further based at least in part on the updated drivable area.
[0109] G: The method of paragraph E, wherein the cost is a first cost, and the method further includes determining a second cost associated with a first alternative trajectory passing through the first area and a third cost associated with a second alternative trajectory associated with the second area, wherein the third cost is greater than the second cost.
[0110] H: The method of paragraph E, further comprising: determining an occlusion area based at least in part on the target trajectory and the sensor data; and determining a velocity associated with the target trajectory based at least in part on the occlusion area.
[0111] I: the occlusion area is a first occlusion area, the method including: determining a first velocity of the vehicle associated with the first occlusion area; determining a second occlusion area; and determining a second velocity associated with the second occlusion area. The method of paragraph H, further comprising:
[0112] J: The method of paragraph E, wherein the costs include at least one of: an area cost associated with the vehicle occupying the second area, the area cost being based at least in part on the second direction of movement being different from the first direction of movement; a width cost associated with the width of the second area; an indicator cost associated with a first amount of time that an indicator light of the vehicle is enabled; an action switch cost associated with one of initiating an action associated with crossing into the second area or terminating the action; an action cost associated with initiating the action; or a utilization cost associated with a second amount of time that the vehicle occupies the first area, the utilization cost being based at least in part on determining the target trajectory.
[0113] K: The method of paragraph E, further comprising: determining objects in the environment based at least in part on the sensor data; determining an estimated trajectory associated with the objects based at least in part on the sensor data; and determining the target trajectory based at least in part on the estimated trajectory.
[0114] L: The method of paragraph K, further comprising: determining a region width associated with the second region; and determining object attributes associated with the object, the object attributes including at least one of object width or object classification, and wherein determining the target trajectory is further based at least in part on the region width and the object attributes.
[0115] M: A non-transitory computer-readable medium storing instructions executable by a processor, which instructions, when executed, cause the processor to: receive sensor data from a sensor associated with a vehicle; determine, based at least in part on the sensor data, an obstacle associated with a first region in an environment, the first region associated with a first direction of movement; determine a desired trajectory that traverses through a second region adjacent to the first region, the second region associated with a second direction of movement opposite the first direction; and determine a cost associated with the desired trajectory, the desired trajectory associated with passing the obstacle by traversing the second region. and controlling the vehicle based at least in part on the cost and the target trajectory.
[0116] N: The non-transitory computer-readable medium of paragraph M, wherein the operations further include determining, based at least in part on the sensor data, an initial drivable area associated with the first area; and determining, based at least in part on the sensor data, an updated drivable area including the initial drivable area and a portion of the second area, and determining the target trajectory is further based at least in part on the updated drivable area.
[0117] O: The non-transitory computer-readable medium of paragraph M, wherein the cost is a first cost, and the operation further includes determining a second cost associated with an alternative trajectory that passes through the obstacle within the first region, the second cost being greater than the first cost.
[0118] P: The non-transitory computer-readable medium of paragraph M, wherein the operations further include: determining an occlusion area based at least in part on the target trajectory and the sensor data; and determining a velocity associated with the target trajectory based at least in part on the occlusion area.
[0119] Q: The non-transitory computer-readable medium of paragraph P, wherein the occlusion area is a first occlusion area, and the operation further includes determining a first speed of the vehicle associated with the first occlusion area, and determining a second occlusion area and a second speed associated with the second occlusion area.
[0120] R: The non-transitory computer-readable medium of paragraph M, wherein the costs include at least one of: an area cost associated with the vehicle occupying the second area, the area cost being based at least in part on the second direction of movement being different from the first direction of movement; a width cost associated with a width of the second area; an indicator cost associated with a first amount of time that an indicator light of the vehicle is enabled; an action switch cost associated with one of initiating an action associated with crossing into the second area or terminating the action; or a utilization cost associated with a second amount of time that the vehicle occupies the first area, the utilization cost being based at least in part on determining the target trajectory.
[0121] S: The non-transitory computer-readable medium of paragraph M, wherein the operations further include: determining objects in the environment based at least in part on the sensor data; determining an estimated trajectory associated with the objects based at least in part on the sensor data; and determining the target trajectory based at least in part on the estimated trajectory.
[0122] T: The non-transitory computer-readable medium of paragraph S, wherein the operations further include determining a region width associated with the second region and determining object attributes associated with the object, the object attributes including at least one of object width or object classification, and wherein determining the target trajectory is further based at least in part on the region width and the object attributes.
[0123] U: A system including one or more processors and one or more computer-readable media having computer-executable instructions stored thereon, the computer-executable instructions, when executed, causing the system to perform operations including: determining a state in which an autonomous vehicle is operating, the state including one or more of: a first state including a nominal operating state of the autonomous vehicle in which the autonomous vehicle is commanded according to a trajectory; a second state in which the autonomous vehicle is preparing to stop at a stop position; a third state in which the autonomous vehicle is within a threshold distance to the stop position or has been stopped at the stop position for a time period that meets or exceeds a threshold amount of time; a fourth state in which the autonomous vehicle is traveling within a threshold lateral distance of the trajectory at less than a threshold speed; and a fifth state in which the autonomous vehicle is commanded to traverse through a region of an environment associated with a direction of traffic opposite to the alternative trajectory, according to an alternative trajectory; and controlling the autonomous vehicle based at least in part on the state.
[0124] V: The system of paragraph U, wherein determining the state includes evaluating a finite state machine.
[0125] W: The system of paragraph U, wherein the states include the first state, and the operations further include receiving sensor data from a sensor associated with the autonomous vehicle; determining, based at least in part on the sensor data, at least one of an obstacle in the environment blocking the trajectory of the autonomous vehicle or a cost associated with the obstacle and the trajectory, the cost meeting or exceeding a threshold cost; and transitioning the autonomous vehicle from the first state to one or more of the second state or the fourth state based at least in part on one or more of the obstacle, the speed of the autonomous vehicle, or the sensor data.
[0126] X: The system described in paragraph U, wherein the states include a third state, and the actions further include determining a distance between a position of the autonomous vehicle and the stopped position, determining the time period associated with the autonomous vehicle being stopped, and transitioning the autonomous vehicle from the third state to the fourth state based at least in part on one or more of the distance being less than or equal to the threshold distance or the time period being greater than or equal to the threshold amount of time.
[0127] Y: The system described in paragraph U, wherein the states include a fourth state, and the actions further include receiving sensor data from a sensor associated with the autonomous vehicle, determining a level of visibility based at least in part on the sensor data and the sensor, and transitioning the autonomous vehicle from the fourth state to the fifth state based at least in part on the level of visibility.
[0128] Z: A method comprising: determining a state in which a vehicle is operating, the state including one or more of: a first state including a nominal operating state of the vehicle in which the vehicle is commanded according to a trajectory; a second state in which the vehicle is preparing to stop at a stop position; a third state in which the vehicle is within a threshold distance to the stop position or has stopped at the threshold position for a time period that meets or exceeds a threshold amount of time; a fourth state in which the vehicle is traveling within a threshold lateral distance of the trajectory at less than a threshold speed; and a fifth state in which the vehicle is commanded to traverse through a region of the environment associated with a direction of traffic opposite to the alternate trajectory according to an alternate trajectory; and controlling the vehicle based at least in part on the vehicle state.
[0129] AA: The method of paragraph Z, wherein determining the state includes evaluating a finite state machine.
[0130] AB: The method of paragraph Z, wherein the state includes the first state, the method further including: receiving sensor data from a sensor associated with the vehicle; determining, based at least in part on the sensor data, at least one of an obstacle in the environment blocking the trajectory of the vehicle or a cost associated with the obstacle and the trajectory, the cost meeting or exceeding a threshold cost; and transitioning the vehicle from the first state to one or more of the second state or the fourth state based at least in part on one or more of the obstacle, the speed of the vehicle, or the sensor data.
[0131] AC: The method of paragraph Z, wherein the state includes a third state, the method further including determining a distance between the location of the vehicle and the stopped location; determining the time period associated with the vehicle being stopped; and transitioning the vehicle from the third state to the fourth state based at least in part on one or more of the distance being less than or equal to the threshold distance or the time period being greater than or equal to the threshold amount of time.
[0132] AD: The method of paragraph Z, wherein the state includes a fourth state, the method further including receiving sensor data from a sensor associated with the vehicle, determining a level of visibility based at least in part on the sensor data and the sensor, and transitioning the vehicle from the fourth state to the fifth state based at least in part on the level of visibility.
[0133] AE: The method of paragraph Z, wherein the state includes a fourth state, the method further including receiving sensor data from a sensor associated with the vehicle, determining an obstacle in the environment that is blocking the trajectory of the vehicle based at least in part on the sensor data, and transitioning the vehicle from the fourth state to the second state based at least in part on the obstacle.
[0134] AF: the state includes a second state, and the method includes: determining the stopping position based at least in part on an obstacle in the environment blocking the trajectory of the vehicle; receiving sensor data from a sensor associated with the vehicle; and transitioning the vehicle from the second state to one or more of the third state or the fourth state based at least in part on the sensor data. The method of paragraph Z, further comprising:
[0135] AG: A non-transitory computer-readable medium storing instructions executable by one or more processors that, when executed, cause the one or more processors to perform operations including: determining a state in which a vehicle is operating, the state including one or more of: a first state including a nominal operating state of the vehicle in which the vehicle is commanded according to a trajectory; a second state in which the vehicle is preparing to stop at a stop position; a third state in which the vehicle is within a threshold distance to the stop position or has been stopped at the threshold position for a time period that meets or exceeds a threshold amount of time; a fourth state in which the vehicle is traveling within a threshold lateral distance of the trajectory at less than a threshold speed; and a fifth state in which the vehicle is commanded to traverse through a region of the environment associated with a direction of traffic opposite to the alternative trajectory, according to an alternative trajectory; and controlling the vehicle based at least in part on the vehicle state.
[0136] AH: The non-transitory computer-readable medium of paragraph AG, wherein determining the state includes evaluating a finite state machine.
[0137] The non-transitory computer-readable medium of paragraph AG, wherein the states include the first state and the actions further include receiving sensor data from a sensor associated with the vehicle; determining, based at least in part on the sensor data, at least one of an obstacle in the environment blocking the trajectory of the vehicle or a cost associated with the obstacle and the trajectory, the cost meeting or exceeding a threshold cost; and transitioning the vehicle from the first state to one or more of the second state or the fourth state based at least in part on one or more of the obstacle, the speed of the vehicle, or the sensor data.
[0138] AJ: The non-transitory computer-readable medium of paragraph AG, wherein the state includes the third state, and the action further includes determining a distance between the vehicle's position and the stopped position, determining the time period associated with the vehicle being stopped, and transitioning the vehicle from the third state to the fourth state based at least in part on one or more of the distance being less than or equal to the threshold distance or the time period being greater than or equal to the threshold amount of time.
[0139] AK: The non-transitory computer-readable medium of paragraph AH, wherein the state includes the fourth state, and the action further includes receiving sensor data from a sensor associated with the vehicle, determining a level of visibility based at least in part on the sensor data and the sensor, and transitioning the vehicle from the fourth state to the fifth state based at least in part on the level of visibility.
[0140] AL: The non-transitory computer-readable medium of paragraph AG, wherein the states include the fourth state and the actions further include receiving sensor data from a sensor associated with the vehicle, determining an obstacle in the environment that is blocking the trajectory of the vehicle based at least in part on the sensor data, and transitioning the vehicle from the fourth state to the second state based at least in part on the obstacle.
[0141] AM: The non-transitory computer-readable medium of paragraph AG, wherein the state includes the second state and the action further includes determining the stopping position based at least in part on an obstacle in the environment that is obstructing the trajectory of the vehicle, and transitioning the vehicle from the second state to the third state based at least in part on the stopping position.
[0142] AN: The non-transitory computer-readable medium of paragraph AG, wherein the state includes the second state and the action further includes determining the stopping position based at least in part on an obstacle in the environment blocking the trajectory of the vehicle; receiving sensor data from a sensor associated with the vehicle; determining, based at least in part on the sensor data, that a distance between an object and the vehicle meets or exceeds a distance threshold; and transitioning the vehicle from the second state to the fourth state.
[0143] Although the above example subject matter is described with respect to one particular embodiment, it should be understood in the context of this document that the example subject matter may also be implemented via a method, device, system, and / or computer-readable medium, and / or other embodiments. Additionally, any of Examples A-AN may be implemented alone or in combination with one or more of any other of Examples A-AN.
[0144] [Conclusion] One or more examples of the technology described herein have been described; however, various modifications, additions, permutations, and equivalents thereof fall within the scope of the technology described herein.
[0145] In the illustrative description, reference is made to the accompanying drawings, which form a part hereof, and which show, by way of illustration, specific examples of the claimed subject matter. It is understood that other examples may be used, and modifications or substitutions, such as structural changes, may be made. Such examples, modifications, or substitutions do not necessarily depart from the intended scope of the claimed subject matter. While steps herein may be presented in a particular order, in some cases the order may be changed, such that certain inputs are provided at different times or in a different order, without changing the functionality of the described systems and methods. Disclosed procedures may also be performed in a different order. In addition, the various computations described herein need not be performed in the order disclosed, and other examples using alternative orders of computation may be readily implemented. In addition to reordering, in some examples, computations may also be decomposed into subcomputations that yield the same result.
Claims
1. receiving sensor data from a sensor associated with the vehicle; determining a first region of the environment, the first region associated with a first direction of movement; determining a second region adjacent to the first region, the second region being associated with a second direction of travel different from the first direction of travel and associated with oncoming traffic; determining obstacles associated with the first region based at least in part on the sensor data; and determining a desired trajectory for traversing through the second region and passing through the obstacle, the desired trajectory being associated with a cost; determining a state in which the vehicle is operating, the state comprising: an approach state in which the vehicle determines information about the approaching obstacle by evaluating the environment; a stop preparation state that determines a stop position at which the vehicle should stop in response to the obstacle; a stopped state, determining whether the vehicle is within a threshold distance from the stopped position when the vehicle has been stopped for a threshold time or more; an attention proceeding state in which the vehicle determines an attention area that is a boundary area between the first area and the second area, where another vehicle traveling in the second area can avoid the vehicle, and then the vehicle proceeds into the attention area; and a progression state in which the vehicle progresses through the attention area in response to the target trajectory; and determining a transition from the state to a new state according to a state machine diagram, the state machine diagram indicating allowed transitions between the Approach State, the Prepare to Stop State, the Stop State, the Attention Progress State, and the Progress State; controlling the vehicle based at least in part on the cost, the target trajectory, and the new state; A method comprising:
2. determining an initial drivable area associated with the first area based at least in part on the sensor data; and determining an updated drivable area including the initial drivable area and a portion of the second area based at least in part on the sensor data; and Furthermore, determining the target trajectory is further based at least in part on the updated drivable region. The method of claim 1.
3. The cost is a first cost associated with the target trajectory selected from a plurality of candidate trajectories for the vehicle to avoid collision with the obstacle, and the method includes: determining a second cost associated with a first alternative trajectory passing through the first region, the first alternative trajectory being included in the plurality of candidate trajectories due to the vehicle remaining within the first region, and a third cost associated with a second alternative trajectory associated with the second region, the second alternative trajectory being included in the plurality of candidate trajectories due to the vehicle moving from the first region to the second region; Furthermore, The third cost is greater than the second cost. The method according to claim 1 or 2.
4. determining an occlusion region based at least in part on the target trajectory and the sensor data; determining a velocity associated with the target trajectory based at least in part on the occlusion region; The method of claim 1 , further comprising:
5. The cost is a region cost associated with the vehicle occupying the second region, the region cost being based at least in part on the second direction of travel being different from the first direction of travel; a width cost associated with the width of the second region, the width cost decreasing with increasing width of the second region; an indicator cost associated with a first amount of time that an indicator light of the vehicle is enabled, the indicator light providing an indicator to individuals in the environment of the vehicle's intent to perform an action, including a turn action or a lane change action, the indicator cost decreasing with increasing first amount of time; or a utilization cost associated with a second amount of time that the vehicle occupies the first region, the utilization cost being based at least in part on determining the target trajectory; at least one of 5. The method according to any one of claims 1 to 4.
6. determining objects in the environment based at least in part on the sensor data, the objects including the obstacles and dynamic and static objects other than the obstacles; determining an estimated trajectory associated with the object based at least in part on the sensor data; determining the target trajectory based at least in part on the estimated trajectory; The method of claim 1 , further comprising:
7. determining a region width associated with the second region; determining object attributes associated with the object, the object attributes including at least one of an object width or an object classification; Furthermore, determining the target trajectory is further based at least in part on the region width and the object attribute; The method of claim 6.
8. A computer program comprising coded instructions which, when executed on a computer, implements the method of any one of claims 1 to 7.
9. one or more processors; one or more non-transitory computer-readable media storing instructions executable by one or more processors; A system comprising: The instructions, when executed, cause the system to: receiving sensor data from a sensor associated with the vehicle; determining, based at least in part on the sensor data, an obstacle associated with a first region in an environment, the first region associated with a first direction of movement; determining a target trajectory that traverses through a second region adjacent to the first region, the second region being associated with a second direction of movement opposite the first direction of movement and associated with oncoming traffic; determining a cost associated with the desired trajectory, the desired trajectory being associated with passing through the obstacle by traveling through the second region; determining a state in which the vehicle is operating, the state comprising: an approach state in which the vehicle determines information about the approaching obstacle by evaluating the environment; a stop preparation state that determines a stop position at which the vehicle should stop in response to the obstacle; a stopped state, determining whether the vehicle is within a threshold distance from the stopped position when the vehicle has been stopped for a threshold time or more; an attention proceeding state in which the vehicle determines an attention area that is a boundary area between the first area and the second area, where another vehicle traveling in the second area can avoid the vehicle, and then the vehicle proceeds into the attention area; and a progression state in which the vehicle progresses through the attention area in response to the target trajectory; and determining a transition from the state to a new state according to a state machine diagram, the state machine diagram indicating allowed transitions between the Approach State, the Prepare to Stop State, the Stop State, the Attention Progress State, and the Progress State; controlling the vehicle based at least in part on the cost, the target trajectory, and the new state; Causes the system to perform operations, including
10. The operation is determining an initial drivable area associated with the first area based at least in part on the sensor data; and determining an updated drivable area including the initial drivable area and a portion of the second area based at least in part on the sensor data; and further comprising determining the target trajectory is further based at least in part on the updated drivable region. The system of claim 9.
11. The cost is a first cost associated with the target trajectory selected from a plurality of candidate trajectories for the vehicle to avoid collision with the obstacle, and the operation includes: determining a second cost associated with an alternative trajectory included in the plurality of candidate trajectories that passes through the obstacle in the first region by the vehicle remaining in the first region; further comprising The second cost is greater than the first cost.
11. A system according to claim 9 or 10.
12. The operation is determining an occlusion region based at least in part on the target trajectory and the sensor data; determining a velocity associated with the target trajectory based at least in part on the occlusion region; The system of any one of claims 9 to 11, further comprising:
13. The occluded area is a first occluded area, and the operation is determining a first velocity of the vehicle associated with the first occlusion area; determining a second occlusion area and a second velocity associated with the second occlusion area; The system of claim 12 further comprising:
14. The cost is a region cost associated with the vehicle occupying the second region, the region cost being based at least in part on the second direction of travel being different from the first direction of travel; a width cost associated with the width of the second region, the width cost decreasing with increasing width of the second region; an indicator cost associated with a first amount of time that an indicator light of the vehicle is enabled, the indicator light providing an indicator to individuals in the environment of the vehicle's intent to perform an action, including a turn action or a lane change action, the indicator cost decreasing with increasing first amount of time; or a utilization cost associated with a second amount of time that the vehicle occupies the first region, the utilization cost being based at least in part on determining the target trajectory; 14. The system according to claim 9, comprising at least one of:
15. The operation is determining a region width associated with the second region; determining objects in the environment based at least in part on the sensor data, the objects including the obstacles and dynamic and static objects other than the obstacles; determining object attributes associated with the object, the object attributes including at least one of an object width or an object classification; determining an estimated trajectory associated with the object based at least in part on the sensor data; determining the desired trajectory based at least in part on the estimated trajectory, the region width, and the object attributes; 15. The system of claim 9, further comprising:
Citation Information
Patent Citations
System and method for generating driving maneuvers
JP2015230547A
Traveling control device for vehicle
JP2019025932A
DP and QP based decision and planning for autonomous driving vehicles
US20190079523A1
Path estimation device and path estimation method
WO2018235159A1
Information processing device, vehicle, moving body, information processing method, and program
WO2019093190A1