SWiDir — Walking Direction Estimation with Passive WiFi Sensing
Indoor dead reckoning fails because a phone does not point where its owner walks. SWiDir corrects that misalignment using passive WiFi sensing and a training-free Fresnel zone model, cutting 75th-percentile direction error to 8.89° — 64% below the prior state of the art. Published at IEEE MASS 2023.
← All projects Paper (PDF) Code
What it does
SWiDir estimates which direction a person is actually walking, as opposed to which direction their phone happens to be facing. It deploys a small set of WiFi devices to form a “correction zone”; when a user passes through it, passive CSI observations infer the true movement direction and correct the smartphone’s own estimate. The corrected heading is then usable by a dead-reckoning localisation system.
Why — the motivation
Indoor positioning has no GPS, so pedestrian dead reckoning is the fallback: track steps, track heading, integrate. It is cheap, works on any phone, and needs no infrastructure — and it has one dominant error source.
Heading is estimated from the phone’s inertial sensors, so it measures the phone’s orientation, not the person’s trajectory. People hold phones in front of them, at their side, in a pocket, angled while reading, rotated while talking. Every one of those introduces a bias between phone direction and walking direction.
That bias is not noise, and this is the crucial point: it is systematic and it integrates. Dead reckoning accumulates heading error into position error over distance, so a persistent offset of even a few degrees compounds into metres of drift. Better filtering does not fix a bias; you need an external observation of true direction to correct against.
Intuition behind the approach
Between a WiFi transmitter and receiver, the space is structured into Fresnel zones — a family of concentric ellipsoids with the two devices at the foci. As a body crosses these boundaries, the reflected path length changes in a way that produces a characteristic, periodic signature in the received signal.
The insight SWiDir exploits is geometric: the pattern of Fresnel zone crossings depends on the angle at which the body cuts through them. Someone walking perpendicular to the transmitter–receiver line crosses many zones quickly; someone walking parallel crosses few and slowly. The crossing signature therefore encodes the direction of travel, not merely the presence of motion.
That geometry is the reason the method can be training-free. The relationship between movement angle and Fresnel crossing pattern follows from the physical layout rather than from data, so there is no model to fit and no per-environment training set to collect. Given the deployment story — install a few devices in a corridor and have it work — that property is worth more than a few points of accuracy from a learned model that would need retraining in every new building.
How it works
- Deploy a correction zone. A small set of WiFi devices is placed to create a region with usable Fresnel geometry — in the reported testbed, four Raspberry Pis forming a large zone.
- Sense passively. As a user walks through, CSI is observed. Nothing is required of the user and nothing is transmitted by the phone for the purpose.
- Infer true direction geometrically. The Fresnel zone model maps the observed crossing signature to a movement direction, using the geometric relationship between the walking vector and the zone boundaries.
- Correct the smartphone estimate. The inferred direction is fused with the phone’s own inertial heading, removing the phone-versus-body misalignment.
The system is explicitly a hybrid: active smartphone sensing supplies continuous dead reckoning everywhere, and sparse passive WiFi observations supply the periodic ground truth that keeps it from drifting. Neither half is sufficient alone — the phone drifts, and the WiFi zone only covers the corridor where it is installed.
Architecture
Technical specifications
| Sensing modality | Passive WiFi CSI, plus smartphone inertial sensing |
| Testbed | 4 Raspberry Pis forming a single large correction zone |
| Core model | Training-free WiFi Fresnel zone model |
| Learned components | None — direction is derived geometrically |
| Evaluation | 5 participants across 2 real environments |
| Target application | Pedestrian dead reckoning for indoor localisation |
| Venue | IEEE International Conference on Mobile Ad Hoc and Smart Systems (MASS), 2023 |
Optimizations and results
| Approach | 75th-percentile direction error | Relative |
|---|---|---|
| Prior state of the art | ≈ 24.7° | baseline |
| SWiDir | 8.89° | 64% lower error |
Reading that table honestly. The reported result is 8.89° average 75th-percentile error, 64% lower than state-of-the-art existing approaches. The baseline figure above is the value implied by that 64% reduction, shown for scale — the paper is the authority on the exact comparison set.
Two things about the metric choice are worth drawing out:
- 75th percentile rather than mean. Direction estimation produces occasional large errors when a crossing is ambiguous, and a mean would let a good median hide them. Reporting a high percentile commits to the behaviour of the bad cases, which is what a downstream localisation system actually suffers from.
- Degrees of heading, not metres of position. Position error depends on how far the user walks after the correction, so it would conflate this contribution with the rest of the dead-reckoning stack. Heading error isolates what SWiDir actually changes.
What was optimised, and against what. The design target was not raw accuracy in a tuned lab setup but unbiased direction under realistic phone handling, without per-environment training. The 64% reduction came from replacing a learned or heuristic heading correction with an explicit geometric model of the sensing physics — which is also why the result holds across two environments rather than one.
Limitations and honest caveats
- Five participants, two environments. Enough to demonstrate the geometry generalises beyond a single room; not enough to characterise behaviour across gait, pace, and body types.
- Correction is zone-local. The system fixes heading where a correction zone exists. Between zones, dead reckoning drifts as before — this is an anchoring method, not a continuous one.
- Fresnel geometry assumes a reasonably clean line of sight. Heavy multipath or obstruction degrades the crossing signature the model depends on.
SWiDir: Enhancing Smartphone-based Walking Direction Estimation with Passive WiFi Sensing, IEEE MASS 2023. Back to all projects.
