PPE Motion Analysis
CMU MSE practicum · sponsored by MSA Safety · 2026
A local tool that turns Xsens motion capture into repeatable comparisons between protective-equipment designs: the same subject and the same task, with one piece of gear changed. A command line and a browser workspace drive the same services.
A team practicum for an industry sponsor. The repository and recordings are private, so the drawings here are schematic and contain no study data. The analysis is signal processing, not machine learning.
Private repositoryFrom capture to comparison
The steps an operator follows. The command line and the browser workspace call the same services.
Cutting a recording into tasks
A schematic of one continuous capture. Boundaries are proposed from movement and confirmed by the operator.
One change at a time
A comparison needs matched trials: the same subject, task, and protocol, with different gear.
Implementation notes
Compare gear, not people.
MSA Safety designs protective equipment. The practicum team built a tool for its engineers: capture a subject in Xsens MVN, import the recording, record what was worn, divide it into tasks, run the analysis, then compare one configuration against another on matched trials.
Find the tasks in the motion.
A study is usually captured without pausing between exercises. The tool drafts task boundaries from joint-angle movement: where the body goes still, and where one exercise flows into the next. With a protocol chosen, it cuts the recording into exactly the tasks that protocol prescribes. The operator confirms the boundaries before they count.
The backend is one domain model with adapters for Xsens files, OpenSim, SQLite, and Parquet. Dependencies point inward, and a test fails when they do not. The browser's API types are generated from the backend schema.
No score, no p-value.
The tool reports differences on matched trials and which direction each metric favours. It does not produce an overall gear score, a significance test, or a causal claim, and missing measurements stay missing.
The recordings and repository belong to the sponsor, so this page uses drawings instead of screens. There is no machine-learning model here; task detection is signal processing.