Method and system for improving planning module of autonomous driving vehicle

By receiving the output of the autonomous driving vehicle planning module, evaluating its performance based on perceived data and adjusting parameters through machine learning models, the time-consuming problem of evaluating and optimizing performance in the prior art is solved, and the performance improvement of automated and efficient planning modules is achieved.

CN115158359BActive Publication Date: 2025-04-25BAIDU USA LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210940109.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-08-11
Filing Date
2022-08-05
Publication Date
2025-04-25
Estimated Expiration
2042-08-05

AI Technical Summary

Technical Problem

The selection of indicators for evaluating the performance of autonomous vehicle planning modules is challenging, and existing methods require a lot of manual intervention and are time-consuming.

Method used

Provided is a method to determine whether the output violates security rules based on perceived data, calculate performance scores, and adjust parameter sets through machine learning models to improve the performance of the planning module.

Benefits of technology

Automatic performance evaluation and optimization of planning modules is realized, manual intervention is reduced, and evaluation efficiency and performance of planning modules are improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115158359B_ABST
    Figure CN115158359B_ABST
Patent Text Reader

Abstract

The present disclosure provides a method and system for improving a planning module of an autonomous vehicle. Receive one or more outputs of a planning module of an ADV. Receive driving environment data of the ADV. Evaluate the performance of the planning module by determining a performance score of the planning module based on the data of the driving environment and one or more outputs of the planning module. Determine whether one or more outputs of the planning module violate at least one of the safety rule groups. In response to determining that one or more outputs of the planning module violate at least one of the safety rule groups, determine that the score is greater than a predetermined threshold. Otherwise, determine the score based on a machine learning model. Modify the planning module by adjusting a parameter set of the planning module based on the score.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure generally relate to operating an autonomous driving vehicle. More particularly, embodiments of the present disclosure relate to evaluating the performance of an autonomous driving vehicle (ADV). Background Art

[0002] A vehicle operating in an autonomous mode (e.g., without human control) can relieve occupants, particularly the driver, of some driving-related responsibilities. When operating in an autonomous mode, the vehicle can navigate to various locations using onboard sensors, allowing the vehicle to travel with minimal human interaction or in some cases without any passengers.

[0003] Motion planning and control are key operations in autonomous driving. An ADV may have a planning module that plans a path or route for the ADV, as well as driving parameters (e.g., distance, speed, and / or turning angle). Evaluating the performance of an ADV’s planning module is important to understand how well the planning module operates on the vehicle. However, knowing which metrics to measure and how to evaluate performance is challenging.

[0004] Previously, experienced engineers designed a large number of manually selected indicators to evaluate the performance of planning modules. For example, 40 performance indicators of different aspects including control performance, safety performance, sensory performance, and control source usage performance may be used. However, such manually selected indicators may require engineers to be familiar with specific fields and may be time-consuming. Summary of the invention

[0005] In one aspect, a method for improving a planning module of an autonomous vehicle (ADV) is provided, comprising:

[0006] receiving one or more outputs of a planning module of the ADV, the one or more outputs representing a trajectory planned based on a set of parameters;

[0007] determining, based on perception data of a driving environment surrounding the ADV, whether one or more outputs of the planning module violate at least one of the set of rules;

[0008] In response to determining that one or more outputs of the planning module violate at least one of the set of rules, determining a score based on the violation of the set of rules, the score representing a performance of the planning module;

[0009] In response to determining that the one or more outputs of the planning module do not violate the rule set, determining a score based on the sensory data and the one or more outputs using the machine learning model; and

[0010] The planning module is modified by adjusting the parameter set based on the score, wherein the modified planning module is used to subsequently drive the ADV.

[0011] In another aspect, a non-transitory machine-readable medium having stored therein instructions is provided, which when executed by a processor causes the processor to perform the operations of the method as described above.

[0012] In another aspect, a data processing system is provided, comprising:

[0013] Processor; and

[0014] The memory is coupled to the processor and stores instructions, which, when executed by the processor, cause the processor to perform the operations of the method described above.

[0015] In another aspect, a computer program product is provided, comprising a computer program, which, when executed by a processor, causes the processor to perform the method as described above.

[0016] According to the present disclosure, an optimal set of parameters can be found to achieve optimal performance of the planning module. BRIEF DESCRIPTION OF THE DRAWINGS

[0017] Embodiments of the present disclosure are illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements.

[0018] Figure 1 is a block diagram illustrating a networking system according to one embodiment.

[0019] Figure 2 is a block diagram illustrating an example of an autonomous driving vehicle according to one embodiment.

[0020] Figure 3A-3B is a block diagram illustrating an example of an autonomous driving system for use with an autonomous driving vehicle according to one embodiment.

[0021] Figure 4 is a block diagram illustrating an example of a decision making and planning process according to one embodiment.

[0022] Figure 5A-5B is a block diagram illustrating an example of an evaluation module for a planning module for an autonomous driving vehicle according to one embodiment.

[0023] Fig. 6A is a flow chart illustrating an example of a process for evaluating a planning module for an autonomous vehicle, according to one embodiment.

[0024] Figure 6B is a block diagram illustrating an example of collision checking in the process of evaluating a planning module of an autonomous driving vehicle, according to one embodiment.

[0025] Figure 7is a block diagram illustrating an example of a platform that provides assessment services to autonomous driving vehicles according to one embodiment.

[0026] Figure 8 is a flow chart illustrating a process for improving a planning module for an autonomous vehicle, according to one embodiment. DETAILED DESCRIPTION

[0027] Various embodiments and aspects of the present disclosure will be described with reference to the details discussed below, and the accompanying drawings will illustrate various embodiments. The following description and the accompanying drawings are illustrative of the present disclosure and should not be construed as limiting the present disclosure. Many specific details are described to provide a comprehensive understanding of various embodiments of the present disclosure. However, in some cases, in order to provide a brief discussion of embodiments of the present disclosure, known or conventional details are not described.

[0028] References in the specification to "one embodiment" or "an embodiment" mean that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment of the present disclosure. The phrase "in one embodiment" appearing in various places in the specification does not necessarily refer to the same embodiment.

