A controller for an adaptive cruise control system of a vehicle, the controller comprising one or more processors and memory in electronic communication with the one or more processors, the memory storing corresponding values for a plurality of constants including a first time gap, a first stopping distance, a second time gap, and a second stopping distance, the memory further storing program instructions that, when executed by the one or more processors, cause the controller to:
- obtain driving condition data generated at least in part by one or more sensors of the vehicle, the driving condition data representing a velocity of the vehicle, a first distance from the vehicle to a leader vehicle in front of the vehicle, and a second distance from the vehicle to a follower vehicle behind the vehicle;
- determine, based at least in part on the driving condition data, a first velocity of the leader vehicle and a second velocity of the follower vehicle;
- determine, based on the second velocity, the second time gap, and the second stopping distance, a threshold safe distance between the vehicle and the follower vehicle;
- determine a difference between the threshold safe distance and the second distance;
- determine, based on the difference, whether the second distance to the follower vehicle is less than the threshold safe distance;
- responsive to a determination that the second distance is less than the threshold safe distance, determine, based on the speed of the vehicle, the first time gap, the first stopping distance, the difference between the threshold safe distance and the second distance, and a safe-spacing policy implemented in the program instructions, a desired distance from the vehicle to the leader vehicle, the controller in conformance with the safe-spacing policy causing the adaptive cruise control system to both avoid collision of the vehicle with the leader vehicle and reduce risk of collision of the vehicle with the follower vehicle;
- and
- control an acceleration of the vehicle to cause the vehicle to move to the desired distance from the leader vehicle, wherein the program instructions, when executed by the one or more processors, implement a hybrid model predictive control (MPC) used by the controller, the hybrid MPC comprising:
- a first MPC disposing the controller in a normal driving mode in which the controller does not use the driving condition data associated with the follower vehicle to determine the desired distance;
- and
- a second MPC disposing the controller in a tailgating follower mode in which the controller uses the driving condition data associated with the follower vehicle to determine the desired distance according to the safe-spacing policy and slow the velocity of the vehicle, the one or more processors executing the program instructions to cause the controller to:
- responsive to a determination that the second distance is not less than the threshold safe distance, switch to or remain in the normal driving mode;
- and
- responsive to the determination that the second distance is less than the threshold safe distance, switch to the tailgating follower mode.