ADAS

Advanced Driver Assistance Systems help drivers avoid crashes and reduce workload. Learn SAE automation levels, sensors and fusion, core functions (AEB, ACC, LKA, BSD, parking), time-to-collision and braking calculations, the perception–planning–control pipeline, validation and safety standards.

Automatic emergency braking alone cuts rear-end crashes by around 40–50 %. ADAS combines cameras, radar and other sensors with real-time software to warn, brake and steer — from simple warnings to highway autopilots.

The engineering challenge is making systems that act correctly in every real-world scenario, without false or missed activations.

An analogy

ADAS is like a vigilant co-driver who never blinks: always watching distances and lanes, ready to warn or grab the brakes when needed.

Levels of automation (SAE J3016)

Level 0: warnings only. Level 1: steering OR speed assist (ACC or LKA). Level 2: both combined, driver supervises (highway assist). Level 3: conditional automation, driver takes over on request. Level 4: no driver needed within a domain (robotaxis). Level 5: anywhere.

Core functions

Forward collision warning & AEB, adaptive cruise control (ACC) with stop-and-go, lane departure warning & lane keeping, blind-spot detection, rear cross-traffic alert, traffic-sign recognition, driver monitoring, automated parking.

Perception → planning → control

Sensors detect objects and lanes; fusion builds an environment model with tracked objects (Kalman filters); situation analysis predicts paths and risk (TTC); planning chooses target acceleration/steering; control sends requests to brake, powertrain and EPS over CAN/Ethernet.

Validation and safety

Billions of scenario-kilometres can't all be driven, so validation combines real-world data, scenario-based simulation (OpenSCENARIO), HIL/SIL and track testing (Euro NCAP AEB, LSS protocols). Safety: ISO 26262 (faults), ISO 21448 SOTIF (perception limits), UNECE R79/R152/R157 regulations, and cybersecurity.

Formulas

Worked example: TTC and required braking

Given: Stationary car 40 m ahead; Closing speed 20 m/s (72 km/h)

Find: TTC and deceleration to avoid.

Answer: TTC 2 s; 5 m/s² avoids the crash

Worked example: ACC following distance

Given: Time gap 1.8 s at 100 km/h

Find: Following distance.

Answer: ≈ 50 m

AEB decision logic (C, simplified)

typedef enum { AEB_IDLE, AEB_WARN, AEB_PARTIAL, AEB_FULL } aeb_state_t;

aeb_state_t aeb_decide(float dist_m, float v_rel_mps, float max_decel_mps2)
{
    if (v_rel_mps <= 0.1f) return AEB_IDLE;             /* not closing */

    float ttc   = dist_m / v_rel_mps;
    float a_req = (v_rel_mps * v_rel_mps) / (2.0f * dist_m);

    if (a_req > 0.8f * max_decel_mps2 || ttc < 0.8f) return AEB_FULL;    /* ~1 g */
    if (a_req > 4.0f || ttc < 1.4f)                  return AEB_PARTIAL; /* ~0.4 g */
    if (ttc < 2.6f)                                  return AEB_WARN;    /* FCW  */
    return AEB_IDLE;
}

Real AEB adds object classification confidence, driver-override detection, path prediction and staged brake pre-fill.

Common mistakes

Applications

Key takeaways

Going further