SmarterCanes

The Dataset

View on GitHub Download folder Back to project

IMU recordings from an instrumented walking cane, and the metadata that labels them. Consumed by ../Analyzer — see Analyzer/README.md for the commands that read this data.

Layout

CSV format

A session is stored as one or more 30-second segment files, rec_XXXXX_segNNN_annY.csv, where XXXXX is the session index, NNN the zero-based segment number, and Y ∈ {-1, 0, 1} the stop annotation (shared by every segment of the session). t_ms restarts from 0 in each segment; consecutive segments of one session are read back-to-back as a single continuous recording by Analyzer/utils/io.py’s load_session.

t_ms,ax_mg,ay_mg,az_mg,gx_mdps,gy_mdps,gz_mdps,dist_mm,event
0,100,50,980,10,20,5,-1,0
10,102,48,982,12,18,6,842.5,0
20,101,49,981,11,19,5,843.1,1

dist_mm and event were added by later firmware revisions, so a recording may carry either, both or neither; Analyzer/utils/io.py resolves columns by name and exposes has_dist / has_event.

The annY annotation

Y is a per-session label baked into every segment’s filename:

annotation meaning
ann0 normal gait throughout
ann1 abnormal gait throughout
ann-1 normal, except at least one marked moment (found via the in-recording event column)
none legacy recording, predates the annotation — treated as normal

split.csv

One row per file in data/, assigning it to exactly one of:

Analyzer’s exploratory commands (step-count, step-accuracy, step-ae) take a --split flag over this table, but default to neither a single label nor the whole file: their default, normal, is every ann0/legacy recording regardless of label — train, walk, and the ann0 files inside test — since ordinary gait analysis has no use for the labelled anomalies ae-anomaly exists to score. all opts into the whole pool, anomalies included; a comma-separated subset of train, test, walk selects by label directly.