Skip to content

Score an RF localisation challenge

Compare RSSI-only and motion-fused positions on a deterministic hidden test path using median and p90 error.

Radio Remi: I want you to predict the result, inspect each intermediate value, and keep the final claim inside the evidence., your practice guide

Radio Remi: I want you to predict the result, inspect each intermediate value, and keep the final claim inside the evidence.
Predict the reading, then compare it with the measurement.

Python 3 in your browser (JupyterLite)

Python · no install

Compare RSSI-only and motion-fused positions on a deterministic hidden test path using median and p90 error.

Tier 2 · Web · paste-in setup · No account

Version tested: Python 3.12.7 / Pyodide 0.27.6 in JupyterLite 0.6.4; Chromium 148.0.7778.96; captureSource playwright:jupyterlite. Date: 2026-09-10.

Open the notebook in your browser and run each Python cell; no install or account is needed.

Three ways to run: use JupyterLite here with no install; run main.py locally from the downloadable lab folder; or open the same notebook in Google Colab.

Open in your browser (new tab)

Steps

Screens captured against Python 3 in your browser (JupyterLite) Python 3.12.7 / Pyodide 0.27.6 in JupyterLite 0.6.4; Chromium 148.0.7778.96; captureSource playwright:jupyterlite on 2026-09-10; the tool may have moved on — the text steps are the contract.

  1. 1 Step 1

    Do
    Make a pre-lab prediction.
    You will see
    The notebook displays the prediction prompt before any score.
    Why it matters
    A fixed training set and a separate deterministic test path prevent the learner from tuning directly on every answer.
    JupyterLite step 1 for Score an RF localisation challenge, showing the printed evidence for this step.
    Step 1 · Python 3 in your browser (JupyterLite); numbered callout added to a real capture. Enlarge screenshot (new tab)
  2. 2 Step 2

    Do
    Inspect the fixed fingerprint map.
    You will see
    Sixteen labelled positions and four access-point RSSI values are printed.
    Why it matters
    A fingerprint compares a live vector with labelled survey vectors.
    JupyterLite step 2 for Score an RF localisation challenge, showing the printed evidence for this step.
    Step 2 · Python 3 in your browser (JupyterLite); numbered callout added to a real capture. Enlarge screenshot (new tab)
  3. 3 Step 3

    Do
    Estimate hidden positions with RSSI neighbours.
    You will see
    The first five RSSI-only predictions appear without their reference coordinates.
    Why it matters
    RSSI estimates loss, so one range-like value forms a broad ring rather than a point.
    JupyterLite step 3 for Score an RF localisation challenge, showing the printed evidence for this step.
    Step 3 · Python 3 in your browser (JupyterLite); numbered callout added to a real capture. Enlarge screenshot (new tab)
  4. 4 Step 4

    Do
    Add motion increments between fixes.
    You will see
    A fused path keeps relative motion between the sparse radio corrections.
    Why it matters
    A motion estimate can predict where a handset moved between radio observations.
    JupyterLite step 4 for Score an RF localisation challenge, showing the printed evidence for this step.
    Step 4 · Python 3 in your browser (JupyterLite); numbered callout added to a real capture. Enlarge screenshot (new tab)
  5. 5 Step 5

    Do
    Reveal and score the hidden path.
    You will see
    Median and p90 errors are printed for both methods.
    Why it matters
    The median describes a typical test point, while p90 exposes the long tail that affects alarms and hand-offs.
    JupyterLite step 5 for Score an RF localisation challenge, showing the printed evidence for this step.
    Step 5 · Python 3 in your browser (JupyterLite); numbered callout added to a real capture. Enlarge screenshot (new tab)
  6. 6 Step 6

    Do
    Stress one access-point bias.
    You will see
    A 6 dB bias increases at least one reported error percentile.
    Why it matters
    A smooth track may still be wrong if both inputs share a bias.
    JupyterLite step 6 for Score an RF localisation challenge, showing the printed evidence for this step.
    Step 6 · Python 3 in your browser (JupyterLite); numbered callout added to a real capture. Enlarge screenshot (new tab)
  7. 7 Step 7

    Do
    Complete the result card.
    You will see
    The result card states both percentiles and the fixture boundary.
    Why it matters
    These scores validate the supplied fixture only; a site survey must repeat them with measured anchors and real movement.
    JupyterLite step 7 for Score an RF localisation challenge, showing the printed evidence for this step.
    Step 7 · Python 3 in your browser (JupyterLite); numbered callout added to a real capture. Enlarge screenshot (new tab)

Chapter checks

These questions refer to the chapter’s examples. Use the return links to review their answers.

  1. Why report p90 position error beside the median?

    Return to the chapter’s knowledge check
  2. Which method most directly depends on synchronized anchor clocks?

    Return to the chapter’s knowledge check

Caution

The supplied data and simulation verify the calculation path only. Reopen the prepared notebook if screens change, and validate any field claim with measured hardware and site evidence.

Return to RF Localisation with RSSI, Time, Angle, UWB, and Sensor Fusion · Browse Labs