This project aims to personalize Advanced Driving-assistance Systems (ADAS) for autonomous vehicles with the self-driving cars simulator CARLA. The two main focus are on personalizing lane changing and personalizing Adaptive Cruise Control (ACC) that includes vehicle following and lane following.

Hardware-In-Loop based simulation with Torque controlled Steering motor and CARLA

Learning Phase

The Learning Phase uses Gaussian Mixture Model (GMM) for clustering the user preferences to into known presets which the ADAS can understand.

The vehicle is initialized with autopilot mode on. To switch between manual control and autopilot mode, press p.

To start or end the learning process, press l in manual control mode. Noted that starting and ending learning process would only collect driver's behavior data. One has to press t to let the model learn from the data and be stored locally.

After learning, one could regenerate the scene by pressing Backspace and turn autopilot mode on to see the performance of the vehicle.

It is advisable to personalize lane following in front in scene 0, to clone vehicle following behavior in scene 1, and to teach the model lane changing in scene 2.


Some sets of data of 3 different drivers are stored in data/Driver_Data.

Lane Following

personalized parameter: target_speed

method: GMM

Driver 1 Set 1 Target Speed Histogram Plot & V-t Plot

All sets of 3 drivers' data

Vehicle Following

personalized parameter: Time Headway (THW)

method: GMM

Driver 1 Set 1 THW, TTCi
All sets of 3 drivers' data

Lane Changing

personalized parameter: Lateral Time, Longitudinal Velocity

method: GMM + COS Trajectory

3 drivers' trained models perform in standard case [10m/s, -3.5m, 15m, -12m]