Large scale vehicle control
By coordinating the vehicle's predictive control inputs with a remote computer, the problem of difficulty in maintaining high average speeds and reducing the possibility of deceleration in the prior art is solved, and more efficient traffic flow control is achieved.
Patent Information
- Application Number
- CN202411759912.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-12-08
- Filing Date
- 2024-12-03
- Publication Date
- 2025-06-10
AI Technical Summary
Existing advanced driver assistance systems have difficulty effectively coordinating multiple vehicles to maintain high average speeds and reduce the possibility of deceleration, especially in temporary traffic jams.
Through a plurality of vehicles communicatively coupled to each other, the vehicle computer receives and processes predictive control inputs of other vehicles, determines its own predictive control inputs, and acts the vehicle according to these inputs to achieve coordinated control. The remote computer can combine distributed processing on the vehicle to determine the target speed of the vehicle and coordinate the predictive control input of the vehicle.
Coordinated control between vehicles is achieved, high average speed is maintained and the possibility of deceleration is reduced, the occurrence of "phantom blockage" is reduced, and the efficiency of traffic flow is improved.
Smart Images

Figure CN120116959A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to advanced driver assistance systems in vehicles. Background Art
[0002] An advanced driver assistance system (ADAS) is an electronic technology that assists a driver in performing driving functions and parking functions. Examples of ADAS include forward proximity detection, lane departure detection, blind spot detection, brake actuation, adaptive cruise control, and lane keeping assistance systems. Summary of the Invention
[0003] This disclosure relates to a system for coordinating the control of multiple vehicles in a manner that can maintain an effective average speed of the vehicles and can have a low likelihood of deceleration (e.g., a low likelihood of "phantom jams"). A "phantom jam" is a temporary traffic jam that spontaneously forms due to typical human driving behavior (i.e., without an external cause such as a construction zone or lane closure). The system includes a plurality of vehicles communicatively coupled to each other. The vehicles coordinate by transmitting their own predicted control inputs to other vehicles. For the purposes of this disclosure, a "control input" is one or more values that control the operation of vehicle components. The predicted control inputs cover a plurality of future time steps. When a predicted control input is received from at least one other vehicle, each vehicle determines its predicted control input starting at the next time step and actuates itself based on the predicted control input for the next time step. This process can be repeated at each time step (which means that the predicted control inputs beyond the next time step may change). The ability to anticipate the actions of other vehicles allows for coordination between the vehicles, thereby maintaining an effective average speed, e.g., an average speed higher than the average speed that might otherwise result, with a lower likelihood of deceleration. In addition, the system allows for centralized control by a remote computer in combination with decentralized processing on the vehicles. The remote computer can determine a target speed for the vehicles, and the vehicles can determine their predicted control inputs based on the target speed and the predicted control inputs from other vehicles. Decentralized processing can allow for calculations to be fast enough for real-time operation.
[0004] A computer includes a processor and a memory, and the memory stores instructions executable by the processor to: receive a transmission including a non-self-aware prediction control input for at least one non-self-aware vehicle, the transmission originating from the at least one non-self-aware vehicle, the non-self-aware prediction control input being paired with a corresponding future time step starting at the next time step after the current time; determine a self-aware prediction control input for a self-aware vehicle including the computer based on the non-self-aware prediction control input, the self-aware prediction control input being paired with the corresponding future time step starting at the next time step; and actuate the self-aware vehicle according to the self-aware prediction control input paired with the next time step.
[0005] In one example, the instructions may further include instructions for: transmitting the self-aware prediction control input to a server remote from the self-aware vehicle.
[0006] In one example, the instructions may further include instructions for: receiving a second transmission including a second non-self-aware prediction control input for the at least one non-self-aware vehicle, the second non-self-aware prediction control input being paired with the corresponding future time step starting at the subsequent time step immediately after the next time step; when actuating the self-aware vehicle according to the self-aware prediction control input for the next time step, determining a second self-aware prediction control input for the self-aware vehicle based on the second non-self-aware prediction control input, the second self-aware prediction control input being paired with the corresponding future time step starting at the subsequent time step; and then actuating the self-aware vehicle according to the second self-aware prediction control input paired with the subsequent time step.
[0007] In one example, the instructions may further include instructions for: actuating the self-aware vehicle according to the self-aware prediction control input paired with the time step after the next time step.
[0008] In one example, the instructions may further include instructions for: determining the self-aware prediction control input by maximizing a utility function within the future time step. In another example, the instructions may further include instructions for: receiving a second transmission including an optimal speed, the transmission originating outside the self-aware vehicle, and the utility function may reward the forward movement of the self-aware vehicle until the optimal speed is reached.
[0009] In yet another example, the utility function may penalize reverse movement of the self-aware vehicle.
[0010] In yet another example, the utility function may penalize the proximity of the self-aware vehicle to at least one non-self-aware vehicle. In yet another example, the at least one non-self-aware vehicle may include a single non-self-aware vehicle traveling immediately in front of the self-aware vehicle.
[0011] In yet another example, the instructions may further include instructions for maximizing the utility function by performing a grid search on control inputs for possible self-aware predictions.
[0012] In yet another example, the instructions may further include instructions for maximizing the utility function by parameterizing the control inputs for the possible self-aware predictions with a smaller number of variables than the number of control inputs for the self-aware predictions. In yet another example, the instructions may further include instructions for parameterizing the control inputs for the possible self-aware predictions by curve fitting.
[0013] In yet another example, the instructions may further include instructions for determining the value of the utility function based on the predicted states of the self-aware vehicle and the at least one non-self-aware vehicle at the future time step.
[0014] In one example, the control input for the self-aware prediction may specify the acceleration of the self-aware vehicle, and the control input for the non-self-aware prediction may specify the acceleration of the non-self-aware vehicle.
[0015] The system includes a plurality of vehicles communicatively coupled to each other. Each vehicle includes a vehicle computer programmed to: receive a transmission including a non-self-aware predicted control input for at least one of the other vehicles, the transmission originating from at least one of the other vehicles, the non-self-aware predicted control input paired with a corresponding future time step starting at the next time step after the current time; determine a self-aware predicted control input for the vehicle based on the non-self-aware predicted control input, the self-aware predicted control input paired with the corresponding future time step starting at the next time step; actuate the vehicle according to the self-aware predicted control input paired with the next time step; and transmit the self-aware predicted control input to at least one of the other vehicles.
[0016] In one example, the system may further include a remote computer separate from and communicatively coupled to the vehicle, and the remote computer may be programmed to determine an optimal speed based on the state of the vehicle and transmit the optimal speed to the vehicle. In another example, each vehicle computer may be programmed to determine a self-aware predicted control input based on the optimal speed.
[0017] In yet another example, the optimal speed may be the target speed of the vehicle that maximizes the average speed of the vehicle.
[0018] In yet another example, the optimal speed may be the target speed of the vehicle that maximizes the average speed of the vehicle while constraining the average value of the amplitude oscillation of the speed of the vehicle within a preset limit.
[0019] A method includes: receiving a transmission including a non-self-aware predicted control input for at least one non-self-aware vehicle, the transmission originating from the at least one non-self-aware vehicle, the non-self-aware predicted control input being paired with a corresponding future time step starting at the next time step after the current time; determining a self-aware predicted control input for a self-aware vehicle based on the non-self-aware predicted control input, the self-aware predicted control input being paired with the corresponding future time step starting at the next time step; actuating the self-aware vehicle according to the self-aware predicted control input paired with the next time step; and transmitting the self-aware predicted control input to a server remote from the self-aware vehicle. BRIEF DESCRIPTION OF THE DRAWINGS
[0020] Figure 1 is a block diagram of an exemplary system of a vehicle.
[0021] Figure 2 is a graphical top view of a schematic scenario of a vehicle traveling on a road.
[0022] Figure 3 is a flowchart of an exemplary process of a remote computer controlling a vehicle.
[0023] Figure 4 is a flowchart of an exemplary process of a remote computer on one of the vehicles controlling that vehicle. DETAILED DESCRIPTION
[0024] Referring to the accompanying drawings, in which like reference numerals indicate like parts throughout the several views, system 100 includes a plurality of vehicles 105 communicatively coupled to each other. Each vehicle 105 includes a vehicle computer 110 programmed to: receive a transmission including a control input comprising a non-self-aware prediction for at least one of the other vehicles 105; determine a control input for a self-aware prediction for vehicle 105 based on the non-self-aware prediction control input; actuate vehicle 105 according to the self-aware prediction control input paired with the next time step after the current time; and transmit the self-aware prediction control input to at least one of the other vehicles 105. The term "self-aware" describes something related to the vehicle 105 whose actions are being discussed, and the term "non-self-aware" refers to other vehicles 105 other than the self-aware vehicle 105. The transmission originates from at least one of the other vehicles 105. The non-self-aware prediction control input is paired with a corresponding future time step starting at the next time step. The self-aware prediction control input is paired with a corresponding future time step starting at the next time step.
[0025] Referring Figure 1 , system 100 includes a remote computer 115, a network 120, and a plurality of vehicles 105. The remote computer 115 and the vehicles 105 are communicatively coupled to each other via the network 120. The remote computer 115 is separate from the vehicles 105. For example, the remote computer 115 may be at a fixed location separated from the vehicles 105, such as as part of an infrastructure component. As described below, the remote computer 115 may provide central coordination for the vehicles 105.
[0026] The remote computer 115 is a microprocessor-based computing device, such as a general-purpose computing device including a processor and a memory. The memory of the remote computer 115 may include a medium for storing instructions executable by the processor and for electronically storing data and / or databases, and / or the remote computer 115 may include a structure such as the foregoing structure providing the programming. The remote computer 115 may be a plurality of computers coupled together.
[0027] The network 120 represents one or more mechanisms by which the remote computer 115 and the vehicles 105 may communicate with each other. Thus, the network 120 may be one or more of a variety of wired or wireless communication mechanisms, including any desired combination of wired (e.g., cable and fiber optic) and / or wireless (e.g., cellular, wireless, satellite, microwave, and radio frequency) communication mechanisms, and any desired network topology (or topologies when using multiple communication mechanisms). Exemplary communication networks include wireless communication networks that provide data communication services (e.g., using IEEE 802.11, Cellular-V2X (CV2X), Dedicated Short Range Communications (DSRC), etc., local area network (LAN) and / or wide area network (WAN) including the Internet.
[0028] Each vehicle 105 can be any passenger or commercial vehicle, such as a sedan, truck, sport utility vehicle, crossover, van, minivan, taxi, bus, etc. Each vehicle 105 can include a vehicle computer 110, a propulsion system 125, a braking system 130, and a transceiver 135, as well as other systems and components.
[0029] The vehicle computer 110 is a microprocessor-based computing device, such as a general-purpose computing device (including a processor and memory, an electronic controller, etc.), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), a combination of the foregoing, etc. Generally, hardware description languages such as VHDL (VHSIC (Very High Speed Integrated Circuit) Hardware Description Language) are used in electronic design automation to describe digital and mixed-signal systems such as FPGA and ASIC. For example, an ASIC is manufactured based on the VHDL programming provided before manufacturing, and the logic components inside an FPGA can be configured based on, for example, VHDL programming stored in a memory electrically connected to the FPGA circuit. Thus, the vehicle computer 110 can include a processor, memory, etc. The memory of the vehicle computer 110 can include a medium for storing instructions executable by the processor and for electronically storing data and / or databases, and / or the vehicle computer 110 can include structures such as the foregoing structures that provide programming. The vehicle computer 110 can be a plurality of computers coupled together.
[0030] The propulsion system 125 of each vehicle 105 generates energy and converts the energy into the movement of the vehicle 105. The propulsion system 125 can be a conventional vehicle propulsion subsystem. For example, a conventional powertrain including an internal combustion engine coupled to a transmission that transfers rotational motion to the wheels; an electric powertrain including a battery, an electric motor, and a transmission that transfers rotational motion to the wheels; a hybrid powertrain including elements of a conventional powertrain and an electric powertrain; or any other type of propulsion device. The propulsion system 125 can include an electronic control unit (ECU) etc. that communicates with and receives input from the vehicle computer 110 and / or a human operator. The human operator can control the propulsion system 125 via, for example, an accelerator pedal and / or a gear shifter.
[0031] The braking system 130 of each vehicle 105 is typically a conventional vehicle braking subsystem and resists the movement of the vehicle 105, thereby slowing down and / or stopping the vehicle 105. The braking system 130 may include friction brakes such as disc brakes, drum brakes, band brakes, etc.; regenerative brakes; any other suitable type of brakes; or combinations thereof. The braking system 130 may include an electronic control unit (ECU) etc. that communicates with and receives input from the vehicle computer 110 and / or a human operator. The human operator may control the braking system 130 via, for example, a brake pedal.
[0032] The transceiver 135 of each vehicle 105 may be adapted to wirelessly transmit signals via any suitable wireless communication protocol such as cellular, low power (BLE), ultra-wideband (UWB), WiFi, IEEE 802.11a / b / g / p, cellular-V2X (CV2X), dedicated short range communication (DSRC), other RF (radio frequency) communications, etc.). The transceiver 135 may be adapted to communicate with a remote server (i.e., a server that is different from and separated from the vehicle 105). The remote server may be located outside the vehicle 105. For example, the remote server may be associated with another vehicle 105 (e.g., V2V communication), associated with an infrastructure component (e.g., V2I communication with the remote computer 115), associated with an emergency responder, associated with a mobile device associated with the owner of the vehicle 105, etc. The transceiver 135 may be a single device or may include separate transmitter and receiver.
[0033] Reference Figure 2 , the vehicles 105 are traveling on the same road 200 or the same series of interconnected roads 200. In the specific examples described herein, the vehicles 105 are traveling in the same direction along the same single-lane road 200 or the same lane of a multi-lane road 200. The techniques herein may be extended to other scenarios in which the vehicles 105 are interacting.
[0034] When describing the programming in one of the vehicle computers 110, the modifier "self-aware" refers to the vehicle 105 that includes that particular vehicle computer 110, and the modifier "non-self-aware" refers to other vehicles 105 that do not include that particular vehicle computer 110. For ease of description, the programming of a single vehicle computer 110 will be described. The same programming may be implemented on all vehicle computers 110.
[0035] The determination described below can be performed for a set of future time steps. The future time steps are discrete instances in time. The future time steps can have a uniform length Δt selected based on the computational speed of the vehicle computer 110 and the latency of the communication between the vehicle 105. The future time steps can start at the next time step after the current time step. The set of future time steps can define a time range, i.e., the maximum length of time into the future from the current time at which the computation is performed. The time range can be defined by the number of time steps H, which means the length of the time range is given by HΔt.
[0036] The vehicle computer 110 and the remote computer 115 can be programmed to receive or determine the motion state of one or more of the vehicles 105. For the purposes of this disclosure, “motion state” is defined as a mathematical description of the position and / or motion of an entity. For example, the motion state of each vehicle 105 can include position, speed, and acceleration, e.g., ξ i,t ={x i,t , v i,t , a i,t}, where the subscript i is the index value of the vehicle 105, the subscript t is the value of the time step, x is the position, v is the speed, and a is the acceleration. For a single-lane road 200, the position x, speed v, and acceleration a can be one-dimensional, i.e., scalar, where a positive value indicates the direction of travel forward on the road 200, and a negative value indicates the direction of travel backward on the road 200.
[0037] The vehicle computer 110 is programmed to actuate the self-aware vehicle 105 based on the control input u i,t . For the purposes of this disclosure, “control input” is one or more values that control the operation of the components of the vehicle 105. For example, the vehicle computer 110 can actuate the propulsion system 125 and / or the braking system 130 of the self-aware vehicle 105 based on the control input u i,t . The control input u i,t can specify the acceleration of the self-aware vehicle 105. Actuating the propulsion system 125 based on the control input can include: for a positive value of the control input u i,t , engaging the throttle so that the acceleration a i,t of the self-aware vehicle 105 matches the control input u i,t . Actuating the braking system 130 based on the control input can include: for a positive value of the control input u i,t , engaging the braking system 130 such that the acceleration a i,t of the vehicle 105 matches the control input u i,t .
[0038] The vehicle computer 110 and the remote computer 115 can be programmed to determine the motion state of one or more of the vehicles 105 at future time steps. The vehicle computer 110 or the remote computer 115 can execute a physics-based model of the vehicle 105 based on the motion state of the vehicle 105 at the previous time step and the predicted control inputs to the vehicle 105. For example, the position of the vehicle 105 at a future time step can be the sum of the position at the immediately previous time step and the product of the velocity at the immediately previous time step and the length of the time step. The position can be calculated with a preset modulus, which effectively models a single-lane road 200 as a loop with a circumference equal to the modulus. The loop model can simplify calculations through future time steps without loss of accuracy. For example, the position of the vehicle 105 at a future time step can be the sum of the velocity at the immediately previous time step and the product of the acceleration at the immediately previous time step and the length of the time step. The acceleration can be weighted between the acceleration at the previous time step, the control input at the previous time step, and the control input at the second-nearest time step. The computer can iteratively determine the predicted motion state at future time steps, e.g., starting from the current time step and determining each time step up to the future time step, e.g., as in the following set of expressions:
[0039]
[0040]
[0041] where μ indicates a noise term, C is the modulus, γ is the weight of the acceleration, and is the predicted control input. The modulus C can be chosen to be large enough to cover all the vehicles 105. The weight γ can be a preset value selected based on how the propulsion system 125 and the braking system 130 typically respond. For non-self-aware vehicles 105, the predicted control input can be received directly or via the remote computer 115 in a transmission from the vehicle 105 of interest. For self-aware vehicles 105, the predicted control input can be determined as described below.
[0042] The remote computer 115 can be programmed to determine one or more aggregate values that characterize the vehicle 105 as a group. For example, the remote computer 115 can be programmed to determine the average speed of the vehicle 105, e.g., the mean of the predicted speeds of the vehicle 105 over a time range, as in the following expression:
[0043] V≡mean i,t (v i,t )
[0044] where the mean k() is the mean of the independent variables of the variable in subscript k. As described above, the computer can iteratively determine the predicted speed of the vehicle 105 based on the current motion state of each vehicle 105 and the predicted control inputs received from that vehicle 105. For another example, the remote computer 115 can be programmed to determine the average value of the amplitude oscillation of the speed of the vehicle 105, e.g., the mean value over time of the speed difference between the fastest vehicle 105 and the slowest vehicle 105, as in the following expression:
[0045]
[0046] where is the maximum value of the independent variable achieved by varying i, and is the minimum value of the independent variable achieved by varying i.
[0047] The vehicle 105 can coordinate with the target speed shared by the vehicle 105. The target speed is the speed at which the vehicle 105 attempts to travel under constraints such as proximity to other vehicles 105. The remote computer 115 can set the target speed to the optimal speed. The optimal speed can be the target speed of the vehicle 105 that maximizes the average speed of the vehicle 105 while constraining the average value of the amplitude oscillation of the speed of the vehicle 105 within a preset limit.
[0048]
[0049] where is the optimal speed, v* is the target speed, and K is the preset limit. The preset limit K can be selected to minimize the likelihood of a phantom jam. For example, the preset limit K can be zero.
[0050] The remote computer 115 can be programmed to determine the optimal speed based on the motion state of the vehicle 105. For example, the remote computer 115 can execute an optimization algorithm to find the target speed that results in the maximum average speed within the predicted speed over a time range, starting from the motion state of the vehicle 105 at the current time step. For faster calculation, the remote computer 115 can pre-load multiple scenarios and the corresponding optimal speeds, and the computer can select the optimal speed corresponding to the pre-loaded scenario that best matches the current motion state of the vehicle 105. The pre-loaded scenarios can differ in terms of the density and distribution of the vehicles 105. The density can be in units of the number of vehicles 105 per linear distance along the road 200. The distribution can be a measure of the degree of uniformity or non-uniformity of the distribution of the vehicles 105 along the road 200. The corresponding optimal speeds can be determined in advance by executing the optimization algorithm for each scenario. Since the calculation is performed in advance, the calculation time for each pre-loaded scenario can be significantly longer than one time step.
[0051] The remote computer 115 can be programmed to transmit an optimal speed to the vehicle 105, e.g., transmit a transmission including the optimal speed to the vehicle 105. The transmission can include additional data as well as the optimal speed. The remote computer 115 can determine and transmit the optimal speed at each time step. Thus, the transmission originates from outside the vehicle 105. The vehicle computer 110 is programmed to receive, e.g., via the transceiver 135, a transmission including the optimal speed. The vehicle computer 110 uses the optimal speed to determine a control input for the self-awareness prediction, as described below.
[0052] Upon receiving the optimal speed, the vehicle computer 110 can be programmed to perform the following steps to: determine a control input for the self-awareness prediction and actuate the self-aware vehicle 105 based on the control input for the self-awareness prediction for the next time step. Alternatively, the remote computer 115 can be programmed to perform the following steps: determine a predicted control input for the vehicle 105 and actuate the vehicle 105 based on the corresponding predicted control input, e.g., by transmitting the corresponding predicted control input to the vehicle 105. In this case, the remote computer 115 performs the steps in parallel for each vehicle 105.
[0053] The vehicle computer 110 or the remote computer 115 is programmed to determine the value of a utility function. The form of the utility function is chosen to reward or punish certain actions of the self-aware vehicle 105. The utility function can include terms related to the forward movement of the vehicle 105, the backward movement of the vehicle 105, and / or the proximity of the vehicle 105 to other vehicles 105, which will be described in turn below. The utility function can be the sum over time steps of a time horizon of the sum of the terms, e.g., where each term is weighted to make the terms commensurable and express the priority between the terms, e.g., as in the following expression:
[0054]
[0055] where k is the index of the term, w is the weight, and U is the term. Parentheses are used to indicate when a variable is a superscript rather than a power. For forward movement, the index k can be 1, for backward movement, the index can be 2, and for proximity to other vehicles 105, the index can be 3.
[0056] The utility function (e.g., the first term of the utility function) can reward the forward movement of the vehicle 105 of interest until it reaches the optimal speed For example, the first term can include the speed v of the vehicle 105 i,t (possibly using the acceleration a i,t adjusted to the next time step) and the optimal speed The first term can be an exponential function, i.e., the Euler number e to the power of the independent variable, which can be at the speed v of the vehicle 105i,t and the optimal speed provides a greater differential as it gets closer. For example, the first term can be given by the following expression:
[0057]
[0058] where exp() is the exponential function, and is a scaling term. The weight w of the first term 1 can be a positive value to indicate support for forward movement, e.g., 1.
[0059] The utility function (e.g., the second term of the utility function) can penalize the backward movement of the self-aware vehicle 105. For example, the second term can be the exponential function of the negative value of the speed v i ,t of the vehicle 105 (possibly using the acceleration a i,t adjusted to the next time step), e.g., as shown in the following expression:
[0060]
[0061] where and are scaling or adjustment terms. The weight w of the second term 2 can be a negative value to indicate support for backward movement, e.g., –1.
[0062] The utility function (e.g., the third term of the utility function) penalizes the proximity of the self-aware vehicle 105 to one of the non-self-aware vehicles 105 (e.g., the non-self-aware vehicle 105 traveling immediately in front of the self-aware vehicle 105), which will be referred to as the leading vehicle 105. For example, the third term can be based on the distance between the self-aware vehicle 105 and the leading vehicle 105, e.g., the distance between the front bumper of the self-aware vehicle 105 and the rear bumper of the leading vehicle 105. The third term can be based on the ratio between the distance and the function of the speeds of the self-aware vehicle 105 and the leading vehicle 105. The function of the speed can increase with the speed of the self-aware vehicle 105 and can increase as the self-aware vehicle 105 moves closer to the leading vehicle 105, as indicated by their speeds. For example, the third term can be given by the following set of expressions:
[0063]
[0064] Δx i,i+1,t =(x i+1,t +v i+1,t Δt - L i+1 / 2 - (x i,t +v i,t Δt - L i / 2)
[0065]
[0066] where Δx i,j,t is the distance between the bumpers of the i-th vehicle and the j-th vehicle 105 at the t-th time step, δ is a function of speed, L i is the length of the i-th vehicle 105, and and are scaling or adjustment terms. The weight w 3 of the third term can be negative to indicate an undesired backward movement and can have a magnitude greater than either of the weights w 1 , w 2 to indicate a higher priority for the third term, e.g., –10.
[0067] Alternatively, the utility function can be a sum of transformed versions of the foregoing terms, e.g., where each transformed term is weighted as described above, e.g., in the following expression:
[0068]
[0069] where g k is the transformation function for the k-th term. The transformation function can be chosen to make the prediction closer to typical human operation of the vehicle 105. The transformation function represents the utility of each term over a time horizon rather than at a single time step, and thus the above expression lacks the summation over time steps. For example, the corresponding transformation functions g 1 , g 2 for the first and second terms can be the predicted motion state at the next time step t+1 replacing the motion state at the current time step t. For a time horizon of length t+H+1, the transformation function g 3 for the third term can be the maximum value of the third term in the future time steps starting from the next time step t+1.
[0070] The vehicle computer 110 or the remote computer 115 is programmed to determine a control input for the self-aware prediction based on a control input for a non-self-aware prediction of at least one non-self-aware vehicle 105 and based on the optimal speed, i.e., a predicted control input for the self-aware vehicle 105. The vehicle computer 110 or the remote computer 115 determines a control input for the self-aware prediction that maximizes the utility function over future time steps (e.g., maximizes the aggregation of the values of the utility function at each of the corresponding future time steps). Determining the control input for the self-aware prediction is based on the optimal speed, e.g., because the optimal speed is an input to the first term of the utility function. As an overall overview, the vehicle computer 110 or the remote computer 115 determines a control input for the self-aware prediction, which serves as an iterative best response to the control input for the non-self-aware prediction, where "best response" is measured using the utility function. Prior to the first iteration, the vehicle computer 110 or the remote computer 115 initializes the control input for the self-aware prediction and receives the control input for the non-self-aware prediction. The vehicle computer 110 or the remote computer 115 is programmed to determine the predicted motion states of the self-aware vehicle 105 and at least one non-self-aware vehicle 105 based on the control input for the self-aware prediction from the previous iteration (starting from the initialized control input for the self-aware prediction) and based on the non-self-aware control input. Next, the vehicle computer 110 or the remote computer 115 determines the total value of the utility function based on the predicted motion states. Finally, the vehicle computer 110 or the remote computer 115 updates the control input for the self-aware prediction, e.g., by performing a grid search over a set of parameterized control inputs for the self-aware prediction. The vehicle computer 110 or the remote computer 115 iteratively performs these steps for a preset number of iterations or until the control input for the self-aware prediction converges. The vehicle computer 110 transmits the control input for the self-aware prediction from the final iteration to the remote computer 115 and / or the non-self-aware vehicle 105, or the remote computer 115 transmits the corresponding predicted control input within the next time step from the final iteration to the corresponding vehicle 105. The vehicle computer 110 actuates the self-aware vehicle 105 based on the control input for the self-aware prediction within the next time step from the final iteration. The vehicle computer 110 or the remote computer 115 performs the foregoing steps (from initialization to transmission and actuation) at each time step.
[0071] The control input for the self-aware prediction and the control input for the non-self-aware prediction are paired with the corresponding future time steps starting at the next time step within the time horizon. In other words, the predicted control input for each vehicle 105 includes one predicted control input for each time step from the next time step t+1 after the current time t until the last time step within the time horizon H, i.e., u i,t+h, where h = {0, 1, 2, … H}.
[0072] The vehicle computer 110 or the remote computer 115 is programmed to initialize the control input for the self-awareness prediction. For example, the control input for the self-awareness prediction can be initialized to a preset value. The preset value can be, for example, the control input of the final self-awareness prediction from the previous time step, or zero.
[0073] The vehicle computer 110 is programmed to receive a transmission including the control input for the non-self-awareness prediction for at least one non-self-awareness vehicle 105. The transmission of the control input for the non-self-awareness prediction for a particular non-self-awareness vehicle 105 originates from that particular non-self-awareness vehicle 105, and the transmission can be directly transmitted from the non-self-awareness vehicle 105 to the self-awareness vehicle 105 or indirectly transmitted via the remote computer 115. For a single-lane implementation, the at least one non-self-awareness vehicle 105 can be the non-self-awareness vehicle 105 directly in front of the self-awareness vehicle 105, i.e., the leading non-self-awareness vehicle 105 closest to the self-awareness vehicle 105. Alternatively, the remote computer 115 receives the control input of the prediction from the previous time step.
[0074] The vehicle computer 110 or the remote computer 115 is programmed to determine the predicted motion states of the self-awareness vehicle 105 and at least one non-self-awareness vehicle 105 within a time range. For the self-awareness vehicle 105, the vehicle computer 110 can use the above equations and input the control input of the self-awareness prediction from the previous iteration (starting from the initialized control input of the self-awareness prediction) into the equations to determine the motion state of the self-awareness prediction at each time step until the final time step in the time range. For the self-awareness vehicle 105, the vehicle computer 110 can use the above equations and input the received control input of the non-self-awareness prediction into the equations to determine the motion state of the non-self-awareness prediction at each time step until the final time step in the time range. Alternatively, the remote computer 115 can use the above equations and input the corresponding control input of the prediction from the previous iteration (starting from the initialized control input of the prediction) into the equations to determine the predicted motion state of each vehicle 105 at each time step until the final time step in the time range.
[0075] The vehicle computer 110 or the remote computer 115 is programmed to determine the value of the utility function based on the motion state of the self-awareness prediction and the motion state of the non-self-awareness prediction at future time steps. The vehicle computer 110 or the remote computer 115 determines the value of the utility function by inputting the motion state of the self-awareness prediction and the motion state of the non-self-awareness prediction within the time step into the above untransformed or transformed equations for the utility function.
[0076] The vehicle computer 110 or the remote computer 115 is programmed to update the control input of the self-awareness prediction based on the value of the utility function. As a general overview, the vehicle computer 110 can parameterize the control input of the self-awareness prediction into a smaller number of variables and perform a grid search. The use of the grid search helps to find the global maximum rather than converging to a local maximum.
[0077] The vehicle computer 110 or the remote computer 115 can parameterize the control input of the self-awareness prediction into a smaller number of variables than the number of the control inputs of the self-awareness prediction. The control inputs of the self-awareness prediction include the number of control inputs equal to the number of time steps of the time horizon (i.e., H+1). In other words, the control input of the self-awareness prediction for each time step is an independent variable. The parameterization defines the control input of the self-awareness prediction according to dummy variables. The number of independent dummy variables can be less than the number of the control inputs of the self-awareness prediction, such as 1 or 2. For example, the vehicle computer 110 or the remote computer 115 can parameterize the control input of the self-awareness prediction by curve fitting the control input of the self-awareness prediction to a set of monomials having progressive powers of the time step time quantity, which is given by the product of the number h of time steps and the length Δt of the time step, for example, as in the following expression:
[0078]
[0079] where are dummy variables. Then, the vehicle computer 110 or the remote computer 115 can truncate the expression to the previous term or the previous two terms, which means that the previous one or two dummy variables are independent, i.e., or and Therefore, the maximization of the utility function occurs on one or two independent variables rather than on H independent variables.
[0080] The vehicle computer 110 or the remote computer 115 can perform a grid search on the control input of the self-awareness prediction, for example, by performing a grid search on the independent dummy variables and using the parameterization definition to transform the results. The grid search determines the results at the points defined by the discrete values of the independent variables, where the points are thus arranged in a grid. In this context, the results are the values of the utility function, and the points are the sets of values of the independent dummy variables, i.e., a scalar value of or having and A two-dimensional vector of values. For the number of iterations equal to the number of points in the grid, the vehicle computer 110 or the remote computer 115 can update the control input of the self-awareness prediction to sequentially match each point in the grid, and thereby determine the value of the utility function for each point in the grid. In the next iteration after those iterations, the control input of the self-awareness prediction can be set to the point having the maximum value of the utility function among the points of the grid.
[0081] The vehicle computer 110 or the remote computer 115 can perform the iterations as described until a termination condition is met. For example, the termination condition can be that the value of the utility function converges in the iteration, e.g., remains within a small preset range of a certain value for multiple iterations. For another example, the termination condition can be that the vehicle computer 110 or the remote computer 115 has performed a preset number of iterations. For another example, the termination condition can be convergence or a preset number of iterations, whichever occurs first.
[0082] The vehicle computer 110 is programmed to transmit the control input of the self-awareness prediction to a server remote from the self-aware vehicle 105 (e.g., the remote computer 115 and / or nearby non-self-aware vehicles 105) via the transceiver 135. Alternatively, the remote computer 115 is programmed to transmit the corresponding predicted control input for the next time step to the corresponding vehicle 105, i.e., each vehicle 105 receives the control input of the self-awareness prediction for the next time step.
[0083] The vehicle computer 110 is programmed to actuate the self-aware vehicle 105 according to the control input of the self-awareness prediction paired with the next time step t + 1 when determining the control input of the self-awareness prediction for future steps t + 1 to H or receiving the control input of the self-awareness prediction for the next time step t + 1. For example, the vehicle computer 110 can actuate the propulsion system 125 or the braking system 130 to match the acceleration specified in the control input of the self-awareness prediction for the next time step t + 1, as described above.
[0084] The vehicle computer 110 is programmed to, when actuating the self-aware vehicle 105 based on the control input of the self-aware prediction for the next time step t+1, perform the foregoing steps again to determine a new self-aware predicted control input. For example, initialize the self-aware predicted control input (starting at the subsequent time step t+2 for the entire time range up to H+1), receive a transmission including the non-self-aware predicted control input (starting at the subsequent time step t+2 for the entire time range up to H+1), determine the self-aware predicted control input (starting at the subsequent time step t+2 for the entire time range up to H+1), and actuate the self-aware vehicle 105 based on the newly determined self-aware predicted control input for the subsequent time step t+2. Thus, the vehicle computer 110 avoids actuating the self-aware vehicle 105 based on the previously determined self-aware predicted control input for the time steps after the next time step t+1. The benefit of the self-aware predicted control input beyond the next time step is to coordinate activities with the non-self-aware vehicle 105 rather than to control the self-aware vehicle 105. Alternatively, the remote computer 115 is programmed to, when transmitting the self-aware predicted control input for the next time step, perform the foregoing steps again to determine a new predicted control input for all vehicles 105.
[0085] Figure 3 is a flowchart of an exemplary process 300 in which the remote computer 115 coordinates the activities of the vehicles 105. The memory of the remote computer 115 stores executable instructions for performing the steps of the process 300, and / or the programming may be implemented in a structure such as that mentioned above. As an overall overview of the process 300, the remote computer 115 receives the predicted control inputs and motion states of the vehicles 105, determines the optimal speed, and transmits the optimal speed, motion state, and predicted control input to the vehicles 105.
[0086] The process 300 begins at block 305, where the remote computer 115 receives transmissions from each vehicle 105, the transmissions including the predicted control input and motion state of that vehicle 105.
[0087] Next, at block 310, the remote computer 115 determines the optimal speed based on the motion states of the vehicles 105, as described above.
[0088] Next, at block 315, the remote computer 115 transmits the optimal speed, predicted control input, and motion state to the vehicles 105.
[0089] Next, in decision block 320, the remote computer 115 determines whether a condition for ending process 300 has occurred, e.g., the remote computer 115 is powering down, the remote computer 115 is updating its software, no vehicle 105 is within the range of the remote computer 115, etc. In the absence of such a condition, process 300 returns to block 305 at the next time step to re-determine the optimal speed. When such a condition occurs, process 300 ends.
[0090] Figure 4 FIG. 4 is a flowchart showing an exemplary process 400 in which the vehicle computer 110 or the remote computer 115 controls the self-aware vehicle 105 and coordinates with the non-self-aware vehicle 105. The memory of the vehicle computer 110 and / or the remote computer 115 stores executable instructions for performing the steps of process 400, and / or can be programmed in a structure such as that mentioned above. As an overall overview of process 400, the vehicle computer 110 or the remote computer 115 receives control inputs of the motion state and non-self-aware prediction, receives the optimal speed, and initializes the control input of the self-aware prediction. The vehicle computer 110 or the remote computer 115 iteratively determines the predicted motion state, determines the value of the utility function, and updates the control input of the self-aware prediction until a termination condition is met. Then, the vehicle computer 110 actuates the self-aware vehicle 105 according to the control input of the self-aware prediction for the next time step, and transmits the control input of the self-aware prediction to the remote computer 115 and the non-self-aware vehicle 105, or the remote computer 115 transmits the control input of the self-aware prediction for the next time step to each vehicle 105 for actuating that vehicle 105, and stores the predicted control input for use at the next time step. As long as the self-aware vehicle 105 remains powered on and remains in an environment controlled by the remote computer 115, process 400 repeats for each time step.
[0091] Process 400 begins at block 405, where the vehicle computer 110 receives a transmission including the control input of the non-self-aware prediction and the non-self-aware motion state of the non-self-aware vehicle 105, or the remote computer 115 receives a transmission including the motion state of the vehicle 105, as described above.
[0092] Next, in block 410, the vehicle computer 110 receives a transmission including the optimal speed from the remote computer 115, or the remote computer 115 loads the optimal speed determined as above, as described above.
[0093] Next, in block 415, the vehicle computer 110 or the remote computer 115 is programmed to initialize the control input of the self-aware prediction, as described above.
[0094] Next, in block 420, vehicle computer 110 or remote computer 115 determines the predicted motion states of self-aware vehicle 105 and non-self-aware vehicle 105 based on the self-aware and non-self-aware motion states and the self-aware and non-self-aware predicted control inputs, as described above. Remote computer 115 determines the predicted motion states of all vehicles 105 in parallel.
[0095] Next, in block 425, vehicle computer 110 or remote computer 115 determines the value of the utility function based on the predicted motion states over a time horizon, as described above.
[0096] Next, in decision block 430, vehicle computer 110 or remote computer 115 determines whether a termination condition is met, as described above. In response to the termination condition not being met, process 400 proceeds to block 435. In response to the termination condition being met, process 400 proceeds to block 440.
[0097] In block 435, vehicle computer 110 or remote computer 115 updates the self-aware predicted control input, as described above. After block 435, process 400 returns to block 420 for the next iteration.
[0098] In block 440, vehicle computer 110 actuates self-aware vehicle 105 according to the self-aware predicted control input paired with the next time step, as described above. Vehicle computer 110 refrains from actuating self-aware vehicle 105 according to the self-aware predicted control input paired with the next time step, as described above. Alternatively, remote computer 115 transmits the self-aware predicted control input paired with the next time step to each vehicle 105 to cause vehicle computer 110 in that vehicle 105 to actuate that vehicle 105.
[0099] Next, in block 445, vehicle computer 110 instructs transceiver 135 to transmit the self-aware predicted control input and the self-aware motion state to remote computer 115 and non-self-aware vehicle 105, as described above. Alternatively, remote computer 110 stores the predicted control input for vehicle 105 for the next time step.
[0100] Next, in decision block 450, vehicle computer 110 or remote computer 115 determines whether the self-aware vehicle 105 is still operating in an area coordinated by remote computer 115. For example, the area can be a specific road 200, or a specific lane of road 200. In response to the self-aware vehicle 105 still being on and still in the area coordinated by remote computer 115, process 400 returns to block 405 to determine the self-aware predicted control inputs and actuate the self-aware vehicle 105 at the next time step. In response to the vehicle 105 being off or leaving the area, process 400 ends.
[0101] In general, the described computing systems and / or devices may employ any of a variety of computer operating systems, including but by no means limited to the following versions and / or varieties: Ford Applications; AppLink / Smart Device Link middleware; Microsoft Operating System; Microsoft Operating System; Unix Operating System (e.g., the Operating System released by Oracle Corporation of Redwood Shores, California); AIX UNIX Operating System released by International Business Machines Corporation of Armonk, New York; Linux Operating System; Mac OSX and iOS Operating Systems released by Apple Inc. of Cupertino, California; BlackBerry Operating System released by BlackBerry Limited of Waterloo, Canada; and Android Operating System developed by Google Inc. and the Open Handset Alliance; or the CAR Infotainment Platform provided by QNX Software Systems Limited. Examples of computing devices include, but are not limited to, in-vehicle computers, computer workstations, servers, desktops, notebooks, laptop computers, or handheld computers, or some other computing system and / or device.
[0102] Computing devices generally include computer-executable instructions, where the instructions can be executed by one or more computing devices such as those listed above. The computer-executable instructions can be compiled or interpreted from computer programs created using a variety of programming languages and / or technologies, which alone or in combination include but are not limited to Java TM, C, C++, Matlab, Simulink, Stateflow, Visual Basic, Java Script, Python, Perl, HTML, etc. Some of these applications can be compiled and executed on virtual machines such as Java virtual machines, Dalvik virtual machines, etc. Generally, a processor (e.g., a microprocessor) receives instructions from, for example, a memory, a computer-readable medium, etc., and executes these instructions, thereby performing one or more processes, including one or more of the processes described herein. Such instructions and other data can be stored and transmitted using a variety of computer-readable media. Files in a computing device are typically a collection of data stored on a computer-readable medium such as a storage medium, random access memory, etc.
[0103] A computer-readable medium (also referred to as a processor-readable medium) includes any non-transitory (e.g., tangible) medium that participates in providing data (e.g., instructions) that can be read by a computer (e.g., by a processor of the computer). Such media can take many forms, including but not limited to non-volatile media and volatile media. Instructions can be transmitted via one or more transmission media, which include optical fibers, wires, wireless communication, including internal components that make up a system bus coupled to a processor of the computer. Common forms of computer-readable media include, for example, RAM, PROM, EPROM, FLASH-EEPROM, any other memory chip or cartridge, or any other medium from which a computer can read.
[0104] The databases, data repositories, or other data stores described herein can include various mechanisms for storing, accessing / retrieving, and retrieving various data, including hierarchical databases, sets of files in a file system, application databases in a dedicated format, relational database management systems (RDBMS), non-relational databases (NoSQL), graph databases (GDB), etc. Each such data store is typically included within a computing device that employs a computer operating system such as one of those mentioned above, and is accessed via a network in any one or more of a variety of ways. A file system can be accessed from a computer operating system and can include files stored in various formats. In addition to the languages used to create, store, edit, and execute the stored programs (such as the PL / SQL language mentioned above), an RDBMS typically also employs the Structured Query Language (SQL).
[0105] In some examples, system components may be implemented as computer-readable instructions (e.g., software) on one or more computing devices (e.g., servers, personal computers, etc.) and stored on a computer-readable medium associated therewith (e.g., disks, memories, etc.). A computer program product may include such instructions stored on a computer-readable medium for performing the functions described herein.
[0106] In the drawings, like reference numerals indicate like elements. Additionally, some or all of these elements may be varied. With respect to the media, processes, systems, methods, heuristics, etc. described herein, it should be understood that while the steps of such processes, etc. have been described as occurring in a certain ordered sequence, such processes may be practiced by performing the steps in a different order than that described herein. It should also be understood that certain steps may be performed simultaneously, other steps may be added, or certain steps described herein may be omitted. The operations, systems, and methods described herein should always be implemented and / or performed in accordance with applicable owner / user manuals and / or safety guidelines.
[0107] The present disclosure has been described in an illustrative manner, and it should be understood that the terms used are of a descriptive nature and not restrictive. The use of "responsive to", "after determining...", etc. indicates a causal relationship, not just a temporal relationship. Given the above teachings, many modifications and variations of the present disclosure are possible, and the present disclosure may be practiced in other ways than specifically described.
[0108] According to the present invention, there is provided a computer having a processor and a memory, the memory storing instructions executable by the processor to: receive a transmission including a non-self-aware prediction control input for at least one non-self-aware vehicle, the transmission originating from the at least one non-self-aware vehicle, the non-self-aware prediction control input being paired with a corresponding future time step starting at a next time step after the current time; determine a self-aware prediction control input for a self-aware vehicle including the computer based on the non-self-aware prediction control input, the self-aware prediction control input being paired with the corresponding future time step starting at the next time step; and actuate the self-aware vehicle according to the self-aware prediction control input paired with the next time step.
[0109] According to one embodiment, the instructions further include instructions for: transmitting the self-aware prediction control input to a server remote from the self-aware vehicle.
[0110] According to one embodiment, the instructions further include instructions for: receiving a second transmission including a control input for a second non-self-aware prediction for the at least one non-self-aware vehicle, the control input for the second non-self-aware prediction being paired with the respective future time steps starting from a subsequent time step immediately after the next time step; when actuating the self-aware vehicle according to the control input for the self-aware prediction for the next time step, determining a control input for a second self-aware prediction for the self-aware vehicle based on the control input for the second non-self-aware prediction, the control input for the second self-aware prediction being paired with the respective future time steps starting at the subsequent time step; and then actuating the self-aware vehicle according to the control input for the second self-aware prediction paired with the subsequent time step.
[0111] According to one embodiment, the instructions further include instructions for: actuating the self-aware vehicle according to the control input for the self-aware prediction paired with the time step after the next time step.
[0112] According to one embodiment, the instructions may further include instructions for: determining the control input for the self-aware prediction by maximizing a utility function within the future time steps.
[0113] According to one embodiment, the instructions further include instructions for: receiving a second transmission including an optimal speed, the transmission originating from outside the self-aware vehicle; and the utility function rewarding the forward movement of the self-aware vehicle until the optimal speed is reached.
[0114] According to one embodiment, the utility function penalizes the backward movement of the self-aware vehicle.
[0115] According to one embodiment, the utility function penalizes the proximity of the self-aware vehicle to the at least one non-self-aware vehicle.
[0116] According to one embodiment, the at least one non-self-aware vehicle includes a single non-self-aware vehicle traveling immediately in front of the self-aware vehicle.
[0117] According to one embodiment, the instructions further include instructions for: maximizing the utility function by performing a grid search on possible control inputs for the self-aware prediction.
[0118] According to one embodiment, the instructions further include instructions for maximizing the utility function by parameterizing the control inputs of the possible self-awareness prediction with a smaller number of variables than the number of control inputs of the self-awareness prediction.
[0119] According to one embodiment, the instructions further include instructions for parameterizing the control inputs of the possible self-awareness prediction by curve fitting.
[0120] According to one embodiment, the instructions further include instructions for determining the value of the utility function based on the predicted states of the self-aware vehicle and the at least one non-self-aware vehicle at the future time step.
[0121] According to one embodiment, the control input of the self-awareness prediction specifies the acceleration of the self-aware vehicle, and the control input of the non-self-awareness prediction specifies the acceleration of the non-self-aware vehicle.
[0122] According to the present invention, there is provided a system having: a plurality of vehicles communicatively coupled to each other, wherein each vehicle includes a vehicle computer programmed to: receive a transmission including a non-self-awareness prediction control input for at least one of the other vehicles, the transmission originating from at least one of the other vehicles, the non-self-awareness prediction control input being paired with a corresponding future time step starting at the next time step after the current time; determine a self-awareness prediction control input for the vehicle based on the non-self-awareness prediction control input, the self-awareness prediction control input being paired with the corresponding future time step starting at the next time step; actuate the vehicle according to the self-awareness prediction control input paired with the next time step; and transmit the self-awareness prediction control input to at least one of the other vehicles.
[0123] According to one embodiment, the invention further features a remote computer separate from and communicatively coupled to the vehicle, the remote computer being programmed to determine an optimal speed based on the state of the vehicle; and transmit the optimal speed to the vehicle.
[0124] According to one embodiment, each vehicle computer is programmed to determine the self-awareness prediction control input based on the optimal speed.
[0125] According to one embodiment, the optimal speed is the target speed of the vehicle that maximizes the average speed of the vehicle.
[0126] According to one embodiment, the optimal speed is the target speed of the vehicle that maximizes the average speed of the vehicle while constraining the average value of the amplitude oscillation of the speed of the vehicle within a preset limit.
[0127] According to the present invention, a method includes: receiving a transmission including a non-self-aware prediction control input for at least one non-self-aware vehicle, the transmission originating from the at least one non-self-aware vehicle, the non-self-aware prediction control input being paired with a corresponding future time step starting at a next time step after the current time; determining a self-aware prediction control input of a self-aware vehicle based on the non-self-aware prediction control input, the self-aware prediction control input being paired with the corresponding future time step starting at the next time step; actuating the self-aware vehicle according to the self-aware prediction control input paired with the next time step; and transmitting the self-aware prediction control input to a server remote from the self-aware vehicle.
Claims
1. A method comprising: receiving a transmission comprising a non-self-awareness predicted control input for at least one non-self-awareness vehicle, the transmission originating from the at least one non-self-awareness predicted vehicle, the non-self-awareness predicted control input paired with a corresponding future time step beginning at a next time step after a current time; determining a self-awareness predicted control input for a self-aware vehicle, the self-aware vehicle comprising the computer, based on the non-self-awareness predicted control input, the self-awareness predicted control input being paired with the corresponding future time step beginning at the next time step; as well as The self-aware vehicle is actuated according to the self-awareness predicted control input paired with the next time step.
2. The method of claim 1 further comprising transmitting the self-awareness predicted control input to a server remote from the self-aware vehicle.
3. The method of claim 1, further comprising: receiving a second transmission including a second non-self-aware predicted control input for said at least one non-self-aware vehicle, said second non-self-aware predicted control input being paired with said corresponding future time step beginning at a subsequent time step immediately following said next time step; while actuating the self-aware vehicle according to the self-awareness predicted control input for the next time step, determining a second self-awareness predicted control input for the self-aware vehicle based on the second non-self-awareness predicted control input, the second self-awareness predicted control input being paired with the corresponding future time step beginning at the subsequent time step; as well as The self-aware vehicle is then actuated according to the second self-awareness predicted control input paired with the subsequent time step.
4. The method of claim 1 further comprising refraining from actuating the self-aware vehicle based on the self-awareness predicted control input paired with the time step following the next time step.
5. The method of claim 1 further comprising determining the self-awareness predicted control input by maximizing a utility function over the future time step.
6. The method according to claim 5, It also includes receiving a second transmission including an optimal speed, the transmission originating from outside the self-aware vehicle; Wherein the utility function rewards forward motion of the self-aware vehicle until the optimal speed is reached.
7. The method of claim 5, wherein the utility function penalizes backward motion of the self-aware vehicle.
8. The method of claim 5, wherein the at least one non-self-aware vehicle comprises a single non-self-aware vehicle traveling immediately in front of the self-aware vehicle, and the utility function penalizes the proximity of the self-aware vehicle to the single non-self-aware vehicle.
9. The method of claim 5, further comprising maximizing the utility function by performing a grid search over possible self-awareness predicted control inputs.
10. The method of claim 5, further comprising maximizing the utility function by parameterizing possible self-awareness predicted control inputs to a smaller number of variables than the number of self-awareness predicted control inputs.
11. The method of claim 10, further comprising parameterizing the possible self-awareness predicted control inputs by curve fitting.
12. The method of claim 5, further comprising determining a value of the utility function based on predicted states of the self-aware vehicle and the at least one non-self-aware vehicle at the future time step.
13. The method of claim 1, wherein the self-awareness predicted control input specifies an acceleration of the self-aware vehicle and the non-self-awareness predicted control input specifies an acceleration of the non-self-aware vehicle.
14. A computer comprising a processor and a memory, the memory storing instructions executable by the processor to perform the method of one of claims 1 to 13.
15. A self-aware vehicle comprising the computer of claim 14.
