WO2020092500A1 - Génération de trajectoires - Google Patents

Génération de trajectoires Download PDF

Info

Publication number
WO2020092500A1
WO2020092500A1 PCT/US2019/058760 US2019058760W WO2020092500A1 WO 2020092500 A1 WO2020092500 A1 WO 2020092500A1 US 2019058760 W US2019058760 W US 2019058760W WO 2020092500 A1 WO2020092500 A1 WO 2020092500A1
Authority
WO
WIPO (PCT)
Prior art keywords
trajectory
cost
vehicle
point
environment
Prior art date
Application number
PCT/US2019/058760
Other languages
English (en)
Inventor
Abishek Krishna Akella
Janek Hudecek
Original Assignee
Zoox, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/179,679 external-priority patent/US11048260B2/en
Priority claimed from US16/179,711 external-priority patent/US11208096B2/en
Application filed by Zoox, Inc. filed Critical Zoox, Inc.
Priority to CN201980071690.0A priority Critical patent/CN112955358A/zh
Priority to EP19805850.5A priority patent/EP3873783A1/fr
Priority to JP2021523870A priority patent/JP7411653B2/ja
Publication of WO2020092500A1 publication Critical patent/WO2020092500A1/fr

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/08Active safety systems predicting or avoiding probable or impending collision or attempting to minimise its consequences
    • B60W30/095Predicting travel path or likelihood of collision
    • B60W30/0953Predicting travel path or likelihood of collision the prediction being responsive to vehicle dynamic parameters
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/08Active safety systems predicting or avoiding probable or impending collision or attempting to minimise its consequences
    • B60W30/095Predicting travel path or likelihood of collision
    • B60W30/0956Predicting travel path or likelihood of collision the prediction being responsive to traffic or environmental parameters
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/18Propelling the vehicle
    • B60W30/18009Propelling the vehicle related to particular drive situations
    • B60W30/18163Lane change; Overtaking manoeuvres
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0011Planning or execution of driving tasks involving control alternatives for a single driving scenario, e.g. planning several paths to avoid obstacles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0013Planning or execution of driving tasks specially adapted for occupant comfort
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0015Planning or execution of driving tasks specially adapted for safety
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0021Planning or execution of driving tasks specially adapted for travel time
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2520/00Input parameters relating to overall vehicle dynamics
    • B60W2520/10Longitudinal speed
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2554/00Input parameters relating to objects
    • B60W2554/40Dynamic objects, e.g. animals, windblown objects
    • B60W2554/402Type
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2554/00Input parameters relating to objects
    • B60W2554/80Spatial relation or speed relative to objects

