Skip to content

This project provides a Python CLI script to measure key network metrics between a base station and rover at multiple distances.

Notifications You must be signed in to change notification settings

UBC-Snowbots/network-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Network Rig Test (Direct Base-to-Rover)

This project provides a Python CLI script to measure key network metrics between a base station and rover at multiple distances.

What it measures

  • TCP bandwidth/throughput (iperf3)
  • UDP throughput, jitter, and loss (iperf3)
  • Ping latency (avg and p95) and packet loss (ping)
  • Program feasibility for:
    • telemetry
    • command_control

Install

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Configure

Copy and edit the example config:

cp config.example.yaml config.yaml

Set:

  • base.host
  • rover.host
  • ssh.user
  • ssh.key_path
  • distances.rover_m

Usage

Dry-run matrix:

python network_rig_test.py run --config config.yaml --dry-run

Run tests:

python network-test/network_rig_test.py run --config config.yaml

Optional flags:

  • --session-name <name>
  • --output-dir <path>
  • --no-plots
  • --fail-fast

Outputs

Default output directory:

  • results/<timestamp_session>/

Artifacts:

  • measurements.csv
  • summary.json
  • plots/metric_vs_distance.png
  • plots/latency_loss_vs_distance.png
  • plots/program_feasibility_vs_distance.png

Notes

  • Current implementation supports future.scenario_mode: direct only.
  • CSV schema includes relay-ready columns (scenario, relay_distance_m) for future expansion.
  • The script retries each metric command once before marking failure in notes.

About

This project provides a Python CLI script to measure key network metrics between a base station and rover at multiple distances.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages