Intelligent adaptive cruise control system and method

By conducting multiple measurements of the vehicle's surrounding environment and training a Gaussian mixture model, combined with occupant input, the optimal vehicle speed is determined, solving the problem that existing technologies cannot consider remote vehicle behavior and achieving more accurate and safer adaptive cruise control.

CN121062702APending Publication Date: 2025-12-05GM GLOBAL TECHNOLOGY OPERATIONS LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410984174.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-06-05
Filing Date
2024-07-22
Publication Date
2025-12-05

AI Technical Summary

Technical Problem

Existing ADAS systems and adaptive cruise control functions cannot effectively take into account the behavior and trajectory of other remote vehicles besides the vehicle in front, resulting in poor control performance.

Method used

By using vehicle perception sensors to measure the environment around the vehicle multiple times, the positions and trajectories of multiple remote vehicles are determined. A Gaussian mixture model (GMM) is used for data training and comparison. Combining occupant input and vehicle sensor data, the optimal vehicle speed is determined, and the vehicle speed is controlled by the controller to achieve adaptive cruise control.

Benefits of technology

It improves the accuracy and safety of vehicle adaptive cruise control, enabling it to better handle the behavior and trajectories of multiple remote vehicles, thus enhancing the driving experience and safety.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121062702A_ABST
    Figure CN121062702A_ABST
Patent Text Reader

Abstract

A method for adaptive cruise control of a vehicle includes performing a plurality of measurements on an environment around the vehicle using a vehicle-aware sensor. An environment surrounding the vehicle includes a plurality of remote vehicles. The method also includes determining one or more speed decision algorithm inputs based at least in part on the plurality of measurements. The method also includes determining an optimal vehicle speed of the vehicle based at least in part on the one or more speed decision algorithm inputs. The method also includes controlling the vehicle such that the speed of the vehicle is the optimal vehicle speed.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present invention relates to a cruise control system and method for a vehicle. BACKGROUND

[0002] To improve occupant awareness and convenience, vehicles can be equipped with advanced driver assistance systems (ADAS). ADAS systems can use various sensors (e.g., cameras, radar, and LiDAR) to detect and identify objects around the vehicle, including other vehicles, pedestrians, road configurations, traffic signs, and road markings. ADAS systems can take action based on environmental conditions around the vehicle, such as applying brakes and / or alerting occupants of the vehicle. ADAS systems can also provide assistance functions, such as adaptive cruise control functions. Adaptive cruise control is an ADAS function that can automatically adjust the speed of a vehicle to maintain a desired distance from a preceding vehicle. Adaptive cruise control can use sensor information from various sensors (e.g., cameras, radar, and LiDAR) to measure the distance between the vehicle and the preceding vehicle and adjust the acceleration and / or braking of the vehicle to maintain the following distance between the vehicle and the preceding vehicle. However, current ADAS systems and adaptive cruise control functions can not be able to account for the behavior and trajectory of other remote vehicles other than the preceding vehicle in the vicinity of the vehicle.

[0003] Accordingly, while ADAS, and adaptive cruise control systems and methods achieve their intended purpose, there is still a need for a new and improved system and method for adaptive cruise control for vehicles. SUMMARY

[0004] According to several aspects, the present invention provides a method for adaptive cruise control for a vehicle. The method can include performing a plurality of measurements of an environment around the vehicle using vehicle perception sensors. The environment around the vehicle includes a plurality of remote vehicles. The method can also include determining one or more speed decision algorithm inputs based at least in part on the plurality of measurements. The method can also include determining an optimal vehicle speed for the vehicle based at least in part on the one or more speed decision algorithm inputs. The method can also include controlling the vehicle such that the speed of the vehicle is the optimal vehicle speed.

[0005] In another aspect of the invention, performing the plurality of measurements can also include measuring a position of each of the plurality of remote vehicles using the vehicle perception sensors. Performing the plurality of measurements can also include saving the position of each of the plurality of remote vehicles and a time at which the position of each of the plurality of remote vehicles was measured in a non-transitory memory. Performing the plurality of measurements can also include repeating the measuring and saving steps at predetermined intervals to accumulate a plurality of position measurements over time for each of the plurality of remote vehicles. Performing the plurality of measurements can also include determining a trajectory of each of the plurality of remote vehicles based at least in part on the plurality of position measurements over time.

[0006] In another aspect of the application, determining the optimal vehicle speed can further include training a plurality of pre-trained Gaussian Mixture Models (GMMs) using a plurality of training data. Each of the plurality of pre-trained GMMs is associated with one of a plurality of training optimal speeds. Determining the optimal vehicle speed can further include training a current observation GMM based at least in part on the trajectories of each of the plurality of remote vehicles. Determining the optimal vehicle speed can further include comparing the current observation GMM to the plurality of pre-trained GMMs. Determining the optimal vehicle speed can further include selecting a matching pre-trained GMM from the plurality of pre-trained GMMs that most closely matches the current observation GMM. Determining the optimal vehicle speed can further include determining the optimal vehicle speed based at least in part on one of the plurality of training optimal speeds associated with the matching pre-trained GMM.

[0007] In another aspect of the application, determining the optimal vehicle speed can further include receiving a desired speed range from an occupant of the vehicle. Determining the optimal vehicle speed can further include determining the optimal vehicle speed based at least in part on one of the plurality of training optimal speeds associated with the matching pre-trained GMM and the desired speed range.

[0008] In another aspect of the application, determining the optimal vehicle speed can further include training a current observation Gaussian Mixture Model (GMM) based at least in part on the trajectories of each of the plurality of remote vehicles. Determining the optimal vehicle speed can further include receiving a desired speed range from an occupant of the vehicle. Determining the optimal vehicle speed can further include executing an optimal speed determination machine learning algorithm. The optimal speed determination machine learning algorithm is configured to receive the current observation GMM, the desired speed range, and one or more speed decision algorithm inputs as inputs and provide the optimal vehicle speed as an output.

[0009] In another aspect of the application, determining the one or more speed decision algorithm inputs can further include determining a speed of a lead vehicle of the plurality of remote vehicles based at least in part on a plurality of measurements. The lead vehicle is located directly in front of the vehicle and in the same lane of travel as the vehicle. Determining the one or more speed decision algorithm inputs can further include determining the one or more speed decision algorithm inputs, wherein the one or more speed decision algorithm inputs comprise at least the speed of the lead vehicle.

[0010] In another aspect of the application, determining the one or more speed decision algorithm inputs can further include determining a speed of one or more adjacent vehicles of the plurality of remote vehicles based at least in part on a plurality of measurements. The one or more adjacent vehicles are located within a predetermined radius of the vehicle. The one or more adjacent vehicles are located in a different lane of travel than the vehicle. Determining the one or more speed decision algorithm inputs can further include determining the one or more speed decision algorithm inputs, wherein the one or more speed decision algorithm inputs comprise at least the speed of the one or more adjacent vehicles.

