Determining a driving path for autonomous driving that avoids a moving obstacle

By determining the predicted path of obstacles and generating the predicted area, autonomous vehicles can effectively plan avoidance paths, solving the problem of avoiding unpredictable obstacles and improving driving safety.

CN110531749BActive Publication Date: 2026-08-25BAIDU USA LLC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN201811566683.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-05-24
Filing Date
2018-12-19
Publication Date
2026-08-25
Estimated Expiration
2038-12-19

AI Technical Summary

Technical Problem

Existing autonomous driving technologies struggle to effectively avoid unpredictable moving obstacles, leading to an increased risk of collisions.

Method used

By determining the predicted path of moving obstacles, a predicted area is generated, and the path of autonomous vehicles is planned based on this area to avoid potential collisions. The obstacle is detected by the sensor system and its possible range of movement is predicted by machine learning. The avoidance path is generated in combination with the path planning module.

Benefits of technology

This increases the probability that autonomous vehicles can avoid collisions with moving obstacles, enhancing driving safety and stability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN110531749B_ABST
    Figure CN110531749B_ABST
Patent Text Reader

Abstract

The ADV can determine a predicted path of the moving obstacle. The ADV can determine a predicted region based on the predicted path. The ADV can determine a path of the ADV based on the predicted region. The path of the ADV can avoid the predicted region when determining the path of the ADV.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of this disclosure generally relate to operating an autonomous vehicle. More specifically, embodiments of this disclosure relate to determining a path or route for an autonomous vehicle. Background Technology

[0002] Vehicles operating in autonomous driving mode (e.g., driverless) can free occupants, especially the driver, from certain driving-related duties. When operating in autonomous driving mode, the vehicle can use onboard sensors to navigate to various locations, allowing the vehicle to operate with minimal human-machine interaction or in situations where there are no passengers.

[0003] Motion planning and control are critical operations in autonomous driving. Specifically, trajectory planning is a vital component of autonomous driving systems. Conventional trajectory planning techniques heavily rely on high-quality reference lines to generate stable trajectories; these reference lines are the guiding paths used by autonomous vehicles, such as the center line of a road. Summary of the Invention

[0004] According to one aspect of this application, a computer-implemented method for operating an autonomous vehicle is provided, the computer-implemented method comprising:

[0005] Determine the predicted path of moving obstacles;

[0006] A prediction region is determined based on the predicted path of the moving obstacle, wherein the prediction region includes the predicted path;

[0007] The path of the autonomous vehicle is determined based on the predicted region, wherein the path avoids the predicted region; and

[0008] The autonomous vehicle is controlled based on the stated path.

[0009] According to another aspect of this application, a non-transitory machine-readable medium is provided storing instructions that, when executed by a processor, cause the processor to perform an operation, the operation including:

[0010] Determine the predicted path of moving obstacles;

[0011] A prediction region is determined based on the predicted path of the moving obstacle, wherein the prediction region includes the predicted path;

[0012] The path of the autonomous vehicle is determined based on the predicted region, wherein the path avoids the predicted region; and

[0013] The autonomous vehicle is controlled based on the stated path.

[0014] According to another aspect of this application, a data processing system is provided, comprising:

[0015] Processor; and

[0016] A memory, coupled to the processor, for storing instructions that, when executed by the processor, cause the processor to perform operations, the operations including:

[0017] Determine the predicted path of moving obstacles;

[0018] A prediction region is determined based on the predicted path of the moving obstacle, wherein the prediction region includes the predicted path;

[0019] The path of the autonomous vehicle is determined based on the predicted region, wherein the path avoids the predicted region; and

[0020] The autonomous vehicle is controlled based on the stated path. Attached Figure Description

[0021] Embodiments of this disclosure are shown by way of example and not limitation in the accompanying drawings, in which the same reference numerals indicate similar elements.

[0022] Figure 1 This is a block diagram illustrating a networked system according to some implementations.

[0023] Figure 2 This is a block diagram illustrating an example of an autonomous vehicle according to some implementation methods.

[0024] Figures 3A to 3B This is a block diagram illustrating an example of a perception and planning system used with an autonomous vehicle according to some implementations.

[0025] Figure 4A This is a block diagram illustrating an example of a sensing module according to some implementations.

[0026] Figure 4B This is a block diagram illustrating an example of a prediction module according to some implementations.

[0027] Figure 4C This is a block diagram illustrating an example of a planning module according to some implementation methods.

[0028] Figure 5A This is an illustration showing exemplary graphics according to some implementation methods.

[0029] Figure 5B This is an illustration showing exemplary graphics according to some implementation methods.

[0030] Figure 5CThis is an illustration showing exemplary graphics according to some implementation methods.

[0031] Figure 5D This is an illustration showing exemplary graphics according to some implementation methods.

[0032] Figure 6A This is an illustration showing an example of an autonomous vehicle driving on a road according to some implementations.

[0033] Figure 6B This is an illustration showing an example of an autonomous vehicle driving on a road according to some implementations.

[0034] Figure 7 This is a flowchart illustrating an example of a process for determining a path for an autonomous vehicle according to some implementation methods.

[0035] Figure 8 This is a block diagram illustrating a data processing system according to one embodiment. Detailed Implementation

[0036] Various embodiments and aspects of this disclosure will be described with reference to the details discussed below, and the accompanying drawings will illustrate these various embodiments. The following description and drawings are illustrative of this disclosure and should not be construed as limiting it. Numerous specific details are described to provide a comprehensive understanding of the various embodiments of this disclosure. However, in some cases, well-known or conventional details have not been described to provide a concise discussion of embodiments of this disclosure.

[0037] The reference to "one embodiment" or "implementation" in this specification means that a particular feature, structure, or characteristic described in connection with that embodiment may be included in at least one embodiment of this disclosure. The phrase "in one embodiment" appearing in various places in this specification does not necessarily refer to the same embodiment.

[0038] According to some implementations, a novel method is used to determine the path of an autonomous vehicle (ADV). Various moving obstacles / objects may be located in the same geographic area where the ADV is traveling / occupying. These moving obstacles may move unpredictably. For example, while a pedestrian may be moving along the path, the pedestrian may suddenly change direction (e.g., turn left) or may accelerate / decelerate. This can cause problems when attempting to predict the path of moving objects to avoid collisions, impacts, or collisions with them. Therefore, determining (e.g., calculating, operating on, obtaining, etc.) an area including possible locations where moving obstacles may move can be useful.

[0039] ADV (Advanced Driver Valve) can determine a predicted area, including possible locations where a moving obstacle might move. The predicted area can include a large percentage (e.g., 99.7%) of possible locations where the moving obstacle might move. This allows ADV to determine and / or plan a path that avoids the predicted area. When ADV avoids the predicted area (the area where the moving obstacle might move), this allows ADV to increase the probability of avoiding a collision with the moving obstacle.

[0040] Figure 1 This is a block diagram illustrating a network configuration for an autonomous vehicle according to some embodiments of the present disclosure. (See reference...) Figure 1 Network configuration 100 includes an autonomous vehicle 101 communicatively connected to one or more servers 103 to 104 via network 102. Although only one autonomous vehicle is shown, multiple autonomous vehicles can be connected to each other and / or to servers 103 to 104 via network 102. Network 102 can be any type of network, such as a wired or wireless local area network (LAN), a wide area network (WAN) such as the Internet, a cellular network, a satellite network, or a combination thereof. Servers 103 to 104 can be any type of server or server cluster, such as a network or cloud server, an application server, a backend server, or a combination thereof. Servers 103 to 104 can be data analytics servers, content servers, traffic information servers, map and point of interest (MPOI) servers, or location servers, etc.

[0041] An autonomous vehicle is a vehicle that can be configured to operate in an autonomous driving mode, in which the vehicle navigates its environment with minimal or no input from a driver. Such an autonomous vehicle may include a sensor system having one or more sensors configured to detect information related to the vehicle's operating environment. The vehicle and its associated controller use the detected information to navigate through the environment. The autonomous vehicle 101 may operate in manual mode, fully autonomous driving mode, or partially autonomous driving mode.

[0042] In one embodiment, the autonomous vehicle 101 includes, but is not limited to, a perception and planning system 110, a vehicle control system 111, a wireless communication system 112, a user interface system 113, and a sensor system 115. The autonomous vehicle 101 may also include certain common components found in ordinary vehicles, such as an engine, wheels, steering wheel, and transmission. These components can be controlled by the vehicle control system 111 and / or the perception and planning system 110 using various communication signals and / or commands, such as acceleration signals or commands, deceleration signals or commands, steering signals or commands, braking signals or commands, etc.

[0043] Components 110 to 115 can be communicatively connected to each other via interconnects, buses, networks, or combinations thereof. For example, components 110 to 115 can be communicatively connected 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 master. It is a message-based protocol originally designed for multiplexed electrical wiring in automobiles, but it is also used in many other environments.

[0044] Now for reference 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 Ranging (LIDAR) unit 215. The GPS unit 212 may include a transceiver operable to provide information about the location of the autonomous vehicle. The IMU unit 213 may sense changes in the position and orientation of the autonomous vehicle 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 autonomous vehicle. In some embodiments, in addition to sensing objects, the radar unit 214 may additionally sense the velocity and / or direction of travel of the objects. The LIDAR unit 215 may use lasers to sense objects in the environment in which the autonomous vehicle is located. Among other system components, the LIDAR unit 215 may also include one or more laser sources, a laser scanner, and one or more detectors. The camera 211 may include one or more means for acquiring images of the environment surrounding the autonomous vehicle. The camera 211 may be a still camera and / or a video camera. The camera can be mechanically movable, for example, by mounting the camera on a rotating and / or tilting platform.

