Trajectory planning method and device
By receiving perceptual data and map information, combined with traffic conditions, a robust trajectory is generated using a horizontal and vertical joint planning method, which solves the problem of poor trajectory planning in the prior art and improves the safety and comfort of autonomous driving vehicles.
Patent Information
- Application Number
- CN202111615586.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-12-31
- Publication Date
- 2025-01-17
- Estimated Expiration
- 2039-12-31
AI Technical Summary
The existing autonomous driving technology is based on lane line constraints in trajectory planning, which is poorly robust and cannot adapt to complex road conditions and environments, resulting in unstable planning results.
By receiving perception data, positioning data and map information, a preliminary driving trajectory is generated, and a driving speed is predicted in combination with traffic conditions information. A horizontal and vertical joint planning method is adopted to generate a more robust target driving trajectory, considering the joint of lateral displacement and longitudinal speed. planning.
It improves the safety accuracy and comfort of trajectory planning, and enhances the operational stability and safety of autonomous vehicles in complex environments.
Smart Images

Figure CN114489044B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of autonomous driving, and in particular to a trajectory planning method and device. Background Art
[0002] Artificial Intelligence (AI) is the theory, methods, techniques, and application systems that use digital computers or machines controlled by digital computers to simulate, extend, and expand human intelligence, to perceive the environment, acquire knowledge, and use that knowledge to achieve optimal results. In other words, AI is a branch of computer science that seeks to understand the essence of intelligence and produce new intelligent machines that can respond in a manner similar to human intelligence. AI also studies the design principles and implementation methods of various intelligent machines, enabling them to possess the capabilities of perception, reasoning, and decision-making. Research in the field of AI includes robotics, natural language processing, computer vision, decision-making and reasoning, human-computer interaction, recommendation and search, and basic AI theory.
[0003] Autonomous driving is a mainstream application in the field of artificial intelligence. Autonomous driving technology relies on the coordinated cooperation of computer vision, radar, monitoring devices and global positioning systems to enable motor vehicles to achieve autonomous driving without the need for active human operation. Autonomous driving vehicles use various computing systems to help transport passengers from one location to another. Some autonomous driving vehicles may require some initial input or continuous input from operators (such as pilots, drivers, or passengers). Autonomous driving vehicles allow operators to switch from manual mode to autonomous driving mode or a mode in between. Since autonomous driving technology does not require humans to drive motor vehicles, it can theoretically effectively avoid human driving errors, reduce the occurrence of traffic accidents, and improve road transportation efficiency. Therefore, autonomous driving technology is receiving more and more attention.
[0004] In the field of autonomous driving technology, trajectory planning for autonomous vehicles enables path selection and optimization (also known as trajectory), as well as the implementation of more optimal speed strategies. Conventional technologies first obtain the lane markings of the current lane and adjacent lanes as virtual constraints during trajectory planning, then perform trajectory planning within these constraints to ensure the vehicle does not cross the lanes. However, conventional technologies perform trajectory planning based solely on lane marking constraints, resulting in poor robustness and inability to adapt to complex road conditions and environments. Summary of the Invention
[0005] The present application provides a trajectory planning method and apparatus for planning a robust trajectory for an autonomous vehicle.
[0006] In a first aspect, a trajectory planning method is provided for use in an autonomous driving vehicle, the method comprising:
[0007] Receive perception data, positioning data, and map information;
[0008] Obtaining a preliminary driving trajectory of the autonomous driving vehicle based on the perception data, the positioning data, and the map information, the preliminary driving trajectory comprising N waypoints, wherein each of the N waypoints comprises first waypoint information of the waypoint, the first waypoint information comprising: coordinates of the waypoint and a lateral allowable error of the waypoint, the lateral allowable error representing an allowable error value in lateral displacement of the waypoint, where N is a positive integer greater than 1;
[0009] Based on the traffic condition information, the perception data, and the preliminary driving trajectory, the drivable speeds of the autonomous driving vehicle at n of the N waypoints are predicted to obtain a target driving trajectory; the target driving trajectory includes the n waypoints, wherein each of the n waypoints further includes second waypoint information of the waypoint, the second waypoint information including: the drivable speed of the autonomous driving vehicle at the waypoint; wherein n is a positive integer less than or equal to N.
[0010] Optionally, the traffic condition information includes: traffic light information, road speed limit information, lane change neutral information, or obstacle information.
[0011] In the above-mentioned trajectory planning method provided in the embodiment of the present application, the n waypoints contained in the target driving trajectory and the drivable speeds contained in the n waypoints are obtained based on the N waypoints contained in the preliminary driving trajectory. That is, the lateral allowable errors contained in the N waypoints play a role in the longitudinal speed planning process, so that in the trajectory planning process, the longitudinal speed planning is combined with the information of the lateral displacement planning, thereby making the final planned target driving trajectory obtained by the joint planning of the lateral displacement and the longitudinal speed. This design of joint lateral and longitudinal planning makes the planned target driving trajectory safer and more accurate, and brings better comfort to the autonomous driving.
[0012] In one possible implementation, obtaining a preliminary driving trajectory of the autonomous driving vehicle based on the perception data, the positioning data, and the map information includes:
[0013] Acquire a reference trajectory based on the positioning data and the map information, the reference trajectory comprising R1 reference waypoints and a width constraint, the R1 reference waypoints being located on a centerline of a lane currently occupied by the autonomous vehicle or on an offset line from the centerline, the width constraint being used to constrain an offset amount of each reference waypoint in a lateral displacement based on the current position of the reference waypoint during obstacle avoidance planning, and the offset line being a line offset from the centerline by a preset range;
[0014] Performing obstacle avoidance planning on the reference trajectory according to the perception data, the R1 reference waypoints, and the width constraint to generate an obstacle avoidance trajectory, wherein the obstacle avoidance trajectory includes R2 obstacle avoidance waypoints, and each of the R2 obstacle avoidance waypoints includes the coordinates of the obstacle avoidance waypoint;
[0015] According to the generation rule of the lateral allowable error, the lateral allowable error corresponding to each of the R2 obstacle avoidance waypoints is determined, thereby obtaining the preliminary driving trajectory, wherein the N waypoints included in the preliminary driving trajectory are the R2 obstacle avoidance waypoints.
[0016] In the above-mentioned obstacle avoidance process, the obstacle avoidance waypoints are obtained by performing a lateral offset based on the reference waypoints (with the vehicle's forward direction as the longitudinal direction and the direction perpendicular or approximately perpendicular to the longitudinal direction as the lateral direction); or they are regenerated based on the reference waypoints and width constraints. Therefore, the number of obstacle avoidance waypoints and the number of reference waypoints can be the same or different, so the relationship between the values of R1 and R2 is not limited.
[0017] Through the above-mentioned obstacle avoidance processing, the obtained obstacle avoidance trajectory can avoid obstacles that the vehicle may encounter during its forward movement, thus achieving basic safety guarantee.
[0018] In a possible implementation, after generating an obstacle avoidance trajectory, the method further includes: performing trajectory smoothing processing on the obstacle avoidance trajectory to generate a smoothed trajectory, wherein the smoothed trajectory includes the R3 smoothed waypoints, and each of the R3 smoothed waypoints includes the coordinates of the smoothed waypoint;
[0019] Correspondingly, determining the lateral allowable error corresponding to each of the R2 obstacle avoidance points according to a generation rule of the lateral allowable error, thereby obtaining the preliminary driving trajectory, includes:
[0020] According to a generation rule of the lateral allowable error, the lateral allowable error corresponding to each of the R3 smooth waypoints is determined, thereby obtaining the preliminary driving trajectory, wherein the N waypoints included in the preliminary driving trajectory are the R3 smooth waypoints.
[0021] In the smoothing process described above, since the smoothing process may interpolate or sample the obstacle avoidance points, that is, increase or decrease the obstacle avoidance points during the smoothing process, the number of smoothing points and obstacle avoidance points can be the same or different, and therefore the relationship between the values of R2 and R3 is not limited.
[0022] Through the above-mentioned smoothing process, the obtained smooth trajectory not only takes safety factors into consideration, but also increases the comfort of autonomous driving due to its smoothness.
[0023] In one possible implementation, predicting the drivable speed of the autonomous driving vehicle at n of the N waypoints based on the traffic condition information, the perception data, and the preliminary driving trajectory includes:
[0024] Generating, based on the perception data, an ST map comprising an area occupied by the obstacle, the ST map comprising a T (time) axis and an S (displacement) axis, wherein the ST map comprises a pattern of relative displacement changing over time, wherein the relative displacement comprises a displacement of the obstacle relative to the autonomous vehicle;
[0025] Determine point i based on the preset algorithm and speed limit j Position in the ST graph; j is taken from 1 to n in sequence, and an ST planning curve is generated to avoid the area occupied by the obstacle. The ST planning curve includes the points from i1 to i n n points, the n points corresponding to the n waypoints one by one, the S / T values corresponding to the n points in the ST diagram are the drivable speeds of the autonomous driving vehicle at the n waypoints respectively;
[0026] The speed upper limit is used to constrain the range of the drivable speed in the process of generating the ST planning curve, and the speed upper limit is obtained according to the traffic condition information and the preliminary driving trajectory.
[0027] Since the speed limit is derived from the output of the lateral displacement planning—the preliminary driving trajectory (including information such as the lateral allowable error of waypoints), the longitudinal speed planning process incorporates this information. The result is the target driving trajectory, the common output of both lateral and longitudinal planning, which is a more robust trajectory.
[0028] In a possible implementation, the point i is determined according to a preset algorithm and a speed upper limit. j Before the position in the ST map, the method further includes: performing speed planning on each of the n waypoints according to the traffic road condition information to obtain a first speed constraint for the n waypoints;
[0029] According to the lateral allowable error of each of the n waypoints, obtaining the second speed constraints of the n waypoints corresponding to the lateral allowable error of the n waypoints;
[0030] Determine a speed constraint with a minimum value among multiple speed constraints included in each of the n waypoints as the speed upper limit, wherein the multiple speed constraints include: the first speed constraint and the second speed constraint.
[0031] It can be found that the process of determining the speed limit takes into account the lateral allowable error. Therefore, the speed limit is the result of joint lateral and longitudinal planning. This result further affects the speed planning and speed allowable error, and finally a target driving trajectory of joint lateral and longitudinal planning is obtained.
[0032] Here, a lookup is performed in the contrast table to obtain the second speed corresponding to each preliminary waypoint;
[0033] Among them, obtaining the second speed constraints of n waypoints corresponding to the lateral allowable errors of the n waypoints according to the lateral allowable errors of each waypoint in the n waypoints can be achieved through a contrast table, which includes a correspondence between preset lateral allowable errors and speed constraints.
[0034] In a possible implementation, the point i is determined according to a preset algorithm and a speed upper limit. j Before the position in the ST diagram, the method further comprises:
[0035] Calculating the curvature of each waypoint according to each of the n waypoints and x waypoints adjacent to each waypoint, where x is a positive integer greater than 0;
[0036] Obtaining a third velocity constraint for each waypoint according to the curvature of each waypoint and the maximum allowed lateral acceleration of each waypoint;
[0037] The multiple speed constraints further include: the third speed constraint.
[0038] In one possible implementation, after predicting the drivable speeds of the autonomous driving vehicle at n of the N waypoints based on the traffic condition information, the perception data, and the preliminary driving trajectory, the method further includes:
[0039] generating a speed tolerance for each of the n waypoints according to the ST map, the ST planning curve, and the speed upper limit;
[0040] The second waypoint information further includes: the speed allowable error; wherein the speed allowable error is used to represent the error allowed in speed of each waypoint in the n waypoints.
[0041] In a possible implementation, generating a speed tolerance for each of the n waypoints according to the ST map, the ST planning curve, and the speed upper limit includes:
[0042] In the ST diagram, for point i j+1 Generate an upper checkpoint and a lower checkpoint along the S axis upward and downward respectively, and the upper checkpoint and the lower checkpoint are determined by the point i j+1 The longitudinal displacement allowable error is determined by the longitudinal displacement allowable error of the point i j+1 In the ST diagram, the displacement error allowed along the positive and negative directions of the S axis is j+1 For point i j The point at the next moment, the point i j is the n points except i n For any point other than the above, the duration of the moment is the preset duration;
[0043] Connect the points i j and the upper checkpoint to obtain the first slope, connecting the point i j and the lower check point to obtain a second slope; the first slope and the second slope are used to represent the point i j The speed tolerance of the corresponding waypoint.
[0044] In a second aspect, a trajectory planning device is provided, which is applied to an autonomous driving vehicle, including a receiving module, a lateral displacement planning module, and a longitudinal speed planning module; the receiving module, the lateral displacement planning module, and the longitudinal speed planning module are used to implement the method steps corresponding to any one of the first aspect and the multiple possible implementation methods of the first aspect.
[0045] In a third aspect, a trajectory planning device is provided, comprising an input / output interface, a processor, and a memory, wherein the processor is used to control the input / output interface to send and receive information, the memory is used to store a computer program, and the processor is used to call and run the computer program from the memory, so that the processor executes the method described in the first aspect or any possible implementation of the first aspect.
[0046] Optionally, the processor may be a general-purpose processor, which may be implemented in hardware or software. When implemented in hardware, the processor may be a logic circuit, an integrated circuit, or the like; when implemented in software, the processor may be a general-purpose processor implemented by reading software code stored in a memory, which may be integrated into the processor or located independently of the processor.
[0047] In a fourth aspect, a computer program product is provided, comprising: a computer program code, which, when executed on a computer, enables the computer to execute the methods in the above aspects.
[0048] In a fifth aspect, a computer-readable medium is provided, wherein the computer-readable medium stores a program code, and when the computer program code is run on a computer, the computer executes the methods in the above aspects.
[0049] In a sixth aspect, an autonomous driving vehicle is provided, comprising a planner and a controller; the planner is used to perform trajectory planning according to the method described in the first aspect or any possible implementation of the first aspect, and the controller is used to control the vehicle according to the target driving trajectory obtained by the first aspect or any possible implementation of the first aspect, and output control variables, wherein the control variables include: throttle control amount, brake control amount and steering wheel angle. BRIEF DESCRIPTION OF THE DRAWINGS
[0050] The accompanying drawings will be briefly introduced below.
[0051] Figure 1 A schematic diagram of the structure of an autonomous driving vehicle provided by an embodiment of the present invention;
[0052] Figure 2 A schematic diagram of the structure of a computer system provided in an embodiment of the present invention;
[0053] Figure 3 A schematic diagram of an application of cloud-side instructions for an autonomous driving vehicle provided by an embodiment of the present invention;
[0054] Figure 4 A schematic diagram of an application of cloud-side instructions for an autonomous driving vehicle provided by an embodiment of the present invention;
[0055] Figure 5 A schematic diagram of a computer program product provided by an embodiment of the present invention;
[0056] Figure 6 A schematic diagram of the structure of a motion planner provided by an embodiment of the present invention;
[0057] Figure 7A schematic diagram of a vehicle driving on an open structured road in a city according to an embodiment of the present invention;
[0058] Figure 8 A schematic diagram of a lateral displacement planning process provided by an embodiment of the present invention;
[0059] Figure 9 A schematic diagram of a lateral displacement planning process provided by an embodiment of the present invention;
[0060] Figure 10 A schematic diagram of a lateral displacement planning process provided by an embodiment of the present invention;
[0061] Figure 11 A schematic diagram of a lateral displacement planning process provided by an embodiment of the present invention;
[0062] Figure 12 A schematic diagram of a longitudinal speed planning process provided by an embodiment of the present invention;
[0063] Figure 13 A schematic diagram of a longitudinal speed planning process provided by an embodiment of the present invention;
[0064] Figure 14 A schematic diagram of a longitudinal speed planning process provided by an embodiment of the present invention;
[0065] Figure 15 A schematic diagram of a longitudinal speed planning process provided by an embodiment of the present invention;
[0066] Figure 16 A schematic diagram of the corresponding relationship v_lim(s) between the speed constraint v_lim and the road length s provided in an embodiment of the present invention;
[0067] Figure 17 A schematic diagram of an ST curve planning process in a longitudinal speed planning process provided by an embodiment of the present invention;
[0068] Figure 18 A schematic diagram of a process for generating a speed tolerance during longitudinal speed planning provided by an embodiment of the present invention;
[0069] Figure 19 A schematic diagram of a trajectory planning process provided by an embodiment of the present invention;
[0070] Figure 20 A schematic diagram of a trajectory planning method provided by an embodiment of the present invention;
[0071] Figure 21 A schematic structural diagram of a trajectory planning device provided by an embodiment of the present invention;
[0072] Figure 22A schematic structural diagram of another trajectory planning device provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0073] The following describes the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. All other embodiments obtained by ordinary technicians in this field based on the embodiments of the present invention without making any creative efforts shall fall within the scope of protection of the present invention.
[0074] Figure 1 is a functional block diagram of a vehicle 100 provided in an embodiment of the present invention. In one embodiment, vehicle 100 is configured for a fully or partially autonomous driving mode. For example, vehicle 100 can control itself while in autonomous driving mode and, through human operation, determine the current state of the vehicle and its surrounding environment, determine the possible behavior of at least one other vehicle in the surrounding environment, and determine a confidence level corresponding to the likelihood that the other vehicle will perform the possible behavior, and control vehicle 100 based on the determined information. When vehicle 100 is in autonomous driving mode, vehicle 100 can be set to operate without human interaction.
[0075] The vehicle 100 may include various subsystems, such as a travel system 102, a sensor system 104, a planning and control system 106, one or more peripheral devices 108, a power source 110, a computer system 101, and a user interface 116. Alternatively, the vehicle 100 may include more or fewer subsystems, and each subsystem may include multiple components. In addition, each subsystem and component of the vehicle 100 may be interconnected via wired or wireless connections.
[0076] Propulsion system 102 may include components that provide power to vehicle 100. In one embodiment, propulsion system 102 may include an engine 118, an energy source 119, a transmission 120, and wheels 121. Engine 118 may be an internal combustion engine, an electric motor, an air compression engine, or another type of engine or a combination of multiple engines. Examples of such combinations include a hybrid engine consisting of a gasoline engine and an electric motor, or a hybrid engine consisting of an internal combustion engine and an air compression engine. Engine 118 converts energy source 119 into mechanical energy.
[0077] Examples of energy source 119 include gasoline, diesel, other petroleum-based fuels, propane, other compressed gas-based fuels, ethanol, solar panels, batteries, and other sources of electricity. Energy source 119 may also provide energy to other systems of vehicle 100.
[0078] The transmission 120 can transmit mechanical power from the engine 118 to the wheels 121. The transmission 120 may include a gearbox, a differential, and a drive shaft. In one embodiment, the transmission 120 may also include other components, such as a clutch. The drive shaft may include one or more shafts that can be coupled to one or more wheels 121.
[0079] The sensor system 104 may include several sensors that sense information about the vehicle 100 itself and the environment surrounding the vehicle 100. For example, the sensor system 104 may include a positioning system 122 (the positioning system may be a GPS system, a BeiDou system, or other positioning systems), an inertial measurement unit (IMU) 124, a radar 126, a laser rangefinder 128, a camera 130, a computer vision system 138, and a sensor fusion algorithm 140. The sensor system 104 may also include sensors for the internal systems of the vehicle 100 (e.g., an in-vehicle air quality monitor, a fuel gauge, an oil temperature gauge, etc.). The sensor data from one or more of these sensors may be used to detect an object to be detected and its corresponding characteristics (position, shape, direction, speed, etc.). This detection and recognition is a key function for the vehicle 100 to achieve safe operation.
[0080] The global positioning system 122 may be used to estimate the geographic location of the vehicle 100. The IMU 124 is used to sense changes in position and orientation of the vehicle 100 based on inertial acceleration. In one embodiment, the IMU 124 may be a combination of an accelerometer and a gyroscope.
[0081] Radar 126 may utilize radio signals to sense objects in the surrounding environment of vehicle 100. In some embodiments, in addition to sensing objects, radar 126 may also be used to sense the speed and / or direction of travel of the objects.
[0082] The laser rangefinder 128 may utilize laser light to sense objects in the environment of the vehicle 100. In some embodiments, the laser rangefinder 128 may include one or more laser sources, a laser scanner, and one or more detectors, among other system components.
[0083] The camera 130 may be used to capture multiple images of the surrounding environment of the vehicle 100. The camera 130 may be a still camera or a video camera.
[0084] The computer vision system 138 can be operated to process and analyze images captured by the camera 130 to identify objects and / or features in the environment surrounding the vehicle 100. The objects and / or features may include traffic signs, road boundaries, and obstacles. The computer vision system 138 can use object recognition algorithms, structure from motion (SFM) algorithms, video tracking, and other computer vision techniques. In some embodiments, the computer vision system 138 can be used to map the environment, track objects, estimate the speed of objects, and so on.
[0085] The planning control system 106 controls the operation of the vehicle 100 and its components. The planning control system 106 may include various components, including a steering system 132 , a throttle 134 , a brake unit 136 , a path control system 142 , and an obstacle avoidance system 144 .
[0086] The forward direction of the vehicle 100 can be adjusted by operating the steering system 132. For example, in one embodiment, it can be a steering wheel system.
[0087] The throttle 134 is used to control the operating speed of the engine 118 and, in turn, the speed of the vehicle 100 .
[0088] Braking unit 136 is used to control the deceleration of vehicle 100. Braking unit 136 can use friction to slow down wheels 121. In other embodiments, braking unit 136 can convert the kinetic energy of wheels 121 into electric current. Braking unit 136 can also take other forms to slow the rotation speed of wheels 121 to control the speed of vehicle 100.
[0089] The route planning system 142 is used to determine the driving route of the vehicle 100. In some embodiments, the route planning system 142 can combine data from the sensor 138, the GPS 122, and one or more predetermined maps to plan a driving route for the vehicle 100 that avoids potential obstacles in the environment. The trajectory planning method provided in the embodiments of the present application can be executed by the route planning system 142 to output a target driving trajectory for the vehicle 100. The target driving trajectory includes multiple target waypoints, wherein each of the multiple target waypoints includes the coordinates of the waypoint, as well as the lateral allowable error and speed allowable error of the waypoint. The lateral allowable error described herein includes the range of values of the lateral allowable error, which in some cases can be understood as an abbreviation of the range of values of the lateral allowable error. Here, the lateral refers to the direction perpendicular to the vehicle's direction of travel or the direction approximately perpendicular to the vehicle's direction of travel; the lateral allowable error actually means the lateral displacement allowable error, that is, the range of values of the displacement error allowed for the vehicle 100 in the direction perpendicular to the vehicle's direction of travel or the direction approximately perpendicular to the vehicle's direction of travel. This will not be described in detail below.
[0090] The control system 144 is used to generate control values of the accelerator, brake, and steering angle according to the driving route / trajectory output by the route planning system, thereby controlling the steering system 132 , the accelerator 134 , and the brake unit 136 .
[0091] Of course, in one embodiment, the planning control system 106 may include additional or alternative components other than those shown and described, or may reduce some of the components shown above.
[0092] Vehicle 100 interacts with external sensors, other vehicles, other computer systems, or users via peripherals 108. Peripherals 108 may include a wireless communication system 146, an onboard computer 148, a microphone 150, and / or a speaker 152.
[0093] In some embodiments, the peripheral devices 108 provide a means for a user of the vehicle 100 to interact with the user interface 116. For example, the onboard computer 148 can provide information to the user of the vehicle 100. The user interface 116 can also operate the onboard computer 148 to receive user input. In one implementation, the onboard computer 148 can be operated via a touch screen. In other cases, the peripheral devices 108 can provide a means for the vehicle 100 to communicate with other devices located within the vehicle. For example, the microphone 150 can receive audio (e.g., voice commands or other audio input) from the user of the vehicle 100. Similarly, the speaker 152 can output audio to the user of the vehicle 100.
[0094] The wireless communication system 146 can communicate wirelessly with one or more devices directly or via a communication network. For example, the wireless communication system 146 can use 3G cellular communication, such as CDMA, EVDO, GSM / GPRS, or 4G cellular communication, such as LTE. Or 5G cellular communication. The wireless communication system 146 can use WiFi to communicate with a wireless local area network (WLAN). In some embodiments, the wireless communication system 146 can use an infrared link, Bluetooth, or ZigBee to communicate directly with the device. Other wireless protocols, such as various vehicle communication systems, for example, the wireless communication system 146 may include one or more dedicated short range communications (DSRC) devices, which may include public and / or private data communications between vehicles and / or roadside stations.
[0095] Power source 110 can provide power to various components of vehicle 100. In one embodiment, power source 110 can be a rechargeable lithium-ion or lead-acid battery. One or more battery packs of such batteries can be configured as a power source and provide power to various components of vehicle 100. In some embodiments, power source 110 and energy source 119 can be implemented together, such as in a fully electric vehicle.
[0096] Some or all functions of the vehicle 100 are controlled by a computer system 101. The computer system 101 may include at least one processor 113 that executes instructions 115 stored in a non-transitory computer-readable medium, such as a memory 114. The computer system 101 may also be a plurality of computing devices that control individual components or subsystems of the vehicle 100 in a distributed manner.
[0097] Processor 113 may be any conventional processor, such as a commercially available CPU. Alternatively, the processor may be a dedicated device such as an ASIC or other hardware-based processor. Although Figure 1 The processor, memory, and other elements of the computer system 101 are functionally illustrated, but one of ordinary skill in the art will appreciate that the processor and memory may actually include multiple other processors or memories that are not located in the same physical housing. For example, the memory may be a hard drive or other storage medium located in a housing different from that of the computer system 101. Therefore, references to a processor will be understood to include references to a collection of processors or memories that may operate in parallel or not. Instead of using a single processor to perform the steps described herein, some components such as a steering assembly and a deceleration assembly may each have their own processor that performs only calculations related to the functions specific to the component; or subsystems such as a travel system, a sensor system, and a planning control system may also have their own processors for performing calculations related to the corresponding subsystem's tasks to achieve the corresponding functions.
[0098] In various aspects described herein, the processor can be located remotely from the vehicle and in wireless communication with the vehicle. In other aspects, some of the processes described herein are performed on a processor disposed within the vehicle, while others are performed by a remote processor, including taking the necessary steps to perform a single maneuver.
[0099] In some embodiments, the memory 114 may contain instructions 115 (e.g., program logic) that are executable by the processor 113 to perform various functions of the vehicle 100, including those described above. The memory 114 may also contain additional instructions, including instructions for sending data to, receiving data from, interacting with, and / or controlling one or more of the travel system 102, the sensor system 104, the planning and control system 106, and the peripheral devices 108.
[0100] In addition to instructions 115, memory 114 may also store other relevant data, such as road maps, route information, the vehicle's location, direction, speed, and other relevant information. This information may be used by vehicle 100, or specifically by computer system 101, during operation of vehicle 100 in autonomous, semi-autonomous, and / or manual modes.
[0101] User interface 116 is used to provide information to or receive information from a user of vehicle 100. Optionally, user interface 116 may include one or more input / output devices within the set of peripherals 108, such as wireless communication system 146, onboard computer 148, microphone 150, and speaker 152.
[0102] Computer system 101 may control functions of vehicle 100 based on input received from various subsystems (e.g., travel system 102, sensor system 104, and planning control system 106) and from user interface 116. In some embodiments, computer system 101 may be operable to provide control over many aspects of vehicle 100 and its subsystems.
[0103] Alternatively, one or more of the above components may be installed or associated separately from the vehicle 100. For example, the memory 114 may be partially or completely separate from the vehicle 100. The above components may be communicatively coupled together in a wired and / or wireless manner.
[0104] Optionally, the above components are just an example. In actual applications, the components in the above modules may be added or deleted according to actual needs. Figure 1 It should not be understood as limiting the embodiments of the present invention.
[0105] An autonomous vehicle traveling on a road, such as vehicle 100 above, can identify objects in its surroundings to determine adjustments to the vehicle's trajectory, including adjustments to the vehicle's speed. The objects can be other vehicles, traffic control devices, or other types of objects. In some examples, each identified object can be considered independently and used to determine the autonomous vehicle's trajectory plan, including the speed adjustment, based on its respective characteristics, such as its current speed, acceleration, and distance from the vehicle.
[0106] Optionally, a computing device associated with the autonomous vehicle 100 (e.g. Figure 1 The computer system 101 and the computer vision system 138 can predict the behavior of the identified objects based on the characteristics of the identified objects and the state of the surrounding environment (for example, traffic, rain, ice on the road, etc.). Optionally, each identified object depends on the behavior of each other, so all the identified objects can also be considered together to predict the behavior of a single identified object. The vehicle 100 is able to plan its driving trajectory (including speed) based on the predicted behavior of the identified objects. And based on the planning results, it is determined for the autonomous vehicle to what state the vehicle will need to be adjusted to (in terms of speed adjustment, such as acceleration, deceleration or stopping). In this process, other factors can also be considered to determine the driving trajectory of the vehicle 100, such as the lateral position of the vehicle 100 in the road it is traveling on, the curvature of the road, the proximity of static and dynamic objects, etc.
[0107] Based on the planning results, in addition to adjusting the speed for the autonomous vehicle, the computing device can also provide instructions to modify the steering angle of the vehicle 100 so that the autonomous vehicle follows a given trajectory and / or maintains a safe lateral and longitudinal distance from objects near the autonomous vehicle (e.g., cars in adjacent lanes on the road).
[0108] The vehicle 100 may be a car, truck, motorcycle, bus, ship, airplane, helicopter, lawn mower, recreational vehicle, amusement park vehicle, construction equipment, tram, golf cart, train, and cart, etc., and the embodiment of the present invention does not make any special limitation.
[0109] according to Figure 2 The computer system 101 may include a processor 103, a system bus 105, a display adapter (video adapter) 107, a display 109, a bus bridge 111, an input / output bus (I / O BUS) 113, an I / O interface 115, a USB port 125, a network interface 129, a hard disk drive interface 131, a hard disk drive 133, and a system memory 135.
[0110] Processor 103 is coupled to system bus 105; processor 103 can be one or more processors, each of which can include one or more processor cores. A display adapter can drive display 109, which is coupled to system bus 105. System bus 105 is coupled to input / output bus (I / O BUS) 113 via bus bridge 111. I / O interface 115 is coupled to I / O BUS 113. I / O interface 115 communicates with various I / O devices, including input device 117 (including, for example, a keyboard, mouse, and touch screen), media tray 121 (e.g., a CD-ROM, multimedia interface), transceiver 123 (capable of sending and / or receiving radio communication signals), camera 155 (capable of capturing still and moving digital video images), and USB port 125. Optionally, the interface connected to I / O interface 115 can be USB port 125.
[0111] Processor 103 may be any conventional processor, including a reduced instruction set computing ("RISC") processor, a complex instruction set computing ("CISC") processor, or a combination thereof. Alternatively, the processor may be a dedicated device such as an application-specific integrated circuit ("ASIC"). Alternatively, processor 103 may be a neural network processor or a combination of a neural network processor and the aforementioned conventional processors.
[0112] Alternatively, in various embodiments described herein, the computer system 101 may be located remotely from the autonomous vehicle and may be in wireless communication with the autonomous vehicle 100. In some implementations, some of the processes described herein may also be performed by a processor located within the autonomous vehicle, while others may be performed by a remote processor, including taking actions required to execute a single maneuver.
[0113] Computer system 101 can communicate with software deployment server 149 via network interface 129. Network interface 129 includes a hardware network interface, such as a network card. Network 127 can be an external network, such as the Internet, or an internal network, such as Ethernet or a virtual private network (VPN). Alternatively, network 127 can be a wireless network, such as a WiFi network, a cellular network, or the like.
[0114] The hard disk drive interface 131 is coupled to the system bus 105. The hard disk drive interface 131 is connected to the hard disk drive 133. The system memory 135 is coupled to the system bus 105. The data running in the system memory 135 may include the operating system 137 and application programs 143 of the computer system 101.
[0115] Operating system OS 137 includes Shell 139 and kernel 141. Shell 139 is an interface between the user and the operating system. Shell 139 is the outermost layer of the operating system. Shell 139 manages the interaction between the user and the operating system: it waits for user input, interprets user input to the operating system, and processes various operating system outputs.
[0116] The kernel 141 consists of the parts of the operating system that manage memory, files, peripherals, and system resources. It interacts directly with the hardware and typically runs processes and provides inter-process communication, CPU time slice management, interrupts, memory management, and I / O management.
[0117] Applications 143 include programs related to controlling the autonomous driving of the vehicle, such as those that manage the autonomous vehicle's interactions with obstacles on the road, control the autonomous vehicle's movement along a planned trajectory (including speed), and control the autonomous vehicle's interactions with other autonomous vehicles on the road. Applications 143 also reside on the system of software deployment server 149. In one embodiment, when application 143 is needed, computer system 101 can download application 143 from software deployment server 149.
[0118] Sensor 153 is associated with computer system 101. Sensor 153 is used to detect the environment surrounding computer system 101. For example, sensor 153 can detect animals, cars, obstacles, and crosswalks. Furthermore, sensor 153 can also detect the environment surrounding these objects, such as animals, cars, obstacles, and crosswalks, for example, the environment surrounding the animals, such as other objects around the animals, weather conditions, and ambient light levels. Alternatively, if computer system 101 is located in a self-driving car, the sensor can be a camera, an infrared sensor, a chemical detector, a microphone, and the like.
[0119] Computer system 101 can also receive information from other computer systems or transfer information to other computer systems. Alternatively, sensor data collected from sensor system 104 of vehicle 100 can be transferred to another computer system for processing. Figure 3As shown, data from computer system 101 can be transmitted to cloud-side computer 320 via a network for further processing. The network and intermediate nodes can include various configurations and protocols, including the Internet, the World Wide Web, an intranet, a virtual private network, a wide area network, a local area network, a private network using one or more company's proprietary communication protocols, Ethernet, WiFi and HTTP, and various combinations of the foregoing. Such communication can be performed by any device capable of transmitting data to and from other computers, such as a modem and a wireless interface.
[0120] In one example, computer 320 may include a server having multiple computers, such as a load-balancing server farm, that exchanges information with different nodes of a network for the purpose of receiving, processing, and transmitting data from computer system 101. The server may be configured similarly to computer system 101, having a processor 321, memory 322, instructions 323, and data 324.
[0121] Figure 4 4 shows an example of an autonomous vehicle and a cloud service center 420 interacting over a network according to an example embodiment. Cloud service center 420 can receive information (such as data collected by vehicle sensors or other information) from autonomous vehicles 410 and 412 in environment 400 via network 402, such as a wireless communication network, or transmit relevant information to autonomous vehicles 410 and 412.
[0122] The cloud service center 420 can send data to any autonomous driving vehicle in the environment 400 based on the global data it stores or receives. For example, when the autonomous driving vehicle 410 needs to do global path planning, it can request global road condition information from the cloud service center 420. The cloud service center 420 can send the global road condition information related to it based on the request of the autonomous driving vehicle 410.
[0123] Network 402 can provide map information to autonomous vehicles 410 and 412. In some examples, cloud server 420 can also forward relevant information and / or sensor data between autonomous vehicles.
[0124] In some examples, the cloud service center 420 sends the autonomous vehicle suggested solutions for possible driving situations within the environment (e.g., notifying it of an obstacle ahead and how to circumvent it). For example, the cloud service center can assist the vehicle in determining how to proceed when faced with a specific obstacle within the environment. The cloud service center sends a response to the autonomous vehicle, indicating how the vehicle should proceed in a given scenario. For example, based on sensor data collected from a construction vehicle or other vehicles surrounding it, the cloud service center can confirm that a "lane closed" sign is on a lane and that the lane is closed due to construction. Accordingly, the cloud service center sends a suggested operating mode for the autonomous vehicle to traverse the obstacle (e.g., instructing the vehicle to change lanes to another road). Once the cloud service center observes the video stream within its operating environment and confirms that the autonomous vehicle can safely and successfully traverse the obstacle, it can add the operating steps that the autonomous vehicle can use to the driving information map. This information can then be sent to other vehicles in the area that may encounter the same obstacle, helping them not only identify the closed lane but also understand how to navigate it.
[0125] In some embodiments, the disclosed methods may be implemented as computer program instructions encoded in a machine-readable format on a computer-readable storage medium or on other non-transitory media or articles of manufacture. Figure 5 Schematically illustrates a conceptual partial view of an example computer program product, arranged in accordance with at least some embodiments presented herein, comprising a computer program for executing a computer process on a computing device. In one embodiment, the example computer program product 500 is provided using a signal-bearing medium 501. The signal-bearing medium 501 may include one or more program instructions 502 that, when executed by one or more processors, may provide instructions for executing a computer process on a computing device. Figure 6 The functions or parts of the functions described, in addition, Figure 5 Program instructions 502 in also describe example instructions.
[0126] In some examples, the signal-bearing medium 501 may include a computer-readable medium 503, such as, but not limited to, a hard drive, a compact disk (CD), a digital video disk (DVD), a digital tape, a memory, a read-only memory (ROM), or a random access memory (RAM), etc. In some embodiments, the signal-bearing medium 501 may include a computer-recordable medium 504, such as, but not limited to, a memory, a read / write (R / W) CD, a R / W DVD, etc. In some embodiments, the signal-bearing medium 501 may include a communication medium 605, such as, but not limited to, a digital and / or analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communication link, a wireless communication link, etc.). Thus, for example, the signal-bearing medium 501 may be conveyed by a wireless form of communication medium 505 (e.g., a wireless communication medium that complies with the IEEE 802.11 standard or other transmission protocol). One or more program instructions 502 may be, for example, computer-executable instructions or logic-implemented instructions. In some examples, such as for Figure 1-Figure 3 The computer system described can be configured to provide various operations, functions, or actions in response to program instructions 502 transmitted to the computing device through one or more of a computer-readable medium 503, a computer-recordable medium 504, and / or a communication medium 505. It should be understood that the arrangement described here is for illustrative purposes only. Thus, those skilled in the art will understand that other arrangements and other elements (e.g., machines, interfaces, functions, sequences, and functional groups, etc.) can be used instead, and some elements can be omitted altogether depending on the desired results. In addition, many of the elements described are functional entities that can be implemented as discrete or distributed components, or in any appropriate combination and position in combination with other components. A trajectory planning method and apparatus provided in an embodiment of the present application are described below.
[0127] The planning and control module of autonomous driving contains a three-layer structure: high-level decision-making, path planning (also known as trajectory planning) and low-level control. This is similar to manned driving technology. Taking changing lanes to the right as an example, the human driver needs to make the following decisions: 1) Consider safety factors and traffic regulations to decide when to change lanes; 2) Plan a driving trajectory for the vehicle; 3) Control the throttle, brake and steering wheel to make the vehicle drive along the predetermined trajectory. These three steps correspond to the behavior planner (Behavior Planner), motion planner (Motion Planner) and controller (Control) in the planning and control module of autonomous driving. Among them, the behavior planner is responsible for issuing high-level decisions, such as changing lanes or keeping lanes; the motion planner is responsible for planning the predicted trajectory and speed, and the controller is responsible for operating the throttle, brake and steering wheel to allow the vehicle to track the target trajectory and reach the target speed. The embodiments provided in this application mainly focus on the motion planner, and the trajectory planning method provided in this application is executed by the motion planner.
[0128] In the field of autonomous driving, the planning and control module of an autonomous driving system is responsible for sensing the entire environment and outputting control commands, serving as the system's exit point. However, when faced with complex scenarios, how can a single planning solution cover a wider range of scenarios, enabling the planning and control module to optimally plan paths and implement a more optimized speed strategy based on each scenario? Furthermore, how can the lateral and longitudinal control accuracy be balanced to achieve a balance between control accuracy, responsiveness, energy consumption, and comfort? These are all challenges that the motion planner must address.
[0129] For example, when a vehicle passes through a restricted width gate quickly, while a longitudinal collision is unlikely, a large lateral control deviation can create a risk of collision. Therefore, if lateral and longitudinal control accuracy are not properly balanced, the predicted trajectory and speed generated by the motion planner will not only be inconsistent with driving logic but also pose a safety risk.
[0130] This problem is a key issue that L4-L5 autonomous driving must face. Therefore, solving this problem and achieving a balance between lateral and longitudinal planning and control will greatly improve the intelligence level of autonomous driving vehicles, make intelligent driving conform to driving logic, and improve safety performance.
[0131] like Figure 6 As shown, the motion planner 610 is introduced below; the trajectory planning method provided in the embodiment of the present application is implemented by the motion planner 610, and the motion planner 610 can be Figure 1 A part of the route planning system 142 is used to plan a driving trajectory for the vehicle 100 , and the driving trajectory is further output to the controller 620 .
[0132] The motion planner 610 includes a lateral displacement planner 601 and a longitudinal velocity planner 602 . The lateral displacement planner 601 and the longitudinal velocity planner 602 may be logically divided based on functions, or may be different functional modules or hardware structures.
[0133] System 600 receives inputs from a high-precision map and vehicle status information. Lateral displacement planner 601 outputs a preliminary driving trajectory with a lateral tolerance to longitudinal velocity planner 602 and controller 620. Longitudinal velocity planner 602 outputs a target speed to controller 620. Optionally, longitudinal velocity planner 602 can also output a target speed with a speed tolerance to controller 620. The target speed represents the drivable speed of the autonomous vehicle (i.e., the ego vehicle). Controller 620, in turn, outputs information such as the throttle or brake pressure and steering angle.
[0134] by Figure 7 For example, the vehicle 700 is driving on an open structured road in the city. There are moving objects around it, and the vehicle 700 is in the corresponding lane. The size, speed, current position prediction and future position of the surrounding moving objects are all known. The vehicle 700 includes the planning control system 600. Figure 7 As shown, the vehicle 700 is traveling straight through a structured road with known waypoints and road widths. There is a limited-width obstacle in the lane, an impending obstacle (pedestrian) outside the lane, and a stop sign ahead of the curve. The vehicle 700 is tasked with obeying traffic rules and passing the road safely, smoothly, and quickly. Figure 7 Take the scenario as an example, and assume that the behavior planner makes the high-level decision to keep the lane.
[0135] Example 1
[0136] like Figure 6 In the illustrated motion planner 610, the lateral displacement planner 601 (Lateral Planner) uses the reference path as a benchmark and, within the road width, performs obstacle avoidance planning to generate a trajectory that avoids all obstacles within the lane, referred to as the obstacle avoidance trajectory. Optionally, the obstacle avoidance trajectory can be further smoothed to obtain a smoothed trajectory, and a lateral tolerance is then generated for the smoothed trajectory to obtain a preliminary driving trajectory. Each waypoint in the preliminary driving trajectory contains the coordinates of the waypoint and at least one lateral tolerance.
[0137] This preliminary driving trajectory is further input into the longitudinal speed planner 602. Based on the waypoint coordinates in the preliminary driving trajectory, the lateral tolerances contained in the waypoints, and traffic information, the longitudinal speed planner 602 plans the upper speed limit for each waypoint, i.e., the maximum permissible speed of the vehicle at that waypoint. This process specifically includes the following three branches, as shown in the figure: reference speed planning (Reference Speed Planner), curvature speed planning (CurveSpeed Planner), and speed planning combined with lateral tolerances. Curvature speed planning is an optional step.
[0138] Among them, background speed planning includes: planning the first speed constraint of each waypoint according to traffic rules such as traffic lights, stop signs, speed limits, etc.; curvature speed planning includes: planning the third speed constraint of each waypoint according to road curvature and centripetal acceleration limits; among them, speed planning combined with lateral error includes: planning the second speed constraint of each of the N waypoints on the initial driving trajectory based on the lateral allowable error of n waypoints.
[0139] The speed constraint with the minimum median value of the above three speed constraints is output as the speed upper limit to the next step, and ST speed planning is performed to obtain the longitudinal speed tolerance of each of the n waypoints, thereby obtaining the target driving trajectory. The target driving trajectory includes the n waypoints, each of the n waypoints includes the coordinates of the waypoint (coordinates in the global coordinate system), the lateral tolerance of the waypoint, the drivable speed of the vehicle at the waypoint, and the speed tolerance. The speed tolerance is the speed error value that is allowed to be generated.
[0140] Based on the above solution provided in Example 1 of the present application, the target driving trajectory can be further output to the controller 620, so that the controller 620 can control the throttle or brake amount, as well as the steering wheel angle, etc. according to these inputs.
[0141] Example 2
[0142] This embodiment will further expand on the first embodiment. The embodiment of the present application continues to assume that the high-level decision issued by the behavior planner is to maintain the lane. This is the basis for the trajectory planning work introduced in the second embodiment.
[0143] like Figure 8 As shown, the operation of the lateral displacement planner 601 is first introduced.
[0144] Since the ego vehicle is required to stay in the lane, the lateral displacement planner 601 uses the dashed line connecting the waypoints of the reference trajectory as the lane centerline. The left and right width constraints of each waypoint can be the distance from the lane centerline to the lane edge minus half the vehicle width, ensuring that the ego vehicle does not cross the side edges of the current lane.
[0145] The lateral displacement planner 601 obtains information about the vehicle's current lane based on positioning and high-precision map information, and uses the trajectory formed by the centerline of the vehicle's current lane or an offset line within a preset range of the centerline as a reference trajectory. The reference trajectory includes multiple reference waypoints and width constraints. The multiple reference waypoints are located on the centerline of the vehicle's current lane or on the above-mentioned offset line. The width constraint is used to constrain the lateral offset of each obstacle avoidance waypoint in the obstacle avoidance planning.
[0146] Next, obstacle avoidance planning is performed. Under the width constraint given by the reference trajectory, an appropriate algorithm (including but not limited to: search-based algorithms, equidistant curve-based algorithms, key point-based algorithms, or polynomial-based algorithms) is selected to laterally move waypoints or generate new waypoints, thereby planning an obstacle avoidance trajectory that allows the vehicle to avoid obstacles in the lane and is completely within the width constraint.
[0147] It is worth noting that the number of reference waypoints and the number of obstacle avoidance waypoints may be the same or different. When the obstacle avoidance waypoint is a waypoint generated by laterally shifting the reference waypoint, the number of obstacle avoidance waypoints and the number of reference waypoints may be the same; when the obstacle avoidance waypoint is a newly generated waypoint, the number of obstacle avoidance waypoints and the number of reference waypoints may be different. When the obstacle avoidance waypoint is a newly generated waypoint compared to the reference waypoint, these newly generated waypoints are generated based on the reference waypoint and the width constraint of the reference waypoint.
[0148] like Figure 9 As shown, both private vehicles and pedestrians are dynamic obstacles and are not in the ego vehicle's current lane. They have no impact on the ego vehicle's lateral planning. The ego vehicle must avoid width-limited obstacles within its current lane. Therefore, the visible dashed line offset from the lane centerline represents the obstacle avoidance trajectory. This obstacle avoidance trajectory maintains a preset distance between the ego vehicle and the obstacle, for example, 15 cm.
[0149] Next, in an embodiment of the present application, the obstacle avoidance trajectory can be spatially filtered to smooth it, also known as trajectory smoothing. This trajectory smoothing is intended to make the planned trajectory more consistent with human driving habits. In an embodiment of the present application, it can be used as an optional step to perform gain processing on the road planned by the present application. Specifically, the trajectory smoothing step includes but is not limited to processing using the following smoothing filtering algorithms: B-spline curve, Fourier filtering, Bezier curve filtering, and polynomial filtering.
[0150] The resulting trajectory after the aforementioned smoothing process should fall completely within the width constraint of the reference trajectory. If there are waypoints outside the width constraint in the smoothed trajectory, the waypoints of the obstacle avoidance trajectory need to be partially or completely moved toward the center of the lane and re-smoothed.
[0151] The following is an example of the quadratic Bezier curve filtering algorithm:
[0152] B(t)=(1-t) 2 P0+2(1-t)tP1+t 2 P2
[0153] Where P0 and P2 are the (x, y) coordinates of the two selected waypoints; point P1 is calculated based on the two known points P0 and P2. Specifically, the intersection of the curve tangent through P0 and the curve tangent through P2 is point P1, and its coordinates are (x, y). t is a parameter with a value range of [0, 1]. The Bezier curve ensures that each point is infinitely continuous and differentiable, thus meeting the smoothness requirement.
[0154] like Figure 10 As shown, taking every three waypoints as an example, it can be found that every three waypoints are used as a curve to smooth the trajectory using the above-mentioned quadratic Bessel function. First, take the 1st and 5th waypoints of the obstacle avoidance trajectory (just an example) and calculate their tangent slopes. These two points are taken as points P0 and P2, and the position of point P1 is calculated. Substitute the position into the formula of the above-mentioned quadratic Bessel curve filtering algorithm. t takes values between 0-1 according to a preset step size (such as 0.1 or 0.2). If the preset step size is 0.2, then take 0, 0.2, 0.4, 0.6, 0.8, and 1 in sequence, and gradually take and calculate a series of B(t), thereby forming a smooth trajectory. When calculating the second smooth trajectory, take the 5th and 9th waypoints of the avoidance trajectory as points P0 and P2 and so on to calculate the entire smooth trajectory, as shown Figure 11 The solid line on the road the vehicle is currently traveling on is shown.
[0155] It is worth noting that during the smoothing process, the obstacle avoidance trajectory to be smoothed may be interpolated or sampled. Therefore, the number of smoothing waypoints contained in the smoothed trajectory and the number of obstacle avoidance waypoints contained in the obstacle avoidance trajectory may be the same or different.
[0156] After obtaining a smooth trajectory, the next step is to generate the lateral tolerance.
[0157] The methods for generating the lateral allowable error include but are not limited to the following examples:
[0158] Method 1:
[0159] A grid map is generated within a certain range around the vehicle, such as 50 meters in front, 10 meters behind, and 20 meters to the left and right. Obstacles are projected onto this grid map. The area occupied by the obstacle is marked as occupied and expanded by half the width plus a preset safety length. Expansion means expanding the occupied area. For example, here, the grid is filled in by a preset length around the occupied area (the preset length here can be half the vehicle width plus a preset safety length). For example, if the obstacle originally occupied 0, the expansion will be 1.
[0160] For each waypoint included in the smoothed trajectory, a series of checkpoints are generated to the left and right at predetermined intervals perpendicular to the tangent of the smoothed trajectory. These checkpoints are projected onto the grid map to find the left and right checkpoints farthest from each waypoint in the unoccupied area of the grid map. The distances between the left and right checkpoints of the point are the unilateral lateral tolerance, and their values are the lateral tolerances (where "unilateral" includes either the left or right side, and the lateral tolerance also includes both the left and right side errors. This application does not require that the left and right side errors be equal; generally, the left and right side errors are not required to be equal).
[0161] The maximum lateral allowable error does not exceed a preset value, for example, 50 cm. When there is an obstacle in the vehicle's driving area, the distance between the vehicle and the obstacle is guaranteed to be no less than 15 cm when the vehicle is driving along the smoothed trajectory within the maximum allowable error boundary. 15 cm and 50 cm are the value ranges of the lateral allowable error on one side (the left or right side as described above) [15,50].
[0162] The generation of checkpoints can be achieved by the following formula:
[0163] The coordinates of the mth checkpoint of the kth waypoint in the smoothed trajectory are
[0164] in:
[0165]
[0166]
[0167] (x k ,y k ) and (x k+1 ,y x+1 ) are the coordinates of the kth waypoint and the k+1th waypoint on the lane centerline, which are the coordinates under ENU. mRelated to the step size of generating candidate checkpoints, its value is equal to the distance between each candidate checkpoint and its corresponding waypoint. For example, when m is equal to 2, it is the distance between the second candidate checkpoint and its corresponding waypoint.
[0168] As mentioned above, when determining the checkpoints, taking one of the waypoints as an example, a list of candidate checkpoints (i.e., multiple possible checkpoints) is initially preset for the waypoint. Then, each point in this list of candidate checkpoints is successively determined from the inside out (along the waypoint to the outside) to determine whether the point is an occupied point in the grid, until the point is checked to be the first occupied point. The point before the point is then determined as the final checkpoint, which is also the farthest point allowed for the lateral error.
[0169] Method 2:
[0170] After projecting the obstacles onto the grid map and dilating them, a distance transform algorithm can be used to calculate the distance from each smoothed waypoint to its nearest occupied area (the occupied area in the grid map). This distance can be used as the lateral tolerance, and the tolerance is limited to a preset threshold, such as the range of [15cm, 50cm].
[0171] like Figure 11 As shown in the figure, the lateral tolerance is represented by arrows passing through waypoints in the figure. Arrows passing through waypoints pointing to the left represent the lateral tolerance for the ego vehicle's leftward deviation, while arrows passing through waypoints pointing to the right represent the lateral tolerance for the ego vehicle's rightward deviation. As can be seen from the figure, the lateral tolerance is larger when the distance from the width-restricted obstacle is far, while the lateral tolerance is smaller when the distance from the width-restricted obstacle is close, thus ensuring the ego vehicle's safe passage through the width-restricted obstacle.
[0172] The operation of the longitudinal speed planner 602 is described below.
[0173] First, it should be noted that the longitudinal velocity planner 602 inherits the output of the lateral displacement planner 601 (which includes N waypoints, each of which contains its coordinates and lateral tolerance). The longitudinal velocity planner 602 plans a target driving trajectory consisting of n waypoints, where these n waypoints are n waypoints from the N waypoints included in the preliminary driving trajectory output by the lateral displacement planner 601. That is, 602 inherits n waypoints (including their coordinates and lateral tolerances) from the N waypoints output by 601 and further plans the speed (or speed and speed tolerance) for these n waypoints in 602. As a result, each of the n waypoints included in the target driving trajectory output by 602 contains not only the coordinate information and lateral tolerance information inherited from 601, but also the speed (or speed and speed tolerance) information processed by 602. The value of n can be less than or equal to N.
[0174] The speed limit is obtained based on the following three speed plans:
[0175] 1. Background speed planning;
[0176] Receive traffic light, stop sign, and speed limit information and plan the speed constraint for each waypoint (the upper limit of the vehicle's drivable speed at each of the n waypoints). The specific rules are as follows:
[0177] 1. Traffic light-based speed rule: If there is a red light ahead, the speed of the vehicle should gradually decrease from the current position to the traffic light stop line, and eventually drop to 0.
[0178] 2. Speed rule based on stop signs: If there is a stop sign ahead, the speed of the vehicle should gradually decrease from the current position to the stop sign line, and eventually drop to 0.
[0179] 3. Speed rules based on road speed limits: If the road speed limit is known, the speed at each waypoint should be equal to the speed limit. If the speed limit suddenly changes, the speed at each waypoint should be updated to the new speed limit at the specified rate.
[0180] It should be noted that when the ego vehicle's task is to maintain its lane, its background speed planning must be combined with the above-mentioned speed rules 1-3. The ultimate speed limit planned for each waypoint in this step is the minimum of the above-mentioned speed rules 1-3. When the ego vehicle's task is to change lanes, the background speed planning provided in Example 3 will prevail. For details, please refer to Example 3.
[0181] like Figure 12 As shown in the example, the road speed limit is 25 km / h, and there is a stop sign ahead. According to traffic regulations, the vehicle should stop at the stop sign. The background speed planning described above can include planning a speed constraint along the waypoint that gradually decreases to 0. To ensure passenger comfort, the planned deceleration can be limited to a preset value, such as 0.05g.
[0182] 2. Curvature speed planning;
[0183] The curvature of each waypoint (each of the n waypoints) and its adjacent waypoints is calculated, and then a speed constraint for each waypoint is obtained based on a preset lateral acceleration. The preset lateral acceleration is an empirically calibrated value that takes into account safety and comfort.
[0184] like Figure 13As shown in the figure, the trajectory planned by the vehicle is approximately "straight line-arc-straight line". Along each waypoint, we take the two adjacent waypoints, a total of three waypoints (the number is only an example), and calculate the curvature radius r of the point (that is, the radius of the circumcircle of the triangle passing through the three points) according to the following formula (Qin Jiuchao-Heron formula):
[0185]
[0186]
[0187]
[0188] p=0.5(a+b+c)
[0189]
[0190]
[0191] Where (x1, y1), (x2, y2), (x3, y3) are the x and y coordinates of these three points. Considering the case where the denominator is 0, when S is less than 0.01, it is calculated as 0.01; then Calculate the speed limit at this point. Where a = 0.2g is the allowed lateral acceleration, and the calculation result is as follows Figure 13 shown.
[0192] 3. Speed planning combined with lateral error;
[0193] like Figure 6 As shown, the lateral allowable error (the error value allowed by the lateral displacement, referred to as the lateral allowable error) generated by the lateral displacement planner 601 is used as an input to generate the speed allowable error. The specific method includes:
[0194] Taking any waypoint as an example, the speed constraint corresponding to the waypoint is obtained by looking up the lateral allowable error of the waypoint in the reverse lookup table; or the speed constraint corresponding to the waypoint is obtained by substituting the lateral allowable error of the waypoint into the function.
[0195] like Figure 14 As shown in the figure, it can be found that the smaller the lateral allowable error, the smaller the corresponding speed constraint. This is because the faster the speed, the lower the control accuracy, and only when the lateral allowable error is larger can a relatively lower control accuracy be tolerated.
[0196] Therefore, if Figure 14 As shown, under this speed rule, waypoints with larger lateral allowable errors are planned with larger speed constraints, while waypoints with smaller lateral allowable errors (such as waypoints on sections with obstacles exceeding the width limit) are planned with smaller speed constraints.
[0197] The three speed plans above provide three recommended speed constraint values for each waypoint. For example, each of the three speed plans provides a recommended speed constraint value for that waypoint. Therefore, that waypoint contains three recommended speed constraint values. The minimum of the three recommended speed constraint values is used as the speed limit for that waypoint. After performing the same operation (taking the minimum speed) on each waypoint, each waypoint now contains its own speed limit, which is used to further constrain the range of the vehicle's drivable speed at that waypoint.
[0198] After obtaining the upper speed limits for each waypoint, the next step is to determine the vehicle's drivable speed (also known as the target speed) and the speed tolerance for each waypoint based on these upper speed limits. The speed tolerance is the error range within which the target speed at each waypoint is allowed to fluctuate upward or downward. The speed tolerance is optional, meaning that the solution provided in this embodiment only determines the vehicle's drivable speed at each waypoint without determining the speed tolerance.
[0199] Methods for determining the drivable speed of the ego vehicle may include:
[0200] Based on the perception data, an ST map containing the area occupied by obstacles is generated (such as Figure 17 As shown in Figure A of FIG, the ST diagram includes a T (time) axis and an S (displacement) axis, wherein the ST diagram includes a law of relative displacement changing over time, wherein the relative displacement includes the displacement of the obstacle relative to the autonomous driving vehicle; wherein the perception data is data collected by sensors, and this data includes information about obstacles in the vehicle environment, etc.
[0201] The obstacles may include vehicles other than the vehicle, pedestrians, bicycles, and other obstacles that may have a potential or direct impact on the driving of the vehicle.
[0202] Determine point i based on the preset algorithm and speed limit j Position in the ST diagram; j is taken from 1 to n (such as Figure 17 As shown in Figures B to D of FIG), an ST planning curve is generated to avoid the area occupied by the obstacle. The ST planning curve includes the curves from i1 to i n n points (such as Figure 17 As shown in Figure D), the n points correspond one-to-one to the n waypoints mentioned above. These n points are as follows Figure 17 As shown in the D diagram, each point in the ST diagram corresponds to an S / T value (displacement divided by time as speed), which is the drivable speed of the vehicle at the corresponding waypoint. The ST diagram can be generated by considering the predicted trajectory of all moving obstacles (including moving obstacles outside the lane). Figure 17Figure A in FIG is only shown with pedestrians (obstacles include pedestrians) as an example.
[0203] Furthermore, optionally, the embodiment of the present application may also generate a speed tolerance for each of the n waypoints:
[0204] The method for generating speed tolerance is similar to that for lateral tolerance, but while the lateral tolerance is generated using a grid map, the speed tolerance is generated using an ST diagram. As described above, the ST diagram contains two coordinate axes: the T (time) axis and the S (displacement) axis. The T axis is centered at the current moment, while the S axis is centered at the current position of the vehicle. For any point (t, s), its value ranges from [0 to 1]. If the value is greater than 0 and less than 1, there is a risk of encroachment at position s at time t.
[0205] The following is a slightly more detailed explanation with reference to the accompanying drawings:
[0206] The method for generating the drivable speed and the speed tolerance (the tolerance value of the longitudinal speed, referred to as the speed tolerance) can be specifically described as follows:
[0207] First, a corresponding relationship v_lim(s) is generated between the upper speed limit and the road length s. The upper speed limit is also called the speed constraint v_lim. This corresponding relationship is strongly related to the vehicle and its current environment information.
[0208] by Figure 15 For example, the vehicle starts from the current position, passes through the width-restricted obstacle, and finally stops at the stop sign. The corresponding relationship between the speed constraint v_lim and the road length s is v_lim(s) Figure 16 As shown. Combined Figure 15 look Figure 16 The vehicle starts from the current position (i.e., the 0 point of the s axis). The speed of the vehicle at the current position is 20 km / h. Before the vehicle enters the passage formed by the width-limited obstacle, the speed of the vehicle gradually decreases from 20 km / h to 11 km / h, and then passes through the passage at a constant speed of 11 km / h. Figure 16 The horizontal line segment in the line segment indicates the channel formed by the width-limited obstacle. After passing the channel, the speed is quickly reduced to 0 in a short distance and time so that the vehicle stops before the stop sign ( Figure 16 The line segment in the figure is represented by a steeper line segment at the end, and the final v-axis value is 0).
[0209] Then, considering the predicted trajectories of all moving obstacles (including those outside the lane), an ST graph is generated (e.g. Figure 17 Figure A).
[0210] like Figure 17As shown, pedestrians are taken as an example of the above-mentioned moving obstacles.
[0211] Among them, Figure 17 In Figure A, the mobile obstacle - the pedestrian is about to cross the road. Considering its volume, it will invade the vehicle lane for a period of time, and the encroachment length is approximately constant. Therefore, its encroachment area in the ST diagram shown in Figure A is approximately rectangular.
[0212] Taking into account its uncertainty and the lateral allowable error of the ego vehicle, the occupied area is expanded outward, such as the area in Figure A that gradually changes to gray. Then, under the constraint of the speed limit, combined with the preset algorithm, the ego vehicle speed at the initial moment is planned (the ego vehicle's drivable speed at the waypoint). Because the starting position of the ego vehicle at the initial moment is s = 0, the planned speed cannot be greater than the speed limit v_lim(0), see Figure 17 Then, let the next moment be the new starting moment, and its starting position s = s1. The planned speed at this moment cannot be greater than the speed constraint v_lim(s1), as shown in the following example: Figure 17 As shown in Figure C. By analogy, we can finally get the complete ST planning curve, as shown in Figure C. Figure 17 As shown in Figure D. Among them, it can be found that due to Figure 17 All four graphs are ST graphs, that is, time is used as the horizontal axis and displacement is used as the vertical axis. Therefore, the slope of the tangent line of the curve in the graph represents the speed of the vehicle in the process of moving forward from the starting position s = 0. For example, if the time taken for the process of moving the displacement s1 is t1, then the slope of Step 1 is s1 / t1, which is the speed of Step 1.
[0213] It should be noted that Figure 17 The n points in the D graph do not directly represent n waypoints, but have a one-to-one correspondence with the n waypoints. Each of the n points corresponds to an S / T value in the graph, which is the drivable speed of the waypoint corresponding to the point.
[0214] The following describes the method for generating the speed tolerance:
[0215] like Figure 18 As shown in the figure, under the premise of not colliding with the occupied area, the longitudinal displacement allowable error of the ST planning curve is generated and then converted into the speed allowable error.
[0216] In the ST diagram, if Figure 18 As shown in Figure A, after the occupied area is expanded considering the lateral control error of the vehicle, checkpoints are generated for each point in the ST planning curve along the vertical axis (that is, the S axis) with a certain step size (such as 0.2m) upward and downward;
[0217] Then, if Figure 18As shown in FIG. B, each point in the ST planning curve is processed as follows: Taking the i+1th point as an example, find the two checkpoints on the upper and lower sides of the i+1th point that are located in the unoccupied area in the ST map, and connect the two checkpoints on the upper and lower sides of the i+1th point to the i-th point in the ST planning curve to generate two lines. The slopes of the two lines are the upper and lower limits of the speed tolerance of the i+1th point. Optionally, the slope of the upper limit of the speed tolerance here cannot be higher than the slope of the speed upper limit given by the longitudinal speed planner 602 ( Figure 17 The dotted line in Figures B and C is the slope of the speed upper limit).
[0218] Finally, if Figure 18 As shown in Figure C, the displacement is the horizontal axis and the slope of each point on the ST curve (i.e., the driving speed) is the vertical axis. Figure 18 The result of Figure B is converted into Figure 18 The curve shown in Figure C, where Figure 18 In Figure C, each speed point has a speed tolerance. When there is no occupied area, the speed tolerance for ST planning at point i+1 should be less than a certain threshold, such as 5 km / h. When there is an encroaching area, the speed tolerance for ST planning at point i+1 should be greater than a certain threshold, such as 0.5 km / h. Point i+1 can be the current waypoint.
[0219] Through the related processing of the above-mentioned lateral displacement planner 601 and longitudinal speed planner 602, the planner ultimately outputs a target driving trajectory. Each of the n waypoints on the target driving trajectory includes the coordinates of the waypoint, the lateral allowable error, the vehicle's possible driving speed at the waypoint, and the allowable speed error at the waypoint; the allowable speed error is optional information.
[0220] On the basis of the third embodiment, the target driving trajectory can be further output to the controller, and the controller will perform relevant operations according to the target driving trajectory, thereby outputting the control amount of the throttle or brake and the steering wheel angle.
[0221] Example 3
[0222] The descriptions of the motion planner's operation in Examples 1 and 2 are both based on the vehicle's lane-keeping task. The following describes the motion planner's operation when the vehicle's lane-changing task is to change lanes, assuming that the behavior planner makes the high-level decision to change lanes.
[0223] When the ego vehicle needs to change lanes, unlike in Examples 1 and 2, the starting waypoint of the reference trajectory determined by the lateral displacement planner 601 is a partial waypoint on the centerline of the current lane, while the ending waypoint is a partial waypoint on the centerline of the target lane to be changed to. The two sections of waypoints are smoothly connected, and the left and right width constraints of each waypoint can be set according to empirical values, such as 20 cm.
[0224] like Figure 19 As shown in the figure, the ego vehicle is driving on the current road, and its task is to change lanes to the target road. There are two vehicles in the target lane, one is called the empty current vehicle, and the other is called the empty following vehicle. The empty current vehicle and the empty following vehicle form a gap, and the ego vehicle needs to merge into the target lane through the gap. The target merging point can be the center of the gap.
[0225] In addition, unlike the first and second embodiments, the longitudinal speed planner 602 needs to receive traffic light, stop sign, speed limit information, and target lane clearance information when performing background speed planning, so as to plan the speed constraints for each waypoint, that is:
[0226] Unlike lane-keeping tasks, when planning background speed in the context of lane changes, in addition to considering the three speed rules of "traffic light-based speed rules," "stop sign-based speed rules," and "road speed limit-based speed rules," you also need to consider the "target free-space speed limit-based speed rules." Specifically:
[0227] Based on the target gap speed limit, when the ego vehicle needs to change lanes, the speed corresponding to each waypoint along the way from the current point to the target gap is planned based on the length of the target gap, the longitudinal distance of the ego vehicle from the target gap's merging point, and the speeds of the vehicles ahead and behind the target gap. This ensures that the ego vehicle always ends up at a point between the leading and following vehicles after merging (a point that ensures the ego vehicle does not collide with the leading and following vehicles). The target gap length represents the distance between the rear end of the leading vehicle and the front end of the following vehicle in the target gap. The merging point can be the center point between the leading and following vehicles in the target gap, or a point that is shifted forward or backward by a preset distance. This ensures that the ego vehicle does not collide with the preceding and following vehicles in the target lane when merging into the target lane.
[0228] It should be noted that the fourth speed rule (i.e., the speed rule based on the target freeway speed limit) is only considered when the ego vehicle's task is to change lanes. When the ego vehicle's task is to change lanes, its background speed planning must combine the above four speed rules. Ultimately, the upper speed limit planned for each waypoint in this step (background speed planning) is the minimum of the above four speeds.
[0229] In addition to the above clear distinctions, for other steps to avoid redundancy, please refer to the relevant step descriptions of Example 3 and will not be repeated here.
[0230] Example 4
[0231] like Figure 20 As shown, an embodiment of the present application provides a trajectory planning method applied to an autonomous driving vehicle, the method comprising:
[0232] S2010: receiving perception data, positioning data, and map information;
[0233] S2030: Obtaining a preliminary driving trajectory of the autonomous driving vehicle based on the perception data, the positioning data, and the map information, where the preliminary driving trajectory includes N waypoints, wherein each of the N waypoints includes first waypoint information of the waypoint, the first waypoint information including: coordinates of the waypoint and a lateral allowable error of the waypoint, where the lateral allowable error represents an allowable error value in lateral displacement of the waypoint, and N is a positive integer greater than 1;
[0234] S2050: Predicting the drivable speeds of the autonomous driving vehicle at n of the N waypoints based on the traffic condition information, the perception data, and the preliminary driving trajectory to obtain a target driving trajectory; the target driving trajectory includes the n waypoints, wherein each of the n waypoints further includes second waypoint information of the waypoint, and the second waypoint information includes: the drivable speed of the autonomous driving vehicle at the waypoint; wherein n is a positive integer less than or equal to N.
[0235] Based on the fourth embodiment, optionally, the step S2030 specifically includes:
[0236] Acquire a reference trajectory based on the positioning data and the map information, the reference trajectory comprising R1 reference waypoints and a width constraint, the R1 reference waypoints being located on a centerline of a lane currently occupied by the autonomous vehicle or on an offset line from the centerline, the width constraint being used to constrain an offset amount of each reference waypoint in a lateral displacement based on the current position of the reference waypoint during obstacle avoidance planning, and the offset line being a line offset from the centerline by a preset range;
[0237] Performing obstacle avoidance planning on the reference trajectory according to the perception data, the R1 reference waypoints, and the width constraint to generate an obstacle avoidance trajectory, wherein the obstacle avoidance trajectory includes R2 obstacle avoidance waypoints, and each of the R2 obstacle avoidance waypoints includes the coordinates of the obstacle avoidance waypoint;
[0238] According to the generation rule of the lateral allowable error, the lateral allowable error corresponding to each of the R2 obstacle avoidance waypoints is determined, thereby obtaining the preliminary driving trajectory, wherein the N waypoints included in the preliminary driving trajectory are the R2 obstacle avoidance waypoints.
[0239] Optionally, after generating an obstacle avoidance trajectory, the step S2030 further includes: performing trajectory smoothing processing on the obstacle avoidance trajectory to generate a smooth trajectory, wherein the smooth trajectory includes the R3 smooth waypoints, and each of the R3 smooth waypoints includes the coordinates of the smooth waypoint;
[0240] Correspondingly, determining the lateral allowable error corresponding to each of the R2 obstacle avoidance points according to a generation rule of the lateral allowable error, thereby obtaining the preliminary driving trajectory, includes:
[0241] According to a generation rule of the lateral allowable error, the lateral allowable error corresponding to each of the R3 smooth waypoints is determined, thereby obtaining the preliminary driving trajectory, wherein the N waypoints included in the preliminary driving trajectory are the R3 smooth waypoints.
[0242] Optionally, the S2050 includes:
[0243] Generating, based on the perception data, an ST map comprising an area occupied by the obstacle, the ST map comprising a T (time) axis and an S (displacement) axis, wherein the ST map comprises a pattern of relative displacement changing over time, wherein the relative displacement comprises a displacement of the obstacle relative to the autonomous vehicle;
[0244] Determine point i based on the preset algorithm and speed limit j Position in the ST graph; j is taken from 1 to n in sequence, and an ST planning curve is generated to avoid the area occupied by the obstacle. The ST planning curve includes the points from i1 to i n n points, the n points corresponding to the n waypoints one by one, the S / T values corresponding to the n points in the ST diagram are the drivable speeds of the autonomous driving vehicle at the n waypoints respectively;
[0245] The speed upper limit is used to constrain the range of the drivable speed in the process of generating the ST planning curve, and the speed upper limit is obtained according to the traffic condition information and the preliminary driving trajectory.
[0246] Optionally, point i is determined according to a preset algorithm and a speed limit. j Before the position in the ST map, the S2050 further includes: performing speed planning on each of the n waypoints according to the traffic condition information to obtain a first speed constraint for the n waypoints;
[0247] According to the lateral allowable error of each of the n waypoints, obtaining the second speed constraints of the n waypoints corresponding to the lateral allowable error of the n waypoints;
[0248] Determine a speed constraint with a minimum value among multiple speed constraints included in each of the n waypoints as the speed upper limit, wherein the multiple speed constraints include: the first speed constraint and the second speed constraint.
[0249] Optionally, point i is determined according to a preset algorithm and a speed limit. j Before the position in the ST diagram, the S2050 further includes:
[0250] Calculating the curvature of each waypoint according to each of the n waypoints and x waypoints adjacent to each waypoint, where x is a positive integer greater than 0;
[0251] Obtaining a third velocity constraint for each waypoint according to the curvature of each waypoint and the maximum allowed lateral acceleration of each waypoint;
[0252] The multiple speed constraints further include: the third speed constraint.
[0253] Optionally, the S2050 further includes:
[0254] generating a speed tolerance for each of the n waypoints according to the ST map, the ST planning curve, and the speed upper limit;
[0255] The second waypoint information further includes: the speed allowable error; wherein the speed allowable error is used to represent the error allowed in speed of each waypoint in the n waypoints.
[0256] Optionally, the S2050 further includes:
[0257] In the ST diagram, for point i j+1 Generate an upper checkpoint and a lower checkpoint along the S axis upward and downward respectively, and the upper checkpoint and the lower checkpoint are determined by the point i j+1 The longitudinal displacement allowable error is determined by the longitudinal displacement allowable error of the point i j+1 In the ST diagram, the displacement error allowed along the positive and negative directions of the S axis is j+1 For point i j The point at the next moment, the point i j is the n points except i n For any point other than the above, the duration of the moment is the preset duration;
[0258] Connect the points ij and the upper checkpoint to obtain the first slope, connecting the point i j and the lower check point to obtain a second slope; the first slope and the second slope are used to represent the point i j The speed tolerance of the corresponding waypoint.
[0259] Example 5
[0260] like Figure 21 As shown, an embodiment of the present application provides a trajectory planning device 2100, which is applied to an autonomous driving vehicle. The device 2100 includes:
[0261] Receiving module 2110, for receiving sensing data, positioning data and map information;
[0262] A lateral displacement planning module 2130 is configured to obtain a preliminary driving trajectory of the autonomous vehicle based on the perception data, the positioning data, and the map information, wherein the preliminary driving trajectory includes N waypoints, wherein each of the N waypoints includes first waypoint information of the waypoint, and the first waypoint information includes: the coordinates of the waypoint and a lateral allowable error of the waypoint, where the lateral allowable error represents an allowable error value in the lateral displacement of the waypoint, and N is a positive integer greater than 1;
[0263] The longitudinal speed planning module 2150 is configured to predict the drivable speeds of the autonomous driving vehicle at each of n of the N waypoints based on traffic condition information, the perception data, and the preliminary driving trajectory, thereby obtaining a target driving trajectory. The target driving trajectory includes the n waypoints, wherein each of the n waypoints further includes second waypoint information of the waypoint, wherein the second waypoint information includes the drivable speed of the autonomous driving vehicle at the waypoint. Where n is a positive integer less than or equal to N.
[0264] Optionally, the lateral displacement planning module 2130 is specifically configured to:
[0265] Acquire a reference trajectory based on the positioning data and the map information, the reference trajectory comprising R1 reference waypoints and a width constraint, the R1 reference waypoints being located on a centerline of a lane currently occupied by the autonomous vehicle or on an offset line from the centerline, the width constraint being used to constrain an offset amount of each reference waypoint in a lateral displacement based on the current position of the reference waypoint during obstacle avoidance planning, and the offset line being a line offset from the centerline by a preset range;
[0266] Performing obstacle avoidance planning on the reference trajectory according to the perception data, the R1 reference waypoints, and the width constraint to generate an obstacle avoidance trajectory, wherein the obstacle avoidance trajectory includes R2 obstacle avoidance waypoints, and each of the R2 obstacle avoidance waypoints includes the coordinates of the obstacle avoidance waypoint;
[0267] According to the generation rule of the lateral allowable error, the lateral allowable error corresponding to each of the R2 obstacle avoidance waypoints is determined, thereby obtaining the preliminary driving trajectory, wherein the N waypoints included in the preliminary driving trajectory are the R2 obstacle avoidance waypoints.
[0268] Optionally, after generating an obstacle avoidance trajectory, the lateral displacement planning module 2130 is further configured to:
[0269] Performing trajectory smoothing on the obstacle avoidance trajectory to generate a smooth trajectory, wherein the smooth trajectory includes the R3 smooth waypoints, and each of the R3 smooth waypoints includes the coordinates of the smooth waypoint;
[0270] Correspondingly, determining the lateral allowable error corresponding to each of the R2 obstacle avoidance points according to a generation rule of the lateral allowable error, thereby obtaining the preliminary driving trajectory, includes:
[0271] According to a generation rule of the lateral allowable error, the lateral allowable error corresponding to each of the R3 smooth waypoints is determined, thereby obtaining the preliminary driving trajectory, wherein the N waypoints included in the preliminary driving trajectory are the R3 smooth waypoints.
[0272] Optionally, the longitudinal speed planning module 2150 is specifically configured to:
[0273] Generating, based on the perception data, an ST map comprising an area occupied by the obstacle, the ST map comprising a T (time) axis and an S (displacement) axis, wherein the ST map comprises a pattern of relative displacement changing over time, wherein the relative displacement comprises a displacement of the obstacle relative to the autonomous vehicle;
[0274] Determine point i based on the preset algorithm and speed limit j Position in the ST graph; j is taken from 1 to n in sequence, and an ST planning curve is generated to avoid the area occupied by the obstacle. The ST planning curve includes the points from i1 to i n n points, the n points corresponding to the n waypoints one by one, the S / T values corresponding to the n points in the ST diagram are the drivable speeds of the autonomous driving vehicle at the n waypoints respectively;
[0275] The speed upper limit is used to constrain the range of the drivable speed in the process of generating the ST planning curve, and the speed upper limit is obtained according to the traffic condition information and the preliminary driving trajectory.
[0276] Optionally, in the step of determining point i according to a preset algorithm and a speed upper limit j Before the position in the ST map, the longitudinal speed planning module 2150 is further configured to:
[0277] Performing speed planning for each of the n waypoints according to the traffic condition information to obtain a first speed constraint for the n waypoints;
[0278] According to the lateral allowable error of each of the n waypoints, obtaining the second speed constraints of the n waypoints corresponding to the lateral allowable error of the n waypoints;
[0279] Determine a speed constraint with a minimum value among multiple speed constraints included in each of the n waypoints as the speed upper limit, wherein the multiple speed constraints include: the first speed constraint and the second speed constraint.
[0280] Optionally, the longitudinal speed planning module 2150 is further configured to:
[0281] Calculating the curvature of each waypoint according to each of the n waypoints and x waypoints adjacent to each waypoint, where x is a positive integer greater than 0;
[0282] Obtaining a third velocity constraint for each waypoint according to the curvature of each waypoint and the maximum allowed lateral acceleration of each waypoint;
[0283] The multiple speed constraints further include: the third speed constraint.
[0284] Optionally, the longitudinal speed planning module 2150 is specifically configured to:
[0285] generating a speed tolerance for each of the n waypoints according to the ST map, the ST planning curve, and the speed upper limit;
[0286] The second waypoint information further includes: the speed allowable error; wherein the speed allowable error is used to represent the error allowed in speed of each waypoint in the n waypoints.
[0287] Optionally, the longitudinal speed planning module 2150 is specifically configured to:
[0288] In the ST diagram, for point i j+1Generate an upper checkpoint and a lower checkpoint along the S axis upward and downward respectively, and the upper checkpoint and the lower checkpoint are determined by the point i j+1 The longitudinal displacement allowable error is determined by the longitudinal displacement allowable error of the point i j+1 In the ST diagram, the displacement error allowed along the positive and negative directions of the S axis is j+1 For point i j The point at the next moment, the point i j is the n points except i n For any point other than the above, the duration of the moment is the preset duration;
[0289] Connect the points i j and the upper checkpoint to obtain the first slope, connecting the point i j and the lower check point to obtain a second slope; the first slope and the second slope are used to represent the point i j The speed tolerance of the corresponding waypoint.
[0290] Example 6
[0291] like Figure 22 The trajectory planning device 2200 shown can be Figure 22 The obstacle avoidance device 2200 includes at least one processor 2210, at least one memory 2230, and at least one communication interface 2250. The processor 2210, the memory 2230, and the communication interface 2250 are connected via the communication bus and communicate with each other.
[0292] The processor 2210 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits for controlling the execution of the above program.
[0293] The communication interface 2250 is used to communicate with other devices or communication networks, such as Ethernet, Radio Access Network (RAN), Wireless Local Area Networks (WLAN), etc.
[0294] The memory 2230 may be a read-only memory (ROM) or other type of static storage device that can store static information and instructions, a random access memory (RAM) or other type of dynamic storage device that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc (CD-ROM) or other optical disc storage, an optical disc storage (including a compact disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory may exist independently and be connected to the processor via a bus. The memory may also be integrated with the processor.
[0295] The memory 2230 is used to store application code for executing the above solution, and the execution is controlled by the processor 2210. The processor 2210 is used to execute the application code stored in the memory 2230.
[0296] The code stored in the memory 2230 can execute a trajectory planning method provided above, including: receiving perception data, positioning data and map information;
[0297] Obtaining a preliminary driving trajectory of the autonomous driving vehicle based on the perception data, the positioning data, and the map information, the preliminary driving trajectory comprising N waypoints, wherein each of the N waypoints comprises first waypoint information of the waypoint, the first waypoint information comprising: coordinates of the waypoint and a lateral allowable error of the waypoint, the lateral allowable error representing an allowable error value in lateral displacement of the waypoint, where N is a positive integer greater than 1;
[0298] Based on the traffic condition information, the perception data, and the preliminary driving trajectory, the drivable speeds of the autonomous driving vehicle at n of the N waypoints are predicted to obtain a target driving trajectory; the target driving trajectory includes the n waypoints, wherein each of the n waypoints further includes second waypoint information of the waypoint, the second waypoint information including: the drivable speed of the autonomous driving vehicle at the waypoint; wherein n is a positive integer less than or equal to N.
[0299] It should be noted that for the aforementioned method embodiments, for simplicity of description, they are all expressed as a series of action combinations. However, those skilled in the art should be aware that the present invention is not limited by the order of the actions described, because according to the present invention, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in this specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the present invention.
[0300] In the above embodiments, the description of each embodiment has its own focus. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.
[0301] In the several embodiments provided in this application, it should be understood that the disclosed devices can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of the modules is merely a logical function division. In actual implementation, there may be other division methods, such as multiple modules or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, and the indirect coupling or communication connection of devices or modules can be electrical or other forms.
[0302] The modules described as separate components may or may not be physically separate, and the components shown as modules may or may not be physical units, that is, they may be located in one place or distributed across multiple network modules. Some or all of the modules may be selected to achieve the purpose of this embodiment according to actual needs.
[0303] In addition, the functional modules in various embodiments of the present invention may be integrated into a single processing module, or each module may exist physically separately, or two or more modules may be integrated into a single module. The aforementioned integrated modules may be implemented in the form of hardware or software functional modules.
[0304] If the integrated module is implemented in the form of a software functional module and sold or used as an independent product, it can be stored in a computer-readable memory. Based on this understanding, the technical solution of the present invention, or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product. The computer software product is stored in a memory and includes several instructions for enabling a computer device (which can be a personal computer, server or network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present invention. The aforementioned memory includes: various media that can store program codes, such as a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk or an optical disk.
[0305] Those skilled in the art will appreciate that all or part of the steps in the various methods of the above embodiments can be completed by instructing related hardware through a program. The program can be stored in a computer-readable memory, and the memory can include: a flash drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, etc.
[0306] The embodiments of the present invention are described in detail above. Specific examples are used herein to illustrate the principles and implementation methods of the present invention. The description of the above embodiments is only used to help understand the method of the present invention and its core ideas. At the same time, for those skilled in the art, according to the ideas of the present invention, there may be changes in the specific implementation methods and application scopes. In summary, the content of this specification should not be understood as limiting the present invention.
Claims
1. A trajectory planning device, applied to an autonomous driving vehicle, characterized in that: The device comprises: A receiving module, used for receiving sensing data, positioning data and map information; a lateral displacement planning module, configured to obtain a preliminary driving trajectory of the autonomous driving vehicle according to the perception data, the positioning data, and the map information, wherein the preliminary driving trajectory includes N waypoints, wherein each waypoint of the N waypoints includes first waypoint information of the waypoint, wherein the first waypoint information includes: coordinates of the waypoint and a lateral allowable error of the waypoint, wherein the lateral allowable error represents an error value allowed to be generated in the lateral displacement of the waypoint, and N is a positive integer greater than 1; A longitudinal speed planning module is used to predict the drivable speed and drivable speed error of the autonomous driving vehicle at n of the N waypoints respectively according to traffic road condition information, the perception data and the preliminary driving trajectory; the drivable speed error is obtained by the lateral allowable error; a target driving trajectory is obtained by jointly planning the drivable speed and the lateral displacement; the target driving trajectory includes the n waypoints, wherein each of the n waypoints also includes second waypoint information of the waypoint, and the second waypoint information includes: the drivable speed of the autonomous driving vehicle at the waypoint; wherein n is a positive integer less than or equal to N.
2. The device according to claim 1, characterized in that The lateral displacement planning module is specifically used for: Acquire a reference trajectory according to the positioning data and the map information, the reference trajectory comprising R1 reference waypoints and a width constraint, the R1 reference waypoints being located on the center line of the lane currently located by the autonomous driving vehicle or on an offset line of the center line, the width constraint being used to constrain an offset amount of each reference waypoint in lateral displacement based on the current position of the reference waypoint during obstacle avoidance planning, and the offset line being a line offset from the center line by a preset range; According to the perception data, the R1 reference waypoints and the width constraint, the obstacle avoidance planning is performed on the reference trajectory to generate an obstacle avoidance trajectory, wherein the obstacle avoidance trajectory includes R2 obstacle avoidance waypoints, and each of the R2 obstacle avoidance waypoints includes the coordinates of the obstacle avoidance waypoint; According to the generation rule of the lateral allowable error, the lateral allowable error corresponding to each of the R2 obstacle avoidance points is determined, so as to obtain the preliminary driving trajectory, wherein the N points included in the preliminary driving trajectory are the R2 obstacle avoidance points.
3. The device according to claim 2, characterized in that The lateral displacement planning module is specifically used for: After generating an obstacle avoidance trajectory, performing trajectory smoothing processing on the obstacle avoidance trajectory to generate a smooth trajectory, wherein the smooth trajectory includes R3 smooth waypoints, and each of the R3 smooth waypoints includes the coordinates of the smooth waypoint; Correspondingly, the lateral allowable error corresponding to each of the R2 obstacle avoidance points is determined according to the generation rule of the lateral allowable error, so as to obtain the preliminary driving trajectory, including: According to the generation rule of the lateral allowable error, the lateral allowable error corresponding to each of the R3 smooth waypoints is determined, so as to obtain the preliminary driving trajectory, wherein the N waypoints included in the preliminary driving trajectory are the R3 smooth waypoints.
4. The device according to any one of claims 1 to 3, characterized in that: The longitudinal speed planning module is specifically used for: Generate an ST graph including an area occupied by an obstacle according to the perception data, wherein the ST graph includes a time axis and a displacement axis, wherein the ST graph includes a law of relative displacement changing over time, wherein the relative displacement includes a displacement of the obstacle relative to the autonomous driving vehicle; Determine point i according to the preset algorithm and speed limit j Position in the ST graph; j is taken from 1 to n in sequence, and an ST planning curve is generated to avoid the area occupied by the obstacle, and the ST planning curve includes from i1 to i n n points, the n points correspond to the n waypoints one by one, and the S / T values corresponding to the n points in the ST diagram are the drivable speeds of the autonomous driving vehicle at the n waypoints respectively; The speed upper limit is used to constrain the range of the drivable speed in the process of generating the ST planning curve, and the speed upper limit is obtained according to the traffic condition information and the preliminary driving trajectory.
5. The device according to claim 4, characterized in that The longitudinal speed planning module is also used for: In the above method, point i is determined according to the preset algorithm and the speed upper limit. j Before the position in the ST diagram, speed planning is performed on each of the n waypoints according to the traffic condition information to obtain a first speed constraint for the n waypoints; According to the lateral allowable error of each of the n waypoints, obtaining the second speed constraints of the n waypoints corresponding to the lateral allowable error of the n waypoints; Determine a speed constraint with a minimum value among multiple speed constraints included in each of the n waypoints as the speed upper limit, wherein the multiple speed constraints include: the first speed constraint and the second speed constraint.
6. The device according to claim 5, characterized in that The longitudinal speed planning module is also used for: Calculate the curvature of each waypoint according to each waypoint among the n waypoints and x waypoints adjacent to each waypoint, where x is a positive integer greater than 0; Acquire a third speed constraint for each waypoint according to the curvature of each waypoint and the maximum allowed lateral acceleration of each waypoint; Wherein, the multiple speed constraints also include: the third speed constraint.
7. The device according to any one of claims 4, characterized in that The longitudinal speed planning module is specifically used for: Generate a speed tolerance for each of the n waypoints according to the ST diagram, the ST planning curve and the speed upper limit; The second waypoint information further includes: the speed allowable error; wherein the speed allowable error is used to represent the error allowed in speed of each waypoint in the n waypoints.
8. The device according to claim 7, characterized in that The longitudinal speed planning module is specifically used for: In the ST diagram, for point i j+1 An upper checkpoint and a lower checkpoint are generated upward and downward along the S axis respectively, and the upper checkpoint and the lower checkpoint are determined by the point i j+1 The longitudinal displacement allowable error is determined by the longitudinal displacement allowable error of the point i j+1 In the ST diagram, the displacement error allowed along the positive and negative directions of the S axis is j+1 For point i j The point at the next moment, the point i j is the n points except i n For any point other than the above, the duration of the moment is the preset duration; Connect the points i j and the upper checkpoint to obtain the first slope, connecting the point i j and the lower check point to obtain a second slope; the first slope and the second slope are used to represent the point i j The speed tolerance of the corresponding waypoint.
Citation Information
Patent Citations
A trajectory planning method and device
CN111123952B