DOI: 10.5061/dryad.cnp5hqch3
title: Data for: Detecting artificially impaired balance in human locomotion: metrics, perturbation effects and detection thresholds

description: Measuring balance is important for detecting impairments and developing
 interventions to prevent falls, but there is no consensus on which method
 is most effective. Many balance metrics derived from steady-state walking
 data have been proposed, such as step width variability, step time
 variability, foot placement predictability, maximum Lyapunov exponent, and
 margin of stability. Recently, perturbation-based metrics such as center
 of mass displacement have also been explored. Perturbations typically
 involve unexpected disturbances applied to the subject. In this study, we
 collected walking data from 10 healthy subjects while walking normally and
 impairing their balance with ankle braces, eye-blocking masks, and
 pneumatic jets on their legs. In some walking trials, we also applied
 mechanical perturbations to their pelvis. We provide a comprehensive
 biomechanics dataset as supplementary material. We compared the ability of
 various metrics to detect impaired balance using steady-state walking and
 perturbation recovery data. We also compared metric performance using
 thresholds informed by data from multiple subjects versus subject-specific
 thresholds. We found that step width variability, step time variability,
 and foot placement predictability, using steady-state data and
 subject-specific thresholds, detected impaired balance with the highest
 accuracy (≥86%), while other metrics were less effective (≤68%).
 Incorporating perturbation data did not improve the accuracy of these
 metrics, though this comparison was limited by the small amount of
 perturbation data included and analyzed. Subject-specific baseline
 measurements improved the detection of changes in balance ability. In
 clinical practice, taking baseline measurements might improve the
 detection of impairment due to aging or disease progression.