[0045] The sensor system 115 may also include other sensors, such as sonar sensors, infrared sensors, steering sensors, throttle sensors, brake sensors, and audio sensors (e.g., microphones). The audio sensor may be configured to collect sound from the environment surrounding the autonomous vehicle. The steering sensor may be configured to sense the steering angle of the steering wheel, the vehicle's wheels, or a combination thereof. The throttle and brake sensors sense the throttle and brake positions of the vehicle, respectively. In some cases, the throttle and brake sensors may be integrated into an integrated throttle / brake sensor.

[0046] 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 braking unit 203. The steering unit 201 is used to adjust the direction or forward trajectory of the vehicle. The throttle unit 202 is used to control the speed of an electric motor or engine, which in turn controls the speed and acceleration of the vehicle. The braking unit 203 decelerates the vehicle by providing friction to slow down the wheels or tires. It should be noted that, as Figure 2 The components shown can be implemented in hardware, software, or a combination thereof.

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

[0048] Some or all of the functions of the autonomous vehicle 101 may be controlled or managed by the perception and planning system 110, especially when operating in autonomous driving mode. The perception and planning system 110 includes the necessary hardware (e.g., processor, memory, storage device) and software (e.g., operating system, planning and route scheduling program) to receive information from the 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 the starting point to the destination, and subsequently drive the vehicle 101 based on the planning and control information. Alternatively, the perception and planning system 110 may be integrated with the vehicle control system 111.

[0049] For example, a user, acting as a passenger, can specify the start and destination of a trip, for instance, via a user interface. The perception and planning system 110 obtains trip-related data. For example, the perception and planning system 110 may obtain location and route information from an MPOI server, which may be part of servers 103 to 104. Location servers provide location services, and MPOI servers provide map services and POIs for certain locations. Alternatively, such location and MPOI information may be locally cached in the persistent storage of the perception and planning system 110. In some embodiments, the perception and planning system 110 may not have MPOI information (e.g., map data). For example, the perception and planning system 110 may not have map data for other environments or geographic areas / locations, and may not have map data for the environment or geographic area / location in which the autonomous vehicle 101 is currently driving or located (e.g., the perception and planning system 110 may have map data for one city but may not have map data for another city). In another example, the perception and planning system 110 may not have any map data or MPOI information (e.g., the perception and planning system 110 may not store any map data).

[0050] As the autonomous vehicle 101 moves along the route, the perception and planning system 110 can also obtain real-time traffic information from a traffic information system or server (TIS). It should be noted that servers 103 to 104 can be operated by a third-party entity. Alternatively, the functionality of servers 103 to 104 can be integrated with the perception and planning system 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, the perception and planning system 110 can plan an optimal route and drive the vehicle 101 according to the planned route, for example via control system 111, to safely and efficiently reach the designated destination.

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

[0052] Based on driving statistics 123, machine learning engine 122 generates or trains a set of rules, algorithms, and / or predictive models 124 for various purposes. For example, a set of fifth-order polynomial functions can be selected and defined using initial coefficients or parameters. Furthermore, a set of constraints can be defined based on hardware characteristics such as sensor specifications and specific vehicle design available from driving statistics 123.

[0053] Figure 3A and Figure 3B This is a block diagram illustrating an example of a perception and planning system used with an autonomous vehicle, according to some embodiments. System 300 can be implemented as... Figure 1 This is part of an autonomous vehicle 101, including but not limited to a perception and planning system 110, a control system 111, and a sensor system 115. (Reference) Figures 3A to 3B The perception and planning system 110 includes, but is not limited to, a positioning module 301, a perception module 302, a prediction module 303, a decision-making module 304, a planning module 305, a control module 306, and a route module 307.

[0054] Some or all of modules 301 to 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). It should be noted that some or all of these modules may be communicatively coupled to… Figure 2 Some or all of the modules of the vehicle control system 111, or integrated with them. Some of the modules 301 to 307 can be integrated together as an integrated module.

[0055] The positioning module 301 determines the current location of the autonomous vehicle 300 (e.g., using GPS unit 212) and manages any data related to the user's trip or route. The positioning module 301 (also referred to as the map and route module) manages any data related to the user's trip or route. The user can, for example, log in via a user interface and specify the start and destination of the trip. The positioning module 301 communicates with other components of the autonomous vehicle 300, such as map and route information 311, to obtain trip-related data. For example, the positioning module 301 may obtain location and route information 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 for certain locations, which can be cached as part of the map and route information 311. The positioning module 301 may also obtain real-time traffic information from a traffic information system or server as the autonomous vehicle 300 moves along the route. In one embodiment, the map and route information 311 may have been previously stored in a persistent storage device 352. For example, the map and route information 311 may have been previously downloaded or copied to the persistent storage device 352.

[0056] Based on sensor data provided by sensor system 115 and positioning information obtained by positioning module 301, perception module 302 determines the perception of the surrounding environment. The perception information may represent what a typical driver would perceive around the vehicle being driven. Perception may include, for example, lane configurations in the form of objects (e.g., straight lanes or curved lanes), traffic light signals, the relative position of other vehicles, pedestrians, buildings, crosswalks, or other traffic-related signs (e.g., stop signs, yield signs), etc.

[0057] The perception module 302 may include a computer vision system or the functionality of a computer vision system to process and analyze images acquired by one or more cameras to identify objects and / or features in the environment of the autonomous vehicle. The objects may include traffic signals, road 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.

[0058] For each object, prediction module 303 predicts how the object will behave in that situation. The prediction is performed based on perception data that considers the driving environment at a given point in time, taking into account a set of map / route information 311 and traffic rules 312. For example, if the object is a vehicle traveling in the opposite direction and the current driving environment includes an intersection, prediction module 303 will predict whether the vehicle is likely to move straight ahead or turn. If the perception data indicates that there are no traffic lights at the intersection, prediction module 303 may predict that the vehicle may need to come to a complete stop before entering the intersection. If the perception data indicates that the vehicle is currently in either the only left-turn lane or the only right-turn lane, prediction module 303 may predict that the vehicle is more likely to turn left or right, respectively. In some implementations, the map / route information 311 for the environment or geographic area / location can be dynamically generated (e.g., generated by perception module 302) as the autonomous vehicle travels through that environment or geographic area / location, as discussed in more detail below.

[0059] For each object, decision module 304 makes a decision about how to handle the object. For example, for a specific object (e.g., another vehicle on an intersecting road) and metadata describing the object (e.g., speed, direction, turning angle), decision module 304 decides how to encounter the object (e.g., overtake, yield, stop, pass). Decision module 304 may make such decisions based on a set of rules, such as traffic rules or driving rules 312, which may be stored in permanent storage device 352.

[0060] Various moving obstacles / objects can move unpredictably. For example, while a pedestrian may be moving along a path, they may suddenly change direction (e.g., turn left) or accelerate / decelerate. This can cause problems when attempting to predict the path of a moving object to avoid collisions, impacts, or collisions. Therefore, identifying (e.g., calculating, operating on, obtaining, etc.) an area that includes possible locations where a moving obstacle might move can be useful. This allows ADV (Advanced Driver Variable) to increase the probability of avoiding moving obstacles.

[0061] Route module 307 is configured to provide one or more routes or paths from a starting point to a destination. For a given trip from the starting location to the destination location, such as a given trip received from a user, route module 307 obtains route and map information 311 and determines all possible routes or paths from the starting location to the destination location. In some embodiments, map / route information 311 may be generated by perception module 302, as discussed in more detail below. Route module 307 may generate reference lines in the form of a topographic map, which defines each route from the starting location to the destination location. The reference line refers to an ideal route or path that is not disturbed by other vehicles, obstacles, or traffic conditions. That is, if there are no other vehicles, pedestrians, or obstacles on the road, the ADV should follow the reference line precisely or closely. The topographic map is then provided to decision module 304 and / or planning module 305. Decision module 304 and / or planning module 305 examine all possible routes to select and refine one of the optimal routes based on additional data provided by other modules, such as traffic conditions from positioning module 301, driving environment perceived by perception module 302, and traffic conditions predicted by prediction module 303. Depending on the specific driving environment at a given time, the actual path or route used to control the ADV may be close to or different from the reference line provided by route module 307.

[0062] Based on the decisions made for each of the perceived objects, the planning module 305 uses reference lines provided by the route module 307 as a basis to plan a path or route for the autonomous vehicle, along with driving parameters (e.g., distance, speed, and / or turning angle). In other words, for a given object, the decision module 304 decides what to do about that object, while the planning module 305 determines how to do it. For example, for a given object, the decision module 304 may decide to overtake it, while the planning module 305 may determine whether to overtake it to the left or right. Planning and control data is generated by the planning module 305 and includes 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 lanes to the right at a speed of 25 mph.

[0063] Based on planning and control data, control module 306 controls and drives the autonomous vehicle by sending appropriate commands or signals to 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 one point to another along the route or path at different times using appropriate vehicle settings or driving parameters (e.g., throttle, braking, and turning commands).

