Modeling and predicting yielding behavior.
The system uses a machine learning model to predict object yielding behavior, improving the safety and efficiency of autonomous vehicle navigation by integrating yield scores into trajectory planning.
Patent Information
- Application Number
- JP2022512376
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-08-23
- Filing Date
- 2020-08-19
- Publication Date
- 2024-12-27
- Estimated Expiration
- 2040-08-19
AI Technical Summary
Autonomous vehicles face challenges in predicting the behavior of objects in their environment, particularly in determining whether other vehicles or objects will yield during lane changes, which can lead to unsafe or inefficient navigation.
A system utilizing a machine learning model that processes sensor data to determine a yield score indicating the probability of an object yielding, allowing the vehicle to safely and efficiently perform lane changes by integrating this score with trajectory planning.
Enhances the safety and efficiency of autonomous vehicle navigation by accurately predicting object behavior, reducing the likelihood of collisions and optimizing lane change maneuvers.
Smart Images

Figure 0007607641000001 
Figure 0007607641000002 
Figure 0007607641000003
Abstract
Description
[Technical field]
[0001] The present invention relates to modeling and predicting yielding behavior. [Background technology]
[0002] This patent application claims priority to U.S. Patent Application No. 16 / 549,704, filed August 23, 2019. Application No. 16 / 549,704 is incorporated by reference herein in its entirety.
[0003] An autonomous vehicle may use various methods, devices, and systems to guide the autonomous vehicle through an environment. For example, an autonomous vehicle may use planning methods, devices, and systems to determine a driving path and guide the autonomous vehicle through an environment that includes dynamic objects (e.g., vehicles, pedestrians, animals, etc.) and static objects (e.g., buildings, signs, stranded vehicles, etc.). In some instances, the dynamic objects may affect the actions of the autonomous vehicle as it traverses the environment. [Brief description of the drawings]
[0004] The detailed description will be set forth with reference to the accompanying drawings, in which the leftmost digit(s) of a reference number identifies the drawing in which that reference number first appears. Use of the same reference number in different drawings indicates similar or identical components or features.
[0005] [Figure 1] FIG. 1 illustrates an example system for generating trajectories, determining yield scores associated with objects in an environment, and performing vehicle actions in accordance with an example of the present disclosure. [Diagram 2] FIG. 10 is a schematic flow diagram for determining first attribute data and / or determining second attribute data at a second time indicating a lane change at a first time according to an example of the present disclosure. [Diagram 3]1 illustrates an example environment for a vehicle determining a yield score associated with an object at an intersection in accordance with an example of the present disclosure. [Figure 4] 1 is a block diagram of a technique for determining concession score and / or motion profile data according to an example of the present disclosure. [Diagram 5] FIG. 1 is a block diagram of an example system for implementing the techniques described herein. [Figure 6] 4 is a flow diagram of an example process for determining a yield score and controlling a vehicle based at least in part on the yield score according to an example of the present disclosure. [Figure 7] FIG. 13 is a flow diagram of an example process for training a machine learning model to determine a concession score based, at least in part, on captured / generated sensor data and ground truth data in accordance with an example of the disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0006] Techniques for predicting actions of objects proximate to a vehicle are described herein. For example, as a vehicle traverses an environment, the vehicle can plan to change lanes from a current lane to a target lane as part of such traversal. Additionally, the vehicle can capture sensor data of objects proximate to the vehicle, which can indicate the relative positions, velocities, accelerations, etc. of the vehicle and other objects in the environment. In one example, such sensor data (or data based on the sensor data) can be input to a machine learning model, which can provide an indication (e.g., likelihood or probability) of whether an object proximate to the vehicle (e.g., an object in a target lane for a lane-changing action) may yield to the vehicle or otherwise exhibit a behavior that may indicate that the vehicle can safely perform a lane-changing maneuver. If the vehicle makes a determination that the object may yield (or if the likelihood or probability of yielding meets or exceeds a threshold), the vehicle can safely perform a lane-changing action sooner than it otherwise could. Thus, the techniques described herein can provide predictions or indications of other vehicles or objects in an environment that can enable a vehicle (such as an autonomous vehicle) to safely traverse the environment.
[0007] In one example, a computing device of an autonomous vehicle can receive sensor data (e.g., time-of-flight data, lidar data, radar data, sonar data, etc.) and determine and / or control the vehicle to follow a trajectory, which may include the action of changing lanes from a current lane to a target lane. Using the sensor data, the computing device can detect objects, which may be dynamic objects represented in the sensor data of the environment. In one example, the object may be another vehicle crossing along a different portion of the target lane or drivable area, or any other object moving in the environment around the vehicle.
[0008] In one example, the computing device may determine attribute data that may be associated with the object, the autonomous vehicle, and / or the environment. The attribute data may include speed data, acceleration data, and / or distance data associated with the object and / or the autonomous vehicle (e.g., indicating the distance between the object and the autonomous vehicle). The speed, acceleration, and distance data may be indicated relative to the vehicle's frame of reference, the environment's frame of reference, and / or any other suitable frame. Additionally or alternatively, the attribute data may include object range (e.g., length, width, height), vehicle state data (e.g., diagnostic information, headlight and / or turn signal state, speaker state, etc.), and / or object state data (e.g., headlight and / or turn signal state, operator gestures of the object, etc.). Additionally or alternatively, the attribute data may include environment state data, such as traffic light state, railroad crossing state, road state, weather state, etc.
[0009] As described above, the computing device can input sensor data and / or attribute data into the machine learning model and can receive an indication (e.g., likelihood or probability) from the machine learning model that an object in a target lane will yield to (or perform a yielding action toward) the autonomous vehicle. By way of example and not by way of limitation, an autonomous vehicle can activate a turn signal on the right side of the autonomous vehicle while traversing an environment and / or the target lane can "approach" toward the target lane toward the right side of the autonomous vehicle. In one example, approaching the target lane can include a change in lateral position of the autonomous vehicle in the current lane toward the target lane. In one example, the probability that an object will yield (e.g., the likelihood or posterior probability of the hypothesis that the object is yielding given that the observed data (e.g., sensor data) is true) can be expressed as a yield score associated with the object. By way of example, and not by way of limitation, a yield score may be a numerical value between 0 and 1, where a yield score closer to 0 may indicate a low probability that the object will yield to an autonomous vehicle, and where a yield score closer to 1 may indicate a high probability that the object will yield to an autonomous vehicle. In at least some examples, such probabilities may be used in determining the yield score (e.g., the yield score is a function of such probabilities or likelihoods).
[0010] In any of the above examples, the yield score may be combined (e.g., summed) with other scores to determine the action the vehicle should take. As a non-limiting example, the yield score may be high (e.g., indicating more vehicle yielding), but other factors contributing to the total score (e.g., safety, presence of other objects, rules of the road (e.g., do not change lanes at an intersection), etc.) may prevent the vehicle from performing the lane change action. In such examples, the yield score may be effectively weighted against any other scores to determine the total score.
[0011] In an example, the computing device may capture and / or determine additional attribute data to determine a probability that the object will yield. For example, the autonomous vehicle may capture and / or determine additional attribute data during and / or after a time period has elapsed after activating a turn signal. By way of example and not limitation, the autonomous vehicle may determine first attribute data prior to substantially contemporaneous second attribute data and / or determine third attribute data after activating a right turn signal of the autonomous vehicle. In an example, the computing device may compile attribute data over a time window (e.g., 500 milliseconds, 1 second, 3 seconds, 5 seconds, etc.) as an attribute data log.
[0012] Training of the machine learning model may be based at least in part on log data. For example, a vehicle or multiple vehicles may traverse an environment and generate log data associated with the operation of the vehicle. The log data may include sensor data captured by one or more sensors of the vehicle, sensory data indicative of objects identified by one or more systems on board the vehicle (or generated during a post-processing stage), predictive data indicative of estimated future positions, velocities, and / or accelerations of the objects (whether generated during recording or subsequently), and / or status data indicative of diagnostic information, trajectory information, headlight and / or turn signal operation, and / or other information generated by the vehicle. Examples of vehicle-generated data that may be included in the log data may be found, for example, in U.S. Patent Application No. 16 / 392,094, entitled "Scenario Editor and Simulator," filed April 23, 2019, which is incorporated by reference in its entirety.
[0013] In one example, the log data may include vehicle action data, such as lane change data. The lane change data may indicate lane change actions and / or attempted lane change actions, including when the vehicle successfully completed the lane change action and when the vehicle was not able to complete the lane change action. Additionally, the log data may indicate attribute data (e.g., speed, attitude, relative distance, etc.) associated with the vehicle and / or objects. At least a portion of the log data may be used as ground truth data (also referred to as ground truth attribute data) for training a machine learning model.
[0014] In some examples, the log data may additionally or alternatively include simulated log data. For example, the log data may be synthetic log data (or simulated sensor data) generated without using a vehicle to capture sensor data of the environment. The synthetic log data may be used to generate a simulated situation, and a simulator may execute the simulated situation to simulate an autonomous vehicle controller (or simulated vehicle) operating within the simulated situation. By executing the simulated situation, the simulator may generate simulation data that may also be used to train a machine learning model.
[0015] After the machine learning model is trained, the machine learning model can output a yield score. In one example, the computing device can use a yield score threshold to determine whether the yield score meets or exceeds the yield score threshold. If the yield score meets or exceeds the yield score threshold, the computing device can control the vehicle to perform a lane change action. If the yield score does not meet or exceed the yield score threshold, the computing device can refrain from performing a lane change action (or can perform further actions, such as further signaling, moving closer, etc.). Examples of generated trajectories including lane change actions can be found, for example, in U.S. Patent Application No. 16 / 179,711, entitled "Cost Scaling in Trajectory Generation," filed November 2, 2018, which is incorporated by reference in its entirety.
[0016] As described above, in the case where the vehicle is an autonomous vehicle, the computing device can control the vehicle to follow a trajectory that may be based on the yield score. As described above, the yield score can indicate a probability that the object will yield to the vehicle or not yield to the vehicle. By predicting that the object will not yield, the vehicle can determine a target trajectory that avoids the predicted trajectory associated with the object, which can reduce the likelihood of a collision. Furthermore, by predicting that the object will yield, the vehicle can determine a target trajectory that includes a safe distance between the vehicle and the object. Therefore, with the yield score, the trajectory may be safer and / or more comfortable than a target trajectory without the yield score by considering the object yielding to the vehicle.
[0017] The techniques described herein can improve the capabilities of a computing device by equipping the computing device to determine the potential consequences of yielding or not yielding an object to determine a safe and efficient trajectory for controlling the vehicle. In yielding situations as described herein, determining an appropriate trajectory for the vehicle according to the techniques disclosed herein can improve the safety and efficiency of the vehicle's operation. The trajectory determined according to the techniques described herein may more closely approximate or perform better than a human response to the object's behavior, and therefore may reduce the probability of negative safety outcomes and increase the efficiency with which the vehicle navigates the environment.
[0018] Further, the techniques described herein can reduce the amount of computational resources required. For example, a computing device associated with a vehicle can determine one or more trajectories including lane-changing actions while traversing an environment. The computing device can use a machine learning model trained based on similar trajectories in similar simulated environments and output yield scores associated with objects in the environment and have reference costs associated with the trajectories. The techniques described herein can equip the computing device to determine appropriate trajectories in difficult yield decision situations based at least in part on the yield scores, and can reduce the amount of computational resources (e.g., processing power, network utilization, etc.) required to determine appropriate trajectories in such situations.
[0019] The techniques described herein can be implemented in multiple ways. Exemplary implementations are provided below with reference to the following drawings. Although described in the context of an autonomous vehicle, the techniques described herein can be applied to a variety of systems requiring object determination and detection, and are not limited to autonomous vehicles. In one example, similar techniques may be utilized in driver-controlled vehicles where such systems may provide indications that it is safe for various operations to be performed. In another example, the systems, methods, and apparatus may be used in aviation and / or marine contexts. Additionally, the techniques described herein may be used with captured data (e.g., captured using sensors), simulated data (e.g., generated by a simulator), or any combination of the two.
[0020] FIG. 1 illustrates an example system for generating trajectories, determining yield scores associated with objects in an environment, and performing vehicle actions. More specifically, FIG. 1 illustrates an example environment 100 in which a vehicle 102 is traveling 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, may also be present in the environment 100. For example, FIG. 1 illustrates an additional vehicle 104 (also referred to as an object) in the environment 100. Of course, any number and / or types of objects may additionally or alternatively be present in the environment 100. For example, objects such as pedestrians, bicycles / bicyclists, motorbikes / bicyclists, buses, trams, trucks, animals, etc. may be present in the environment 100.
[0021] For purposes of illustration, the vehicle 102 may 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 journey without expecting full-time vehicle control by a driver (or passenger). In such an illustration, the vehicle 102 may be configured to control all functions from start to stop, including all parking functions, and thus may be passenger-less. This is by way of example only, and the systems and methods described herein may be incorporated into any land, air, or water vehicle, including vehicles ranging from those that must be manually controlled by a driver at all times to those that are partially or fully autonomously controlled. Further details associated with the vehicle 102 are described below.
[0022] 1, the vehicle 102 may be associated with a sensor system 106. The sensor system 106 may generate sensor data 108 that may be used by a vehicle computing device 110 associated with the vehicle 102 to recognize one or more objects, such as the object 104. The sensor system 106 may include, but is not limited to, light detection and ranging (LIDAR) sensors, radio detection and ranging (RADAR) sensors, time-of-flight sensors, ultrasonic transducers, sonic navigation and ranging (SONAR) sensors, position sensors (e.g., Global Positioning System (GPS), compass, etc.), inertial sensors (e.g., inertial measurement units, accelerometers, magnetometers, gyroscopes, etc.), cameras (e.g., RGB, infrared (IR), intensity, depth, etc.), wheel encoders, microphones, environmental sensors (e.g., temperature sensors, humidity sensors, light sensors, pressure sensors, etc.), etc.
[0023] In at least one example, the vehicle computing device 110 may include a perception system 112, which may perform object detection, segmentation, and / or classification based, at least in part, on the sensor data 108 received from the sensor system 106. For example, the perception system 112 may detect objects 104 in the environment 100 based on the sensor data 108 generated by the sensor system 106. Additionally, the perception system 112 may determine the range (e.g., height, weight, length, etc.), pose (e.g., x-coordinate, y-coordinate, z-coordinate, pitch, roll, yaw), etc. of the objects 104. The sensor system 106 may continuously generate sensor data 108 (e.g., in near real-time), which may be used by the perception system (and other systems of the vehicle computing device 110).
[0024] The vehicle computing device 110 may also include a trajectory generation component 114, an attribute component 116, and a machine learning model 118. The trajectory generation component 114 may include functionality to generate a vehicle trajectory 120, which may be a reference trajectory or a target trajectory within a drivable area 122, according to an embodiment described herein. The attribute component 116 may include functionality to determine attribute data associated with an object, such as the object 104, based at least in part on the sensor data 108. The attribute data may include attributes such as the range of the object, the classification of the object, the pose of the object, the trajectory of the object, and / or the speed of the object, the state of the indicators (e.g., headlights, other signals) of the object 104, operator gestures of the object 104, etc. The machine learning model 118 may include functionality to receive the attribute data as input and output a yield score 124. As described above, the yield score 124 may be a numerical value that may indicate the probability that the object will yield to the vehicle.
[0025] 1, vehicle trajectory 120 may include, for example, a lane change action from current lane 126 to target lane 128. In one example, the lane change action may be based on an upcoming action. By way of example and not by way of limitation, vehicle 102 may follow vehicle trajectory 120 that includes an approaching right turn at an intersection. To prepare for the right turn, vehicle 102 may perform a lane change action to target lane 128. In one example, the lane change action may be based on traffic conditions and / or obstacles in drivable area 122 that may enable vehicle 102 to traverse traffic and / or environment 100 more efficiently and / or safely.
[0026] As described above, the vehicle 102 may be stationary and / or parked in the environment 100. By way of example and not limitation, the vehicle 102 may have a current lane 126 that may be a parking lane and the vehicle trajectory 120 allows the vehicle 102 to enter a target lane 128, which may be a traffic lane.
[0027] In some examples, the target lane 128 may be a lane adjacent to the current lane 126, as illustrated in FIG. 1. In some examples, the target lane 128 may be a lane separated by a portion of the drivable area 122. By way of example and not limitation, a bike lane may separate the current lane 126 from the target lane 128 which may result in the vehicle 102 performing a lane change action to enter the target lane 128, causing the vehicle 102 to cross into the bike lane. In some examples, a bus lane may separate the current lane 126 from the target lane 128, although other lane types and / or drivable areas are contemplated. Any intermediate lanes, such as bike lanes, bus lanes, etc., may be determined by the vehicle 102, and the techniques described herein may additionally or alternatively be applied to the intermediate lanes. For example, the vehicle computing device 110 may determine a first yield score associated with the target lane 128 and a second yield score associated with the intermediate lane. The vehicle computing device 110 may determine whether to perform a lane change action based, at least in part, on the first yield score and / or the second yield score.
[0028] The vehicle 102 may capture sensor data 108 and may determine that the object 104, as represented in the sensor data 108, is crossing the environment 100 in a target lane 128. Based on the sensor data 108, the attribute component 116 may determine attribute data associated with the object 104 and / or the vehicle 102. Based on the sensor data 108, the attribute component 116 may determine attribute data associated with the object 104 and / or the vehicle 102. As described above, the attribute data may include speed data, acceleration data, and / or distance data associated with the object 104 and / or the vehicle 102, and / or any other parameters associated with the object 104 (e.g., lighting conditions, size, relative speed, etc.).
[0029] The attribute data may be provided to a machine learning model 118 as input that may determine to output a yield score 124. In at least certain examples, a number of such attributes over a time period may be input into such a model (e.g., over a time period of 1s, 2s, 8s, etc., although any number of observations are contemplated). As noted above, the yield score 124 may be a numerical value between 0 and 1, where a yield score 124 closer to 0 may indicate a low probability or likelihood that the object 104 will yield to the vehicle 102, and where a yield score 124 closer to 1 may indicate a high probability or likelihood that the object 104 will yield to the vehicle 102.
[0030] In one example, the machine learning model 118 can determine an estimated object trajectory 130 based on the yield score 124, which may include and / or be associated with a motion profile (also referred to as a predicted motion profile). The motion profile can provide a predicted motion of the object and can indicate how the object 104 will change the speed of the object 104 and / or whether the object 104 will yield to the vehicle 102. The machine learning model 118 can determine the estimated object trajectory 130 (and / or the motion profile) by considering, for example, the yield score 124, the speed of the object 104, the acceleration of the object 104, an attitude associated with the wheels of the object 104, a state of a turn signal of the object 104, etc.
[0031] By way of example and not limitation, the attribute data may indicate that the vehicle 102 is traveling at a speed of 15 meters per second and that the object 104 is traveling behind the vehicle 102 at a speed of 16 meters per second in the target lane 128. Additionally, the attribute data may indicate that the distance between the vehicle 102 and the object 104 is 40 meters. After a period of time (e.g., 2 seconds) has passed, the computing device may collect further attribute data indicating that the vehicle 102 is traveling at a speed of 16 meters per second, that the object 104 is traveling at a speed of 13 meters per second, and that the distance between the autonomous vehicle and the dynamic object is 42 meters. The computing device may provide the attribute data and the further attribute data as input to a machine learning model 118, which may determine an estimated object trajectory 130 based on the attribute data and the further attribute data.
[0032] Based on the object 104 decreasing its speed from 16 meters per second to 13 meters per second, the increase in distance between the vehicle 102 and the object 104, and the comparison between the trajectories of the candidate objects, the machine learning model 118 may determine a yield score 124 of 0.95. Based on the yield score 124, the vehicle computing device 110 may determine that it is safe to perform a lane change action and may determine a vehicle trajectory 120 to control the vehicle 102 to transition into the target lane 128.
[0033] The vehicle trajectory 120 may be a target trajectory and may be generated against a reference trajectory by evaluating one or more costs. The reference trajectory may represent an initial path or trajectory for the vehicle 102 to follow and may be generated or received by the vehicle computing device 110. In one example, the reference trajectory may correspond to a centerline of a road segment (e.g., the current lane 126), although the reference trajectory may represent any path in the environment 100. Based on the yield score 124, the target trajectory may include a lane change action and / or the vehicle 102 may refrain from performing a lane change action and may be generated against the reference trajectory by evaluating one or more costs associated with points of the reference trajectory. In general, the one or more costs may include, but are not limited to, a reference cost, an obstacle cost, a lateral cost, a longitudinal cost, and the like. For example, the cost may be based at least in part on a boundary of the drivable region 122, and the vehicle 102 may change the target trajectory based on the cost.
[0034] The target trajectory may be determined in association with distinct control segments intended to be performed by the vehicle to traverse the environment 100 within the drivable area 122 (e.g., across a receding horizon). Examples of techniques for determining a trajectory within a drivable area may be found, for example, in U.S. Patent Application No. 15 / 982,694, entitled "Drive Envelope Determination," filed May 17, 2018, which is incorporated by reference in its entirety. In one example, the vehicle 102 may follow a target trajectory, which may include vehicle actions such as a lane change action into the target lane 128, as described above.
[0035] With respect to the above costs, the reference cost may include a cost associated with a difference between a point of the reference trajectory (also referred to as a reference point) and a corresponding point of the target trajectory (also referred to as a point or a target point), whereby the difference represents one or more differences in yaw, lateral offset, velocity, acceleration, curvature, curvature rate, etc. In one example, decreasing the weighting associated with the reference cost can reduce the penalty associated with a target trajectory that is located a distance away from the reference trajectory, which can provide a smoother transition leading to safer and / or more comfortable vehicle operation.
[0036] In some examples, the obstacle cost may include a cost associated with a distance between a point of the reference or target trajectory and a point associated with an obstacle in the environment. By way of example, the point associated with the obstacle may correspond to a point of a boundary of a drivable area or may correspond to a point associated with an obstacle in the environment. In some examples, the obstacles in the environment may include, but are not limited to, static objects (e.g., buildings, curbs, sidewalks, lane markings, signposts, traffic lights, trees, etc.) or dynamic objects (e.g., vehicles, bicyclists, pedestrians, animals, etc.). In some examples, the dynamic objects may also be referred to as agents. In some examples, the static or dynamic objects may be generally referred to as objects or obstacles.
[0037] In one example, the lateral cost may refer to a cost associated with a steering input to the vehicle, such as a maximum steering input relative to the vehicle's speed. In one example, the longitudinal cost may refer to a cost associated with the vehicle's speed and / or acceleration (e.g., maximum braking and / or acceleration). Such costs may be used to ensure that the vehicle is operating within feasible limits for passenger transportation and / or within comfort limits. In one example, the planning system may determine a first cost for a trajectory associated with the drivable area 122 in the current lane 126, which may be higher than a second cost associated with a lane change action. Thus, the actions may be selected or determined based on the cost associated with each action. Examples of determining costs associated with actions may be found, for example, in U.S. Patent Application No. 15 / 843,512, entitled "Trajectory Generation Using Curvature Segments," filed December 14, 2018, which is incorporated by reference herein in its entirety.
[0038] In one example, a first cost associated with a first target lane may be lower than a second cost associated with a second target lane. By way of example and not limitation, the vehicle 102 may be traversing an environment in a center lane with an obstacle associated with the center lane. The vehicle 102 may determine a first yield score associated with a first object in the first target lane and a second yield score associated with a second object in the second target lane. The first yield score may be higher than the second yield score, which may in turn reduce the obstacle cost associated with the first lane when compared to the obstacle cost associated with the second lane. Thus, based at least in part on the yield scores, the first cost associated with the first target lane may be lower than the second cost associated with the second target lane.
[0039] In one example, the estimated object trajectory 130 can be further used to determine an obstacle cost associated with the target lane 128. For example, the yield score 124 can be a low yield score and the estimated object trajectory 130 can indicate that the object 104 will increase its speed. The increase in the speed of the object 104 can increase the likelihood of a collision with the vehicle 102 and can increase the obstacle cost associated with the target lane 128. In such a situation, the vehicle 102 can abort the lane change action to avoid a possible collision of the object 104 with the vehicle 102.
[0040] In one example, the vehicle computing device 110 may use a yield score threshold to determine when it is safe to perform a lane change action. By way of example and not limitation, the yield score threshold may be 0.9 and the yield score 124 may be 0.95, in which case the vehicle computing device 110 may determine to perform a vehicle trajectory 120 that transitions the vehicle 102 into the target lane 128. If the yield score does not meet or exceed the yield score threshold, the vehicle computing device 110 may cause the vehicle 102 to maintain the previous trajectory and / or generate a new candidate trajectory associated with the current lane 126 and / or the target lane 128. In one example, the vehicle computing device 110 can generate a new candidate trajectory associated with the target lane 128 and can re-perform the yield score determination after time and / or distance have passed (e.g., after 3 seconds, after 5 seconds, after 10 meters) and / or after detecting that the object 104 has passed the vehicle 102.
[0041] 1 illustrates one example of using yield scores to determine a trajectory in an environment. Other examples are also contemplated. For example, the attribute component 116 can determine attribute data for various objects in the environment.
[0042] 2 illustrates a schematic flow diagram of an example process 200 in which a vehicle 102 follows a vehicle trajectory 208 through an environment 202 and an environment 204, the vehicle 102 including a lane change action. FIG. 2 further illustrates an object 104 in the environment 202 and the environment 204.
[0043] At operation 206 of the example process 200, the vehicle 102 may follow a vehicle trajectory 208 while traversing the current lane 126. In one example, the vehicle trajectory 208 may correspond to the vehicle trajectory 120 of FIG. 1, although the vehicle trajectory 208 may represent any path or trajectory in the environment 202. Additionally, the vehicle 102 may determine first attribute data at a first time and / or may indicate a lane change action. The first attribute data may include speed data associated with the vehicle 102 and / or the object 104, acceleration data associated with the vehicle 102 and / or the object 104, and / or distance data indicating a distance 210 between the object 104 and the vehicle 102. In one example, the vehicle 102 may indicate a lane change action. By way of example and not limitation, the vehicle 102 may activate a turn signal on the right side of the vehicle 102 and / or may be “approaching” toward the target lane 128, where the target lane is toward the right side of the vehicle 102. As noted above, in one example, approaching the target lane 128 may include changing the lateral position of the vehicle 102 in the current lane 126 toward the target lane 128.
[0044] At operation 212 of the example process 200, the vehicle 102 may trace a vehicle trajectory 214 while crossing the current lane 126. Additionally, the vehicle 102 may determine second attribute data at a second time. The second attribute data associated with the second time (e.g., during and / or after the vehicle 102 activates a turn signal, some other signal emitter, and / or changes the attribute data associated with the object 104) may include speed data associated with the vehicle 102 and / or the object 104, acceleration data associated with the vehicle 102 and / or the object 104, and / or distance data indicating a distance 216 between the object and the autonomous vehicle. In one example, the object 102 may react to the vehicle 102 indicating a lane change action. By way of example and not limitation, the object 104 may observe that the vehicle 102 may activate a turn signal and / or "move in" toward the target lane 128. The object 104 may then maintain or change the velocity of the object 104 .
[0045] For example, attribute data indicating that object 104 is slowing down or maintaining speed can be input into a machine learning model to generate a yield score that may indicate that object 104 is yielding. In one example, attribute data indicating that object 104 is increasing the speed of object 104 can be input into a machine learning model to generate a yield score that indicates that object 104 is not yielding.
[0046] In one example, the second attribute data can be determined after the vehicle determines the first attribute data without providing an instruction for a lane change action. Thus, the determination of the first attribute data and the second attribute data can be performed on a continuous and / or periodic basis. Furthermore, the attribute data can be input into a machine learning model that can generate a yield score associated with the object 104 on a continuous and / or periodic basis. By way of example and not limitation, the vehicle 102 can determine the attribute data associated with the vehicle 102 and / or the object 104 on a periodic basis, such as every 0.5 seconds, and can determine a set of attribute data associated with the vehicle 102 and / or the object 104. The vehicle 102 can then input the set of attribute data into the machine learning model to determine a yield score associated with the object 104.
[0047] As described above, the yielding score may be used to determine an estimated object trajectory 218, which in one example may correspond to the estimated object trajectory 130 of FIGURE 1, although the estimated object trajectory 218 may represent any path or trajectory in the environment 202. By way of example, and not by way of limitation, the estimated object trajectory 218 may indicate how the velocity of the object 104 will or will not change, and whether the object 104 will yield to the vehicle 102 or not.
[0048] FIG. 3 illustrates an example environment 300 of a vehicle 102 determining a yield score associated with an object 104 at an intersection.
[0049] As described above, the vehicle 102 may determine a vehicle trajectory 302 that includes a right turn from a current lane 304 to a target lane 306. In one example, the vehicle 102 may activate a turn signal during the vehicle's 102 approach toward an intersection.
[0050] As the vehicle 102 traverses the environment 300, the vehicle 102 can capture sensor data of a portion of the environment 300. Using the sensor data, a computing device of the vehicle 102 can detect an object 104, which may be a dynamic object that is represented in the sensor data of the environment 300. As illustrated in FIG. 3, the object 104 may be another vehicle approaching the intersection from an opposite direction. In one example, the object 104 may be stationary at the intersection. In one example, the object 104 may approach the intersection from a different direction (e.g., left side relative to the vehicle 102 at the intersection). The intersection may be an uncontrolled intersection. For example, the intersection may be an intersection that is not controlled by traffic signals and / or traffic signs (e.g., stop signs, yield signs, etc.).
[0051] As described above, the vehicle 102 may determine attribute data associated with the object and / or vehicle 102 as the vehicle 102 approaches the intersection. In one example, the intersection may be a controlled intersection where at least a portion of the intersection is associated with a traffic light and / or traffic sign. In one example, the attribute data may include sensor data that may indicate whether the intersection is controlled or uncontrolled, the status of the traffic light, and the like. A machine learning model may be trained to determine if the object 104 will match the traffic light and / or traffic sign and determine a yield score. By way of example and not by way of limitation, the vehicle 102 determines a vehicle trajectory 302 for controlling the vehicle 102 as the vehicle 102 approaches an uncontrolled intersection based at least in part on the sensor data. In the example shown, the vehicle trajectory 302 includes a right turn from a current lane 304 to a target lane 306 at the uncontrolled intersection. The attribute data may indicate that the object 104 is stationary at the intersection with the left turn signal activated. Based on the attribute data, the vehicle 102 may determine an estimated object trajectory 308 indicating that the object 104 intends to make a left turn into the target lane 306. Based on the attribute data, the vehicle 102 may determine an estimated object trajectory 308 indicating that the object 104 intends to make a left turn into the target lane 306.
[0052] The computing device of the vehicle 102 may provide the attribute data as input to a machine learning model, which may output a yield score associated with the object 104. Based on a yield score meeting or exceeding a yield score threshold and / or motion profile determined by the machine learning model, the vehicle 102 may determine that the object 104 will be able to yield to the vehicle 102 and may execute the vehicle trajectory 302.
[0053] By way of example and not by way of limitation, the attribute data may indicate that the object 104 is approaching an uncontrolled intersection and may indicate that the object 104 will slow down its speed after the vehicle activates its right turn signal. In one example, the attribute data may indicate an arrival time (e.g., relative to an area or location associated with the intersection), a distance to the intersection, etc. The attribute data may be input into a machine learning model to output a yield score that may indicate that the object 104 will yield to the vehicle 102. In one example, the yield score may indicate that the object 104 will not yield to the vehicle 102 despite the slowdown in speed. The machine learning model may be trained to distinguish an object that slows down in preparation for a turn as different from an object that slows down in preparation for a yield. As described above, the machine learning model may be trained based on captured log data and / or synthetic log data to serve as ground truth data for these situations.
[0054] 4 illustrates a block diagram 400 of a technique for determining a motion profile based at least in part on a yield score. As described above, the machine learning model 402 can receive as input the sensor data and / or attribute data 404 and determine a yield score 406 associated with an object in the environment. In one example, the machine learning model 402 can correspond to the machine learning model 118 of FIG. 1. After receiving the sensor data and / or attribute data 404, the machine learning model 402 can determine a yield score 406 associated with an object in the environment.
[0055] As noted above, the yield score 406 may indicate the likelihood (e.g., probability) that an object in a target lane will yield to a vehicle. By way of example and not by way of limitation, the yield score 406 may be a numerical value between 0 and 1, where a yield score closer to 0 may indicate a low probability that the object will yield to an autonomous vehicle, and where a yield score closer to 1 may indicate a high probability that the object will yield to an autonomous vehicle. In certain examples, such scores may vary (such as the inverses above) based on the particular formulation used.
[0056] Using the yield score 406, the motion profile component 408 can determine a motion profile 410, which can indicate how the object may behave over a period of time. In one example, the motion profile component 408 can receive candidate motion profile data 412, which can include a set of candidate motion profiles associated with other objects represented in the logged data. As described above, the logged data can include sensor data captured by one or more sensors of the vehicle, sensory data indicative of the object identified by one or more systems on board the vehicle (or generated during a post-processing stage), predictive data (whether generated during recording or subsequently) indicative of the estimated future position, velocity, and / or acceleration of the object, and / or status data indicative of diagnostic information, trajectory information, headlight and / or turn signal activation, and / or other information generated by the vehicle. The motion profiles from the logged data can be stored in a database as candidate motion profile data 412. Additionally, the candidate motion profile data 412 may indicate how an object behaved before, during, and / or after a lane change action was attempted by the vehicle, and whether the lane change action was successful.
[0057] In one example, the motion profile component 408 can include a motion profile machine learning model and generate the motion profile 410. For example, the motion profile machine learning model can be trained based on the yield scores generated by the machine learning model 402 and ground truth data indicative of the object's movement and determine a motion profile of the object based on the yield scores. The motion profile component 408 can then receive the yield scores 406 and generate the motion profile 410.
[0058] Thus, the machine learning model 402 can use the sensor data and / or attribute data 404 and / or attribute data to determine a yield score 406, and then the motion profile component 408 can use the yield score 406 and compare it to the candidate yield scores associated with the set of candidate motion profiles in the candidate motion profile data 412. Based on the comparison, the motion profile component 408 can determine a motion profile 410 that can be based on the candidate motion profiles and indicates how the object may behave over a period of time. In one example, the motion profile component 408 can use the sensor data and / or attribute data 404 in addition to the yield score 406 and compare the sensor data and / or attribute data 404 and the yield score 406 to the data stored in the candidate motion profile data 412 to determine the motion profile 410.
[0059] As illustrated in FIG. 4, the motion profile 410 may be represented as a graph with velocity along the x-axis and time along the y-axis. By way of example and not limitation, the motion profile 410 may indicate that an object associated with the motion profile 410 maintains a velocity and then reduces its velocity after a period of time (e.g., reaction time 414). The reaction time 414 may indicate an amount of time between when the vehicle initiates a lane change action and when the object changes its velocity in response to the vehicle initiating the lane change action. In one example, the motion profile component 408 may determine a motion profile 410 that includes the reaction time 414. In one example, the motion profile component 408 may determine a motion profile 410 that excludes the reaction time 414 if it determines that the object has already begun to yield to the vehicle. As described above, the motion profile 410 may be used to determine an obstacle cost associated with the lane change action and / or the target lane.
[0060] 5 illustrates a block diagram of an example system 500 for implementing the techniques described herein. In at least one example, the system 500 may include a vehicle 502.
[0061] The vehicle 502 may include a vehicle computing device 504 , a sensor system 506 , an emitter 508 , a communication connection 510 , at least one direct connection 512 , and a drive system 514 .
[0062] The vehicle computing device 504 may include a processor 516 and a memory 518 communicatively coupled to the processor 516. In the illustrated example, the vehicle 502 is an autonomous vehicle, although the vehicle 502 may be any other type of vehicle. In the illustrated example, the memory 518 of the vehicle computing device 504 stores a localization component 520, a perception component 522, a map 524, a system controller 526, and a planning / prediction component 528, including a trajectory generation component 114, a display component 530, an attribute component 116, a machine learning model 118, a motion profile component 408, and a comparison component 532. While illustrated in FIG. 5 as residing in memory 518 for illustrative purposes, it is contemplated that the localization component 520, perception component 522, map 524, system controller 526, planning / prediction component 528, trajectory generation component 114, display component 530, attribute component 116, machine learning model 118, motion profile component 408, and comparison component 532 may additionally or alternatively be accessible to the vehicle 502 (e.g., stored remotely).
[0063] In at least one example, the localization component 520 may include functionality to receive data from the sensor system 506 to determine the position and / or orientation of the vehicle 502 (e.g., one or more of an x-position, a y-position, a z-position, a roll, a pitch, or a yaw). For example, the localization component 520 may include and / or request / receive a map of the environment and continuously determine the position and / or orientation of the autonomous vehicle within the map. In one example, the localization component 520 may utilize SLAM (simultaneous localization and mapping), CLAMS (simultaneous calibration, localization, and mapping), relative SLAM, bundle adjustment, nonlinear least squares optimization, etc. to receive image data, lidar data, radar data, IMU data, GPS data, wheel encoder data, etc. to accurately determine the position of the autonomous vehicle. In one example, the localization component 520 may provide data to various components of the vehicle 502 to determine an initial position of the autonomous vehicle for generating a trajectory and / or for generating map data, as described herein.
[0064] In one example, the perception component 522 may include functionality to perform object detection, segmentation, and / or classification. In one example, the perception component 522 may provide processed sensor data indicative of the presence of an entity proximate to the vehicle 502 and / or the classification of the entity as a type of entity (e.g., automobile, pedestrian, bicyclist, building, tree, road surface, curb, sidewalk, unknown, etc.). In additional or alternative examples, the perception component 522 may provide processed sensor data indicative of one or more features (also referred to as attributes) associated with a detected entity (e.g., a tracked object) and / or the environment in which the entity is located. In one example, the features associated with an entity may include, but are not limited to, an x-position (global and / or local position), a y-position (global and / or local position), a z-position (global and / or local position), an orientation (e.g., roll, pitch, yaw), a type of entity (e.g., classification), a velocity of the entity, an acceleration of the entity, a range (size) of the entity, etc. Features associated with an environment may include, but are not limited to, the presence of another entity in the environment, the state of another entity in the environment, the time of day, the day of the week, the season, weather conditions, darkness / light indications, and the like.
[0065] The memory 518 may further include a map 524 that may be used by the vehicle 502 to navigate within the environment. For purposes of this description, a map may be any number of data structures modeled in two, three, or N dimensions that may provide information about the environment, such as, for example, but not limited to, topology (such as intersections), roadways, mountain ranges, roads, terrain, and the general environment. In one example, the map may include, but is not limited to, texture information (e.g., color information (e.g., RGB color information, Lab color information, HSV / HSL color information), etc.), intensity information (e.g., lidar information, radar information, etc.), spatial information (e.g., image data projected onto a mesh, individual "surfels" (e.g., polygons associated with individual colors and / or intensities), reflectance information (e.g., specularity information, retroreflectivity information, BRDF information, BSSRDF information, etc.). In one example, the map may include a three-dimensional mesh of the environment. In one example, as described herein, the map can be stored in a tiled format, such that individual tiles of the map represent separate portions of the environment and can be loaded into the working memory as needed. In at least one example, the map 524 can include at least one map (e.g., an image and / or a mesh). In one example, the vehicle 502 can be controlled at least in part based on the map 524. That is, the map 524 can be used in conjunction with the trajectory generation component 114, the localization component 520, the perception component 522, and / or the planning / prediction component 528 to determine the position of the vehicle 502, identify objects in the environment, and / or generate routes and / or trajectories for navigating the environment.
[0066] In one example, map 524 may be stored on a remote computing device (such as computing device 536) that is accessible via network 534. In one example, multiple maps 524 may be stored, for example, based on characteristics (e.g., type of entity, time of day, day of the week, season of the year, etc.). Storing multiple maps 524 may have similar memory requirements but increases the speed at which data in the maps can be accessed.
[0067] In at least one example, the vehicle computing device 504 may include system controllers 526, which may be configured to control the steering, propulsion, braking, safety, emitter, communication, and other systems of the vehicle 502. These system controllers 526 may communicate with and / or control systems corresponding to the drive system 514 and / or other components of the vehicle 502.
[0068] In general, the planning / prediction component 528 can determine a path to be taken by the vehicle 502 across an environment. For example, the planning / prediction component 528 can determine various routes and trajectories, as well as various levels of detail. For example, the planning / prediction component 528 can determine a route to travel from a first location (e.g., a current location) to a second location (e.g., a target location). For purposes of this description, a portion of the route may include a lane-change action from a current lane to a target lane. Additionally, the planning / prediction component 528 can generate instructions to guide the autonomous vehicle along at least a portion of the route from the current lane to the target lane. In one example, the instructions may be a trajectory, or a portion of a trajectory. In one example, the various trajectories (e.g., various lane-change actions associated with various target lanes) may be generated substantially simultaneously (e.g., within technical tolerances) according to a receding horizon technique, where one of the various trajectories is selected for the vehicle 502 to navigate.
[0069] In one example, the planning / prediction component 528 may include functionality for generating predicted trajectories (also referred to as motion profiles) of objects in an environment. For example, the planning / prediction component 528 may generate one or more predicted trajectories for vehicles, pedestrians, animals, etc. within a threshold distance from the vehicle 502. In one example, the planning / prediction component 528 may measure the track of the object and generate a trajectory for the object based on the observations and predicted behavior. Examples of generating predicted trajectories are described in U.S. patent application Ser. Nos. 16 / 151,607, filed Oct. 4, 2018, and 15 / 982,658, filed May 17, 2018. Application Ser. Nos. 16 / 151,607 and 15 / 982,658 are incorporated herein by reference in their entireties.
[0070] In one example, the trajectory generation component 114 may include functionality for generating a reference trajectory and / or a target trajectory within the drivable region. For example, the drivable region component 114 may receive sensor data from the sensor system 506 and / or may receive information about obstacles and / or objects in the environment from the perception component 522. Based at least in part on the sensor data and / or information associated with the objects (e.g., position, pose, range, classification, speed, predicted trajectory, etc.), the trajectory generation component 114 may determine the extent of the drivable region based on classification types associated with objects proximate the region and / or based on the speed of the vehicle 502.
[0071] To generate a trajectory, the trajectory generation component 114 can receive or determine a reference trajectory, which can correspond to a centerline of a road segment or other path through the environment. In one example, the trajectory generation component 114 can generate segments that can correspond to motion primitives generated according to techniques described in U.S. patent application Ser. No. 15 / 843,596, filed Dec. 15, 2017, which is incorporated herein by reference in its entirety. As noted above, the trajectory generated by the trajectory generation component 114 can include a lane change action from a current lane to a target lane.
[0072] In one example, the trajectory generation component 114 may include functionality to evaluate one or more costs for generating a target trajectory against a reference trajectory. As noted above, the one or more costs may include, but are not limited to, a reference cost, an obstacle cost, a lateral cost, and a longitudinal cost. In one example, the one or more costs may be evaluated according to techniques described in U.S. Patent Application No. 16 / 147,492, filed September 28, 2018, which is incorporated herein by reference in its entirety.
[0073] In one example, the display component 530 may include functionality to perform an indication of a lane change. For example, the display component 530 may determine that a lane change action is associated with a trajectory generated by the trajectory generation component 114. The display component 530 may then perform an indication of the lane change, which may include, for example, activating a turn indicator (e.g., one of the emitters 508, which may include, for example, a speaker and / or a light) and / or "moving in" toward the target lane.
[0074] In one example, the attribute component 116 may include functionality to determine attribute data based, at least in part, on sensor data generated by the sensor system 506. The attribute data may include speed data associated with the object, speed data associated with the autonomous vehicle, acceleration data associated with the object, acceleration data associated with the autonomous vehicle, and / or distance data indicating a distance between the object and the autonomous vehicle, although other types of data are contemplated, such as range (e.g., length, width, height) of the object, state data of the vehicle (e.g., diagnostic information, headlight and / or turn signal status, speaker status, etc.), and / or state data of the object (e.g., headlight and / or turn signal status, operator gestures of the object, etc.).
[0075] In one example, the machine learning model 118 may include functionality to receive sensor data and / or attribute data as input and output a yield score associated with an object in the environment. The machine learning model 118 may be implemented as a neural network. In one example, the machine learning model 118 may determine a motion profile based on the attribute data, which may indicate, for example, how the object will behave over a period of time. The machine learning model 118 may determine the motion profile by considering, for example, a yield score associated with the object, the velocity of the object, the acceleration of the object, a pose associated with the wheels of the object, the state of the turn signal of the object, etc.
[0076] As described above, the motion profile component 408 can store and / or access a database of motion profiles. When the machine learning model 118 determines a yield score associated with an object, the motion profile component 408 can use the sensor / attribute data and the yield score to compare to the motion profile of the motion profile data. Based on the comparison, the motion profile component 408 can determine a motion profile associated with the object in the environment that can be indicative of how the object may behave over a period of time.
[0077] The comparison component 532 may include functionality to compare the yield score output by the machine learning model 118 to a yield score threshold. A yield score that meets or exceeds the yield score threshold may indicate that the object associated with the yield score is more likely than not yielding, and a yield score that does not meet or exceed the yield score threshold may indicate that the object is more likely than not yielding. By comparing the yield score to the yield score threshold, the vehicle computing device 504 may determine that the yield score meets or exceeds the yield score threshold and determine that it is safe to perform a lane change action.
[0078] In one example, the yield score may be the median of a range of yield scores. By way of example and not limitation, the yield score may be a numerical value between 0 and 1, and the yield score threshold may be 0.5. In one example, the yield score threshold may be determined by the machine learning model 118. For example, the machine learning model 118 may be trained based on training data, which may include training attribute data, sensor data, and / or ground truth data, and determine a yield score threshold such that a yield score generated based on the input sensor data and / or attribute data will meet, exceed, or fall below the yield score threshold if the sensor data and / or attribute data indicate that the object will yield or will not yield, respectively.
[0079] The machine learning model 118 described herein may include a neural network, which is a biologically inspired algorithm in which input data passes through a series of connected layers to generate an output. Each layer in a neural network may also include another neural network, or may include any number of layers (convolutional or not). As can be understood in the context of the present disclosure, a neural network may utilize machine learning, which can refer to such a broad class of algorithms in which an output is generated based on learned parameters. For example, the neural network may include one or more neural networks such as ResNet 50, ResNet 101, ResNet 152, VGG, DenseNet, PointNet, etc.
[0080] Although described in the context of neural networks, any type of machine learning may be used consistent with this disclosure. For example, machine learning algorithms include 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 value shrinkage and selection operator (LASSO), elastic net, least angle regression (LARS), decision tree algorithms (e.g., classification and regression trees (CART), iterative dichotomy 3 (ID3), chi-squared automated interaction detection (CHAID), decision stump, conditional decision tree), Bayesian algorithms (e.g., naive Bayes, Gaussian naive Bayes, polynomial naive Bayes, average-one dependence estimator (AODE), Bayesian confidence network (BNN), Bayesian network), clustering algorithms (e.g., k-means, k-medians, expectation maximization (EM), hierarchical clustering), association rule learning algorithms (e.g., perceptron, error The learning algorithms may include, but are not limited to, backpropagation, Hopfield networks, radial basis function networks (RBFN), deep learning algorithms (e.g., deep Boltzmann machines (DBM), deep confidence networks (DBN), convolutional neural networks (CNN), stacked autoencoders), dimensionality reduction algorithms (e.g., principal component analysis (PCA), principal component regression (PCR), partial least squares regression (PLSR), Sammon mapping, multidimensional scaling (MDS), projection pursuit, linear discriminant analysis (LDA), mixed discriminant analysis (MDA), quadratic discriminant analysis (QDA), flexible discriminant analysis (FDA)), ensemble algorithms (e.g., boosting, bootstrap aggregation (bagging), adaboost, hierarchical generalization (blending), gradient boosting machines (GBM), gradient boosted regression trees (GBRT), random forests), support vector machines (SVM), supervised learning, unsupervised learning, semi-supervised learning, etc.
[0081] In at least one example, the sensor system 506 may include lidar sensors, radar sensors, ultrasonic transducers, sonar sensors, position 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, environmental sensors (e.g., temperature sensors, humidity sensors, light sensors, pressure sensors, etc.), and the like. The sensor system 506 may include various examples of each of these or other types of sensors. For example, the lidar sensors may include individual lidar sensors located at the corners, front, rear, sides, and / or top of the vehicle 502. As another example, the camera sensors may include various cameras located at various locations on the exterior and / or interior of the vehicle 502. The sensor system 506 may provide input to the vehicle computing device 504. Additionally and / or alternatively, the sensor system 506 may transmit sensor data over one or more networks 534 to one or more computing devices 536 at a particular frequency after a predetermined period of time has elapsed, such as near real time.
[0082] The vehicle 502 may also include one or more emitters 508 for emitting light and / or sound, as described above. The emitters 508 in this example may include interior audio and visual emitters for communicating with occupants of the vehicle 502. By way of example, and not by way of limitation, the interior emitters may include speakers, lights, signs, display screens, touch screens, haptic emitters (e.g., vibration and / or force feedback), mechanical actuators (e.g., seat belt tensioners, seat positioners, head rest positioners, etc.), and the like. The emitters 508 in this example also include exterior emitters. By way of example, and not by way of limitation, the exterior emitters in this example include lighting that signals a direction of travel or other indicators of the vehicle's actions (e.g., indicator lighting, signs, lighting arrays, etc.), as well as one or more audio emitters (e.g., speakers, speaker arrays, horns, etc.) that acoustically communicate with pedestrians or one or more other nearby vehicles, including acoustic beam steering technology.
[0083] Vehicle 502 may also include communications connections 510 that enable communication between vehicle 502 and other local or remote computing devices. For example, communications connections 510 may facilitate communication with other computing devices local to vehicle 502 and / or drive system 514. Communications connections 510 may also enable the vehicle to communicate with other nearby computing devices (e.g., other nearby vehicles, traffic signals, etc.). Communications connections 510 may also enable vehicle 502 to communicate with remotely operated computing devices or other remote services.
[0084] The communication connection 510 may include a physical and / or logical interface for connecting the vehicle computing device 504 to another computing device or network, such as the network 534. For example, the communication connection 510 may enable Wi-Fi based communications, such as via frequencies defined by the IEEE 802.11 standard, short-range wireless frequencies such as Bluetooth, cellular communications (e.g., 2G, 3G, 4G, 4G LTE, 5G, etc.), or any suitable wired or wireless communication protocol that enables each computing device to interface with other computing devices.
[0085] In at least one example, the vehicle 502 may include a drive system 514. In some examples, the vehicle 502 may have one drive system 514. In at least one example, when the vehicle 502 has multiple drive systems 514, the individual drive systems 514 may be located at both ends of the vehicle 502 (e.g., the front and the rear, etc.). In at least one example, the drive system 514 may include one or more sensor systems for detecting conditions surrounding the drive system 514 and / or the vehicle 502. By way of example and not by way of limitation, the sensor systems may include one or more wheel encoders (e.g., rotary encoders) for sensing the rotation of the wheels of the drive system, inertial sensors (e.g., inertial measurement units, accelerometers, gyroscopes, magnetometers, etc.) for measuring the orientation and acceleration of the drive system, cameras or other imaging sensors, ultrasonic sensors for acoustically detecting objects in the conditions surrounding the drive system, lidar sensors, radar sensors, etc. Certain sensors, such as wheel encoders, may be unique to the drive system 514. In one example, the sensor systems for the drive system 514 may overlap or complement corresponding systems (eg, sensor system 506) of the vehicle 502.
[0086] The drive system 514 may include many of the vehicle systems, including a high voltage battery, a motor for propelling the vehicle, an inverter for converting direct current from the battery to alternating current for use by other vehicle systems, a steering system including a steering motor and a steering rack (which may 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 braking force to mitigate loss of traction and maintain control, an HVAC system, lighting (e.g., lighting such as headlight / taillights for illuminating the perimeter of the vehicle), and one or more other systems (e.g., cooling systems, safety systems, on-board charging systems, other electrical components such as DC / DC converters, high voltage junctions, high voltage cables, charging systems, charging ports, etc.). The drive system 514 may also include a drive system controller for controlling the operation of various vehicle systems that may receive and pre-process data from the sensor systems. In one example, the drive system controller may include a processor and memory communicatively coupled to the one or more processors. The memory may store one or more components for performing various functionalities of the drive system 514. Additionally, drive system 514 may also include one or more communications connections that enable each drive system to communicate with one or more other local or remote computing devices.
[0087] In at least one example, the direct connection 512 can provide a physical interface for coupling one or more drive systems 514 with the body of the vehicle 502. For example, the direct connection 512 can allow for the transfer of energy, fluid, air, data, etc. between the drive systems 514 and the vehicle. In one example, the direct connection 512 can also removably secure the drive systems 514 to the body of the vehicle 502.
[0088] In some examples, the vehicle 502 may transmit sensor data over the network 534 to one or more computing devices 536. In some examples, the vehicle 502 may transmit raw sensor data to the computing device 536. In other examples, the vehicle 502 may transmit processed sensor data and / or representations of the sensor data to the computing device 536. In some examples, the vehicle 502 may transmit sensor data to the computing device 536 at a specific frequency, in near real-time, after a predefined period of time has elapsed. In some cases, the vehicle 502 may transmit the sensor data (raw or processed) to the computing device 536 as one or more log files.
[0089] The computing device 536 may include a processor 538 and a memory 540 that stores a planning / prediction component 542 .
[0090] In one example, planning / prediction component 542 may substantially correspond to planning / prediction component 528 and may include functionality for generating a trajectory for vehicle 502 in an environment. In one example, memory 540 may additionally or alternatively store any of trajectory generation component 114, attribute component 116, machine learning model 118, motion profile component 408, display component 530, and / or comparison component 532. For example, computing device 536 may determine a motion profile via motion profile component 408 based, at least in part, on logged data received from one or more vehicles and transmit the motion profile in association with motion profile component 408 to one or more vehicles for storage.
[0091] The processor 516 of the vehicle 502 and the processor 538 of the computing device 536 may be any suitable processor capable of processing data and executing instructions to perform operations as described herein. For purposes of illustration and not limitation, the processors 516 and 538 may include one or more central processing units (CPUs), graphics processing units (GPUs), or any other device or portion of a device that processes electronic data and converts it into registers or other electronic data that may be stored in a memory. In certain examples, integrated circuits (e.g., ASICs, etc.), gate arrays (e.g., FPGAs, etc.), and other hardware devices may also be considered processors so long as they are configured to implement encoded instructions.
[0092] The memories 518 and 540 are examples of non-transitory computer-readable media. The memories 518 and 540 can store an operating system and one or more software applications, instructions, programs, and / or data that implement the methods described herein and the functions assigned to the various systems. In various implementations, the memories can be implemented using any suitable memory technology, such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), non-volatile / flash type memory, or any other type of memory capable of storing information. The architectures, systems, and individual elements described herein can include many other logical, programmatic, and physical components, of which those shown in the accompanying drawings are merely examples relevant to the description herein.
[0093] In some cases, memories 518 and 540 may include at least working memory and storage memory. For example, working memory may be a limited amount of high-speed memory (e.g., cache memory) used to store data manipulated by processors 516 and 538. In some examples, memories 518 and 540 may include storage memory, which may be a relatively large amount of slower memory used for long-term storage of data. In some cases, processors 516 and 538 may not be able to directly manipulate data stored in storage memory, but may need to load data into working memory to perform operations based on the data, as described herein.
[0094] 5 is illustrated as a distributed system, it should be noted that in alternative illustrations, components of the vehicle 502 may be associated with the computing device 536 and / or components of the computing device 536 may be associated with the vehicle 502. That is, the vehicle 502 may perform one or more of the functions associated with the computing device 536, and vice versa.
[0095] 5 and 6 illustrate exemplary processes according to an embodiment of the present disclosure. These processes are illustrated as logical flow graphs, with each operation representing a sequence of operations that may be implemented in hardware, software, or a combination thereof. In the context of software, the operations represent computer-executable instructions stored on one or more computer-readable media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, etc. that perform specific functions or implement specific 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 may be combined in any order and / or in parallel to implement the process.
[0096] 6 illustrates an example process 600 for a vehicle to perform a lane-changing action based at least in part on a yielding score to determine and control a yielding score according to an embodiment of the disclosure. For example, some or all of process 600 may be performed by one or more components in FIG. 1 or FIG. 5 as described herein. For example, some or all of process 600 may be performed by vehicle computing device 110, vehicle computing device 504, and / or computing device 536.
[0097] At operation 602 of the example process 600, the process 600 may include receiving sensor data from a sensor in a vehicle, the sensor data representing at least a portion of an environment. In some examples, the vehicle may be stationary and / or parked in the environment. In some examples, the vehicle may be traversing the environment while receiving the sensor data from the sensor.
[0098] At operation 604 of the example process 600, the process 600 may include determining a lane change action for the vehicle to perform in the environment. In one example, determining the lane change action may be based at least in part on a trajectory that includes the lane change action. For example, a computing device of the vehicle may determine the lane change action as part of the trajectory based at least in part on traffic conditions and / or obstacles in the environment where the lane change action would enable the vehicle to traverse traffic and / or the environment more efficiently and / or more safely. In one example, the lane change action may be based at least in part on an approaching action. By way of example and not by way of limitation, the vehicle may follow a trajectory that includes a right turn at an approaching intersection. To prepare for the right turn, the vehicle may perform a lane change action into a target lane. In one example, the lane change action may include an unprotected change and / or a change at a protected intersection. The lane change action may be associated with the target lane and / or an intermediate lane (e.g., a bike lane, a bus lane). Although the description herein primarily relates to target lanes, it will be appreciated that the techniques described herein may additionally or alternatively be applied to intermediate lanes.
[0099] At operation 606 of the example process 600, the process 600 may include determining that an object represented in the sensor data is associated with the target lane. As described above, the vehicle may perform object detection, segmentation, and / or classification based, at least in part, on the sensor data received from the sensors, and determine that the object represented in the sensor data is associated with the target lane.
[0100] At operation 608 of the example process 600, the process 600 may include determining attribute data based at least in part on the sensor data. In certain examples, the attribute data may include attributes such as object range, object classification, object pose, object trajectory, object acceleration, object state, object distance from the vehicle, and / or object velocity, although other attributes such as light conditions of the object, operator gestures of the object, etc. are contemplated. The attribute data may additionally or alternatively include similar data corresponding to the vehicle, and / or the attribute data may be displayed with reference to attribute data associated with the vehicle (e.g., the object's velocity may be displayed with reference to the vehicle's position and / or velocity). In at least certain examples, such attribute data may include attributes determined over a time period preceding and including the current time (e.g., 1s, 2s, 4s, 8s, etc.) up to and / or including the current time.
[0101] At operation 610 of the example process 600, the process 600 may include providing the attribute data as input to a machine learning model that is trained to output a concession score.
[0102] At operation 612 of the example process 600, the process 600 may include receiving a yield score from the machine learning model indicating a probability that the object is yielding to the vehicle. The yield score may be a numerical value that may indicate a probability that the object will yield to the vehicle. The machine learning model may be trained based on similar trajectories represented in similar simulated environments from the log data.
[0103] At operation 614 of the example process 600, the process 600 may include determining whether the yield score meets or exceeds a yield score threshold. If the yield score does not meet or exceed the yield score threshold, the process 600 may return to operation 608. If the yield score meets or exceeds the yield score threshold, the process 600 may proceed to operation 616. In one example, the yield score may be associated with a cost. For example, a lower yield score may be associated with a lower probability that the object will yield, which in turn may be associated with a higher cost of performing the action of changing lanes. Similarly, a higher yield score may be associated with a higher probability that the object will yield, which in turn may be associated with a lower cost of performing the action of changing lanes. In one example, operation 614 may include determining whether the cost meets or exceeds a cost threshold.
[0104] At operation 616 of the example process 600, the process 600 may include controlling the vehicle to perform a lane-change action based at least in part on the yield score. For example, the vehicle may decide to abort the lane-change action based at least in part on determining that the yield score does not meet or exceed a yield score threshold, or the vehicle may complete the lane-change action based at least in part on determining that the yield score meets or exceeds a yield score threshold. In one example, a yield score below a yield score threshold may increase an obstacle cost associated with the lane-change action, the target lane, and / or the target trajectory. In response to the increased cost, the vehicle may decide to abort the lane-change action.
[0105] FIG. 7 illustrates an example process 700 for training a machine learning model to generate a concession score.
[0106] At operation 702 of the example process 700, the process 700 can capture and / or generate sensor data and determine attribute data therefrom, where the attribute data can be associated with objects in a database stored in a memory of the vehicle. In one example, the sensor data can be captured by one or more vehicles while traversing an environment. In one example, the sensor data can be synthetic sensor data generated in a simulated environment.
[0107] At operation 704 of the example process 700, the process 700 may include generating an indication of the success or failure of the lane change as ground truth data. The ground truth data may indicate whether the vehicle attempted, succeeded, and / or failed to perform a lane change maneuver based on the sensor data, the attribute data, and / or the motion profile. In one example, the ground truth data may indicate the motion profile (and / or the motion profile associated with the highest yield score) used in association with the lane change attempt and / or the associated attribute data.
[0108] At operation 706 of the example process 700, the sensor data can be input into a machine learning model to generate a yield score. The machine learning model can be trained to generate a yield score based at least in part on the sensor data and the ground truth data. For example, the sensor data can be input into a machine learning model where known results (e.g., known lane change successes, lane change failures, ground truth data indicative of a correct motion profile) can be used to adjust the weights and / or parameters of the machine learning model to minimize error. In some examples, the ground truth data can be labeled with the sensor data and / or attribute data. In some examples, the ground truth data can be synthetic sensor data. As described above, the machine learning model can use a loss function (e.g., L1, L2, softmax, etc.) to minimize error. Such a model may or may not be one or more of linear or logistic regression.
[0109] Various techniques described herein may be implemented in the context of software, such as computer-executable instructions or program modules, stored in computer-readable storage and executed by processors of one or more computers or other devices, such as those illustrated in the figures. Generally, program modules include routines, programs, objects, components, data structures, etc. that define operational logic for performing particular tasks or implement particular abstract data types.
[0110] Other architectures may be used to implement the described functions and are intended to be within the scope of this disclosure. Additionally, while a specific distribution of responsibilities is defined above for purposes of illustration, the various functions and responsibilities may be distributed and divided in different ways depending on the circumstances. Similarly, software may be stored and distributed in various ways and using different means, and the specific software storage and execution forms described above may be varied in many different ways. Thus, software implementing the techniques described above may be distributed across various types of computer readable media and is not limited to the specifically described forms of memory.
[0111] (Example clauses) A: The system comprises one or more processors and one or more non-transitory computer-readable media storing computer-executable instructions that, when executed, cause the one or more processors to perform operations including receiving sensor data from sensors of the autonomous vehicle, at least in part, representing an environment; determining a lane change action for the autonomous vehicle to perform in the environment; determining an object represented in the sensor data associated with a target lane associated with the lane change action; determining a presence of the object in the environment based at least in part on the sensor data; determining attribute data including first data associated with the autonomous vehicle, second data associated with the object, and a distance between the autonomous vehicle and the object based at least in part on the sensor data; inputting the attribute data into a machine learning model; receiving from the machine learning model a yield score indicative of a probability that the object will yield to the autonomous vehicle; and controlling the autonomous vehicle to perform a lane change action based at least in part on the yield score.
[0112] B: The system of paragraph A, wherein the attribute data is first attribute data associated with a first time and the distance is a first distance, and the operation further includes determining second attribute data associated with a second time, the second attribute data including third speed data associated with the autonomous vehicle, fourth speed data associated with the object, and a second distance between the autonomous vehicle and the object at the second time, and inputting the second attribute data into a machine learning model.
[0113] C: The system of paragraph B, wherein the second attribute data is further based, at least in part, on an indication of a lane change.
[0114] D: The system described in paragraph A, wherein the operations further include determining a cost associated with the lane change action based at least in part on the yield score, and controlling the autonomous vehicle is further based at least in part on the cost.
[0115] E: The system of paragraph A, wherein the object is associated with at least one of a further vehicle, a bicyclist, a motorcycle, or a truck.
[0116] F: The method comprises receiving sensor data of an environment from a sensor of the vehicle; determining a presence of an object in the environment based at least in part on the sensor data; based at least in part on the sensor data, attribute data including first speed data associated with the vehicle, second speed data associated with the object, and a distance between the vehicle and the object; inputting the attribute data into a machine learning model; receiving from the machine learning model a yield score indicative of a probability of a yield action associated with the object; and controlling the vehicle based at least in part on the yield score.
[0117] G: The method of paragraph F, wherein the attribute data is first attribute data associated with a first time and the distance is a first distance, the method further comprising determining second attribute data associated with a second time, the second attribute data including third speed data associated with the vehicle, fourth speed data associated with the object, and a second distance between the vehicle and the object, and inputting the second attribute data into a machine learning model.
[0118] H: The method of paragraph G, further comprising controlling the vehicle to perform an indication of a lane change, wherein determining the attribute data is based at least in part on the indication of the lane change.
[0119] I: The method of paragraph H, further comprising determining that the yield score meets or exceeds a yield score threshold, and controlling the vehicle is based, at least in part, on the yield score meeting or exceeding the yield score threshold.
[0120] J: The method of paragraph F, further comprising determining a predicted motion profile indicative of a predicted motion of the object based at least in part on the yield score, wherein controlling the vehicle is based at least in part on the predicted motion profile.
[0121] K: The method described in paragraph J, further comprising determining a lane change action based, at least in part, on the predicted motion profile, and controlling the vehicle includes controlling the vehicle to perform the lane change action, and the object is located in a target lane of the lane change action.
[0122] L: The method described in paragraph F, wherein making a determination that the yield score is below a yield score threshold, and controlling the vehicle is to refrain from causing the vehicle to perform a lane change action based, at least in part, on the yield score being below the yield score threshold.
[0123] M: The method of paragraph F, wherein the machine learning model is trained based, at least in part, on training attribute data and ground truth attribute data indicative of successful lane changes.
[0124] N: A non-transitory computer-readable medium storing instructions executable by a processor that, when executed, cause the processor to perform operations including receiving sensor data of an environment from a sensor of the vehicle, determining a presence of an object in the environment based at least in part on the sensor data, determining attribute data based at least in part on the sensor data, inputting the attribute data into a machine learning model, receiving a yield score from the machine learning model indicating a probability of a yield action associated with the object, and controlling the vehicle to traverse the environment based at least in part on the yield score.
[0125] O: The non-transitory computer-readable medium of paragraph N, wherein the sensor data includes simulated sensor data, the environment is a simulated environment, and the vehicle is a simulated vehicle.
[0126] P: The non-transitory computer-readable medium of paragraph N, wherein the operations further include determining second attribute data associated with a second time and inputting the second attribute data into a machine learning model.
[0127] Q: The non-transitory computer-readable medium of paragraph P, wherein the operations further include controlling the vehicle to perform a lane change indication including at least one of activating a turn signal, slowing a speed of the vehicle, increasing a speed of the vehicle, or controlling the vehicle to decrease a distance between the vehicle and a target lane.
[0128] R: The non-transitory computer-readable medium of paragraph N, wherein the operations further comprise making a determination that the yield score meets or exceeds a yield score threshold and determining a lane change action based, at least in part, on making the determination that the yield score meets or exceeds the yield score threshold, and controlling the vehicle includes controlling the vehicle to perform the lane change action.
[0129] S: The non-transitory computer-readable medium of paragraph N, wherein the machine learning model is trained, at least in part, based on ground truth data, the ground truth data including ground truth attribute data and data associated with the ground truth attribute data indicating a successful lane change.
[0130] T: The non-transitory computer-readable medium of paragraph N, wherein the operations further include determining a predicted motion profile indicative of a predicted motion of the object based at least in part on the yield score, and controlling the vehicle is further based, at least in part, on the predicted motion profile.
[0131] While the exemplary clauses described above are described with respect to one specific implementation, it should be understood that in the context of this specification, the contents of the exemplary clauses can also be implemented via a method, device, system, computer-readable medium, and / or another implementation. Furthermore, any of the exemplary clauses A-T may be implemented alone or in combination with one or more of the other exemplary clauses A-T.
[0132] (Conclusion) While one or more examples of the technology described herein have been described, various modifications, additions, permutations, and equivalents of those examples are included within the scope of the technology described herein.
[0133] In the description of the examples, reference is made to the accompanying drawings, which form a part of this application, showing specific examples of the claimed subject matter. It is understood that other examples can be used and that modifications or variations, such as structural changes, can be made. Such examples, modifications, or variations are not necessarily intended to depart from the scope of the claimed subject matter. While the steps described herein may be presented in a particular order, in some cases the order can be changed such that certain inputs are provided at different times or in a different order without changing the functionality of the described systems and methods. The procedures disclosed can also be performed in a different order. Furthermore, the various calculations herein need not be performed in the order disclosed, and other examples using alternative orders of calculations can be easily implemented. In addition to being reordered, the calculations can also be decomposed into partial calculations with the same results.
Claims
1. receiving environmental sensor data from a sensor of the vehicle; determining a presence of an object in the environment based at least in part on the sensor data; Based at least in part on the sensor data, first speed data associated with the vehicle; second velocity data associated with the object; the distance between the vehicle and the object; determining attribute data, inputting the attribute data into a machine learning model; receiving, from the machine learning model, a yield score indicative of a probability of a yield action associated with the object; determining a motion profile as a predicted trajectory of the object based at least in part on a comparison of the yielding score to candidate yielding scores associated with candidate motions; controlling the vehicle based at least in part on the predicted trajectory; A method comprising:
2. The attribute data is first attribute data associated with a first time, the distance is a first distance, and the method includes: determining second attribute data associated with a second time, the second attribute data comprising: third speed data associated with the vehicle; and fourth velocity data associated with the object; a second distance between the vehicle and the object; and and inputting the second attribute data into the machine learning model; The method of claim 1 further comprising:
3. Controlling the vehicle to perform a lane change indication. Further equipped with and determining the attribute data based at least in part further on the indication of the lane change. The method of claim 2.
4. determining whether the yielding score meets or exceeds a threshold yielding score, and controlling the vehicle is further based at least in part on the yielding score meeting or exceeding the threshold yielding score; or determining that the yielding score is below the yielding score threshold, and controlling the vehicle includes refraining from causing the vehicle to perform a lane change action based at least in part on the yielding score being below the yielding score threshold; The method of claim 3 , further comprising at least one of: determining a predicted motion profile indicative of a predicted motion of the object based at least in part on the yield score; Further equipped with and controlling the vehicle based at least in part further on the predicted motion profile.
5. The method according to any one of claims 1 to 4. determining a lane change action based at least in part on the predicted motion profile; Further equipped with controlling the vehicle includes controlling the vehicle to perform the lane change action; The object is placed in a target lane of the lane change action. The method according to claim 5. determining a cost associated with the lane change action based at least in part on the yield score; Further equipped with and controlling the vehicle is further based at least in part on the cost. The method according to claim 6.
8. The method of claim 1 , wherein the machine learning model is trained based at least in part on training attribute data and ground truth attribute data indicative of lane change success.
9. A computer program comprising coded instructions which, when executed on a computer, implements the method of any one of claims 1 to 8.
10. one or more processors; One or more non-transitory computer-readable media storing instructions that, when executed, cause the one or more processors to: receiving environmental sensor data from a sensor of the vehicle; determining a presence of objects in the environment based at least in part on the sensor data; and determining attribute data based at least in part on the sensor data; inputting the attribute data into a machine learning model; receiving a yield score from the machine learning model indicating a probability of a yield action associated with the object; determining a motion profile as a predicted trajectory of the object based at least in part on a comparison of the yielding score to candidate yielding scores associated with candidate motions; controlling the vehicle to traverse the environment based at least in part on the predicted trajectory; and one or more non-transitory computer-readable media for performing operations including A system comprising:
11. The system of claim 10 , wherein the sensor data comprises simulated sensor data, the environment is a simulated environment, and the vehicle is a simulated vehicle.
12. The attribute data is first attribute data associated with a first time, and the operation is: determining second attribute data associated with a second time; inputting the second attribute data into the machine learning model; The system of claim 10 or 11, further comprising:
13. The operation is controlling the vehicle to perform an indication of a lane change, the indication of the lane change being Activating the turn signals; Slowing the speed of the vehicle; increasing the speed of the vehicle; or Controlling the vehicle to reduce the distance between the vehicle and a target lane. Including at least one of the following: Further comprising: A system according to any one of claims 10 to 12.
14. The operation determining whether the concession score meets or exceeds a concession score threshold; determining a lane change action based at least in part on determining whether the yield score meets or exceeds the yield score threshold; and Further equipped with controlling the vehicle includes controlling the vehicle to perform the lane change action. A system according to any one of claims 10 to 13. determining a predictive motion profile indicative of a predicted motion of the object based at least in part on the yield score; Further equipped with controlling the vehicle is further based at least in part on the predicted motion profile. A system according to any one of claims 10 to 14.
Citation Information
Patent Citations
Vehicle and lane change timing determination method
JP2017217969A
Traffic lane movement support device
JP2018160173A
Autonomous vehicle operational management including operating a partially observable markov decision process model instance
WO2018147874A1