Definitions

  • autonomous vehicles utilize route planning methods, apparatuses, and systems to guide autonomous vehicles through congested areas with other moving vehicles (autonomous or otherwise), moving people, stationary buildings, etc.
  • generating a route may be computationally intensive and/or may not provide a safe or comfortable route for passengers.
  • FIG. 1 is a schematic diagram illustrating an example implementation of a system for generating a trajectory, generating a drivable area, and evaluating costs, in accordance with embodiments of the disclosure.
  • FIG. 2 is an illustration of a reference trajectory comprising regions of differing point densities, in accordance with embodiments of the disclosure.
  • FIG. 3 is an illustration of determining weight(s) for a cost associated with generating a target trajectory based on a reference trajectory when navigating around an obstacle, in accordance with embodiments of the disclosure.
  • FIG. 4 is an illustration of determining weight(s) for a cost associated with generating a target trajectory based on a reference trajectory when changing lanes, in accordance with embodiments of the disclosure.
  • FIG. 5A is an illustration of a dilated region, a collision region, and a safety region associated with a drivable area, in accordance with embodiments of the disclosure.
  • FIG. 5B is an illustration of regions associated with a drivable area based at least in part on a classification of an object in an environment and/or on a velocity of a vehicle in the environment, in accordance with embodiments of the disclosure.
  • FIG. 6 is an illustration of updating a region based on identifying an object such as a bicyclist proximate to the vehicle, in accordance with embodiments of the disclosure.
  • FIG. 7 depicts a block diagram of an example system for implementing the techniques described herein.
  • FIG. 8 depicts an example process for determining a point density for points associated with a reference trajectory and evaluating costs at the points to generate a target trajectory, in accordance with embodiments of the disclosure.
  • FIG. 9 depicts an example process for determining weights for points associated with a reference trajectory and evaluating, based on the weights, costs at the points to determine a target trajectory, in accordance with embodiments of the disclosure.
  • generating a route for an autonomous vehicle through an environment may be computationally intensive and/or may not provide a safe or comfortable route for passengers.
  • This application describes techniques for reducing a computational burden of planning a route through an environment, may improve an accuracy and precision of traj ectory generation, and/or may improve safety and comfort of routes for passengers.
  • the techniques described herein may reduce the computational burden by adaptively scaling a density of trajectory points (e.g., points along the trajectory used for determining associated costs and controls) based on the level of activity (e.g., cost(s) associated with curvature(s) and/or object(s)) along the route.
  • trajectory points By using a lower density of trajectory points for portions of the route that have lower activity (e.g., lower cost(s) associated with curvature(s) and/or fewer nearby object(s)), the computational intensity of trajectory generation can be reduced.
  • costs as referred to herein may be, as non-limiting examples, proportional with respect to the curvature or distance, an Ll, L2, quadratic, Huber, polynomial, exponential, function or the like, including any combination thereof.
  • the techniques described herein may increase accuracy and/or precision of trajectory generation by using a relatively higher density of trajectory points for portions of the route that have higher activity (e.g., higher cost(s) associated with curvature(s) and/or more nearby object(s)).
  • cost functions quantitatively balance goals of comfort, vehicle dynamics, safety, and the like.
  • Techniques discussed herein include adaptively scaling weights associated with one or more costs to enhance safety and/or comfort when determining the contours of a trajectory through an environment.
  • regions establishing buffers around objects in an environment can be increased or decreased in size depending on a classification of an object (e.g., pedestrians, vehicles, etc.) and/or depending on a velocity of the autonomous vehicle in the environment.
  • an autonomous vehicle can receive a reference trajectory representing an initial path or trajectory for the autonomous vehicle to follow in an environment.
  • a point density of points on the reference trajectory can be based at least in part on a cost associated with a curvature of the reference trajectory and/or on a cost associated with a distance between the reference trajectory and an obstacle in the environment.
  • a weight associated with various costs can be based on triggers such as jumps or discontinuities in a reference trajectory or obstacle costs meeting or exceeding a threshold.
  • a drivable area can represent a region in the environment where the autonomous vehicle can travel.
  • Boundaries of the drivable region can include information about object(s) in the environment and probabilistic distances between the boundaries and the object(s).
  • regions associated with the drivable area can be based on a classification of objects in the environment and/or on a velocity of the autonomous vehicle in the environment.
  • a target trajectory can be generated with respect to the reference trajectory based at least in part on evaluating one or more costs at points on the reference trajectory relative to the drivable area, whereby a density of points on the reference trajectory and weights associated with cost(s) can be determined as discussed herein.
  • a planning system of an autonomous vehicle can include one or more layers for generating and optimizing one or more trajectories for the autonomous vehicle to traverse an environment.
  • a first layer of the planning system can receive or determine a lane reference (also referred to as a reference trajectory), which may correspond to or be associated with a center of a road segment. Costs associated with points on the lane reference can be evaluated and optimized to generate a first target trajectory.
  • a state of the vehicle can be evaluated along each point on the lane reference (or reference trajectory) to evaluate changing states of the vehicle over time (e.g., sometimes referred to as a“rollout”).
  • the first target trajectory can be provided to a second layer of the planning system, whereby the first target trajectory is used as a reference trajectory. Costs associated with points on the reference trajectory can be evaluated and optimized to generate a second target trajectory. In some instances, the second target trajectory can be optimized further or can be used to control the autonomous vehicle. In some examples, the first layer can optimize the reference trajectory with respect to a distance between points and/or the second layer can optimize the reference trajectory with respect to a time between points, although other combinations are contemplated here.
  • a reference trajectory representing an initial path or trajectory for an autonomous vehicle to follow can be generated or received by a computing device of the autonomous vehicle.
  • the reference trajectory can correspond to a centerline of a road segment, although the reference trajectory can represent any path in an environment.
  • points on the reference trajectory can be established, selected, sampled, or otherwise determined based at least in part on a cost associated with a curvature value associated with the reference trajectory and/or based at least in part on a cost associated with a distance between a point associated with a region of the reference trajectory and one or more obstacles in the environment.
  • a region associated with a relatively high curvature value may represent a maneuver around an obstacle in the environment or may represent a maneuver such as turning a comer, parking, and the like.
  • a region of the reference trajectory can be relatively close to an obstacle in the environment. Accordingly, in the case of a high cost associated with a curvature and/or of a high cost associated with a distance to an obstacle, the region can be associated with a relatively higher point density of points on the reference trajectory.
  • one or more costs can be evaluated at the points on the reference trajectory to generate a target trajectory, whereby the autonomous vehicle can be controlled to follow the target trajectory.
  • dynamically varying the density of points on the reference trajectory based on a cost associated with a curvature of the reference trajectory and/or based on a cost associated with a distance between the point on the reference trajectory and a point associated with an obstacle can affect an amount of downstream processing in connection with generating a target trajectory.
  • a target trajectory can be generated with respect to the reference trajectory by evaluating one or more costs associated with points on the reference trajectory.
  • the one or more costs may include, but is not limited to a reference cost, an obstacle cost, a lateral cost, a longitudinal cost, and the like. Additional details of the one or more costs are provided below.
  • a cost can be associated with a weight that can increase or decrease a cost associated with a trajectory or a cost associated with a point of the trajectory.
  • the operations discussed herein can include decreasing a weight associated with a cost based on triggers such as discontinuities in a reference trajectory or one or more costs meeting or exceeding a threshold.
  • a weight associated with a reference cost can be decreased when the vehicle is navigating around a double-parked vehicle or while changing lanes.
  • a reference cost can comprise a cost associated with a difference between a point (also referred to as a reference point) on the reference trajectory and a corresponding point (also referred to as a point or a target point) on the target traj ectory , whereby the difference represents one or more difference in a yaw, lateral offset, velocity, acceleration, curvature, curvature rate, and the like.
  • decreasing a weight associated with a reference cost can reduce a penalty associated with the target trajectory being located a distance away from the reference trajectory, which can provide smoother transitions leading towards safer and/or more comfortable vehicle operations.
  • decreasing the reference costs associated with a portion of the reference trajectory can lead to increasing a buffer between the vehicle and an obstacle in the environment.
  • selecting a weight for a reference cost can be combined with other checks to provide safe and comfortable vehicle dynamics. For example, during a lane change action a target trajectory can be checked to maintain a lateral displacement less than a threshold distance given a distance traveled forward by the vehicle and/or given a period of travel time.
  • a vehicle may be constrained to traveling 1 meter in a lateral direction for every 2 meters the vehicle travels in a forward direction, thereby reducing a sideways force during the lane change.
  • the vehicle may further be constrained to traveling 1 meter in a lateral direction for a sliding window of time, such as two seconds.
  • a sliding window of time such as two seconds.
  • an obstacle cost can comprise a cost associated with a distance between a point on the reference trajectory or the target trajectory and a point associated with an obstacle in the environment.
  • the point associated with the obstacle can correspond to a point on a boundary of a drivable area or can correspond to a point associated with the obstacle in the environment.
  • an obstacle in the environment can include, but is not limited to a static object (e.g., building, curb, sidewalk, lane marking, sign post, traffic light, tree, etc.) or a dynamic object (e.g., a vehicle, bicyclist, pedestrian, animal, etc.).
  • a dynamic object can also be referred to as an agent.
  • a static object or a dynamic object can be referred to generally as an object or an obstacle.
  • a lateral cost can refer to a cost associated with steering inputs to the vehicle, such as maximum steering inputs relative to a velocity of the vehicle.
  • a longitudinal cost can refer to a cost associated with a velocity and/or acceleration of the vehicle (e.g., maximum braking and/or acceleration).
  • the vehicle can determine a drivable area that represents a region in the environment where the vehicle can travel.
  • a computing device of an autonomous vehicle can receive sensor data captured by one or more sensors of the autonomous vehicle and can determine one or more objects in the environment and/or attributes of the one or more objects in the environment.
  • the autonomous vehicle can utilize the object(s) and/or the attributes of the object(s) to determine which object(s) should be included in determining extents of the drivable area. Accordingly, the autonomous vehicle can plan a trajectory (e.g., a reference trajectory and/or the target trajectory) within the extents of the drivable area.
  • a trajectory e.g., a reference trajectory and/or the target trajectory
  • the drivable area can comprise a dilated region, a collision region, and/or a safety region.
  • the dilated region can be statically or dynamically generated with respect to a lane boundary to represent the largest extent of the drivable area, and can comprise information about object(s) in the environment and probabilistic distances between the boundaries and the object(s) and the reference and/or target trajectories.
  • the dilated region can represent a buffer associated with a boundary based at least in part on a distance (e.g., half of a width of a vehicle) plus some distance based on an uncertainty of sensor noise, which may be based at least in part on an object classification.
  • the collision region can represent a smaller drivable area than the dilated region (e.g., representing a greater distance between an obstacle and a boundary of the collision region) representing a region for the autonomous vehicle to avoid to further reduce a likelihood that the autonomous vehicle will collide with an object in the environment.
  • a cost associated with entering the collision region can be relatively high (relative to the safety region).
  • the safety region can represent a region smaller than the collision region and the dilated region to provide a buffer between the autonomous vehicle and the object in the environment.
  • a cost associated with entering the safety region can be lower than a cost associated with the collision region.
  • the collision region and/or the safety region can also be associated with information about object(s) in the environment and probabilistic distances between the boundaries and the object(s).
  • the autonomous vehicle can evaluate costs based at least in part on distance(s) between points on the reference trajectory and/or the target trajectory and one or more points associated with the regions, as discussed herein.
  • the cost(s) associated with the region(s) may vary. For example, a cost and/or weight associated with the safety region may be relatively less than a cost and/or weight associated with the collision region.
  • a size of the region(s) can be based at least in part on a classification type of objects that the regions represent or are otherwise associated with in the environment.
  • a safety region associated with a pedestrian may be associated with a first distance or size and a safety region associated with a vehicle may be associated with a second distance or size that is different than the first distance or size.
  • a safety region associated with the pedestrian can be larger than a safety region associated with a vehicle, which may result in the autonomous vehicle giving a larger buffer to the pedestrian than to the vehicle, assuming other factors are the same.
  • a size of the region(s) can be based at least in part on a velocity of the autonomous vehicle.
  • a safety region associated with a pedestrian may be associated with a first distance or size while the autonomous vehicle is traveling at a first velocity (or is predicted to travel at a reference point corresponding to the region) and may be associated with a second distance or size while the autonomous vehicle is traveling at a second velocity (or is predicted to travel at a reference point corresponding to the region) that is different than the first velocity.
  • a size of the safety region can be increased as the velocity of the autonomous vehicle increases, which may result in the autonomous vehicle giving a larger buffer to the pedestrian at a higher velocity, assuming other factors are the same.
  • varying a density of points associated with the reference trajectory can reduce an amount of processing by increasing a density of points in regions of high interest or in regions with high activity and by decreasing a density of points in regions of low interest or low activity. Further, because additional processing steps, such as evaluating costs, are based on the points on the reference trajectory, reducing a number of points to consider can represent a large reduction in overall processing without sacrificing accuracy or precision.
  • selecting weights associated with a cost can result in safer trajectories (e.g., by increasing a distance between an object and a vehicle in the environment) and/or can result in more comfortable trajectories (e.g., by reducing lateral acceleration during a lane change action).
  • varying a size of regions associated with a drivable area can improve safety by generating and/or modifying the regions based on a classification type and/or a velocity of the autonomous vehicle.
  • the techniques discussed herein can be used alone or in combination to improve safety and/or comfort in a variety of systems that generate trajectories. These and other improvements to the functioning of the computer are discussed herein.
  • the techniques described herein can be implemented in a number of ways. Example implementations are provided below with reference to the following figures. Although discussed in the context of an autonomous vehicle, the methods, apparatuses, and systems described herein can be applied to a variety of systems (e.g., a sensor system or a robotic platform), and are not limited to autonomous vehicles. In another example, the techniques can be utilized in an aviation or nautical context. Additionally, the techniques described herein can be used with real data (e.g., captured using sensor(s)), simulated data (e.g., generated by a simulator), or any combination of the two.
  • real data e.g., captured using sensor(s)
  • simulated data e.g., generated by a simulator
  • FIG. 1 is a schematic diagram illustrating an example implementation of a system for generating a trajectory, generating a drivable area, and evaluating costs, in accordance with embodiments of the disclosure. More specifically, FIG. 1 illustrates an example environment 100 in which a vehicle 102 is positioned. In the illustrated example, the vehicle 102 is driving in the environment 100, although in other examples the vehicle 102 may be stationary and/or parked in the environment 100. One or more objects, or agents, also are in the environment 100. For instance, FIG. 1 illustrates additional vehicles l04a and l04b and pedestrians l06a and l06b in the environment 100. Of course, any number and/or type of objects can additionally or alternatively be present in the environment 100.
  • the vehicle 102 can be an autonomous vehicle configured to operate according to 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 trip, with the driver (or occupant) not being expected to control the vehicle at any time.
  • the vehicle 102 can be configured to control all functions from start to stop, including all parking functions, it can be unoccupied.
  • the systems and methods described herein can be incorporated into any ground-home, airborne, or waterborne vehicle, including those ranging from vehicles that need to be manually controlled by a driver at all times, to those that are partially or fully autonomously controlled. Additional details associated with the vehicle 102 are described below.
  • the vehicle 102 can be associated with one or more sensor systems 108.
  • the sensor system(s) 108 can generate sensor data 110, which can be utilized by vehicle computing device(s) 112 associated with the vehicle 102 to recognize the one or more objects, e.g., the vehicles 104 and the pedestrians 106.
  • the sensor system(s) 108 can include, but is/are not limited to, light detection and ranging (LIDAR) sensors, radio detection and ranging (RADAR) sensors, Time of Flight sensors, ultrasonic transducers, sound navigation and ranging (SONAR) sensors, location sensors (e.g., global positioning system (GPS), compass, etc.), inertial sensors (e.g., inertial measurement units, accelerometers, magnetometers, gyroscopes, etc.), cameras (e.g., RGB, IR, intensity, depth, etc.), wheel encoders, microphones, environment sensors (e.g., temperature sensors, humidity sensors, light sensors, pressure sensors, etc.), etc.
  • LIDAR light detection and ranging
  • RADAR radio detection and ranging
  • SONAR sound navigation and ranging
  • location sensors e.g., global positioning system (GPS), compass, etc.
  • inertial sensors e.g., inertial measurement units, accelerometers, magnetometers,
  • the vehicle computing device(s) 112 can include a perception system, which can perform object detection, segmentation, and/or classification based at least in part on the sensor data 110 received from the sensor system(s) 108.
  • the perception system can detect the vehicles l04a and l04b and/or the pedestrians l06a and l06b in the environment 100 based on the sensor data 110 generated by the sensor system(s) 108.
  • the perception system can determine an extent of the vehicles l04a and l04b and/or the pedestrians l06a and l06b (e.g., height, weight, length, etc.), a pose of the vehicles l04a and l04b and/or the pedestrians l06a and l06b (e.g., x-coordinate, y-coordinate, z-coordinate, pitch, roll, yaw), etc.
  • the sensor system(s) 108 can continuously generate the sensor data 110 (e.g., in near-real time), which can be utilized by the perception system (and other systems of the vehicle computing device(s) 112).
  • the vehicle computing device(s) 112 can also include a drivable area component 114, a trajectory generation component 116, and a cost(s) component 118.
  • the trajectory generation component 116 and the cost(s) component 118 can be integrated into a single component or algorithm.
  • the drivable area component 114 can include functionality to generate and/or determine a drivable area 120, in accordance with the embodiments discussed herein.
  • the trajectory generation component 116 can include functionality to generate a reference trajectory 122 and/or a target trajectory 124 within the drivable area 120, in accordance with the embodiments discussed herein.
  • the cost(s) component can include functionality to evaluate one or more costs to generate the target trajectory 124 with respect to the reference trajectory 122.
  • the drivable area 120 may be a virtual area in the environment 100 in which the vehicle 102 can travel safely through the environment 100, for example, relative to objects including the vehicles l04a, l04b and the pedestrians l06a, l06b.
  • the drivable area 120 may be defined by virtual boundaries 126 and 128.
  • the drivable area 120 may have a variable width 130, for example, in the width or lateral direction of the vehicle 102.
  • FIG. 1 illustrates a first width l30a and a second width l30b, which collectively, and along with other widths at other positions in the drivable area 120, may be referred to as the width 130.
  • attributes of the virtual boundaries 126 and 128, including the width 130 may be determined based at least in part on the sensor data 110 and/or determinations made by the perception system.
  • the virtual boundaries 126 and 128 may be determined based on information about the objects in the environment 100, which may include information about semantic classifications and/or probabilistic models.
  • the virtual boundaries 126 and 128 may be encoded with information (such as lateral distance to the nearest object, semantic classification of the nearest object, related probabilities of such distance and classification, etc.).
  • the drivable area 120 can be generated in accordance with the techniques discussed in U.S. Patent Application Number 15/982,694, filed May 17, 2018, which is hereby incorporated by reference, in its entirety.
  • the vehicle computing device(s) 112 upon determining the drivable area 120, the vehicle computing device(s) 112 also may determine a reference trajectory 122 along which the vehicle 102 may travel through the environment 100.
  • the planner system can determine routes and/or trajectories to use to control the vehicle 102 based at least in part on the sensor data 110 received from the sensor system(s) 108 and/or any determinations made by the perception system. For instance, the planning system can evaluate one or more costs to generate the target trajectory 124 with respect to the reference trajectory 122 to navigate safely through the environment relative to the vehicle l04a, l04b and the pedestrians l06a, l06b.
  • FIG. 1 illustrates a scenario in which the vehicle 102 is travelling through the environment 100, generally in the direction of arrow 132.
  • the vehicle 102 is travelling on a road 134 having a first lane 136 and a second lane 138.
  • the vehicle 102 is in the first lane 136, behind the vehicle l04a, and, in the example, is travelling relatively faster than the vehicle l04a.
  • the vehicle l04a may be slowing down to turn left, to parallel park on the left side of the road 134, to drop off a passenger or delivery on the left shoulder of the road, or the like.
  • the vehicle 102 may determine the drivable area 120 as a precursor to determining whether the vehicle 102 can safely navigate around the slowing vehicle l04a. More specifically, the vehicle computing device(s) 112, using the sensor data 110, may determine information about objects in the environment 100, which may include the vehicle l04a, the vehicle l04b, the pedestrian l06a, the pedestrian l06b, and/or additional objects. For example, the vehicle computing device(s) 112, using the drivable area component 114, may fuse or combine information about each of the objects to configure the drivable area 120.
  • Such a drivable area 120 may, in turn, be used to determine the reference trajectory 122 and/or the target trajectory 124 (e.g., by providing constraints and/or boundaries) along which the vehicle 102 may travel.
  • the reference trajectory 122 can be generated prior to or substantially simultaneously (within technical tolerances) as the drivable area 120.
  • the drivable area 120 may have varying widths, for example, the first width l30a and a second width l30b, and those widths are determined at least in part based on information about the objects in the environment 100. For example, at a position immediately in front of the vehicle 102 in the direction illustrated by arrow 132, the width l30a generally spans the entire width of the road 134. At edges of the first lane 136 and the second lane 138, a slight offset relative to the shoulder may be provided, although such an offset may be excluded in other embodiments.
  • the drivable area 120 begins to narrow as the boundary 128 gradually moves away from the left shoulder until the drivable area 120 is completely confined in the right lane 138.
  • This narrowing of the drivable area 120 is a result of the presence and/or the relative deceleration of the vehicle l04a.
  • the drivable area 120 may further narrow, for example, to provide a minimum lateral offset relative to the vehicle l04a.
  • offsets may be provided proximate the first pedestrian l06a and the vehicle l04b, which is parked on the right shoulder of the road 134.
  • such a drivable area 120 may also be determined based on a predicted trajectory of objects, such as that of the pedestrian l06a. As a non-limiting example depicted in FIG. 1, the drivable area 120 indents slightly near the pedestrian l06a in anticipation of the pedestrian l06a continuing walking in the direction of travel 132. The length of such an indent may be based on, for example, the velocities of the vehicle 102 and the pedestrian l06a.
  • the width 130 of the drivable area 120 varies as a result of information about obj ects in the environment 100.
  • offsets are provided proximate the vehicle l04a, the vehicle l04b, and the pedestrian l06a. These offsets may serve to provide a safety margin or minimum distance of the vehicle 102 from the objects, as the vehicle 102 travels in the drivable area 120.
  • the offsets and/or the minimum distances may differ among and between objects in the environment 100.
  • semantic information about the objects may be used to determine appropriate offsets.
  • pedestrians may be associated with a first classification and vehicles may be associated with a second classification.
  • the first classification may correspond to a minimum offset larger than a minimum offset to which the second classification corresponds.
  • vehicles within the second classification may be further classified as static, as in the case of the vehicle l04b or dynamic, as in the case of the vehicle l04a.
  • An offset relative to the moving vehicle l04a may be greater than the offset associated with the parked vehicle l04b, for example.
  • probabilistic information about the objects may also or alternatively be used to determine the offsets. For example, there may be some uncertainty associated with the actions of the moving pedestrian l06a and/or the moving vehicle l04a, for example, because the pedestrian l06a or the driver of the vehicle 104a may change course. Probabilistic information may also be used to account for sensor inaccuracies, for example, associated with the sensor system(s) 108.
  • the drivable area 120 may allow for more efficient navigation around the vehicle 104a when compared with conventional navigation techniques.
  • the vehicle 102 may slow down as it approaches the vehicle l04a, for example, to maintain a minimum distance between the vehicle 102 and the vehicle l04a, and only upon stopping or slowing to a threshold speed may the vehicle 102 begin to seek out an alternative route around the vehicle l04a.
  • the vehicle 102 may idle in the lane 136 until the vehicle l04a turns, parks, moves, accelerates, or the like.
  • the drivable area 120 considers multiple objects as well as information about the objects to provide a more robust understanding of the environment 100.
  • This understanding may enhance decision making and/or allow for more effective and efficient control of the vehicle 102 as it travels through the environment 100.
  • such enhanced decision-making may allow the vehicle to traverse along the target trajectory 124, without the need to slow down behind the vehicle l04a and/or await additional decision making.
  • the drivable area 120 provides boundaries for a wide range of possible trajectories which may be employed to safely navigate a portion of a path. By providing such a wide range of safe trajectories, the vehicle 102 is able to quickly overcome any hazards, while incorporating information about all objects in a scene.
  • FIG. 1 illustrates a single example of using a drivable area to navigate in an environment.
  • the drivable area component 114 may be used in any environment to better navigate with respect to objects.
  • FIG. 2 is an illustration of a reference trajectory comprising regions of differing point densities, in accordance with embodiments of the disclosure. More specifically, FIG. 2 illustrates an example environment 200 in which the vehicle 102 is positioned. FIG. 2 further illustrates an obstacle 202 in the environment 200, whereby a reference trajectory 204 represents an initial path for the vehicle 102 to navigate around the obstacle 202 in the environment 200.
  • the obstacle 202 corresponds to the vehicle l04a of FIG. 1, although the obstacle 202 may represent any static object or dynamic object in the environment 200.
  • the reference trajectory 204 may correspond to the reference trajectory 122 of FIG. 1, although the reference trajectory 204 may represent any path or trajectory in the environment 200.
  • the trajectory generation component 116 (or another component of the vehicle computing device(s) 112) can determine a density of points associated with various regions of the reference traj ectory 204.
  • the vehicle computing device(s) 112 can identify region(s) of the reference traj ectory 204 corresponding to regions of interest or corresponding to regions of high activity.
  • the region(s) can be identified based at least in part on a cost associated with a curvature value associated with the reference trajectory 204 and/or based at least in part on a cost associated with a distance between a point on the reference trajectory 204 and a distance to a point associated with an obstacle in the environment 200.
  • the reference trajectory 204 includes portions 206, 208, 210, and 226, although the reference trajectory 204 can include any number of portions.
  • the portion 206 can be associated with a point density 212
  • the portion 208 can be associated with a point density 214
  • the portion 210 can be associated with a point density 216
  • the portion 226 can be associated with a point density 228.
  • the point density 214 can be higher than the point density 212 and/or 216 because a cost associated with a curvature value associated with the portion 208 is higher than a curvature value associated with the portions 206 and/or 210.
  • the point density 228 can be higher than the point density 212 and/or 217 because a cost associated with a distance between the portion 226 and the obstacle 202 is smaller than a distance between the portions 206, 210 and the obstacle 202.
  • the point density 214 associated with the portion 208 can be based at least in part on a cost associated with a curvature value associated with the portion 208 and the point density 228 associated with the portion 226 can be based at least in part on a cost associated with a distance between the portion 226 and the obstacle 202.
  • the point density 214 can correspond to a density of points in space or time.
  • a first layer of a planning system may optimize a trajectory based on a distance (which may be a Euclidian distance, length along an inertial reference, etc.) between points while a second layer of a planning system may optimize the traj ectory based on a time period between points, or vice versa.
  • the difference 218 between adjacent reference points 220 and 222 can represent a distance in space (e.g., 5 cm, 10 cm, 50 cm, 1 m, and the like) or a distance in time (e.g., 0.05 seconds, 0.1 seconds, 0.2 seconds, 0.5 seconds, 1 second, and the like).
  • the difference 218 between the adjacent points 220 and 222 can be smaller than a difference 224 between adjacent reference points associated with the portion 206.
  • FIG. 3 is an illustration of determining weight(s) associated with a cost associated with generating a target trajectory based on a reference trajectory when navigating around an obstacle, in accordance with embodiments of the disclosure. More specifically, FIG. 3 illustrates an example environment 300 in which the vehicle 102 is positioned. FIG. 3 further illustrates an obstacle 302 in the environment 300, whereby a reference trajectory 304 represents an initial path for the vehicle 102 to navigate around the obstacle 302 in the environment 200.
  • the reference trajectory 304 can correspond to a maneuver for the vehicle 102 to navigate around a double-parked vehicle in the environment 300.
  • the obstacle 302 may represent any static object or dynamic object in the environment 300.
  • the reference trajectory 304 may represent any path in the environment 300.
  • the vehicle computing device(s) 112 can evaluate one or more costs at reference points 306 and 308 to generate a target trajectory 310 having points 312 and 314 corresponding to the reference points 306 and 308, respectively.
  • a dotted line between points on the reference trajectory 304 and the target trajectory 310 indicates corresponding points.
  • each point on the reference trajectory 304 can be associated with a corresponding point on the target trajectory 310, although in some cases the target trajectory 310 can be associated with points that do not necessarily correspond to point(s) on the reference trajectory.
  • a point (e.g., the points 312, 314, and 326) on the target trajectory 310 can be orthogonal to a corresponding reference point (e.g., the reference points 306, 308, and 324, respectively) on the reference trajectory 304, based at least in part on a curvature value at the reference trajectory 304.
  • the one or more costs may include, but is not limited to a reference cost, an obstacle cost, a lateral cost, a longitudinal cost, and the like.
  • a cost can be associated with a weight (e. g. , weights 316 and 318) that can increase or decrease a cost associated with a trajectory or a cost associated with a point of the trajectory.
  • the vehicle computing device(s) 112 can perform operations to decrease a weight associated with a cost based on actions or maneuvers to be performed by the vehicle.
  • a start trigger 320 can represent a condition causing weights associated with cost(s) to be varied, as discussed herein.
  • a trigger can correspond to obstacle costs meeting or exceeding a threshold (e.g., discussed in context of FIG. 3) and/or jumps or discontinuities in a reference trajectory (e.g., discussed in the context of FIG. 4).
  • a threshold e.g., discussed in context of FIG. 3
  • a reference trajectory e.g., discussed in the context of FIG. 4
  • the start trigger can be initiated along the reference trajectory 304 based at least in part on a distance or time in relation to the reference point 324.
  • An end trigger 322 can represent a period of time or distance associated with the cost(s) (e.g., an obstacle cost) associated with the reference trajectory 304 being below a threshold value.
  • a weight associated with the points of the reference trajectory 304 and/or the target trajectory 310 can be adjusted to increase or decrease the weights.
  • a weight associated with the reference point 306 can correspond to the weight 316 and a weight associated with the reference point 308 can correspond to the weight 318. Accordingly, evaluating costs associated with the points 306 and 308 can be based at least in part on the weights 316 and 318, respectively.
  • the vehicle By reducing the weight associated with the reference cost when passing the obstacle 302, the vehicle is better able to explore trajectories which may be further from the reference trajectory 304 to overcome the obstacle 302.
  • a point 326 corresponding to the reference point 324 is allowed to be located further from the reference point 324 to safely overcome the obstacle 302.
  • the weights associated with the reference points 306, 308, and 324 can be used to determine the points 312, 314, and 326 respectively, and accordingly, can determine the contours of the target trajectory 310.
  • a weight associated with a reference cost can be decreased when the vehicle is navigating around the obstacle 302.
  • a reference cost can comprise a cost associated with a difference between a point (e.g., the reference point 308) on the reference trajectory 304 and a corresponding point (e.g., the point 314) on the target trajectory 310.
  • the difference can represent one or more difference in a yaw, lateral offset, velocity, acceleration, curvature, curvature rate, and the like.
  • decreasing a weight associated with a reference cost can reduce a penalty associated with the target trajectory 310 being located a distance away from the reference trajectory 304, which can provide smoother transitions leading towards safer and/ or more comfortable vehicle operations.
  • decreasing the reference costs associated with a portion of the reference traj ectory 304 associated with the start trigger 320 and the end trigger 322 can lead to increasing a buffer between the vehicle 102 and the obstacle 302 in the environment 300 and/or otherwise allowing the vehicle 102 to explore trajectories not previously available.
  • FIG. 4 is an illustration of determining weight(s) associated with a cost associated with generating a target trajectory based on a reference trajectory when changing lanes, in accordance with embodiments of the disclosure. More specifically, FIG. 4 illustrates an example environment 400 in which the vehicle 102 is positioned. FIG. 4 further illustrates an obstacle 402 in the environment 400, whereby a reference trajectory 404 (comprising portions 404A and 404B) represents an initial path or trajectory for the vehicle 102 to change lanes to navigate around the obstacle 402 in the environment 400. In some examples, the obstacle 402 corresponds to the vehicle l04a of FIG. 1, although the obstacle 402 may represent any static object or dynamic object in the environment 200.
  • a reference trajectory 404 comprising portions 404A and 404B
  • the reference trajectory 404 may represent an alternative implementation compared to the reference trajectory 122 of FIG. 1 (e.g., representing a lane change action from the lane 136 to the lane 138).
  • the reference traj ectory 404 may represent any path or traj ectory in the environment 400.
  • the vehicle computing device(s) 112 can evaluate one or more costs at a reference point 406 to generate a target trajectory 408 having a point 410 corresponding to the reference point 306.
  • a dotted line between the reference point 406 and the point 410 indicates a corresponding point.
  • FIG. 4 Only one point on the reference trajectory 404 is shown in FIG. 4, it can be understood that a plurality of points on the reference trajectory 404 can correspond to a plurality of corresponding points on the target trajectory 408.
  • the one or more costs may include, but is not limited to a reference cost, an obstacle cost, a lateral cost, a longitudinal cost, and the like.
  • a cost can be associated with a weight (e.g., weights 412 and 414) that can increase or decrease a cost associated with a trajectory or a cost associated with a point of the trajectory.
  • the vehicle computing device(s) 112 can perform operations to decrease a weight associated with a cost based on actions or maneuvers to be performed by the vehicle.
  • a start trigger 416 can represent a jump or discontinuity of the reference trajectory 404, which can represent a lane change action to change from the lane 136 to the lane 138 in the environment 400.
  • a curve 418 can represent the varying weight(s) of cost(s) over the reference trajectory 404B, whereby a shape of the curve 418 can be adjusted based on a lateral distance for the vehicle 102 to traverse with respect to a distance and/or time.
  • a weight associated with the points of the reference trajectory 404 and/or the target trajectory 408 can be adjusted to increase or decrease the weight.
  • the curve 418 can represent a linear function, quadratic function, stepwise function, and the like, associated with the weight.
  • a weight associated with the reference point 406 can correspond to the weight 414.
  • evaluating cost(s) associated with the point 406 can be based at least in part on the weight 414.
  • evaluating the costs can be performed for a plurality of points associated with a plurality of weights, as discussed herein.
  • a lane change action can be associated with other constraints to provide a smooth and comfortable behavior of the vehicle 102.
  • a detail of the target trajectory 408 is illustrated as a detail 420 of a portion of the target trajectory 422.
  • the vehicle computing device(s) 112 can determine whether a lateral displacement 426 of the vehicle 102 is less than a threshold amount given a longitudinal displacement 428.
  • the lateral displacement 426 may be 1 meter (or N meters) and the longitudinal displacement 428 may be 5 meters (or M meters).
  • the vehicle computing device(s) 112 can determine whether a lateral displacement 432 of the vehicle 102 is less than a threshold amount given a time period 434.
  • the lateral displacement 432 may be 1 meter (or N’ meters) and the longitudinal displacement 428 may be 2 seconds (or S seconds).
  • a shape of the curve 418 can be adjusted (e.g., to vary weights more or less rapidly) to ensure that the lateral displacement 426 and 432 of the vehicle 102 is below a threshold.
  • the vehicle computing device(s) 112 can vary weight(s) associated with cost(s) and can ensure that a lateral displacement of the vehicle 102 is less than a threshold amount given a distance to travel and given a time period to determine the target trajectory 408 for the vehicle 102 to follow as the vehicle 102 traverses the environment 400.
  • FIG. 5A is an illustration of a dilated region, a collision region, and a safety region associated with a drivable area, in accordance with embodiments of the disclosure.
  • FIG. 5 illustrates an example environment 500 in which the vehicle 102 is positioned in a lane 502 of a road 504.
  • FIG. 5 further illustrates a pedestrian 106a traversing the environment 500 and the vehicle l04a parked on the side of the road 504.
  • the vehicle computing device(s) 112 can determine a drivable area 506 comprising a plurality of regions, as illustrated in a detail 508.
  • the drivable area 506 comprises a dilated region 510, a collision region 512, and a safety region 514.
  • the dilated region 510 can represent the largest extent of the drivable area 506 and can comprise information about object(s) (e.g., l06a and l04a) in the environment 500 and probabilistic distances between the boundaries (e.g., defined by the regions 510, 512, and 514) and the object(s).
  • the collision region 512 can represent a drivable region smaller than the dilated region 510 representing a region for the vehicle 102 to avoid to further reduce a likelihood that the vehicle 102 will collide with the pedestrian l06a and the vehicle l04a in the environment 500.
  • the safety region 514 can represent a drivable region smaller than the collision region 512 and the dilated region 510 to provide a buffer between the vehicle 102 and the pedestrian l06a and the vehicle l04a in the environment 500.
  • the collision region 512 and/or the safety region 514 can also be associated with information about object(s) in the environment and probabilistic distances between the boundaries and the object(s).
  • the vehicle 102 can evaluate costs based at least in part on distance(s) between points on a reference trajectory 516 (and/or on a target trajectory) and one or more points associated with the regions 510, 512, and/or 516, as discussed herein.
  • the cost(s) associated with the region(s) 510, 512, and 514 may vary. For example, a cost associated with the safety region 514 may be relatively less than a cost associated with the collision region 512, and vice versa.
  • FIG. 5B is an illustration of regions associated with a drivable area based at least in part on a classification of an object in an environment and/or on a velocity of a vehicle in the environment, in accordance with embodiments of the disclosure.
  • An example 518 illustrates the detail 508 of FIG. 5 A with the dilated region 510, the collision region 512, and the safety region 514.
  • the safety region 514 represents a safety region while the vehicle 102 is associated with a velocity Vi.
  • the safety region 514* represents a safety region while the vehicle 102 is associated with a velocity V 2 .
  • the safety regions 514 and 514* can be associated with information about object(s) in the environment 500 (e.g., classification information) and probabilistic distances between the boundaries and the object(s), a size of different portions of the safety regions 514 and 514* can vary based on classification information of the different portions and a velocity of the vehicle 102.
  • a portion 520 can represent a portion of the safety regions 514 and 514* associated with the pedestrian l06a
  • the portion 522 can represent a portion of the safety regions 514 and 514* associated with the vehicle l04a.
  • Portions 524, 526, and 528 may not be associated with the objects l06a or l04a, or may be associated with the extents of the road 504.
  • a size of the safety regions 514 and 514* can be based at least in part on classification information of the associated object and/or on a velocity of the vehicle 102 in the environment.
  • a distance 530 associated with the portion 520 of the safety region 514* can represent an increase in a size of the safety region 514 for the portion associated with the pedestrian l06a while the vehicle 102 is at a velocity V 2 .
  • a distance 532 associated with the portion 522 of the safety region 514* can represent an increase in a size of the safety region 514 for the portion associated with the vehicle l04a while the vehicle 102 is at a velocity V 2 .
  • the distance 530 can be larger than the distance 532.
  • the velocity V 2 can be higher than the velocity V i.
  • varying a size of the safety regions 514 and 514* can further include modifying an extent of the drivable area to generate a modified drivable area.
  • the portions 524, 526, and/or 528 of the safety region 514 that are not associated with the pedestrian 106a or the vehicle 104a may or may not change based on a velocity of the vehicle 102.
  • FIG. 6 is an illustration of updating a region based on identifying an object such as a bicyclist proximate to the vehicle, in accordance with embodiments of the disclosure.
  • FIG. 6 illustrates an example environment 600 in which the vehicle 102 is positioned in a lane 602 of a road 604.
  • FIG. 6 further illustrates a pedestrian l06a traversing the environment 500, the vehicle l04a parked on the side of the road 604, and a bicyclist 606 (e.g., in a bicycle lane) proximate to the vehicle 102.
  • a detail 608 illustrates the vehicle 102, the bicyclist 606 proximate to the vehicle 102, and a drivable area 610 comprising a plurality of regions.
  • a lane boundary 612 and a lane bias region 614 are illustrated in FIG. 6, although it may be understood that additional regions may comprise a dilated region, a collision region, a safety region, and the like.
  • the vehicle computing device(s) 112 can determine the lane bias region 6l4based at least in part on the bicyclist 606 (and/or a bicycle lane, parking lane, parked car, and the like) being proximate to the vehicle 102 in the environment 600.
  • the vehicle computing device(s) 112 can determine a predicted trajectory for the bicyclist 606 to determine that the bicyclist 606 may pass the vehicle 102, and accordingly, can expand a size of the lane boundary 612 to generate the lane bias region 614. Accordingly, for a given reference trajectory 616, the vehicle computing device(s) 112 can generate a target trajectory 618 that biases a location of the vehicle 102 away from the bicyclist 606 (and/or bicycle lane) to allow the bicyclist to pass the vehicle 102 with more comfortable space.
  • a determination of whether to generate the lane bias region 614 can be based at least in part on one or more of a velocity of the bicyclist 606, a velocity of the bicyclist 606 relative to a velocity of the vehicle 102, a velocity of the vehicle 102 being below a threshold, a position of the bicyclist 606 in the lane 602 of the road 604, a position of the vehicle 102 and/or information from a map, and the like.
  • the vehicle computing device(s) 112 can evaluate cost(s) based on the lane bias region 614 to generate the target trajectory 620 that provides additional space for the bicyclist 606 to pass the vehicle 102.
  • FIG. 7 depicts a block diagram of an example system 700 for implementing the techniques described herein.
  • the system 700 can include a vehicle 702.
  • the vehicle 702 can include a vehicle computing device 704, one or more sensor systems 706, one or more emitters 708, one or more communication connections 710, at least one direct connection 712, and one or more drive systems 714.
  • the vehicle computing device 704 can include one or more processors 716 and memory 718 communicatively coupled with the one or more processors 716.
  • the vehicle 702 is an autonomous vehicle; however, the vehicle 702 could be any other type of vehicle.
  • the memory 718 of the vehicle computing device 704 stores a localization component 720, a perception component 722, one or more maps 724, one or more system controllers 726, and a planning component 728 comprising the drivable area component 114, the trajectory generation component 116, the cost(s) component 118, a safety region component 730, a trajectory sampling component 732, and a weight(s) component 734. Though depicted in FIG.
  • the localization component 720, the perception component 722, the one or more maps 724, the one or more system controllers 726, the planning component 728, the drivable area component 114, the trajectory generation component 116, the cost(s) component 118, the safety region component 730, the trajectory sampling component 732, and the weight(s) component 734 may additionally, or alternatively, be accessible to the vehicle 702 (e.g., stored remotely).
  • the localization component 720 can include functionality to receive data from the sensor system(s) 706 to determine a position and/or orientation of the vehicle 702 (e.g., one or more of an x-, y-, z-position, roll, pitch, or yaw).
  • the localization component 720 can include and/or request / receive a map of an environment and can continuously determine a location and/or orientation of the autonomous vehicle within the map.
  • the localization component 720 can utilize SLAM (simultaneous localization and mapping), CLAMS (calibration, localization and mapping, simultaneously), relative SLAM, bundle adjustment, non-linear least squares optimization, or the like to receive image data, LIDAR data, RADAR data, IMU data, GPS data, wheel encoder data, and the like to accurately determine a location of the autonomous vehicle.
  • the localization component 720 can provide data to various components of the vehicle 702 to determine an initial position of an autonomous vehicle for generating a trajectory and/or for generating map data, as discussed herein.
  • the perception component 722 can include functionality to perform object detection, segmentation, and/or classification.
  • the perception component 722 can provide processed sensor data that indicates a presence of an entity that is proximate to the vehicle 702 and/or a classification of the entity as an entity type (e.g., car, pedestrian, cyclist, animal, building, tree, road surface, curb, sidewalk, unknown, etc.).
  • the perception component 722 can provide processed sensor data that indicates one or more characteristics associated with a detected entity (e.g., a tracked object) and/or the environment in which the entity is positioned.
  • characteristics associated with an entity can 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., a roll, pitch, yaw), an entity type (e.g., a classification), a velocity of the entity, an acceleration of the entity, an extent of the entity (size), etc.
  • Characteristics associated with the environment can include, but are not limited to, a presence of another entity in the environment, a state of another entity in the environment, a time of day, a day of a week, a season, a weather condition, an indication of darkness/light, etc.
  • the memory 718 can further include one or more maps 724 that can be used by the vehicle 702 to navigate within the environment.
  • a map can be any number of data structures modeled in two dimensions, three dimensions, or N-dimensions that are capable of providing information about an environment, such as, but not limited to, topologies (such as intersections), streets, mountain ranges, roads, terrain, and the environment in general.
  • a map can include, but is not limited to: texture information (e.g., color information (e.g., RGB color information, Lab color information, HSV/HSL color information), and the like), intensity information (e.g., LIDAR information, RADAR information, and the like); spatial information (e.g., image data projected onto a mesh, individual“surfels” (e.g., polygons associated with individual color and/or intensity)), reflectivity information (e.g., specularity information, retroreflectivity information, BRDF information, BSSRDF information, and the like).
  • texture information e.g., color information (e.g., RGB color information, Lab color information, HSV/HSL color information), and the like
  • intensity information e.g., LIDAR information, RADAR information, and the like
  • spatial information e.g., image data projected onto a mesh, individual“surfels” (e.g., polygons associated with individual color and/or intensity)
  • reflectivity information
  • the map can be stored in a tiled format, such that individual tiles of the map represent a discrete portion of an environment, and can be loaded into working memory as needed, as discussed herein.
  • the one or more maps 724 can include at least one map (e.g., images and/or a mesh).
  • the vehicle 702 can be controlled based at least in part on the maps 724. That is, the maps 724 can be used in connection with the localization component 720, the perception component 722, and/or the planning component 728 to determine a location of the vehicle 702, identify objects in an environment, and/or generate routes and/or trajectories to navigate within an environment.
  • the one or more maps 724 can be stored on a remote computing device(s) (such as the computing device(s) 738) accessible via network(s) 736.
  • multiple maps 724 can be stored based on, for example, a characteristic (e.g., type of entity, time of day, day of week, season of the year, etc.). Storing multiple maps 724 can have similar memory requirements, but increase the speed at which data in a map can be accessed.
  • the vehicle computing device 704 can include one or more system controllers 726, which can be configured to control steering, propulsion, braking, safety, emitters, communication, and other systems of the vehicle 702. These system controller(s) 726 can communicate with and/or control corresponding systems of the drive system(s) 714 and/or other components of the vehicle 702.
  • the planning component 728 can determine a path for the vehicle 702 to follow to traverse through an environment. For example, the planning component 728 can determine various routes and trajectories and various levels of detail. For example, the planning component 728 can determine a route to travel from a first location (e.g., a current location) to a second location (e.g., atarget location). For the purpose of this discussion, a route can be a sequence of waypoints for travelling between two locations. As non-limiting examples, waypoints include streets, intersections, global positioning system (GPS) coordinates, distributed points along a line connecting the first location to the second location constrained by a map and/or map information, etc.
  • GPS global positioning system
  • the planning component 728 can generate an instruction for guiding the autonomous vehicle along at least a portion of the route from the first location to the second location.
  • the planning component 728 can determine how to guide the autonomous vehicle from a first waypoint in the sequence of waypoints to a second waypoint in the sequence of waypoints.
  • the instruction can be a trajectory, or a portion of a trajectory.
  • multiple trajectories can be substantially simultaneously generated (e.g., within technical tolerances) in accordance with a receding horizon technique, wherein one of the multiple trajectories is selected for the vehicle 702 to navigate.
  • the planning component 728 can include a prediction component to generate predicted trajectories of objects in an environment.
  • a prediction component can generate one or more predicted trajectories for vehicles, pedestrians, animals, and the like within a threshold distance from the vehicle 702.
  • a prediction component can measure a trace of an object and generate a trajectory for the object based on observed and predicted behavior. Examples of generating predicted trajectories are discussed in U.S. Patent Application Numbers 16/151,607, filed October 4, 2018 and 15/982,658, filed May 17, 2018. Application Numbers 16/151,607 and 15/982,658 are herein incorporated by reference, in their entirety.
  • the drivable area component 114 can include functionality to generate and/or determine a drivable area in an environment.
  • the drivable area component 114 can receive sensor data from the sensor system(s) 706 and/or can receive information about obstacles and/or objects in the environment from the perception component 722. Based at least in part on the sensor data and/or on information associated with the objects (e.g., location, pose, extent, classification, velocity, predicted trajectories, etc.) the drivable area component 114 can determine a drivable area comprising one or more regions, including but not limited to a dilated region, a collision region, and a safety region, as discussed herein.
  • the drivable area component 114 can determine an extent of the region(s) based on a classification type associated with objects proximate to the region(s) and/or based on a velocity of the vehicle 702. Additional details of the drivable area component 114 are discussed throughout this disclosure.
  • the trajectory generation component 116 can include functionality to generate a reference trajectory and/or a target trajectory within the drivable area.
  • the trajectory generation component 116 can receive or determine a reference traj ectory, which can correspond to a centerline of a road segment or other path through an environment.
  • the trajectory generation component 116 can generate segments that can correspond to a motion primitive generated in accordance with the techniques discussed in U.S. Patent Application Number 15/843,596, filed December 15, 2017. Further, a segment defined by a desired curvature can be generated in accordance with the techniques discussed in U.S. Patent Application Number 15/843,512, filed December 15, 2017. Application Numbers 15/843,596 and 15/843,512 are herein incorporated by reference, in their entirety. Additional details of the trajectory generation component 116 are discussed throughout this disclosure.
  • the cost(s) component 118 can include functionality to evaluate one or more costs to generate a target trajectory with respect to the reference trajectory.
  • the one or more costs may include, but is not limited to, a reference cost, an obstacle cost, a lateral cost, and longitudinal cost, and the like.
  • one or more costs can be evaluated in accordance with the techniques discussed in U.S. Patent Application Number 16/147,492, filed September 28, 2018, which is hereby incorporated by reference, in its entirety. Additional details of the cost(s) component 118 are discussed throughout this disclosure.
  • the safety region component 730 can include functionality to generate an updated safety region based at least in part on a classification of objects in an environment and/or on a velocity of the vehicle 702 traversing the environment. As illustrated in FIGS. 5 A, 5B, and 6, the safety region component 730 can determine a size of a safety region (or other region), which can be used by the cost(s) component 118 in generating a target trajectory. Additional details of the safety region component 730 are discussed throughout this disclosure.
  • the trajectory sampling component 732 can include functionality to determine a point density for portions of the reference trajectory based at least in part on a cost associated with a curvature value associated with a portion of the reference trajectory and/or based at least in part on a cost associated with a distance between a point on the reference trajectory and a point associated with an obstacle in the environment. As illustrated in FIG. 2, the trajectory sampling component 732 can determine a density of points for a reference trajectory when a cost associated with a curvature value is relatively high and/or when cost associated with a distance between a point on the reference trajectory and a point associated with an obstacle in the environment is relatively high (e.g., indicating that an object in the environment is located relatively close to a reference trajectory).
  • the weight(s) component 734 can include functionality to select or determine weight(s) associated with evaluating one or more cost functions when generating a target trajectory. For example, and as illustrated in FIGS. 3 and 4, an action start (such as the start of a double-parked vehicle action or a lane change action) can vary a weight of a cost in order to allow the planning component 728 generate a target trajectory with more flexibility for the vehicle 702 to traverse the environment.
  • weight(s) can be adjusted in combination with other operations (e.g., when expanding a lane boundary based on a proximity of a bicyclist, bike lane, parking lane, parked car, and the like). Additional details of the weight(s) component 734 are discussed throughout this disclosure.
  • aspects of some or all of the components discussed herein can include any models, algorithms, and/or machine learning algorithms.
  • the components in the memory 718 (and the memory 742, discussed below) can be implemented as a neural network.
  • an exemplary neural network is a biologically inspired algorithm which passes input data through a series of connected layers to produce an output.
  • Each layer in a neural network can also comprise another neural network, or can comprise any number of layers (whether convolutional or not).
  • a neural network can utilize machine learning, which can refer to a broad class of such algorithms in which an output is generated based on learned parameters.
  • machine learning algorithms can include, but are not limited to, regression algorithms (e.g., ordinary least squares regression (OLSR), linear regression, logistic regression, stepwise regression, multivariate adaptive regression splines (MARS), locally estimated scatterplot smoothing (LOESS)), instance-based algorithms (e.g., ridge regression, least absolute shrinkage and selection operator (LASSO), elastic net, least-angle regression (LARS)), decisions tree algorithms (e.g., classification and regression tree (CART), iterative dichotomiser 3 (ID3), Chi-squared automatic interaction detection (CHAID), decision stump, conditional decision trees), Bayesian algorithms (e.g., naive Bayes, Gaussian naive Bayes, multinomial naive Bayes, average one-dependence estimators (AODE), Bayesian belief network (BNN), Bayesian networks), clustering algorithms (e.g., OLSR), linear regression, logistic regression, stepwise regression, multivariate adaptive regression splines (MARS), locally estimated
  • Additional examples of architectures include neural networks such as ResNet70, ResNetlOl, VGG, DenseNet, PointNet, and the like.
  • the sensor system(s) 706 can include LIDAR sensors, RADAR sensors, ultrasonic transducers, sonar sensors, location sensors (e.g., GPS, compass, etc.), inertial sensors (e.g., inertial measurement units (IMUs), accelerometers, magnetometers, gyroscopes, etc.), cameras (e.g., RGB, IR, intensity, depth, etc.), time of flight sensors, microphones, wheel encoders, environment sensors (e.g., temperature sensors, humidity sensors, light sensors, pressure sensors, etc.), etc.
  • the sensor system(s) 706 can include multiple instances of each of these or other types of sensors.
  • the LIDAR sensors can include individual LIDAR sensors located at the comers, front, back, sides, and/or top of the vehicle 702.
  • the camera sensors can include multiple cameras disposed at various locations about the exterior and/or interior of the vehicle 702.
  • the sensor system(s) 706 can provide input to the vehicle computing device 704. Additionally or alternatively, the sensor system(s) 706 can send sensor data, via the one or more networks 736, to the one or more computing device(s) 738 at a particular frequency, after a lapse of a predetermined period of time, in near real-time, etc.
  • the vehicle 702 can also include one or more emitters 708 for emitting light and/or sound, as described above.
  • the emitters 708 in this example include interior audio and visual emitters to communicate with passengers of the vehicle 702.
  • interior emitters can include speakers, lights, signs, display screens, touch screens, haptic emitters (e.g., vibration and/or force feedback), mechanical actuators (e.g., seatbelt tensioners, seat positioners, headrest positioners, etc.), and the like.
  • the emitters 708 in this example also include exterior emitters.
  • the exterior emitters in this example include lights to signal a direction of travel or other indicator of vehicle action (e.g., indicator lights, signs, light arrays, etc.), and one or more audio emitters (e.g., speakers, speaker arrays, horns, etc.) to audibly communicate with pedestrians or other nearby vehicles, one or more of which comprising acoustic beam steering technology.
  • lights to signal a direction of travel or other indicator of vehicle action e.g., indicator lights, signs, light arrays, etc.
  • audio emitters e.g., speakers, speaker arrays, horns, etc.
  • the vehicle 702 can also include one or more communication connection(s) 710 that enable communication between the vehicle 702 and one or more other local or remote computing device(s).
  • the communication connection(s) 710 can facilitate communication with other local computing device(s) on the vehicle 702 and/or the drive system(s) 714.
  • the communication connection(s) 710 can allow the vehicle to communicate with other nearby computing device(s) (e.g., other nearby vehicles, traffic signals, etc.).
  • the communications connection(s) 710 also enable the vehicle 702 to communicate with a remote teleoperations computing device or other remote services.
  • the communications connection(s) 710 can include physical and/or logical interfaces for connecting the vehicle computing device 704 to another computing device or a network, such as network(s) 736.
  • the communications connection(s) 710 can enable Wi-Fi-based communication such as via frequencies defined by the IEEE 802.11 standards, short range wireless frequencies such as Bluetooth, cellular communication (e.g., 2G, 3G, 4G, 4G LTE, 5G, etc.) or any suitable wired or wireless communications protocol that enables the respective computing device to interface with the other computing device(s).
  • the vehicle 702 can include one or more drive systems 714.
  • the vehicle 702 can have a single drive system 714.
  • individual drive systems 714 can be positioned on opposite ends of the vehicle 702 (e.g., the front and the rear, etc.).
  • the drive system(s) 714 can include one or more sensor systems to detect conditions of the drive system(s) 714 and/or the surroundings of the vehicle 702.
  • the sensor system(s) can include one or more wheel encoders (e.g., rotary encoders) to sense rotation of the wheels of the drive systems, inertial sensors (e.g., inertial measurement units, accelerometers, gyroscopes, magnetometers, etc.) to measure orientation and acceleration of the drive system, cameras or other image sensors, ultrasonic sensors to acoustically detect objects in the surroundings of the drive system, LIDAR sensors, RADAR sensors, etc.
  • Some sensors, such as the wheel encoders can be unique to the drive system(s) 714.
  • the sensor system(s) on the drive system(s) 714 can overlap or supplement corresponding systems of the vehicle 702 (e.g., sensor system(s) 706).
  • the drive system(s) 714 can include many of the vehicle systems, including a high voltage battery, a motor to propel the vehicle, an inverter to convert direct current from the battery into alternating current for use by other vehicle systems, a steering system including a steering motor and steering rack (which can be electric), a braking system including hydraulic or electric actuators, a suspension system including hydraulic and/or pneumatic components, a stability control system for distributing brake forces to mitigate loss of traction and maintain control, an HVAC system, lighting (e.g., lighting such as head/tail lights to illuminate an exterior surrounding of the vehicle), and one or more other systems (e.g., cooling system, safety systems, onboard charging system, other electrical components such as a DC/DC converter, a high voltage junction, a high voltage cable, charging system, charge port, etc.).
  • a high voltage battery including a motor to propel the vehicle
  • an inverter to convert direct current from the battery into alternating current for use by other vehicle systems
  • a steering system including a steering motor and steering rack (which can
  • the drive system(s) 714 can include a drive system controller which can receive and preprocess data from the sensor system(s) and to control operation of the various vehicle systems.
  • the drive system controller can include one or more processors and memory communicatively coupled with the one or more processors.
  • the memory can store one or more components to perform various functionalities of the drive system(s) 714.
  • the drive system(s) 714 also include one or more communication connection(s) that enable communication by the respective drive system with one or more other local or remote computing device(s).
  • the direct connection 712 can provide a physical interface to couple the one or more drive system(s) 714 with the body of the vehicle 702.
  • the direct connection 712 can allow the transfer of energy, fluids, air, data, etc. between the drive system(s) 714 and the vehicle.
  • the direct connection 712 can further releasably secure the drive system(s) 714 to the body of the vehicle 702.
  • the vehicle 702 can send sensor data to one or more computing device(s) 738 via the network(s) 736.
  • the vehicle 702 can send raw sensor data to the computing device(s) 738.
  • the vehicle 702 can send processed sensor data and/or representations of sensor data to the computing device(s) 738.
  • the vehicle 702 can send sensor data to the computing device(s) 738 at a particular frequency, after a lapse of a predetermined period of time, in near real-time, etc.
  • the vehicle 702 can send sensor data (raw or processed) to the computing device(s) 738 as one or more log files.
  • the computing device(s) 738 can include processor(s) 740 and a memory 742 storing a planning component 744.
  • the planning component 744 can substantially correspond to the planning component 728 and can include functionality to generate trajectories for the vehicle 702 in an environment.
  • the processor(s) 716 of the vehicle 702 and the processor(s) 740 of the computing device(s) 738 can be any suitable processor capable of executing instructions to process data and perform operations as described herein.
  • the processor(s) 716 and 740 can 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 to transform that electronic data into other electronic data that can be stored in registers and/or memory.
  • integrated circuits e.g., ASICs, etc.
  • gate arrays e.g., FPGAs, etc.
  • other hardware devices can also be considered processors in so far as they are configured to implement encoded instructions.
  • Memory 718 and 742 are examples of non-transitory computer-readable media.
  • the memory 718 and 742 can store an operating system and one or more software applications, instructions, programs, and/or data to implement the methods described herein and the functions attributed to the various systems.
  • the memory can be implemented using any suitable memory technology, such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), nonvolatile/Flash-type memory, or any other type of memory capable of storing information.
  • SRAM static random access memory
  • SDRAM synchronous dynamic RAM
  • Flash-type memory any other type of memory capable of storing information.
  • the architectures, systems, and individual elements described herein can include many other logical, programmatic, and physical components, of which those shown in the accompanying figures are merely examples that are related to the discussion herein.
  • the memory 718 and 742 can include at least a working memory and a storage memory.
  • the working memory may be a high speed memory of limited capacity (e.g., cache memory) that is used for storing data to be operated on by the processor(s) 716 and 740.
  • the memory 718 and 742 can include a storage memory that may be a lower-speed memory of relatively large capacity that is used for long-term storage of data.
  • the processor(s) 716 and 740 cannot operate directly on data that is stored in the storage memory, and data may need to be loaded into a working memory for performing operations based on the data, as discussed herein.
  • FIG. 7 is illustrated as a distributed system, in alternative examples, components of the vehicle 702 can be associated with the computing device(s) 738 and/or components of the computing device(s) 738 can be associated with the vehicle 702. That is, the vehicle 702 can perform one or more of the functions associated with the computing device(s) 738, and vice versa.
  • FIGS. 8 and 9 illustrate example processes in accordance with embodiments of the disclosure. These processes are illustrated as logical flow graphs, each operation of which represents a sequence of operations that can be implemented in hardware, software, or a combination thereof.
  • the operations represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations.
  • computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types.
  • the order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and/or in parallel to implement the processes.
  • FIG. 8 depicts an example process 800 for determining a point density for points associated with a reference trajectory and evaluating costs at the points to generate a target trajectory, in accordance with embodiments of the disclosure.
  • some or all of the process 800 can be performed by one or more components in FIGS. 1 or 7, as described herein.
  • some or all of the process 800 can be performed by the vehicle computing device(s) 112 and/or the computing device(s) 704.
  • the process can include receiving a reference trajectory representing an initial trajectory for an autonomous vehicle to traverse an environment.
  • the reference trajectory can comprise a segment of a continuous trajectory or a piecewise trajectory, depending on an action to be performed and a path to be followed in an environment.
  • a reference trajectory can be based at least in part on static and/or dynamic obstacles in an environment, a minimum or maximum longitudinal acceleration or velocity, a maximum steering angle, vehicle dynamics (e.g., a notion that the wheels do not slip, etc.).
  • the process can include determining a first point density of first points associated with a first portion of the reference trajectory.
  • the operation 804 can include determining a cost associated with a curvature value associated with a portion of the reference trajectory and/or a cost associated with a distance to a point associated with an obstacle that is below a threshold value.
  • the operation 804 can include accessing a lookup table to determine a point density based on the cost and/or to access a function to determine a point density. For example, a first cost below a first threshold (e.g., 0.1 or x) a first point density can be selected as the point density for a region.
  • a first threshold e.g., 0.1 or x
  • a second point density can be based on linearly interpolating between density values.
  • a third cost is above the second threshold (e.g., 0.5 or y)
  • a third point density can be selected as the point density for a region.
  • costs can be selected in a variety of manners.
  • costs associated with a curvature and/or distance can be performed by a second layer of a planner system, as discussed above.
  • the second layer can receive a first target trajectory from the first layer of the planner system, whereby the first target trajectory can include curvature values.
  • the operation 804 can include evaluating the first target trajectory over time with respect to objects in an environment to determine an initial cost associated with a distance between a point on the first target trajectory (e.g., a reference trajectory) and a point associated with an obstacle in the environment and can subsequently determine the point density based at least in part on the cost.
  • the process can include determining a second point density of second points associated with a second portion of the reference trajectory.
  • the operation 806 can include determining a region associated with a low curvature value (e.g., a curvature value below a threshold) and/or associated with a distance to a point associated with an obstacle that meets or exceeds a threshold value.
  • a region associated with a low curvature value e.g., a curvature value below a threshold
  • the process can include evaluating cost function(s) at a first point of the first points and at a second point of the second points to generate a target trajectory.
  • the operation 808 can include evaluating one or more of a reference cost, an obstacle cost, a lateral cost, a longitudinal cost, and the like.
  • the process can include determining whether cost(s) are below a threshold.
  • the operation 810 can include using technique(s) involving a gradient descent to optimize the cost function(s).
  • the operation 810 can include determining whether a cost is below a threshold value, determining whether a change in cost between optimization operations is below a threshold value, and/or determining whether a number of optimization iterations has been performed. If the costs meet or exceed a threshold (e.g.,“no” in the operation 810) the process returns to the operation 808 where another trajectory can be generated (e.g., by varying locations of the points and/or controls (e.g., steering angles, acceleration, etc.)) and updated costs can be determined. If the costs are below a threshold (e.g.,“yes” in the operation 810), the process can continue to operation 812.
  • a threshold e.g.,“yes” in the operation 810
  • the process can include controlling the autonomous vehicle to traverse the environment based at least in part on the target trajectory.
  • the target trajectory can be provided to a trajectory smoother component and/ or the traj ectory tracker component to refine the target traj ectory and/ or to generate control signals for the various motors and steering actuators of the autonomous vehicle.
  • FIG. 9 depicts an example process 900 for determining weights associated with points along a reference trajectory (e.g., those points determined in accordance with FIG. 8) and evaluating, based on the weights, costs at the points to determine a target traj ectory, in accordance with embodiments of the disclosure.
  • some or all of the process 900 can be performed by one or more components in FIGS. 1 or 7, as described herein.
  • some or all of the process 900 can be performed by the vehicle computing device(s) 112 and/or the computing device(s) 704.
  • the process can include receiving a reference trajectory representing an initial path for an autonomous vehicle to traverse an environment. In some examples, this operation 902 can substantially correspond to the operation 802.
  • the process can include determining portion(s) of the reference trajectory.
  • the operation 904 can include determining a first portion 906, a second portion 908, and an N-th portion 910.
  • the portions 906, 908, and 910 can be discrete portions of (and/or points along) the reference trajectory.
  • the operation 904 can include determining the portions based at least in part on actions or maneuvers to be performed by the autonomous vehicle.
  • an action or maneuver may include, but is not limited to, a double-parked vehicle action or a lane change action.
  • the operation 904 can include determining that the autonomous vehicle is proximate to a bicyclist or another object in the environment and determining a portion of the reference trajectory based at least in part on a predicted trajectory of the bicyclist. In some examples, the operation 904 can include determining a location associated with the vehicle based on map data that may indicate weight(s) or a trigger to vary weights, as discussed herein.
  • the process can include determining weight(s) associated with reference cost(s) to be evaluated at point(s) associated with the portion(s) of the reference trajectory.
  • a reference cost is associated with a difference between a point on the reference trajectory and a corresponding point.
  • the operation 912 can include determining a first weight 914, a second weight 916, and an M-th weight 918.
  • the operation 912 can include determining a weight that corresponds to individual portions as determined in the operation 904.
  • the operation 912 can include determining a weight that corresponds to individual points (e.g., reference points) associated with individual portions. That is, if the portion 906 comprises 10 points, the operation 912 can include determining a unique weight for cost(s) associated with each of the 10 points.
  • other configurations are contemplated herein.
  • the process can include evaluating a reference cost function at the point(s) to generate a target trajectory comprising the corresponding point.
  • the operation 920 can include scaling a cost by a weight as determined in the operation 912.
  • the operation 920 can include scaling a cost up or down based on the weight associated with the cost, which, in turn, can lead to changes in the contour of the target trajectory based on the weights associated with the various costs, as discussed herein.
  • the operation 920 can include evaluating other cost functions, and is not limited to evaluating a reference costs function.
  • the operations provide a flexible framework to generate trajectories
  • the process can include controlling the autonomous vehicle to traverse the environment based at least in part on the target trajectory.
  • this operation 922 can substantially correspond to the operation 812.
  • a system comprising: one or more processors; and one or more computer-readable media storing instructions executable by the one or more processors, wherein the instructions, when executed, cause the system to perform operations comprising: receiving a reference trajectory representing an initial trajectory for an autonomous vehicle to traverse an environment; determining a first point density of first points associated with a first portion of the reference trajectory; determining a second point density of second points associated with a second portion of the reference trajectory, wherein the second point density is less than the first point density; evaluating a cost function at a first point of the first points and at a second point of the second points to generate a target trajectory comprising first corresponding points and second corresponding points, wherein a first corresponding point of the first corresponding points corresponds to the first point of the first points, and wherein a second corresponding point of the second corresponding points corresponds to a second point of the second points; and controlling the autonomous vehicle to traverse the environment based at least in part on the target trajectory.
  • [0119] B The system of paragraph A, wherein the first point density is based, at least in part, on one or more of: a time period between adjacent points of the first points; or a distance between the adjacent points of the first points.
  • C The system of paragraph A or B, wherein the cost function comprises a cost based at least in part on a distance between the first corresponding point of the target trajectory and a point associated with an obstacle in the environment.
  • determining the first point density comprises accessing a lookup table or a function to determine the first point density based at least in part on the first cost or the second cost.
  • G A method comprising: receiving a first trajectory representing an initial trajectory for a vehicle to traverse an environment; determining a point density for points associated with a portion of the first trajectory based at least in part on a first cost associated with a curvature value of the portion or a second cost associated with a distance between a first point of the portion and a second point associated with an obstacle in the environment; determining, based at least on a cost associated with the first point, a second trajectory; and controlling the vehicle to traverse the environment based at least in part on the second trajectory.
  • the point density is a first point density
  • the portion is a first portion
  • the points are first points
  • the curvature value is a first curvature value
  • the distance is a first distance
  • the obstacle is a first obstacle
  • the method further comprises: determining a second point density for second points associated with a second portion the first trajectory based at least in part on a third cost associated with a second curvature value of the second portion or a fourth cost associated with a second distance between a third point of the second portion and a fourth point associated with a second obstacle in the environment, wherein the first point density is different than the second point density.
  • J The method of any of paragraphs G-I, wherein the distance is a first distance, and wherein the point density is based at least in part on one of: a second distance between the first point on the portion and an adjacent first point on the portion; or a time period associated with a difference in a first time associated with the first point and a second time associated with the adjacent first point.
  • K The method of any of paragraphs G-J, wherein the cost is based at least in part on the distance between the first point of the portion and the second point associated with the obstacle in the environment.
  • determining the second trajectory further comprises: evaluating the cost for a plurality of points associated with the first trajectory to generate the second trajectory.
  • M The method of any of paragraphs G-L, further comprising: receiving the first trajectory from a first layer of a planning system of the vehicle, wherein the first trajectory is generated with respect to a distance between points on the first trajectory and the second trajectory is generated, by a second layer of the planning system, with respect to a time period between points on the second trajectory.
  • N The method of paragraph M, wherein the point density is non-uniform with respect to the portion of the first trajectory.
  • a non-transitory computer-readable medium storing instructions that, when executed, cause one or more processors to perform operations comprising: receiving a first trajectory representing an initial trajectory for a vehicle to traverse an environment; determining a point density for points associated with a portion of the first trajectory based at least in part on a first cost associated with a curvature value of the portion or a second cost associated with a distance between a first point of the portion and a second point associated with an obstacle in the environment; generating, based at least in part on a cost associated with the first point, a second trajectory, the second trajectory comprising a target point; and controlling the vehicle to traverse the environment based at least in part on the second trajectory.
  • P The non-transitory computer-readable medium of paragraph O, wherein at least one of: the point density increases as the first cost associated with the curvature value increases; or the point density increases as the second cost associated with the distance between a first point and the second point increases.
  • the operations further comprise: determining a second point density for second points associated with a second portion the first trajectory based at least in part on a third cost associated with a second curvature value of the second portion or a fourth cost associated with a second distance between a third point of the second portion and a fourth point associated with a second obstacle in the environment, wherein the first point density is different than the second point density.
  • R The non-transitory computer-readable medium of any of paragraphs O-
  • the distance is a first distance
  • the cost is based at least in part on a second distance between the target point of the second trajectory and the second point associated with the obstacle in the environment.
  • T The non-transitory computer-readable medium of paragraph S, the operations further comprising: receiving the first trajectory from a first layer of a planning system of the vehicle, wherein the first trajectory is generated with respect to a Euclidian distance between points on the first trajectory and the second trajectory is generated, by a second layer of the planning system, with respect to a time period between points on the second trajectory.
  • a system comprising: one or more processors; and one or more computer-readable media storing instructions executable by the one or more processors, wherein the instructions, when executed, cause the system to perform operations comprising: receiving a reference trajectory representing an initial path for an autonomous vehicle to traverse an environment; determining a first portion of the reference trajectory; determining a second portion of the reference trajectory that is separate from the first portion; determining a first weight associated with a first reference cost to be evaluated at a first point associated with the first portion of the reference trajectory, wherein the first reference cost is associated with a first difference between the first point on the reference trajectory and a corresponding first point; determining a second weight associated with a second reference cost to be evaluated at a second point associated with the second portion of the reference trajectory, wherein the second reference cost is associated with a second difference between the second point on the reference trajectory and a corresponding second point, wherein the second weight is larger than the first weight; evaluating a reference cost function at the first point and the second point to generate a target
  • V The system of paragraph U, wherein the first portion of the reference trajectory is associated with at least one of a discontinuity in the reference trajectory or an obstacle cost that meets or exceeds a threshold obstacle cost.
  • the first difference comprises one or more of a difference in a yaw, a lateral offset, a velocity, an acceleration, a curvature, or a curvature rate.
  • X The system of any of paragraphs U-W, wherein the first weight is based at least in part on one or more of: determining that a lateral displacement associated with a portion of the target trajectory corresponding to the first portion of the reference trajectory is below a first threshold distance for a given a time period; or determining that the lateral displacement associated with the portion of the target trajectory corresponding to the first portion of the reference trajectory is below a second threshold distance for a given distance.
  • Y The system of any of paragraphs U-X, wherein the first reference cost comprises a penalty associated with generating the target trajectory that deviates, at the first point and represented as the first difference, from the reference trajectory.
  • Z A method comprising: receiving a first trajectory for an autonomous vehicle to traverse an environment; determining a first portion of the first trajectory; determining a second portion of the first trajectory that is separate from the first portion; determining a first weight associated with the first portion of the first trajectory; determining a second weight associated with second portion of the first trajectory, wherein the first weight is different than the second weight; evaluating, with respect to the first trajectory and based at least in part on the first weight and the second weight, a reference cost to generate a second trajectory; and controlling the autonomous vehicle to traverse the environment based at least in part on the second trajectory.
  • evaluating the reference cost comprises: evaluating a first reference cost associated with the first portion, the first reference cost proportional to the first weight; and evaluating a second reference cost associated with the second portion, the second reference cost proportional to the second weight.
  • AB The method of paragraph Z or AA, wherein the first portion of the first trajectory is associated with points, and wherein the point is a first point, the method further comprising: determining a point density for the points associated with the first portion of the first trajectory based at least in part on a first cost associated with a curvature value of the first portion or a second cost associated with a distance between the first point of the first portion and a second point associated with an obstacle in the environment.
  • AC The method of any of paragraphs Z-AB, wherein the reference cost is associated with a difference between a first point on the first trajectory and a corresponding first point on the second trajectory.
  • AD The method of paragraph AC, wherein the difference comprises one or more of a difference in a yaw, a lateral offset, a velocity, an acceleration, a curvature, or a curvature rate.
  • AE The method of any of paragraphs Z-AD, wherein the first portion of the first trajectory is associated with at least one of a discontinuity in the first trajectory or an obstacle cost that meets or exceeds a threshold obstacle cost.
  • AI A non-transitory computer-readable medium storing instructions that, when executed, cause one or more processors to perform operations comprising: receiving a first trajectory for an autonomous vehicle to traverse an environment; determining a first portion of the first trajectory; determining a second portion of the first trajectory that is separate from the first portion; determining a first weight associated with the first portion of the first trajectory; determining a second weight associated with second portion of the first trajectory, wherein the first weight is different than the second weight; evaluating, with respect to the first trajectory and based at least in part on the first weight and the second weight, a reference cost to generate a second trajectory; and controlling the autonomous vehicle to traverse the environment based at least in part on the second trajectory.
  • evaluating the reference cost comprises: evaluating a first reference cost associated with the first portion, the first reference cost proportional to the first weight; and evaluating a second reference cost associated with the second portion, the second reference cost proportional to the second weight.
  • AK The non-transitory computer-readable medium of paragraph AI or AJ, wherein the reference cost is associated with a difference between a first point on the first trajectory and a corresponding first point on the second trajectory.
  • AL The non-transitory computer-readable medium of any of paragraphs AI-AK, wherein the first portion of the first trajectory is associated with at least one of a discontinuity in the first traj ectory or an obstacle cost that meets or exceeds a threshold obstacle cost.
  • AM The non-transitory computer-readable medium of any of paragraphs AI-AL, wherein the operations further comprise: determining a drivable area through the environment for the autonomous vehicle, wherein the drivable area represents a region in the environment on which the autonomous vehicle is configured to traverse and an object in the environment; and evaluating an obstacle cost based at least in part on the drivable area; wherein the second trajectory is based at least in part on the obstacle cost.
  • AN The non-transitory computer-readable medium of paragraph AM, wherein determining the drivable area is based at least in part on a velocity associated with the autonomous vehicle or a classification of the object.

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Traffic Control Systems (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)