[0029] According to some embodiments, a hybrid performance evaluator for evaluating the performance of a planning module of an ADV is provided. Outputs from the planning module (e.g., planning trajectories, obstacle information) and data from the surrounding environment can be input into the performance evaluator. The performance evaluator can combine rule-based safety assessments and performance assessments of planning modules based on machine learning (ML) models. First, it can be checked whether there are any potential safety violations. If a safety violation is found, the performance evaluator can return a large value that is larger than the value that the ML model can produce. If no safety issues are found, the performance of the planning module can be evaluated based on the ML model. The ML model can be trained to focus on learning from the trajectories of experts (e.g., human drivers). The closer the output of the planning module is to the trajectory of the human driver, the better the performance of the planning module and the lower the score of the planning module. The performance evaluator can improve the performance of the planning module, for example, in the process of adjusting the parameter set of the planning module. Based on the performance evaluation, the optimal parameter set can be found to achieve the optimal performance of the planning module.

[0030] According to some embodiments, one or more outputs of a planning module of an ADV are received. The one or more outputs include a planned trajectory for the ADV, and the planning module may include a parameter set. Data of a driving environment of the ADV is received. The performance of the planning module is evaluated by determining a score of the performance of the planning module based on the data of the driving environment and the one or more outputs of the planning module. Determine whether one or more outputs of the planning module violate at least one of the safety rule groups. In response to determining that one or more outputs of the planning module violate at least one of the safety rule groups, determine that the score is greater than a predetermined threshold. In response to determining that one or more outputs of the planning module do not violate at least one of the safety rule groups, determine a score based on a machine learning model. Modify the planning module by adjusting the parameter set based on the score. Control the ADV to drive autonomously according to a modified trajectory generated by the modified planning module.

[0031] Figure 1 is a block diagram showing an autonomous driving network configuration according to one embodiment of the present disclosure. Figure 1 , network configuration 100 includes an autonomous driving vehicle (ADV) 101, which can be communicatively coupled to one or more servers 103-104 via a network 102. Although one ADV is shown, multiple ADVs can be coupled to each other and / or to servers 103-104 via network 102. Network 102 can be any type of network, such as a local area network (LAN), a wide area network (WAN) such as the Internet, a cellular network, a satellite network, or a combination thereof, wired or wireless. Servers 103-104 can be any type of server or server cluster, such as a web or cloud server, an application server, a back-end server, or a combination thereof. Servers 103-104 can be data analysis servers, content servers, traffic information servers, map and point of interest (MPOI) servers or location servers, etc.

[0032] An ADV refers to a vehicle that can be configured to be in an autonomous mode, in which the vehicle navigates through an environment with little or no input from a driver. Such an ADV may include a sensor system having one or more sensors configured to detect information about the environment in which the vehicle operates. The vehicle and its associated controller use the detected information to navigate through the environment. The ADV 101 may operate in a manual mode, a fully autonomous mode, or a partially autonomous mode.

[0033] In one embodiment, ADV 101 includes, but is not limited to, autonomous driving system (ADS) 110, vehicle control system 111, wireless communication system 112, user interface system 113, and sensor system 115. ADV 101 may also include certain common components included in ordinary vehicles, such as an engine, wheels, a steering wheel, a transmission, etc., which can be controlled by vehicle control system 111 and / or ADS 110 using various communication signals and / or commands (e.g., acceleration signal or command, deceleration signal or command, steering signal or command, braking signal or command, etc.).

[0034] The components 110-115 may be communicatively coupled to each other via an interconnect, a bus, a network, or a combination thereof. For example, the components 110-115 may be communicatively coupled to each other via a controller area network (CAN) bus. The CAN bus is a vehicle bus standard designed to allow microcontrollers and devices to communicate with each other in applications without a host computer. It is a message-based protocol that was originally designed for multi-way electrical wiring in automobiles, but is also used in many other environments.

[0035] Reference now Figure 2 In one embodiment, the sensor system 115 includes, but is not limited to, one or more cameras 211, a global positioning system (GPS) unit 212, an inertial measurement unit (IMU) 213, a radar unit 214, and a light detection and range (LIDAR) unit 215. The GPS system 212 may include a transceiver operable to provide information about the location of the ADV. The IMU unit 213 may sense the position and orientation changes of the ADV based on inertial acceleration. The radar unit 214 may represent a system that uses radio signals to sense objects within the local environment of the ADV. In some embodiments, in addition to sensing objects, the radar unit 214 may additionally sense the speed and / or heading of the object. The LIDAR unit 215 may use lasers to sense objects in the environment in which the ADV is located. The LIDAR unit 215 may include one or more laser sources, a laser scanner, and one or more detectors, among other system components. The camera 211 may include one or more devices to capture images of the environment around the ADV. The camera 211 may be a static camera and / or a video camera. The camera may be mechanically movable, for example by mounting the camera on a rotating and / or tilting platform.

[0036] The sensor system 115 may also include other sensors, such as a sonar sensor, an infrared sensor, a steering sensor, a throttle sensor, a brake sensor, and an audio sensor (e.g., a microphone). The audio sensor may be configured to capture sounds from the environment surrounding the ADV. The steering sensor may be configured to sense the steering angle of the steering wheel, the wheels of the vehicle, or a combination thereof. The throttle sensor and the brake sensor sense the throttle position and the brake position of the vehicle, respectively. In some cases, the throttle sensor and the brake sensor may be integrated into an integrated throttle / brake sensor.

[0037] In one embodiment, the vehicle control system 111 includes, but is not limited to, a steering unit 201, a throttle unit 202 (also referred to as an acceleration unit), and a brake unit 203. The steering unit 201 is used to adjust the direction or heading of the vehicle. The throttle unit 202 is used to control the speed of the motor or engine, which in turn controls the speed and acceleration of the vehicle. The brake unit 203 decelerates the vehicle by providing friction to slow down the wheels or tires of the vehicle. Note that Figure 2 The components shown may be implemented in hardware, software or a combination thereof.

