Buckets:
| Name | Size | Uploaded | Xet hash |
|---|---|---|---|
| figures | 6 items | ||
| forms | 16 items | ||
| results | 7 items | ||
| scripts | 8 items | ||
| LICENSE | 1.18 kB xet | a5e5db53 | |
| README.md | 9.81 kB xet | 6470b706 | |
| SHA256SUMS | 3.51 kB xet | 26ad70a1 | |
| TriDrive_user_study_questionnaire.pdf | 106 kB xet | cd3bd7d3 |
TriDrive in-car user study — questionnaire forms, data, results
This folder is the questionnaire part of the public release of TriDrive (development code name CockpitWM; the analysis
scripts and results/SUMMARY.md still use the development name in places). The paper is under double-blind review and this
release is anonymous: no participant identities, name tables, audio/video recordings, cabin imagery or raw vehicle logs are
included — only the anonymised forms (P01–P14), the tables derived from them, the scripts and the figures.
Design
- Within-participant paired comparison with two conditions: C = TriDrive driver-monitoring prompts (comma four device with an external GPU running the TriDrive model) and S = stock openpilot driver monitoring. Each participant drove the same route twice in their own openpilot-supported car, once with each system, with two visually identical devices; the driving order was counterbalanced.
- 14 participants, P01–P14. Form
forms/driverNN.pdfis participantPNN(driver01 = P01, …, driver14 = P14). - Recording convention (experimenter): on every form, block 1 ("After the first drive", items 1–5) records the TriDrive
condition and block 2 ("After the second drive", items 6–10) records stock openpilot, irrespective of the actual driving order.
Hence D1 = C and D2 = S for every respondent in the tables; "first drive" in END1/END5 means TriDrive. The actual order was not
written on the forms, so an order effect cannot be assessed (
results/SUMMARY.md§5.4). - 12 forms carry AcroForm field values; two forms were completed by hand (circled answers) and were read from the rendered pages:
driver06(P06) anddriver11(P11) (source = manual_visualinresults/questionnaire_wide.csv). P13's END1 answer was corrected from the experimenter's record (source = acroform+override(END1)).
Items (per drive; 7-point Likert, 1 = strongly disagree … 7 = strongly agree, plus "Cannot judge")
| id | form item (D1 / D2) | statement |
|---|---|---|
| APP1 | 1 / 6 | The driver-monitoring prompts during this drive fit the driving situations at the time. |
| APP2 | 2 / 7 | The driver-monitoring prompts during this drive were necessary for me. |
| APP3 | 3 / 8 | Overall, the driver-monitoring prompts during this drive were appropriate. (positively worded) |
| TIM1 | 4 / 9 | The driver-monitoring prompts during this drive came at the right time. |
| ANN1 | 5 / 10 | The driver-monitoring prompts during this drive annoyed me. (higher = more annoying) |
| END1 | 11 | Which drive's driver-monitoring prompts did you prefer? (first drive / second drive / no difference) |
| END5 | 12 | Free comment on the prompts across the two drives (optional; verbatim in the tables). |
Scoring
- EP0 appropriateness = mean(APP1, APP2, APP3) per drive; APP3 is positively worded in the fielded form and is not reverse-scored; the construct needs at least 2 of the 3 items.
- ES1 timeliness = TIM1. ES2 annoyance = ANN1, higher = more annoying, so a positive difference means TriDrive was rated more annoying.
- Paired difference per participant Δ = C − S (TriDrive minus openpilot).
- END1 decoded with the convention above: first → prefer C (TriDrive), second → prefer S (openpilot), no difference → none.
- Statistics (
scripts/analysis_questionnaire_v1.py,scripts/paired_endpoints.py): participant-level paired bootstrap of the mean Δ (2,000 resamples, seed 20260922, percentile 95 % CI) and a two-sided Wilcoxon signed-rank test (scipy, zero_method "wilcox"); the verdict (above / below / inconclusive) follows the CI, p is reported beside it. Preference: shares with Wilson 95 % CIs and a participant-level bootstrap CI for share(prefer C) − share(prefer S).
Missing data
"Cannot judge" and unanswered items are missing. Primary analysis (primary_complete_pairs): per endpoint, only participants with
both the C and the S construct score (n = 14 appropriateness, 12 timeliness, 12 annoyance).
Sensitivity (sensitivity_NP_neutral): a missing construct score is set to the neutral midpoint 4 (n = 14 for all three); no
verdict changes.
Headline numbers (results/endpoints.csv, results/preference.csv)
| endpoint | pairs | mean C (TriDrive) | mean S (openpilot) | mean Δ (C − S) | 95 % CI | Wilcoxon p | verdict |
|---|---|---|---|---|---|---|---|
| EP0 appropriateness | 14 | 5.27 | 3.49 | +1.79 | [+0.86, +2.75] | 0.0076 | above |
| ES1 timeliness | 12 | 5.75 | 3.08 | +2.67 | [+1.33, +4.08] | 0.0078 | above |
| ES2 annoyance | 12 | 2.58 | 1.42 | +1.17 | [+0.33, +2.08] | 0.0312 | above |
Sensitivity NP-neutral (n = 14 each): Δ = +1.79 [0.86, 2.75] (p 0.0076) / +2.50 [1.36, 3.71] (p 0.0048) / +1.07 [0.36, 1.93] (p 0.0278); all verdicts unchanged.
Preference (END1, n = 14): prefer TriDrive 7 (0.50, Wilson 95 % CI [0.27, 0.73]);
prefer openpilot 4 (0.29, [0.12, 0.55]); no difference 3 (0.21, [0.08, 0.48]) —
the share difference is inconclusive at this sample size. Annoyance must be read together with exposure: the stock monitor prompted
rarely and late in these drives, so its low annoyance is not evidence of better calibration (results/SUMMARY.md §5.2).
Files
README.md— this fileLICENSE— CC BY 4.0 noticeSHA256SUMS— sha256 of every file in this folderforms/README.md— note on the forms (from the supplementary material)forms/questionnaire_blank.pdf— the form as fielded (12 items, fillable)forms/driver01.pdf…forms/driver14.pdf— the 14 completed forms (P01–P14); 12 with form-field values, driver06 and driver11 hand-filled (circled answers)results/questionnaire.csv— long table, one row per participant × item (data-schema layout: participant_id, session_index, condition_code, form, item_id, raw_value, scored_value, free_text, …)results/questionnaire_wide.csv— one row per participant: source, D1.* (TriDrive), D2.* (openpilot), END1, END5results/per_participant.csv— construct scores C / S / Δ per participant, preference, comment themes, verbatim commentresults/endpoints.csv— the six endpoint rows (primary complete pairs + NP-neutral sensitivity): n, means, Δ, CI, Wilcoxon p, verdictresults/endpoints.md— the same results as markdown, with the per-participant table and the exposure noteresults/preference.csv— END1 counts and shares with Wilson 95 % CIsresults/SUMMARY.md— full written summary: design, raw answers, scores, endpoints, analysis, limitations, verbatim commentsscripts/analysis_questionnaire_v1.py— endpoint analysis of the fielded short form (writes endpoints.csv/.md, preference.csv, per_participant.csv)scripts/parse_questionnaire_pdfs.py— PDF form fields → questionnaire.csv / questionnaire_wide.csv / sessions.csvscripts/paired_endpoints.py— pre-specified paired analysis helpers (bootstrap, Wilcoxon, verdict rules) reused by the analysisscripts/analysis.py— full protocol analysis (also covers endpoints that were not fielded in the short form)scripts/make_user_study_fig_paper.py— figures/user_study_bars.pdf/.png (paper figure, complete pairs)scripts/make_user_study_fig_n14.py— figures/user_study_bars_n14.pdf/.png (NP-neutral sensitivity, n = 14)scripts/make_user_study_bars.py— teaser chart from the result tables (figures/user_study_bars_bare.*)scripts/PATHS_CHANGED.md— the absolute paths rewritten to relative ones in the scriptsfigures/user_study_bars.pdf— paper figure: three paired-bar panels (appropriateness, timeliness, annoyance), complete pairsfigures/user_study_bars.png— PNG of the samefigures/user_study_bars_n14.pdf— sensitivity variant, missing scores imputed with 4 (n = 14)figures/user_study_bars_n14.png— PNG of the samefigures/user_study_bars_bare.pdf— teaser version: appropriateness / timeliness bars and the preference split, minimal textfigures/user_study_bars_bare.png— PNG of the same
Reproducing the tables and figures
Run from the root of this folder. results/sessions.csv is not shipped; it is one row per participant and drive
(participant_id,session_index,condition_code,condition with 1,X,C and 2,Y,S for every participant) and is written by
scripts/parse_questionnaire_pdfs.py.
python scripts/parse_questionnaire_pdfs.py --pdf-dir forms --exclude questionnaire_blank --ids <outside>/ids.csv \
--manual <outside>/manual.json --overrides <outside>/overrides.json --out results
python scripts/analysis_questionnaire_v1.py --questionnaire results/questionnaire.csv --sessions results/sessions.csv --out results
python scripts/make_user_study_fig_paper.py; python scripts/make_user_study_fig_n14.py
python scripts/make_user_study_bars.py --out figures/user_study_bars
--ids maps form stems to P-ids (driver01 → P01 … driver14 → P14; created automatically in sorted order); --manual supplies the
hand-read values of driver06 / driver11 and --overrides the P13 END1 correction — both are recorded in results/questionnaire_wide.csv
(source column), so the shipped tables can be checked line by line against the forms.
Privacy and provenance
The PDFs keep every answer (form-field values and free text) but carry no participant names, no document metadata other than the title (= file stem) and no embedded provenance manifests. The free-text comments were given with the instruction not to include identifying details and are reproduced verbatim. Nothing in this folder links a P-id to a person.
Licence
Everything in this folder is released under CC BY 4.0 (see LICENSE, https://creativecommons.org/licenses/by/4.0/).
- Total size
- 8.6 GB
- Files
- 2,838
- Last updated
- Oct 7
- Pre-warmed CDN
- US EU US EU