Abstract

La présente invention concerne des techniques pour générer des trajectoires (310) et des zones pouvant être parcourues pour diriger un véhicule (102) dans un environnement. Les techniques peuvent comprendre la réception d'une trajectoire de référence (304) représentant une trajectoire initiale pour un véhicule (102), tel qu'un véhicule autonome, pour traverser l'environnement. Des parties de la trajectoire de référence peuvent être identifiées comme correspondant à des actions pour circuler autour d'un véhicule garé en double file ou pour changer de voie, par exemple. Dans certains cas, une partie de la trajectoire de référence peut être identifiée sur la base d'une proximité à un objet (302) dans l'environnement. Un poids (316, 318) peut être associé aux parties de la trajectoire de référence (304), et les techniques peuvent comprendre l'évaluation d'une fonction de coût de référence en des points (306, 308, 324) de la trajectoire de référence (304) sur la base des poids associés (316, 318) pour générer une trajectoire cible (310). Par ailleurs, les techniques peuvent comprendre la commande du véhicule autonome (102) pour traverser l'environnement sur la base au moins en partie de la trajectoire cible (310).
PCT/US2019/058760 2018-11-02 2019-10-30 Génération de trajectoires WO2020092500A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201980071690.0A CN112955358A (zh) 2018-11-02 2019-10-30 轨迹生成
EP19805850.5A EP3873783A1 (fr) 2018-11-02 2019-10-30 Génération de trajectoires
JP2021523870A JP7411653B2 (ja) 2018-11-02 2019-10-30 軌道生成のためのシステム、方法、およびコンピュータプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US16/179,679 US11048260B2 (en) 2018-11-02 2018-11-02 Adaptive scaling in trajectory generation
US16/179,711 2018-11-02
US16/179,679 2018-11-02
US16/179,711 US11208096B2 (en) 2018-11-02 2018-11-02 Cost scaling in trajectory generation