[0038] Return to reference Figure 1 , the wireless communication system 112 allows communication between the ADV 101 and external systems, such as devices, sensors, other vehicles, etc. For example, the wireless communication system 112 can communicate wirelessly with one or more devices directly or via a communication network, such as communicating with servers 103-104 through the network 102. The wireless communication system 112 can use any cellular communication network or wireless local area network (WLAN), such as using WiFi to communicate with another component or system. The wireless communication system 112 can communicate directly with a device (e.g., a passenger's mobile device, a display device, a speaker within the vehicle 101) using, for example, an infrared link, Bluetooth, etc. The user interface system 113 can be part of a peripheral device implemented within the vehicle 101, including, for example, a keyboard, a touch screen display device, a microphone, and a speaker, etc.

[0039] Some or all functions of ADV 101 may be controlled or managed by ADS 110, especially when operating in autonomous driving mode. ADS 110 includes necessary hardware (e.g., processor, memory, storage device) and software (e.g., operating system, planning and routing program) to receive information from sensor system 115, control system 111, wireless communication system 112 and / or user interface system 113, process the received information, plan a route or path from a starting point to a destination point, and then drive vehicle 101 based on the planning and control information. Alternatively, ADS 110 may be integrated with vehicle control system 111.

[0040] For example, a user as a passenger may specify a starting location and a destination of a trip, for example, via a user interface. ADS 110 obtains trip-related data. For example, ADS 110 may obtain location and route information from an MPOI server, which may be part of servers 103-104. The location server provides location services, and the MPOI server provides map services and POIs of certain locations. Alternatively, such location and MPOI information may be cached locally in a permanent storage device of ADS 110.

[0041] As ADV 101 moves along the route, ADS 110 may also obtain real-time traffic information from a traffic information system or server (TIS). Note that servers 103-104 may be operated by a third-party entity. Alternatively, the functionality of servers 103-104 may be integrated with ADS 110. Based on real-time traffic information, MPOI information, and location information, as well as real-time local environmental data (e.g., obstacles, objects, nearby vehicles) detected or sensed by sensor system 115, ADS 110 may plan an optimal route and, for example, drive vehicle 101 according to the planned route via control system 111 to safely and efficiently reach a designated destination.

[0042] The server 103 may be a data analysis system for performing data analysis services for various clients. In one embodiment, the data analysis system 103 includes a data collector 121 and a machine learning engine 122. The data collector 121 collects driving statistics 123 from various vehicles (ADVs or conventional vehicles driven by human drivers). The driving statistics 123 include information indicating driving commands issued (e.g., throttle, brake, steering commands) and responses of the vehicle (e.g., speed, acceleration, deceleration, direction) captured by the vehicle's sensors at different points in time. The driving statistics 123 may also include information describing the driving environment at different points in time, such as routes (including starting and destination locations), MPOIs, road conditions, weather conditions, etc.

[0043] Based on the driving statistics 123, the machine learning engine 122 generates or trains a set of rules, algorithms, and / or predictive models 124 for various purposes. The algorithms 124 can then be uploaded to the ADV for use in real time during autonomous driving.

[0044] Figure 3A and 3B is a block diagram illustrating an example of an autonomous driving system for use with an ADV according to one embodiment. System 300 may be implemented as Figure 1A portion of ADV 101 includes, but is not limited to, ADS 110, control system 111, and sensor system 115. Figure 3A-3B The ADS 110 includes but is not limited to a positioning module 301 , a perception module 302 , a prediction module 303 , a decision module 304 , a planning module 305 , a control module 306 , and a routing module 307 .

[0045] Some or all of the modules 301-307 may be implemented in software, hardware, or a combination thereof. For example, these modules may be installed in permanent storage device 352, loaded into memory 351, and executed by one or more processors (not shown). Note that some or all of these modules may be communicatively coupled to Figure 2 Some or all modules of the vehicle control system 111 may be integrated with or integrated with the vehicle control system 111. Some of the modules 301-307 may be integrated together as an integrated module.

[0046] The positioning module 301 determines the current location of the ADV 300 (e.g., using the GPS unit 212) and manages any data related to the user's itinerary or route. The positioning module 301 (also referred to as the map and route module) manages any data related to the user's itinerary or route. The user can log in and specify the starting location and destination of the itinerary, for example, via a user interface. The positioning module 301 communicates with other components of the ADV 300, such as map and route data 311, to obtain data related to the itinerary. For example, the positioning module 301 can obtain location and route data from a location server and a map and POI (MPOI) server. The location server provides location services, and the MPOI server provides map services and POIs of certain locations, which can be cached as part of the map and route data 311. When the ADV 300 moves along the route, the positioning module 301 can also obtain real-time traffic information from a traffic information system or server.

[0047] Based on the sensor data provided by the sensor system 115 and the positioning information obtained by the positioning module 301, the perception of the surrounding environment is determined by the perception module 302. The perception information can represent the situation around the vehicle that the driver is driving as perceived by an ordinary driver. The perception can include lane configuration, traffic light signals, relative positions of another vehicle, pedestrians, buildings, crosswalks or other traffic-related signs (e.g., stop signs, yield signs), etc., such as in the form of objects. The lane configuration includes information describing one or more lanes, such as, for example, the shape of the lane (e.g., straight or curved), the width of the lane, the number of lanes in the road, one-way or two-way lanes, merging or splitting lanes, exit lanes, etc.

[0048] The perception module 302 may include a computer vision system or functionality of a computer vision system to process and analyze images captured by one or more cameras in order to identify objects and / or features in the environment of the ADV. Objects may include traffic signals, roadway boundaries, other vehicles, pedestrians, and / or obstacles, etc. The computer vision system may use object recognition algorithms, video tracking, and other computer vision techniques. In some embodiments, the computer vision system may map the environment, track objects, and estimate the speed of objects, etc. The perception module 302 may also detect objects based on other sensor data provided by other sensors such as radar and / or LIDAR.

[0049] For each object, the prediction module 303 predicts how the object will behave in the environment. Predictions are performed based on sensory data that senses the driving environment at a point in time, given a set of map / route information 311 and traffic rules 312. For example, if the object is a vehicle in the opposite direction and the current driving environment includes an intersection, the prediction module 303 will predict whether the vehicle will likely move straight ahead or turn. If the sensory data indicates that there is no traffic light at the intersection, the prediction module 303 may predict that the vehicle may have to come to a complete stop before entering the intersection. If the sensory data indicates that the vehicle is currently in a left-turn-only lane or a right-turn-only lane, the prediction module 303 may predict that the vehicle will be more likely to make a left turn or a right turn, respectively.

[0050] For each object, decision module 304 makes a decision about how to handle the object. For example, for a particular object (e.g., another vehicle in a crossing path) and metadata describing the object (e.g., speed, direction, steering angle), decision module 304 determines how to encounter the object (e.g., overtake, yield, stop, pass). Decision module 304 may make these decisions based on a set of rules, such as traffic rules or driving rules 312, which may be stored in persistent storage device 352.

[0051] The routing module 307 is configured to provide one or more routes or paths from the starting point to the destination point. For a given trip from the starting position to the destination position, for example, received from a user, the routing module 307 obtains the route and map information 311 and determines all possible routes or paths from the starting position to the destination position. The routing module 307 can generate a reference line in the form of a topographic map for each route determined by it from the starting position to the destination position. The reference line refers to an ideal route or path without any interference from others such as other vehicles, obstacles or traffic conditions. That is, if there are no other vehicles, pedestrians or obstacles on the road, the ADV should accurately or closely follow the reference line. Then, the topographic map is provided to the decision module 304 and / or the planning module 305. The decision module 304 and / or the planning module 305 check all possible routes to select and correct one of the optimal routes in view of other data provided by other modules (such as traffic conditions from the positioning module 301, the driving environment perceived by the perception module 302, and the traffic conditions predicted by the prediction module 303). Depending on the particular driving circumstances at a point in time, the actual path or route used to control the ADV may be close to or different from the reference line provided by the routing module 307 .

[0052] Based on the decision for each perceived object, the planning module 305 uses the reference line provided by the routing module 307 as a basis to plan a path or route for the ADV and driving parameters (e.g., distance, speed, and / or steering angle). That is, for a given object, the decision module 304 decides what to do with the object, and the planning module 305 determines how to do it. For example, for a given object, the decision module 304 may decide to pass through the object, and the planning module 305 may determine whether to pass on the left or right side of the object. Planning and control data are generated by the planning module 305 and include information describing how the vehicle 300 will move in the next movement cycle (e.g., the next route / path segment). For example, the planning and control data may instruct the vehicle 300 to move 10 meters at a speed of 30 miles per hour (mph) and then change to the right lane at a speed of 25mph.

[0053] Based on the planning and control data, the control module 306 controls and drives the ADV by sending appropriate commands or signals to the vehicle control system 111 according to the route or path defined by the planning and control data. The planning and control data includes sufficient information to drive the vehicle from a first point on the route or path to a second point using appropriate vehicle settings or driving parameters (e.g., throttle, brake, steering commands) at different points in time along the route or path.

[0054] In one embodiment, the planning phase is performed in multiple planning cycles, also referred to as driving cycles, such as in each time interval of 100 milliseconds (ms). For each planning cycle or driving cycle, one or more control commands will be issued based on the planning and control data. That is, for every 100ms, the planning module 305 plans the next route segment or path segment, for example, including the target position and the time required for the ADV to reach the target position. Alternatively, the planning module 305 can also specify a specific speed, direction and / or steering angle, etc. In one embodiment, the planning module 305 plans the route segment or path segment for the next predetermined time period, such as 5 seconds. For each planning cycle, the planning module 305 plans the target position for the current cycle (e.g., the next 5 seconds) based on the target position planned in the previous cycle. Then the control module 306 generates one or more control commands (e.g., throttle, brake, steering control commands) based on the planning and control data of the current cycle.

[0055] Note that the decision module 304 and the planning module 305 can be integrated into an integrated module. The decision module 304 / planning module 305 may include a navigation system or a function of a navigation system to determine a driving path for the ADV. For example, the navigation system may determine a series of speeds and direction headings to affect the movement of the ADV along a path that substantially avoids perceived obstacles while generally advancing the ADV along a roadway-based path to the final destination. The destination may be set based on user input via the user interface system 113. The navigation system may dynamically update the driving path while the ADV is operating. The navigation system may incorporate data from a GPS system and one or more maps to determine a driving path for the ADV.

[0056] Figure 4 is a block diagram illustrating an example of a decision and planning system according to one embodiment. System 400 may be implemented as Figure 3A-3B A portion of the autonomous driving system 300 is used to perform path planning and speed planning operations. Figure 4 , the decision and planning system 400 (also known as the planning and control or PnC system or module) includes a routing module 307, positioning / perception data 401, a path decision module 403, a speed decision module 405, etc., a path planning module 407, a speed planning module 409, an aggregator 411 and a trajectory calculator 413.

[0057] The path decision module 403 and the speed decision module 405 can be implemented as part of the decision module 304. In one embodiment, the path decision module 403 can include a path state machine, one or more path traffic rules, and a station lateral map generator. The path decision module 403 can use dynamic programming to generate a rough path outline as an initial constraint for the path / speed planning modules 407 and 409.

[0058] In one embodiment, the path state machine includes at least three states: cruising state, lane changing state and / or idle state. The path state machine provides previous planning results and important information, such as whether the ADV is cruising or changing lanes. Figure 3A The path traffic rules that are part of the driving / traffic rules 312 include traffic rules that can affect the results of the path decision module. For example, the path traffic rules can include traffic information, such as construction traffic signs near the ADV, and lanes with such construction signs can be avoided. Based on the state, traffic rules, reference lines provided by the routing module 307, and obstacles perceived by the perception module 302 of the ADV, the path decision module 403 can decide how to handle the perceived obstacles (i.e., ignore, overtake, give way, stop, pass) as part of the rough path profile.

[0059] For example, in one embodiment, a rough path profile is generated by a cost function that includes costs based on path curvature and distances from a reference line and / or reference points to obstacles. Points on the reference line are selected and moved to the left or right of the reference line as candidate moves representing path candidates. Each candidate move has an associated cost. The associated costs of candidate moves for one or more points on the reference line can be solved using dynamic programming to sequentially obtain the optimal cost, one point at a time.

[0060] In one embodiment, a site lateral (SL) map generator (not shown) generates a SL map as part of the rough path outline. The SL map is a two-dimensional geometric map (similar to an xy coordinate plane) that includes obstacle information perceived by the ADV. From the SL map, the path decision module 403 can arrange an ADV path that follows the obstacle decision. Dynamic programming (also known as dynamic optimization) is a mathematical optimization method that decomposes the problem to be solved into a series of value functions, solves each of these value functions only once and stores their solutions. The next time the same value function appears, it is only necessary to look up the previously calculated solution instead of recalculating its solution, saving computing time.

[0061] The speed decision module 405 or speed decision module includes a speed state machine, speed traffic rules, and a station time map generator (not shown). The speed decision process 405 or speed decision module can use dynamic programming to generate a rough speed profile as an initial constraint for the path / speed planning modules 407 and 409. In one embodiment, the speed state machine includes at least two states: an acceleration state and / or a deceleration state. It can be Figure 3AThe speed traffic rules that are part of the driving / traffic rules 312 include traffic rules that can affect the results of the speed decision module. For example, the speed traffic rules can include traffic information such as red / green traffic lights, another vehicle in a crossing route, etc. From the state of the speed state machine, the speed traffic rules, the rough path profile / SL map generated by the decision module 403, and the perceived obstacles, the speed decision module 405 can generate a rough speed profile to control when to accelerate and / or decelerate the ADV. The SL map generator can generate a station time (ST) map as part of the rough speed profile.

[0062] In one embodiment, the path planning module 407 includes one or more SL maps, geometric smoothers, and path cost modules (not shown). The SL map may include a site lateral map generated by the SL map generator of the path decision module 403. The path planning module 407 can use a rough path outline (e.g., a site lateral map) as an initial constraint for recalculating the optimal reference line using quadratic programming. Quadratic programming (QP) involves minimizing or maximizing an objective function (e.g., a quadratic function with multiple variables) subject to bounds, linear equations, and inequalities.

[0063] One difference between dynamic programming and quadratic programming is that quadratic programming optimizes all candidate moves for all points on the reference line at once. The geometric smoother may apply a smoothing algorithm (such as B-splines or regression) to the output site lateral map. The path cost module may recalculate the reference line using a path cost function to optimize the total cost of candidate moves for the reference points, e.g., using a QP optimization performed by a QP module (not shown). For example, in one embodiment, the total path cost function may be defined as follows:

[0064]

[0065] Wherein the path cost is the sum of all points on the reference line, the heading represents the difference in radial angles (e.g., direction) between the points relative to the reference line, the curvature represents the difference in curvature of the curve formed by the points relative to the reference line at the point, and the distance represents the lateral (direction perpendicular to the reference line) distance from the point to the reference line. In some embodiments, the distance represents the distance from the point to the destination location or intermediate point of the reference line. In another embodiment, the curvature cost is the change between the curvature values ​​of the curve formed at adjacent points. Note that points on the reference line can be selected to be equal distances from adjacent points. Based on the path cost, the path cost module can recalculate the reference line by minimizing the path cost using quadratic programming optimization, for example, through a QP module.

[0066] The speed planning module 409 includes a station time graph, a sequence smoother, and a speed cost module. The station time graph may include an ST graph generated by the ST graph generator of the speed decision module 405. The speed planning module 409 may use a rough speed profile (e.g., a station time graph) and the results from the path planning module 407 as initial constraints to calculate the optimal station time curve. The sequence smoother may apply a smoothing algorithm (such as B-spline or regression) to the time series of points. The speed cost module may recalculate the ST graph using a speed cost function to optimize the total cost of the action candidates (e.g., acceleration / deceleration) at different time points.

[0067] For example, in one embodiment, the total speed cost function may be:

[0068]

[0069] Wherein speed cost is the sum of all time progress points, speed' represents the acceleration value or the cost of changing the speed between two adjacent points, speed" represents the jerk value, or the derivative of the acceleration value or the cost of changing the acceleration between two adjacent points, and distance represents the distance from the ST point to the destination location. Here, the speed cost module calculates the station time graph by minimizing the speed cost using a quadratic programming optimization, e.g., a QP module.

[0070] Aggregator 411 performs the function of aggregating path and speed planning results. For example, in one embodiment, aggregator 411 can combine a two-dimensional ST map and a SL map into a three-dimensional SLT map. In another embodiment, aggregator 411 can interpolate (or fill in additional points) based on two consecutive points on an SL reference line or ST curve. In another embodiment, aggregator 411 can convert a reference point from (S, L) coordinates to (x, y) coordinates.

[0071] In one embodiment, trajectory generator 413 may calculate a final trajectory to control ADV 510. For example, based on the SLT graph provided by aggregator 411, trajectory generator 413 calculates a list of (x, y, T) points that indicate at what time the ADC should pass through a specific (x, y) coordinate.

[0072] Therefore, the path decision module 403 and the speed decision module 405 are configured to generate a rough path profile and a rough speed profile taking into account obstacles and / or traffic conditions. Given all the path and speed decisions about obstacles, the path planning module 407 and the speed planning module 409 will use QP planning to optimize the rough path profile and the rough speed profile according to the obstacles to generate an optimal planning trajectory with minimum path cost and / or speed cost.

[0073] Figure 5A-5B407, 409) for an ADV according to an embodiment. As described above, the planning module (e.g., 305, 407, 409) can plan a path or route for the ADV, as well as driving parameters (e.g., distance, speed, and / or steering angle). The planning module (e.g., 305, 407, 409) can generate a planned trajectory with a minimum path cost and / or speed cost. The output of the planning module (e.g., 305, 407, 409) can include a planned trajectory, a heading of the ADV, a speed of the ADV, an acceleration of the ADV, a distance to an obstacle of the ADV, obstacle information from different directions, a predicted trajectory of an obstacle, a road / lane configuration, etc. The planning module (e.g., 305, 407, 409) may include a parameter set, such as a weighting factor for speed, a weighting factor for acceleration, a weighting factor for jerk, a weighting factor for a safe distance between an obstacle and the ADV, or a weighting factor for a difference between a reference speed and a planned speed, etc. The performance of the planning module may be based on the output of the planning module. The output of the planning module may be based on the parameter set.