description: # Steady-state and perturbed walking dataset Dataset DOI:
 [10.5061/dryad.cnp5hqch3](10.5061/dryad.cnp5hqch3) ## Description of the
 data and file structure 1\) &lt;"Scripts" folder&gt; section:
 Describes the folder titled "Scripts", which includes
 information on how we processed our data. 2\) &lt;"Subject X"
 folders...&gt; section: Describes all the data in the folders that can be
 found in the "Subject X" folders. 3\) section: Detailed description of the labels in each of the
 .mat data files and other important information about the dataset. --- ###
 "Scripts" folder Scripts and aggregate data used for
 time-synchronizing sensors (e.g., between Vicon, EMG, etc.) and sensor
 data processing. Read the README in the "Scripts" folder for a
 more detailed guide on how we processed our data using these scripts.
 visualizeProcessedData.m demonstrates how to load important signals in the
 dataset using MATLAB. Note: All code using the data in this dataset to
 generate results in the accompanying manuscript is written in Python and
 R, using Jupyter and RStudio, respectively. Code located at
 [https://github.com/mraitor/balanceMetric](https://github.com/mraitor/balanceMetric) --- ### "Subject X" folders (With X being the subject number) The directories in this dataset contain perturbation and steady-state walking data for participants in various balance impairment conditions. Each subject has their own folder with a README describing details specific to the subject and sessions experienced by that subject. This top-level readme describes the perturbation data/conditions experienced by each subject, the overall data structure, and how to interpret filenames. Note: subject numbers are shifted relative to the supplementary figure in the accompanying manuscript. Manuscript subject 1 corresponds to subject 5 in this dataset, manuscript subject 2 corresponds to subject 6 in this dataset, and so on. Subject number in manuscript = subject number in dataset - 4. --- ### Folder organization within each subject folder: OpenSim (OpenSim files) ``` \&gt; SXXTYZ (See "Reading session ID numbers" section below for interpretation) \&gt; Models (unscaled and scaled OSim model for session, Geometry subfolder contains model geometry files) \&gt; C3D (C3D files) \&gt; Marker Data (.trc files from standing and trials) \&gt; IK (Inverse kinematics results) \&gt; ExtractedSignals (Signals generated using OpenSim, recorded in csv per trial. Signals include com_pos, com_vel, kinetic_energy, whole body angular momentum, and principal moments of inertia of the whole body. Note: These directories are downloaded from addBiomechanics, and the format may change as they are auto-generated ``` Perturbation Order ``` \&gt; SXXTYZ (See "Reading session ID numbers" section below for interpretation) .csv and .mat files contain the same information. They include information on perturbation magnitude, direction, and timing. \- The row numbers indicate the order in which the perturbations were experienced. This corresponds to the \- pertPointCycleLME: Perturbation point in gait cycle as a fraction of the full gait cycle (Starting from left heel strike and ending before next left heel strike. e.g., 0% is left heel strike, 32.5% is mid-stance of left leg, and 65% is approximately toe-off for left leg) \- pertForceDirLME_ML: Perturbation component in medial-lateral direction. Has convention of + to the right, - to the left \- pertForceDirLME_AP: Perturbation component in anterior-posterior direction. Has convention of + to anterior, - to posterior \- pertForceMagLME: Perturbation magnitude as fraction of subject bodyweight \- pertID: Perturbation ID. Each perturbation type (of a certain direction and magnitude) has a unique ID number. This is consistent across subjects. e.g., leftward + high force will always have a pertID of 7. This number is different from the perturbation order \- pertRepeatNum: Each perturbation type (of a certain direction and magnitude) is repeated twice. This records if it's the 1st or 2nd occurrence. ``` Speedgoat Processed Data ``` \&gt; SXXTYZ (See "Reading session ID numbers" section below for interpretation) \&gt; SXXDYZ01 - SXXDYZ16: 16 files for 16 perturbation trials \- .mat files include a data structure 'speedgoatDataTrimmed' that includes the following data (See 'Speedgoat data' section for more info) \- Bump'em module pull force trajectories: in speedgoatDataTrimmed.data columns 5-8 \- time: in speedgoatDataTrimmed.data column 33 \- Various controller states: in speedgoatDataTrimmed.data, all other columns \- Perturbation number is represented by the last 2 characters in the file name. \- These are time-synced with Vicon and OpenSim files (they cover the same period of time, but sample at different frequencies. See the "Recording Rates" section further down the README for details. ``` Speedgoat Raw Data ``` \&gt; SXXTYZ (See "Reading session ID numbers" section below for interpretation) \&gt; .DAT file is a full session record (all 16 perturbations) The accompanying .mat file with relevant variables (_VARS) for perturbation order is only included for completeness. Users should not need this data. It is only included for completeness. ``` Vicon Processed data ``` \&gt; SXXCC0 \&gt; bumpem: Bump’em module markers in capture volume \&gt; SXXCC0qq file (where qq is a 2-digit number): Can be ignored. The info included is redundant \&gt; SXXCYZ - All other "Calibration" files, where 4th character = 'C' (See "Reading session ID numbers" section below for interpretation) \&gt; emg: Maximum voluntary muscle contraction for EMG \&gt; post_pert_walk: 3 min walking trial after perturbation sequence \&gt; pre_pert_walk: 3 min walking trial before perturbation sequence \&gt; standing: standing and ROM motion on treadmill for subject scaling \&gt; SXXDYZqq files (where qq is a 2-digit number): Can be ignored. The info included is redundant to the previous 4 listed files \&gt; SXXDYZ "Data" files, where the 4th character = 'D' (See "Reading session ID numbers" section below for interpretation) \&gt; SXXDYZ01 - SXXDYZ16: 16 files for 16 perturbation trials \- .mat file includes a data structure that includes the following data \- Ground reaction force data: in data.Analog.Signal columns 1-12 (See 'Ground reaction force data' section below for more info) \- EMG data: in data.Analog.Signal columns 25-40 (See 'EMG data' section for more info) \- Marker motion caption data: in data.Coor.Signal columns 1-12 (See 'Vicon marker motion capture data' section below for more info) \- The last two characters (01 to 16) represent the order in which that perturbation was experienced. This corresponds to the row numbers in the corresponding session folder within the 'Perturbation Order' folder (see 'Perturbation Order' folder description above to understand How to get pull force and direction info from the perturbation order number. \- Additional notes \- Marker position data were filtered with a 30 Hz 4th-order Butterworth low-pass (zero-lag) filter unless otherwise noted in subject/session notes. \- .mat files in this folder carry redundant info to .c3d and are included for convenience. \- During a 3-minute walk, the subject had arms up on the harness as they do during perturbations (no arm swing). \- Bump’em is on in low-force tracking mode for all 3-min walk tests, take the middle 3 min as some recordings are longer due to starting/stopping condition (e.g., putting on eye mask, etc.) ``` Vicon Raw data ``` \&gt; SXXTYZ (See "Reading session ID numbers" section below for interpretation) \&gt; Unlabelled raw data from Vicon from session (as a redundancy only, in case it is of interest to users) ``` --- ### Reading session ID numbers: (Session IDs are the folder names in Subject X\\...\SXXTYZ) General form: "SXXTYZ" 1st Character: "S" stands for "subject" 2nd-3rd characters: XX is a placeholder for the subject number 4th character: T is a placeholder for the Trial type ``` "C" = "calibration" trials, which include recordings of standing calibrations, range of motion calibrations, and 3-min walking pre and post perturbation "D" = "Data", meaning recordings of actual perturbations. ``` 5th character: Y is a placeholder for Balance impairment condition when it is "N", "A", "E", or "P". "C" is an exception to the category ``` "N" = Normal shoe condition (Wearing normal walking shoes) "A" = Ankle braces condition (aircast boots instead of normal walking shoes) "E" = Eyes blocked condition (wearing blindfold and normal walking shoes) "P" = Pneumatic condition (normal walking shoes + air thrusters perturbing at the ankles simulating neuromuscular noise) "C" = Bumpem module position registration recording with Vicon. This is found only in Vicon data folders. ``` 6th character: Z is a placeholder for the order number that the condition was experienced in (1-4), or 0 if it is a Bumpem module position registration file ``` "1", "2", "3", or "4" = the order in which that condition was experienced. This was randomized. "0" = This is a Bumpem module position registration file ``` For example ``` "S05DN4" would indicate that we are looking at Subject 05, perturbation data, for the normal shoes condition, where it was the 4th condition experienced "S08CP3" would indicate that we are looking at Subject 08, calibration data, for the pneumatic condition, where it was the 3rd condition experienced "S02CC0" would indicate that we are looking at Subject 02's motor module registration file (Only found in "Vicon Raw Data" and "Vicon Processed Data" folders) ``` --- ### Example of where to find data E.g., we want to find data from: Subject 5, Normal shoes condition, Rightward, low force perturbation, first occurrence (each perturbation type is repeated twice) ``` \- SESSION ID: Based on subject number and condition of interest, we know that we are looking at session ID S05DN4 (Based on 'Reading session ID numbers' section) \- PERTURBATION NUMBER: To find perturbation number, \- Open: Subject 5/Perturbation Order/S05DN4 \- Find first row where pertForceDirLME_ML = 1, pertForceMagLME = 0.0749 \- In this case, perturbation number = 5 (since it's on row 5) \- KINEMATICS: \- Find data in Subject 5/OpenSim/S05DN4/IK/S05DN405.mot \- TREADMILL GROUND REACTION FORCE: \- Find data in Subject 5/Vicon Processed Data/S05DN4/S05DN405 &gt; 'data' matlab structure &gt; data.Analog.Signal columns 1-12 (See 'Ground reaction force data' section for more info) \- EMG: \- Find data in Subject 5/Vicon Processed Data/S05DN4/S05DN405 &gt; 'data' matlab structure &gt; data.Analog.Signal columns 25-40 (See 'EMG data' section for more info) \- BUMP'EM MODULE FORCES: \- Find data in Subject 5/Speedgoat Processed Data/S05DN4/S05DN405 &gt; 'speedgoatDataTrimmed' matlab structure &gt; columns 5-8 (See 'Speedgoat data' section for more info) ``` --- ### Additional details about the data and various labels Contains detailed information on the dataset and the labels within various MATLAB data structures Recording Rates and important experimental values across all subjects/trials: Speedgoat records at 1000Hz Xsens records at approx. 100 Hz Vicon motion capture records at 100Hz Vicon analog signals (EMG, force plates) recorded at 1000Hz Walking speed: 1.25 m/s Stride cycle is left heel strike based (0% is at left heel strike) Each perturbation trial is 21 seconds long, and perturbation is targeted to occur at 10s into the recording, lasting 300ms Each subject experiences 4 conditions (Ankle braces, Eyes blocked, pneumatic, and normal shoes). Within each condition, the subject experiences 16 perturbations ``` (4 directions (front, back, left, right), 2 magnitudes (7.5%, 15% of bodyweight), 2 repeat perturbations, all in a pseudorandom order. Perturbation timing always targets to begin at 32.5% of the gait cycle (mid-stance of the left leg). Subjects walk unperturbed for approximately 3 minutes before and after each bout of 16 perturbations. ``` --- ### Reference Frames \- Vicon data: Z upward, X to the right side of the treadmill (and generally rightward of the person as well), Y forward on the treadmill (and generally on the person as well). Origin is the back left corner of the treadmill. Vicon data in both .c3d and .mat files has this orientation/origin. \- OpenSim has a different convention. Y is upward, X is forward on the treadmill, and Z is to the right. The origin is in the back left corner of the treadmill. This ref frame applies to .trc, .mot, and files derived from them, such as 'ExtractedSignals' .csv files. \- Bertec treadmill force plate data: X is leftward, Y is forward, Z is downward --- ### Ground reaction force data \- Ground reaction force data from the treadmill can be found in: Subject X\Vicon Processed Data\SXXDYZ\SXXDYZqq.mat \- Data is contained in the MATLAB structure labeled 'data' \- data.Analog.Signal contains ground reaction force data in columns 1-12 as labeled in data.Analog.Label \- data.Analog.Label contains the headers of each signal. The headers corresponding to ground reaction forces are in the first 12 rows as follows: ``` 'Force.Fx1' -&gt; Force on left belt in x-direction (in Newtons) 'Force.Fy1' -&gt; Force on left belt in y-direction (in Newtons) 'Force.Fz1' -&gt; Force on left belt in z-direction (in Newtons) 'Moment.Mx1' -&gt; Moment on left belt in x-direction (in Newton-meters) 'Moment.My1' -&gt; Moment on left belt in y-direction (in Newton-meters) 'Moment.Mz1' -&gt; Moment on left belt in z-direction (in Newton-meters) 'Force.Fx2' -&gt; Force on right belt in x-direction (in Newtons) 'Force.Fy2' -&gt; Force on right belt in y-direction (in Newtons) 'Force.Fz2' -&gt; Force on right belt in z-direction (in Newtons) 'Moment.Mx2' -&gt; Moment on right belt in x-direction (in Newton-meters) 'Moment.My2' -&gt; Moment on right belt in y-direction (in Newton-meters) 'Moment.Mz2' -&gt; Moment on right belt in z-direction (in Newton-meters) ``` \- Reference frame ``` \- For Bertec treadmill data: X is leftward, Y is forward, and Z is downward. \- Origin of left force plate forces and moments is in the back left of the left force plate, 15mm below the force plate. \- Origin of right force plate forces and moments is in the back right of the right force plate, 15mm below the force plate. \- Origins of left and right force plates are 1m apart in the x-direction. ``` --- ### EMG data \- EMG data taken at 16 locations can be found in: Subject X\Vicon Processed Data\SXXDYZ\SXXDYZqq.mat \- Data is contained in the MATLAB structure labeled 'data' \- data.Analog.Signal contains EMG data in columns 25-40 as follows: ``` Columns 25-32: Left leg 25-&gt; Tib Aant 26-&gt; Soleus 27-&gt; Gastroc (Med) 28-&gt; Semi Tend 29-&gt; Vast Lat 30-&gt; Rec Fem 31-&gt; Glut Max 32-&gt; Glut Med Columns 33-40: Right leg 33-&gt; Tib Aant 34-&gt; Soleus 35-&gt; Gastroc (Med) 36-&gt; Semi Tend 37-&gt; Vast Lat 38-&gt; Rec Fem 39-&gt; Glut Max 40-&gt; Glut Med ``` \- data.Analog.Label contains the data headers. Voltage.1 to Voltage.16 in rows 25-40 correspond to the 16 EMG signals \- Note: EMG signals have not been filtered in any way. Suggested filtering demonstrated in Scripts/Extra Manual Motion Capture Processing Scripts/visualizeEMG.m --- ### Vicon marker motion capture data \- Motion capture data of 45 Vicon markers can be found in Subject X/Processed Vicon Data/SXXDYZ\SXXDYZqq.mat \- Data is contained in the MATLAB structure labeled 'data' \- data.Coor.Signal contains the x, y, and z coordinate data of each of the 45 markers \- data.Coor.Label contains the headers of each of the 45 markers. The headers correspond to markers placed on different parts of the body as follows: ``` 'RASI' -&gt; Right anterior superior iliac crest 'LASI' -&gt; Left anterior superior iliac crest 'RPSI' -&gt; Right posterior superior iliac crest 'LPSI' -&gt; Left posterior superior iliac crest 'RLKN' -&gt; Right lateral knee 'RTH1' -&gt; Right thigh tracking marker 1 'RTH2' -&gt; Right thigh tracking marker 2 'RTH3' -&gt; Right thigh tracking marker 3 'LLKN' -&gt; Left lateral knee 'LTH1' -&gt; Left thigh tracking marker 1 'LTH2' -&gt; Left thigh tracking marker 2 'LTH3' -&gt; Left thigh tracking marker 3 'LLAK' -&gt; Left lateral ankle 'LSH1' -&gt; Left shank tracking marker 1 'LSH2' -&gt; Left shank tracking marker 2 'LSH3' -&gt; Left shank tracking marker 3 'LTOE' -&gt; Left toe (distal end of first metatarsal) 'LMT5' -&gt; Left 5th metatarsal distal end 'LCAL' -&gt; Left calcaneus 'RLAK' -&gt; Right lateral ankle 'RSH1' -&gt; Right shank tracking marker 1 'RSH2' -&gt; Right shank tracking marker 2 'RSH3' -&gt; Right shank tracking marker 3 'RTOE' -&gt; Right toe (distal end of first metatarsal) 'RMT5' -&gt; Right 5th metatarsal distal end 'RCAL' -&gt; Right calcalcaneus 'RSHL' -&gt; Right shoulder (acromion) 'LSHL' -&gt; Left shoulder (acromion) 'C7' -&gt; 7th cervical segment of the spine 'RLEL' -&gt; Right lateral elbow (epicondyle) 'RUA1' -&gt; Right upper arm tracking marker 1 'RUA2' -&gt; Right upper arm tracking marker 2 'RUA3' -&gt; Right upper arm tracking marker 3 'RULN' -&gt; Right ulna (distal end) 'RRAD' -&gt; Right radius (distal end) 'RFA' -&gt; Right forearm tracking marker 'LLEL' -&gt; Left lateral elbow (epicondyle) 'LUA1' -&gt; Left upper arm tracking marker 1 'LUA2' -&gt; Left upper arm tracking marker 2 'LUA3' -&gt; Left upper arm tracking marker 3 'LULN' -&gt; Left ulna (distal end) 'LRAD' -&gt; Left radius (distal end) 'LFA' -&gt; Left forearm tracking marker 'SAC' -&gt; Sacrum 'CLAV' -&gt; Clavicle ``` --- ### Speedgoat data \- Data from our real-time target machine (FPGA) that includes recordings of pull forces from bump'em modules, time, and various controller state variables can be found in Subject X/Speedgoat Processed Data/SXXDYZ/SXXDYZqq.mat \- Data can be found in Subject X/Speedgoat Processed Data/SXXDYZ/SXXDYZqq.mat \- Data is contained in the MATLAB structure labeled 'speedgoatDataTrimmed' \- speedgoatDataTrimmed.data includes data of various signals as labeled in speedgoatDataTrimmed.signalNames \- speedgoatDataTrimmed.signalNames are headers that correspond to the following signals: ``` 'Controller/state' -&gt; Controller state variable 'Controller/Pull Pressed' -&gt; Controller state variable 'Controller/pull_state' -&gt; Controller state variable 'Controller/stride_svg_gain/s4' -&gt; Controller state variable 'Controller/F_mem/s1' -&gt; Bump'em pull force from module 1 = rightward (in Newtons) 'Controller/F_mem1/s1' -&gt; Bump'em pull force from module 2 = forward (in Newtons) 'Controller/F_mem2/s1' -&gt; Bump'em pull force from module 3 = leftward (in Newtons) 'Controller/F_mem3/s1' -&gt; Bump'em pull force from module 4 = backward (in Newtons) 'Controller/XHat gain /s1' -&gt; Controller state variable (estimated medial-lateral position of pelvis) 'Controller/XHat gain 1/s2' -&gt; Controller state variable (estimated anterior-posterior position of pelvis) 'Controller/XHat gain 2/s3' -&gt; Controller state variable (estimated medial-lateral velocity of pelvis) 'Controller/XHat gain 3/s4' -&gt; Controller state variable (estimated anterior-posterior velocity of pelvis) 'Controller/grfL/s1' -&gt; Ground reaction forces (We recommend using data from Vicon as detailed in the 'Ground reaction force data' section instead) 'Controller/grfL/s2' -&gt; Ground reaction forces (We recommend using data from Vicon as detailed in the 'Ground reaction force data' section instead) 'Controller/grfL/s3' -&gt; Ground reaction forces (We recommend using data from Vicon as detailed in the 'Ground reaction force data' section instead) 'Controller/grfL/s4' -&gt; Ground reaction forces (We recommend using data from Vicon as detailed in the 'Ground reaction force data' section instead) 'Controller/grfL/s5' -&gt; Ground reaction forces (We recommend using data from Vicon as detailed in the 'Ground reaction force data' section instead) 'Controller/grfL/s6' -&gt; Ground reaction forces (We recommend using data from Vicon as detailed in the 'Ground reaction force data' section instead) 'Controller/grfR/s1' -&gt; Ground reaction forces (We recommend using data from Vicon as detailed in the 'Ground reaction force data' section instead) 'Controller/grfR/s2' -&gt; Ground reaction forces (We recommend using data from Vicon as detailed in the 'Ground reaction force data' section instead) 'Controller/grfR/s3' -&gt; Ground reaction forces (We recommend using data from Vicon as detailed in the 'Ground reaction force data' section instead) 'Controller/grfR/s4' -&gt; Ground reaction forces (We recommend using data from Vicon as detailed in the 'Ground reaction force data' section instead) 'Controller/grfR/s5' -&gt; Ground reaction forces (We recommend using data from Vicon as detailed in the 'Ground reaction force data' section instead) 'Controller/grfR/s6' -&gt; Ground reaction forces (We recommend using data from Vicon as detailed in the 'Ground reaction force data' section instead) 'Controller/tStrideL' -&gt; Controller state variable 'Controller/tStrideR' -&gt; Controller state variable 'Controller/pullCountGain' -&gt; Controller state variable 'Controller/Vicon_status_rec' -&gt; Digital signal indicating if Vicon is recording, used for time-synchronization. 'Controller/xsens_status' -&gt; Digital signal indicating if Xsens is recording, used for time synchronization. 'Controller/pneuTimingArrayIdxGain'-&gt; Controller state variable 'Controller/F_res_des Gain/s1' -&gt; Controller state variable (desired medial-lateral force from bump'em) 'Controller/F_res_des Gain/s2' -&gt; Controller state variable (desired anterior-posterior force from bump'em) 'Time' -&gt; Time ``` --- ### OpenSim data detailed description Joint angle data from inverse kinematics in the session/IK/ directory for each subject OpenSim variable -&gt; description ``` time -&gt; time in seconds since the beginning of the recording pelvis_tilt -&gt; pelvis tilt pelvis_list -&gt; pelvis list pelvis_rotation -&gt; pelvis rotation pelvis_tx -&gt; pelvis x position in the x direction of the OpenSim global coordinate system pelvis_ty -&gt; pelvis y position in the x direction of the OpenSim global coordinate system pelvis_tz -&gt; pelvis z position in the x direction of the OpenSim global coordinate system hip_flexion_r -&gt; right hip flexion hip_adduction_r -&gt; right hip adduction hip_rotation_r -&gt; right hip rotation knee_angle_r -&gt; right knee flexion angle ankle_angle_r -&gt; right ankle plantar flexion angle subtalar_angle_r -&gt; right subtler angle mtp_angle_r -&gt; right metatarsal angle hip_flexion_l -&gt; left hip flexion angle hip_adduction_l -&gt; left hip adduction angle hip_rotation_l -&gt; left hip rotation angle knee_angle_l -&gt; left knee flexion angle ankle_angle_l -&gt; left ankle plantar flexion angle subtalar_angle_l -&gt; left subtalar angle mtp_angle_l -&gt; left metatarsal angle lumbar_extension -&gt; lumbar extension angle lumbar_bending -&gt; lumbar bend angle lumbar_rotation -&gt; lumbar rotation angle arm_flex_r -&gt; right shoulder flexion arm_add_r -&gt; right should adduction arm_rot_r -&gt; right shoulder rotation elbow_flex_r -&gt; right elbow flexion angle pro_sup_r -&gt; right pronation angle wrist_flex_r -&gt; right wrist flexion angle wrist_dev_r -&gt; right wrist deviation angle arm_flex_l -&gt; left shoulder flexion arm_add_l -&gt; left should adduction arm_rot_l -&gt; left shoulder rotation elbow_flex_l -&gt; left elbow flexion pro_sup_l -&gt; left pronation angle wrist_flex_l -&gt; left wrist flexion wrist_dev_l -&gt; left wrist deviation ``` Additional extracted signals generated using OpenSim after inverse kinematics were solved ``` time -&gt; time in seconds since the beginning of the recording com_pos_x -&gt; center of mass position in the x direction of the OpenSim global coordinate system Com_pos_y -&gt; center of mass position in the y direction of the OpenSim global coordinate system com_pos_z -&gt; center of mass position in the z direction of the OpenSim global coordinate system com_vel_x -&gt; center of mass velocity in the x direction of the OpenSim global coordinate system com_vel_y -&gt; center of mass velocity in the y direction of the OpenSim global coordinate system com_vel_z -&gt; center of mass velocity in the z direction of the OpenSim global coordinate system kinetic_energy -&gt; kinetic energy of the whole body viewed from the laboratory reference frame angular_momentum_x -&gt; x component of the angular momentum of the whole body system viewed from, and expressed in, the laboratory reference frame angular_momentum_y -&gt; y component of the angular momentum of the whole body system viewed from, and expressed in, the laboratory reference frame angular_momentum_z -&gt; z component of the angular momentum of the whole body system viewed from, and expressed in, the laboratory reference frame central_inertia_00 -&gt; principal component of inertia of the whole body in the x direction of the laboratory reference frame (often abbreviated as Ixx in dynamics texts) central_inertia_11 -&gt; principal component of inertia of the whole body in the y direction of the laboratory reference frame (often abbreviated as Iyy in dynamics texts) central_inertia_22 -&gt; principal component of inertia of the whole body in the z direction of the laboratory reference frame (often abbreviated as Izz in dynamics texts) ``` ## Access information Other publicly accessible locations of the data: * [http://gofile.me/4oVL6/uFylcak0t](http://gofile.me/4oVL6/uFylcak0t) ## Human subjects data We confirm that we obtained explicit written consent from all participants to publish their de-identified data in the public domain as part of the study’s approved IRB protocol. To ensure privacy, all identifying information was removed, and each participant was assigned a random numerical code. The dataset includes only biomechanical and sensor data with no names, dates of birth, or other personally identifiable information.