[0011] In another aspect of the application, determining the one or more speed decision algorithm inputs can further include determining a following distance of a rear vehicle of the plurality of remote vehicles based at least in part on the plurality of measurements. The rear vehicle is located directly behind the vehicle and in the same lane of travel as the vehicle. The following distance is a distance between the rear vehicle and the vehicle. Determining the one or more speed decision algorithm inputs can further include determining the one or more speed decision algorithm inputs, wherein the one or more speed decision algorithm inputs include at least the following distance.

[0012] In another aspect of the application, determining the one or more speed decision algorithm inputs can further include determining a current lane of travel of the vehicle based at least in part on the plurality of measurements. Determining the one or more speed decision algorithm inputs can further include determining the one or more speed decision algorithm inputs, wherein the one or more speed decision algorithm inputs include at least the current lane of travel of the vehicle.

[0013] In another aspect of the application, determining the one or more speed decision algorithm inputs can further include receiving one or more occupant inputs from an occupant of the vehicle. Determining the one or more speed decision algorithm inputs can further include determining the one or more speed decision algorithm inputs, wherein the one or more speed decision algorithm inputs include at least the one or more occupant inputs.

[0014] According to several aspects, the application provides a system for adaptive cruise control of a vehicle. The system can include a vehicle perception sensor, an autonomous driving system, and a controller in electrical communication with the vehicle perception sensor and the autonomous driving system. The controller is programmed to perform a plurality of measurements of an environment surrounding the vehicle using the vehicle perception sensor. The environment surrounding the vehicle includes a plurality of remote vehicles. The plurality of measurements includes a trajectory of each of the plurality of remote vehicles. The controller is further programmed to determine one or more speed decision algorithm inputs based at least in part on the plurality of measurements. The controller is further programmed to determine an optimal vehicle speed of the vehicle based at least in part on the one or more speed decision algorithm inputs. The controller is further programmed to control the vehicle using the autonomous driving system such that a speed of the vehicle is the optimal vehicle speed.

[0015] In another aspect of the application, to determine the optimal vehicle speed, the controller is further programmed to train the current observation GMM based at least in part on the trajectory of each of the plurality of remote vehicles and one or more speed decision algorithm inputs. To determine the optimal vehicle speed, the controller is further programmed to compare the current observation GMM to a plurality of pre-trained GMMs. Each of the plurality of pre-trained GMMs is associated with one of a plurality of training optimal speeds. To determine the optimal vehicle speed, the controller is further programmed to select a matching pre-trained GMM from the plurality of pre-trained GMMs that most closely matches the current observation GMM. To determine the optimal vehicle speed, the controller is further programmed to determine the optimal vehicle speed based at least in part on one of the plurality of training optimal speeds associated with the matching pre-trained GMM.

[0016] In another aspect of the application, to determine the optimal vehicle speed, the controller is further programmed to receive a desired speed range from an occupant of the vehicle. To determine the optimal vehicle speed, the controller is further programmed to determine the optimal vehicle speed based at least in part on one of the plurality of training optimal speeds associated with the matching pre-trained GMM and the desired speed range.

[0017] In another aspect of the application, to determine the optimal vehicle speed, the controller is further programmed to train the current observation GMM based at least in part on the trajectory of each of the plurality of remote vehicles. To determine the optimal vehicle speed, the controller is further programmed to receive a desired speed range from an occupant of the vehicle. To determine the optimal vehicle speed, the controller is further programmed to execute an optimal speed determination machine learning algorithm. The optimal speed determination machine learning algorithm is configured to receive as inputs the current observation GMM, the desired speed range, and one or more speed decision algorithm inputs, and provide as an output the optimal vehicle speed.

[0018] In another aspect of the application, to determine the one or more speed decision algorithm inputs, the controller is further programmed to determine a speed of a front vehicle in the plurality of remote vehicles based at least in part on the plurality of measurements. The front vehicle is directly in front of the vehicle and in the same lane of travel as the vehicle. To determine the one or more speed decision algorithm inputs, the controller is further programmed to determine a speed of one or more adjacent vehicles in the plurality of remote vehicles based at least in part on the plurality of measurements. The one or more adjacent vehicles are within a predetermined radius of the vehicle. The one or more adjacent vehicles are in a different lane of travel than the vehicle. To determine the one or more speed decision algorithm inputs, the controller is further programmed to determine a following distance of a rear vehicle in the plurality of remote vehicles based at least in part on the plurality of measurements. The rear vehicle is directly behind the vehicle and in the same lane of travel as the vehicle. The following distance is a distance between the rear vehicle and the vehicle. To determine the one or more speed decision algorithm inputs, the controller is further programmed to determine a current lane of travel of the vehicle. To determine the one or more speed decision algorithm inputs, the controller is further programmed to determine the one or more speed decision algorithm inputs, wherein the one or more speed decision algorithm inputs comprise at least the speed of the front vehicle, the speed of the one or more adjacent vehicles, the following distance, and the current lane of travel.

[0019] In another aspect of the application, to determine the one or more speed decision algorithm inputs, the controller is further programmed to receive one or more occupant inputs from an occupant of the vehicle. The one or more occupant inputs comprise at least a desired speed range. To determine the one or more speed decision algorithm inputs, the controller is further programmed to determine the one or more speed decision algorithm inputs, wherein the one or more speed decision algorithm inputs comprise at least the one or more occupant inputs.

[0020] In another aspect of the application, to control the vehicle using the autonomous driving system, the controller is further programmed to continuously monitor one or more occupant inputs from an occupant of the vehicle. To control the vehicle using the autonomous driving system, the controller is further programmed to command the autonomous driving system to control acceleration and braking of the vehicle based at least in part on the optimal vehicle speed and the one or more occupant inputs.

[0021] According to several aspects, the disclosure provides a method for adaptive cruise control of a vehicle. The method can include measuring, using vehicle perception sensors, a position of each of a plurality of remote vehicles. The method can also include saving, in a non-transitory memory, the position of each of the plurality of remote vehicles and a time at which the position of each of the plurality of remote vehicles was measured. The method can also include repeating the measuring and saving steps at predetermined intervals to accumulate multiple position measurements over time for each of the plurality of remote vehicles. The method can also include determining a trajectory of each of the plurality of remote vehicles based at least in part on the multiple position measurements over time for each of the plurality of remote vehicles. The trajectory of each of the plurality of remote vehicles includes at least a position, a velocity, an acceleration, and a jerk of each of the plurality of remote vehicles. The method can also include determining one or more speed decision algorithm inputs based at least in part on the trajectory of each of the plurality of remote vehicles. The method can also include determining an optimal vehicle speed of the vehicle based at least in part on the one or more speed decision algorithm inputs. The method can also include controlling the vehicle such that a speed of the vehicle is the optimal vehicle speed.