[0074] Evaluating the performance of a planning module of an ADV is important to understand how the planning module performs on the vehicle, thereby improving the safety and performance of the planning module. It would be advantageous to develop a method and / or system that provides a performance evaluation of a planning module of an ADV. The performance evaluation of the planning module may analyze the planning module from multiple perspectives in order to improve the performance of the planning module in the right direction, such as in the process of adjusting the planning module. The process of adjusting the planning module may include finding an optimal set of parameters to achieve optimized performance of the planning module.

[0075] refer to Figure 5A and Figure 5B The evaluation module 500 for the planning module of the ADV may include a hybrid version of performance evaluation or assessment that requires little familiarity in a specific field. The evaluation module 500 may include a traffic rule-based evaluation and a machine learning-based evaluation of the performance of the planning module.

[0076] The evaluation module 500 may include a safety module 504 and a machine learning (ML) module 514. The safety module 504 may include a collision module 505, a traffic regulation module 506, and / or a decision module 507. The ML module 514 may include a feature extraction module 515, a comparison module 516, and a decision module 517. Some or all of the modules of the evaluation module 500 may be implemented in software, hardware, or a combination thereof. For example, the modules 504-507, 514-517 may be installed in a permanent storage device, loaded into a memory, and executed by one or more processors (not shown). Note that some or all of these modules may be communicatively coupled or integrated. Some modules 505-507, 515-517 may be integrated together as integrated modules.