Publications (1)

Publication Number Publication Date
WO2020092500A1 true WO2020092500A1 (fr) 2020-05-07

Family

ID=68610352

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2019/058760 WO2020092500A1 (fr) 2018-11-02 2019-10-30 Génération de trajectoires

Country Status (4)

Country Link
EP (1) EP3873783A1 (fr)
JP (1) JP7411653B2 (fr)
CN (1) CN112955358A (fr)
WO (1) WO2020092500A1 (fr)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112146667A (zh) * 2020-09-29 2020-12-29 广州小鹏自动驾驶科技有限公司 一种车辆过渡轨迹的生成方法和装置
CN112193239A (zh) * 2020-08-27 2021-01-08 武汉乐庭软件技术有限公司 自动泊车控制系统中的轨迹计算方法、设备及存储设备
CN112405537A (zh) * 2020-11-11 2021-02-26 配天机器人技术有限公司 一种机器人空间轨迹插补方法及机器人
CN112810630A (zh) * 2021-02-05 2021-05-18 山东大学 一种自动驾驶车辆轨迹规划方法及系统
CN113074734A (zh) * 2021-03-23 2021-07-06 北京三快在线科技有限公司 一种轨迹规划方法、装置、存储介质及电子设备
CN113479199A (zh) * 2021-07-30 2021-10-08 三一专用汽车有限责任公司 开放区域避障方法、车辆和计算机可读存储介质
CN114103941A (zh) * 2020-08-31 2022-03-01 Aptiv技术有限公司 用于路径规划的方法和系统
CN114153204A (zh) * 2021-11-09 2022-03-08 北京三快在线科技有限公司 一种行驶轨迹的修复方法及修复装置
CN114708723A (zh) * 2020-12-16 2022-07-05 华为技术有限公司 轨迹预测方法和装置
US20240075923A1 (en) * 2022-09-02 2024-03-07 Ford Global Technologies, Llc Systems and methods for deweighting veering margins based on crossing time
EP4263306A4 (fr) * 2020-12-16 2024-10-30 Zoox Inc Zone de sécurité latérale

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11520343B2 (en) * 2020-06-15 2022-12-06 Argo AI, LLC Methods and systems for performing inter-trajectory re-linearization about an evolving reference path for an autonomous vehicle
CN113401141B (zh) 2021-07-12 2022-07-29 北京百度网讯科技有限公司 路线处理方法及装置
CN113340311B (zh) * 2021-08-04 2021-11-05 北京三快在线科技有限公司 一种无人驾驶设备的路径规划方法及装置
CN114228710B (zh) * 2021-12-27 2024-02-20 浙江大学 基于虚拟边界的二维智能驾驶模型的车辆轨迹预测方法
JP2024042454A (ja) * 2022-09-15 2024-03-28 三菱重工業株式会社 経路設定方法、プログラム及び移動体
CN118046917A (zh) * 2022-11-09 2024-05-17 北京三快在线科技有限公司 轨迹修正方法以及自动驾驶车辆
CN117104270B (zh) * 2023-09-04 2024-08-27 电子科技大学长三角研究院(衢州) 一种基于规则辅助强化学习的自动驾驶决策方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013214225A1 (de) * 2013-07-19 2015-01-22 Bayerische Motoren Werke Aktiengesellschaft Dynamische Neuplanung einer Fahrtrajektorie mittels LQ-Regelung für einen Ausweichassistenten
US9120485B1 (en) * 2012-09-14 2015-09-01 Google Inc. Methods and systems for smooth trajectory generation for a self-driving vehicle
US20150345959A1 (en) * 2014-05-30 2015-12-03 Nissan North America, Inc. Vehicle trajectory optimization for autonomous vehicles
DE102016222782A1 (de) * 2016-11-18 2018-05-24 Audi Ag Autonomes Steuern eines Kraftfahrzeugs anhand von Spurdaten; Kraftfahrzeug

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4873047B2 (ja) 2009-05-28 2012-02-08 トヨタ自動車株式会社 走行制御装置
US9821801B2 (en) * 2015-06-29 2017-11-21 Mitsubishi Electric Research Laboratories, Inc. System and method for controlling semi-autonomous vehicles

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9120485B1 (en) * 2012-09-14 2015-09-01 Google Inc. Methods and systems for smooth trajectory generation for a self-driving vehicle
DE102013214225A1 (de) * 2013-07-19 2015-01-22 Bayerische Motoren Werke Aktiengesellschaft Dynamische Neuplanung einer Fahrtrajektorie mittels LQ-Regelung für einen Ausweichassistenten
US20150345959A1 (en) * 2014-05-30 2015-12-03 Nissan North America, Inc. Vehicle trajectory optimization for autonomous vehicles
DE102016222782A1 (de) * 2016-11-18 2018-05-24 Audi Ag Autonomes Steuern eines Kraftfahrzeugs anhand von Spurdaten; Kraftfahrzeug

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112193239A (zh) * 2020-08-27 2021-01-08 武汉乐庭软件技术有限公司 自动泊车控制系统中的轨迹计算方法、设备及存储设备
CN114103941A (zh) * 2020-08-31 2022-03-01 Aptiv技术有限公司 用于路径规划的方法和系统
CN114103941B (zh) * 2020-08-31 2024-01-12 Aptiv技术有限公司 用于路径规划的方法和系统
EP3960562A1 (fr) * 2020-08-31 2022-03-02 Aptiv Technologies Limited Procédés et systèmes de planification de trajectoire
CN112146667A (zh) * 2020-09-29 2020-12-29 广州小鹏自动驾驶科技有限公司 一种车辆过渡轨迹的生成方法和装置
CN112405537A (zh) * 2020-11-11 2021-02-26 配天机器人技术有限公司 一种机器人空间轨迹插补方法及机器人
CN114708723A (zh) * 2020-12-16 2022-07-05 华为技术有限公司 轨迹预测方法和装置
EP4263306A4 (fr) * 2020-12-16 2024-10-30 Zoox Inc Zone de sécurité latérale
CN112810630A (zh) * 2021-02-05 2021-05-18 山东大学 一种自动驾驶车辆轨迹规划方法及系统
CN113074734A (zh) * 2021-03-23 2021-07-06 北京三快在线科技有限公司 一种轨迹规划方法、装置、存储介质及电子设备
CN113074734B (zh) * 2021-03-23 2023-05-30 北京三快在线科技有限公司 一种轨迹规划方法、装置、存储介质及电子设备
CN113479199A (zh) * 2021-07-30 2021-10-08 三一专用汽车有限责任公司 开放区域避障方法、车辆和计算机可读存储介质
CN114153204A (zh) * 2021-11-09 2022-03-08 北京三快在线科技有限公司 一种行驶轨迹的修复方法及修复装置
CN114153204B (zh) * 2021-11-09 2024-03-08 北京三快在线科技有限公司 一种行驶轨迹的修复方法及修复装置
US20240075923A1 (en) * 2022-09-02 2024-03-07 Ford Global Technologies, Llc Systems and methods for deweighting veering margins based on crossing time