[0022] In another aspect of the disclosure, determining the one or more speed decision algorithm inputs can also include determining a speed of a front vehicle of the plurality of remote vehicles based at least in part on the trajectory of each of the plurality of remote vehicles. The front vehicle is located directly in front of the vehicle and in the same lane of travel as the vehicle. Determining the one or more speed decision algorithm inputs can also include determining a speed of one or more adjacent vehicles of the plurality of remote vehicles based at least in part on the trajectory of each of the plurality of remote vehicles. The one or more adjacent vehicles are located within a predetermined radius of the vehicle. The one or more adjacent vehicles are located in a different lane of travel than the vehicle. Determining the one or more speed decision algorithm inputs can also include determining a following distance of a rear vehicle of the plurality of remote vehicles based at least in part on the trajectory of each of the plurality of remote vehicles. The rear vehicle is located directly behind the vehicle and in the same lane of travel as the vehicle. The following distance is a distance between the rear vehicle and the vehicle. Determining the one or more speed decision algorithm inputs can also include determining a current lane of travel of the vehicle based at least in part on the trajectory of each of the plurality of remote vehicles. Determining the one or more speed decision algorithm inputs can also include determining the one or more speed decision algorithm inputs, wherein the one or more speed decision algorithm inputs include at least the speed of the front vehicle, the speed of the one or more adjacent vehicles, the following distance, and the current lane of travel.

[0023] In another aspect of the application, determining the optimal vehicle speed can further include training a plurality of pre-trained Gaussian Mixture Models (GMMs) using a plurality of training data. The plurality of training data includes a plurality of sets of training vehicle trajectories. Each set of the plurality of sets of training vehicle trajectories is labeled with one of a plurality of training optimal speeds. Determining the optimal vehicle speed can further include training a current observation GMM based at least in part on the trajectory of each of the plurality of remote vehicles and one or more speed decision algorithm inputs. Determining the optimal vehicle speed can further include comparing the current observation GMM to the plurality of pre-trained GMMs. Determining the optimal vehicle speed can further include selecting a matching pre-trained GMM from the plurality of pre-trained GMMs that most closely matches the current observation GMM. Determining the optimal vehicle speed can further include receiving a desired speed range from an occupant of the vehicle. Determining the optimal vehicle speed can further include determining the optimal vehicle speed based at least in part on one of the plurality of training optimal speeds associated with the matching pre-trained GMM and the desired speed range.

[0024] Further areas of application will become apparent from the description provided herein. It should be understood that the description and specific examples, while indicating exemplary aspects, are intended to be illustrative only and not limiting of the application. BRIEF DESCRIPTION OF DRAWINGS

[0025] The drawings described herein are for illustrative purposes only and are not intended to limit the scope of the application in any way.

[0026] Figure 1 is a schematic diagram of a system for adaptive cruise control for a vehicle in accordance with an example embodiment;

[0027] Figure 2 is a schematic diagram of an environment including a roadway and a plurality of remote vehicles in accordance with an example embodiment;

[0028] Figure 3 is a flowchart of a method for adaptive cruise control for a vehicle in accordance with an example embodiment;

[0029] Figure 4 is a flowchart of a first method for determining an optimal vehicle speed in accordance with an example embodiment; and

[0030] Figure 5 is a flowchart of a second method for determining an optimal vehicle speed in accordance with an example embodiment. DETAILED DESCRIPTION

[0031] The following description is merely exemplary in nature and is not intended to limit the application, application, or uses.

[0032] In aspects of the present invention, adaptive cruise control systems and methods are used to allow semi-automated driving of a vehicle, for example, on a highway. The present invention provides a new and improved system and method for adaptive cruise control of a vehicle, including determining an optimal vehicle speed for the vehicle based on a plurality of factors, including trajectories and behaviors of a plurality of remote vehicles in the vicinity of the vehicle.

[0033] Referring to Figure 1 A system for adaptive cruise control of a vehicle is shown, and the system is generally indicated by the reference numeral 10. The system 10 is shown with an exemplary vehicle 12. While a passenger vehicle is shown, it is to be understood that the vehicle 12 can be any type of vehicle without departing from the scope of the present invention. The system 10 generally includes a controller 14, vehicle perception sensors 16, and an autonomous driving system 18.

[0034] The controller 14 is used to implement a method 100 for adaptive cruise control of a vehicle, as described below. The controller 14 includes at least one processor 20 and a non-transitory computer readable storage device or medium 22. The processor 20 can be a custom or commercially available processor, a central processing unit (CPU), a graphics processing unit (GPU), a co-processor in a number of processors associated with the controller 14, a semiconductor-based microprocessor (in microchip or chipset form), a macroprocessor, a combination of the foregoing, or generally a device for executing instructions.

[0035] The computer readable storage device or medium 22 can include volatile and nonvolatile memory such as read-only memory (ROM), random-access memory (RAM), and keep-alive memory (KAM). KAM is a persistent or non-volatile memory that can be used to store various operating variables at power down of the processor 20. The computer readable storage device or medium 22 can be implemented using a number of storage devices such as a PROM (programmable read-only memory), an EPROM (erasable PROM), an EEPROM (electrically erasable PROM), flash memory, or another electric, magnetic, optical, or combination storage device capable of storing data, some of which represent executable instructions that can be executed by the controller 14 to control a variety of systems of the vehicle 12.

[0036] The controller 14 can also be comprised of a plurality of controllers in electrical communication with one another. The controller 14 can be interconnected with additional systems and / or controllers of the vehicle 12, allowing the controller 14 to access data such as speed, acceleration, braking, and steering angle of the vehicle 12.

[0037] The controller 14 is in electrical communication with the vehicle perception sensors 16. In an exemplary embodiment, the electrical communication is established using, for example, a CAN network, a FLEXRAY network, a local area network (e.g., WiFi, Ethernet, etc.), a serial peripheral interface (SPI) network, etc. It should be appreciated that various additional wired and wireless technologies and communication protocols for communicating with the controller 14 are within the scope of the present application. It should also be appreciated that electrical communication also includes electrical power and / or energy transfer between electrical devices (e.g., using wires and / or wireless power transfer technologies) is within the scope of the present application.

[0038] The vehicle perception sensors 16 are used to perceive objects in the environment 26 surrounding the vehicle 12. Further, the vehicle perception sensors 16 are used to measure distances between objects in the environment 26 and distances between the vehicle 12 and objects in the environment 26. In an exemplary embodiment, the vehicle perception sensors 16 include at least one of a video camera 28, a light detection and ranging (LiDAR) sensor 30, and an ultrasonic sensor 32.

[0039] The video camera 28 is used to capture images and / or video of the environment 26 surrounding the vehicle 12. In an exemplary embodiment, the video camera 28 includes one or more video cameras having a view of the environment 26 surrounding the vehicle 12. In a non-limiting example, the video camera 28 is fixed within the vehicle 12, for example, to the vehicle 12 roof liner or windshield, having a view through the windshield of the vehicle 12. In another non-limiting example, the video camera 28 is fixed externally to the vehicle 12, for example, to the roof of the vehicle 12, having a view of the environment 26 surrounding the vehicle 12.