[0077] The evaluation module 500 can evaluate the performance of the planning module by determining the score of the performance of the planning module based on the output of the planning module (e.g., 305, 407, 409) and the data from the driving environment module 501. The score of the performance of the planning module can be based on traffic rules and / or ML models. The data from the driving environment module 501 can include data from a map, from a sensor installed on the ADV, from a GPS, or from a server, etc. The data from the driving environment module 501 can include obstacle information, road structure, traffic conditions, etc.

[0078] The evaluation module 500 can be used in a simulation environment, such as during a parameter adjustment process, to effectively test the parameter set of the planning module. The evaluation module 500 can combine the safety module 504 and the ML module 514 to evaluate the performance of the planning module. The evaluation module 500 can take the output of the planning module (e.g., planning trajectory, obstacle information) as its input and return a score, such as a positive score, as the evaluation result of the planning module. In one embodiment, the lower the score, the better the performance of the planning module.

[0079] The safety module 504 is configured to determine whether the output of the planning module, such as the planned trajectory, obstacle information, etc., violates at least one of the safety rule group. The safety module 504 can check whether there are any potential safety violations based on the safety rules. Since safety is the highest priority of the autonomous driving system of the ADV, avoiding hazards is very important to the planning module. In response to determining that the trajectory violates at least one of the safety rule group, the safety module 504 can determine that the score is greater than a predetermined threshold.

