Paper · 2023-06-11 · cs.RO, cs.LG
Digital Twin-Enhanced Wireless Indoor Navigation: Achieving Efficient Environment Sensing with Zero-Shot Reinforcement Learning
Trains a PPO navigation policy for mmWave indoor navigation with physics terms added to the RL reward: link-state monotonicity, following the AoA of the strongest path, and an SNR-gradient term. Author-reported: on six unseen Gibson maps the normalised path length in 2+-NLOS is 2.5-2.8 versus 4.5-5.1 for end-to-end RL, and success is 1.0 versus 0.40-0.45 on two maps.
Reward designProximal policy optimization (PPO)Hierarchical reinforcement learningDigital twinwireless-navigationmmwavereinforcement-learningreward-shapingdigital-twinzero-shot-generalization
arXivPDFCodeMarkdown17 min read
AI-compiled by claude-haiku-5-5 on 2026-10-25, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
In plain words
A robot has to find a transmitter that is hidden somewhere in a building. It cannot see the transmitter, but it can measure the radio signal arriving from it. Radio signals bounce off walls, so the direction a signal comes from is not always the way to the transmitter. A standard learning robot can learn to find one transmitter, but when the transmitter moves or the room layout changes, it has to be trained again, and it often gets stuck.
This paper adds rules from radio physics to the robot's training score. The rules say that a clear line of sight to the transmitter is a good sign, that the direction of a path that has bounced least is a good guide, and that moving toward stronger signal is useful when the path is badly blocked. The robot is trained in a simulated copy of real buildings, built from a map and a radio model. The authors report that the trained robot then finds transmitters in buildings it did not see during training, without any further training.
For an engineer, the useful part is the reward design. The card lists the three added terms, their weights, and the places where the released code uses a different reward from the one in the paper.
TL;DR
- The method adds three physics-based cost terms to a PPO reinforcement-learning reward for wireless indoor navigation §III-B eq. 10.
- The learned policy is hierarchical: a global policy picks a waypoint from radio input, and a local policy with vision drives the robot there §IV fig. 6.
- Author-reported: on six unseen maps (P to U) the policy matches or beats every baseline in every category, with ties to WAN in several LOS and 1-NLOS cells. In 2+-NLOS it gets 2.5-2.8 versus 4.5-5.1 for end-to-end RL tab. 3.
- The official code is public under MIT, but its reward differs from the paper's: it has no link-state term and no SNR term, and it feeds the ground-truth link-state label to the policy. Read Paper vs code before reproducing any number.
Problem
Indoor navigation towards a mmWave transmitter is hard because multipath reflections and diffractions make the wireless field change sharply with the transmitter's position §III-A. Heuristics that follow the angle of arrival work in simple settings but fail in complex ones §I. End-to-end RL learns better paths but needs many samples, overfits the training environment, and forgets earlier tasks when the wireless field changes §III-A §I.
The paper assumes the agent has no target coordinates, only wireless and camera input and motion sensors §II-B. Training uses a wireless digital twin, a simulated copy of the environment with radio propagation, so that the RL agent can interact with it online §II-A §III-B.
Method
Setup and observations
The robot pose is p = (x, y, φ) and the start pose is (0, 0, 0) §II-B eq. 3. The observation is o_t = (m_t, p̂_t, v_t, w_t), where m_t is a two-channel occupancy and explored map, p̂_t is a pose estimate from a neural SLAM module, v_t is an RGB image, and w_t is the wireless input §II-B eq. 4.
The wireless input is the top N = 5 paths, each with an SNR, an angle of arrival (AoA) and an angle of departure (AoD) §II-B eq. 5. The paper labels link states as LOS (ℓ = 0), 1-NLOS (ℓ = 1) and 2+-NLOS (ℓ = 2), where ℓ is a wireless label used for training and analysis, not a network input §III-B.
Actions are forward motion of one grid cell (25 cm) and turns of ±10° §II-B eq. 6.
The cost is c_t = ||x_t − x*||² + ||y_t − y*||², the squared distance to the transmitter §II-C eq. 8. The RL objective is the expected sum of c_t over the horizon eq. 9.
Physics terms
Three terms are added to the RL cost, with weights λ_LS, λ_AoA and λ_SNR §III-B eq. 10.
- Link-state monotonicity §III-B [thm. 1]. Let ℓ_t be the link state along a path. The paper proves that a shortest path must have a link state that never increases. The penalty is C_LS = sum over t of max(0, ℓ_t − ℓ_{t−1}) eq. 12. The proof uses a case split: a shortest path that enters LOS stays in LOS, and a path that goes from 2+-NLOS back to LOS must pass through 1-NLOS §III-B.
- AoA following §III-B eq. 13. By reversibility, the strongest path's AoA points back toward the transmitter. The term penalises the gap between the moving direction and that AoA, but only where ℓ_t ≠ 2.
- SNR gradient in 2+-NLOS §III-B eq. 14. Across 21 maps the paper measures an average SNR drop of 25.2 dB from 1-NLOS to the nearest 2+-NLOS position §III-B. Where ℓ_t = 2 the agent should move up the SNR gradient, so C_SNR penalises the gap between the moving direction and the steepest-ascent direction, estimated from finite differences on the mesh §III-B. The angle is searched over 10° steps §III-B.
The paper says the physics reward is not potential-based, so the optimal policy under eq. 10 differs from the shortest path §III-B.
Global and local policy
The policy is π = (π_G, π_L) §IV eq. 15.
- Global policy. From w_t, the global policy outputs an angle Ω̂_t and a link-state estimate ℓ̂_t §IV-A eq. 16. A long-term goal is placed at distance δ_t along that angle from the pose estimate §IV-A eq. 17.
- Step length. δ_t = D_b if ℓ̂_t = 2, else D_s, with D_b = 7.5 (aggressive search in 2+-NLOS) and D_s = 2.5 (cautious elsewhere) §IV-A eq. 18.
- Planner. A Fast Marching planner finds the shortest path to the long-term goal on the SLAM map. Unexplored cells count as free. The short-term goal is the farthest path point within one grid cell of the agent §IV-A eq. 19.
- Local policy. A recurrent network with a pretrained ResNet-18 visual encoder takes v_t and the short-term goal and outputs motion actions for collision avoidance §IV-A eq. 20. It is trained by behaviour cloning, following the Active Neural SLAM recipe §IV-B.
- Architecture. The global policy has a two-layer linear wireless encoder, fully connected layers and a GRU, with separate actor and critic outputs §IV-A. The local policy has a GRU after a visual encoder §IV-A.
Training
- Global reward. The global reward is eq. 21. When the estimated link state is 0 or 1 it is λ_LS C_LS (ζ1 exp(−ζ2 c_t) − λ_AoA C_AoA). When it is 2 it is −λ_SNR C_SNR §IV-B eq. 21. The paper says the weights are grid-searched in [0.5, 2] §IV-B.
- PPO. The global policy is trained with PPO and the clipped surrogate §IV-B eq. 28. The value target is a k-step bootstrapped return eq. 29. The loss is the clipped surrogate minus ξ1 times the squared value error, plus ξ2 times the entropy eq. 30.
- Schedule. Algorithm 1 alternates a global decision of H_g steps with H_l local steps and updates the global policy after each global block alg. 1. The local policy is an input, pre-trained alg. 1 §IV-B.
# PIRL training loop [alg. 1] [§IV]
# Input: global policy pi_G, pretrained local policy pi_L, planner f_plan
# Output: global parameters theta
def train_pirl(pi_G, pi_L, f_plan, H_g, H_l):
# Initialise global policy parameters [alg. 1, line 1]
theta = init_parameters(pi_G)
while not converged:
# Reset environment and agent state [alg. 1, line 2]
reset_environment()
# Observe initial wireless and vision inputs [alg. 1, line 4]
wireless, vision = observe()
for t in range(H_g):
# Global policy gives angle and link-state estimate [eq. 16]
alpha = pi_G(wireless, theta)
# Long-term goal at distance delta_t along the angle [eq. 17, 18]
goal_long = place_goal(alpha, delta_t(alpha))
# Short-term goal from the Fast Marching planner [eq. 19]
goal_short = f_plan(goal_long, map_estimate(), pose_estimate())
for tau in range(H_l):
# Local policy gives motion actions [alg. 1, line 12]
action = pi_L(vision, goal_short)
vision = execute(action)
# Update global policy with PPO on the collected block [eq. 30]
theta = ppo_update(theta, collected_block())
# Observe next wireless input [alg. 1, line 16]
wireless = observe_wireless()# Physics-informed global reward [eq. 21] [§IV-B]
# Input: link_state (0 LOS, 1 1-NLOS, 2 2+-NLOS)
# c_t [eq. 8]; c_ls [eq. 12]; c_aoa [eq. 13]; c_snr [eq. 14]
# Output: scalar reward for the global policy
def global_reward(link_state, c_t, c_ls, c_aoa, c_snr):
# Links 0 and 1: monotonicity term with a distance bonus [eq. 21]
if link_state in (0, 1):
return lam_ls * c_ls * (zeta_1 * exp(-zeta_2 * c_t)
- lam_aoa * c_aoa)
# Link 2 (2+-NLOS): SNR-gradient penalty [eq. 21]
return -lam_snr * c_snrNotation
The paper's equations use the bare symbols λ_LS, λ_AoA, λ_SNR, ζ1, ζ2, ξ1, ξ2, γ, ε, D_b, D_s tab. 2 §IV-B §IV-A. The values are in the Hyperparameters table.
Hyperparameters
Values are the paper's tab. 2 unless another column says otherwise. "Code" gives the default in the released repository at the commit in the frontmatter.
| Name | Value | Where | Notes |
|---|---|---|---|
| discount γ | 0.99 | tab. 2 | code default 0.99 arguments.py |
| PPO clip ε | 0.2 | tab. 2 | code default 0.2 arguments.py |
| λ_LS, link-state weight | 1.0 | tab. 2 | no link-state term in the code reward; see Paper vs code |
| λ_AoA, AoA weight | 0.5 | tab. 2 | the code uses weight 1 on the AoA gap main.py |
| λ_SNR, SNR weight | 0.3 | tab. 2 | no SNR term in the code reward |
| ξ1, value-loss weight | 0.5 | tab. 2 | code default 0.5 arguments.py |
| ξ2, entropy weight | 0.01 | tab. 2 | code default 0.001 arguments.py |
| ζ1, distance-reward scale | 0.7 | tab. 2 | code uses 600 main.py |
| ζ2, distance-reward decay | 0.3 | tab. 2 | code uses 0.1 main.py |
| learning rate | 3e-4 | tab. 2 | code global_lr default 2.5e-4 arguments.py; docs say 2.5e-5 INSTRUCTIONS.md |
| batch size | 64 | tab. 2 | code num_mini_batch default "1" arguments.py |
| α, "exploration rate" | 0.1 | tab. 2 | the symbol α is also the global action in eq. 16; the table's meaning (epsilon-greedy rate) appears in no equation |
| β, entropy regularisation | 0.01 | tab. 2 | no equation uses β; it has the same role as ξ2 §IV-B |
| H_g, global horizon | 100 | tab. 2 | code num_global_steps 12 arguments.py |
| H_l, local horizon | 50 | tab. 2 | code num_local_steps 25 arguments.py |
| D_b, aggressive step | 7.5 | §IV-A eq. 18 | units not stated |
| D_s, cautious step | 2.5 | §IV-A eq. 18 | units not stated |
| forward step a_F | 25 cm | §II-B | code map_resolution 5 cm arguments.py |
| turn step | 10° | §II-B | |
| wireless grid | 15 cm | §II-A | |
| wireless paths N | 5 | §II-A | |
| reward weight search | [0.5, 2] | §IV-B | grid search |
| training episodes per task | 1000 | §V | |
| task stop rule | more than 6 of 10 consecutive successes | §V | |
| seeds for testing | 20 | §V | |
| maps | 15 training (A–O), 6 testing (P–U) | §V tab. 1 |
Other settings: the global policy's wireless encoder and hidden size are not stated in the paper beyond the layer description §IV-A. The code's default hidden size is 12 arguments.py. The local policy is a pretrained ResNet-18 encoder with recurrence §IV-A model.py.
Results
Author-reported. Setup: six unseen maps P to U from Gibson, each with ten targets; tests use 20 random seeds §V tab. 1. The metric is normalised path length (NPL), the number of navigation actions divided by the shortest-path length in actions. Closer to 1 is better §V, Generalization. Baselines: non-physics RL (NPRL, same architecture, distance-only reward), wireless-assisted navigation (WAN, a heuristic that follows AoA in LOS and 1-NLOS and explores in 2+-NLOS, with a link-state classifier) §V, and vision-augmented SLAM (V-SLAM) §V.
Headline numbers (paper's tab. 3, tab. 4, tab. 5):
| Setting | Metric | Baseline | This paper | Source |
|---|---|---|---|---|
| Maps P–U, 2+-NLOS | NPL (mean ± spread shown in tab. 3) | NPRL 4.50–5.14; WAN 3.63–4.01 | PIRL 2.46–2.82 | tab. 3 |
| Maps P–U, LOS | NPL | NPRL 1.90–2.28 | PIRL 1.00–1.01 | tab. 3 |
| Map P, 2+-NLOS | success | NPRL 0.45; V-SLAM 0.40; WAN 0.85 | PIRL 1.00 | tab. 4 |
| Map T, 2+-NLOS | success | NPRL 0.40; V-SLAM 0.65; WAN 0.90 | PIRL 1.00 | tab. 4 |
| Maps P, T, average, 2+-NLOS | NPL (ablation) | WAN 3.83; SNR ablation 4.62; link-state ablation 3.90 | PIRL 2.60 | tab. 5 |
Full NPL table tab. 3. Values are mean ± the paper's spread (the paper does not say whether this is a standard deviation or an error of the mean). Lower is better.
| Map | Method | LOS | 1-NLOS | 2+-NLOS |
|---|---|---|---|---|
| P | PIRL | 1.01 ± 0.01 | 1.31 ± 0.02 | 2.53 ± 0.05 |
| P | NPRL | 2.03 ± 1.02 | 2.72 ± 0.55 | 4.96 ± 1.37 |
| P | V-SLAM | 1.05 ± 0.02 | 1.82 ± 0.51 | 4.58 ± 1.12 |
| P | WAN | 1.02 ± 0.00 | 1.32 ± 0.02 | 3.88 ± 0.82 |
| Q | PIRL | 1.01 ± 0.01 | 1.50 ± 0.04 | 2.61 ± 0.05 |
| Q | NPRL | 2.12 ± 1.00 | 3.08 ± 0.68 | 5.00 ± 1.41 |
| Q | V-SLAM | 1.11 ± 0.03 | 2.89 ± 0.73 | 4.89 ± 1.00 |
| Q | WAN | 1.01 ± 0.01 | 1.63 ± 0.05 | 3.71 ± 0.71 |
| R | PIRL | 1.01 ± 0.00 | 1.23 ± 0.03 | 2.55 ± 0.06 |
| R | NPRL | 2.28 ± 1.03 | 2.49 ± 0.81 | 4.99 ± 1.20 |
| R | V-SLAM | 1.09 ± 0.03 | 1.68 ± 0.60 | 4.68 ± 1.01 |
| R | WAN | 1.01 ± 0.00 | 1.23 ± 0.02 | 3.97 ± 0.83 |
| S | PIRL | 1.01 ± 0.01 | 1.23 ± 0.01 | 2.82 ± 0.04 |
| S | NPRL | 2.01 ± 0.99 | 2.81 ± 0.83 | 5.14 ± 1.21 |
| S | V-SLAM | 1.04 ± 0.03 | 1.99 ± 0.58 | 4.98 ± 1.00 |
| S | WAN | 1.01 ± 0.00 | 1.32 ± 0.03 | 3.78 ± 0.90 |
| T | PIRL | 1.00 ± 0.00 | 1.43 ± 0.03 | 2.59 ± 0.06 |
| T | NPRL | 2.23 ± 1.10 | 3.13 ± 0.83 | 4.88 ± 1.86 |
| T | V-SLAM | 1.10 ± 0.08 | 3.01 ± 0.67 | 4.69 ± 1.01 |
| T | WAN | 1.00 ± 0.00 | 1.48 ± 0.02 | 4.01 ± 0.90 |
| U | PIRL | 1.01 ± 0.01 | 1.73 ± 0.03 | 2.46 ± 0.05 |
| U | NPRL | 1.90 ± 0.89 | 3.25 ± 0.64 | 4.50 ± 1.05 |
| U | V-SLAM | 1.06 ± 0.04 | 3.19 ± 0.56 | 4.43 ± 1.00 |
| U | WAN | 1.01 ± 0.01 | 1.74 ± 0.04 | 3.63 ± 0.70 |
Success rates tab. 4 (paper's table caption says maps T and P; the rows are labelled by map):
| Map | Category | PIRL | NPRL | V-SLAM | WAN |
|---|---|---|---|---|---|
| T | LOS | 1 | 1 | 1 | 1 |
| T | 1-NLOS | 1 | 1 | 1 | 1 |
| T | 2+-NLOS | 1 | 0.4 | 0.65 | 0.9 |
| P | LOS | 1 | 1 | 1 | 1 |
| P | 1-NLOS | 1 | 1 | 1 | 1 |
| P | 2+-NLOS | 1 | 0.45 | 0.4 | 0.85 |
Ablation tab. 5 (NPL averaged over all testing tasks; the paper does not list which maps):
| Variant | LOS | 1-NLOS | 2+-NLOS |
|---|---|---|---|
| WAN | 1.01 ± 0.01 | 1.45 ± 0.03 | 3.83 ± 0.81 |
| PIRL | 1.01 ± 0.01 | 1.41 ± 0.03 | 2.60 ± 0.05 |
| SNR ablation (relative-distance cost in 2+-NLOS) | 1.02 ± 0.02 | 1.46 ± 0.04 | 4.62 ± 1.15 |
| Link-state ablation (constant instead of C_LS) | 1.02 ± 0.02 | 1.47 ± 0.05 | 3.90 ± 1.02 |
Other claims. Sample efficiency is shown only as bar charts fig. 7 with no numbers in the text. The paper says PIRL needs fewer episodes than NPRL as training proceeds, and that NPRL forgets earlier maps §V, Sample Efficiency §III-A. Interpretability is shown as histograms of 1000 sampled headings at one position per link state, and as input-gradient plots fig. 9 §V, Interpretable Navigation. These are qualitative.
Paper vs code
Official repository: Panshark/PIRL-WIN, MIT, commit a9e1ab8b9b08efdd3c17956a997a473cc4e730dd. The owner is Haozhe Lei, a co-author of this paper, so the repository qualifies. The README and BibTeX there use an earlier title, "Zero-Shot Wireless Indoor Navigation through Physics-Informed Reinforcement Learning". The code builds on the Active Neural SLAM code base (README), with the wireless inputs and reward added.
- Reward has no link-state or SNR term. The paper's global reward is eq. 21. The code uses a single active function,
Reward_function_april14. For link states 4 (LOS) and 3 (1-NLOS) in the code's labelling, it returns 600·exp(−0.1·d) minus the absolute AoA gap, with the gap wrapped to 180° main.py. For every other link state it returns −d − 180 main.py. There is no C_LS and no C_SNR in this function. The earlier version with a link-state punishment is commented out main.py. - Reward constants differ. The paper's table gives ζ1 = 0.7 and ζ2 = 0.3 tab. 2. The code uses 600 and 0.1 main.py. The paper's own LaTeX source has a commented-out line that gives λ_LS = 1.1, λ_AoA = 1.0, λ_SNR = 1.2, ζ1 = 600 and ζ2 = 0.1 [src: main.tex L391, not rendered]. This matches the code's distance constants but not tab. 2.
- AoA penalty differs. The paper uses the squared gap, weighted by an indicator that is zero in 2+-NLOS eq. 13. The code uses the absolute gap with weight 1, and only in the LOS and 1-NLOS branch main.py.
- Link-state label is an input. The paper says the agent infers the link state from raw wireless inputs §III-B. The code appends the link-state label to the 17-value wireless vector main.py and feeds that vector to the global policy main.py main.py. The same label selects the step length main.py. The released policy therefore receives the dataset's link-state label, not an estimate.
- Wireless input size. The paper's input is the 3×5 set of SNR, AoA and AoD values eq. 5. The code's vector has 17 entries: five AoA, five AoD, five SNR, the total SNR, and the link state main.py main.py.
- Global action. The paper's global output is an angle and a link-state estimate §IV-A eq. 16. The code's action space has three outputs main.py. Only the first is turned into an angle, as angle = 360·a − 180 main.py.
- Step length. The paper uses D_b = 7.5 for 2+-NLOS and D_s = 2.5 otherwise §IV-A. The code uses 50 map cells for 2+-NLOS and 10 cells for LOS and 1-NLOS main.py. With the default 5 cm cell arguments.py, that is 2.5 m and 0.5 m. The paper gives no units, so these two readings cannot be reconciled from the text.
- Recurrent global policy is off by default. The paper says the global policy has a GRU §IV-A. The code's
use_recurrent_globaldefaults to 0 arguments.py, so the global policy used in the default run has no GRU model.py main.py. - Learning rate and entropy. The paper gives learning rate 3e-4 and entropy weight 0.01 tab. 2. The code defaults to 2.5e-4 for the global policy arguments.py and 0.001 for entropy arguments.py. The repository's docs give 2.5e-5 for the global learning rate INSTRUCTIONS.md.
- Batch size. The paper says batch size 64 tab. 2. The code's default
num_mini_batchis 1 arguments.py, which means one mini-batch per PPO epoch. - Horizons. The paper gives H_g = 100 and H_l = 50 tab. 2. The code defaults to 12 global steps and 25 local steps arguments.py arguments.py. The code updates the global policy once per 12 × 25 steps main.py.
- PPO details not in the paper. The code uses advantage normalisation ppo.py, a clipped value loss ppo.py, four PPO epochs arguments.py, gradient clipping at 0.5 arguments.py, and no GAE by default arguments.py storage.py. The paper mentions none of these, and it gives the value target as a k-step bootstrap eq. 29.
- Training schedule. The paper trains on the 15 maps A to O in sequence, with 1000 episodes per task §V. The released default run loads one map, Woonsocket, with transmitter 6 main.py. Woonsocket is map P in the paper's table of testing maps tab. 1. The sequential 15-map schedule of §V is not in the code I read.
- Success threshold. The paper does not define when a task succeeds. The code treats a distance under 10 cells as success, sets a +2000 bonus, and ends the episode main.py main.py.
- Map resolution. The paper's SLAM map cell is 25 cm §II-B. The code's default is 5 cm arguments.py.
- Help overrides are off. The code has a supervised override that sets the global action from the SNR direction or from a power heuristic during the first 1000 episodes main.py. It runs only when
going_helpis true, and the released code sets it to false main.py. The paper does not describe this override. - Actuation and sensor noise. The paper's experiments do not state a noise model §V. The code enables noisy actions and noisy odometry by default arguments.py.
- Data is not in the repository. The code loads wireless maps from
./data/wireless_direction_demo/by default arguments.py. That folder is not in the clone at this commit, so the released code cannot run its default configuration without it. - Repository setup. The README pins habitat-sim and habitat-api to old commits and says the code was tested with PyTorch 1.2.0 README.md.
No discrepancies were found for γ = 0.99 and ε = 0.2 tab. 2 arguments.py arguments.py, or for ξ1 = 0.5 arguments.py.
Pitfalls
- Ground-truth link state. The code's policy sees the dataset's link-state label as an input and uses it for step length and for the reward. The paper says the agent infers this label. A reproduction that uses only the radio vector will not match the code, and a generalization claim based on the code's policy should account for this.
- Which reward? The paper's reward eq. 21 has three physics terms. The code's reward has one distance term and an AoA gap. Numbers in tab. 3 and tab. 4 cannot be attributed to the released code's reward without re-running it.
- Not potential-based. The paper says the shaped reward changes the optimal policy, so a policy trained on it is suboptimal for the original cost §III-B. The paper argues this helps transfer. Theorem 1 gives only a necessary condition for shortest paths [thm. 1].
- Angle wrapping. AoA and heading are in degrees. The code wraps the gap at 180°, and the paper's squared form does not wrap eq. 13 main.py.
- Step units. D_b and D_s have no units in the paper. The code's values are in cells, which at 5 cm are 2.5 m and 0.5 m. Choose a unit and state it.
- Spread not defined. The ± in tab. 3 and tab. 5 is not defined. With 20 seeds, a standard error and a standard deviation differ by about a factor of 4.5.
- NPL on failures. NPL is defined from action counts §V, and the paper does not say how failed runs are counted in the NPL average. SPL assigns zero to failures fig. 8.
- Ablation maps. tab. 5 is averaged over testing tasks, and the paper does not say which maps.
- Test map in default run. The default run in the code uses Woonsocket, which the paper uses for testing tab. 1 main.py. Do not treat it as a training run.
- Physics help is off. Setting
going_helpto true changes the actions during training main.py main.py. Keep it off to match the reward as described. - Hidden costs. The paper trains a local policy with behaviour cloning and then freezes it §IV-B. The simulator is a wireless digital twin built from ray tracing and a mesh of receiver points at 15 cm spacing §II-A. Each training step requires a wireless lookup in that mesh.
- Parameter values in the table are not all used. β in tab. 2 appears in no equation, and α is reused for the global action in eq. 16. Do not add either to the loss without a source.
Lineage
- Builds on: Active Neural SLAM for the mapping and local-policy stack [chaplot2020learning, arXiv:2004.05155]; PPO [schulman2017proximal, arXiv:1707.06347]; the wireless-assisted navigation heuristic WAN and link-state classifier [yin2022millimeter] (no arXiv id in the source).
- Conference version: [10611229], IEEE ICRA 2024 (no arXiv id in the source). This paper extends it with a more general digital twin and more evaluation §I.
- Compared against: NPRL (the paper's own end-to-end baseline), WAN, and V-SLAM §V.
- Superseded by: not known from the content of this wiki.
Source and license
Adapted from “Digital Twin-Enhanced Wireless Indoor Navigation: Achieving Efficient Environment Sensing with Zero-Shot Reinforcement Learning” by Tao Li, Haozhe Lei, Hao Guo, Mingsheng Yin, Yaqi Hu, Quanyan Zhu, Sundeep Rangan (arXiv:2306.06766), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors. Code citations refer to https://github.com/Panshark/PIRL-WIN at commit a9e1ab8b9b08 (MIT). Any quoted code is shown under that license.