[0040] In another exemplary embodiment, the video camera 28 includes a surround view camera system including multiple video cameras (also referred to as satellite cameras) arranged to provide a view of the environment 26 adjacent to all sides of the vehicle 12. In a non-limiting example, the video camera system includes a front-facing camera (e.g., mounted in the front grill of the vehicle 12), a rear-facing camera (e.g., mounted on the rear bumper of the vehicle 12), and two side-view cameras (e.g., mounted below each of the two side mirrors of the vehicle 12). In another non-limiting example, the video camera system also includes an additional rear view camera mounted near the center high mounted stop light of the vehicle 12.

[0041] It should be appreciated that video camera systems having additional video cameras and / or additional mounting locations are also within the scope of the present application. It should also be appreciated that the video camera 28 can include a stereo camera with distance measurement capability, an infrared camera, a thermal camera, and / or any other type of camera or image sensing device without departing from the scope of the present application. The video camera 28 is in electrical communication with the controller 14, as described above.

[0042] LiDAR sensor 30 is used for remote sensing and environmental mapping. LiDAR sensor 30 is used for remote sensing and environmental mapping by emitting laser pulses and measuring the time it takes for the laser pulses to return to LiDAR sensor 30 after hitting an object. In an exemplary embodiment, LiDAR sensor 30 includes a LiDAR laser source, a LiDAR scanner or mirror, a LiDAR photodetector, and a LiDAR time-of-flight measurement system. In a non-limiting example, the LiDAR laser source emits laser pulses that travel to a target area, and the LiDAR scanner directs these pulses in different directions. The emitted laser pulses interact with objects in the environment, and the reflections of the laser pulses are captured by the LiDAR photodetector. The LiDAR time-of-flight measurement system calculates the distance to the objects based on the time between the LiDAR laser source emitting the laser pulses and the LiDAR photodetector receiving the reflected laser pulses. LiDAR sensor 30 is in electrical communication with controller 14, as described above.

[0043] Ultrasonic sensor 32 is used to measure distances in environment 26 around vehicle 12. In an exemplary embodiment, ultrasonic sensor 32 includes an ultrasonic transducer and an ultrasonic receiver. The ultrasonic transducer emits ultrasonic pulses, and the ultrasonic receiver captures the ultrasonic pulses after they are reflected by an object. In a non-limiting example, the ultrasonic transducer emits ultrasonic waves, which bounce off an object and return to the ultrasonic receiver. Ultrasonic sensor 32 measures the time it takes for the ultrasonic pulses to travel from the ultrasonic transducer to the ultrasonic receiver and back, and calculates the distance based on the speed of sound in a given medium (e.g., air). Ultrasonic sensor 32 is in electrical communication with controller 14, as described above.

[0044] It should be appreciated that the foregoing discussion of camera 28, LiDAR sensor 30, and ultrasonic sensor 32 is merely exemplary in nature and that vehicle perception sensors 16 can include any number of additional or alternative sensors, including, for example, radar sensors, etc., without departing from the scope of the present disclosure.

[0045] The autonomous driving system 18 is configured to provide assistance to the occupants of the vehicle 12 to improve the awareness and / or control of the behavior of the vehicle 12 by the occupants. Within the scope of the present disclosure, the autonomous driving system 18 encompasses systems that provide any level of assistance to the occupants (e.g., blind spot warnings, lane departure warnings, etc.) as well as systems that are capable of autonomously driving the vehicle 12 under some or all conditions (e.g., automatic lane keeping, adaptive cruise control, fully autonomous driving, etc.). It should be understood that all levels of driving automation as defined by SAE J3016 (i.e., SAE LEVEL 0, SAE LEVEL 1, SAE LEVEL 2, SAE LEVEL 3, SAE LEVEL 4, and SAE LEVEL 5) are within the scope of the present disclosure.

[0046] In an exemplary embodiment, the autonomous driving system 18 is configured to detect and / or receive information about the environment 26 surrounding the vehicle 12 and process the information to provide assistance to the occupants. In some embodiments, the autonomous driving system 18 is a software module executing on the controller 14. In other embodiments, the autonomous driving system 18 includes a separate autonomous driving system controller similar to the controller 14 that is capable of processing information about the environment 26 surrounding the vehicle 12. In an exemplary embodiment, the autonomous driving system 18 can operate in a manual mode of operation, a partial autonomous mode of operation, and a full autonomous mode of operation.

[0047] Within the scope of the present disclosure, the manual mode of operation means that the autonomous driving system 18 provides warnings or notifications to the occupants but does not directly intervene or control the vehicle 12. In a non-limiting example, the autonomous driving system 18 receives information from the vehicle perception sensors 16. Using, for example, computer vision techniques, the autonomous driving system 18 understands the environment 26 surrounding the vehicle 12 and provides assistance to the occupants. For example, if the autonomous driving system 18 identifies that the vehicle 12 can collide with a remote vehicle based on data from the vehicle perception sensors 16, the autonomous driving system 18 can provide a warning to the occupants using a display.

[0048] Within the scope of the present disclosure, the partially autonomous mode of operation means that the autonomous driving system 18 provides warnings or notifications to the occupant and can directly intervene or control the vehicle 12 in certain situations. In a non-limiting example, the autonomous driving system 18 is additionally in electrical communication with components of the vehicle 12, such as the braking system, propulsion system, and / or steering system of the vehicle 12, such that the autonomous driving system 18 can control the behavior of the vehicle 12. In a non-limiting example, the autonomous driving system 18 can control the behavior of the vehicle 12 by applying brakes to the vehicle 12 to avoid an impending collision. In another non-limiting example, the autonomous driving system 18 can control the steering system of the vehicle 12 to provide an automatic lane-keeping feature. In another non-limiting example, the autonomous driving system 18 can control the braking system, propulsion system, and steering system of the vehicle 12 to temporarily drive the vehicle 12 toward a predetermined destination. However, intervention by the occupant can be required at any time. In an example embodiment, the autonomous driving system 18 can include additional components, such as an eye-tracking device configured to monitor the attention level of the occupant and ensure that the occupant is ready to take over control of the vehicle 12.

[0049] Within the scope of the present disclosure, the fully autonomous mode of operation means that the autonomous driving system 18 uses data from the vehicle perception sensors 16 to understand the environment 26 and control the vehicle 12 to drive the vehicle 12 to a predetermined destination without requiring control or intervention by the occupant.

[0050] The autonomous driving system 18 operates using a path planning algorithm that is configured to generate safe and efficient trajectories for the vehicle 12 to navigate in the environment surrounding the vehicle 12. In an example embodiment, the path planning algorithm is a machine learning algorithm that is trained to output control signals for the vehicle 12 based on input data collected from the vehicle perception sensors 16. In another example embodiment, the path planning algorithm is a deterministic algorithm that has been programmed to output control signals for the vehicle 12 based on data collected from the vehicle perception sensors 16.

