4. Real-time occupant state estimation

An adaptive restraint system is only as good as its estimate of who is sitting in the seat and how they are sitting. Before the airbag control unit (ACU) can choose a deployment stage, a belt load limiter threshold, or a suppression decision, it must resolve three continuous questions in real time: how much mass is on the seat, where that mass is located relative to the seat reference frame, and what posture the occupant is holding. This chapter treats those three estimation problems as one pipeline — sensing, feature extraction, classification, and fusion — and shows how each output maps onto a concrete deployment decision.

Sensor Set and Reference Frame

Production occupant classification systems typically combine four sensing modalities. Seat-mounted load cells (usually four, at the seat pan corners) measure vertical force. Belt tension sensors in the retractor or buckle measure how much of the occupant's weight is carried by the belt rather than the cushion. Capacitive or resistive occupant presence mats give a coarse pressure distribution across the cushion. Time-of-flight (ToF) or stereo cameras mounted in the headliner or steering column provide range and posture information. Some systems add a seat track position sensor and a seatback angle sensor to normalize the geometry.

All estimates are expressed in the seat reference frame: the origin is the intersection of the seat pan and seatback centerlines, the x-axis points forward along the vehicle, y points to the occupant's left, and z points up. Positive x therefore means the occupant is forward of the nominal seating position. This convention is used consistently below and in the accompanying diagram.

Weight Estimation from Load Cells

A single load cell reading is not occupant weight. It is the sum of occupant mass, seat structure mass, and any preload from belt tension or cargo. The standard approach is a four-cell sum with static tare compensation:

W_raw = F_FL + F_FR + F_RL + F_RR      // sum of four seat-pan cells
W_occ = W_raw - W_tare - k_belt * T_belt
W_occ = clamp(W_occ, 0, W_max)          // reject negative and saturated values

Here W_tare is the empty-seat offset captured at end-of-line and refreshed during key-off, T_belt is belt tension, and k_belt is a calibration coefficient that converts tension into an equivalent vertical load. A typical passenger car uses W_max ≈ 150 kg. The result is filtered with a first-order low-pass (cutoff around 2–5 Hz) to reject road-induced vibration, then compared against classification thresholds.

A representative threshold set for a 5th-percentile female dummy (about 49 kg) and a 50th-percentile male (about 78 kg) might be:

ClassEstimated weight rangeTypical action
Empty / child seat< 25 kgSuppress passenger frontal airbag
Small occupant25–45 kgLow-power stage, reduced belt force
5th-percentile adult45–65 kgStandard stage 1
50th-percentile adult65–95 kgStage 1 or 2 depending on severity
Large adult> 95 kgStage 2, higher belt load limiter

These numbers are illustrative calibration targets, not measured results. The actual thresholds are tuned per vehicle program against FMVSS 208 and Euro NCAP test matrices.

Position Estimation

Position is the occupant's center of gravity projected onto the seat pan, expressed as (x_cg, y_cg). Load cells give a first estimate by computing the weighted centroid of the four corner forces:

x_cg = (F_FL + F_FR - F_RL - F_RR) / W_raw * L_x
y_cg = (F_FL + F_RL - F_FR - F_RR) / W_raw * L_y

where L_x and L_y are the half-distances between cell rows and columns. This centroid is accurate to roughly ±30 mm for a normally seated occupant, but it degrades badly when the occupant leans on the belt or braces against the floor. The ToF camera corrects this by measuring the range to the torso surface and fitting a plane; the plane centroid gives an independent (x_cg, y_cg) that is fused with the load-cell estimate using a simple weighted average, with weights proportional to each sensor's inverse variance.

The critical output is fore-aft position, because it drives airbag timing. An occupant at x_cg = +150 mm (leaning forward) is in the airbag's deployment path and must be treated as out-of-position (OOP). A common rule is to suppress or delay deployment when x_cg exceeds a calibrated limit, typically 120–180 mm depending on seat track position.

Posture Classification

Posture is a discrete label, not a continuous variable. A practical classifier distinguishes at least five states: normal upright, leaning forward, leaning sideways, reclined, and feet on dashboard / braced. The classifier runs on features extracted from the ToF point cloud and the load-cell centroid:

  • Torso inclination angle — the angle between the fitted torso plane normal and the seatback plane normal.
  • Lateral offset — y_cg magnitude, which grows when the occupant leans toward a door.
  • Head-to-seatback distance — a strong indicator of forward lean.
  • Pressure distribution skew — the ratio of front-row to rear-row load-cell force.

