Adaptive Cruise Control

Overview

The Adaptive Cruise Control (ACC) is an ADAS feature that allows a vehicle to maintain a certain speed. This speed can vary over time since is computed as the minimum between the reference value set by the user and the speed that allows the vehicle to fulfill some distance constraints with respect to the surrounding cars. The actual implementation of the ACC exploits simulation information about the surroundings, which is also included in ideal RADAR sensor output, and controls the vehicle actuating the brake and throttle pedals. The type of controller used is a linear and unconstrained Model Predictive Control (MPC).

Usage

In order to load the ACC extension the user has to call the following command in the game engine console that can be accessed pressing Ctrl + @.

extensions.tech_ACC.loadACC(targetSpeeed, debugFlag)

This command will automatically load and start running the ACC.

The inputs are:

  • targetSpeed desired speed in m/s
  • debugFlag Boolean value, if true then the controller generate a .CSV file stored in AppData/Local/BeamNG.drive/<current version> containing target speed, real speed and control input over time.

The fixed target speed can be changed also once the extension is loaded with the following command :

extensions.tech_ACC.changeSpeed(targetSpeed) .

In order to deactivate the extension the following command can be used :

extensions.tech_ACC.unloadACC() .

Example

Here is an example how to load ACC in the console. Similar way, the user can unload the ACC or change the target speed. ACC load example ACC load example.

Last modified: September 10, 2024
On this page:

Any further questions?

Join our discord
Our documentation is currently incomplete and undergoing active development. If you have any questions or feedback, please visit this forum thread.