System and method for generating a base path for autonomous vehicle motion control
The computing system generates the candidate basic path of autonomous vehicles from the current attitude to the merge point, and selects the optimal path, which solves the basic path generation problem of autonomous vehicles navigating in complex environments in the prior art, and achieves efficient and safe navigation.
Patent Information
- Application Number
- CN202411970468.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2020-10-09
- Filing Date
- 2021-09-10
- Publication Date
- 2025-03-21
AI Technical Summary
The prior art is difficult to effectively generate basic paths for autonomous vehicles to navigate in complex environments, especially when lanes need to be changed.
The computing system obtains the target nominal path and the current attitude of the autonomous vehicle, determines the lane change zone and identifys the merge point, generates a candidate basic path from the current attitude to the merge point, and selects the optimal path based on the path suitability classification.
It realizes efficient navigation of autonomous vehicles in complex environments, improves the accuracy and safety of path planning, and reduces processing cycles and energy consumption.
Smart Images

Figure CN119659621A_ABST
Abstract
Description
[0001] This application is a divisional application, and the original application it is targeting is a Chinese invention patent application with a filing date of September 10, 2021, the applicant being "Aurora Operations Company", the invention name being "System and method for generating basic paths for autonomous vehicle motion control", and application number being 202180069516.X.
[0002] Related Applications
[0003] This application claims priority to and the benefit of U.S. Provisional Patent Application No. 63 / 077,285, filed on September 11, 2020, and U.S. Non-Provisional Patent Application No. 17 / 067,141, filed on October 9, 2020, the entire contents of both applications are incorporated herein by reference. Technical Field
[0004] The present disclosure generally relates to autonomous vehicles. More specifically, the present disclosure relates to path planning for autonomous vehicles. Background Art
[0005] An autonomous vehicle is a vehicle that is capable of sensing its environment and navigating without human input. In particular, an autonomous vehicle can observe its surroundings using various sensors and can attempt to understand the environment by performing various processing techniques on the data collected by the sensors. Given knowledge of its surroundings, an autonomous vehicle can identify an appropriate path of motion for navigating through such surroundings. Summary of the invention
[0006] Various aspects and advantages of the embodiments of the present disclosure will be set forth in part in the following description, or may be learned from the description, or may be learned through practice of the embodiments.
[0007] An example aspect of the present disclosure relates to a computer-implemented method. The method includes obtaining a target nominal path (e.g., by a computing system including one or more computing devices). The method includes determining (e.g., by a computing system) a current posture for an autonomous vehicle. The method includes determining (e.g., by a computing system) one or more merge points on the target nominal path. The method includes generating (e.g., by a computing system) a candidate base path from the autonomous vehicle to the corresponding merge point for each corresponding merge point in one or more merge points and based at least in part on the current posture, so that a plurality of candidate base paths are generated. The method includes generating (e.g., by a computing system) a suitability classification for each candidate base path. The method includes selecting (e.g., by a computing system) one or more candidate base paths based at least in part on the suitability classification of each corresponding candidate base path in the plurality of candidate base paths.
[0008] In some implementations, the current pose for the autonomous vehicle includes a current location and a current heading.
[0009] In some implementations, the current location of the autonomous vehicle is associated with the first lane.
[0010] In some embodiments, the target nominal path is associated with the second channel.
[0011] In some embodiments, a lane boundary separates the first lane from the second lane.
[0012] In some embodiments, the method also includes determining (eg, by a computing system and based at least in part on the current pose of the autonomous vehicle and the target nominal path) a lane change zone along the lane boundary.
[0013] In some embodiments, determining a lane change zone along a lane boundary (e.g., by a computing system and based at least in part on a current pose of the autonomous vehicle and a target nominal path) also includes generating (e.g., by the computing system) speed data associated with the autonomous vehicle and the target nominal path, and determining (e.g., by the computing system) a longitudinal plan based at least in part on the speed data.
[0014] In some embodiments, lane change zones are determined based at least in part on longitudinal planning.
[0015] In some embodiments, generating (e.g., by a computing system) a suitability classification for each candidate base path also includes determining (e.g., by a computing system) for each candidate base path whether an acceleration rate associated with the candidate base path exceeds a predetermined acceleration threshold, wherein the suitability classification is based at least in part on whether the acceleration rate exceeds the predetermined acceleration threshold.
[0016] In some embodiments, generating (e.g., by a computing system) a suitability classification for each candidate base path includes: for each candidate base path, determining (e.g., by a computing system) whether a maximum curvature associated with the candidate base path exceeds a predetermined turning threshold, wherein the suitability classification is based at least in part on whether the maximum curvature associated with the candidate base path exceeds the predetermined curvature threshold.
[0017] In some implementations, the method also includes generating (eg, by a computing system) a plurality of candidate trajectories for the autonomous vehicle based at least in part on the selected one or more candidate base paths.
[0018] In some embodiments, the method also includes determining (e.g., by a computing system) a cost associated with each of a plurality of candidate trajectories for the autonomous vehicle, and selecting (e.g., by the computing system) a candidate trajectory based at least in part on the costs associated with the plurality of candidate trajectories for the autonomous vehicle.
[0019] In some implementations, the method also includes converting (eg, by a computing system) the selected candidate trajectory into one or more vehicle controls for implementation by the autonomous vehicle.
[0020] Another example aspect of the present disclosure relates to a computing system (e.g., an autonomous vehicle computing system) for generating one or more base paths for an autonomous vehicle. The system includes one or more processors and one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the computing system to perform the steps of any of the above methods.
[0021] Another example aspect of the present disclosure relates to an autonomous vehicle. The autonomous vehicle includes one or more processors and one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the one or more processors to perform the steps of any of the above methods.
[0022] Another example aspect of the present disclosure relates to an autonomous vehicle control system. The autonomous vehicle control system includes one or more processors and one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the one or more processors to perform the steps of any of the above methods.
[0023] Another example aspect of the present disclosure relates to a computing system. The computing system includes one or more processors and one or more non-transitory computer-readable memories. The one or more non-transitory computer-readable memories store instructions that, when executed by the one or more processors, cause the computing system to perform operations. The operations include obtaining a target nominal path. The operations include determining a current posture for an autonomous vehicle. The operations include determining a lane change zone based at least in part on the current posture of the autonomous vehicle and the target nominal path. The operations include determining one or more merging points on the target nominal path. The operations include generating a candidate basic path from the autonomous vehicle to the corresponding merging point for each corresponding merging point in the one or more merging points, so that multiple candidate basic paths are generated. The operations include generating a suitability classification for each candidate basic path. The operations include selecting a candidate basic path based at least in part on the suitability classification of each corresponding candidate basic path in the multiple candidate basic paths.
[0024] In some embodiments, determining one or more merge points on the target nominal path further includes identifying an initial point along the target nominal path within the lane change zone, and identifying a first merge point at a predetermined distance from the initial point along the target nominal path.
[0025] In some implementations, determining one or more merge points on the target nominal path further includes identifying additional merge points by starting with the first merge point and identifying additional merge points along the target nominal path.
[0026] In some embodiments, the distance interval between one or more merging points remains constant.
[0027] In some embodiments, determining one or more merge points on the target nominal path further includes filtering the one or more merge points to remove any merge points that fall outside a predetermined threshold distance from the lane change zone.
[0028] Yet another example aspect of the present disclosure relates to an autonomous vehicle. The autonomous vehicle includes one or more processors and one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations. The operations include obtaining a target nominal path. The operations include determining a current posture for the autonomous vehicle. The operations include determining a lane change zone based at least in part on the current posture of the autonomous vehicle and the target nominal path. The operations include determining one or more merging points on the target nominal path. The operations include, for each respective merging point in the one or more merging points, generating a candidate basic path from the autonomous vehicle to the respective merging point. The operations include generating a suitability classification for each candidate basic path. The operations include selecting a candidate basic path from a plurality of generated candidate basic paths based at least in part on the suitability classification for each respective candidate basic path.
[0029] In some implementations, the current pose for the autonomous vehicle includes a current location and a current heading.
[0030] Other aspects of the disclosure relate to various systems, apparatus, non-transitory computer-readable media, user interfaces, and electronic devices.
[0031] The autonomous vehicle technology described herein can help improve the experience of the rider and / or operator of the autonomous vehicle, as well as provide other improvements as described herein. In addition, the autonomous vehicle technology of the present disclosure can help improve the ability of the autonomous vehicle to effectively provide transportation services to others, and support various members of the community in which the autonomous vehicle operates, including people with reduced mobility and / or people served by other transportation options. In addition, the autonomous vehicle of the present disclosure can reduce traffic congestion in the community and provide alternative forms of transportation that can provide environmental benefits.
[0032] These and other features, aspects and advantages of various embodiments of the present disclosure will be better understood with reference to the following description and appended claims.The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate example embodiments of the present disclosure and, together with the description, serve to explain the relevant principles. BRIEF DESCRIPTION OF THE DRAWINGS
[0033] A detailed discussion of embodiments pertinent to one of ordinary skill in the art is set forth in the specification with reference to the accompanying drawings, in which:
[0034] Figure 1 A block diagram of an example autonomous vehicle is depicted, according to an example embodiment of the present disclosure.
[0035] Figure 2A A diagram of an example system including multiple devices configured to perform one or more processes is depicted according to an example implementation of the present disclosure.
[0036] Figure 2B A diagram depicting an example functional diagram according to an example implementation of the present disclosure.
[0037] Figure 3A A block diagram of an example motion planning system is depicted, according to an example embodiment of the present disclosure.
[0038] Figure 3B Depicted is a block diagram of an example basis path generation system according to an example embodiment of the present disclosure.
[0039] Figure 4 Depicted is an example diagram illustrating an autonomous vehicle merging with a target path according to an example embodiment of the present disclosure.
[0040] Figure 5 Depicted is an example diagram of generation of a base path for lane changes according to an example embodiment of the present disclosure.
[0041] Figure 6 Depicted are example diagrams of generating merge points within a lane change zone ( 608 and 618 ) according to an example embodiment of the present disclosure.
[0042] Figure 7Depicted is an example diagram illustrating changes in lane boundaries according to an example embodiment of the present disclosure.
[0043] Figure 8 A flow chart of an example method according to an example embodiment of the present disclosure is depicted.
[0044] Fig. 9 An example system having means for performing operations and functions according to example aspects of the present disclosure is depicted.
[0045] Fig.10 Depicted are example system components according to example aspects of the present disclosure. DETAILED DESCRIPTION
[0046] In general, the present disclosure relates to generating a base path for use by an autonomous vehicle when the autonomous vehicle generates a motion plan for navigating in its environment. The base path can be generated during an initial portion of the path planning process. The base path can be an initial path that can be used to generate and evaluate candidate trajectories. To generate the base path, a vehicle computing system associated with the autonomous vehicle can access a nominal path of locations associated with the autonomous vehicle (e.g., a predetermined path through an area such as a lane centerline). The vehicle computing system can identify a current position and attitude of the autonomous vehicle. Based on the current position and attitude of the autonomous vehicle, the vehicle computing system can generate a base path from the current position to a point along the nominal path. The base path can then represent a specific route from the current position of the autonomous vehicle to a location along the predetermined nominal path.
[0047] In some examples, the vehicle computing system can generate a basic path for changing from a first lane to a second lane. To do so, the vehicle computing system can access a target nominal path associated with the target lane. In some examples, the vehicle computing system can identify multiple potential target nominal paths. For example, if the autonomous vehicle determines that it needs to change lanes to avoid an obstacle, the autonomous vehicle can evaluate multiple potential target lanes, each potential target lane having an associated nominal path. The vehicle computing system can access information describing the current heading, speed, and position of the autonomous vehicle. The vehicle computing system can identify at least one lane change zone along a current lane boundary associated with the autonomous vehicle (e.g., a lane boundary associated with a lane in which the autonomous vehicle is currently located).
[0048] The vehicle computing system can identify one or more potential merge points along a target nominal path (or multiple target nominal paths) based at least in part on the lane change zone. The merge point can represent a specific location along the target nominal path at which the autonomous vehicle can join the target nominal path. The vehicle computing system can generate multiple candidate base paths, each candidate base path representing a potential path from the current position of the autonomous vehicle to one of the identified merge points. Each candidate path can be evaluated to determine whether it satisfies one or more drivability constraints. The drivability constraints can include maximum allowed acceleration and turn rate, as well as other possible criteria. The vehicle computing system can select a candidate base path from the multiple candidate base paths.
[0049] In an example of the disclosed system and method, an autonomous vehicle can use a vehicle computing system to switch from a first lane to a second lane. As part of this process, the vehicle computing system can determine that the autonomous vehicle will move from the current lane of the autonomous vehicle to another lane. This determination can be made based on instructions from a remote service system and / or based on analysis of a path planning module / system associated with the vehicle computing system. The vehicle computing system can access a nominal path associated with a target lane from a map database. The vehicle computing system can identify a lane change zone based on the current position, speed, and posture of the autonomous vehicle. The lane change zone can be an area where the vehicle computing system plans to change from the current lane to the target lane. The distance and overall size of the lane change zone from the vehicle can be determined based on multiple factors, including but not limited to the current speed of the autonomous vehicle, the density of other objects in the route of travel (e.g., dense roads will result in larger lane change zones to allow greater flexibility in navigating around other actors / objects), factors associated with the environment itself (e.g., if the current lane ends, the lane change zone is placed before the end of the current lane), etc.
[0050] The vehicle computing system can alter its internally stored representation of a lane boundary between a current lane and a target lane to remove the lane boundary within the lane change zone. In this manner, the vehicle computing system can plan a path that traverses actual lane boundaries while in the lane change zone. The vehicle computing system can determine a plurality of merge points along the target nominal path. The vehicle computing system can plan a plurality of candidate base paths, each candidate base path representing a route from a current position of the autonomous vehicle to one of the determined merge points.
[0051] The vehicle computing system can evaluate each candidate base path by generating a cost value for each candidate base path. When generating the cost associated with each candidate base path, one factor that the vehicle computing system can consider is the drivability of the candidate base path. Therefore, the vehicle computing system can analyze each candidate base path to determine the maximum acceleration, speed, jerk, and / or turn rate values for the candidate base path. These values can be compared to predetermined thresholds for each of these values, and the vehicle computing system can increase the cost of candidate base paths that exceed the threshold. The vehicle computing system can select a particular candidate base path based on the costs associated with multiple candidate base paths. The vehicle computing system can then use the selected base path to generate a motion plan for the autonomous vehicle.
[0052] In some examples, the vehicle computing system can include a geometry planner. The geometry planner can access map geometry for an area surrounding the autonomous vehicle, including, but not limited to, a nominal path and lane boundaries. The geometry planner can modify the nominal path to convert between the current position and pose of the autonomous vehicle and a target path or destination for the autonomous vehicle.
[0053] More specifically, the above-mentioned vehicle computing system can be included in an autonomous vehicle (e.g., a ground-based vehicle, an air vehicle, etc.). For example, an autonomous vehicle can include a vehicle computing system. The vehicle computing system can be responsible for creating other functions such as control signals required to effectively control the autonomous vehicle. The vehicle computing system can include an autonomous computing system. The autonomous computing system can include one or more systems that enable the autonomous vehicle to plan and / or follow a given route, receive sensor data about the environment, perceive objects in the vehicle's surrounding environment (e.g., other vehicles), predict the movement of objects in the surrounding environment, and generate a trajectory for the vehicle to follow based on the route / perceived objects / predicted object movements. The autonomous system can output data indicating the generated trajectory, and can send corresponding control signals to (multiple) vehicle control systems (e.g., acceleration, steering, braking, etc. systems) to enable the autonomous vehicle to navigate autonomously (e.g., to its target destination).
[0054] To implement these operations, the autonomous computing system can include, for example, a perception system, a prediction system, and a motion planning system. Many of the functions performed by the perception system, the prediction system, and the motion planning system can be performed in whole or in part by one or more machine learning models. In addition, one or more of the perception system, the prediction system, and / or the motion planning system (or functions associated therewith) can be combined into a single system and / or share computing resources.
[0055] To help maintain awareness of the vehicle's surroundings, the vehicle computing system can access sensor data from one or more sensors (e.g., LIDAR, RADAR, cameras, etc.) to identify static objects and / or dynamic objects (actors) in the autonomous vehicle's environment. To help determine its position within the environment (and relative to these objects), the vehicle computing system can provide the sensor data to (multiple) structured machine learning models. Additionally or alternatively, the autonomous vehicle can access map data (e.g., high-definition map data, etc.) to determine the current position of the autonomous vehicle relative to other objects in the world (e.g., bicycles, pedestrians, other vehicles, buildings, etc.), as well as map features (such as, for example, lane boundaries, curbs, etc.).
[0056] The computing system of an autonomous vehicle can include multiple devices (e.g., physically connected devices, wirelessly connected devices, virtual devices running on physical machines, etc.) that implement the software graph architecture of the autonomous vehicle. For example, the computing device can implement autonomous software of the vehicle that helps allow the vehicle to operate autonomously within its environment. Each device can include a computing node configured to run one or more processes. A process can include multiple functional nodes (e.g., software functions) connected by one or more directed edges, which indicate data flows between multiple functional nodes. The device can execute corresponding multiple functional nodes (e.g., via one or more processors, etc.) to run corresponding processes. Multiple processes can be collectively configured to perform one or more tasks or services of the computing system. To this end, multiple processes can be configured to communicate with each other (e.g., send / receive messages) through one or more communication channels (e.g., wired and / or wireless networks). As an example, a computing system onboard a vehicle can organize its processes (and their respective functional nodes) into a directed software graph architecture (e.g., including subgraphs) that can be executed to communicate and perform operations of the autonomous vehicle (e.g., for autonomously sensing the vehicle's environment, planning the vehicle's movements, etc.).
[0057] The vehicle computing system can utilize the sensor data to identify one or more objects in the local environment of the autonomous vehicle. Using the sensor data, the vehicle computing system can generate perception data (e.g., current position, speed, heading, shape / size, etc.) describing the one or more objects in the vicinity of the autonomous vehicle.
[0058] The generated perception data can be used to predict the future movement of the object(s). For example, the vehicle computing system can use the perception data to generate a prediction for the movement of one or more objects as an object trajectory including one or more future coordinates / points. In some embodiments, the perception and prediction functions of the vehicle computing system can be included in the same system.
[0059] The vehicle computing system can use the perception data, prediction data, map data, and / or other data to generate a motion plan for the vehicle. As described above, part of generating the motion plan can include generating a basic path for the autonomous vehicle from a current location to a point along a target nominal path. The nominal path can represent an ideal path through an environment or a path of travel without regard to any other actors in the environment (e.g., a path traveling down the center of a lane).
[0060] A basic path can describe a specific path for an autonomous vehicle to travel from a current location to a destination location. The basic path can be generated at a system remote from the autonomous vehicle and communicated to the autonomous vehicle and / or the autonomous vehicle can generate the basic path onboard. The vehicle computing system can generate potential trajectories that the autonomous vehicle follows as it passes through the basic path. Each potential trajectory can represent a variation of the basic path, such that it can be laterally displaced along the basic path and assigned a specific speed profile. Multiple potential trajectories can be generated so that a large number of lateral variations of the basic path are considered. Each potential trajectory can be executable by the autonomous vehicle (e.g., feasible for a vehicle control system implementation). Each trajectory can be generated to include a specific amount of travel time (e.g., 8 seconds, etc.).
[0061] The autonomous vehicle can select and implement a trajectory for a particular segment of the autonomous vehicle's navigation route. For example, the trajectory can be translated and provided to a vehicle control system (e.g., via a vehicle interface / controller), which can generate specific control signals for the autonomous vehicle (e.g., changing steering, braking, speed, etc.). The specific control signals can cause the autonomous vehicle to move according to the selected trajectory.
[0062] The vehicle computing system of the autonomous vehicle can use a multi-step process to generate a trajectory for the autonomous vehicle. In some examples, some steps of the process can be performed outside of a cycle (e.g., not part of a real-time path generation cycle) and some steps of the process can be performed during a real-time path generation cycle.
[0063] The out-of-cycle steps can include generating lane geometry for a plurality of potential lanes, including but not limited to lane boundaries for one or more lanes, determining a nominal path or centerline for each lane, and / or determining any other relevant factors for a particular area. In some examples, generating lane geometry can be implemented or assisted by a geometry planner. In addition to generating lane geometry, as another out-of-cycle step, the vehicle computing system can generate a list of static objects in the relevant geographic area, including but not limited to buildings, signs, mailboxes, other semi-permanent fixtures, etc. When performing in-cycle path planning, the vehicle computing system can access the lane geometry (including one or more nominal paths).
[0064] The vehicle computing system can use information provided by extra-cycle components of the vehicle computing system (eg, lane geometry and static obstacle information) to generate a base path for the autonomous vehicle.
[0065] The basic path can be generated by a basic path generation system. The basic path generation system can include a vehicle state analysis system, a merge point selection system, a geometry modification system, and a candidate analysis system.
[0066] The vehicle state analysis system can determine the current state of the autonomous vehicle. For example, the vehicle state analysis system can determine the current position (eg, using x, y coordinates), speed, heading, acceleration, and turning radius of the autonomous vehicle.
[0067] Once the state of the autonomous vehicle is determined, the merge point selection system can generate a plurality of candidate merge points at which the autonomous vehicle can join (or rejoin) the target nominal path. In some examples, the merge point selection system can determine a lane change zone associated with joining the target nominal path (e.g., in the event that the autonomous vehicle is changing lanes). In some examples, the lane change zone is a predetermined feature of the lane geometry that represents an area where a lane change is possible. In other examples, the lane change zone can be dynamically determined based on the position and speed of the autonomous vehicle and the geometry of the lane. Thus, if the autonomous vehicle is traveling faster, the merge point selection system can select a larger lane change zone to provide additional flexibility to the autonomous vehicle.
[0068] In some examples, the merge point can be an existing feature of the lane geometry. In this case, the merge point selection system can identify all merge points within the selected lane change zone (or its vicinity). Additionally or alternatively, the merge point selection system can generate merge points by identifying an initial point along a nominal path within the lane change zone, and then identifying multiple candidate merge points by incrementally increasing the separation distance along the nominal path until the end of the lane change zone has been reached or a certain number of merge points have been generated.
[0069] The merge point selection system can filter multiple candidate merge points to remove any directly unsuitable merge points. To this end, the merge point selection system can sort / prioritize the candidate merge points based on the longitudinal distance along the nominal path. The merge point selection system can use a classifier to directly eliminate some merge points. The classifier can take as input the speed of the autonomous vehicle (v), the curvature of the autonomous vehicle (c), the lateral distance to the target nominal lane (d), and / or the heading distance (dth) between the current heading of the autonomous vehicle and the target heading at the candidate merge point. The merge point selection system can fit a function regressor (F) such that s = F (d, v, c, dth). If the longitudinal distance of the candidate merge point along the nominal path is greater than s, the merge point can be retained. If not, the merge point selection system can eliminate the point based on consideration because it is too curved (e.g., unlikely to lead to a drivable base path).
[0070] Once the plurality of candidate merge points are filtered, the merge point selection system can generate a fitting polynomial for each remaining candidate merge point. Generating the fitting polynomials is relatively inexpensive in a computational sense, and as such, the cost of doing so can be relatively small. For each fitting polynomial, the merge point selection system can determine whether the associated fitting polynomial intersects a lane boundary between a lane change zone defined by a current lane and a target lane. If not, the merge point can be eliminated from consideration.
[0071] In some examples, each candidate merge point that intersects a lane boundary within a determined lane change zone can be selected for use in generating a base path. In this way, the base path generation system can generate multiple potential base paths. In other examples, the merge point selection system can identify one or a small fixed number of candidate merge points as the most likely candidates. Note that if the base path generation does not include a lane change (e.g., the base path corrects the autonomous vehicle back to the nominal path it was already following), no merge point is generated. Instead, the merge point selection system can select a point along the nominal path (s), where s = s0 + rounded up (F(d, v, c, dth), 1.0), where S0 is the point along the current nominal path that the autonomous vehicle is predicted to reach.
[0072] Once one or more merge points are selected, the geometry modification system can determine whether the autonomous vehicle will change lanes. In some examples, the base path generation system has been explicitly instructed to change lanes (e.g., to prepare for a turn or avoid an obstacle) by the vehicle computing system or another component of the teleservices system. In other examples, the base path generation system can determine that a lane change is necessary based on an analysis of the current position of the autonomous vehicle and the location of the target nominal path.
[0073] In the event that the autonomous vehicle does not change lanes, the geometry modification system can change the stored lane boundary data (e.g., lane boundary offset) to follow the new path back to the nominal path (e.g., the centerline of the lane). The geometry modification system can determine a series of points along the proposed base path from the autonomous vehicle to a point along the nominal path. For each point, the geometry modification system can calculate a new lane boundary offset value by extending a ray vertically from the point on the new path until it intersects the existing lane boundary. This distance can be set as the new lane boundary offset.
[0074] In the case where the autonomous vehicle is changing lanes, the geometry modification system can change the stored information about lane boundaries to remove lane boundaries within the lane change zone. New lane offsets can be determined along one or more basis paths by inserting new lane offset values with a fixed distance (e.g., 2.5 meters) followed along each generated basis path.
[0075] Once the basis path generation system has generated one or more basis paths, the candidate analysis system can evaluate each candidate basis path to determine whether the candidate basis path meets one or more drivability criteria. The drivability criteria can include limits on speed, acceleration, turning radius, etc. The candidate analysis can select one or more basis paths that meet the drivability criteria.
[0076] One or more base paths can be transmitted to a spatial path generator. The spatial path generator can generate a plurality of lateral offset curves. Each lateral offset curve represents a distance changed from one or more base paths. Thus, each base path can have a plurality of associated candidate trajectories that are laterally changed from the original base path based on values in the lateral offset curves. In addition, a plurality of speed curves (which describe a target speed of the autonomous vehicle at each point along the base path) can be generated. The plurality of candidate trajectories can be generated based on different combinations of base paths, offset curves, and / or speed curves.
[0077] Once a plurality of candidate trajectories have been generated, each trajectory can be assigned a cost based on a plurality of cost determination functions.The vehicle computing system can select the candidate trajectory having the lowest total cost and implement it as a vehicle control command to control the autonomous vehicle.
[0078] An end-to-end example of the technology described herein is provided below. An autonomous vehicle can include a vehicle computing system. The vehicle computing system can obtain a target nominal path. In some examples, the target nominal path can be received from a remote server system associated with the autonomous vehicle. The vehicle computing system can determine a current posture of the autonomous vehicle. The current posture of the autonomous vehicle can include a current position and a current heading. The current position of the autonomous vehicle can be associated with a first lane and the target nominal path can be associated with a second lane. For example, if the autonomous vehicle is changing lanes to make a turn, the current lane and the target lane can be two different lanes. In some examples, a lane boundary separates the first lane and the second lane.
[0079] The vehicle computing system can determine a lane change zone based on a current posture of the autonomous vehicle and a target nominal path. In some examples, the vehicle computing system can determine the lane change zone by generating speed data associated with the autonomous vehicle and the target nominal path. The vehicle computing system can determine a longitudinal plan based on the speed data. In some examples, the lane change zone can be determined based at least in part on the longitudinal plan.
[0080] The vehicle computing system can determine one or more merge points on the target nominal path. The vehicle computing system can identify an initial point along the target nominal path within the lane change zone. The vehicle computing system can identify a first merge point at a predetermined distance from the initial point along the target nominal path.
[0081] The vehicle computing system can identify additional merge points by starting with the first merge point and identifying additional merge points along the target nominal path. In some examples, a distance interval between one or more merge points remains constant. The vehicle computing system can filter the one or more merge points to remove any merge points that fall outside a predetermined threshold distance from the lane change zone.
[0082] The vehicle computing system can generate, for each respective one of the one or more merge points, a candidate basis path from a current pose of the autonomous vehicle to the respective merge point. The vehicle computing system can generate a suitability classification for each candidate basis path.
[0083] The vehicle computing system can determine, for each candidate base path, whether the acceleration rate associated with the candidate base path exceeds a predetermined acceleration threshold. The suitability classification can be based at least in part on whether the acceleration rate exceeds the predetermined acceleration threshold. For each candidate base path, the vehicle computing system determines whether the maximum turning rate of the candidate base path exceeds the predetermined turning threshold. The suitability classification can be based at least in part on whether the maximum turning rate exceeds the predetermined turning threshold. In some examples, the turning rate of the candidate base path can be measured by determining the curvature of the candidate base path. To this end, the vehicle computing system can generate a polynomial that follows the candidate base path of at least a portion of the line described by the polynomial. The polynomial (e.g., a fitting polynomial) can be evaluated to determine its curvature and determine the first-order derivative, second-order derivative, third-order derivative, and other derivatives. Therefore, if the polynomial fit to the path represents a change in the position of the autonomous vehicle, the first-order derivative can represent its speed, the second-order derivative can represent its acceleration, and so on. The turning rate threshold can represent the maximum value of the curvature of the fitting polynomial or any derivative thereof. In some examples, the predetermined turning threshold or curvature threshold can be based on a maximum rate at which a steering mechanism of the autonomous vehicle (eg, a steering wheel) can rotate.
[0084] The vehicle computing system can select one or more candidate base paths based at least in part on a suitability classification of each respective candidate base path in the one or more candidate base paths. The vehicle computing system can generate a plurality of candidate trajectories for the autonomous vehicle based on the selected candidate base paths.
[0085] The vehicle computing system can determine a cost associated with each of a plurality of candidate trajectories for the autonomous vehicle. The vehicle computing system can select a candidate trajectory based on the costs associated with the plurality of candidate trajectories for the autonomous vehicle. The vehicle computing system can convert the selected candidate trajectory into one or more vehicle controls implemented by the autonomous vehicle.
[0086] Various devices can be configured to perform the methods and processes described herein. For example, a computing system can include (multiple) path acquisition units, (multiple) posture determination units, (multiple) zone identification units, (multiple) merge point determination units, (multiple) path generation units, (multiple) classification units, (multiple) selection units, and / or other devices for performing the operations and functions described herein. In some embodiments, one or more of the units can be implemented separately. In some embodiments, one or more units can be part of one or more other units or included in one or more other units. These devices can include (multiple) processors, (multiple) microprocessors, (multiple) graphics processing units, (multiple) logic circuits, (multiple) dedicated circuits, (multiple) application-specific integrated circuits, programmable array logic, (multiple) field programmable gate arrays, (multiple) controllers, (multiple) microcontrollers, and / or other suitable hardware. The device can also or alternatively include a software control device implemented, for example, with a processor or logic circuit system. The apparatus may include or otherwise have access to a memory, such as, for example, one or more non-transitory computer-readable storage media, such as a random access memory, a read-only memory, an electrically erasable programmable read-only memory, (multiple) erasable programmable read-only memories, (multiple) flash / other memory devices, (multiple) data registers, (multiple) databases, and / or other suitable hardware.
[0087] The device can be programmed to execute one or more algorithms for performing the operations and functions described herein. For example, the device can be configured to obtain a target nominal path. For example, the vehicle computing system can access the target nominal path data from a map database stored in an accessible computing system. The path obtaining unit is an example of a device for obtaining a target nominal path.
[0088] The apparatus can be configured to determine the current attitude of the autonomous vehicle. For example, the vehicle computing system can determine the location, speed, and heading of the autonomous vehicle. The attitude determination unit is an example of an apparatus for determining the current attitude of the autonomous vehicle.
[0089] The apparatus can be configured to determine a lane change zone based on the current posture and target nominal path of the autonomous vehicle. For example, the vehicle computing system can determine a specific distance along the lane where the lane change zone begins and ends based on the characteristics of the lane and the speed and posture of the autonomous vehicle. The zone identification unit is one example of an apparatus for determining a lane change zone based on the current posture and target nominal path of the autonomous vehicle.
[0090] The apparatus can be configured to determine one or more merge points on a target nominal path. For example, the vehicle computing system can identify a series of coordinates that make up the nominal path. The vehicle computing system can identify each coordinate from the nominal path that falls within a lane change zone as a potential merge point. The potential merge points can be filtered to remove any inappropriate merge points. The merge point determination unit is an example of an apparatus for determining one or more merge points on the target nominal path.
[0091] The apparatus can be configured to generate, for each respective one of the one or more merge points, a candidate base path from the current posture of the autonomous vehicle to the respective merge point. For example, the vehicle computing system can plan a path from the autonomous vehicle to each candidate merge point. The path generation unit is an example of an apparatus for generating, for each respective one of the one or more merge points, a candidate base path from the current posture of the autonomous vehicle to the respective merge point.
[0092] The apparatus can be configured to generate a suitability classification for each candidate basis path. For example, the vehicle computing system can evaluate the maximum acceleration rate, speed and / or turning rate of the candidate basis paths. The classification unit is an example of an apparatus for generating a suitability classification for each candidate basis path.
[0093] The apparatus can be configured to select a candidate base path based on a suitability classification of each respective candidate base path in one or more candidate base paths. For example, the vehicle computing system can select a base path that is most suitable for reaching a point on the target nominal path. The selection unit is an example of a means for selecting a candidate base path based on a suitability classification of each respective candidate base path in one or more candidate base paths.
[0094] The systems and methods described herein provide many technical effects and benefits. More specifically, the systems and methods of the present disclosure provide improved techniques for performing path planning functions associated with autonomous vehicles. Specifically, a basic path generation system that generates basic paths for use in a path planning system as described above can allow an autonomous vehicle to more efficiently travel through an environment and safely react to events and / or obstacles. As a result, the path planning system can more efficiently plan paths and select appropriate trajectories. This results in a reduction in the number of processing cycles required, a reduction in the amount of data storage required, and a reduction in the energy used by the system. Reducing energy consumption also increases the useful battery life of any battery system included in the autonomous vehicle.
[0095] With reference to the accompanying drawings, example embodiments of the present disclosure will be discussed in more detail.
[0096] Figure 1A block diagram of an example system 100 for controlling and communicating with a vehicle according to an example aspect of the present disclosure is depicted. As shown, Figure 1 A system 100 is shown that can include a vehicle 105 and a vehicle computing system 110 associated with the vehicle 105. The vehicle computing system 100 can be located onboard the vehicle 105 (eg, it can be included on and / or within the vehicle 105).
[0097] The vehicle 105 including the vehicle computing system 100 can be various types of vehicles. For example, the vehicle 105 can be an autonomous vehicle. The vehicle 105 can be a ground-based autonomous vehicle (e.g., a car, truck, bus, etc.). The vehicle 105 can be an air-based autonomous vehicle (e.g., an airplane, a helicopter, a vertical take-off and landing (VTOL) aircraft, etc.). The vehicle 105 can be a lightweight optional vehicle (e.g., a bicycle, a scooter, etc.). The vehicle 105 can be another type of vehicle (e.g., a boat, etc.). The vehicle 105 can be driven, navigated, operated, etc. with minimal and / or no interaction from a human operator (e.g., a driver, a pilot, etc.). In some embodiments, a human operator can be omitted from the vehicle 105 (and / or omitted from the remote control of the vehicle 105). In some embodiments, a human operator can be included in the vehicle 105.
[0098] The vehicle 105 can be configured to operate in a plurality of operating modes. The vehicle 105 can be configured to operate in a fully autonomous (e.g., self-driving) operating mode, in which the vehicle 105 is controllable without user input (e.g., capable of driving and navigating without input from a human operator present in the vehicle 105 and / or remote from the vehicle 105). The vehicle 105 can operate in a semi-autonomous operating mode, in which the vehicle 105 can operate with some input from a human operator present in the vehicle 105 (and / or an operator remote from the vehicle 105). The vehicle 105 can enter a manual operating mode, in which the vehicle 105 can be fully controlled by a human operator (e.g., a human driver, pilot, etc.), and can (e.g., temporarily, permanently, etc.) inhibit and / or disable from performing autonomous navigation (e.g., autonomous driving, flying, etc.). The vehicle 105 can be configured to operate in other modes such as, for example, a parking and / or sleep mode (e.g., for use between tasks / actions such as waiting for vehicle service, recharging, etc.). In some embodiments, the vehicle 105 can implement vehicle operation assistance technologies (e.g., collision mitigation systems, power steering, etc.), for example, to assist a human operator of the vehicle 105 (e.g., in manual mode, etc.).
[0099] To help maintain and switch between operating modes, the vehicle computing system 110 can store data indicating the operating mode of the vehicle 105 in a memory onboard the vehicle 105. For example, the operating mode can be defined by an operating mode data structure (e.g., rules, lists, tables, etc.) that indicates one or more operating parameters of the vehicle 105 while in a particular operating mode. For example, the operating mode data structure can indicate that the vehicle 105 will autonomously plan its movements when in a fully autonomous operating mode. The vehicle computing system 110 can access the memory when implementing an operating mode.
[0100] The operating mode of the vehicle 105 can be adjusted in a variety of ways. For example, the operating mode of the vehicle 105 can be selected remotely outside of the vehicle 105. For example, a remote computing system (of a vehicle provider and / or service entity associated with the vehicle 105) can communicate data to the vehicle 105 to instruct the vehicle 105 to enter, exit, maintain, etc. an operating mode. As an example, such data can instruct the vehicle 105 to enter a fully autonomous operating mode.
[0101] In some embodiments, the operating mode of the vehicle 105 can be set onboard and / or near the vehicle 105. For example, the vehicle computing system 110 can automatically determine when and from where the vehicle 105 enters, changes, maintains, etc. a particular operating mode (e.g., without user input). Additionally or alternatively, the operating mode of the vehicle 105 can be manually selected via one or more interfaces (e.g., key switches, buttons, etc.) located onboard the vehicle 105 and / or associated with a computing device near the vehicle 105 (e.g., a tablet operated by an authorized person located near the vehicle 105). In some embodiments, the operating mode of the vehicle 105 can be adjusted by manipulating a series of interfaces in a specific order to cause the vehicle 105 to enter a specific operating mode.
[0102] The vehicle computing system 110 can include one or more computing devices located onboard the vehicle 105. For example, the computing device(s) can be located on and / or within the vehicle 105. The computing device(s) can include various components for performing various operations and functions. For example, the computing device(s) can include one or more processors and one or more tangible, non-transitory computer-readable media (e.g., memory devices, etc.). The one or more tangible, non-transitory computer-readable media can store instructions that, when executed by the one or more processors, cause the vehicle 105 (e.g., its computing system, one or more processors, etc.) to perform operations and functions, such as those described herein for controlling an autonomous vehicle, communicating with other computing systems, etc.
[0103] The vehicle 105 can include a communication system 115 configured to allow the vehicle computing system 110 (and its computing device(s)) to communicate with other computing devices. The communication system 115 can include any suitable components for interfacing with one or more networks 120, including, for example, transmitters, receivers, ports, controllers, antennas, and / or other suitable components that can help facilitate communications. In some implementations, the communication system 115 can include multiple components (e.g., antennas, transmitters, and / or receivers) that allow it to implement and utilize multiple-input multiple-output (MIMO) techniques and communication technologies.
[0104] The vehicle computing system 110 can communicate with one or more computing devices remote from the vehicle 105 through one or more networks 120 (e.g., via one or more wireless signal connections) using the communication system 115. The network(s) 120 can exchange (send or receive) signals (e.g., electronic signals), data (e.g., data from computing devices), and / or other information, and include any combination of various wired (e.g., twisted pair cables) and / or wireless communication mechanisms (e.g., cellular, wireless, satellite, microwave, and radio frequency), and / or any desired network topology (or multiple topologies). For example, the network(s) 120 can include a local area network (e.g., an intranet), a wide area network (e.g., the Internet), a wireless LAN network (e.g., via Wi-Fi), a cellular network, a SATCOM network, a VHF network, a HF network, a WiMAX-based network, and / or any other suitable communication network (or combination thereof) for transmitting data to and / or from the vehicle 105 and / or between computing systems.
[0105] In some embodiments, the communication system 115 can also be configured to enable the vehicle 105 to communicate with and / or provide data and / or signals to and / or receive data and / or signals from a remote computing device associated with the user 125 and / or an item (e.g., an item to be picked up for customer service). For example, the communication system 115 can allow the vehicle 105 to locate and / or exchange communications with the user device 130 of the user 125. In some embodiments, the communication system 115 can allow communication between one or more systems on the vehicle 105.
[0106] like Figure 1 As shown, the vehicle 105 can include one or more sensors 135, an autonomous computing system 140, a vehicle interface 145, one or more vehicle control systems 150, and other systems, as described herein. One or more of these systems can be configured to communicate with each other via one or more communication channels. (Multiple) communication channels can include one or more data buses (e.g., controller area network (CAN)), on-board diagnostic connectors (e.g., OBD-II), and / or a combination of wired and / or wireless communication links. The on-board systems can send and / or receive data, messages, signals, etc. between each other via (multiple) communication channels.
[0107] The sensor(s) 135 can be configured to acquire sensor data 155. The sensor(s) 135 can be external sensors configured to acquire external sensor data. This can include sensor data associated with the surrounding environment of the vehicle 105. The surrounding environment of the vehicle 105 can be included / represented in the field of view of the sensor(s) 135. For example, the sensor(s) 135 can acquire images and / or other data of the environment outside the vehicle 105 and within the range and / or field of view of one or more sensors 135. The sensor(s) 135 can include one or more light detection and ranging (LIDAR) systems, one or more radio detection and ranging (RADAR) systems, one or more cameras (e.g., visible spectrum cameras, infrared cameras, etc.), one or more motion sensors, one or more audio sensors (e.g., microphones, etc.), and / or other types of imaging capture devices and / or sensors. The one or more sensors can be located at various locations of the vehicle 105, including the front, rear, left, right, top, and / or bottom of the vehicle 105. The sensor data 155 can include image data (e.g., 2D camera data, video data, etc.), RADAR data, LIDAR data (e.g., 3D point cloud data, etc.), audio data, and / or other types of data. The vehicle 105 can also include other sensors configured to acquire data associated with the vehicle 105. For example, the vehicle 105 can include (multiple) inertial measurement units, wheel odometer devices, and / or other sensors.
[0108] In some embodiments, the sensor(s) 135 can include one or more interior sensors. The interior sensor(s) can be configured to acquire sensor data 155 associated with the interior of the vehicle 105. For example, the interior sensor(s) can include one or more cameras, one or more infrared sensors, one or more motion sensors, one or more weight sensors (e.g., in seats, in luggage, etc.), and / or other types of sensors. The sensor data 155 acquired via the interior sensor(s) can include, for example, image data indicating the location of passengers or items located within the interior of the vehicle 105 (e.g., cabin, luggage, etc.). This information can be used, for example, to ensure the safety of passengers, prevent passengers from leaving items behind, confirm the cleanliness of the vehicle 105, remotely assist passengers, etc.
[0109] In some embodiments, the sensor data 155 can indicate one or more objects within the surrounding environment of the vehicle 105. The object(s) can include, for example, vehicles, pedestrians, bicycles, and / or other objects. The object(s) can be located in front of, behind, to the side, above, below, etc., the vehicle 105. The sensor data 155 can indicate locations associated with the object(s) within the surrounding environment of the vehicle 105 at one or more times. The object(s) can be static objects (e.g., not in motion) and / or dynamic objects / actors (e.g., in motion or potentially in motion) in the vehicle's environment. The sensor(s) 135 can provide the sensor data 155 to the autonomous computing system 140.
[0110] In addition to the sensor data 155, the autonomous computing system 140 can obtain map data 160. The map data 160 can provide detailed information about the surroundings of the vehicle 105 and / or the geographic area where the vehicle was, is, and / or will be located. For example, the map data 160 can provide information about: the identification and location of different roads, road segments, buildings, or other items or objects (e.g., lamp posts, sidewalks, and / or curbs); the location and direction of traffic lanes (e.g., the location and direction of parking lanes, turn lanes, bicycle lanes, or other lanes or other travel paths within a particular road and / or one or more boundary markers associated therewith); traffic control data (e.g., the location and instructions of signs, traffic lights, and / or other traffic control devices); obstruction information (e.g., temporary or permanent obstructions, etc.); event data (e.g., road closures / traffic rule changes due to bystanders, concerts, sporting events, etc.); nominal vehicle path data (e.g., indicating an ideal vehicle path such as along the center of a lane); and / or any other map data that provides information that helps the vehicle computing system 110 process, analyze, and perceive its surroundings and their relationships. In some embodiments, the map data 160 can include high-definition map data. In some embodiments, the map data 160 can include sparse map data indicating a limited number of environmental features (e.g., lane boundaries, etc.). In some embodiments, the map data can be limited to the geographic area(s) and / or operating domain in which the vehicle 105 (or autonomous vehicles generally) can travel (e.g., due to legal / regulatory constraints, autonomous capabilities, and / or other factors).
[0111] The vehicle 105 can include a positioning system 165. The positioning system 165 can determine the current location of the vehicle 105. This can help the vehicle 105 locate itself within its environment. The positioning system 165 can be any device or circuit system for analyzing the location of the vehicle 105. For example, the positioning system 165 can determine the location by using an inertial sensor (e.g., (multiple) inertial measurement units, etc.), a satellite positioning system, based on an IP address, using one or more of triangulation and / or proximity to a network access point or other network component (e.g., a cellular tower, a WIFI access point, etc.) and / or other suitable techniques. The location of the vehicle 105 can be used by various systems of the vehicle computing system 110 and / or provided to a remote computing system. For example, the map data 160 can provide the relative location of elements of the surrounding environment of the vehicle 105 to the vehicle 105. The vehicle 105 can identify its location within the surrounding environment (e.g., across six axes, etc.) based at least in part on the map data 160. For example, the vehicle computing system 110 can process the sensor data 155 (e.g., LIDAR data, camera data, etc.) to match it with a map of the surrounding environment to gain an understanding of the vehicle's position within the environment. Data indicative of the vehicle's position can be stored, communicated, and / or otherwise obtained by the autonomous computing system 140.
[0112] The autonomous computing system 140 can perform various functions for autonomously operating the vehicle 105. For example, the autonomous computing system 140 can perform the following functions: perception 170A, prediction 170B, and motion planning 170C. For example, the autonomous computing system 140 can obtain sensor data 155 via (multiple) sensors 135, process the sensor data 155 (and / or other data) to perceive its surroundings, predict the movement of objects within the surroundings, and generate appropriate motion plans through such surroundings. In some embodiments, these autonomous functions can be performed by one or more subsystems (such as, for example, perception systems, prediction systems, motion planning systems, and / or other systems) that cooperate to perceive the surroundings of the vehicle 105 and determine motion plans for controlling the movement of the vehicle 105 accordingly. In some embodiments, one or more of the perception, prediction, and / or motion planning functions 170A, 170B, 170C can be performed by the same system and / or via shared computing resources (and / or combined therein). In some embodiments, one or more of these functions can be performed via different subsystems. As further described herein, the autonomous computing system 140 can communicate with one or more vehicle control systems 150 to operate the vehicle 105 according to the motion plan (eg, via a vehicle interface 145 , etc.).
[0113] The vehicle computing system 110 (e.g., the autonomous computing system 140) can identify one or more objects within the surroundings of the vehicle 105 based at least in part on the sensor data from the sensors 135 and / or the map data 160. The objects sensed within the surroundings can be those objects within the field of view of the sensor(s) 135 and / or predicted to be occluded from the sensor(s) 135. This can include object(s) that are not in motion or predicted not to move (static objects) and / or object(s) that are in motion or predicted to be in motion (dynamic objects / actors). The vehicle computing system 110 (e.g., using a perception system, etc. to perform perception functions 170C) can process the sensor data 155, the map data 160, etc. to obtain perception data 175A. The vehicle computing system 110 can generate the perception data 175A indicating one or more states (e.g., current and / or past state(s)) of one or more objects within the surroundings of the vehicle 105. For example, the sensory data 175A for each object can describe (e.g., for a given time, time period) estimates of the object's: current and / or past location (also referred to as position); current and / or past speed / velocity; current and / or past acceleration; current and / or past heading; current and / or past orientation; size / occupancy area (e.g., represented by boundary shape, object prominence, etc.); category (e.g., pedestrian category vs. vehicle category vs. bicycle category, etc.), uncertainty associated therewith, and / or other state information. The vehicle computing system 110 can utilize one or more algorithms and / or (multiple) machine learning models that are configured to recognize (multiple) objects based at least in part on the sensor data 155. This can include, for example, one or more neural networks trained to recognize (multiple) objects within the surrounding environment of the vehicle 105 and state data associated therewith. The sensory data 175A can be used for the prediction function 170B of the autonomous computing system 140.
[0114] The vehicle computing system 110 can be configured to predict the movement of (multiple) objects within the surrounding environment of the vehicle 105. For example, the vehicle computing system 110 can generate prediction data 175B associated with such (multiple) objects. The prediction data 175B can indicate one or more predicted future locations of each respective object. For example, the prediction system 170B can determine a predicted motion trajectory along which the respective object is predicted to travel over time. The predicted motion trajectory can indicate a path that the object is predicted to traverse and the associated timing at which the object is predicted to travel along the path. The predicted path can include and / or consist of multiple waypoints. In some embodiments, the prediction data 175B can indicate the speed and / or acceleration at which the respective object is predicted to travel along its associated predicted motion trajectory. The vehicle computing system 110 can utilize one or more algorithms and / or (multiple) machine learning models that are configured to predict the future movement of (multiple) objects based at least in part on the sensor data 155, the perception data 175A, the map data 160, and / or other data. This can include, for example, one or more neural networks trained to predict the motion of object(s) within the surroundings of vehicle 105 based at least in part on the past and / or current state(s) of those objects and the environment in which the objects are located (e.g., lane boundaries in which they are traveling, etc.). Prediction data 175B can be used in motion planning functionality 170C of autonomous computing system 140.
[0115] The vehicle computing system 110 can determine a motion plan for the vehicle 105 based at least in part on the perception data 175A, the prediction data 175B, and / or other data. For example, the vehicle computing system 110 can generate motion planning data 175C indicating the motion plan. The motion plan can include vehicle actions (e.g., (multiple) speeds, (multiple) accelerations, other actions, etc.) relative to one or more objects within the surrounding environment of the vehicle 105 and the predicted movements of the objects. The motion plan can include one or more vehicle motion trajectories indicating the path followed by the vehicle 105. The vehicle motion trajectory can be a certain length and / or time range. The vehicle motion trajectory can be defined by one or more waypoints (with associated coordinates). The planned vehicle motion trajectory can indicate the path that the vehicle 105 is to follow as it traverses a route from one location to another. Therefore, when performing the motion planning function 170C, the vehicle computing system 110 can take into account the route / route data.
[0116] The motion planning function 170C can implement an optimization algorithm, a machine learning model, etc., which considers the cost data associated with the vehicle action and other objective functions (e.g., cost functions based on speed limits, traffic lights, etc.), if any, to determine the optimization variables that make up the motion plan. The vehicle computing system 110 can determine that the vehicle 105 can perform a certain action (e.g., passing an object, etc.) without increasing the potential risk of the vehicle 105 and / or violating any traffic regulations (e.g., speed limits, lane boundaries, signs, etc.). For example, the vehicle computing system 110 can evaluate the predicted motion trajectory of one or more objects during its cost data analysis to help determine the optimized vehicle trajectory through the surrounding environment. The motion planning function 170C can generate cost data associated with such a trajectory. In some embodiments, one or more of the predicted motion trajectory and / or the perceived objects may ultimately not change the movement of the vehicle 105 (e.g., due to decisive factors). In some embodiments, the motion plan can define the movement of the vehicle so that the vehicle 105 avoids (multiple) objects, reduces speed to provide more leeway to one or more objects, proceeds cautiously, performs a stop action, passes through objects, queues behind / before objects, etc.
[0117] The vehicle computing system 110 can be configured to continuously update the vehicle's motion plan and the corresponding planned vehicle motion trajectory. For example, in some embodiments, the vehicle computing system 110 can generate new motion planning data 175C / (multiple) motion plans for the vehicle 105 (e.g., multiple times per second, etc.). Each new motion plan can describe the movement of the vehicle 105 within the next planning period (e.g., the next few seconds, etc.). In addition, the new motion plan can include the newly planned vehicle motion trajectory. Therefore, in some embodiments, the vehicle computing system 110 can continuously operate to modify or otherwise generate short-term motion plans based on currently available data. Once the optimization planner has identified the optimal motion plan (or some other iteration interruption occurs), the optimal motion plan (and the planned motion trajectory) can be selected and executed by the vehicle 105.
[0118] The vehicle computing system 110 can cause the vehicle 105 to initiate motion control according to at least a portion of the motion planning data 175C. The motion control can be an operation, action, etc. related to controlling the motion of the vehicle 105. For example, the motion planning data 175C can be provided to the vehicle control system (s) 150 of the vehicle 105. The vehicle control system (s) 150 can be associated with a vehicle interface 145 configured to implement the motion planning. The vehicle interface 145 can serve as an interface / conduit between the autonomous computing system 140 of the vehicle 105 and the vehicle control system 150 and any electrical / mechanical controllers associated therewith. For example, the vehicle interface 145 can convert the motion planning into instructions for appropriate vehicle control components (e.g., acceleration control, braking control, steering control, etc.). As an example, the vehicle interface 145 can convert the determined motion planning into instructions for adjusting the steering of the vehicle 105 by "X" degrees, applying a certain amount of braking force, speeding up / slowing down, etc. The vehicle interface 145 can help facilitate reliable vehicle controls (e.g., brake control system, steering control system, acceleration control system, etc.) to execute commands and implement motion plans (e.g., by sending control signal(s), making converted plans available, etc.). This can allow the vehicle 105 to autonomously travel within the vehicle's surrounding environment.
[0119] The vehicle computing system 110 can store other types of data. For example, indications, records, and / or other data indicating the state of the vehicle (e.g., its location, motion trajectory health information, etc.), the state of one or more users of the vehicle (e.g., passengers, operators, etc.), and / or the state of the environment including one or more objects (e.g., the physical dimensions and / or appearance, location, predicted movement, etc. of one or more objects) can be stored locally in one or more memory devices of the vehicle 105. Additionally, the vehicle 105 can communicate data indicating the state of the vehicle, the state of one or more passengers of the vehicle, and / or the state of the environment to a computing system remote from the vehicle 105, which can store such information in one or more memories remote from the vehicle 105. In addition, the vehicle 105 can provide any data created and / or stored onboard the vehicle 105 to another vehicle.
[0120] The vehicle computing system 110 can include one or more vehicle user devices 180. For example, the vehicle computing system 110 can include one or more user devices having one or more display devices located onboard the vehicle 105. The display device (e.g., the screen of a tablet computer, laptop computer, and / or smart phone) can be viewed by a user of the vehicle 105 located in front of the vehicle 105 (e.g., driver's seat, front passenger seat). Additionally or alternatively, the display device can be viewed by a user of the vehicle 105 located behind the vehicle 105 (e.g., rear passenger seat). The user device(s) associated with the display device can be any type of user device, such as a tablet computer, mobile phone, laptop computer, etc. The vehicle user device(s) 180 can be configured to function as a human-machine interface. For example, the vehicle user device(s) 180 can be configured to obtain user input, which can then be utilized by the vehicle computing system 110 and / or another computing system (e.g., remote computing system, etc.). For example, a user of the vehicle 105 (e.g., a passenger for a transportation service, a vehicle operator, etc.) can provide user input to adjust the destination location of the vehicle 105. The vehicle computing system 110 and / or another computing system can update the destination location of the vehicle 105 and the route associated therewith to reflect the changes indicated by the user input.
[0121] The vehicle 105 can be configured to perform transportation services for one or more different service entities 185. The vehicle 105 can perform transportation services by, for example and as further described herein, traveling (e.g., autonomously) to a location associated with the requested transportation service, thereby allowing user(s) and / or item(s) to board or otherwise enter the vehicle 105, transporting user(s) and / or item(s), allowing user(s) and / or item(s) to disembark or otherwise exit the vehicle 105, etc. In this way, the vehicle 105 can provide transportation services for the service entity(ies) to the user.
[0122] The service entity 185 can be associated with the provision of one or more vehicle services. For example, the service entity can be an individual, a group of individuals, a company (e.g., a business entity, an organization, etc.), an entity group (e.g., an affiliated company), and / or another type of entity that provides and / or coordinates the provision of one or more vehicle services to one or more users. For example, the service entity can provide (multiple) vehicle services to users via one or more software applications (e.g., downloaded onto a user computing device), via a website, and / or via other types of interfaces that allow users to request vehicle services. As described herein, vehicle services can include transportation services (e.g., a vehicle transports (multiple) users from one location to another), delivery services (e.g., a vehicle transports (multiple) items / delivers them to a requested destination location), passenger services (e.g., a vehicle retrieves (multiple) items from a requested original location and transports / delivers the items to a requested destination location), and / or other types of services. The transportation service can be performed entirely by the vehicle 105 (eg, traveling from a user / item origin to a final destination, etc.) or by one or more vehicles and / or modes of transportation (eg, transferring users / items at intermediate transfer points, etc.).
[0123] The operating computing system 190A of the service entity 185 can help coordinate the vehicle services performed by the autonomous vehicle. The operating computing system 190A can include and / or implement one or more service platforms of the service entity. The operating computing system 190A can include one or more computing devices. (Multiple) computing devices can include various components for performing various operations and functions. For example, (multiple) computing devices can include one or more processors and one or more tangible non-transitory computer-readable media (e.g., memory devices, etc.). One or more tangible non-transitory computer-readable media can store instructions that, when executed by one or more processors, cause the operating computing system 190A (e.g., it is one or more processors, etc.) to perform operations and functions, such as those described herein for matching users and vehicles / vehicle fleets, deploying vehicles, facilitating the provision of vehicle services via autonomous vehicles, etc.
[0124] The user 125 can request a transportation service from the service entity 185. For example, the user 125 can provide user input to the user device 130 to request the transportation service (e.g., via a user interface associated with a mobile software application of the service entity 185 running on the user device 130). The user device 130 can communicate data indicating the transportation service request 195 to the operating computing system 190A associated with the service entity 185 (and / or can then communicate the data to another associated computing system of the operating computing system 190A). The transportation service request 195 can be associated with a user. The associated user can be the user who submitted the transportation service request (e.g., via an application on the user device 130). In some embodiments, the user may not be the user who submitted the transportation service request. The transportation service request can indicate the user. For example, the transportation service request can include an identifier associated with the user and / or the user's profile / account with the service entity 185. The transportation service request 195 can be generated in a manner that avoids the use of personally identifiable information and / or allows the user to control the type of information included in the transportation service request 195. The vehicle service request 195 can also be generated, communicated, stored, etc. in a secure manner to protect the information.
[0125] The vehicle service request 195 can indicate various types of information. For example, the vehicle service request 195 can indicate the type of vehicle service desired (e.g., transportation service, delivery service, passenger service, etc.), one or more locations (e.g., original location, destination location, etc.), timing constraints (e.g., pickup time, drop-off time, deadline, etc.), and / or geographic constraints (e.g., to stay within a certain area, etc.). The service request 195 can indicate the type / size / class of vehicle, such as a sedan, SUV, luxury vehicle, standard vehicle, etc. The service request 195 can indicate the products of the service entity 185. For example, the service request 195 can indicate that the user is requesting a transportation pool product, through which the user will potentially share the vehicle (and cost) with other users / projects. In some embodiments, the service request 195 can explicitly request a vehicle service provided by an autonomous vehicle or a human-driven vehicle. In some embodiments, the service request 195 can indicate multiple users who will ride / use the transportation service in the vehicle. In some implementations, the service request 195 can indicate the associated user's preferences / special accommodations (eg, music preferences, climate preferences, wheelchair accessibility, etc.) and / or other information.
[0126] The operating computing system 190A of the service entity 185 can process data indicating the vehicle service request 195 and generate a vehicle service assignment associated with the vehicle service request. The operating computing system can identify one or more vehicles that can be capable of performing the requested vehicle service to the user 195. The operating computing system 190A can identify which modes of transportation are available to the user for the requested vehicle service (e.g., light electric vehicle, human-driven vehicle, autonomous vehicle, air vehicle, etc.) and / or the number of modes of transportation / a segment of a potential trip for the user to complete the vehicle service (e.g., single or multiple modes, single or multiple segments of a trip, etc.). For example, the operating computing system 190A can determine which autonomous vehicle(s) are online with the service entity 185 (e.g., can be used for vehicle service assignment, addressing vehicle service assignment, etc.) to help identify which autonomous vehicle(s) can provide the vehicle service.
[0127] The operating computing system 190A and / or the vehicle computing system 110 can communicate with one or more other computing systems 190B remote from the vehicle 105. This can include, for example, computing systems associated with government functions (e.g., emergency services, regulatory agencies, etc.), computing systems associated with a transportation provider other than a service entity, computing systems of other vehicles (e.g., other autonomous vehicles, aviation vehicles, etc.). Communications with other computing systems 190B can occur via network(s) 120.
[0128] Figure 2A A diagram of an example computing system 200 is depicted that includes one or more of a plurality of devices (e.g., a plurality of devices 205A-N) of a computing system of the present disclosure. The plurality of devices 205A-N can include one or more devices configured to communicate via one or more wired and / or wireless communication channels (e.g., wired and / or wireless networks). Each device (e.g., 205A) can be associated with a type, an operating system 250, and / or one or more specified tasks. For example, a type can include an indication of one or more specified tasks for a corresponding device 205A. For example, the one or more specified tasks can include executing one or more processes 220A-N and / or services of the computing system 200.
[0129] Each device 205A in the plurality of devices 205A-N can include and / or have access to one or more processors 255 and / or one or more memories 260 (e.g., RAM memory, ROM memory, cache memory, flash memory, etc.). The one or more memories 260 can include one or more tangible, non-transitory computer-readable instructions that, when executed by the one or more processors 255, cause the device 205A to perform one or more operations. The operations can include, for example, executing one or more of the plurality of processes of the computing system 200. For example, each device 205A can include a computing node configured to run one or more processes 220A-N in the plurality of processes.
[0130] For example, device 205A can include orchestration service 210. Orchestration service 210 can include a startup process for device 205A. Orchestration service 210 can include, for example, an operating system service (e.g., a service running as part of operating system 250). Additionally or alternatively, orchestration service can include gRPC service. Device 205A can run orchestration service 210 to configure and start processes 220A-220N of device 205A. In some embodiments, orchestration service 210 can include a primary orchestrator and / or at least one of a plurality of secondary orchestrators. For example, each respective device in a plurality of devices can include at least one of a plurality of secondary orchestrators. The primary orchestrator can be configured to receive global configuration data and provide the global configuration data to a plurality of secondary orchestrators. The global configuration data can, for example, include one or more instructions indicating one or more specified tasks for each respective device 205A-N, software versions and / or environments on which a plurality of processes (e.g., 220A-220N of device 205A) of computing system 200 are run, and the like. The secondary orchestrator for each respective device can receive the global configuration data and configure and initiate one or more processes at the respective device based on the global configuration data.
[0131] For example, each process (e.g., process 220A, 220B) can include a plurality of functional nodes 235 (e.g., pure functions) connected by one or more directed edges indicating data flow between the plurality of functional nodes 235. Each device 205A can execute (e.g., via one or more processors, etc.) a corresponding plurality of functional nodes 235 to run the corresponding process 220A, 220B. For example, the plurality of functional nodes 235 can be arranged in one or more functional graphs 225. The functional graph 225 can include a plurality (e.g., a series) of functional nodes 235 arranged in a pipeline, a graph architecture, etc. (e.g., by one or more directed edges).
[0132] For example, refer to Figure 2B , Figure 2BA diagram of an example functional graph 225 according to an example implementation of the present disclosure is depicted. The functional graph 225 can include a plurality of functional nodes 235A-F, one or more injector nodes 230A-B, one or more ejector nodes 240A-B, and / or one or more directed edges 245. The functional nodes 235 can include one or more computational functions having one or more inputs (e.g., of one or more data types) and one or more outputs (e.g., of one or more data types). For example, the functional nodes 235A-F can be implemented such that they define one or more accepting inputs and one or more outputs. In some implementations, each functional node 235A-F can be configured to obtain one or more inputs of a single data type, perform one or more functions on the one or more inputs, and output one or more outputs of a single data type.
[0133] Each of the plurality of function nodes 235A-F can be arranged in a directed graph architecture (e.g., including a plurality of function graphs) and can be configured to obtain function input data associated with the autonomous vehicle based on one or more directed edges 245 (e.g., of the directed graph 225). For example, the function nodes 235A-F can be connected to the function graph 225 (and / or referenced to the function graph 225). Figure 2A The one or more directed edges 245 of the functional graph 225 (and / or the subgraphs 225A, 225B) are connected. The one or more directed edges 245 can indicate how data flows through the functional graph 225 (and / or Figure 2A 225B). For example, one or more directed edges 245 can be formed based on the defined inputs and outputs of each of the function nodes 235A-F of the function graph 225. The function nodes 235A-F can generate function output data based on the function input data. For example, the function nodes 235A-F can perform one or more functions of the autonomous vehicle on the function input data to obtain function output data. The function nodes 235A-F can communicate the function output data to one or more other function nodes in the plurality of function nodes 235A-F based on the one or more directed edges 245 of the directed graph 225.
[0134] Additionally or alternatively, each functional graph 225 can include one or more injector nodes 230A-B and one or more ejector nodes 220A-B configured to communicate with one or more remote devices and / or processes (e.g., Figure 2A For example, the injector nodes 230A-B can be configured to communicate with one or more devices and / or processes outside of the functional graph 225 (e.g., Figure 2A220C-220N) to obtain input data for the functional graph 225. As an example, each of the one or more injector nodes 230A-B can include a processor configured to receive the input data from the functional graph 225. Figure 2A The corresponding sensor 280 shown in Figure 1 The injector nodes 240A-B can be configured to communicate with one or more devices 205B-N and / or processes 220C-220N outside the functional graph 225 to provide functional output data of the functional graph 225 to one or more devices 205B-N and / or processes 220C-220N.
[0135] Back to Figure 2A , each device 205A-N can be configured to execute one or more functional graphs 225 to run one or more processes 220A, 220B in a plurality of processes 220A-N of the corresponding device 205A. For example, as described herein, each corresponding device can be configured to run a corresponding process set based on global configuration data. Each process 220A-N can include an execution instance of a functional graph and / or a subgraph of a functional graph. For example, in some embodiments, the functional graph 225 can be separated across multiple processes 220A, 220B. Each process 220A, 220B can include a subgraph 225A, 225B of the functional graph 225 (for example, process 220A includes subgraph 225A, process 220B includes subgraph 225B, etc.). In this case, each process 220A, 220B of the functional graph 225 can be communicatively connected through one or more functional nodes 235 of the functional graph 225. In this manner, each respective device 205A-N can be configured to run a respective process by executing a respective functional graph and / or a subgraph of the respective functional graph. Thus, each functional graph can be implemented as a single process or multiple processes. For example, messages communicated between nodes of a subgraph dedicated to motion planning of an autonomous vehicle can help identify a basic path for a vehicle given the region / environment in which the vehicle is operating, motion constraints, costs, vehicle trajectories, etc.
[0136] In some embodiments, one or more of the multiple processes 220A-N can include containerized services (application containers, etc.). For example, each process 220A-N can be implemented as a container (e.g., a docker container, etc.). For example, the multiple processes 220A-N can include one or more containerized processes extracted from the operating system 250 associated with each respective device 205A. As an example, the containerized process can be run in a docker container so that each process is run and authorized separately. For example, each respective container can include one or more specified computing resources (e.g., processing power, memory locations, etc.) dedicated to the process configured to run within the respective container. In addition, in some embodiments, each container can include an isolated runtime configuration (e.g., a software model, etc.). In this way, each container can independently run a process within a container-specific runtime environment.
[0137] Multiple devices 205A-N, sensors 280, processes 220A-N, etc. of the computing system 200 (e.g., multiple processes of the vehicle computing system 110, multiple processes of one or more remote devices, etc.) can be communicatively connected through one or more wireless and / or wired networks 120. For example, multiple devices 205A-N (and / or processes 220A-N of device 205A) can communicate through one or more communication channels. Each device and / or process can exchange messages on one or more communication channels using a message exchange format (e.g., JSON, IDL, etc.). As an example, the corresponding process can provide and / or receive messages from one or more corresponding device processes (e.g., other processes running on the same device) and / or remote processes (e.g., processes running on one or more other devices of the computing system) using one or more communication protocols (e.g., HTTP, REST, gRPC, etc.). In this way, the device can be configured to communicate messages between one or more devices, services, and / or other processes to perform one or more tasks. For example, the message can include functional output data associated with the corresponding functional node (e.g., 235).
[0138] Figure 3A A block diagram 300 of an example motion planning system is depicted in accordance with an example embodiment of the present disclosure. A vehicle computing system (e.g., Figure 1 The vehicle computing system 110 in the example can use a multi-step process to generate an autonomous vehicle (e.g., Figure 1 In some examples, some steps of the process can be performed outside of a cycle (eg, not part of a real-time path generation cycle) 302 and some steps of the process can be performed during a real-time path generation cycle.
[0139] The off-cycle planning system 302 can include a lane geometry generator 304 configured to generate lane geometry for a plurality of potential lanes, including, but not limited to, lane boundaries for one or more lanes, determine a nominal path or centerline for each lane, and / or determine any other relevant factors for a particular area. In some examples, generating lane geometry can be implemented or assisted by a geometry planner. For example, the lane geometry generator can determine the location of a nominal path through an area (e.g., following the centerline of a target lane) without requiring specific knowledge of any transient obstacles currently blocking the path.
[0140] In addition to the lane geometry generator 304, the obstacle identification system 306 can generate a list of static objects in the relevant geographic area, including but not limited to buildings, signs, mailboxes, other semi-permanent fixtures, etc. as another out-of-cycle step. Figure 1 The vehicle computing system 110 in the process accesses the lane geometry (including one or more nominal paths) and the list of obstacles generated by the out-of-cycle planning system 302 for use by the trajectory generation system 310 when performing in-cycle path planning.
[0141] Vehicle computing systems (e.g. Figure 1 The vehicle computing system 110 in FIG. 1 can employ an intra-cycle planning system 330 to generate a specific trajectory based on data generated by the extra-cycle planning system 302. The intra-cycle planning system 330 can include a trajectory generation system 310. The trajectory generation system 310 can include a basic path generator 312, a lateral offset generator 314, a spatial path generator 316, a speed profile generator 318, a trajectory generator 320, and a cost calculation system 322.
[0142] The basic path generator 312 can generate a path from an autonomous vehicle (e.g. Figure 1One or more paths from the current position of the autonomous vehicle 105 in the target nominal path to a point on the target nominal path. Once one or more basic paths are generated, they can be transmitted to the spatial path generator 316. The spatial path generator 316 can access the lateral offset generator 314 to generate multiple offset curves. Each offset curve can be generated to include multiple offset values. The offset value can represent the distance and direction that the corresponding trajectory is different from the initial path of travel at one or more times according to the basic path. For example, a special offset value can indicate that at a time of 3 seconds into the basic path, the corresponding candidate trajectory places the autonomous vehicle 0.7 meters to the left of the basic path. In some embodiments, the offset curve can be represented as a line on a graph, where one axis on the graph represents the degree and direction of the lateral variation from the initial path of travel, and the other axis represents time. Therefore, each basic path can have multiple associated candidate trajectories that change laterally from the original basic path based on the values in the lateral offset curve.
[0143] In addition, the speed profile generator 318 can generate a plurality of speed profiles (which describe the speed of the autonomous vehicle (e.g. Figure 1 The speed profile can include data indicating one or more acceleration values and the time at which the acceleration value will be achieved for each acceleration value. For example, the speed profile can include a representation of the planned acceleration at one or more points in time. Based on the acceleration, the current speed can be determined at any point in the acceleration. Additionally or alternatively, the speed profile can include one or more speeds and the autonomous vehicle (e.g., Figure 1 The speed profile can also include vehicle jerk and / or odometer position.
[0144] Additionally or alternatively, different types of speed profiles can be used and / or generated based on specific characteristics of a given basic path. For example, a first type of speed profile can be associated with a situation where emergency braking is necessary. A speed profile of the first type of speed profile can be constructed using piecewise constant jerk segments (e.g., the speed profile can include a sequence of cubic polynomials).
[0145] The second type of speed profile can be associated with situations where a specific speed is a goal (e.g., an autonomous vehicle aims to achieve a specific speed and then coast at that speed). The second type of speed profile can be generated to use a piecewise constant elasticity calculation (e.g., the speed profile can include a sequence of quartic polynomial functions).
[0146] A third type of speed profile can be associated with situations where the autonomous vehicle is targeting speed for a particular distance (e.g., a stop sign, a traffic light, a grid lock, or predicted motion of other actors within the environment). The third type of speed profile can be generated to use a piecewise constant crack calculation (e.g., the speed profile can include a sequence of quintic polynomial functions).
[0147] In some examples, the speed profile can be generated based at least in part on map data that includes stopping locations, such as stop signs, traffic lights, and / or traffic grid locks. The speed profile can also be generated based on a speed target associated with a legal speed limit or a speed target associated with one or more other factors (e.g., an average traffic speed measured for a particular area). In addition, the speed profile can be generated based at least in part on the locations and speeds of actors in locations associated with the autonomous vehicle. In some examples, the vehicle computing system can predict the future movements of one or more actors for use during the generation of the speed profile. In this manner, the autonomous vehicle (e.g., Figure 1 The autonomous vehicle 105 in FIG. 1 can adaptively adjust its movement / behavior so that it can travel after or before another action (e.g., with a safety buffer distance).
[0148] The trajectory generator 320 can generate multiple candidate trajectories based on different combinations of the base path, the offset curve, and / or the speed curve. To generate the trajectory, the offset curve can be mapped onto the base path and matched to a particular speed curve. Thus, each trajectory follows the general path of the base path using one or more lateral adjustments and using the speed and / or acceleration values specified by the speed curve. The vehicle computing system can generate a trajectory for an autonomous vehicle (e.g., Figure 1 This allows many additional alternatives to be considered quickly and efficiently while still maintaining the autonomous vehicle (e.g., Figure 1 For example, if a base path can be represented as a path through an environment, then a deviation curve for a particular trajectory can be represented as a path that follows the general route of the base path but is laterally offset from the base path as a function of distance. The degree to which a particular trajectory deviates laterally from the base path can be represented as a function of time. Similarly, a velocity curve can represent the velocity of an autonomous vehicle (e.g., Figure 1 The expected speed of the autonomous vehicle 105 in FIG. 1 . The trajectory generator 320 can generate a new trajectory by accessing the base path, selecting an offset curve and a speed curve. This information can be combined to produce a trajectory.
[0149] Once a plurality of candidate trajectories have been generated, a cost can be assigned to each trajectory by the cost calculation system 322 based on a plurality of cost determination functions. Figure 1 The vehicle computing system 110 in FIG. 1 can select the candidate trajectory with the lowest total cost 324 and implement it as a method for controlling the autonomous vehicle (eg, Figure 1 The vehicle control commands of the autonomous vehicle 105 in FIG.
[0150] Figure 3B A block diagram of an example basis path generation system 312 is depicted, according to an example embodiment of the present disclosure. A basis path can be generated by the basis path generation system 312. The basis path generation system 312 can include a state analysis system 332, a merge point selection system 334, a geometry modification system 336, and a candidate analysis system 338.
[0151] The state analysis system 332 can determine whether the autonomous vehicle (e.g. Figure 1 For example, the state analysis system 332 can determine the current state of the autonomous vehicle (e.g., Figure 1 The current position (eg, using x, y coordinates, polar coordinates in some space), speed, heading, acceleration, turn radius, and / or other operating parameters of the autonomous vehicle 105 in FIG.
[0152] Based at least in part on autonomous vehicles (e.g. Figure 1 The merge point selection system 334 can generate a plurality of candidate merge points, the autonomous vehicle (e.g. Figure 1 The autonomous vehicle 105 in the example can join (or rejoin) the target nominal path at these candidate merge points. In some examples, the merge point selection system 334 can determine a lane change zone associated with joining the target nominal path (e.g., before the autonomous vehicle (e.g., Figure 1 In some examples, the lane change zone is a predetermined feature of the lane geometry that represents an area where a lane change is possible. In other examples, the lane change zone can be based on the autonomous vehicle (e.g. Figure 1 The position and speed of the autonomous vehicle 105 in the lane and the geometry of the lane are dynamically determined. Figure 1 If the speed of the autonomous vehicle 105 in the lane change zone is higher, the merge point selection system 334 can select a larger lane change zone to provide more lane change for the autonomous vehicle (e.g., Figure 1 The autonomous vehicle 105) in FIG.
[0153] In some examples, the merge points can be existing features of the lane geometry (e.g., coordinates that make up the nominal path). In this case, the merge point selection system 334 can identify all merge points within the selected lane change zone (or its vicinity). Additionally or alternatively, the merge point selection system 334 can generate merge points by identifying an initial point along the nominal path within the lane change zone, and then identifying multiple candidate merge points by incrementally increasing the separation distance along the nominal path until the end of the lane change zone has been reached or a certain number of merge points have been generated.
[0154] The merge point selection system 334 can filter the plurality of candidate merge points to remove any directly unsuitable merge points. To this end, the merge point selection system 334 can rank / prioritize the candidate merge points based on longitudinal distance along the nominal path. The merge point selection system 334 can use a classifier to directly eliminate some merge points. The classifier can classify autonomous vehicles (e.g. Figure 1 The speed (v) of the autonomous vehicle 105 in FIG. 1 , the autonomous vehicle (e.g. Figure 1 The merge point selection system 334 can take as input the curvature (c) of the autonomous vehicle 105 in the nominal path, the lateral distance (d) to the target nominal lane, and / or the heading distance (dth) between the current heading of the autonomous vehicle and the target heading at the candidate merge point. The merge point selection system 334 can fit a function regressor (F) such that s = F (d, v, c, dth). If the longitudinal distance of the candidate merge point along the nominal path is greater than s, the merge point can be retained. If not, the merge point selection system 334 can eliminate the merge point from consideration as being too curvy (e.g., unlikely to result in a drivable base path).
[0155] Once the plurality of candidate merge points have been filtered, the merge point selection system 334 can generate a fitting polynomial for the path to each remaining candidate merge point. Generating the fitting polynomial is relatively cheap in a computational sense, and as such, the cost of doing so can be relatively small. The fitting polynomial can be an already generated polynomial that intersects the given set of points. Thus, if an autonomous vehicle (e.g., Figure 1 The path between the current position of the autonomous vehicle 105) is composed of multiple points (e.g., the autonomous vehicle (e.g., Figure 1 If the autonomous vehicle 105 in the plan is represented by coordinates of a path that the autonomous vehicle 105 (e.g., autonomous vehicle 105) travels between multiple points to follow, a fitting polynomial can be generated so that the fitting polynomial follows the planned path and intersects each point in the path. Techniques for generating fitting polynomials are well known to those skilled in the art. The merge point selection system 334 can use the generated fitting polynomial to determine the autonomous vehicle (e.g., autonomous vehicle 105) Figure 1Whether an associated path between an autonomous vehicle 105 in the image processing unit 106 and a given candidate merge point intersects a lane boundary between a current lane and a target lane (e.g., identified in map data, sensor data) without passing through a determined lane change zone. If the path does not pass through a determined lane change zone, the merge point can be eliminated from consideration.
[0156] In some examples, each candidate merge point that intersects a lane boundary within the determined lane change zone can be selected for use in generating a base path. In this manner, base path generation system 312 can generate multiple potential base paths. In other examples, merge point selection system 334 can identify one or a small fixed number of candidate merge points as the most likely candidates. Note that if base path generation 312 does not include a lane change (e.g., the base path would be for an autonomous vehicle (e.g., Figure 1 Instead, the merge point selection system 334 can select a point along the nominal path (s), where s = s0 + round up (F(d, v, c, dth), 1.0), where S0 is the autonomous vehicle along the current nominal path (e.g. Figure 1 The point where the autonomous vehicle 105 is predicted to arrive.
[0157] Once one or more merge points have been selected, the geometry modification system 336 can determine the location of the autonomous vehicle (e.g. Figure 1 In some examples, the basic path generation system 312 has been explicitly instructed by the vehicle computing system (e.g., Figure 1 In other examples, the basic path generation system 312 can generate a path based on the autonomous vehicle (e.g., the vehicle computing system 110 in the vehicle computing system 110 or another component of the remote service system) to change lanes (e.g., to prepare for a turn or avoid an obstacle). Figure 1 An analysis of the current position of the autonomous vehicle 105) and the location of the target nominal path determines that a lane change is required.
[0158] In autonomous vehicles (e.g. Figure 1 In the case where the autonomous vehicle 105 in FIG. 1 does not change lanes, the geometry modification system 336 can modify the stored lane boundary data (e.g., lane boundary offset) to follow the new path back to the nominal path (e.g., the centerline of the lane). The geometry modification system 336 can determine the lane boundary along the path from the autonomous vehicle (e.g., Figure 1A series of points of a proposed basic path from the autonomous vehicle 105 in the new path to a point along the nominal path. For each point, the geometry modification system 336 can calculate a new lane boundary offset value by extending a ray vertically from the point on the new path until it intersects the existing lane boundary. This distance can be set as the new lane boundary offset.
[0159] In autonomous vehicles (e.g. Figure 1 In the case where the autonomous vehicle 105 in the lane change zone is changing lanes, the geometry modification system 336 can change the stored information about the lane boundary to remove the lane boundary within the lane change zone. The new lane offset can be determined along one or more base paths by inserting a new lane offset value having a fixed distance (e.g., 2.5 meters) followed along each generated base path.
[0160] Once the basis path generation system 312 has generated one or more basis paths, the candidate analysis system 338 can evaluate each candidate basis path to determine whether the candidate basis path meets one or more drivability criteria. Drivability criteria can include speed (e.g., 40 m / s), acceleration (e.g., 1.4 m / s 2 ), acceleration (for example, 0.9m / s 3 ) etc. For example, the first basic path can be generated so that the merging point with the target nominal path occurs at a distance from the autonomous vehicle (eg Figure 1 within 5 meters of the current position of the autonomous vehicle 105), thereby requiring the autonomous vehicle (e.g. Figure 1 The autonomous vehicle 105 in FIG. 1 turns sharply to follow the first basic path. The estimated acceleration of traveling the first basic path can be calculated as 2 m / s 2 , which exceeds the acceleration limit value. As a result, the first basic path can be excluded so that at least one drivability criterion cannot be met. In another example, a second basic path is generated so that the merging point with the target nominal path is 100 km away from the autonomous vehicle (e.g., Figure 1 The position of the autonomous vehicle 105 in FIG. 3 is 20 meters. The estimated speed, acceleration, and jerk can be calculated to fall within predetermined limits. Therefore, a second basic path can be determined to satisfy one or more drivability criteria. The candidate analysis system 338 can select one or more basic paths that satisfy the drivability criteria.
[0161] Figure 4An example diagram illustrating an autonomous vehicle merging with a target path is depicted in accordance with an example embodiment of the present disclosure. In this example, autonomous vehicle 402 can return to the centerline of lane 404 (e.g., nominal path) in which autonomous vehicle 402 is already located. Autonomous vehicle 402 can identify a merge point 406 along target nominal path 408 using the techniques described herein.
[0162] Vehicle computing systems (e.g. Figure 1 The vehicle computing system 110 in FIG. 1 is capable of determining the current position and attitude of the autonomous vehicle 402. The vehicle computing system (e.g. Figure 1 The vehicle computing system 110 in the example can be configured to calculate the vehicle computing system 110 based on the autonomous vehicle (e.g. Figure 1 One or more basic paths 410 are generated based on the current position of the autonomous vehicle 105 in FIG. 4 and the merge point 406 .
[0163] Figure 5 An example diagram illustrating generation of a basic path for changing lanes according to an example embodiment of the present disclosure is depicted. In this example, an autonomous vehicle 502 is started outside of a target lane 504. The target lane can be defined by two lane boundaries (e.g., 506-1 and 506-2) and has a nominal path 508 (e.g., a path that follows the centerline of the target lane 504).
[0164] Vehicle computing systems (e.g. Figure 1 506 - 1 ) can identify a lane change zone 510 that identifies a portion of a lane boundary (in this case, lane boundary 506 - 1 ) that autonomous vehicle 502 can pass through to change into target lane 504 (e.g., to be within target lane 504 ). In some examples, lane change zone 510 can be selected based on the speed and position of autonomous vehicle 502 (e.g., such that lane change zone 510 allows sufficient space and time for autonomous vehicle 502 to safely change lanes). Additionally or alternatively, lane change zone 510 can be selected based on one or more legal lane destinations (e.g., a legal authority can designate some sections of a road as prohibiting special lane changes, and some sections of a road as allowing special lane changes, and a section of a road as a no-passing zone).
[0165] Based on the determined lane change zone 510 , the vehicle computing system (e.g., Figure 1The vehicle computing system 110 in FIG. 5 is capable of identifying one or more merge points (e.g., 512-1, 512-2, 512-3, and 512-4). Note that the merge point need not be within the lane region associated with the lane change zone 510. A merge point outside of the lane change zone 510 may be identified as long as the autonomous vehicle 502 will pass through the lane change zone 510 when crossing the associated lane boundary 506-1.
[0166] One (or more) of the merge points (512-1 through 512-4) can be selected, and a base path 514 can be generated from the current location of the autonomous vehicle 502 to the selected merge point (M3 512-3) in this example. In some examples, the vehicle computing system (e.g., Figure 1 The vehicle computing system 110 in FIG. 1 can generate potential base paths for multiple merge points (eg, 512 - 1 to 512 - 4 ) and evaluate their drivability. One or more potential base paths can be selected and passed to a spatial path generator (eg, Figure 3A The spatial path generator 316 in FIG.
[0167] Figure 6 An example diagram illustrating generating a merge point within a lane change zone (608 and 618) according to an example embodiment of the present disclosure is depicted. In this example, a first potential base path 606 and a second potential base path 616 can be evaluated based on their associated drivability. In this case, autonomous vehicle 602 has an initial position and heading such that first potential base path 606 to merge point 604 can fail to meet one or more drivability criteria (e.g., too frequent changes in direction and / or acceleration values exceeding predetermined limits) because it is too curvy.
[0168] For second potential basis path 616, autonomous vehicle 610 is at a similar location, but with a different initial heading, so second potential basis path 616 to merge point 614 is significantly smoother than first potential basis path 606 for autonomous vehicle 602. Thus, the initial locations and headings of autonomous vehicles 602 and 610 can have important consequences on which the merge point can ultimately be selected.
[0169] Because the first potential basis path does not satisfy one or more drivability requirements, its associated merge point can be rejected. The second potential basis path does satisfy one or more drivability requirements, so its associated merge point can be accepted.
[0170] Figure 7An example diagram illustrating changes in lane boundaries according to an example embodiment of the present disclosure is depicted. In this example, an autonomous vehicle 702 can select a particular merge point 704 and generate a basic path 706 to the merge point 704. A vehicle computing system (e.g., Figure 1 The vehicle computing system 110 in can generate an updated representation of lane boundaries along the path to the nominal path 712 .
[0171] For example, vehicle computing systems (e.g. Figure 1 The vehicle computing system 110 in the example can determine that the autonomous vehicle (e.g. Figure 1 The vehicle computing system (e.g., Figure 1 The vehicle computing system 110 in FIG. 1 can determine an offset distance (eg, 2 meters) and create updated representations of the lane boundaries ( 708 and 710 ) such that they follow the base path 706 and are offset by the offset distance to the left 708 and to the right 710 of the base path 706 .
[0172] In this way, the generated trajectory receives no cost penalty based on the old lane boundary position, and does receive a cost penalty when crossing the new lane boundary position.
[0173] Figure 8 800 is a flowchart of an example method according to an example embodiment of the present disclosure. One or more portions of method 800 can be performed by one or more computing devices (e.g., a computing device of an autonomous vehicle (e.g., autonomous vehicle 105) and / or a computing device outside / remote from the autonomous vehicle (e.g., Figure 1 One or more portions of the method 700 described herein can be implemented on hardware components of the device described herein (e.g., Figure 1 , 3A , 3B, 9, 10) are implemented as algorithms to, for example, generate information for autonomous vehicles (e.g., Figure 1 Although for purposes of illustration and discussion, Figure 8 Describes steps to be performed in a particular order, but Figure 8 The method 800 is not limited to the order or arrangement specifically shown. The various steps of the methods disclosed herein may be omitted, rearranged, combined, and / or adapted in various ways without departing from the scope of the present disclosure. For example, for purposes of illustration, various steps are described as being performed by a computing system onboard an autonomous vehicle. One or more portions may also, or alternatively, be performed by a system external to / remote from the autonomous vehicle.
[0174] Autonomous vehicles (e.g. Figure 1 The autonomous vehicle 105 in FIG. 1 can include a vehicle computing system (e.g., Figure 1 At 802, the vehicle computing system (e.g., Figure 1 The target nominal path can be obtained by the vehicle computing system 110 in the autonomous vehicle. In some examples, the target nominal path can be obtained from the vehicle computing system 110 in the autonomous vehicle (e.g. Figure 1 A remote server system associated with the autonomous vehicle 105 receives the target nominal path.
[0175] At 804, a vehicle computing system (e.g. Figure 1 The vehicle computing system 110 in the example can determine that the autonomous vehicle (e.g. Figure 1 The current posture of the autonomous vehicle 105 in FIG. Figure 1 The current posture of the autonomous vehicle 105 in FIG. 104 can include the current location and the current heading. Figure 1 The current location of the autonomous vehicle 105 in FIG. 1 can be associated with the first lane, and the target nominal path can be associated with the second lane. For example, if the autonomous vehicle (eg Figure 1 If the autonomous vehicle 105 in FIG. 1 is changing lanes to make a turn, the current lane and the target lane can be two different lanes. In some examples, a lane boundary separates the first lane and the second lane.
[0176] At 806, a vehicle computing system (eg, Figure 1 The vehicle computing system 110 in FIG. 1 can determine a lane change zone based on the current posture and target nominal path of the autonomous vehicle. In some examples, the vehicle computing system (e.g. Figure 1 The vehicle computing system 110 in the example can generate a Figure 1 The vehicle computing system (e.g., Figure 1 The vehicle computing system 110 in FIG. 1 can determine the longitudinal plan based on the speed data. In some examples, the lane change zone can be determined based at least in part on the longitudinal plan.
[0177] At 808, a vehicle computing system (eg, Figure 1 The vehicle computing system 110 in FIG. 1 can determine one or more merge points on the target nominal path. The vehicle computing system (eg, Figure 1 The vehicle computing system 110 in the example of FIG. 110 can identify an initial point along the target nominal path within the lane change zone. The vehicle computing system (e.g., Figure 1The vehicle computing system 110 in FIG. 1 can identify a first merging point at a predetermined distance from an initial point along the target nominal path.
[0178] Vehicle computing systems (e.g. Figure 1 The vehicle computing system 110 in the example can identify additional merge points by starting from the first merge point and identifying additional merge points along the target nominal path. In some examples, the distance interval between one or more merge points remains constant. The vehicle computing system (e.g., Figure 1 The vehicle computing system 110 in FIG. 1 can filter the one or more merge points to remove any merge points that fall outside a predetermined threshold distance from the lane change zone. The predetermined threshold distance can be a fixed distance, such as 10 meters. Additionally or alternatively, the predetermined threshold distance can be based on the autonomous vehicle (e.g. Figure 1 Thus, for example, the predetermined threshold distance can be set to the current speed of the autonomous vehicle (e.g. Figure 1 =10 times the current speed of the autonomous vehicle 105 in m / s. Thus, for example, if the autonomous vehicle (e.g. Figure 1 If the autonomous vehicle 105 in FIG. 1 has a speed of 1 m / s, the predetermined threshold distance can be 10 meters. If the current speed is 5 m / s, the predetermined threshold distance can be 50 meters.
[0179] At 810, a vehicle computing system (eg, Figure 1 The vehicle computing system 110 in the embodiment can generate, for each respective one of the one or more merge points, a signal from an autonomous vehicle (eg, Figure 1 At 812, the vehicle computing system (e.g., Figure 1 The vehicle computing system 110 in FIG. 1 can generate a suitability classification for each candidate base path.
[0180] Vehicle computing systems (e.g. Figure 1 The vehicle computing system 110 in the example embodiment can determine, for each candidate base path, whether the acceleration rate associated with the candidate base path exceeds a predetermined acceleration threshold. The suitability classification is based at least in part on whether the acceleration rate exceeds the predetermined acceleration threshold. For each candidate base path, the vehicle computing system (e.g., Figure 1 The vehicle computing system 110 in FIG. 1 can determine whether the curvature associated with the candidate base path exceeds a predetermined curvature threshold. The suitability classification can be based at least in part on whether the maximum curvature exceeds the predetermined curvature threshold.
[0181] At 814, a vehicle computing system (eg, Figure 1 The vehicle computing system 110 in the embodiment of the present invention can select one or more candidate base paths based at least in part on the suitability classification of each respective candidate base path in the one or more candidate base paths. The vehicle computing system (e.g., Figure 1 The vehicle computing system 110 in the embodiment of the present invention can generate a method for the autonomous vehicle (e.g., Figure 1 Multiple candidate trajectories of the autonomous vehicle 105).
[0182] Vehicle computing systems (e.g. Figure 1 The vehicle computing system 110 in the example embodiment can determine a cost associated with each of a plurality of candidate trajectories for the autonomous vehicle. Figure 1 The vehicle computing system 110 in the example can be based on the autonomous vehicle (e.g. Figure 1 The vehicle computing system (e.g., Figure 1 The vehicle computing system 110 in the example can convert the selected candidate trajectory into a trajectory to be generated by the autonomous vehicle (e.g. Figure 1 One or more vehicle controls implemented by the autonomous vehicle 105 in the example.
[0183] Fig. 9An example system 900 with units for performing operations and functions according to example aspects of the present disclosure is depicted. Various devices can be configured to perform the methods and processes described herein. For example, a computing system can include (multiple) path acquisition units, (multiple) posture determination units, (multiple) zone identification units, (multiple) merge point determination units, (multiple) path generation units, (multiple) classification units, (multiple) selection units, and / or other devices for performing the operations and functions described herein. In some embodiments, one or more of the units can be implemented separately. In some embodiments, one or more units can be part of or included in one or more other units. These devices can include (multiple) processors, (multiple) microprocessors, (multiple) graphics processing units, (multiple) logic circuits, (multiple) dedicated circuits, (multiple) application-specific integrated circuits, programmable array logic, (multiple) field programmable gate arrays, (multiple) controllers, (multiple) microcontrollers, and / or other suitable hardware. The device can also or alternatively include a software control device implemented, for example, using a processor or logic circuit system. The apparatus may include or otherwise have access to a memory, such as, for example, one or more non-transitory computer-readable storage media, such as random access memory, read-only memory, electrically erasable programmable read-only memory, erasable programmable read-only memory, flash / other memory devices, data register(s), database(s), and / or other suitable hardware.
[0184] The device can be programmed to execute one or more algorithms for performing the operations and functions described herein. For example, the device can be configured to obtain a target nominal path. For example, a vehicle computing system (e.g., Figure 1 The vehicle computing system 110 in the vehicle computing system can access the target nominal path data from the map database stored in the accessible computing system. The path obtaining unit 902 is an example of a device for obtaining the target nominal path.
[0185] The device can be configured to determine the current posture of the autonomous vehicle. For example, the vehicle computing system (e.g. Figure 1 The vehicle computing system 110 in the example can determine that the autonomous vehicle (e.g. Figure 1 The attitude determination unit 904 is an example of a device for determining the current attitude of the autonomous vehicle.
[0186] The apparatus can be configured to determine a lane change zone based on the current posture and target nominal path of the autonomous vehicle. For example, the vehicle computing system (e.g., Figure 1 The vehicle computing system 110 in the example can be configured to determine the vehicle's lane characteristics and the autonomous vehicle's (e.g., Figure 1 The zone identification unit 906 is one example of a means for determining a lane change zone based on the current posture of the autonomous vehicle and the target nominal path.
[0187] The device can be configured to determine one or more merge points on the target nominal path. For example, the vehicle computing system (e.g., Figure 1 The vehicle computing system 110 in FIG. 1 is capable of identifying a series of coordinates that constitute a nominal path. The vehicle computing system (e.g., Figure 1 The vehicle computing system 110 in FIG. 1 can identify each coordinate from the nominal path that falls within the lane change zone as a potential merge point. The potential merge points can be filtered to remove any inappropriate merge points. The merge point determination unit 908 is an example of a device for determining one or more merge points on the target nominal path.
[0188] The apparatus can be configured to generate, for each respective one of the one or more merge points, a candidate basic path from the current posture of the autonomous vehicle to the respective merge point. For example, the vehicle computing system (e.g., Figure 1 The vehicle computing system 110 in the example is capable of planning the movement of autonomous vehicles (e.g. Figure 1 The path generation unit 910 is used to generate a path from the autonomous vehicle (e.g., Figure 1 An example of a device for calculating a candidate basic path from a current posture of the autonomous vehicle 105 in FIG. 1 to a corresponding merging point.
[0189] The apparatus can be configured to generate a suitability classification for each candidate base path. For example, a vehicle computing system (e.g., Figure 1 The vehicle computing system 110 in FIG. 1 can evaluate the maximum acceleration rate, speed, and / or turning rate of the candidate base paths. The classification unit 912 is one example of a means for generating a suitability classification for each candidate base path.
[0190] The apparatus can be configured to select a candidate base path based on a suitability classification of each respective candidate base path in the one or more candidate base paths. Figure 1 The vehicle computing system 110 in the embodiment of the present invention can select the base path that is most suitable for reaching the point on the target nominal path. The selection unit 914 is an example of a means for selecting a candidate base path based on the suitability classification of each corresponding candidate base path in one or more candidate base paths.
[0191] Fig.10 Depicted are example system components according to example aspects of the present disclosure. Fig.10 The example system 1000 shown is provided by way of example only. Fig.10 The components, systems, connections, and / or other aspects shown in the drawings are optional and are provided as possible but not required examples for implementing the present disclosure. The computing system 1000 can be and / or include Figure 1 The vehicle computing system 110 of FIG. The computing system 1000 can be associated with an operating system and / or an entity associated with the vehicle 105 (such as, for example, a vehicle owner, a vehicle manager, a fleet operator, a service provider, etc.).
[0192] The computing device(s) 1005 of the computing system 1000 can include processor(s) 1015 and at least one memory 1020. The one or more processors 1015 can be any suitable processing device (e.g., processor core, microprocessor, ASIC, FPGA, controller, microcontroller, etc.), and can be one processor or multiple processors operatively connected. The memory 1020 can include one or more non-transitory computer-readable storage media, such as RAM, ROM, EEPROM, EPROM, one or more memory devices, flash memory devices, disks, data registers, etc., and combinations thereof.
[0193] The memory 1020 can store information that can be accessed by one or more processors 1015. For example, the memory 1020 (e.g., one or more non-transitory computer-readable storage media, memory devices) can include computer-readable instructions 1025 that can be executed by one or more processors 1015. The instructions 1025 can be software written in any suitable programming language or can be implemented in hardware. Additionally or alternatively, the instructions 1025 can be executed in logically and / or virtually separate threads on (multiple) processors 1015.
[0194] For example, memory 1020 onboard vehicle 105 can store instructions 1025 that, when executed by one or more processors 1015, cause one or more processors 1015 (e.g., in vehicle computing system 112) to perform operations, such as any operations and functions of computing device(s) 1005 and / or vehicle computing system 110 (and its subsystems (e.g., motion planner system 170C, etc.)), any operations and functions configured for vehicle computing system 110 (and / or its subsystems), any portion of the methods described herein, and / or any other operations and functions described herein. Memory of a system external to a vehicle can store instructions to perform any operations and functions described herein external to a vehicle and / or operations and functions of an autonomous vehicle (its computing system), methods, and / or any other operations and functions described herein.
[0195] The memory 1020 can store data 1030 that can be obtained (e.g., received, accessed, written, manipulated, created, generated, etc.) and / or stored. The data 1030 can include, for example, service data (e.g., trip data, route data, user data, etc.), sensor data, map data, perception data, prediction data, motion planning data, merge point data, acceleration data, threshold drivability data, basic path data, nominal path data, speed profile data, deviation profile data, drivability criteria data, and / or other data / information as described herein. In some embodiments, the computing device(s) 1005 can obtain data from one or more memories remote from the autonomous vehicle 102.
[0196] The computing device(s) 1005 can also include a communication interface 1040 for communicating with one or more other systems (e.g., remote computing systems). The communication interface 1040 can include any circuits, components, software, etc. for communicating via one or more networks (e.g., network(s)). In some implementations, the communication interface 1040 can include, for example, one or more of a communication controller, a receiver, a transceiver, a transmitter, a port, a conductor, software, and / or hardware for communicating data.
[0197] The computing tasks discussed herein that are performed at a computing device (or devices) remote from the autonomous vehicle can be performed alternatively at the autonomous vehicle (e.g., via a vehicle computing system), and vice versa. Such configurations can be implemented without departing from the scope of the present disclosure. The use of computer-based systems allows for various possible configurations, combinations, and divisions of tasks and functionality between and within components. Computer-implemented operations can be performed on a single component or across multiple components. Computer-implemented tasks and / or operations can be performed sequentially or in parallel. Data and instructions can be stored in a single memory device or across multiple memory devices.
[0198] Aspects of the present disclosure have been described according to the illustrative embodiments of the present disclosure. By reading this disclosure, a person of ordinary skill in the art will be able to conceive of many other embodiments, modifications and / or variations within the scope and spirit of the appended claims. Any and all features in the following claims may be combined and / or rearranged in any possible way.
[0199] Although the subject matter has been described in detail with respect to various specific example embodiments of the subject matter, each example is provided by way of explanation rather than limitation of the present disclosure. Those skilled in the art, after obtaining an understanding of the foregoing, can easily produce changes, modifications and / or equivalents to these embodiments. Therefore, the present disclosure does not exclude including these modifications, changes and / or additions to the subject matter, which are obvious to those of ordinary skill in the art. For example, a feature shown and / or described as part of one embodiment can be used together with another embodiment to produce yet another embodiment. Therefore, the present disclosure is intended to cover these changes, variants and / or equivalents.
Claims
1. A computer-implemented method for controlling an autonomous vehicle, comprising: determining a target lane for the autonomous vehicle, the target lane being different from a current lane in which the autonomous vehicle is traveling; identifying a merge point in the target lane, the merge point describing a location between two vehicles in the target lane; Determining that the autonomous vehicle should enter the target lane at the merging point, wherein determining that the autonomous vehicle should enter the target lane includes: processing a plurality of features with a learned lane change model to determine whether a lane change criterion is satisfied, wherein the lane change criterion indicates a cost of entering the target lane at the merge point, and Determining that entering the target lane at the merge point does not violate a plurality of constraints; determining a motion plan for entering the target lane at the merge point; and The autonomous vehicle is controlled and navigated according to the motion plan.
2. The computer-implemented method of claim 1 , wherein: Identifying a merge point in the target lane includes: identifying a lane change region in the target lane; identifying one or more potential merge points in the target lane based on the lane change region; and A merge point is selected from the one or more potential merge points.
3. The computer-implemented method of claim 1 , wherein: The plurality of characteristics include at least one of a respective acceleration, a respective speed, or a respective turn rate associated with entering the target lane at the merge point.
4. The computer-implemented method of claim 3, wherein: The corresponding acceleration includes a maximum acceleration, wherein, The corresponding speed includes a maximum speed, and wherein, The corresponding turning rates include a maximum turning rate.
5. The computer-implemented method of claim 4, wherein: Determining whether the lane change criteria are met includes at least one of the following: determining whether the maximum acceleration exceeds a predetermined acceleration threshold; determining whether the maximum speed exceeds a predetermined speed threshold; or A determination is made as to whether the maximum turn rate exceeds a predetermined turn rate threshold.
6. The computer-implemented method of claim 1 , wherein: The target lane is adjacent to the current lane.
7. The computer-implemented method of claim 1 , wherein: The learned lane change model is configured to evaluate costs associated with one or more vehicle actions associated with entering the target lane at the merge point.
8. The computer-implemented method of claim 1 , wherein: The plurality of constraints include one or more of a stopping location, a speed target, or a safety buffer distance.
9. The computer-implemented method of claim 1 , wherein: The lane change criteria include restrictions on one or more of the plurality of features.
10. The computer-implemented method of claim 1, wherein: Controlling the autonomous vehicle to navigate according to the motion plan includes: The motion plan is converted into one or more vehicle controls for implementation by the autonomous vehicle.
11. An autonomous vehicle control system comprising: one or more processors; as well as One or more non-transitory computer-readable media storing instructions for causing the one or more processors to: determining a target lane for the autonomous vehicle, the target lane being different from a current lane in which the autonomous vehicle is traveling; identifying a merge point in the target lane, the merge point describing a location between two vehicles in the target lane; Determining that the autonomous vehicle should enter the target lane at the merging point, wherein determining that the autonomous vehicle should enter the target lane includes: processing a plurality of features with a learned lane change model to determine whether a lane change criterion is satisfied, wherein the lane change criterion indicates a cost of entering the target lane at the merge point, and Determining that entering the target lane at the merge point does not violate a plurality of constraints; determining a motion plan for entering the target lane at the merge point; and The autonomous vehicle is controlled to navigate according to the motion plan.
12. The autonomous vehicle control system of claim 11, wherein: Identifying a merge point in the target lane includes: identifying a lane change region in the target lane; identifying one or more potential merge points in the target lane based on the lane change region; and A merge point is selected from the one or more potential merge points.
13. The autonomous vehicle control system of claim 11, wherein: The plurality of characteristics include at least one of a respective acceleration, a respective speed, or a respective turn rate associated with entering the target lane at the merge point.
14. The autonomous vehicle control system of claim 13, wherein: The corresponding acceleration includes a maximum acceleration, wherein, The corresponding speed includes a maximum speed, and wherein, The corresponding turning rates include a maximum turning rate.
15. One or more non-transitory computer-readable media storing instructions for causing one or more processors to perform the following operations, the operations comprising: determining a target lane for the autonomous vehicle, the target lane being different from a current lane in which the autonomous vehicle is traveling; identifying a merge point in the target lane, the merge point describing a position between two vehicles in the target lane; Determining that the autonomous vehicle should enter the target lane at the merging point, wherein determining that the autonomous vehicle should enter the target lane includes: processing a plurality of features with a learned lane change model to determine whether a lane change criterion is satisfied, wherein the lane change criterion indicates a cost of entering the target lane at the merge point, and Determining that entering the target lane at the merge point does not violate a plurality of constraints; Determining a motion plan for entering the target lane at the merge point; and The autonomous vehicle is controlled to navigate according to the motion plan.
Citation Information
Cited By
Path planning method, vehicle and electronic equipment
CN120084353A
Path planning method, vehicle and electronic equipment
CN120084353B