[0051] In a non-limiting example, the path planning algorithm generates a series of path points or continuous paths that the vehicle 12 should follow to reach the destination while adhering to rules, regulations, and safety constraints. The sequence of path points or continuous paths is generated based at least in part on a detailed map and the current state of the vehicle 12 (i.e., the location, speed, and direction of the vehicle 12). The detailed map includes, for example, information about lane boundaries, road geometry, speed limits, traffic signs, and / or other relevant features. In an example embodiment, the detailed map is stored in the medium 22 of the controller 14 and / or on a remote database or server. In another example embodiment, the path planning algorithm performs perception and mapping tasks to interpret data collected from the vehicle perception sensors 16 and create, update, and / or supplement the detailed map.

[0052] It should be appreciated that the autonomous driving system 18 can include any software and / or hardware modules configured to operate in a manual mode of operation, a partially autonomous mode of operation, or a fully autonomous mode of operation as described above. The autonomous driving system 18 is in electrical communication with the controller 14, as described above.

[0053] Referring to Figure 2 , a schematic view of an environment 26 including a roadway 40 and a plurality of remote vehicles 42 is shown. In an example embodiment, the roadway 40 includes a first travel lane 44a, a second travel lane 44b, a third travel lane 44c, and a fourth travel lane 44d. In a non-limiting example, the vehicle 12 is positioned on the third travel lane 44c. The plurality of remote vehicles 42 includes a leading vehicle 42a positioned directly in front of the vehicle 12 and on the same travel lane as the vehicle 12 (i.e., the third travel lane 44c). The plurality of remote vehicles 42 also includes one or more adjacent vehicles 42b positioned within a predetermined radius 46 of the vehicle 12 and on a different travel lane than the vehicle 12 (i.e., the first travel lane 44a, the second travel lane 44b, or the fourth travel lane 44d). The plurality of remote vehicles 42 also includes a trailing vehicle 42c positioned directly behind the vehicle 12 and on the same travel lane as the vehicle 12 (i.e., the third travel lane 44c). A following distance 48 is defined as the distance between the trailing vehicle 42c and the vehicle 12.

[0054] Referring to Figure 3 , a flowchart of a method 100 for adaptive cruise control for a vehicle is provided. The method 100 begins at block 102 and proceeds to block 104. At block 104, the controller 14 uses the vehicle perception sensors 16 to measure a position of each of the plurality of remote vehicles 42. In a non-limiting example, the controller 14 uses the LiDAR sensor 30 to measure a position of each of the plurality of remote vehicles 42 relative to the vehicle 12. In another non-limiting example, the controller 14 uses the camera 28 to capture a plurality of images of the plurality of remote vehicles 42 and processes the plurality of images using computer vision algorithms to determine a position of each of the plurality of remote vehicles 42 relative to the vehicle 12. It should be appreciated that the controller 14 can also use the vehicle perception sensors 16 to perceive, measure, and / or understand additional relevant objects in the environment 26, including, for example, road signs, road edges, lane lines, etc. After block 104, the method 100 proceeds to block 106.

[0055] At block 106, the controller 14 saves the position of each of the plurality of remote vehicles 42 measured at block 104 in the medium 22 of the controller 14. In addition, the controller 14 saves the time at which the position of each of the plurality of remote vehicles 42 was measured in the medium 22. In an exemplary embodiment, the controller 14 repeats the measurement step at block 104 and the saving step at block 106 at predetermined intervals (e.g., every second) in order to accumulate multiple position measurements over time for each of the plurality of remote vehicles 42 in the medium 22.

[0056] In an exemplary embodiment, if the environment 26 is sparsely populated with vehicles, historical data for the roadway 40 acquired using crowdsourcing and / or a process similar to blocks 104 and 106 can be used to accumulate multiple historical position measurements over time for an average vehicle on the roadway 40. In subsequent steps of the method 100, the multiple historical position measurements over time can be used in place of the multiple position measurements over time for each of the plurality of remote vehicles 42. After block 106, the method 100 proceeds to block 108.

[0057] At block 108, the controller 14 determines a trajectory for each of the plurality of remote vehicles 42. In an exemplary embodiment, the trajectory for each of the plurality of remote vehicles 42 includes at least the position, velocity (i.e., first derivative of position), acceleration (i.e., second derivative of position), and jerk (i.e., third derivative of position) of each of the plurality of remote vehicles 42. It should be appreciated that additional higher order derivatives of position can also be included in the trajectory without departing from the scope of the present application. In an exemplary embodiment, to determine the trajectory, at block 106, the controller 14 analyzes the multiple position measurements over time for each of the plurality of remote vehicles 42 saved in the medium 22. In a non-limiting example, the trajectory for each of the plurality of remote vehicles 42 is saved in the medium 22 and is continuously updated as updated position measurements are received at block 104. After block 108, the method 100 proceeds to blocks 110, 112, 114, 116, and 118 to determine one or more speed decision algorithm inputs. Within the scope of the present application, the one or more speed decision algorithm inputs are data, information, or observations used to determine an optimal speed for the vehicle 12, which will be discussed in greater detail below.

[0058] Referring again to Figure 2 and continuing to refer to Figure 3At block 110, the controller 14 determines a speed of the lead vehicle 42a based at least in part on the trajectory of each of the plurality of remote vehicles 42 (and thus the lead vehicle 42a). The speed of the lead vehicle 42a is one of the one or more speed decision algorithm inputs relevant to determining the optimal speed of the vehicle 12. For example, the optimal speed of the vehicle 12 should be determined to be less than or equal to the speed of the lead vehicle 42a in order to maintain a comfortable following distance between the lead vehicle 42a and the vehicle 12. After block 110, the method 100 proceeds to block 120, which will be discussed in more detail below.

[0059] At block 112, the controller 14 determines a speed of the one or more adjacent vehicles 42b based at least in part on the trajectory of each of the plurality of remote vehicles 42 (and thus the one or more adjacent vehicles 42b). The speed of the one or more adjacent vehicles 42b is one of the one or more speed decision algorithm inputs relevant to determining the optimal speed of the vehicle 12. For example, the optimal speed of the vehicle 12 should be determined to minimize the time that the vehicle 12 lingers within the blind spot of the one or more adjacent vehicles 42b. In another example, the optimal speed of the vehicle 12 should be determined to be relatively similar to the speed of the one or more adjacent vehicles 42b such that the optimal speed of the vehicle 12 is commensurate with the traffic flow on the roadway 40. After block 112, the method 100 proceeds to block 120, which will be discussed in more detail below.

[0060] At block 114, the controller 14 determines a following distance 48 of a trailing vehicle 42c based at least in part on the trajectory of each of the plurality of remote vehicles 42 (and thus the trailing vehicle 42c, e.g., the position of the trailing vehicle 42c relative to the vehicle 12). The speed of the trailing vehicle 42c is one of the one or more speed decision algorithm inputs relevant to determining the optimal speed of the vehicle 12. For example, if the following distance 48 is below a following distance threshold, the trailing vehicle 42c can be considered to be riding the bumper of the vehicle 12 and thus the optimal speed of the vehicle 12 can be temporarily increased to alleviate the bumper riding phenomenon. It will be appreciated that the following distance threshold can be a fixed threshold (e.g., twenty meters) or a variable threshold that is a function of the speed of the vehicle 12 (e.g., the speed of the vehicle in kilometers per hour divided by 1.2 to provide a three second following distance threshold in meters). After block 114, the method 100 proceeds to block 120, which will be discussed in more detail below.