[0080] The collision module 505 is configured to determine whether the output of the planning module, such as the planned trajectory, will cause a collision of the ADV. The traffic regulation module 506 is configured to determine whether the output of the planning module, such as the planned trajectory, has a traffic regulation violation, including a traffic light violation, a speed limit violation, or a lane change rule violation. For example, the traffic regulation module 506 can check whether the ADV maintains a certain safe distance in a lane following scenario, whether there is no rear-end collision during an emergency stop, whether the ADV follows the lane change rule, whether there is no red light or yellow light violation, or whether there is no speed limit violation.

[0081] The decision module 507 is configured to determine that the score is greater than a predetermined threshold in response to determining that the output of the planning module violates at least one of the security rule set. If there is a security violation, the decision module 507 can return a number greater than the predetermined threshold that the ML model can produce to indicate that this module output is unacceptable.

[0082] If there is no safety issue, the performance of the planning module can be evaluated in the ML learning module 514. The ML learning module 514 may include a deep learning model that can be trained with any neural network. The ML learning module 514 may be based on data of the driving environment and the output of the planning module. This data-driven ML learning module 514 may assume that human driving is the desired behavior. The ML learning module 514 may be trained to focus on learning trajectories from experts, such as human drivers. The closer the output of the planning module is to a human driver, the better the performance of the planning module and the lower the score of the planning module.

[0083] The feature extraction module 515 is configured to extract a feature group based on the output of the planning module and the data of the surrounding driving environment of the ADV. The feature group may include one or more of obstacle information from different directions, road structure, state of the ADV, speed of the ADV, acceleration of the ADV, or jerk of the ADV. The obstacle information may include the size of the obstacle, the distance to the obstacle, the predicted trajectory of the obstacle, etc. The direction of the obstacle may include the front, left front, right front, left, right, left rear, right rear, rear, etc. The road structure may include lane configuration, solid line of lane boundary, dotted line of lane boundary, lane curvature, lane slope, etc. The state of the ADV may include lane following state, lane change, highway exit state, etc. The feature group may be used to train the ML module 514. The feature group may be used to compare the performance of the planning module with the performance of a human driver. In one embodiment, the same set of features may be used to train the ML module 514 and compare the performance of the planning module with the performance of a human driver. In another embodiment, the first feature group may be used to train the ML module 514, and the second feature group may be used to compare the performance of the planning module with the performance of a human driver.

[0084] Comparison module 516 can be configured to compare the performance of the planning module with the performance of a human driver. Trajectory groups from human drivers can be collected in advance. Feature groups can be extracted from this set of trajectories of human drivers. The feature groups extracted from the output of the planning module can be compared with the feature groups extracted from the trajectory groups of human drivers.

[0085] The decision module 517 can be configured to determine the performance score of the planning module based on the comparison result of the comparison module 516. The performance score of the planning module can be determined based on the similarity between the feature group extracted from the planning module and the feature group extracted from the trajectory group previously collected from the human driver. The goal of the ML model 514 is to determine whether the feature group extracted from the planning module is similar to human behavior. The closer to human driving behavior, the better the performance and the lower the score. When the feature group extracted from the planning module is more similar to the feature group extracted from the trajectory group previously collected from the human driver, the performance of the planning module is better and the performance score of the planning module is lower, and vice versa.

[0086] A set of parameters of the planning module, including but not limited to a weighting factor of speed, a weighting factor of acceleration, a weighting factor of jerk, a weighting factor of a safe distance between an obstacle and the ADV, or a weighting factor of a difference between a reference speed and a planned speed, can be adjusted based on the performance score of the planning module. Thus, the planning module can be adjusted or modified until the score is the lowest score. In this way, the performance of the planning module can be improved.

[0087] Fig. 6A 600a is a diagram illustrating an example of a process for evaluating a planning module of an autonomous vehicle according to one embodiment. Analyzing the performance of a planning module of an ADV is important because it helps to understand how the planning module will perform on the vehicle. The process of a performance evaluator 602 may provide an evaluation that can analyze the planning module from various perspectives in order to improve the performance of the planning module in the right direction, for example, in the process of adjusting the planning module. The process of adjusting the planning module may include finding an optimal set of parameters that provides optimal performance. The performance evaluator 602 may include a hybrid version of the performance evaluator that may be used to evaluate the performance of a planning module of an ADV. The performance evaluator 602 may be performed, for example, by the evaluation module 502, such as in combination with Figure 5A and Figure 5B discussed.

[0088] refer to Fig. 6A, the performance evaluator 602 can be executed in a simulation environment, for example, during parameter adjustment, to efficiently test the parameter set of the planning module. The performance evaluator 602 can combine rule-based safety evaluation and ML learning-based evaluation to evaluate the performance of the planning module of ADV. The performance evaluator 602 can be a safety decision maker (e.g., 504) and an ML model (e.g., 514) to evaluate the performance of the module.

[0089] At block 604 , the output of the planning module (eg, planned trajectory, obstacle information) may be input into the evaluator 602 to evaluate the performance of the planning module.

[0090] At block 606 , surrounding environment data including obstacle information, road structure, etc. from a map, GPS, or sensor of the ADV may be input into the evaluator 602 to evaluate the performance of the planning module.

[0091] At block 608, the evaluator 602 may perform a rule-based safety check. The evaluator 602 may check if there are any potential safety violations. Since safety is the highest priority for ADV, avoiding danger is important for the planning module. The process of rule-based safety checking may be based on rules, such as traffic regulations.

