Vehicle system and method for probabilistic maneuver prediction
By combining the tuning parameter calculation of vehicle state and situational state variables, the driver's expected manipulation is accurately identified, and the problem of difficult to predict human driver behavior in the prior art is solved, and the adaptive path adjustment and safety improvement of the vehicle system are achieved.
Patent Information
- Application Number
- CN202311339631.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-06-12
- Filing Date
- 2023-10-16
- Publication Date
- 2024-12-13
AI Technical Summary
The prior art is difficult to accurately predict the manipulation behavior of human drivers in complex environments, making it difficult for assisted driving systems to provide effective assistance in the face of traffic, road conditions and obstacles.
Through the combination of vehicle state variables and situational state variables, the probability of potential manipulation is calculated using tuning parameters, and the driver's expected manipulation is identified based on the adjusted probability, automatically updating the vehicle path prediction or generating notifications.
Improves the accuracy and user experience of assisted driving systems, ensuring that the vehicle can adaptively adjust paths in complex environments, avoid potential hazards and improve passenger comfort.
Smart Images

Figure CN119116990A_ABST
Abstract
Description
[0001] The technical field relates generally to vehicle systems, and more particularly to using environmental and situational variables to probabilistically and adaptively predict maneuvers that a human driver is likely to perform. Background Art
[0002] Modern vehicles include various enhanced or advanced features to support human drivers in operating the vehicle. For example, many vehicles are capable of sensing their environment and facilitating navigation with little or no user input. In this regard, autonomous vehicles or other vehicles capable of supporting an autonomous mode of operation use sensing devices such as radar, lidar, image sensors, etc. to sense their environment. Autonomous vehicle systems also use information from global positioning system (GPS) technology, navigation systems, vehicle-to-vehicle communications, vehicle-to-infrastructure technology, and / or drive-by-wire systems to navigate the vehicle.
[0003] Vehicle automation has been classified into numerical levels ranging from zero, corresponding to no automation with full human control, to five, corresponding to full automation with no human control. Various automatic driver assistance systems (such as cruise control, adaptive cruise control, and parking assistance systems) correspond to lower levels of automation, while true "driverless" vehicles correspond to higher levels of automation.
[0004] Due to a large number of different variables in the real world environment, autonomous vehicle control systems may encounter environments or scenarios that may require assistance. The ability to predict in advance the maneuvers that a human driver is about to perform provides an opportunity to improve driver assistance systems. However, traffic, road conditions, and other obstacles or scenarios that may create environments or scenarios that may require assistance also complicate the ability to predict what a human driver may do in response to the environment or scenario. Therefore, it is desirable to provide a vehicle control system and method that can reliably predict human driving behavior to improve the user experience. Summary of the invention
[0005] A device for a vehicle and a related method and vehicle system are provided. A method for assisting the operation of a vehicle involves a control module associated with the vehicle, which obtains corresponding current values of corresponding vehicle state variables for multiple vehicle state variables; obtains one or more context state variables corresponding to a current operating context of the vehicle; determines corresponding probabilities of the potential maneuvers based on the corresponding current values of the multiple vehicle state variables and one or more tuning parameters associated with corresponding combinations of potential maneuvers and corresponding vehicle state variables in multiple potential maneuvers of the vehicle, and obtains multiple probabilities of the potential maneuvers corresponding to the multiple vehicle state variables; determines a combined probability of the potential maneuvers based at least in part on the multiple probabilities of the potential maneuvers corresponding to the multiple vehicle state variables; determines an adjusted probability of the potential maneuvers based at least in part on the combined probability and one or more context state variables corresponding to the current operating context of the vehicle; identifies the potential maneuvers as intended maneuvers to be performed by a driver of the vehicle based on the adjusted probabilities; and automatically initiates one or more actions in a manner affected by the intended maneuvers.
[0006] In one or more implementations, obtaining one or more contextual state variables corresponding to a current operating context of a vehicle involves: obtaining current values of one or more contextual state variables that characterize a current environment around the vehicle at a current location at a current point in time. In other implementations, the method involves adjusting a first tuning parameter of one or more tuning parameters associated with a corresponding combination of a first maneuver and a first vehicle state variable based on at least one of a driving style and a behavior associated with a driver. In a further implementation, adjusting the first tuning parameter involves adjusting the first tuning parameter to weaken the first vehicle state variable when the first vehicle state variable is not relevant to the first maneuver based on a relationship between historical values of the first vehicle state variable and historical maneuvers associated with the driver. In another implementation, adjusting the first tuning parameter involves adjusting the first tuning parameter to increase the weight of the first vehicle state variable when the first vehicle state variable is relevant to the first maneuver based on a relationship between historical values of the first vehicle state variable and historical maneuvers associated with the driver.
[0007] In some implementations, automatically initiating one or more actions involves updating a vehicle path prediction for the vehicle based at least in part on the expected maneuver. In one implementation, updating the vehicle path prediction results in an updated vehicle path prediction, wherein automatically initiating the one or more actions involves autonomously operating one or more actuators associated with the vehicle in a manner affected by the updated vehicle path prediction.
[0008] In other implementations, automatically initiating one or more actions involves automatically generating a user notification for a driver of the vehicle when the expected maneuver violates a safety constraint. In other implementations, automatically initiating one or more actions involves automatically generating a user notification for a driver of the vehicle when the expected maneuver violates a passenger comfort setting.
[0009] In one or more implementations, determining the adjusted probability involves determining an environmental gain factor as a function of one or more situational state variables; and determining the adjusted probability as a function of the environmental gain factor and the combined probability and the one or more situational state variables. In one implementation, the one or more situational state variables include current values of one or more road state variables associated with the current position of the vehicle, and the method involves determining the environmental gain factor as a function of the one or more road state variables. In another implementation, the one or more situational state variables include current values of one or more detected object state variables associated with the current position of the vehicle, and the method involves determining the environmental gain factor as a function of the one or more detected object state variables.
[0010] In one or more implementations, the method involves: in response to an observed maneuver that differs from an expected maneuver, dynamically adjusting one or more tuning parameters for a corresponding maneuver in a plurality of potential maneuvers. In one implementation, dynamically adjusting the one or more tuning parameters results in one or more driver-specific adapted tuning parameters for a corresponding combination of the potential maneuver and the corresponding vehicle state variable, wherein determining the corresponding probability involves determining the corresponding probability of the potential maneuver based on corresponding current values of the plurality of vehicle state variables and the one or more driver-specific adapted tuning parameters.
[0011] Also provided is a device for a non-transitory computer-readable medium having executable instructions stored thereon, the executable instructions, when executed by a processor, causing the processor to provide a vehicle path prediction service, the vehicle path prediction service being configurable to: obtain corresponding current values of corresponding vehicle state variables associated with a vehicle for a plurality of vehicle state variables; obtain one or more contextual state variables corresponding to a current operating context of the vehicle; determine a corresponding probability of a potential maneuver based on the corresponding current values of the plurality of vehicle state variables and one or more tuning parameters associated with a corresponding combination of a potential maneuver among a plurality of potential maneuvers of the vehicle and the corresponding vehicle state variables, thereby obtaining a plurality of probabilities of the potential maneuver corresponding to the plurality of vehicle state variables; determine a combined probability of the potential maneuver based at least in part on the plurality of probabilities of the potential maneuver corresponding to the plurality of vehicle state variables; determine an adjusted probability of the potential maneuver based at least in part on the combined probability and the one or more contextual state variables corresponding to the current operating context of the vehicle; identify the potential maneuver as an intended maneuver to be performed by a driver of the vehicle based on the adjusted probability; and automatically initiate one or more actions in a manner affected by the intended maneuver.
[0012] In one implementation, the vehicle path prediction service may be configured to determine an environmental gain factor as a function of one or more contextual state variables, and to determine an adjusted probability as a function of the environmental gain factor and a combined probability and one or more contextual state variables. In another implementation, the vehicle path prediction service may be configured to determine the environmental gain factor as a function of current values of one or more road state variables associated with the vehicle's current position. In another implementation, the vehicle path prediction service may be configured to determine the environmental gain factor as a function of current values of one or more detected object state variables associated with the vehicle's current position. In yet another implementation, the vehicle path prediction service may be configured to dynamically adjust one or more tuning parameters of a corresponding maneuver among a plurality of potential maneuvers in response to an observed maneuver that differs from an expected maneuver.
[0013] A device for a vehicle is also provided. The vehicle includes a plurality of sensing devices on board the vehicle to obtain current values of a plurality of vehicle state variables, and a controller connected to the plurality of sensing devices, the controller being configurable through a processor to: determine a corresponding probability of a potential maneuver based on a corresponding current value of the current values of the plurality of vehicle state variables and one or more tuning parameters associated with a corresponding combination of a potential maneuver in a plurality of potential maneuvers of the vehicle and the corresponding vehicle state variable, thereby obtaining a plurality of probabilities of the potential maneuver corresponding to the plurality of vehicle state variables; determine a combined probability of the potential maneuver based at least in part on the plurality of probabilities of the potential maneuver corresponding to the plurality of vehicle state variables; determine an adjusted probability of the potential maneuver based at least in part on the combined probability and one or more situational state variables corresponding to a current operating situation of the vehicle; identify the potential maneuver as an intended maneuver to be performed by a driver of the vehicle based on the adjusted probability; and automatically initiate one or more actions in a manner affected by the intended maneuver. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Exemplary aspects will now be described with reference to the following drawings, wherein like reference numerals refer to like elements, and wherein:
[0015] Figure 1 is a block diagram illustrating a vehicle system according to various implementations;
[0016] Figure 2 is a block diagram illustrating a control system suitable for use with a vehicle system according to various implementations;
[0017] Figure 3 A diagram suitable for combining with one or more implementations described herein is shown. Figure 1 A flowchart of a maneuver prediction process implemented by a vehicle system;
[0018] Figure 4 is an example of a method suitable for use with Figure 3 a schematic diagram of different types of potential vehicle maneuvers based on current vehicle states for use in conjunction with a maneuver prediction process; and
[0019] Figure 5 A diagram suitable for combining with one or more implementations described herein is shown. Figure 3 Flowchart of the process of manipulating the prediction process to achieve the adaptive tuning process. DETAILED DESCRIPTION
[0020] The following detailed description is merely exemplary in nature and is not intended to limit application and use. In addition, there is no intention to be bound by any express or implied theory presented in the foregoing introduction, the invention content, or the following detailed description. As used herein, the term module refers to any hardware, software, firmware, electronic control component, processing logic and / or processor device alone or in any combination, including but not limited to: application-specific integrated circuits (ASICs), electronic circuits, processors (shared, dedicated or groups) and memories that execute one or more software or firmware programs, combinational logic circuits, and / or other suitable components that provide the described functions.
[0021] Now refer to Figure 1 , according to one or more implementations, and the vehicle system 100 calculates or otherwise determines a predicted path or trajectory for operating the vehicle 10 along the route in order to support driver assistance features or other autonomous operations in a manner that takes into account objects or obstacles detected by the onboard sensors 28, 40, as described in more detail below. In this regard, a control module onboard the vehicle 10 calibrates the different types of onboard sensors 28, 40 relative to each other and / or the vehicle 10, thereby allowing data from those different types of onboard sensors 28, 40 to be spatially correlated with or otherwise used with each other based on the calibration for the purposes of object detection, object classification, and the resulting driver assistance features or autonomous operations of the vehicle 10.
[0022] like Figure 1 As depicted, vehicle 10 generally includes a chassis, a body 14, and front wheels 16 and rear wheels 18 rotatably coupled to the chassis near respective corners of the body 14. The body 14 is disposed on the chassis and substantially surrounds the components of the vehicle 10, and the body 14 and chassis may together form a frame.
[0023] In an exemplary implementation, the vehicle 10 is an autonomous vehicle or is otherwise configured to support one or more autonomous operating modes, and the system 100 is incorporated into the vehicle 10 (hereinafter referred to as the vehicle 10). The vehicle 10 is depicted as a passenger car in the illustrated implementation, but it should be understood that any other vehicle including motorcycles, trucks, sport utility vehicles (SUVs), recreational vehicles (RVs), boats, aircraft, etc. may also be used. In an exemplary implementation, the vehicle 10 is a so-called Level 2 automation system. Level 2 systems stand for "partial driving automation" and refer to a specific driving mode performance in which the autonomous driving system controls steering, acceleration, and braking in specific scenarios, while the driver always remains alert and actively supervises the autonomous driving system and is able to provide driver support to control the main driving tasks.
[0024] As shown, the vehicle 10 generally includes a propulsion system 20, a transmission system 22, a steering system 24, a braking system 26, a sensor system 28, an actuator system 30, at least one data storage device 32, at least one controller 34, and a communication system 36. In various implementations, the propulsion system 20 may include an internal combustion engine, an electric motor such as a traction motor, and / or a fuel cell propulsion system. The transmission system 22 is configured to transfer power from the propulsion system 20 to the vehicle wheels 16, 18 according to a selectable speed ratio. According to various implementations, the transmission system 22 may include a step ratio automatic transmission, a continuously variable transmission, or other suitable transmission. The braking system 26 is configured to provide braking torque to the vehicle wheels 16, 18. In various implementations, the braking system 26 may include friction brakes, wire control brakes, regenerative braking systems (such as motors), and / or other suitable braking systems. The steering system 24 affects the position of the vehicle wheels 16, 18. Although drawn as including a steering wheel for illustrative purposes, in some implementations contemplated within the scope of the present disclosure, the steering system 24 may not include a steering wheel.
[0025] The sensor system 28 includes one or more sensing devices 40a-40n that sense observable conditions of the external environment and / or the internal environment of the vehicle 10. The sensing devices 40a-40n may include, but are not limited to, radar, lidar, global positioning system, optical camera, thermal camera, ultrasonic sensor, and / or other sensors. The actuator system 30 includes one or more actuator devices 42a-42n that control one or more vehicle features, such as, but not limited to, the propulsion system 20, the transmission system 22, the steering system 24, and the braking system 26. In various implementations, vehicle features may also include interior and / or exterior vehicle features, such as, but not limited to, doors, trunks, and cabin features, such as air, music, lighting, etc. (not numbered).
[0026] The data storage device 32 stores data for automatically controlling the vehicle 10. In various implementations, the data storage device 32 stores a defined map of a navigable environment. In various implementations, the defined map may be predefined by a remote system and obtained from the remote system. For example, the defined map may be assembled by a remote system and communicated to the vehicle 10 (wirelessly and / or in a wired manner) and stored in the data storage device 32. As can be appreciated, the data storage device 32 may be part of the controller 34, separate from the controller 34, or part of the controller 34 and part of a separate system.
[0027] The controller 34 includes at least one processor 44 and a computer readable storage device or medium 46. The processor 44 can be any custom or commercially available processor, a central processing unit (CPU), a graphics processing unit (GPU), an auxiliary processor among several processors associated with the controller 34, a semiconductor-based microprocessor (in the form of a microchip or chipset), a macroprocessor, any combination thereof, or any device generally used to execute instructions. For example, the computer readable storage device or medium 46 can include volatile and non-volatile storage in read-only memory (ROM), random access memory (RAM), and keep-alive memory (KAM). KAM is a permanent or non-volatile memory that can be used to store various operating variables when the processor 44 is powered off. The computer readable storage device or medium 46 can be implemented using any of the following many known memory devices: PROM (programmable read-only memory), EPROM (electrical PROM), EEPROM (electrically erasable PROM), flash memory, or any other electrical, magnetic, optical or combination memory device capable of storing data (some of which represent executable instructions used by the controller 34 when controlling the vehicle 10).
[0028] The instructions may include one or more separate programs, each of which includes an ordered list of executable instructions for implementing logical functions. When the instructions are executed by the processor 44, the instructions receive and process signals from the sensor system 28, execute logic, calculations, methods and / or algorithms for automatically controlling components of the vehicle 10, and generate control signals to the actuator system 30 to automatically control components of the vehicle 10 based on the logic, calculations, methods and / or algorithms. Although Figure 1 Only one controller 34 is shown, but implementations of the vehicle 10 may include any number of controllers 34 that communicate via any suitable communication medium or combination of communication media and cooperate to process sensor signals, execute logic, calculations, methods, and / or algorithms, and generate control signals to automatically control features of the vehicle 10. In various implementations, one or more instructions of the controller 34 are embodied in the vehicle system 100 (e.g., in the data storage element 46) and, when executed by the processor 44, cause the processor 44 to obtain data captured or generated from the imaging and ranging sensors 40 and utilize the captured environmental data to determine commands for autonomously operating the vehicle 10, as described in more detail below.
[0029] Still refer to Figure 1In an exemplary implementation, the communication system 36 is configured to wirelessly communicate information to and from other entities 48 through a communication network, such as, but not limited to, other vehicles ("V2V" communication), infrastructure ("V2I" communication), remote systems, and / or personal devices. In an exemplary implementation, the communication system 36 is a wireless communication system configured to communicate via a wireless local area network (WLAN) using the IEEE 802.11 standard or by using cellular data communications. However, additional or alternative communication methods such as dedicated short-range communication (DSRC) channels are also considered to be within the scope of the present disclosure. A DSRC channel refers to a one-way or two-way short-range to medium-range wireless communication channel designed specifically for automotive use and a corresponding set of protocols and standards.
[0030] The communication network utilized by the communication system 36 may include a wireless carrier system, such as a cellular telephone system, including a plurality of cell towers (not shown), one or more mobile switching centers (MSCs) (not shown), and any other networking components required to connect the wireless carrier system to the land communication system, and the wireless carrier system may implement any suitable communication technology, including, for example, digital technology, such as CDMA (e.g., CDMA2000), LTE (e.g., 4G LTE or 5G LTE), GSM / GPRS, or other current or emerging wireless technologies. Additionally or alternatively, a second wireless carrier system in the form of a satellite communication system may be utilized to provide one-way or two-way communications using one or more communication satellites (not shown) and uplink transmission stations (not shown), including but not limited to satellite radio services, and / or satellite telephone services, etc. Some implementations may utilize land communication systems, such as traditional land-based telecommunications networks, including the public switched telephone network (PSTN) used to provide hardwired telephone, packet-switched data communications, and Internet infrastructure. One or more portions of the terrestrial communications system may be implemented using standard wired networks, fiber optic or other optical networks, cable networks, power lines, other wireless networks such as wireless local area networks (WLANs), or networks providing broadband wireless access (BWA), or any combination thereof.
[0031] Now refer to Figure 2 According to various implementations, the controller 34 implements an autonomous driving system (ADS) 70. That is, appropriate software and / or hardware components of the controller 34 (e.g., the processor 44 and the computer-readable storage device 46) are utilized to provide an autonomous driving system 70 for use in conjunction with the vehicle 10, for example, to automatically control the various actuators 30 to control vehicle acceleration, steering, and braking, respectively, without human intervention, or to assist a human driver in conjunction with controlling or maneuvering the vehicle 10.
[0032] In various implementations, the instructions for the autonomous driving system 70 may be organized by function or system. Figure 2 As shown, the autonomous driving system 70 may include a sensor fusion system 74, a positioning system 76, a guidance system 78, and a vehicle control system 80. As may be appreciated, in various implementations, instructions may be organized into any number of systems (e.g., combined, further divided, etc.), as the present disclosure is not limited to this example.
[0033] In various implementations, the sensor fusion system 74 integrates and processes the sensor data and predicts the presence, location, classification and / or path of objects and environmental features of the vehicle 10. In various implementations, the sensor fusion system 74 can combine information from multiple sensors, including but not limited to cameras, lidars, radars, and / or any number of other types of sensors. In one or more exemplary implementations described herein, the sensor fusion system 74 uses calibration conversion parameter values associated with the pairing of the corresponding camera and reference system to associate image data with lidar point cloud data, a vehicle reference system, or some other reference coordinate system to associate lidar points with pixel locations, assign depth to image data, identify objects in one or more image data and lidar data, or otherwise integrate associated image data and lidar data. In other words, the sensor output provided to the vehicle control system 80 from the sensor fusion system 74 (e.g., the labels of detected objects and / or their positions relative to the vehicle 10) reflects the calibration and association between camera images, lidar point cloud data, etc., or is otherwise affected by the calibration and association between camera images, lidar point cloud data, etc.
[0034] The positioning system 76 processes the sensor data, along with other data, to determine the location of the vehicle 10 relative to the environment (e.g., local location relative to a map, precise location relative to a road lane, vehicle heading, speed, etc.). The guidance system 78 processes the sensor data, along with other data, to determine a path for the vehicle 10 to follow given the current sensor data and vehicle attitude. The vehicle control system 80 then generates control signals for controlling the vehicle 10 based on the determined path. In various implementations, the controller 34 implements machine learning techniques to assist in the functions of the controller 34, such as feature detection / classification, obstacle mitigation, route traversal, mapping, sensor integration, ground truth determination, etc.
[0035] In an exemplary implementation, the guidance system 78 supports a hands-free autonomous operating mode that, when enabled and operating, controls steering, acceleration, and braking to provide lane centering using current sensor data (or obstacle data) provided by the sensor fusion system 74 and the current vehicle pose provided by the positioning system 76 while attempting to maintain a driver-selected set speed and / or a following distance (or gap time) relative to other vehicles. For example, the autonomous operating mode may be implemented as an adaptive cruise control mode that attempts to keep the vehicle's speed substantially constant and equal to the driver-selected set speed while maintaining a desired minimum following distance to the closest in-path (CIP) vehicle ahead of the vehicle in the current lane of travel. In various implementations, the guidance system 78 may support various other driver assistance modes or features that provide guidance to a human driver for steering, acceleration, braking, or other operations of the vehicle 10, as described in more detail below.
[0036] In one or more implementations, for the purpose of autonomous operation, the guidance system 78 includes a motion planning module that generates a motion plan for controlling the vehicle as the vehicle traverses along the route. The motion planning module includes a longitudinal solver module that generates a longitudinal motion planning output, and the longitudinal motion planning output is used to control the movement of the vehicle along the route in the general direction of travel, such as by accelerating or decelerating the vehicle at one or more locations along the route in the future to maintain a desired speed or rate. The motion planning module also includes a lateral solver module that generates a lateral motion planning output, and the lateral motion planning output is used to control the lateral movement of the vehicle along the route, such as by steering the vehicle at one or more locations along the route in the future (e.g., keeping the vehicle in the center of the lane, changing lanes, etc.), to change the general direction of travel. The longitudinal planning output and the lateral planning output correspond to the path output of the command (or plan) provided to the vehicle control system 80, which is used to control the vehicle actuator 30 to achieve the movement of the vehicle 10 along the route corresponding to the longitudinal plan and the lateral plan.
[0037] During normal operation, the longitudinal solver module attempts to optimize the vehicle speed (or velocity) in the direction of travel, the vehicle acceleration in the direction of travel, and the derivative of the vehicle acceleration in the direction of travel (alternatively referred to herein as the longitudinal jerk of the vehicle), and the lateral solver module attempts to optimize one or more of the steering angle, the rate of change of the steering angle, and the acceleration or second derivative of the steering angle (alternatively referred to herein as the lateral jerk of the vehicle). In this regard, the steering angle can be related to the curvature of the path or route, and any of the steering angle, the rate of change of the steering angle, and the acceleration or second derivative of the steering angle, either alone or in combination, can be optimized by the lateral solver module.
[0038] Using various inputs to the longitudinal solver module, the longitudinal solver module calculates or otherwise determines a longitudinal plan (e.g., speed, acceleration, and jerk values planned in the future as a function of time) for traveling along the route within a certain prediction horizon (e.g., 12 seconds) by changing the speed or velocity of the vehicle from the current posture in a manner to ensure that the vehicle complies with the longitudinal ride preference information to the greatest extent possible while also complying with lane boundaries or other route constraints and avoiding collisions with objects or obstacles, to optimize some longitudinal cost variables or combinations thereof (e.g., minimize travel time, minimize fuel consumption, minimize jerk, etc.). In this regard, in many cases, the resulting longitudinal plan generated by the longitudinal solver module will not violate the maximum vehicle speed, maximum vehicle acceleration, maximum deceleration, and maximum longitudinal jerk settings associated with the user while also complying with the following distance or buffer zone associated with the user. That is, in some scenarios, it may be necessary to violate one or more longitudinal ride preference settings to avoid collisions, comply with traffic signals, etc., in which case the longitudinal solver module may attempt to maintain compliance with as many user-specific longitudinal ride preference settings as possible. Therefore, the resulting longitudinal plan usually conforms to the user's longitudinal ride preference information, but does not necessarily have to do so strictly.
[0039] In a similar manner, using various inputs to the lateral solver module, the lateral solver module calculates or otherwise determines a lateral plan for traveling along a route at a future position within a certain prediction range (e.g., 50 meters) by optimizing some lateral cost variable or combination thereof (e.g., minimizing deviation from the center of the road, minimizing path curvature, minimizing lateral jerk, etc.) by changing the steering angle or vehicle wheel angle in a manner to ensure that the vehicle complies with the lateral ride preference to the greatest extent possible while also complying with lane boundaries or other route constraints and avoiding collisions with objects or obstacles. During normal operation, the lateral solver module may utilize the longitudinal travel plan from the longitudinal solver module as well as the route information and obstacle data to determine how to steer the vehicle from the current attitude within the prediction range while attempting to comply with the lateral ride preference information. In this regard, the resulting longitudinal and lateral movement plans ultimately output by the motion planning module meet as many user driving preferences as possible, while optimizing cost variables and avoiding collisions by changing one or more of the vehicle's speed, acceleration / deceleration (longitudinal and / or lateral), jerk (longitudinal and / or lateral), steering angle, and steering angle change rate.
[0040] Still refer to Figure 2, the output from the guidance system 78 may be provided to the vehicle control system 80, which employs its own control scheme to generate rate and / or steering commands that may be provided to the actuators 30, thereby changing the speed and steering of the vehicle to emulate or otherwise implement the output provided by the guidance system 78. For example, in an autonomous operating mode, the longitudinal planning output and the lateral planning output from the guidance system 78 are provided to the vehicle control system 80, which may utilize the vehicle positioning information and its own control scheme to generate control outputs that adjust the vehicle positioning information to the longitudinal and lateral plans by changing the rate and steering commands provided to the actuators 30, thereby changing the speed and steering of the vehicle 10 to emulate or otherwise implement the longitudinal and lateral plans.
[0041] Now refer to Figure 3 In the exemplary implementation described herein, a vehicle control module (e.g., controller 34) implements an autonomous driving system (e.g., ADS 70), a driver assistance system, or another suitable system that supports the maneuver prediction process 300 and performs the additional tasks, functions, and / or operations described herein. The maneuver prediction process 300 probabilistically predicts the type of vehicle maneuvers that a human driver may perform in the future by taking into account the current vehicle state (e.g., current vehicle speed, current steering angle, current torsion bar torque, and / or current turn signal state, etc.) and the current operating environment (e.g., objects or obstacles currently detected near the vehicle, current road characteristics or other road information related to the current position of the vehicle, the current route of the vehicle or other navigation information, etc.). A guidance system (e.g., guidance system 78) or other driver assistance system can use the predicted type of future vehicle maneuvers that the driver is expected to perform to update and improve the predicted vehicle path for the vehicle accordingly. The updated vehicle path prediction can then be used to trigger or otherwise actively initiate one or more actions or other vehicle features, such as, for example, steering assistance, and / or brake assistance, etc. For exemplary purposes, the following description may refer to the above combined with Figure 1 to Figure 2 Although portions of the maneuver prediction process 300 may be performed by different elements of the vehicle system, for purposes of explanation, the subject matter may be described herein primarily in the context of the maneuver prediction process 300 being performed primarily by a vehicle path prediction service at the vehicle controller 34 .
[0042] The maneuver prediction process 300 is initialized or begins by identifying, receiving, or otherwise obtaining current values of vehicle state variables that characterize the operation of the vehicle at the current point in time as a prediction of a future vehicle maneuver at 302. In this regard, the vehicle path prediction service at the vehicle controller 34 obtains (e.g., via one or more onboard sensors 28, 40) current or recently sampled values of the speed or velocity of the vehicle 10, the current steering angle associated with the steering system 24, the current torque applied to a torsion bar or another vehicle suspension component, the current rate of change associated with the torsion bar torque, and / or the current turn signal state, etc.
[0043] After obtaining the current vehicle state variables, the maneuver prediction process 300 continues by calculating or otherwise determining the combined probability of performing a specific maneuver as a function of the various vehicle state variables using one or more tuning parameters associated with the specific maneuver at 304. In an exemplary implementation, many different types of possible maneuvers (such as, for example, right turns, left turns, right lane changes, left lane changes, right U-turns, and / or left U-turns, etc.) and default probabilities of no maneuvers (or straight-line paths) are defined for prediction purposes. For each defined maneuver type, a tuning parameter is derived, created, or otherwise defined to calculate the probability of a specific maneuver occurring as a function of a specific vehicle state variable using a sigmoid function. The values of the tuning parameters may be calculated, derived, or otherwise determined in a maneuver-specific and variable-specific manner based on historical correlations between vehicle state variable values and subsequently observed vehicle maneuvers performed by one or more drivers. For example, in one implementation, an initial training data set of vehicle state variable values and subsequently observed vehicle maneuvers is collected or otherwise obtained for different drivers, wherein for each driver, driver-specific tuning parameters that result in the highest, maximized, or preferred prediction accuracy are derived for the vehicle maneuvers observed by the driver given corresponding contemporaneous vehicle state variable values at or before the corresponding maneuvers. The resulting tuning parameter values can then be averaged for all different drivers to obtain initial values for the tuning parameters, which average initial values can provide a baseline level of prediction accuracy prior to driver-specific adaptation.
[0044] As described in more detail below, for the vehicle state variable that is not relevant to or cannot predict the specific manipulation type, the tuning parameter associated with this specific combination of manipulation type and vehicle state variable can be set to the corresponding value that makes the probability function output a value of zero (or substantially equal to zero) for this specific vehicle state variable. In one or more exemplary implementations, the tuning parameter adaptively reflects the driving style and / or behavior of each driver, thereby personalizing the tuning parameter and the resulting manipulation prediction, as described in more detail below. For example, if the historical behavior associated with a specific driver shows that the driver misuses the turn signal or manipulates the vehicle in a manner inconsistent or contradictory with other inputs from the driver that may otherwise indicate intention, then the corresponding driver input signal or vehicle state variable can be weakened or otherwise excluded to reflect the driving style and / or behavior of the specific driver, wherein for other drivers, the turn signal use or other indications of manipulation intention can be more relevant to the driver behavior, and therefore, for these drivers, the weight is greater.
[0045] In one or more implementations, the formula To calculate or otherwise determine the probability of implementing a particular maneuver type as a function of the current value of each vehicle state variable, where k represents a particular sampling time, x(k) represents the current value of the corresponding vehicle state variable at the sampling time (e.g., one of the current vehicle speed, current steering angle, current torsion bar torque, etc. at time k), α M,x represents the tuning parameter of the midpoint of the S-shape for the corresponding maneuver type (M) for the corresponding vehicle state variable (x), while β M,x A tuning parameter representing the steepness of the S-shape for a respective maneuver type (M) with respect to a respective vehicle state variable (x). In this regard, the S-shape tuning parameter will vary depending on the particular maneuver type being analyzed and the relative probability or strength of correlation between performing that maneuver type and the respective vehicle state variable.
[0046] After determining different individual probabilities of a particular maneuver type as a function of different individual vehicle state variable values, in one implementation the formula Calculate or otherwise determine the total or combined probability of performing that particular maneuver type, where P M,x (k) represents different respective probabilities determined based on different respective vehicle state variable values (eg, using the sigmoid function described above), n represents the number of different respective vehicle state variables, and g dis a scalar factor corresponding to the direction of the maneuver (e.g., -1 for a right maneuver and 1 for a left maneuver). In this way, the combined maneuver probability for a particular maneuver type is determined by multiplying the values of the individual vehicle state variable maneuver probability values determined using the corresponding S-shaped probability functions of the corresponding vehicle state variables for that particular maneuver type.
[0047] Still refer to Figure 3 At 306 , the maneuver prediction process 300 identifies, receives, or otherwise obtains a current value of a contextual state variable that characterizes a current operating context or environment around the vehicle at a current location at a current point in time, and then calculates or otherwise determines an adjusted combined probability of different maneuver types using the adjusted contextual gain factor at 308 . For example, the formula may be used. to calculate or otherwise determine the final adjusted combined probability for a particular maneuver type, where g M,e represents an environmental gain factor determined based on the current values of different situational state variables that characterize the current operating environment or situation. In some implementations, the formula g is used. M,e =g M,r ×g M,s ×g M,n The environmental gain factor is calculated or otherwise determined as the product or combination of the gain factors of different situational states, where g M,r represents a probability gain for a particular maneuver type based on current values of one or more road state variables (e.g., type or classification of road, road curvature, road inclination, slope or gradient of road, and / or friction associated with the road surface, etc.), g M,s represents the probability gain of a particular maneuver type based on the current value of one or more object state variables (e.g., the size, type, and / or position of an object or obstacle detected by the vehicle), and g M,n represents the probability gain of a particular maneuver type based on the vehicle's current route or other navigation information (e.g., whether the planned route or trajectory is consistent with the particular maneuver type). For example, when the current road type or classification corresponds to an interstate or highway where U-turns or other turns are unlikely or not allowed, the probability gain of the road information (g M,r ) can be set to a relatively low value for such turns, and a relatively high value for lane changes or straight-ahead maneuvers that are more likely on the current road type. For maneuvers that are inconsistent with the planned route or navigation information associated with the vehicle (e.g., reducing the gain for U-turn maneuvers when the vehicle is currently traveling along a planned route or planned direction), the probability gain of the navigation information (g M,n) can be set to a relatively low value, while the probability gain of the navigation information (g) is increased for maneuvers that are consistent with the planned route or are otherwise more likely given the planned route (e.g., increasing the gain for turns or lane changes when the maneuver is required to adhere to the planned route). M,n ) can be set to a relatively high value.
[0048] At 310 , after determining the context-adjusted vehicle state-based probabilities for different potential maneuvers, maneuver prediction process 300 prioritizes or otherwise identifies the particular potential maneuver that has the highest assigned probability based on the current vehicle state and the current contextual state as the anticipated vehicle maneuver predicted for the vehicle. For example, Figure 4 An exemplary scenario is depicted in which, based on the current vehicle state and the current environment state, the vehicle path prediction service determines non-zero probabilities of four different potential maneuvers: a right U-turn maneuver 402, a right turn maneuver 404, a right lane change maneuver 406, and a straight-ahead maneuver 408 (or no maneuver). In this regard, based on road information, route or navigation information, and / or detected object information, the contextual gain factor and corresponding maneuver probability for a left-side maneuver may be reduced to or set to zero, for example, due to the absence of an available lane or road on the left side of the vehicle based on obstacles or other objects detected along the left side of the vehicle (e.g., a semi-truck trailer), etc. Based on the current vehicle speed, the current vehicle steering angle, the current torsion bar torque, the current turn signal state, and potential other vehicle state variables that correspond to the current contextual state variables, the vehicle path prediction service may calculate or otherwise determine that the probability of a right U-turn maneuver 402 is 90%, the probability of a right turn maneuver 404 is 60%, the probability of a right lane change maneuver 406 is 10%, and the probability of no maneuver 408 continuing straight-ahead in the current lane is 40%. Therefore, the vehicle path prediction service identifies right U-turn maneuver 402 as an anticipated maneuver that the driver is expected or predicted to perform given the current operating context and the current vehicle state.
[0049] Refer again Figure 3 After identifying the highest probability maneuver that the driver is expected to perform, the maneuver prediction process 300 automatically updates, enhances, or otherwise adjusts the vehicle path prediction in a manner affected by the expected maneuver at 312 and automatically initiates or otherwise performs one or more actions in response to the expected maneuver at 314. For example, referring again to Figure 4Based on the right U-turn maneuver 402, the guidance system 78 associated with the ADS 70 may update the vehicle's motion plan to reflect the right U-turn maneuver 402, for example, by selecting or otherwise identifying a reference trajectory associated with the right U-turn maneuver 402 and enhancing or otherwise adjusting the lateral and longitudinal trajectories to better align with the right U-turn. The guidance system 78 may then provide an updated vehicle motion plan to the vehicle control system 80 that reflects the updated vehicle path prediction affected by the expected driver maneuver. The vehicle control system 80 may then correspondingly update actuator commands to better align with the updated vehicle path prediction provided by the guidance system 78, for example, by proactively reducing the acceleration or speed command provided to the throttle or other actuator 30 associated with the propulsion system 20 to proactively reduce the acceleration or speed of the vehicle 10 in anticipation of the upcoming U-turn maneuver. Similarly, the vehicle control system 80 may proactively change the steering command or other actuator command to proactively improve the driver's ability to safely implement the expected U-turn maneuver.
[0050] In various implementations, the vehicle control system 80, ADS 70, and / or vehicle controller 34 may automatically generate or otherwise provide one or more user notifications to the driver that are affected by the anticipated maneuver that the driver is expected to perform, depending on the particular features supported by the vehicle 10. For example, in some implementations, the vehicle control system 80 and / or vehicle controller 34 may be configurable to analyze an updated vehicle path prediction that is affected by the predicted maneuver related to the current vehicle state to detect or otherwise identify when the vehicle 10 is likely to violate one or more constraints or restrictions if the maneuver is to be implemented. In this regard, the vehicle controller 34 and / or the vehicle control system 80 may generate a notification or warning to the driver regarding a recommended action for the driver to take (e.g., braking) to increase the availability of the predicted maneuver, or to refrain from executing the predicted maneuver when implementation of the predicted maneuver may cause the vehicle 10 to violate one or more user-configured occupant comfort settings (e.g., exceeding a maximum lateral jerk, and / or a maximum longitudinal jerk, etc.) and / or violate one or more safety constraints, which may be affected by contextual state variables (e.g., exceeding a maximum lateral acceleration based on current road curvature, inclination, slope, and / or friction, etc.) or other environmental conditions (e.g., encroaching upon the predicted vehicle path within a threshold distance of a detected object or obstacle, and / or a road boundary, etc.). For example, if the current vehicle speed indicates that the maximum longitudinal jerk and / or maximum lateral jerk occupant comfort settings will likely be violated if the driver initiates a right U-turn at the current vehicle speed, the vehicle controller 34 and / or the vehicle control system 80 may automatically generate a notification advising the driver to apply the brakes or increase braking to reduce vehicle speed in anticipation of the driver's intended maneuver.
[0051] In some implementations, the vehicle controller 34 and / or ADS 70 utilizes the predicted vehicle maneuver to actively adjust or modify the operation of the onboard sensors 28, 40 and / or the sensor fusion system 74 to increase visibility or coverage of the trajectory corresponding to the predicted vehicle maneuver. For example, when a right turn or right U-turn maneuver is predicted, the vehicle controller 34 and / or ADS 70 may automatically command the onboard sensors 28, 40 and / or the sensor fusion system 74 to redirect, reposition or otherwise adjust one or more cameras, image sensors, radar devices, and / or lidar devices, etc., to increase the sensor range or coverage in the direction of the maneuver, thereby increasing the capture amount of the trajectory of the predicted vehicle path corresponding to the predicted vehicle maneuver covered by the field of view of the corresponding sensor 28, 40. Additionally or alternatively, the vehicle controller 34 and / or the ADS 70 may automatically command the onboard sensors 28, 40 and / or the sensor fusion system 74 to increase the sampling frequency or analysis of a spatial region that aligns with, overlaps, or otherwise encompasses the trajectory of the predicted vehicle path corresponding to the predicted vehicle maneuver.
[0052] For example, when the vehicle 10 is operating in an autonomous adaptive cruise control mode (which attempts to keep the vehicle's speed substantially constant and equal to a driver-selected set speed while maintaining a desired minimum following distance from the closest in-path (CIP) vehicle ahead of the vehicle in the current lane of travel), and the vehicle path prediction service predicts that the driver will implement a right lane change, the updated vehicle path prediction can be utilized by the onboard sensors 28, 40 and / or the sensor fusion system 74 in conjunction with the autonomous adaptive cruise control mode to identify an updated or anticipated CIP vehicle in the right lane. The updated CIP vehicle can then be utilized by the adaptive cruise control mode to actively adjust the speed or velocity command to autonomously control the vehicle's speed in a manner that achieves a desired compromise between the desired minimum following distance from the anticipated CIP vehicle and the driver-selected set speed. It should be understood that in practice, there are a variety of different ways in which predicted vehicle maneuvers can be utilized to actively adjust vehicle operation, and the subject matter described herein is not limited to any particular practical application of using predicted vehicle maneuvers to improve vehicle operation.
[0053] Now refer to Figure 5In one or more exemplary implementations, the adaptive tuning process 500 is implemented or otherwise performed by the vehicle path prediction service in conjunction with the maneuver prediction process 300 to dynamically and adaptively adjust the maneuver-specific tuning parameters utilized at 304 in a driver-specific manner whenever an observed vehicle maneuver performed by the driver deviates from an expected maneuver identified by the maneuver prediction process 300. For example, when the maneuver prediction process 300 predicts no driver maneuver (e.g., a straight-ahead maneuver) and the driver manually intervenes to perform an unexpected maneuver (e.g., a turn or lane change without using a turn signal), the adaptive tuning process 500 may be performed to adjust the tuning parameters of the observed maneuver to improve the performance of the maneuver prediction process 300 over time, for example, by increasing the probability or likelihood that the maneuver prediction process 300 will predict that particular observed maneuver when substantially the same vehicle state and / or situational state occurs in the future.
[0054] As described below, the adaptive tuning process 500 can effectively learn the driving style or behavior pattern of each driver, so that the maneuver prediction process 300 can be adapted based on the driving style and driving behavior of each driver. In this regard, based on the observed driving style and / or behavior of the driver, based on the degree of prediction of the maneuver type or the degree of correlation with the maneuver type by the specific vehicle state variable, the value of the specific tuning parameter associated with the specific maneuver type and the specific combination of the specific vehicle state variable can be adjusted to increase or decrease the weight of the specific vehicle state variable, thereby emphasizing or weakening the vehicle state variable. For example, when it is determined that the specific vehicle state variable is not related to or cannot predict the specific maneuver type based on the relationship between the historical value of the specific vehicle state variable and the historical maneuvers of the driver observed in the previous instances in time, the tuning parameters of the vehicle state variable with respect to the maneuver type can be adjusted to weaken the vehicle state variable with respect to the likelihood of the driver implementing the maneuver. On the other hand, when it is determined that a specific vehicle state variable is associated with or can predict a specific maneuver type based on the relationship between the historical values of the specific vehicle state variable and the driver's historical maneuvers, the tuning parameters of the vehicle state variable regarding the maneuver type can be adjusted to emphasize the vehicle state variable or increase the weight of the vehicle state variable with respect to the likelihood of the driver performing the maneuver.
[0055] For example, when a particular driver consistently and correctly uses a turn signal or other indicia of an upcoming or intended maneuver, the adaptive tuning process 500 may increase the relative gain or weight factor associated with the turn signal or other indicia to correspondingly increase the confidence and accuracy of the predicted maneuver identified by the maneuver prediction process 300 when the driver subsequently manipulates the turn signal or other indicator or signals an upcoming maneuver. On the other hand, when a particular driver consistently fails to use a turn signal or other indicia of an upcoming or intended maneuver, or erroneously uses a turn signal or other indicia to suggest an intended maneuver that is different from the maneuver actually performed by the driver, the adaptive tuning process 500 may decrease the relative gain or weight factor associated with the turn signal or other indicia to correspondingly attenuate the turn signal or other input to the maneuver prediction process 300 when the driver's behavior or use of the turn signal or other indicator is not relevant to the upcoming maneuver or fails to predict the upcoming maneuver based on the driver's historical behavior. Similarly, the adaptive tuning process 500 can effectively learn or adapt to individual driving styles, for example, when a particular driver performs a particular maneuver at a particular vehicle speed or speed range where the particular maneuver would not otherwise be expected by other drivers (e.g., when the individual driver performs a U-turn or other turn at a relatively high speed), the maneuver prediction process 300 can be more likely to predict a particular type of maneuver at a particular vehicle speed that would not otherwise be expected by most other drivers.
[0056] Reference Figure 5 And continue to refer to Figures 1 to 4 , the illustrated adaptive tuning process 500 begins at 502 by detecting or otherwise identifying when an observed maneuver performed by a driver deviates from an expected driver maneuver predicted by the maneuver prediction process 300 for a particular combination of current vehicle state variables and current contextual operating state variables. When the adaptive tuning process 500 detects the occurrence of an unexpected maneuver, the adaptive tuning process 500 continues by buffering, storing, or otherwise maintaining a current set of vehicle state variable values and contextual state variable values in association with the observed maneuver type at 504. For example, the vehicle controller 34 and / or the ADS 70 may store or otherwise maintain a set of values associated with the observed maneuver including the original predicted probability of the observed maneuver (e.g., 308 from the maneuver prediction process 300), the current vehicle state variable values at the time of the observed maneuver, and the current contextual state variable values at the time of the observed maneuver in association with each other. In one or more implementations, the adaptive tuning process 500 utilizes a first-in, first-out (FIFO) buffer that maintains a fixed number of sets of values associated with unexpected observed manipulations and evicts older sets of values over time as more recent instances of unexpected manipulation occur.
[0057] The adaptive tuning process 500 calculates or otherwise determines, at 506, an adjusted S-shaped midpoint tuning parameter for a respective vehicle state variable for a respective maneuver based at least in part on an average of differences between respective values of the vehicle state variable and an initial S-shaped midpoint tuning parameter value for the variable over a prior number of data sets. For example, the formula To calculate or otherwise determine an adjusted S-shaped midpoint tuning parameter specific to a particular combination of maneuver (M) and vehicle state variable (x) where Δα M,x represents the average of the differences between the corresponding values of the vehicle state variables and the initial S-shaped midpoint tuning parameter values, and represents the learning rate of the sigmoid midpoint tuning parameters, specific to a particular combination of maneuver (M) and vehicle state variable (x). This can be calculated using the formula To calculate or otherwise determine the average of the differences between the corresponding values of the vehicle state variables and the initial S-shaped midpoint tuning parameter values, where x(j) represents the corresponding value of the vehicle state variable held in the buffer associated with a particular unexpected instance of the observed maneuver, and L represents the total number of sets of values held in the buffer for previous unexpected instances of the observed maneuver. The formula may be used: The sigmoid midpoint tuning parameter learning rate is calculated or otherwise determined as a function of the raw predicted probability of the observed maneuver (e.g., 308 from the maneuver prediction process 300), where is a constant gain, and is a constant to prevent the manipulation probability (P M ) is too low, the learning rate is large.
[0058] The adaptive tuning process 500 calculates or otherwise determines, at 508, an adjusted S-shaped steepness tuning parameter for a respective vehicle state variable for a respective maneuver based at least in part on a standard deviation of a difference between the respective value of the vehicle state variable and the initial S-shaped steepness tuning parameter value for the variable over a prior number of data sets. For example, the formula To calculate or otherwise determine an adjusted S-curve steepness tuning parameter specific to a particular combination of maneuver (M) and vehicle state variable (x) where Δβ M,x represents the multiple of the standard deviation associated with the difference between the corresponding value of the vehicle state variable and the initial S-shape steepness tuning parameter value, while represents a learning rate for a particular combination of a maneuver (M) and a vehicle state variable (x) for the sigmoid steepness tuning parameter, which may be calculated or otherwise determined as a function of the raw predicted probability of the observed maneuver in a similar manner as described above for the sigmoid midpoint tuning parameter learning rate. The formula to calculate or otherwise determine a multiple of the standard deviation associated with the difference between the corresponding value of the vehicle state variable and the initial S-shape steepness tuning parameter value, where is a scalar representing the desired multiple of the standard deviation or distribution level to be considered when adapting the steepness tuning parameter.
[0059] After calculating or otherwise determining the adjusted S-shaped tuning parameters, the adaptive tuning process 500 continues at 510 by calculating or otherwise determining final adapted S-shaped tuning parameter values based on the adjusted S-shaped tuning parameters and the current road state variable values. For example, the formula The adaptive S-shaped midpoint tuning parameter value is calculated or otherwise determined as a function of the current road state information and the S-shaped midpoint tuning parameter value determined at 506, where φ represents the current inclination of the road, ρ represents the current curvature of the road, θ represents the current slope or inclination of the road, and μ represents the current friction of the road. In a similar manner, the formula may be used: The adaptive S-shape steepness tuning parameter value is calculated or otherwise determined as a function of the current road state information and the adjusted S-shape steepness tuning parameter value determined at 508 .
[0060] After determining the final value of the adaptive S-shaped tuning parameter value, the adaptive tuning process 500 continues at 512 by dynamically updating the tuning parameter subsequently used to manipulate the prediction to the adaptive S-shaped tuning parameter value. In this regard, at 304, when according to the formula As mentioned above, α M,x Indicates the use of formula Adapt S-shaped midpoint tuning parameters according to the driver The adaptive S-shaped midpoint tuning parameters are determined by the function of M,x Indicates the use of formula Adapt S-shaped midpoint tuning parameters according to the driver Subsequent iterations of the maneuver prediction process 300 may utilize the adaptive S-curve steepness tuning parameters determined as a function of the current values of the various vehicle state variables when calculating the probability of implementing a particular maneuver type. Thus, as the driver implements or otherwise performs an unexpected vehicle maneuver under different vehicle states, the tuning parameters may be dynamically and iteratively adjusted to adapt to better reflect the behavior of the individual driver for a particular maneuver type.
[0061] It should be noted that, by means of the adaptive tuning process 500 in combination with the maneuver prediction process 300, the driver's future maneuvers can be predicted with greater accuracy and reliability, thereby improving vehicle path prediction and enabling the vehicle control system or other driver assistance features to take active actions to automatically facilitate the driver's maneuvers. Additionally, the maneuver prediction process 300 can be adapted to weaken or ignore certain state variables (e.g., turn signal use) that have less impact on the driver's operation of the vehicle, and gradually increase the weight of other state variables or road conditions that are more relevant to the driver's operation of the vehicle. Therefore, if a driver always uses the turn signal incorrectly or inaccurately, the maneuver prediction process 300 can be adapted to learn to ignore the turn signal state for certain maneuvers of the driver, while for other drivers who always use the turn signal for a specific maneuver type, the maneuver prediction process 300 can be adapted to gradually increase the weight of the driver's turn signal state.
[0062] The maneuver prediction process 300 combined with the adaptive tuning process 500 described herein results in an essentially holistic algorithmic framework or structure that can be used to predict the likelihood of performing any particular type or classification of maneuvers based on any particular type or number of different state variables while taking into account a variety of different environmental conditions (including, but not limited to, road conditions, road classifications, surrounding or detected objects). In this regard, the formula or algorithm used to predict the maneuver can utilize the same form or structure independent of the current vehicle speed, and / or the current vehicle steering angle, etc., and consider evasive maneuvers or other non-standard maneuvers without limiting the maneuver prediction process 300 to only certain operating states or environments. In some implementations, the maneuver prediction process 300 can be customized to provide predicted maneuvers and relative probabilities classified as specific confidence levels (e.g., low, medium, high, etc.), where the confidence levels can be used with the predicted maneuvers to affect various automatic driver assistance features, such as automatic cruise control, automatic braking (e.g., automatic emergency braking, or braking for an impending collision, etc.), automatic lane change, assisted steering, evasive steering, and / or collision avoidance, etc. By adapting the maneuver prediction process 300 to the driver's driving style and behavior patterns, the confidence of the prediction can be increased by filtering out or excluding unreliable indicators of specific maneuvers (e.g., by excluding or weakening the turn signal state when the driver does not use the turn signal continuously or correctly). The predicted maneuver that the driver is expected to perform can be used to update the vehicle path prediction and analyze it for road conditions (e.g., curvature, slope, surface friction, etc.), surrounding objects, passenger comfort settings, or other safety and / or stability constraints to automatically generate a user notification to warn the driver when the expected maneuver is likely to violate one or more warning thresholds, such that the expected maneuver may not be safely and / or comfortably implemented given the current vehicle state and operating context.
[0063] For the sake of brevity, conventional techniques related to driver assistance features, autonomous vehicles, and other functional aspects of the system (and the various operating components of the system) may not be described in detail herein. In addition, the connecting lines shown in the various figures included herein are intended to represent exemplary functional relationships and / or physical connections between the various elements. It should be noted that many alternative or additional functional relationships or physical connections may exist in the implementation of the subject matter.
[0064] As used herein, the word "exemplary" means "serving as an example, instance, or illustration." Therefore, any implementation described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other implementations. All implementations described herein are exemplary implementations provided to enable those skilled in the art to make or use the invention, and are not intended to limit the scope of the invention as defined by the claims.
[0065] Those skilled in the art will appreciate that the various illustrative logic blocks, modules, circuits and algorithm steps described in conjunction with the implementation disclosed herein can be implemented as electronic hardware, computer software or a combination of the two. Some implementations are described above with respect to functions and / or logic block components (or modules) and various processing steps. However, it should be understood that such block components (or modules) can be implemented by any number of hardware, software and / or firmware components configured to perform a specified function. In order to clearly illustrate this interchangeability of hardware and software, the above has been generally described with respect to the functions of various illustrative components, blocks, modules, circuits and steps. Whether this function is implemented as hardware or software depends on the specific application and the design constraints imposed on the entire system. The technician can implement the described functions in various ways for each specific application, but such implementation decisions should not be interpreted as causing deviations from the scope of the present invention.
[0066] When implemented in software or firmware, the various elements of the system described herein are essentially code segments or instructions that perform various tasks. A program or code segment can be stored in a processor-readable medium or transmitted via a transmission medium or communication path by a computer data signal embodied in a carrier wave. "Computer-readable medium", "processor-readable medium" or "machine-readable medium" may include any medium that can store or transmit information. Examples of processor-readable media include electronic circuits, semiconductor memory devices, ROM, flash memory, erasable ROM (EROM), floppy disks, CD-ROMs, optical disks, hard disks, optical fiber media, radio frequency (RF) links, etc. Computer data signals may include any signal that can be propagated on a transmission medium such as an electronic network channel, optical fiber, air, electromagnetic path or RF link. Code segments may be downloaded via a computer network such as the Internet, an intranet, or a LAN.
[0067] In this document, relational terms such as first and second, etc., may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Numerical ordinals such as "first," "second," "third," etc., etc., merely represent different entities in a plurality and do not imply any order or sequence unless specifically defined by the claim language. The order of the text in any claim does not imply that the process steps must be performed in a temporal or logical order according to that order unless specifically defined by the claim language. The process steps may be interchanged in any order without departing from the scope of the invention, provided that such interchange does not contradict the claim language and is logically consistent.
[0068] In addition, the foregoing description may refer to an element or node or feature that is "connected" together. As used herein, unless otherwise expressly stated, "connection" means that an element / node / feature is directly or indirectly coupled to another element / node / feature (or directly or indirectly communicates with another element / node / feature), not necessarily mechanically. For example, two elements may be physically, electronically, logically or in any other way connected to each other by one or more additional elements. Therefore, although the accompanying drawings may depict an exemplary arrangement of elements directly connected to each other, additional intermediate elements, devices, features or parts may be present in the implementation of the theme depicted. In addition, certain terms may also be used herein only for reference purposes, and therefore certain terms are not intended to be limited.
[0069] Although at least one exemplary aspect has been presented in the foregoing detailed description, it should be understood that there are a large number of variations. It should also be understood that the exemplary aspect or multiple exemplary aspects are merely examples and are not intended to limit the scope, applicability, or configuration of the present disclosure in any way. On the contrary, the foregoing detailed description will provide a convenient roadmap for implementing the exemplary aspect or multiple exemplary aspects for those skilled in the art. It should be understood that various changes may be made to the functions and arrangements of the elements without departing from the scope of the present disclosure as set forth in the attached claims and their legal equivalents.
Claims
1. A method of assisting operation of a vehicle, the method comprising: obtaining, by a control module associated with the vehicle, respective current values of respective vehicle state variables for a plurality of vehicle state variables; obtaining, by the control module, one or more context state variables corresponding to a current operating context of the vehicle; determining, by the control module, respective probabilities of the potential maneuvers based on the respective current values of the plurality of vehicle state variables and one or more tuning parameters associated with respective combinations of potential maneuvers of a plurality of potential maneuvers of the vehicle and the respective vehicle state variables, resulting in a plurality of probabilities of the potential maneuvers corresponding to the plurality of vehicle state variables; determining, by the control module, a combined probability of the potential maneuvers based at least in part on the plurality of probabilities of the potential maneuvers corresponding to the plurality of vehicle state variables; determining, by the control module, an adjusted probability of the potential maneuver based at least in part on the combined probability and the one or more contextual state variables corresponding to the current operating context of the vehicle; identifying, by the control module, the potential maneuver as an intended maneuver to be performed by a driver of the vehicle based on the adjusted probability; as well as One or more actions are automatically initiated by the control module in a manner affected by the anticipated manipulation.
2. The method according to claim 1, wherein: Obtaining the one or more situational state variables corresponding to the current operating situation of the vehicle includes obtaining current values of the one or more situational state variables characterizing a current environment around the vehicle at a current location at a current point in time.
3. The method according to claim 1, further comprising: A first tuning parameter of the one or more tuning parameters associated with a respective combination of a first maneuver and a first vehicle state variable is adjusted based on at least one of a driving style and a behavior associated with the driver.
4. The method according to claim 1, wherein: Automatically initiating the one or more actions includes: updating a vehicle path prediction for the vehicle based at least in part on the expected maneuver to obtain an updated vehicle path prediction, wherein automatically initiating the one or more actions includes: autonomously operating one or more actuators associated with the vehicle in a manner affected by the updated vehicle path prediction.
5. The method according to claim 1, wherein: Automatically initiating the one or more actions includes automatically generating a user notification to the driver of the vehicle when the intended maneuver violates a safety constraint.
6. The method according to claim 1, wherein: Automatically initiating the one or more actions includes automatically generating a user notification to the driver of the vehicle when the anticipated maneuver violates a passenger comfort setting.
7. The method according to claim 1, wherein: Determining the adjusted probability includes: determining an environmental gain factor as a function of the one or more situational state variables; and The adjusted probability is determined as a function of the environmental gain factor and the combined probability and the one or more situational state variables.
8. The method according to claim 1, further comprising: In response to an observed maneuver that differs from the expected maneuver, the one or more tuning parameters of a corresponding maneuver in the plurality of potential maneuvers are dynamically adjusted.
9. According to the method of claim 8, the dynamic adjustment obtains one or more driver-specific adaptation tuning parameters for the corresponding combination of the potential maneuver and the corresponding vehicle state variables, wherein determining the corresponding probability includes determining the corresponding probability of the potential maneuver based on the corresponding current values of the multiple vehicle state variables and the one or more driver-specific adaptation tuning parameters.
10. A vehicle comprising: a plurality of sensing devices carried on the vehicle to obtain current values of a plurality of vehicle state variables; as well as A controller is coupled to the plurality of sensing devices, and the controller is configurable by a processor to: determining respective probabilities of the potential maneuvers based on respective current values of the plurality of vehicle state variables and one or more tuning parameters associated with respective combinations of potential maneuvers of the vehicle and respective vehicle state variables, resulting in a plurality of probabilities of the potential maneuvers corresponding to the plurality of vehicle state variables; determining a combined probability of the potential maneuvers based at least in part on the plurality of probabilities of the potential maneuvers corresponding to the plurality of vehicle state variables; determining an adjusted probability of the potential maneuver based at least in part on the combined probability and one or more contextual state variables corresponding to a current operating context of the vehicle; identifying the potential maneuver as an intended maneuver to be performed by a driver of the vehicle based on the adjusted probability; as well as One or more actions are automatically initiated in a manner affected by the anticipated manipulation.