[0061] At block 116, the controller 14 determines a current lane of travel of the vehicle 12 based at least in part on measurements performed using the vehicle perception sensors 16 and / or additional vehicle sensors. For example, the vehicle perception sensors 16 can include a camera, a radar sensor, a lidar sensor, and / or the like. The vehicle perception sensors 16 can be configured to detect lane markings, other vehicles, and / or the like. The vehicle perception sensors 16 can be configured to determine a current lane of travel of the vehicle 12 based at least in part on the detected lane markings, other vehicles, and / or the like. For example, the vehicle perception sensors 16 can determine that the vehicle 12 is currently traveling in the third lane of travel 44c. After block 116, the method 100 proceeds to block 120, which will be discussed in more detail below. Figure 2The current lane of travel of vehicle 12 is one of the one or more speed decision algorithm inputs relevant to determining the optimal speed of vehicle 12. For example, the optimal speed of vehicle 12 is determined based at least in part on the regulations or prevailing usage of the current lane of travel. In a non-limiting example, if the current lane of travel is a passing lane (i.e., a lane used to overtake slower vehicles), the optimal speed of vehicle 12 should be relatively high. If the current lane of travel is a slow lane (i.e., a lane for slower vehicles to travel), the optimal speed of vehicle 12 should be relatively low. After block 116, method 100 proceeds to block 120, which is discussed in greater detail below.

[0062] The current lane of travel of vehicle 12 is one of the one or more speed decision algorithm inputs relevant to determining the optimal speed of vehicle 12. For example, the optimal speed of vehicle 12 is determined based at least in part on the regulations or prevailing usage of the current lane of travel. In a non-limiting example, if the current lane of travel is a passing lane (i.e., a lane used to overtake slower vehicles), the optimal speed of vehicle 12 should be relatively high. If the current lane of travel is a slow lane (i.e., a lane for slower vehicles to travel), the optimal speed of vehicle 12 should be relatively low. After block 116, method 100 proceeds to block 120, which is discussed in greater detail below.

[0063] In an example embodiment, the one or more occupant inputs include at least a desired speed range. Within the scope of the present disclosure, the desired speed range is a range of cruise speeds of vehicle 12 requested by the occupant. In some examples, the desired speed range is defined between fixed boundaries (e.g., between ninety and one hundred kilometers per hour). In some examples, the desired speed range is defined relative to the speed of surrounding traffic (i.e., the plurality of remote vehicles 42). In some examples, the desired speed range is defined relative to the posted speed limit of roadway 40.

[0064] In a non-limiting example, the desired speed range can be expressed as slower than surrounding traffic (e.g., ten kilometers per hour slower than the average speed of surrounding traffic), comparable to surrounding traffic (e.g., equal to the average speed of surrounding traffic), or faster than surrounding traffic (e.g., ten kilometers per hour faster than the average speed of surrounding traffic). The desired speed range can also include a minimum and / or maximum speed permitted by the occupant. In some examples, the minimum and / or maximum speed is defined as a fixed amount relative to the desired speed range (e.g., plus or minus ten kilometers per hour relative to the desired speed range). In some examples, the minimum and / or maximum speed is defined as a percentage relative to the desired speed range (e.g., plus or minus ten percent of the desired speed range).

[0065] In an example embodiment, one or more occupant inputs are received using an accelerator and / or brake pedal of the vehicle 12. In a non-limiting example, actuation of the brake pedal indicates a decrease in the desired speed range or deactivation of the system 10, while actuation of the accelerator pedal indicates an increase in the desired speed range. In another example embodiment, one or more occupant inputs are received using physical buttons and / or software buttons or other input devices (e.g., steering wheel buttons, turn signal lever, foot pedals, gear shift lever, etc.) located within the occupant compartment of the vehicle 12. In a non-limiting example, one or more occupant inputs are received using electrical buttons and / or electromechanical buttons located on the steering wheel of the vehicle 12. In another non-limiting example, one or more occupant inputs are received using voice recognition (i.e., receiving and interpreting voice commands issued by an occupant of the vehicle 12), gesture recognition (i.e., sensing and interpreting physical gestures performed by an occupant of the vehicle 12), etc.

[0066] In another example embodiment, one or more occupant inputs are received via occupant interaction with a display (e.g., an instrument display, an infotainment display, etc.) within the vehicle 12. In a non-limiting example, the display provides a user interface that prompts the occupant to select a desired speed range as well as a minimum and / or maximum speed. It should be appreciated that additional systems and methods for occupant interaction to provide the desired speed range as well as the minimum and / or maximum speed to the controller 14 are within the scope of the present disclosure. The one or more occupant inputs are one of one or more speed decision algorithm inputs related to determining an optimal speed for the vehicle 12. After block 118, the method 100 proceeds to block 120.

[0067] At block 120, the controller 14 trains a current observation Gaussian mixture model (GMM) based at least in part on the trajectory of each of the plurality of remote vehicles 42 determined at block 108 and the one or more speed decision algorithm inputs determined at blocks 110, 112, 114, 116, and 118. It is within the scope of the present disclosure that the current observation GMM is a probabilistic model for grouping and representing the plurality of remote vehicles 42 based on the trajectory of each of the plurality of remote vehicles 42 determined at block 108 and the one or more speed decision algorithm inputs. In an example embodiment, the current observation GMM includes a mixture of a plurality of Gaussian distributions.

[0068] Each of the plurality of Gaussian distributions is defined by a mean vector, a covariance matrix, and a set of mixing coefficients that determine a weight of each of the plurality of Gaussian distributions in the current observation GMM. The current observation GMM is trained using, for example, an expectation maximization (EM) algorithm that iteratively adjusts the mean vector, the covariance matrix, and the mixing coefficients of each of the plurality of Gaussian distributions until the current observation GMM optimally represents the environment 26 based on the trajectories of each of the plurality of remote vehicles 42 and the one or more speed decision algorithm inputs.

[0069] In one non-limiting example, subgroups within the plurality of remote vehicles 42 that have similarities in terms of trajectories and / or speed decision algorithm inputs are identified. Each subgroup is represented by one of a plurality of Gaussian distributions, and the mean vector, the covariance matrix, and the mixing coefficients of each of the plurality of Gaussian distributions are iteratively adjusted until the current observation GMM optimally represents the environment 26. After block 120, the method 100 proceeds to block 122.

[0070] At block 122, the controller 14 determines an optimal vehicle speed for the vehicle 12. Methods for determining the optimal vehicle speed for the vehicle 12 are discussed in greater detail below. After block 122, the method 100 proceeds to block 124.

