- The paper introduces a bidirectional Mamba model that estimates human yaw from single-antenna UWB channel impulse responses, reaching 38.6° raw mean absolute error without inertial sensors or position data.
- Multi-scale CIR processing and body-placement conditioning let one model handle chest, pocket, and arm-worn tags while masked sequence modeling supports varying anchor availability.
- Kalman post-processing lowers error to 18.9° with motion-based heading cues, but this best result relies on motion-capture positions and requires validation across environments, users, and noisier UWB localization.
Problem and motivation
Indoor UWB localization systems routinely achieve centimeter-level position accuracy, yet the direction a person is facing—yaw orientation—is typically left to secondary sensors such as inertial measurement units. Existing approaches to UWB-based orientation estimation fall into three categories: geometric multi-tag methods that derive heading from the vector between two or more body-mounted tags; UWB–inertial fusion schemes, which attain sub-5° errors but require accelerometers, gyroscopes, or cameras; and UWB-only methods such as UWBOri, which depend on multi-antenna smartphone-grade chips. This paper proposes a purely UWB alternative: yaw is predicted directly from channel impulse response (CIR) measurements recorded at fixed anchors as they receive transmissions from a single single-antenna wearable tag. The core observation is that when a subject rotates, the human body attenuates anchor signals in an orientation-dependent way, so the multipath structure of the CIR encodes heading information.
System model and dataset
The environment consists of Nmax fixed anchors at known positions and one mobile tag. At each time step, each receiving anchor records a CIR vector of C taps plus scalar features (received signal power, first-path power); unavailable anchors are zero-padded under a binary availability mask. The task is to learn a mapping from the temporal sequence of masked multi-anchor observations, together with a categorical tag-placement indicator b, to the ground-truth yaw angle θt∈(−180∘,180∘]. Because yaw is periodic, the model predicts a continuous (cosθ^t,sinθ^t) pair and recovers the angle via atan2.
Data were collected in the IDLab Industrial IoT Lab at Ghent University using five DW1000-based anchors and a DW1000 tag communicating at approximately 2.2 Hz, with an optical motion-capture system providing ground-truth positions and rotation matrices. Three subjects wore the tag at three placements (chest, pocket, arm). Training and validation used in-place rotations at nine fixed locations (80/20 split), while testing used walking trajectories in which both position and orientation change simultaneously—an explicit generalization test from static rotations to realistic motion.
Bidirectional Mamba architecture
Each per-anchor CIR is treated as a one-dimensional time series rather than a flat feature vector, since orientation cues appear in local multipath shape: leading-edge slope, first-path-to-peak spacing, and relative attenuation of later taps. A shared multi-scale convolutional extractor with four parallel branches (kernel sizes 3, 5, 7, 15) maps each CIR into a d/4-channel embedding per branch; adaptive average pooling decouples the representation from C, and average pooling is chosen deliberately because body shadowing manifests as distributed tap-energy reduction rather than a dominant peak. Branch outputs are concatenated and projected to dimension d. Weight sharing across anchors keeps the parameter count independent of Nmax.
A FiLM-style conditioning module maps the placement indicator through a two-layer conditioner and adds it element-wise to every anchor embedding, allowing one model to serve chest, pocket, and arm placements without per-placement retraining. Masked embeddings are then processed by C0 bidirectional Mamba layers, each applying forward and backward selective state-space scans with input-dependent parameters C1, gating, residual connections, and directional fusion. A learnable query aggregates the sequence via masked cross-attention into a regression head producing the C2-normalized angular pair. The selective scan gives linear complexity C3 versus quadratic self-attention, and its input-dependent transitions let the model emphasize discriminative multipath components while suppressing noise taps.
Kalman filter post-processing
Two Kalman filters exploit temporal continuity over a two-dimensional state C4 with a constant-yaw-rate transition model and piecewise-constant white-noise jerk process noise, accommodating the variable superframe intervals of the UWB schedule. The orientation-based filter uses only the network's yaw prediction as measurement, remaining applicable when no position estimate exists. The location-based filter adds a second update using the heading derived from consecutive tag displacements, with measurement noise scaled inversely to displacement magnitude and gated by a minimum-displacement threshold. An important caveat stated by the authors: in the reported implementation, positions come from the motion-capture system, so the location-based result is an upper bound on what UWB-derived positions would deliver.
Results
Models are compared against a rule-based lookup-table baseline that bins yaw from the two strongest received-power anchors, a placement-blind MoCap-heading reference, and a Transformer counterpart trained identically.
| Method |
Temporal |
Location |
MAE (C5) |
| Rule-based (S2) |
✗ |
✗ |
49.5 |
| MoCap heading |
✗ |
✓ |
59.6 |
| Transformer (raw) |
✗ |
✗ |
45.2 |
| Transformer + KF (location) |
✓ |
✓ |
19.3 |
| Mamba (raw) |
✗ |
✗ |
38.6 |
| Mamba + KF (orientation) |
✓ |
✗ |
33.4 |
| Mamba + KF (location) |
✓ |
✓ |
18.9 |
Several findings stand out. First, the raw bidirectional Mamba achieves 38.6° MAE without any position information or temporal smoothing, outperforming both the rule-based baseline and the raw Transformer; it is therefore the most reliable option for a single tag with no location input. Second, the MoCap-heading reference yields only 59.6° despite perfect positions, demonstrating that position-derived heading alone is insufficient without knowledge of tag placement—a notable negative result. Third, the location-based Kalman filter reduces error to 18.9°, a 51% reduction relative to the raw model, with a median error of 9.4° and a 90th-percentile error compressed from 114.4° to 45.0°. The orientation-only filter leaves medians nearly unchanged (23.7° vs. 22.4°) but cuts the tail to 84.0°, indicating that temporal smoothing eliminates large errors rather than shifting the bulk of the distribution. Per-placement analysis shows arm-mounted tags are easiest for raw models (35.8° for Mamba), while pocket placement achieves the best filtered results (13.0°), consistent with strong correlation between walking direction and pocket-tag orientation.
On efficiency, the bidirectional Mamba has 409K parameters and occupies 1.6 MB—2.8× fewer parameters and 2.7× smaller than the Transformer (1.14M, 4.4 MB)—with linear sequence complexity. The authors note this advantage is modest at C6 but becomes significant with denser anchor deployments. Qualitative trajectory plots confirm that the location-based filter tracks ground truth closely, whereas the rule-based method exhibits large erratic jumps unsuitable for fine-grained tracking.
Limitations and open questions
Three limitations deserve emphasis. First, the headline 18.9° result depends on motion-capture-grade positions for the location-based filter; performance with noisy UWB-derived positions is not evaluated, though the authors argue the substitution is straightforward. Second, evaluation covers only three subjects in a single lab environment with five anchors, leaving cross-environment and cross-population generalization unverified—the training data consist of in-place rotations while testing uses walking trajectories, which is a favorable design but still confined to one testbed. Third, the update rate of roughly 2.2 Hz is low relative to IMU-based systems, and the paper does not characterize behavior during rapid turns beyond noting drift in the orientation-only filter. Whether the linear-complexity advantage materializes in denser deployments, and whether the body-part conditioning generalizes to unseen placements, remain open questions.
Conclusion
This work shows that human yaw orientation can be estimated from CIR measurements alone, using a single single-antenna UWB tag and no inertial or auxiliary sensors. A bidirectional Mamba architecture with multi-scale convolutional CIR embeddings and body-part conditioning achieves 38.6° MAE raw, and Kalman post-processing—particularly the location-based variant exploiting position-derived heading—reduces this to 18.9°, more than halving the error of the rule-based baseline. The pipeline operates on hardware already present in many indoor positioning systems, making it a practical complement to existing UWB deployments where adding IMUs or multiple tags is undesirable.