02Known BS/UE pose and Map
2.1LoS: verify the direct zero-bounce path
the data (drives the drawing)
layers
2.2Single bounce: mirror the BS in one known wall
known-map candidate
observed MPC
map-known construction — step
2.3Double bounce: mirror through an ordered wall pair
known-map candidate
observed MPC
map-known construction — step
2.4Triple bounce: extend the known-map image-source chain
known-map candidate
observed MPC
map-known construction — step
2.5Corridor double bounce: test the mapped sequence R → L
known-map candidate
observed MPC
map-known construction — step
2.6Corridor triple bounce: test the mapped sequence R → L → R
known-map candidate
observed MPC
map-known construction — step
03Known UE/BS Pose, Unknown Map
3.1Single bounce: draw everything from (τ, φ, ψ)
the data (drives the drawing)
layers
3.2Double bounce: two virtual anchors, two incidence points
the data — path 1 (single bounce)
the data — path 2 (double bounce)
construction — step
3.3Triple bounce: the recursion run in full
the data — path 1 (single bounce)
the data — path 2 (double bounce)
the data — path 3 (triple bounce)
construction — step
3.4Double bounce, corridor edition: two parallel walls
the data — path 1 (single bounce)
the data — path 2 (double bounce)
construction — step
3.5Triple bounce, corridor edition: parity, and a hypothesis that angles cannot kill
the data — path 1 (single bounce)
the data — path 2 (double bounce)
the data — path 3 (triple bounce)
construction — step
3.6Two-bounce ambiguity: motion alone need not recover the two walls
A composite virtual anchor identifies an ordered reflection transform, not necessarily its individual reflecting planes. For two nonparallel walls meeting at c, rotate both walls by the same angle about c. Their relative angle—and therefore both ordered two-reflection transforms—stay fixed. Every known UE pose keeps exactly the same delay, AoA, and AoD, while the two incidence points and individual walls move.
one unobservable mode
layers
04Known BS Pose, Unknown UE Pose and Map
4.1Single bounce: draw from (τ, φbody, ψ) with unknown θ
the data (drives the drawing)
construction — step
4.2Double bounce: two virtual anchors, two incidence points
the data — path 1 (single bounce)
the data — path 2 (double bounce)
construction — step
4.3Triple bounce: the recursion run in full
the data — path 3 (triple bounce)
construction — step
4.4Double bounce, corridor edition: two parallel walls
the data — path 2 (double bounce)
construction — step
4.5Triple bounce in a corridor: the third hit must reuse wall R
the data — path 3 (triple bounce)
construction — step
Observability depends on the complete measurement model. In the noise-free 2D single-A plus double-A→B construction, the seven unknowns are UE position (2), UE heading (1), and two infinite walls (2 each). Although there are six measured scalars, the shared-wall model is generically rank five, leaving a local two-parameter family. Counting rows only gives a bound; it does not establish rank six. Finite support, visibility, priors, and extra observations can further restrict that family.
A repeated wall is an additional constraint. For a parallel corridor, take the BS as the origin, the normal coordinate as x, and walls R:x=r, L:x=l. The associated images are \(\mathbf v_1=2r\mathbf e_x\), \(\mathbf v_2=2(l-r)\mathbf e_x\), and \(\mathbf v_3=(4r-2l)\mathbf e_x\). Therefore \(\mathbf v_3+\mathbf v_2=\mathbf v_1\). With globally referenced, back-to-source AoA directions \(\mathbf u_i\) and calibrated path lengths, \(\mathbf v_i=\mathbf p+L_i\mathbf u_i\), so \[\mathbf p=L_1\mathbf u_1-L_2\mathbf u_2-L_3\mathbf u_3.\] This directly disproves a universal sliding ambiguity for correctly associated R, R→L, R→L→R paths. It does not resolve an unknown heading by itself; AoD or other constraints must also be used. A reproducible nondegenerate rank-seven example with unknown heading and two initially unconstrained walls is included in the repository tests. Local full rank is not a proof of global uniqueness.
Keep the special case separate. The rank/line demo in §4.6 uses globally referenced directions, single-bounce constraints, and translation variables. Its corridor null direction is valid for that reduced model—not a theorem about every multi-bounce, unknown-heading SLAM problem. Exact ray tests reject inconsistent slider settings; a noisy estimator must instead optimize a covariance-weighted likelihood with physical feasibility constraints.
Model selection can stay ambiguous. A known map does not guarantee a unique bounce count. Retain all statistically plausible, visible ordered sequences; none passing the gate may indicate calibration error, an incomplete map, or an interaction absent from the specular model.
3D residuals and map parameters. The direction-vector version of a delay + AoA + AoD measurement belongs to \(\mathbb R\times\mathbb S^2\times\mathbb S^2\): seven ambient coordinates but five intrinsic residual coordinates, or six with scalar gain. Use a local two-dimensional tangent residual for each direction, with correctly transformed covariance; do not assign an invertible independent three-dimensional Gaussian covariance to a unit vector. A tangent logarithm needs a nonsingular chart and is not uniquely defined at the antipode. An infinite plane has only three geometric degrees of freedom \((\mathbf n,d)\); finite-patch edge position, in-plane orientation, and extent require edge/visibility information or priors. Likewise, use normal plus signed distance for an infinite 2D wall rather than an unobservable tangential center coordinate.
Inference demonstrations. The BP and PMBM animations illustrate structure, not computed posterior accuracy. The GraphSLAM teaching lab supplies associations and optimizes a fixed graph; it is not the separate unlabeled-MPC benchmark. Loopy BP is generally approximate. PMBM formulas require disjoint-set partition sums and the stated detection/clutter model. iSAM2 targets the same fixed-graph objective as a batch solver, but thresholded relinearization and nonlinear local minima need not give identical numerical estimates at every update.
Sources. Leitinger et al., shared-surface multipath data fusion; Leitinger et al., BP-SLAM; Kim et al., PMBM-SLAM; Kaess et al., iSAM2; Ceres, robust loss definition. The rank examples and corridor identity above are independently derived regression checks, not claims attributed to those papers.
4.6Special observability case: globally referenced displacement vectors
This compact derivation grants each translation oᵢ = pᵢ₊₁ − pᵢ directly in the map frame. That is stronger than wheel/IMU odometry expressed in the moving body frame: it effectively supplies an external orientation reference. Under this assumption, same-wall motion can reveal a wall direction from n̂ ∝ ΔE − o, and a link between two nonparallel wall families can determine their offsets. The animation is a useful linear observability special case, not the general nonlinear unknown-heading GraphSLAM backend.