[0071] At block 124, the controller 14 controls the vehicle such that the speed of the vehicle 12 is the optimal vehicle speed determined at block 122. In one example embodiment, the controller 14 uses the autonomous driving system 18 to control acceleration and braking of the vehicle 12 in order to maintain the optimal vehicle speed. In another example embodiment, the controller 14 continuously monitors one or more occupant inputs and uses the autonomous driving system 18 to control acceleration and braking of the vehicle 12 in order to maintain the optimal vehicle speed based at least in part on the one or more occupant inputs. In one non-limiting example, if an occupant actuates a brake pedal of the vehicle 12, the controller 14 commands the autonomous driving system 18 to reduce the speed of the vehicle 12 or disables the autonomous driving system 18 such that the occupant manually controls the speed of the vehicle 12.

[0072] In an example embodiment, the controller 14 suggests increasing the level of automation based at least in part on one or more speed decision algorithm inputs, one or more occupant inputs, and / or a trajectory of each of the plurality of remote vehicles 42. In a non-limiting example, if the current lane of travel is a slow lane, the controller 14 suggests activating a partial autonomous mode of operation of the autonomous driving system 18 to autonomously perform a lane change maneuver. In another non-limiting example, if an occupant activates a turn signal of the vehicle 12, the controller 14 suggests activating a partial autonomous mode of operation of the autonomous driving system 18 to autonomously perform a lane change maneuver. In a non-limiting example, the controller 14 prompts and / or notifies the occupant using a display or other human interface device (HID) prior to entering the increased level of automation. After block 124, the method 100 proceeds to the standby state at block 126.

[0073] In an example embodiment, the controller 14 repeatedly exits the standby state 126 and restarts the method 100 at block 102. In a non-limiting example, the controller 14 exits the standby state 126 and restarts the method 100 on a timer, e.g., every three hundred milliseconds.

[0074] Referring to Figure 4 , a flowchart of a first example embodiment 122a of block 122 (i.e., a first method for determining an optimal vehicle speed) is shown. The first example embodiment 122a of block 122 begins at block 402. At block 402, a plurality of pre-trained Gaussian Mixture Models (GMMs) are trained. In an example embodiment, the plurality of pre-trained GMMs are trained using a plurality of training data. In a non-limiting example, the plurality of training data includes a plurality of sets of training vehicle trajectories and training speed decision algorithm inputs. Each of the plurality of sets of training vehicle trajectories and training speed decision algorithm inputs is labeled with one of a plurality of training optimal speeds.

[0075] In an example embodiment, the plurality of training data is collected by a training vehicle (not shown) equipped with sensors similar to the vehicle 12 (i.e., the vehicle perception sensors 16) and occupied by a human occupant. As the training vehicle is driven, the training vehicle collects the plurality of sets of training vehicle trajectories and training speed decision algorithm inputs and records a training optimal speed corresponding to each set of training vehicle trajectories and training speed decision algorithm inputs. It should be appreciated that additional methods for obtaining the plurality of training data, including, for example, crowdsourcing, computer simulation, etc., are within the scope of the present disclosure.

[0076] In an example embodiment, each of the plurality of pre-trained GMMs is trained using a plurality of sets of training vehicle trajectories and training speed decision algorithm inputs corresponding to one of a plurality of training optimal speeds. In a non-limiting example, the plurality of pre-trained GMMs includes a first pre-trained GMM trained for a first optimal speed (e.g., one hundred kilometers per hour), a second pre-trained GMM trained for a second optimal speed (e.g., one hundred ten kilometers per hour), and a third pre-trained GMM trained for a third optimal speed (e.g., one hundred twenty kilometers per hour). Accordingly, each of the plurality of pre-trained GMMs is associated with one of the plurality of training optimal speeds.

[0077] In an example embodiment, each of the plurality of pre-trained GMMs includes a mixture of a plurality of Gaussian distributions. Each of the plurality of Gaussian distributions is defined by a mean vector, a covariance matrix, and a set of mixing coefficients that determine a weight of each of the plurality of Gaussian distributions in each of the plurality of pre-trained GMMs. Each of the plurality of pre-trained GMMs is trained using, for example, an expectation maximization (EM) algorithm that iteratively adjusts the mean vector, the covariance matrix, and the mixing coefficients of each of the plurality of Gaussian distributions until each of the plurality of pre-trained GMMs optimally represents each set of training vehicle trajectories and training speed decision algorithm inputs labeled with one of the plurality of training optimal speeds.

[0078] In a non-limiting example, a sub-group within each set of training vehicle trajectories and training speed decision algorithm inputs having a similarity in trajectories and / or speed decision algorithm inputs is identified. Each sub-group is represented by one of the plurality of Gaussian distributions, and the mean vector, the covariance matrix, and the mixing coefficients of each of the plurality of pre-trained GMMs accurately represent each set of training vehicle trajectories and training speed decision algorithm inputs labeled with one of the plurality of training optimal speeds.

[0079] In an example embodiment, the plurality of pre-trained GMMs is trained using the controller 14 of the system 10. In another example embodiment, the plurality of pre-trained GMMs is trained using an external system (e.g., a cloud-based server or other computing device). In a non-limiting example, the plurality of pre-trained GMMs is transferred to the controller 14 and stored in the medium 22 of the controller 14. After block 402, the first example embodiment 122a of block 122 proceeds to block 404.

[0080] At block 404, the controller 14 selects a matching pre-trained GMM from the plurality of pre-trained GMMs trained at block 402. In an example embodiment, to select the matching pre-trained GMM, the controller 14 compares the current observed GMM trained at block 120 to the plurality of pre-trained GMMs trained at block 402. In an example embodiment, to compare the current observed GMM to the plurality of pre-trained GMMs, the controller 14 uses a probability comparison method, such as KL divergence, Bhattacharyya distance, Hellinger distance, Earth Mover's Distance (EMD) / Wasserstein distance, likelihood ratio test, overlap integral, component matching, entropy-based measures, log-likelihood comparison, log-likelihood ratio test, etc. The matching pre-trained GMM is selected as the one that most closely matches the current observed GMM from the plurality of pre-trained GMMs. Within the scope of the present disclosure, most closely matching means that the matching pre-trained GMM has the highest statistical correlation to the current observed GMM relative to each of the plurality of pre-trained GMMs. After block 404, the first example embodiment 122a of block 122 proceeds to block 406.

[0081] At block 406, the controller 14 determines an optimal vehicle speed based at least in part on the matching pre-trained GMM. In an example embodiment, the optimal vehicle speed is determined as one of the plurality of training optimal speeds associated with the matching pre-trained GMM. In an example embodiment, the optimal vehicle speed is further determined based at least in part on the desired speed range determined at block 118. In a non-limiting example, if one of the plurality of training optimal speeds associated with the matching pre-trained GMM is significantly different (e.g., difference greater than or equal to twenty percent) from the desired speed range, the occupant is notified. In another non-limiting example, if one of the plurality of training optimal speeds associated with the matching pre-trained GMM is significantly different from the desired speed range, the system 10 is disabled. After block 406, the first example embodiment 122a of block 122 ends, and the method 100 continues as described above.