[0064] In one implementation, the planning phase is executed in multiple planning cycles (also referred to as instruction cycles), for example, in cycles with a time interval of 100 milliseconds (ms). For each planning cycle or instruction cycle, one or more control instructions are issued based on the planning and control data. That is, for every 100 ms, the planning module 305 plans the next route segment or path segment, including, for example, the target location and the time required for the ADV to reach the target location. Alternatively, the planning module 305 may also specify specific speeds, directions, and / or steering angles, etc. In one implementation, the planning module 305 plans a route segment or path segment for the next predetermined time period (e.g., 5 seconds). For each planning cycle, the planning module 305 plans a target location for the current cycle (e.g., the next 5 seconds) based on the target location planned in the previous cycle. The control module 306 then generates one or more control instructions (e.g., throttle, braking, steering control instructions) based on the planning and control data of the current cycle.

[0065] It should be noted 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 the functionality of a navigation system to determine a driving path for the autonomous vehicle. For example, the navigation system may determine a series of speeds and directions of travel for enabling the autonomous vehicle to move along a path that substantially avoids perceived obstacles while allowing the autonomous vehicle to proceed along a road-based path leading to a 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 autonomous vehicle is in operation. The navigation system may combine data from a GPS system and one or more maps (which may be generated by the perception module 302 or may have been previously stored / downloaded) to determine a driving path for the autonomous vehicle.

[0066] The decision module 304 / planning module 305 may also include a collision avoidance system or its functionality to identify, assess, and avoid or otherwise traverse potential obstacles in the environment of the autonomous vehicle. For example, the collision avoidance system may enable changes in the navigation of the autonomous vehicle by having one or more subsystems in the operation control system 111 perform steering maneuvers, turning maneuvers, braking maneuvers, etc. The collision avoidance system may automatically determine feasible obstacle avoidance maneuvers based on surrounding traffic patterns, road conditions, etc. The collision avoidance system may be configured such that it does not perform steering maneuvers when other sensor systems detect vehicles, building obstacles, etc., in an adjacent area into which the autonomous vehicle will turn. The collision avoidance system may automatically select maneuvers that are both usable and maximize the safety of the autonomous vehicle's occupants. The collision avoidance system may select avoidance maneuvers that predict the minimum amount of acceleration in the passenger compartment of the autonomous vehicle.

[0067] Route module 307 can generate a reference route from map information (such as road segment information, roadway information, and lane distance information from curbs). For example, a road can be divided into sections or segments {A, B, and C} to represent three road segments. The three lanes of road segment A can be listed as {A1, A2, and A3}. The reference route is generated by generating reference points along the reference route. For example, for a vehicle lane, route module 307 can connect the midpoints of two opposite curbs or endpoints of the vehicle lane provided by map data (which can be generated by perception module 302 or can be previously stored / downloaded). Based on the midpoints of collected data points representing vehicles traveling in the vehicle lane at different times and machine learning data, route module 307 can calculate reference points by selecting a subset of data points collected within a predetermined proximity of the vehicle lane and applying a smoothing function to the midpoints of the subset of collected data points.

[0068] Based on reference points or lane reference points, the route module 307 can generate reference lines by interpolating the reference points, so that the generated reference lines are used as reference lines for ADVs controlling the vehicle lanes. In some embodiments, a reference point table and a road segment table representing reference lines are uploaded to the ADV in real time, allowing the ADV to generate reference lines based on the ADV's geographic location and direction of travel. For example, in one embodiment, the ADV can generate reference lines by requesting a route planning service for a path segment, using a path segment identifier representing the upcoming road segment and / or based on the ADV's GPS location. Based on the path segment identifier, the route planning service can return to the ADV's reference point table, which includes reference points for all lanes of the road segment of interest. The ADV can consult the reference points for the lanes of the path segment to generate reference lines for the ADVs controlling the vehicle lanes.

[0069] Figure 4A This is a block diagram illustrating an example of a sensing module 302 according to some embodiments. (See reference) Figure 4AThe sensing module 302 includes, but is not limited to, sensor component 411 and obstacle component 412. These components 411 to 412 can be implemented in software, hardware, or a combination thereof. Sensor component 411 can obtain sensor data from one or more sensors of the ADV. For example, sensor component 411 can periodically request or poll sensor data from one or more sensors (e.g., it can request sensor data from the sensors every few milliseconds, every second, or some other appropriate time interval). In another example, sensor component 411 can listen for or wait for sensor data to be received from one or more sensors. For example, sensor component 411 can be configured to continuously monitor a bus, communication channel (wired or wireless), wire, line, lead, trace, etc., so that sensor component 411 can receive sensor data immediately when sensor data is generated by one or more sensors.