Also Published As

Publication number Publication date
JP7411653B2 (ja) 2024-01-11
EP3873783A1 (fr) 2021-09-08
CN112955358A (zh) 2021-06-11
JP2022506475A (ja) 2022-01-17

Similar Documents

Publication Publication Date Title
US11208096B2 (en) Cost scaling in trajectory generation
US11048260B2 (en) Adaptive scaling in trajectory generation
US11077878B2 (en) Dynamic lane biasing
US11794736B2 (en) Dynamic collision checking
US11851050B2 (en) Collision prediction and avoidance for vehicles
US11225247B2 (en) Collision prediction and avoidance for vehicles
US12115990B2 (en) Trajectory modifications based on a collision zone
JP7411653B2 (ja) 軌道生成のためのシステム、方法、およびコンピュータプログラム
US11643073B2 (en) Trajectory modifications based on a collision zone
US11548512B2 (en) Yield behavior modeling and prediction
US11708093B2 (en) Trajectories with intent
US11774975B2 (en) Collision zone detection for vehicles
US11550324B2 (en) Parking zone detection for vehicles
US11433885B1 (en) Collision detection for vehicles
WO2021050745A1 (fr) Contrôle dynamique des collisions
WO2021034756A1 (fr) Prédiction et évitement de collisions pour véhicules
US20240351605A1 (en) Navigating around blocking objects

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19805850

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021523870

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019805850

Country of ref document: EP

Effective date: 20210602