[0082] Referring to Figure 5A flowchart showing a second exemplary embodiment 122b of block 122 (i.e., a second method for determining an optimal vehicle speed) is shown. The second exemplary embodiment 122b of block 122 begins at block 502. At block 502, the controller 14 executes an optimal speed determination machine learning algorithm to determine an optimal vehicle speed. In one non-limiting example, the optimal speed determination machine learning algorithm includes multiple layers, including an input layer and an output layer, and one or more hidden layers. The input layer receives as input the current observation GMM trained at block 120, the desired speed range determined at block 118, and the one or more speed decision algorithm inputs determined at blocks 110-118. The inputs are then passed to the hidden layers. Each hidden layer applies a transformation (e.g., a non-linear transformation) to the data and passes the result to the next hidden layer until passed to the last hidden layer. The output layer outputs the optimal vehicle speed.

[0083] To train the optimal speed determination machine learning algorithm, an input dataset and its corresponding optimal vehicle speeds are used. The algorithm is trained by adjusting the internal weights between nodes in each hidden layer to minimize the prediction error. During training, an optimization technique (such as gradient descent) is used to adjust the internal weights to reduce the prediction error. The training process is repeated for the entire dataset until the prediction error is minimized, and then the resulting trained model is used to process new input data.

[0084] After the optimal speed determination machine learning algorithm is sufficiently trained, the algorithm is able to determine an optimal vehicle speed based on the current observation GMM trained at block 120, the desired speed range determined at block 118, and the one or more speed decision algorithm inputs determined at blocks 110-118. By adjusting the weights between nodes in each hidden layer during training, the algorithm “learns” to recognize patterns in the input data that are indicative of an optimal vehicle speed. After block 502, the second exemplary embodiment 122b of block 122 ends, and the method 100 continues as described above.

[0085] The system 10 and method 100 of the present application provide several advantages. By taking into account the speed of the leading vehicle 42a, the speed of one or more adjacent vehicles 42b, the following distance of the trailing vehicle 42c, the current lane of travel, and one or more occupant inputs in determining an optimal vehicle speed for the vehicle 12, the system 10 and method 100 provide a comprehensive consideration of the conditions surrounding the vehicle. By using a Gaussian mixture model to characterize the trajectories of a plurality of remote vehicles 42, a large amount of data is efficiently aggregated and represented in a statistical manner for interpretation or further processing by the optimal speed determination machine learning algorithm. Overall, the system 10 and method 100 of the present application allow for an optimal vehicle speed for the vehicle 12 to be determined based on a plurality of factors, including the behavior of a plurality of remote vehicles 42 in the vicinity of the vehicle 12.

[0086] The description of the application is merely exemplary in nature and variations that do not depart from the spirit and scope of the application are intended to be within the scope of the application. Such variations are not to be regarded as a departure from the spirit and scope of the application.

Claims

1. A method for adaptive cruise control of a vehicle, comprising: performing a plurality of measurements of an environment surrounding the vehicle using vehicle perception sensors, wherein the environment surrounding the vehicle includes a plurality of remote vehicles; determining one or more speed decision algorithm inputs based at least in part on the plurality of measurements; determining an optimal vehicle speed for the vehicle based at least in part on the one or more speed decision algorithm inputs; and controlling the vehicle such that a speed of the vehicle is the optimal vehicle speed.

2. The method of claim 1, wherein, performing the plurality of measurements further comprises: measuring a position of each of the plurality of remote vehicles using the vehicle perception sensors; saving the position of each of the plurality of remote vehicles and a time at which the position of each of the plurality of remote vehicles was measured in a non-transitory memory; repeating the measuring and saving steps at predetermined intervals so as to accumulate a plurality of position measurements over time for each of the plurality of remote vehicles; and determining a trajectory of each of the plurality of remote vehicles based at least in part on the plurality of position measurements over time.

3. The method of claim 2, wherein, determining the optimal vehicle speed further comprises: training a plurality of pre-trained Gaussian Mixture Models (GMMs) using a plurality of training data, wherein each of the plurality of pre-trained GMMs is associated with one of a plurality of training optimal speeds; training a current observation GMM based at least in part on the trajectory of each of the plurality of remote vehicles; comparing the current observation GMM to the plurality of pre-trained GMMs; selecting a matching pre-trained GMM from the plurality of pre-trained GMMs that most closely matches the current observation GMM; and determining the optimal vehicle speed based at least in part on one of the plurality of training optimal speeds associated with the matching pre-trained GMM.

4. The method of claim 3, wherein, determining the optimal vehicle speed further comprises: receiving a desired speed range from an occupant of the vehicle; and determining the optimal vehicle speed based at least in part on one of a plurality of training optimal speeds associated with the matching pre-trained GMM and the desired speed range.

5. The method of claim 2, wherein, determining the optimal vehicle speed further comprises: training a current observation Gaussian Mixture Model (GMM) based at least in part on the trajectory of each of the plurality of remote vehicles; receiving a desired speed range from an occupant of the vehicle; and executing an optimal speed determination machine learning algorithm, wherein the optimal speed determination machine learning algorithm is configured to receive as inputs the current observation GMM, the desired speed range, and the one or more speed decision algorithm inputs and provide as an output the optimal vehicle speed.

6. The method of claim 1, wherein, determining the one or more speed decision algorithm inputs further comprises: determining a speed of a lead vehicle of the plurality of remote vehicles based at least in part on the plurality of measurements, wherein the lead vehicle is directly in front of the vehicle and in the same lane of travel as the vehicle; and determining the one or more speed decision algorithm inputs, wherein the one or more speed decision algorithm inputs include at least the speed of the lead vehicle.

7. The method of claim 1, wherein, determining the one or more speed decision algorithm inputs further comprises: determining, based at least in part on the plurality of measurements, a speed of one or more adjacent vehicles of the plurality of remote vehicles, wherein the one or more adjacent vehicles are within a predetermined radius of the vehicle, and wherein the one or more adjacent vehicles are on a different lane of travel than the vehicle; and determining the one or more speed decision algorithm inputs, wherein the one or more speed decision algorithm inputs comprise at least the speed of the one or more adjacent vehicles.

8. The method of claim 1, wherein, determining the one or more speed decision algorithm inputs further comprises: determining, based at least in part on the plurality of measurements, a following distance of a trailing vehicle of the plurality of remote vehicles, wherein the trailing vehicle is directly behind the vehicle and on the same lane of travel as the vehicle, and wherein the following distance is a distance between the trailing vehicle and the vehicle; and determining the one or more speed decision algorithm inputs, wherein the one or more speed decision algorithm inputs comprise at least the following distance.

9. The method of claim 1, wherein, determining the one or more speed decision algorithm inputs further comprises: determining, based at least in part on the plurality of measurements, a current lane of travel of the vehicle; and determining the one or more speed decision algorithm inputs, wherein the one or more speed decision algorithm inputs comprise at least the current lane of travel of the vehicle.

10. The method of claim 1, wherein, determining the one or more speed decision algorithm inputs further comprises: receiving one or more occupant inputs from an occupant of the vehicle; and determining the one or more speed decision algorithm inputs, wherein the one or more speed decision algorithm inputs comprise at least the one or more occupant inputs.