A lightweight decision tree or a small neural network (a few hundred parameters) is sufficient. The output is a class label plus a confidence value. When confidence falls below a threshold — for example, when the occupant is moving or the camera is occluded — the system holds the last stable label and flags the estimate as degraded.

Fusion and decision logic. The three estimates are combined into a single occupant state vector [W_occ, x_cg, y_cg, posture, confidence]. The ACU then applies a decision table: if W_occ < 25 kg or posture = child seat, suppress the passenger airbag. If x_cg > 150 mm and posture = leaning forward, delay deployment by 10–20 ms and reduce inflator output. If W_occ > 95 kg and posture = normal, enable the high-power stage and raise the belt load limiter threshold.

Worked Example: A Forward-Leaning 70 kg Occupant

Consider a 70 kg adult leaning forward to adjust the radio. The load cells read F_FL = 210 N, F_FR = 195 N, F_RL = 120 N, F_RR = 110 N. The tare is 40 N per cell and belt tension is 15 N with k_belt = 0.8.

W_raw = 210 + 195 + 120 + 110 = 635 N
W_tare = 4 * 40 = 160 N
W_occ = 635 - 160 - 0.8 * 15 = 463 N ≈ 47 kg   // under-reads due to forward lean
x_cg = (210 + 195 - 120 - 110) / 635 * 0.35 m ≈ +0.096 m = +96 mm

The load-cell weight estimate under-reads because part of the occupant's weight is transferred to the floor through the feet. The ToF camera, however, measures a torso inclination of 28° and a head-to-seatback distance of 310 mm, which the classifier maps to leaning forward with high confidence. The fusion stage therefore trusts the camera's posture label over the load-cell weight, and the ACU applies the forward-lean deployment delay rather than the small-occupant suppression rule. This is the essential value of multi-modal estimation: no single sensor is reliable across all conditions.

Common failure modes. A heavy object placed on the seat (a loaded backpack) can push W_occ above the child-seat threshold and enable the airbag when no occupant is present. A wet seat mat can shift capacitive readings and cause false presence detection. A blocked or fogged ToF lens produces low-confidence posture labels; the system should then fall back to load-cell-only logic and illuminate the airbag warning lamp. Always validate the classifier against these edge cases, not just against the nominal test matrix.

Verification and Calibration

Verification follows a three-tier approach. Bench tests use calibrated weights and a programmable seat fixture to confirm weight accuracy within ±3 kg and centroid accuracy within ±20 mm. Sled tests with instrumented dummies confirm that the posture classifier holds its label through the pre-crash phase. Vehicle-level tests against FMVSS 208 and Euro NCAP confirm that the final deployment decisions meet regulatory and rating requirements. Calibration coefficients — W_tare, k_belt, and the classification thresholds — are stored in non-volatile memory and must be re-validated whenever the seat or sensor hardware changes.

Occupant State Estimation Pipeline Sensors 4× seat load cells Belt tension sensor ToF / stereo camera Seat track & back angle Feature Extraction W_raw, W_occ x_cg, y_cg centroid Torso inclination Pressure skew ratio Classifiers Weight class (5 bins) Position (x_cg, y_cg) Posture (5 states) Confidence score Fusion State vector [W, x, y, posture, conf] Deployment Decision Logic (ACU) W_occ < 25 kg → suppress passenger airbag x_cg > 150 mm & leaning forward → delay 10–20 ms, reduce inflator W_occ > 95 kg & normal posture → stage 2, higher belt load limiter Airbag Stage suppress / stage 1 / stage 2 Belt Load Limiter force threshold (kN) Pretensioner fire / no-fire timing Seat Frame +x +z origin: pan/back

The diagram summarizes the full chain: raw sensor signals feed feature extraction, which drives three parallel classifiers whose outputs are fused into a single state vector. That vector is the sole input to the deployment decision logic, which in turn commands the airbag stage, belt load limiter, and pretensioner. The seat reference frame inset defines the sign convention used throughout — positive x forward, positive z up — so that every threshold in the decision table has an unambiguous geometric meaning.