[0092] Since the model learned by the ML model relies on data from the planning module and the surrounding environment, in order to prevent edge cases or unseen cases from being covered, the rule-based safety check can focus on (but not limited to) collision check and traffic law violation check. Therefore, the rule-based safety check can ensure that there is no collision from the planned trajectory and all traffic laws are followed.

[0093] For example, rule-based safety checks can check whether the ADV maintains a certain safe distance in a lane following scenario, whether there is no rear-end collision during an emergency stop, whether the ADV follows lane change guidelines, whether there are no red or yellow light violations, or whether there are no speed limit violations.

[0094] In one embodiment, the collision check may include checking whether the planned trajectory of the planning module will cause a collision with the ADV. Figure 6BAs shown, ADV 601 can be divided into multiple parts 601a, 601b, 601c, 601d, etc. For each of the multiple parts of ADV 601, the object closest to the part of ADV can be determined, and it can be determined whether the distance between the nearest object and the part of ADV is within a predetermined threshold. If the distance between the nearest object and the part of ADV is within the predetermined threshold, the planned trajectory will cause a collision of ADV. As an example, for the left front part 601a of ADV 601, the nearest object can be ADV 621. It can be determined whether the distance 631 between the nearest object 621 and the part 601a of ADV 601 is within the predetermined threshold. If the distance 631 between the nearest object 621 and the part 601a of ADV 601 is within the predetermined threshold, the planned trajectory will cause a collision of ADV.

[0095] Return to reference Fig. 6A , at block 609, if a security violation is found, the performance of the planning module may be considered unacceptable. Thus, to indicate that the output of the planning module is unacceptable, the evaluator 602 may return a large number that is larger than any value that the ML model could produce.

[0096] At block 610, a feature set may be extracted from the planning module. If there are no safety issues, the performance of the planning module may be evaluated in an ML learning model. The ML learning module may include a deep learning model that may be trained with any neural network. This data-driven ML learning module may assume that human driving is the desired behavior. The ML learning module may be trained to focus on learning trajectories from an expert, such as a human driver. The closer the output of the planning module is to the trajectory of a human driver, the better the performance of the planning module and the lower the score of the planning module.

[0097] The feature group extracted from the planning module may include obstacle information from different directions, road structure, state of the ADV, speed of the ADV, acceleration of the ADV, or jerk of the ADV. The obstacle information may include the size of the obstacle, the distance to the obstacle, the predicted trajectory of the obstacle, etc. The direction of the obstacle may include front, left front, right front, left, right, left rear, right rear, rear, etc. The road structure may include lane configuration, solid line of lane boundary, dashed line of lane boundary, lane curvature, lane slope, etc. The state of the ADV may include lane following state, lane change, highway exit state, etc.

[0098] At block 612, the ML module may compare the performance of the planning module with the performance of the human driver based on the feature set. The ML model may be trained to learn expert (e.g., human driver) trajectories. Trajectory sets from human drivers may be collected in advance. The ML model may compare the feature set extracted from the output of the planning module with the feature set extracted from the trajectory of the human driver.

[0099] At block 614, a performance score for the planning module may be returned. The performance score for the planning module may be determined based on the similarity between the feature group extracted from the planning module and the feature group extracted from the trajectory previously collected from the human driver. The goal of the ML model is to determine whether the feature group extracted from the planning module is similar to human behavior. The closer to human driving behavior, the better the performance and the lower the score. When the feature group extracted from the planning module is more similar to the feature group extracted from the trajectory group previously collected from the human driver, the performance of the planning module is better and the performance score of the planning module is lower, and vice versa. Therefore, the parameter set of the planning module may be adjusted or modified until the score is the lowest score. In this way, the optimal parameter set for achieving optimal performance may be found. Therefore, the performance of the planning module may be improved.

[0100] Figure 7 703 is a block diagram showing an example of a platform 703 providing assessment services to an autonomous driving vehicle according to one embodiment. The platform 703 can be coupled to multiple ADVs 601, 701, 711, 721, etc. via a network. The network can be any type of network, such as a local area network (LAN), a wide area network (WAN) such as the Internet, a cellular network, a satellite network, or a combination thereof, wired or wireless. The platform 703 can be any type of server or server cluster, such as a Web or cloud server, an application server, a back-end server, or a combination thereof. The platform 703 can be a data analysis server, a content server, a traffic information server, a map and point of interest (MPOI) server, or a location server, etc.

[0101] The platform 703 may include an evaluation module 502, such as in combination with Figure 5A-Figure 5B As discussed, the performance of the corresponding planning modules of the ADVs 601, 701, 711, 721 can be evaluated. The performance of the corresponding planning modules of the ADVs 601, 701, 711, 721 can be improved based on the evaluation service of the platform 703.

[0102] Figure 8 800 is a flow chart illustrating a process of improving a planning module of an autonomous vehicle according to one embodiment. Process 800 may be performed by processing logic that may include software, hardware, or a combination thereof. For example, process 800 may be performed by evaluation module 502. Figure 8In operation 801, processing logic receives one or more outputs from a planning module of an autonomous vehicle (ADV), the one or more outputs including a planned trajectory for the ADV, the planning module including a parameter set. In operation 802, processing logic receives data of a driving environment of the ADV.

[0103] In operation 803 , the processing logic evaluates the performance of the planning module by determining a performance score of the planning module based on the data of the driving environment and one or more outputs of the planning module. Operation 803 includes operations 804 , 805 , and 806 .

[0104] In operation 804, processing logic determines whether one or more outputs of the planning module violate at least one of the security rule set.

[0105] In one embodiment, processing logic may determine whether the planned trajectory will result in a collision of the ADV.

[0106] In one embodiment, processing logic may determine whether the planned trajectory will result in a collision of the ADV by dividing the ADV into a plurality of segments. For each of the plurality of segments of the ADV, processing logic may determine an object that is closest to the segment of the ADV, and processing logic may determine whether a distance between the closest object and the segment of the ADV is within a predetermined threshold. In response to determining that the distance between the closest object and the segment of the ADV is within the predetermined threshold, processing logic may determine that the planned trajectory will result in a collision of the ADV.

[0107] In one embodiment, processing logic may determine whether the planned trajectory violates traffic regulations, including violating traffic lights, violating speed limits, or violating lane change guidelines.

[0108] In operation 805 , processing logic determines that the score is greater than a predetermined threshold in response to determining that one or more outputs of the planning module violate at least one of the security rule set.

[0109] In operation 806 , processing logic determines a score based on the machine learning model in response to determining that one or more outputs of the planning module do not violate at least one of the set of security rules.