[0070] In one embodiment, the sensor may be a camera (e.g., a digital camera, camcorder, video recorder, etc.) or some other device capable of capturing or recording images. Sensor data generated by the camera and received by sensor component 411 may be referred to as video data. Examples of video data may include, but are not limited to, digital images (e.g., Joint Photographic Experts Group (JPEG) images), video frames, Moving Picture Experts Group (MPEG) data, or other data suitable for representing optical images captured by the camera. In another embodiment, the sensor may be a radar unit (e.g., Figure 2 The radar unit 214 shown may be a radar unit or some other device capable of determining the position, range, angle, and / or velocity of objects around the ADV using radio waves (e.g., radio frequency waves or signals). Sensor data generated by the radar unit may be referred to as radar data. Radar data may be data indicating the position, range, angle, and / or velocity of an object detected by the radar unit. In another embodiment, the sensor may be a LIDAR unit (e.g., Figure 2 The LIDAR unit 215 shown may be an example of a device capable of using light (e.g., a laser) to determine the position, extent, angle, and / or velocity of objects around the ADV. Sensor data generated by the LIDAR unit may be data that indicates the position, extent, angle, and / or velocity of objects detected by the LIDAR unit. In other embodiments, other types of sensors may generate other types of data that can be provided to sensor assembly 411. Any type of sensor that can be used to detect the position, extent, angle, and / or velocity of objects (e.g., pedestrians, vehicles, roadblocks, obstacles, fences, lane lines, signs, traffic lights, etc.) in an environment or geographic location / area can be used in the embodiments, implementations, and / or examples described herein. In another embodiment, the sensor may be a GPS receiver or unit (e.g., Figure 2The GPS receiver may be a GPS unit 212 (as shown) or some other device capable of determining the location of the ADV (e.g., physical or geographic location). The sensor data generated by the GPS receiver may be GPS data (which may be referred to as GPS coordinates).

[0071] In one implementation, sensor data can indicate information about the environment or geographic area / location where the ADV is currently located or traveling. For example, sensor data can indicate the location and / or layout of objects (e.g., pedestrians, vehicles, roadblocks, obstacles, fences, lane lines, signs, traffic lights, etc.). In another example, sensor data can indicate road conditions of the environment or geographic area (e.g., whether the road is dry, wet, flat, bumpy, etc.). In yet another example, sensor data can indicate weather conditions of the environment or geographic area (e.g., temperature, whether there is rain, wind, snow, hail, etc.).

[0072] In one implementation, obstacle component 412 can detect one or more moving obstacles based on sensor data acquired / received by sensor component 411. For example, obstacle component 412 can analyze images or videos (e.g., video data) captured by a camera to identify moving obstacles located in the geographic area where the ADV is located / traveling. In another example, obstacle component 412 can analyze radar data to identify moving obstacles located in the geographic area where the ADV is located / traveling. In yet another example, obstacle component 412 can analyze LIDAR data to identify moving obstacles in the geographic area where the ADV is located / traveling.

[0073] In one implementation, component 412 may use various techniques, methods, algorithms, operations, etc., to identify moving obstacles based on sensor data. For example, obstacle component 412 may use image or video processing / analysis techniques or algorithms to identify moving obstacles based on video data. In another example, obstacle component 412 may use various object detection techniques or algorithms to identify moving obstacles based on radar and / or LiDAR data. The described examples, implementations, and / or embodiments may use various types of sensor data and / or various functions, techniques, methods, algorithms, operations, etc., to identify moving obstacles. For example, obstacle component 412 may use machine learning, artificial intelligence, statistical models, neural networks, clustering techniques, etc.

[0074] Figure 4B This is a block diagram illustrating an example of a prediction module 303 according to some implementations. (See reference) Figure 4BThe prediction module 303 includes, but is not limited to, a path component 431, a change component 432, and a region component 433. These components 431-433 can be implemented in software, hardware, or a combination thereof. The reference line generator 405 is configured to generate reference lines for ADV. As described above, the perception module 302 (e.g., Figure 3A , 3B As shown in 4A, the perception module 302 can detect moving obstacles within the geographical area where the ADV is located. For example, the perception module 302 can detect pedestrians walking on the street / road where the ADV is located / traveling. In another example, the perception module 302 can detect cyclists on the street / road where the ADV is located / traveling. As described above, the perception module 302 can detect moving obstacles based on sensor data (e.g., video data, radar data, LiDAR data, etc.) generated by one or more sensors (e.g., cameras, radar units, LiDAR units, etc.).

[0075] In one implementation, the path component 431 can determine the path of a moving obstacle. As described above, the perception module 302 can detect moving obstacles (e.g., pedestrians, cyclists, etc.) in the geographical area where the ADV is located / traveling based on sensor data. The path component 431 can determine the possible path that the moving obstacle may travel or take based on the sensor data. The possible path that the moving obstacle may travel may be referred to as a predicted path, an estimated path, a possible path, etc.

[0076] In one implementation, path component 431 can determine a predicted path for a moving obstacle by identifying one or more prediction points in the geographic area where the ADV is located / traveling. For example, path component 431 can use a Kalman filter to determine one or more prediction points. A Kalman filter can use a series of measurements observed over time to produce an estimate or prediction of unknown variables. The Kalman filter can also estimate the joint probability distribution of the variables over each time frame. A Kalman filter may be referred to as a linear quadratic estimator (LQE). While this disclosure may relate to Kalman filters, in other implementations, various other filters, algorithms, methods, functions, operations, procedures, etc., may be used to determine one or more prediction points.

[0077] In one implementation, the path component 431 can define and / or generate one or more polynomial functions (e.g., fifth-degree polynomials, cubic polynomials, etc.) to represent or model the predicted path of a moving obstacle. For example, the polynomial function can be defined as a line in the XY plane that includes the predicted point (e.g., the predicted point lies on the line defined by the polynomial function and the line represents the predicted path). One or more polynomial functions can also be generated, determined, and computed based on various boundaries or constraints. Boundaries or constraints can be pre-set and / or stored as... Figure 3AThis is a portion of constraint 313 shown. The polynomial function used by path component 431 can be pre-set and / or stored as... Figure 3A A portion of the polynomial function 314 shown in the figure.

[0078] In one implementation, the region component 433 may determine the predicted region based on the predicted path of the ADV (determined by the path component 431). The region component 433 may determine the predicted region based on one or more predicted points, as discussed in more detail below. For example, the region component 433 may determine the region surrounding the predicted path. As mentioned above, the movement of the moving obstacle may be unpredictable or uncertain. For example, a pedestrian walking in a geographic area (the area where the ADV is located / traveling) may accelerate (e.g., walk faster), decelerate (e.g., walk slower), or may change direction (e.g., turn left, right, or make a U-turn).

[0079] In one implementation, the region component 433 may determine the prediction region based on a plurality of surrounding regions determined by the variation component 432. The variation component 432 may determine a surrounding region for each prediction point determined (e.g., obtained, calculated, generated, etc.) by the path component 431, as discussed in more detail below. For example, the variation component 432 may determine a surrounding region for each prediction point generated by the path component 431. Each surrounding region may be determined based on a threshold standard deviation from the corresponding prediction point. For example, the size of the surrounding region (e.g., length, width, etc.) may be equal to three standard deviations from the corresponding prediction point. The surrounding region may be referred to as an X-sigma (X-σ) region, where X is the number of standard deviations from the corresponding prediction point. For example, if the size of the surrounding region (e.g., length, width, etc.) is equal to three standard deviations from the corresponding prediction point, then the surrounding region may be referred to as a 3-sigma (3-σ) region. A 3-σ region may be a region where the probability (e.g., the probability) that a moving obstacle will not move outside the boundary of the 3-σ region is 99.7%. In some implementations, the size of the surrounding region may be different if different numbers of standard deviations are used. For example, a region of size equal to two standard deviations from the corresponding prediction point (which may be referred to as a 2-sigma (2-σ) region) can be smaller than a region of size equal to three standard deviations from the corresponding prediction point (e.g., a 3-σ region). A 2-σ region can be a region where the probability (e.g., the probability) that a moving obstacle will not move outside the boundary of the 2-σ region is 95%.

[0080] In one embodiment, the surrounding region determined by the variation component 432 may have a shape (e.g., a geometric shape, a regular shape, an irregular shape, etc.). For example, the surrounding region of the prediction point may have a circular shape (e.g., it may be a circle). In another example, the surrounding region of the prediction point may have an ellipsoidal shape (e.g., it may be an ellipse). Although the figures and this disclosure may refer to circles and / or ellipses, other shapes may be used in other embodiments.

[0081] In one implementation, the region component 433 may determine one or more boundary points of the prediction region based on one or more surrounding regions determined by the variation component 432. For example, the region component 433 may determine one or more boundary points for each surrounding region. When boundary points are connected to form a prediction region, the outermost edge of the surrounding region may be contained within the boundary points. The region component 433 may determine the prediction region based on the boundary points. For example, the prediction region may be surrounded by boundary points. In another example, the boundary points may define the edges or boundaries of the prediction region. In some implementations, the prediction path may be within the prediction region. For example, the prediction path may be in the central region or central area of ​​the prediction region. In another example, the prediction region may contain or surround the prediction path.

[0082] In some implementations, the prediction area may include or contain possible locations where a moving obstacle might move. For example, a moving obstacle might be a pedestrian. Pedestrians may move unpredictably as they move / travel through a geographic area. Based on a threshold standard deviation of the surrounding area used to determine the prediction area, the prediction area may contain a percentage of possible locations where a pedestrian might move. For example, if a 3-sigma (3-σ) surrounding area is used to determine the prediction area, then the prediction area may contain 99.7% of possible locations where a pedestrian could move. Therefore, if the ADV avoids the prediction area, the ADV may have a 99.7% probability of avoiding (e.g., not colliding with the moving obstacle). This allows the ADV to consider, plan, prepare, etc., for the uncertainty or unpredictability of the movement of moving obstacles.

[0083] Figure 4C This is a block diagram illustrating an example of a planning module 305 according to some implementations. (See reference) Figure 4C The planning module 305 includes, but is not limited to, a segmenter 401, a polynomial function generator 402, a sample point generator 403, a path generator 404, and a reference line generator 405. These modules 401-405 can be implemented in software, hardware, or a combination thereof. The reference line generator 405 is configured to generate reference lines for ADV. As mentioned above, the reference line can be a guiding path for ADV, such as the centerline of a road, to generate a stable trajectory. The reference line generator 405 can be based on map and route information 311 (…). Figure 3A and 3B (As shown) a reference line is generated. As mentioned above, the map and route information 311 can be pre-existing map data (e.g., previously downloaded or stored map data). In one embodiment, the reference line generator 405 can generate reference lines based on the prediction area and / or prediction path determined (e.g., generated, calculated, operated on, etc.) by the prediction module 303. The reference line generator 405 can generate reference lines that avoid the prediction area and / or prediction path. For example, when represented on the XY plane, the reference lines will not intersect / cross the prediction area and / or prediction path.

[0084] Segmenter 401 is configured to divide the reference line into multiple reference segments. The reference line can be divided into reference segments to generate separate segments or portions of the reference line. For each reference segment, polynomial function generator 402 can be configured to define and generate polynomial functions to represent or model the corresponding reference segment. Sample point generator 403 can generate sample points based on the reference line. For example, sample point generator 403 can generate one or more sets of sample points (e.g., a group of one or more sample points) that generally follow the reference line, as discussed in more detail below. In one embodiment, sample point generator 40 can generate one or more sets of sample points based on a prediction region and / or prediction path determined (e.g., generated, calculated, operated on, etc.) by prediction module 303. Sample point generator 403 can generate groups of sample points that avoid the prediction region and / or prediction path. For example, when represented on the XY plane, the sample point group may not be located within the prediction region and / or on the prediction path.

[0085] The polynomial function generator 402 can connect multiple sets of sample points to each other. For example, the polynomial function generator 402 can generate one or more segments (e.g., connections) between each sample point in one set of sample points and each sample point in the next adjacent set of sample points, as discussed in more detail below. The polynomial function generator 402 can also generate, compute, determine, etc., one or more polynomials that can be used to represent segments between sample points. For example, the polynomial function generator 402 can generate, determine, compute, etc., polynomial functions for each segment between two sample points. Polynomial functions representing segments can also be generated, determined, and computed based on various boundaries or constraints. Boundaries or constraints can be preset and / or stored as... Figure 3A This is part of constraint 313 shown. The polynomial functions used by the planning module 305 (e.g., by the polynomial function generator 402) can be pre-configured and / or stored as... Figure 3A Part of the polynomial function 314 shown.

[0086] The path generator 404 can determine the path of the ADV based on segments between sample points, as discussed in more detail below. For example, the path generator 404 can determine the cost of each segment. The cost can be based on various factors or parameters, including but not limited to, how far the segment is from the reference line, how far the sample points in the segment are from the reference line, the rate of change of curvature of the segment or the sample points in the segment, the curvature of the segment, obstacles that may be located at the sample points (e.g., vehicles, pedestrians, obstacles, etc.). The cost can also be referred to as the weight. The path generator 404 can identify or select segments that form a path with the lowest total cost (lowest total weight).

[0087] Figure 5A This is an illustration of an exemplary drawing 500A according to some embodiments. Drawing 500A can represent the XY plane using a Cartesian coordinate system, such as... Figure 5A The X and Y axes are shown in the diagram. For example, XY coordinates can be used to represent the position of a point on graph 500A. In another example, one or more equations / functions (e.g., linear functions, cubic polynomials, quintic polynomials, etc.) can be used to represent lines and / or regions on graph 500A. As mentioned above, ADV (e.g., Figure 3A , 3B The perception module 302 shown in 4A can detect moving obstacles within the geographic area where the ADV is located. For example, the ADV can detect pedestrians walking / running on the street / road (e.g., geographic area) where the ADV is located / traveling, based on sensor data. Figure 5A As shown, ADV (e.g., Figure 3B The prediction module 302 shown Figure 4B The path component 431 (as shown) can determine the possible path that a moving obstacle may travel or take based on sensor data. The possible path that the moving obstacle may travel may be referred to as a predicted path, estimated path, possible path, etc. The predicted path of the moving obstacle (e.g., a pedestrian) is represented by line 505. Line 505 (e.g., the predicted path of the moving obstacle) includes points 511, 513, 515, 517, and 519 (e.g., points 511, 513, 515, 517, and 519 are located on or fall on 505). Points 511, 513, 515, 517, and 519 may be referred to as predicted points.

[0088] In one implementation, as described above, the ADV can use a Kalman filter to determine line 505 (e.g., the predicted path of a moving obstacle) and / or points 511, 513, 515, 517, and 519 (e.g., predicted points). While this disclosure relates to Kalman filters, in other implementations, various other filters, algorithms, methods, functions, operations, procedures, etc., can be used to determine the group / multiple predicted points. Line 505 can be represented based on a function / equation, such as a linear function, a polynomial function (e.g., a cubic polynomial, a quintic polynomial, etc.), as discussed above.

[0089] Figure 5B This is an illustration of an exemplary drawing 500B according to some embodiments. As described above, drawing 500B can represent the XY plane using a Cartesian coordinate system, such as... Figure 5B The X and Y axes are shown in the diagram. Furthermore, as mentioned above, ADV can detect moving obstacles (e.g., pedestrians, cyclists, etc.) within the geographic area where the ADV is located (e.g., roads, streets, etc.). Figure 5B As shown, the ADV (Advanced Device Variant) can determine the possible path that a moving obstacle may travel or take based on sensor data. The possible path of the moving obstacle may be referred to as the predicted path, estimated path, or possible path, etc. The predicted path of the moving obstacle (e.g., a pedestrian) is represented by line 505. Line 505 (e.g., the predicted path of the moving obstacle) includes points 511, 513, 515, 517, and 519 (e.g., points 511, 513, 515, 517, and 519 are located on or fall on 505). Points 511, 513, 515, 517, and 519 may be referred to as predicted points.

[0090] In one implementation, ADV (e.g., Figure 3B The prediction module 302 shown Figure 4B The variation component 432 shown can determine the surrounding regions 523, 525, 527, and 529 (e.g., based on one or more prediction points) based on points 511, 513, 515, 517, and 519 (e.g., based on one or more prediction points). Figure 5B (represented by an ellipse in the diagram). For example, ADV can define a surrounding region 523 for point 513, a surrounding region 525 for point 515, a surrounding region 527 for point 517, and a surrounding region 529 for point 519.

[0091] Although the surrounding regions 523, 525, 527, and 529 are shown as ellipses, in other embodiments, the surrounding regions 523, 525, 527, and 529 may have other shapes. For example, the surrounding region for the prediction point may have a circular shape (e.g., it may be a circle). In another example, the surrounding region for the prediction point may have an ellipsoidal shape (e.g., it may be an ellipse). While the figures and this disclosure may refer to circles and / or ellipses, other shapes may be used in other embodiments. In some embodiments, the length and width of the surrounding regions 523, 525, 527, and 529 may be based on the overall path of the moving obstacle (represented by line 505). For example, the distance of line 505 along the X-axis is greater than the distance along the Y-axis (e.g., the length of the line is greater than the width of the line). Therefore, the length of the surrounding regions 523, 525, 527, and 529 (e.g., the length of the ellipse) may be greater than the width of the surrounding regions 523, 525, 527, and 529 (e.g., the width of the ellipse). In another example, if the line is at or near a 45° angle (e.g., the length of the line is essentially equal to the width of the line), then the length and width of the surrounding area can be equal (e.g., the surrounding area can have a circular shape rather than an ellipsoidal shape).

[0092] In one implementation, each of the surrounding regions 523, 525, 527, and 529 can be determined based on a threshold standard deviation from the corresponding prediction point. For example, the length and width of the surrounding region 517 can be equal to the threshold number of standard deviations from point 517. As described above, the surrounding regions 523, 525, 527, and 529 can be referred to as X-sigma (X-σ) regions, where X is the number of standard deviations from the corresponding prediction point (e.g., a 3-sigma (3-σ) region can indicate that the length and width of the surrounding region are three standard deviations from the point). In some implementations, the surrounding regions 523, 525, 527, and 529 can be 3-sigma (3-σ) regions. A 3-σ region can be a region where the probability (e.g., the probability) that a moving obstacle will not move outside the boundary of the 3-σ region is 99.7%. In other implementations, the surrounding regions 523, 525, 527, and 529 can be different X-sigma regions. For example, the surrounding regions 523, 525, 527, and 529 can be 2-sigma (2-σ) regions. In another example, the surrounding region 523 can be a 3-sigma (3-σ) region, while the surrounding region 529 can be a 2-sigma (2-σ) region.

[0093] Figure 5C This is an illustration of an exemplary drawing 500C according to some embodiments. As described above, drawing 500C can represent the XY plane using a Cartesian coordinate system, such as... Figure 5CThe X and Y axes are shown in the diagram. Furthermore, as mentioned above, ADV can detect moving obstacles (e.g., pedestrians, cyclists, etc.) within the geographic area where the ADV is located (e.g., roads, streets, etc.). Figure 5C As shown, ADV can determine the possible path that a moving obstacle may travel or take based on sensor data. The possible path of the moving obstacle may be referred to as the predicted path, estimated path, or possible path, etc. The predicted path of the moving obstacle (e.g., a pedestrian) is represented by line 505. Line 505 (e.g., the predicted path of the moving obstacle) includes points 511, 513, 515, 517, and 519 (e.g., points 511, 513, 515, 517, and 519 are located on or fall on 505). Points 511, 513, 515, 517, and 519 may be referred to as predicted points. Similarly, as... Figure 5C As shown, ADV can determine surrounding regions 523, 525, 527, and 529. Each of the surrounding regions 523, 525, 527, and 529 can be determined based on a threshold standard deviation from the corresponding prediction point, as discussed above. For example, the length and width of surrounding region 517 can be equal to the number of threshold standard deviations from point 517.

[0094] In one implementation, ADV (e.g., Figure 3B The prediction module 303 shown Figure 4B The region component 433 (e.g., shown) can determine one or more boundary points of the prediction region based on one or more surrounding regions determined by the variation component 432. For example, ADV can determine boundary points 531 and 532 for surrounding region 523, boundary points 533 and 534 for surrounding region 525, boundary points 535 and 536 for surrounding region 527, and boundary points 537 and 538 for surrounding region 529. In some embodiments, boundary points 531 to 538 can be determined such that when the boundary points are connected to form a region (e.g., the prediction region), the outermost edges of surrounding regions 523, 525, 527, and 529 are contained within the boundary points, as discussed in more detail below.

[0095] Figure 5D This is an illustration of an exemplary graphic 500D according to some embodiments. As described above, graphic 500D can represent the XY plane using a Cartesian coordinate system, such as... Figure 5DThe X and Y axes are shown in the diagram. Furthermore, as mentioned above, the ADV can detect moving obstacles (e.g., pedestrians, cyclists, etc.) within the geographic area where the ADV is located (e.g., roads, streets, etc.). The ADV can determine the possible paths that the moving obstacles may take or travel based on sensor data. The possible paths that the moving obstacles may take can be referred to as predicted paths, estimated paths, possible paths, etc. The ADV can also determine surrounding areas 523, 525, 527, and 529. The ADV can further determine boundary points 531 to 538 based on the surrounding areas 523, 525, 527, and 529.

[0096] In one implementation, region component 433 may determine prediction region 550 (shown by shaded areas) based on boundary points 531 to 538. As shown, boundary points 531 to 538 are connected together to form prediction region 550. For example, point 511 may be connected to boundary points 532 and 531, boundary point 531 to boundary point 533, boundary point 533 to boundary point 535, boundary point 535 to boundary point 537, boundary point 532 to boundary point 534, boundary point 534 to boundary point 536, boundary point 536 to boundary point 538, and boundary point 537 to boundary point 538. The connected points (e.g., point 511 and boundary points 531 to 538) can form prediction region 550. Boundary points 531 to 538 may be included or contained within prediction region 550. For example, boundary points 531 to 538 may be located at the edge or around the boundary of prediction region 550. Figures 5A to 5C The predicted path shown (e.g., line 505) can be located within the predicted region 550.

[0097] In some implementations, the prediction region 550 may include or contain possible locations where the moving obstacle may move. For example, the moving obstacle may be along a predicted path (e.g., Figures 5A to 5CThe image shows a pedestrian moving along line 505. Since moving obstacles (e.g., pedestrians) can move unpredictably as they move / travel through a geographic area, it can be useful to determine an area that includes possible locations where the moving obstacle might move. Based on the standard deviation of a threshold surrounding the area used to determine the prediction area, the prediction area can contain the percentage of possible locations a pedestrian can move to. For example, if each surrounding area 523, 525, 527, and 529 is a 3-sigma (3-σ) surrounding area, then the prediction area could contain 99.7% of the possible locations a pedestrian could move to. Therefore, if the ADV avoids the prediction area 550, then the ADV can have a 99.7% probability of avoiding (e.g., not colliding with) the moving obstacle. This allows the ADV to account for, plan for, prepare for, etc., the uncertainty or unpredictability of the moving obstacle's movement. This also allows the ADV to operate more safely by increasing the probability that the ADV will not collide with, avoid, or hit the moving obstacle.

[0098] Figure 6A This is an illustration of an example of an ADV 605 traveling (e.g., moving, driving, etc.) in an environment 600A (e.g., a geographic area / location) according to some embodiments. Environment 600A includes a road 610 (e.g., a street, lane, road, freeway, highway, etc.) and a vehicle 615. Road 610 has two lanes, lane 611 and lane 612. The two lanes are separated by lane lines 613, and the road boundaries are defined by lane lines 616 and 617. Environment 600A also includes a pedestrian 630 (e.g., a moving obstacle) moving (e.g., walking, running, etc.) through environment 600A. The road 610, lanes 611 and 612, lane lines 613, 616 and 617, the location of ADV 605, the location of pedestrian 630, and / or... Figure 6A The other elements shown can be represented using a Cartesian coordinate system, such as... Figure 6A The X and Y axes are shown in the diagram. For example, the position of ADV 605 can be represented using XY coordinates.

[0099] As described above, ADV 605 can detect and / or identify pedestrian 630 based on sensor data (e.g., video data, radar data, LiDAR data, etc.). ADV 605 can determine a predicted path for pedestrian 630, as described above. ADV 605 can also determine multiple surrounding areas based on points of the predicted path, as described above. ADV 605 can determine multiple boundary points for the surrounding areas and can determine a predicted region 635 based on the multiple boundary points, as described above.

[0100] In some implementations, the prediction area 635 may include or contain possible locations where the pedestrian 630 may move. Since the pedestrian 630 may move unpredictably as it moves / travels through the environment 600A, it can be useful to determine an area that includes possible locations where the moving obstacle may move. If the prediction area 635 is determined using a 3-sigma (3-σ) surrounding area, then the prediction area 635 may contain 99.7% of the possible locations where the pedestrian 630 may move. Therefore, if the ADV avoids the prediction area 635, then the ADV may have a 99.7% probability of avoiding (e.g., not colliding with) the pedestrian 630. This also allows the ADV to operate more safely by increasing the probability that the ADV will not collide, bump, or collide with a moving obstacle.

[0101] Figure 6B This is an illustration of an example of an ADV 605 operating (e.g., moving, driving, etc.) in an environment 600B (e.g., a geographic area / location) according to some embodiments. Environment 600B includes a road 610, lane lines 613, 616, and 617, and a vehicle 615. As described above, a reference line generator 405 (as shown in FIG. 4) can generate reference lines. Reference lines can be guide paths, such as the centerline of the road 610 of the ADV 605. Also as described above, a segmenter 401 (as shown in FIG. 4) can divide (e.g., divide, separate, etc.) the reference lines into reference line segments. A sample point generator 403 can generate sample points 650 (e.g., ...). Figure 6B (As shown by the black dots in the image), as described above. Sample points 650 can be grouped into clusters or groups of sample points. For example... Figure 6B As shown, sample point 607 is grouped into three groups: road 610, sample point 650, reference line 630, and / or... Figure 6B The other elements shown can be represented using a Cartesian coordinate system, such as... Figure 6B The X and Y axes are shown in the diagram. For example, the position of ADV 605 can be represented using XY coordinates. In another example, sample point 650 can be represented using XY coordinates. In other implementations, different numbers of reference line segments, different numbers of sample points, different numbers of groups, different numbers of sample points within a group, and sample points at different locations can be used.

[0102] In one implementation, one or more polynomial functions can be used to represent a reference line. For example, a polynomial function generator 402 can generate polynomial functions that can represent reference line segments. The polynomial function generator 402 can generate one polynomial function for each reference line segment. For each reference line segment, the quintic function generator 402 can generate a quintic polynomial function θ(s). In one implementation, each quintic polynomial function represents the direction of the starting reference point of the corresponding reference line segment. The derivative of the quintic polynomial function (e.g., the first derivative) represents the curvature of the starting reference point of the reference line segment, K = dθ / ds. The second derivative of the quintic polynomial function represents the change in curvature or the rate of change of curvature, dK / ds.

[0103] For illustrative purposes, the following terms are defined:

[0104] ·θ0: Starting direction

[0105] · The initial curvature κ, the directional derivative with respect to the curve length, i.e.

[0106] · Begin with the derivative of curvature, i.e.

[0107] ·θ1: End direction

[0108] · End curvature

[0109] · End curvature derivative

[0110] Δs: Curve length between the two endpoints

[0111] Each segmented spiral path is determined by seven parameters: the starting direction (θ0), the starting curvature (dθ0), the derivative of the starting curvature (d2θ0), the ending direction (θ1), the ending curvature (dθ1), the derivative of the ending curvature (d2θ1), and the curve length (Δs) between the starting and ending points. In one implementation, the polynomial function can be a fifth-degree polynomial function. A fifth-degree polynomial function can be defined by equation (1) (e.g., formula, function, etc.) as follows:

[0112] θ i (s)=a*s 5 +b*s 4 +c*s 3 +d*s 2 +e*s+f (1)

[0113] And it satisfies

[0114] θ i (0)=θ i(2)

[0115]

[0116]

[0117] θ i (Δs)=θ i+1 (5)

[0118]

[0119]

[0120] In another embodiment, the polynomial function can be a cubic polynomial. A cubic polynomial can be defined by equation (8) as follows:

[0121] θ i (s)=a*s 3 +b*s 2 +c*s+f (8)

[0122] Furthermore, the cubic polynomial can satisfy the same conditions shown in equations (2) to (7) (as shown above for the quintic polynomial function).

[0123] Based on the above constraints, optimization is performed on all polynomial functions for all reference segments such that the output of the polynomial function representing reference segment (i) at the zero segment length should have the same or similar direction as the starting reference point of the corresponding reference segment (i). The first derivative of the polynomial function should have the same or similar curvature as the starting reference point of the reference segment (i). The second derivative of the polynomial function should have the same or similar rate of change of curvature as the starting reference point of the reference segment (i). Similarly, the output of the polynomial function representing reference segment (i) at the full segment length (s) should have the same or similar direction as the starting reference point of the next reference segment (i+1), which is the ending reference point of the current reference segment (i). The first derivative of the polynomial function should have the same or similar curvature as the starting reference point of the next reference segment (i+1). The second derivative of the polynomial function should have the same or similar rate of change of curvature as the starting reference point of the next reference segment (i+1).

[0124] For example, for reference line segment 501, the output of the corresponding polynomial function θ(0) represents the direction or angle of the starting point of the reference line segment. θ(Δs0) represents the direction of the ending point of the reference line segment, where the ending point of the reference line segment is also the starting point of the next reference line segment. The first derivative of θ(0) represents the curvature at the starting point (x0, y0) of the reference line segment, and the second derivative of θ(0) represents the rate of change of curvature at the ending point of the reference line segment. The first derivative of θ(s0) represents the curvature at the ending point of the reference line segment, and the second derivative of θ(s0) represents the rate of change of curvature at the ending point of the reference line segment.

[0125] By substituting the above variable θ i , θ i+1 , Given Δs, there will be six equations that can be used to solve for the coefficients a, b, c, d, e, and f of the polynomial function. For example, as mentioned above, the direction at a given point can be defined using the aforementioned fifth-degree polynomial function:

[0126] θ(s)=as 5 +bs 4 +cs 3 +ds 2 +es+f (9)

[0127] The first derivative of a quintic polynomial function represents the curvature at points along the path:

[0128] dθ=5as 4 +4bs 3 +3cs 2 +2ds+e (10)

[0129] The second derivative of a fifth-degree polynomial function represents the rate of change of curvature at points along the path:

[0130] d 2 θ = 20as 3 +12bs 2 +6cs+2d (11)

[0131] For a given spiral path or reference segment, involving two points: a start point and an end point, the direction, curvature, and rate of change of curvature at each point can be represented by the three equations mentioned above, respectively. Therefore, there are a total of six equations for each spiral path or reference segment. These six equations can be used to determine the coefficients a, b, c, d, e, and f of the corresponding fifth-degree polynomial function.

[0132] When a spiral path is used to represent a curve between consecutive reference points in Cartesian space, a connection or bridge needs to be established between the length of the spiral path curve and its position in Cartesian space. Given {θ} i ,dθi ,d 2 θ i ,θ i+1 ,dθ i+1 ,d 2 θ i+1 The spiral path θ defined by Δs} i (s) and path start point p i =(x i ,y i To determine the coordinates of a point p = (x, y), given any s = [0, Δs]. In one implementation, the coordinates of a given point can be obtained based on the following equation (e.g., formula, function, etc.):

[0133]

[0134]

[0135] When s = Δs, given the curve θi and the starting coordinates pi = (xi, yi), the ending coordinates pi + 1 are obtained. The function is optimized to minimize the overall output of the spiral path function while satisfying the aforementioned set of constraints. Furthermore, the coordinates of the endpoint derived from the optimization are required to be within a predetermined range (e.g., tolerance, error margin) relative to the initial reference line. That is, the difference between each optimized point and its corresponding point on the initial reference line should be within a predetermined threshold.

[0136] In some implementations, path generator 404 may use dynamic programming algorithms, functions, operations, etc., to determine the path of ADV 605. For example, path generator 404 may use Dijkstra's algorithm to determine the lowest-cost path of ADV 605 based on the cost (e.g., weight) of segments. The path of ADV may include one of nine segments between the leftmost and middle sample point groups, and one of nine segments between the middle and rightmost sample point groups. If multiple paths have the same lowest cost, path generator 404 may select one of the multiple paths based on various factors. For example, path generator 404 may select the path that is closest to following a reference line (e.g., the path with the smallest deviation from the reference line).

[0137] Figure 7This is a flowchart illustrating an example of a process 700 for determining a path for an autonomous vehicle (e.g., ADV) according to some embodiments. Process 700 can be executed by processing logic, which can include software, hardware, or a combination thereof. Process 700 can be executed by processing logic, which can include hardware (e.g., circuitry, dedicated logic, programmable logic, processor, processing device, central processing unit (CPU), system-on-a-chip (SoC), etc.), software (e.g., instructions that run / execute on the processing device), firmware (e.g., microcode), or a combination thereof. In some embodiments, process 700 can be executed by, for example, Figure 3B , Figure 4A , Figure 4B and 4C One or more of the shown perception module 302, prediction module 303, and planning module 305 are used to execute this. (Refer to...) Figure 7 In block 705, the processing logic identifies and / or detects moving obstacles. For example, the processing logic may detect moving obstacles (e.g., pedestrians) based on sensor data. In block 710, the processing logic may determine a predicted path for the moving obstacles. For example, the processing logic may determine one or more points (e.g., predicted points) representing the predicted path based on sensor data.

[0138] In block 715, the processing logic can determine the region surrounding the predicted point. For example, the processing logic can determine a threshold standard deviation (e.g., three standard deviations) and can determine the surrounding region based on the threshold standard deviation, as discussed above. In block 720, the processing logic can determine boundary points based on the surrounding region. For example, the processing logic can determine boundary points such that when the boundary points are connected, the outermost edge of the surrounding region can be contained within the boundary points. In block 725, the processing logic can determine the prediction region based on the boundary points. For example, the processing logic can connect the boundary points to form the prediction region, as described above.

[0139] In block 730, the processing logic can determine the ADV's path based on the prediction region. For example, the processing logic can determine a reference line to avoid the prediction region, as described above. The processing logic can determine sample points based on the reference line. Sample points can also avoid the prediction region, as described above. The processing logic can further determine multiple segments based on the sample points, as described above. The processing logic can further determine the ADV's path based on multiple segments, as described above. In block 735, the processing logic can control the ADV based on the path. For example, the processing logic can cause the ADV to move and / or travel along the path.

[0140] It should be noted that some or all of the components shown and described above may be implemented in software, hardware, or a combination thereof. For example, such components may be implemented as software installed and stored in a permanent storage device, which may be loaded into memory by a processor (not shown) and executed in memory to implement the processes or operations described throughout this application. Alternatively, such components may be implemented as executable code programmed or embedded in dedicated hardware (such as integrated circuits (e.g., application-specific integrated circuits or ASICs), digital signal processors (DSPs), or field-programmable gate arrays (FPGAs)) accessible via appropriate drivers and / or operating systems from the application. Furthermore, such components may be implemented as specific hardware logic within a processor or processor core as part of an instruction set accessible by software components via one or more specific instructions.

[0141] Figure 8 This is a block diagram illustrating an example of a data processing system that can be used with one embodiment of this disclosure. For example, system 1500 may represent any data processing system that performs any of the processes or methods described above, such as... Figure 1 The sensing and planning system 110 or any of servers 103 to 104. System 1500 may include a number of different components. These components may be implemented as integrated circuits (ICs), portions of integrated circuits, discrete electronic devices, or other modules suitable for circuit boards (such as motherboards or plug-in cards of computer systems) or implemented as components otherwise incorporated into the rack of a computer system.

[0142] It should also be noted that System 1500 is intended to show a high-level view of many components of a computer system. However, it should be understood that additional components may be present in some embodiments, and different arrangements of the components shown may be present in other embodiments. System 1500 may represent a desktop computer, laptop computer, tablet computer, server, mobile phone, media player, personal digital assistant (PDA), smartwatch, personal communicator, gaming device, network router or hub, wireless access point (AP) or repeater, set-top box, or a combination thereof. Furthermore, although only a single machine or system is shown, the terms "machine" or "system" should also be understood to include any collection of machines or systems that individually or collectively execute one or more sets of instructions to perform any one or more methods discussed herein.

[0143] In one embodiment, system 1500 includes a processor 1501, a memory 1503, and devices 1505 to 1508 connected via a bus or interconnect 1510. Processor 1501 may represent a single processor or multiple processors including a single processor core or multiple processor cores. Processor 1501 may represent one or more general-purpose processors, such as a microprocessor, a central processing unit (CPU), etc. More specifically, processor 1501 may be a Complex Instruction Set Computing (CISC) microprocessor, a Reduced Instruction Set Computing (RISC) microprocessor, a Very Long Instruction Word (VLIW) microprocessor, or a processor implementing other instruction sets, or a processor implementing combinations of instruction sets. Processor 1501 may also be one or more special-purpose processors, such as application-specific integrated circuits (ASICs), cellular or baseband processors, field-programmable gate arrays (FPGAs), digital signal processors (DSPs), network processors, graphics processors, communication processors, encryption processors, coprocessors, embedded processors, or any other type of logic capable of processing instructions.

[0144] Processor 1501 (which may be a low-power multi-core processor socket, such as an ultra-low voltage processor) may act as a main processing unit and central hub for communicating with various components of the system. This processor may be implemented as a system-on-a-chip (SoC). Processor 1501 is configured to execute instructions for performing the operations and steps discussed herein. System 1500 may also include a graphics interface for communicating with an optional graphics subsystem 1504, which may include a display controller, a graphics processor, and / or a display device.

[0145] Processor 1501 can communicate with memory 1503, which in one embodiment may be implemented via multiple memory devices to provide a fixed amount of system storage. Memory 1503 may include one or more volatile storage (or memory) devices, such as random access memory (RAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), static RAM (SRAM), or other types of memory devices. Memory 1503 may store information including sequences of instructions executed by processor 1501 or any other device. For example, executable code and / or data of various operating systems, device drivers, firmware (e.g., I / O base system or BIOS) and / or applications may be loaded into memory 1503 and executed by processor 1501. The operating system can be any type of operating system, such as a Robot Operating System (ROS), or a system derived from... The company Operating system, Mac from Apple From The company LINUX, UNIX, or other real-time or embedded operating systems.

[0146] System 1500 may also include I / O devices, such as devices 1505 to 1508, including network interface device 1505, optional input device 1506, and other optional I / O devices 1507. Network interface device 1505 may include a wireless transceiver and / or a network interface card (NIC). The wireless transceiver may be a WiFi transceiver, an infrared transceiver, a Bluetooth transceiver, a WiMax transceiver, a wireless cellular transceiver, a satellite transceiver (e.g., a Global Positioning System (GPS) transceiver), or other radio frequency (RF) transceivers or combinations thereof. The NIC may be an Ethernet card.

[0147] Input device 1506 may include a mouse, touchpad, touch-sensitive screen (which may be integrated with display device 1504), pointing device (such as a stylus), and / or keyboard (e.g., a physical keyboard or a virtual keyboard displayed as part of the touch-sensitive screen). For example, input device 1506 may include a touchscreen controller coupled to the touchscreen. The touchscreen and touchscreen controller may, for example, use any of a variety of touch-sensitive technologies (including, but not limited to, capacitive, resistive, infrared, and surface acoustic wave technologies), as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touchscreen to detect contact and movement or interruption.

[0148] I / O device 1507 may include audio devices. Audio devices may include speakers and / or microphones to facilitate voice-enabled functions such as voice recognition, voice copying, digital recording, and / or telephone functionality. Other I / O devices 1507 may also include a Universal Serial Bus (USB) port, a parallel port, a serial port, a printer, a network interface, a bus bridge (e.g., a PCI-PCI bridge), sensors (e.g., accelerometer motion sensors, gyroscopes, magnetometers, light sensors, compasses, proximity sensors, etc.) or combinations thereof. Device 1507 may also include an imaging processing subsystem (e.g., a camera), which may include optical sensors, such as charge-coupled devices (CCDs) or complementary metal-oxide-semiconductor (CMOS) optical sensors, for facilitating camera functions such as recording photographs and video clips. Some sensors may be coupled to interconnect 1510 via a sensor hub (not shown), while other devices, such as a keyboard or thermal sensor, may be controlled by an embedded controller (not shown), depending on the specific configuration or design of system 1500.

[0149] To provide persistent storage for information such as data, applications, and one or more operating systems, a mass storage device (not shown) may also be coupled to the processor 1501. In various embodiments, this mass storage device may be implemented via a solid-state drive (SSD) to achieve a thinner and lighter system design and improve system responsiveness. However, in other embodiments, the mass storage device may be implemented primarily using a hard disk drive (HDD), with a smaller amount of SSD storage acting as an SSD cache to provide non-volatile storage of context state and other such information during power-down events, thereby enabling rapid power-on upon system restart. Alternatively, a flash memory device may be coupled to the processor 1501, for example, via a serial peripheral interface (SPI). This flash memory device can provide non-volatile storage of system software, including the system's BIOS and other firmware.

[0150] Storage device 1508 may include computer-accessible storage medium 1509 (also referred to as machine-readable storage medium or computer-readable medium) storing one or more instruction sets or software (e.g., modules, units, and / or logic 1528) embodying any one or more methods or functions described herein. Processing module / unit / logic 1528 may represent any of the aforementioned components, such as planning module 305 or control module 306. Processing module / unit / logic 1528 may also reside wholly or at least partially within memory 1503 and / or processor 1501 during execution by data processing system 1500, memory 1503, and processor 1501, which also constitute machine-accessible storage media. Processing module / unit / logic 1528 may also be transmitted or received via a network interface device 1505.

[0151] Computer-readable storage medium 1509 can also be used to permanently store some of the software functions described above. Although computer-readable storage medium 1509 is shown as a single medium in the exemplary embodiment, the term "computer-readable storage medium" should be considered to include a single medium or multiple media (e.g., a centralized or distributed database and / or associated caches and servers) storing the one or more instruction sets. The term "computer-readable storage medium" should also be considered to include any medium capable of storing or encoding instruction sets for execution by a machine and causing the machine to perform any one or more methods of this disclosure. Therefore, the term "computer-readable storage medium" should be considered to include, but is not limited to, solid-state memory, as well as optical and magnetic media, or any other non-transitory machine-readable media.

[0152] The processing module / unit / logic 1528, components, and other features described herein can be implemented as discrete hardware components or integrated into the functionality of hardware components (such as ASICs, FPGAs, DSPs, or similar devices). Furthermore, the processing module / unit / logic 1528 can be implemented as firmware or functional circuitry within a hardware device. Additionally, the processing module / unit / logic 1528 can be implemented in any combination of hardware devices and software components.

[0153] It should be noted that although system 1500 is shown as having various components of a data processing system, it is not intended to represent any particular architecture or manner in which the components are interconnected; as such details are not closely related to embodiments of this disclosure. It should also be recognized that network computers, handheld computers, mobile phones, servers, and / or other data processing systems with fewer or potentially more components may also be used with embodiments of this disclosure.

[0154] Some parts of the foregoing detailed description have been presented based on algorithms and symbolic representations of operations on data bits within computer memory. These algorithmic descriptions and representations are methods used by those skilled in the art of data processing to most effectively communicate the substance of their work to others skilled in the art. In this document, algorithms are generally considered to be self-consistent sequences of operations that lead to desired results. These operations refer to those that require physical manipulation of physical quantities.

[0155] However, it should be remembered that all these and similar terms are intended to be associated with appropriate physical quantities and are merely convenient notations for application to these quantities. Unless otherwise expressly indicated in the above discussion, it should be understood that throughout the specification, the use of terms (such as those set forth in the appended claims) refers to the operation and processing of a computer system or similar electronic computing device that manipulates data represented as physical (electronic) quantities in the registers and memories of the computer system and transforms said data into other data similarly represented as physical quantities in the computer system's memory or registers or other such information storage, transmission, or display devices.

[0156] Embodiments of this disclosure also relate to apparatus for performing the operations described herein. Such a computer program is stored in a non-transitory computer-readable medium. A machine-readable medium includes any means for storing information in a machine-readable (e.g., computer-readable) form. For example, machine-readable (e.g., computer-readable) media include machine-readable (e.g., computer-readable) storage media (e.g., read-only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory devices).

[0157] The processes or methods depicted in the foregoing figures may be executed by processing logic, which includes hardware (e.g., circuitry, special-purpose logic, etc.), software (e.g., embodied in a non-transitory computer-readable medium), or a combination of both. Although the processes or methods described above are based on a sequence of operations, it should be understood that some of these operations may be executed in a different order. Furthermore, some operations may be executed in parallel rather than sequentially.

[0158] The embodiments described herein are not referred to in any particular programming language. It should be appreciated that various programming languages ​​can be used to implement the teachings of the embodiments of this disclosure as described herein.

[0159] In the foregoing description, embodiments of the present disclosure have been described with reference to specific exemplary embodiments. It will be apparent that various modifications can be made to the invention without departing from the broader spirit and scope of the disclosure as set forth in the appended claims. Therefore, this specification and the accompanying drawings should be understood in an illustrative rather than restrictive sense.

Claims

1. A computer-implemented method for operating an autonomous vehicle, the computer-implemented method comprising: Determine the predicted path of moving obstacles; A prediction region is determined based on the predicted path of the moving obstacle, wherein the prediction region includes the predicted path; The path of the autonomous vehicle is determined based on the predicted region, wherein the path avoids the predicted region; and The autonomous vehicle is controlled based on the described path; Determining the path of the autonomous vehicle includes: A reference line is generated based on the predicted region, wherein the reference line avoids the predicted region; A set of sample points is generated based on the reference line, wherein the set of sample points avoids the prediction region; Multiple segments are generated between the sample point groups; and The path of the autonomous vehicle is determined based on the plurality of segments, wherein the path includes one sample point from each of the sample point groups.

2. The computer-implemented method according to claim 1, wherein, Determining the predicted path includes: Multiple prediction points are determined in the geographical area where the autonomous vehicle is located, wherein the prediction path includes the multiple prediction points.

3. The computer-implemented method according to claim 2, wherein, Determining the prediction region includes: Determine multiple surrounding areas of the multiple prediction points.

4. The computer-implemented method according to claim 3, wherein, Each of the multiple surrounding regions is determined based on the standard deviation of the threshold from the corresponding prediction point.

5. The computer-implemented method according to claim 3, wherein, Determining the prediction region further includes: Multiple boundary points are determined based on the multiple surrounding areas.

6. The computer-implemented method according to claim 5, wherein, The predicted region is contained within the plurality of boundary points.

7. The computer-implemented method according to claim 1, wherein, The predicted path is determined based on sensor data generated by one or more sensors of the autonomous vehicle.

8. The computer-implemented method according to claim 7, wherein, The sensor data includes video data, and the one or more sensors include cameras.

9. The computer-implemented method according to claim 7, wherein, The sensor data includes radar data, and the one or more sensors include radar units.

10. The computer-implemented method according to claim 7, wherein, The sensor data includes light detection and ranging (LIDAR) data, and wherein the one or more sensors include light detection and ranging units.

11. A non-transitory machine-readable medium storing instructions that, when executed by a processor, cause the processor to perform an operation, the operation comprising: Determine the predicted path of moving obstacles; A prediction region is determined based on the predicted path of the moving obstacle, wherein the prediction region includes the predicted path; The path of the autonomous vehicle is determined based on the predicted region, wherein the path avoids the predicted region; and The autonomous vehicle is controlled based on the described path; Determining the path of the autonomous vehicle includes: A reference line is generated based on the predicted region, wherein the reference line avoids the predicted region; A set of sample points is generated based on the reference line, wherein the set of sample points avoids the prediction region; Multiple segments are generated between the sample point groups; and The path of the autonomous vehicle is determined based on the plurality of segments, wherein the path includes one sample point from each of the sample point groups.

12. The non-transitory machine-readable medium according to claim 11, wherein, Determining the predicted path includes: Multiple prediction points are determined in the geographical area where the autonomous vehicle is located, wherein the prediction path includes the multiple prediction points.

13. The non-transitory machine-readable medium according to claim 12, wherein, Determining the prediction region includes: Determine multiple surrounding areas of the multiple prediction points.

14. The non-transitory machine-readable medium according to claim 13, wherein, Each of the multiple surrounding regions is determined based on the standard deviation of the threshold from the corresponding prediction point.

15. The non-transitory machine-readable medium according to claim 13, wherein, Determining the prediction region further includes: Multiple boundary points are determined based on the multiple surrounding areas.

16. The non-transitory machine-readable medium according to claim 15, wherein, The predicted region is contained within the plurality of boundary points.

17. The non-transitory machine-readable medium according to claim 11, wherein, The predicted path is determined based on sensor data generated by one or more sensors of the autonomous vehicle.

18. A data processing system, comprising: processor; as well as A memory, coupled to the processor, for storing instructions that, when executed by the processor, cause the processor to perform operations, the operations including: Determine the predicted path of moving obstacles; A prediction region is determined based on the predicted path of the moving obstacle, wherein the prediction region includes the predicted path; The path of the autonomous vehicle is determined based on the predicted region, wherein the path avoids the predicted region; and The autonomous vehicle is controlled based on the described path; Determining the path of the autonomous vehicle includes: A reference line is generated based on the predicted region, wherein the reference line avoids the predicted region; A set of sample points is generated based on the reference line, wherein the set of sample points avoids the prediction region; Multiple segments are generated between the sample point groups; and The path of the autonomous vehicle is determined based on the plurality of segments, wherein the path includes one sample point from each of the sample point groups.

Citation Information

Patent Citations

  • Method and apparatus for controlling path of autonomous driving system

    CN107031619A

  • Path planning apparatus and method for autonomous vehicle

    CN107339997A

  • Vehicle driving assist and vehicle having same

    CN1986306A

  • Sense and avoid maneuvering

    US20180033318A1

  • Autonomous mobile body, and method and system for controlling the same

    CN101971116A