[0110] In one embodiment, processing logic may extract a set of features based on one or more outputs of the planning module and data of the driving environment of the ADV.

[0111] In one embodiment, the set of features includes one or more of obstacle information from different directions, road configuration, a state of the ADV, a speed of the ADV, an acceleration of the ADV, or a jerk of the ADV.

[0112] In one embodiment, the processing logic may compare the set of features extracted from the planning module with the set of features extracted from the set of trajectories previously collected from the human driver, and the processing logic may determine a score based on the similarity between the set of features extracted from the planning module and the set of features extracted from the set of trajectories previously collected from the human driver.

[0113] In one embodiment, the parameter set includes one or more of a weighting factor for speed, a weighting factor for acceleration, a weighting factor for jerk, a weighting factor for a safety distance between an obstacle and the ADV, or a weighting factor for a difference between a reference speed and a planned speed.

[0114] In operation 806 , processing logic modifies the planning module by adjusting the parameter set based on the score, wherein the ADV is controlled to autonomously drive according to a modified trajectory generated by the modified planning module.

[0115] Note that some or all of the components shown and described above may be implemented in software, hardware, or a combination thereof. For example, these components may be implemented as software installed and stored in a permanent storage device, which may be loaded and executed in a memory by a processor (not shown) to perform the processes or operations described throughout the present application. Alternatively, these components may be implemented as executable code programmed or embedded into dedicated hardware, such as an integrated circuit (e.g., a dedicated IC or ASIC), a digital signal processor (DSP), or a field programmable gate array (FPGA), which may be accessed via a corresponding driver and / or operating system from an application. In addition, these components may be implemented as specific hardware logic in a processor or processor core as part of an instruction set accessible via one or more specific instruction software components.

[0116] Some portions of the foregoing detailed description have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities.

[0117] It should be remembered, however, that all of these and similar terms are associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless otherwise stated, as will be apparent from the above discussion, it should be understood that throughout the specification, discussions using terms such as those set forth in the appended claims refer to the actions and processes of a computer system or similar electronic computing device that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system's memories or registers or other such information storage, transmission or display devices.

[0118] Embodiments of the present disclosure also relate to devices for performing the operations herein. Such a computer program is stored in a non-transitory computer-readable medium. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g., a computer). For example, a machine-readable (e.g., computer-readable) medium includes a machine (e.g., computer) readable storage medium (e.g., a read-only memory ("ROM"), a random access memory ("RAM"), a disk storage medium, an optical storage medium, a flash memory device).

[0119] The processes or methods described in the foregoing figures may be performed by processing logic including hardware (e.g., circuits, dedicated logic, etc.), software (e.g., embodied on a non-transitory computer-readable medium), or a combination of both. Although the processes or methods are described above in terms of some sequential operations, it should be understood that some of the operations described may be performed in a different order. In addition, some operations may be performed in parallel rather than sequentially.

[0120] The embodiments of the present disclosure are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages ​​may be used to implement the teachings of the embodiments of the present disclosure as described herein.

[0121] In the foregoing description, embodiments of the present disclosure have been described with reference to specific exemplary embodiments of the present disclosure. Obviously, various modifications may be made thereto without departing from the broader spirit and scope of the present disclosure as set forth in the appended claims. Therefore, the description and the drawings should be considered illustrative rather than restrictive.

Claims

1. A method for improving a planning module of an autonomous vehicle (ADV), comprising: receiving one or more outputs of a planning module of the ADV, the one or more outputs representing a trajectory planned based on a set of parameters; Evaluating the performance of the planning module by determining a performance score of the planning module based on comparing the one or more outputs to at least a set of traffic rules; the evaluating further comprising: determining, based on the sensed data of the driving environment surrounding the ADV, whether one or more outputs of the planning module violate at least one of a set of traffic rules, further comprising determining whether the trajectory would result in a traffic law violation, including at least one of a traffic light violation, a speed limit violation, or a lane change criterion violation; In response to determining that one or more outputs of the planning module violate at least one of the set of traffic rules, determining a score as a predefined score, the score representing a performance of the planning module; In response to determining that the one or more outputs of the planning module do not violate the set of traffic rules, determining a score based on the perception data and the one or more outputs using a machine learning model; as well as The planning module is modified by adjusting the parameter set based on the score, wherein the modified planning module is used to subsequently drive the ADV. 2 . The method of claim 1 , wherein determining whether one or more outputs violate at least one of the set of rules comprises determining whether the trajectory will result in a collision of the ADV.

3. The method of claim 2, wherein determining whether the trajectory will result in a collision of the ADV comprises: Divide the ADV into multiple parts; For each of the multiple parts of ADV, Determine the object closest to the portion of the ADV; determining whether a distance of the nearest object to the portion of the ADV is within a predetermined threshold; as well as In response to determining that the distance between the nearest object and the portion of the ADV is within a predetermined threshold, it is determined that the trajectory will result in a collision of the ADV.

4. The method of claim 1, wherein: Determining a score based on the machine learning model includes extracting a set of features based on one or more outputs of the planning module and perception data of the driving environment of the ADV.

5. The method of claim 4, wherein: The feature set includes one or more of obstacle information from different directions, road configuration, a state of the ADV, a speed of the ADV, an acceleration of the ADV, or a jerk of the ADV.

6. The method of claim 4, wherein: The scores determined using machine learning models include: comparing the set of features extracted from the planning module with the set of features extracted from the set of trajectories previously collected from human drivers; and The score is determined based on the similarity between the set of features extracted from the planning module and the set of features extracted from the set of trajectories previously collected from human drivers.

7. The method of claim 1, wherein: The parameter set includes one or more of a speed weighting factor, an acceleration weighting factor, a jerk weighting factor, a weighting factor for a safety distance between an obstacle and the ADV, or a weighting factor for a difference between a reference speed and a planned speed.

8. A non-transitory machine-readable medium having stored therein instructions which, when executed by a processor, cause the processor to perform the operations of the method of any one of claims 1 to 7.

9. A data processing system comprising: processor; as well as A memory, coupled to the processor and storing instructions, which, when executed by the processor, cause the processor to perform the operations of the method as claimed in any one of claims 1 to 7.

10. A computer program product comprising a computer program, which, when executed by a processor, causes the processor to perform the method according to any one of claims 1 to 7.

Citation Information

Patent Citations

  • Autonomous vehicle system

    US20220126864A1

  • Vehicle prediction module evaluation and training

    US20220188667A1