DOI: 10.5061/dryad.8kprr4xsv
title: Estimating human joint moments unifies exoskeleton control and reduces user effort

description: Robotic lower-limb exoskeletons can augment human mobility, but current
 systems require extensive, context-specific considerations, limiting their
 real-world viability. Here, we present a unified exoskeleton control
 framework that autonomously adapts assistance based on instantaneous user
 joint moment estimates from a temporal convolutional network (TCN). When
 deployed on our hip exoskeleton, the TCN achieved an average RMSE of 0.142
 ± 0.021 Nm/kg and R2 of 0.840 ± 0.045 across 35 ambulatory conditions
 without any subject-specific calibration. Further, the unified controller
 significantly reduced user metabolic cost and lower-limb positive work
 during level ground and incline walking compared to walking without
 wearing the exoskeleton (P &lt; 0.05). This advancement bridges the
 gap between in-lab exoskeleton technology and real-world human ambulation,
 making exoskeleton control technology viable for a broad community.
description: # Estimating Human Joint Moments Unifies Exoskeleton Control and Reduces
 User Effort by Dean D. Molinaro, Inseung Kang, and Aaron J. Young Dataset
 prepared by Dean D. Molinaro (contact:
 [dmolinaro3@gatech.edu](mailto:dmolinaro3@gatech.edu)) This dataset
 consists of sensor data from a robotic hip exoskeleton and time-synced
 with ground-truth human lower-limb biomechanics. All data were sampled at
 200 Hz. ## General Terminology, Conventions, and Units ### Ambulation
 Modes LG: level ground (either overground or on a treadmill) RA: ramp
 ascent (either overground or on a treadmill) RD: ramp descent (either
 overground or on a treadmill) SA: stair ascent (overground staircase) SD:
 stair descent (overground staircase) ST: standing TR: stand-to-walk and
 walk-to-stand transitions in same trial (treadmill) TRA: stand-to-walk
 transition (overground) TRB: walk-to-stand transition (overground) ###
 Controllers BT: gait phase-based exo control using assistance trajectory
 based on average biological torque for each mode ET: gait phase-based exo
 control using assistance trajectory tuned by the experimenters for each
 mode UC: unified joint moment controller ### Conventions
 Extension/Plantarflexion: positive Flexion/Dorsiflexion: negative ###
 Units (Unless Otherwise Stated) Time: seconds Angle: rad Angular Velocity:
 rad/s Distance: meters Acceleration: m/s^2 Force: Newtons Exo Torque: Nm
 Joint Moments: Nm/kg Gait Phase: range from 0 to 1 ## Description of
 Experimental Phases ### Phase 1 Participants AB01-AB09 Modes: Overground
 LG, RA, RD, SA, SD Exo: Gait Enhancing and Motivating System (GEMS)
 (Samsung, South Korea) Note: Thigh, shank, and pelvis IMU data were
 transformed to match their respective coordinate systems of the IMUs
 mounted on the custom hip exo ### Phase 2 Participants AB10-AB14 Modes:
 Overground LG, RA, RD, SA, SD, ST, TRA, TRB Exo: Custom Hip Exo ### Phase
 3 Participants AB15-AB24 Modes: Treadmill LG, RA, RD and overground SA, SD
 Exo: Custom Hip Exo ### Phase 4 Participants AB25-AB34 Modes: Treadmill
 LG, RA, RD and overground SA, SD Note: Participants AB30-AB34 also
 completed ST and TR trials Exo: Custom Hip Exo ## File Structure
 Participant Code \-- Trial Name \-- + -- angle.csv \-- + -- exo.csv \-- +
 -- gp.csv \-- + -- grf.csv \-- + -- moment.csv Each trial name has the
 form: mode, condition, speed, controller, and optional indices **mode:**
 describes the trial ambulation mode **condition:** describes the slope (in
 degrees) or stair height (in cm) of the trial     Note: "p" is
 used as a substitute for "." (e.g., 12p5 = 12.5)     Note:
 "n" is used as a substitute for "-" (e.g., n12p5 =
 -12.5)     Note: If the trial does not consist of a ramp slope or stair
 height, condition = C0p0 **speed:** describes the walking speed (in m/s)
 of the trial     Note: "p" is used as a substitute for
 "." (e.g., 1p25 = 1.25)     Note: If the trial does not consist
 of a controller walking speed (e.g., during overground or standing
 trials), speed = S0p0 **optional indices:** used to index multiple trials
 with the same mode, condition, speed, and controller ## File Contents
 Note: All files corresponding to the same trial are synced in time (see
 the time column in each trial). angle.csv: file containing the
 ground-truth, sagittal plane hip, knee, and ankle angles computed from
 inverse kinematics * time: trial time * hip_angle_l: hip extension angle
 of the left leg * knee_angle_l: knee extension angle of the left leg *
 ankle_angle_l: ankle plantarflexion angle of the left leg * hip_angle_r:
 hip extension angle of the right leg * knee_angle_r: knee extension angle
 of the right leg * ankle_angle_r: ankle plantarflexion angle of the right
 leg * Note: joint angles were filtered using a zero-lag 5th order
 Butterworth filter with a 6 Hz cutoff frequency exo.csv: file containing
 the exoskeleton sensor and torque data * time: trial time * enc_angle_l:
 encoder position of left actuator * enc_angle_r: encoder position of right
 actuator * enc_velo_l: encoder velocity of left actuator * enc_velo_r:
 encoder velocity of right actuator * thigh_accel_x_l: x-axis accelerometer
 data from left thigh IMU * thigh_accel_y_l: y-axis accelerometer data from
 left thigh IMU * thigh_accel_z_l: z-axis accelerometer data from left
 thigh IMU * thigh_gyro_x_l: x-axis gyroscope data from left thigh IMU *
 thigh_gyro_y_l: y-axis gyroscope data from left thigh IMU *
 thigh_gyro_z_l: z-axis gyroscope data from left thigh IMU *
 thigh_accel_x_r: x-axis accelerometer data from right thigh IMU *
 thigh_accel_y_r: y-axis accelerometer data from right thigh IMU *
 thigh_accel_z_r: z-axis accelerometer data from right thigh IMU *
 thigh_gyro_x_r: x-axis gyroscope data from right thigh IMU *
 thigh_gyro_y_r: y-axis gyroscope data from right thigh IMU *
 thigh_gyro_z_r: z-axis gyroscope data from right thigh IMU *
 pelvis_accel_x: x-axis accelerometer data from pelvis IMU *
 pelvis_accel_y: y-axis accelerometer data from pelvis IMU *
 pelvis_accel_z: z-axis accelerometer data from pelvis IMU * pelvis_gyro_x:
 x-axis gyroscope data from pelvis IMU * pelvis_gyro_y: y-axis gyroscope
 data from pelvis IMU * pelvis_gyro_z: z-axis gyroscope data from pelvis
 IMU * trq_est_l: left hip moment estimated by TCN * trq_cmd_l: torque
 commanded to left actuator * trq_mea_l: torque from left actuator (torque
 was computed by multiplying the measured motor current by the motor torque
 constant and gear ratio) * trq_est_r: right hip moment estimated by TCN *
 trq_cmd_r: torque commanded to right actuator * trq_mea_r: torque from
 right actuator (torque was computed by multiplying the measured motor
 current by the motor torque constant and gear ratio) * NOTE: enc_velo was
 computed from enc_pos using backward finite differencing and lowpass
 filtered using a causal 2nd order Butterworth filter with a 10 Hz cutoff
 frequency gp.csv: file containing the labeled gait phase for each stride *
 time: trial time * gp_to_l: left leg gait phase segmented by toe-off *
 gp_hs_l: left leg gait phase segmented by heel strike * gp_to_r: right leg
 gait phase segmented by toe-off * gp_hs_r: right leg gait phase segmented
 by heel strike * Note: When GRF data were not available, heel strike and
 toe-off were detected based on heel marker and toe-marker velocities,
 respectively. grf.csv: file containing the 3-axis ground reaction force
 (GRF) and 3-axis center of pressure (CoP) measured by the force plates *
 time: trial time * fp_vx_l: GRF in x-axis of ground frame applied to left
 foot * fp_vy_l: GRF in y-axis of ground frame applied to left foot *
 fp_vz_l: GRF in z-axis of ground frame applied to left foot * fp_px_l: CoP
 in x-axis of ground frame applied to left foot * fp_py_l: CoP in y-axis of
 ground frame applied to left foot * fp_pz_l: CoP in z-axis of ground frame
 applied to left foot * fp_vx_r: GRF in x-axis of ground frame applied to
 right foot * fp_vy_r: GRF in y-axis of ground frame applied to right foot
 * fp_vz_r: GRF in z-axis of ground frame applied to right foot * fp_px_r:
 CoP in x-axis of ground frame applied to right foot * fp_py_r: CoP in
 y-axis of ground frame applied to right foot * fp_pz_r: CoP in z-axis of
 ground frame applied to right foot * Note: y-axis points up, z-axis points
 to the back of the treadmill, x-axis completes the right-hand-rule (i.e.,
 points to participant's right side when walking forward on the
 treadmill) moment.csv: file containing the ground-truth, sagittal plane
 hip, knee, and ankle moments computed from inverse dynamics * time: trial
 time * hip_moment_l: hip extension moment of the left leg * knee_moment_l:
 knee extension moment of the left leg * ankle_moment_l: ankle
 plantarflexion moment of the left leg * hip_moment_r: hip extension moment
 of the right leg * knee_moment_r: knee extension moment of the right leg *
 ankle_moment_r ankle plantarflexion moment of the right leg * Note: joint
 moments were filtered using a zero-lag 5th order Butterworth filter with a
 6 Hz cutoff frequency ## Additional Notes Note: The time array for each
 trial is relative to when motion capture data collection was started.
 Often the exoskeleton logger was started before the motion capture system,
 so the trials may start with a time that is less than zero. Note: Due to
 experimental complications, there are a few participants missing specific
 trial data. * AB05: Missing SA_C10p2_S0p0_BT, SA_C10p2_S0p0_ET,
 SA_C12p7_S0p0_BT, SA_C12p7_S0p0_ET, SD_Cn10p2_S0p0_BT, SD_Cn10p2_S0p0_ET,
 SD_Cn12p7_S0p0_BT, SD_Cn12p7_S0p0_ET * AB16: Missing LG_C0p0_S0p75_UC,
 LG_C0p0_S1p5_UC, LG_C0p0_S1p75_UC * AB17: Missing LG_C0p0_S0p75_UC,
 LG_C0p0_S1p5_UC, LG_C0p0_S1p75_UC * AB18: Missing LG_C0p0_S0p75_UC,
 LG_C0p0_S1p5_UC, LG_C0p0_S1p75_UC * AB19: Missing LG_C0p0_S0p75_UC,
 LG_C0p0_S1p5_UC, LG_C0p0_S1p75_UC * AB25: Missing LG_C0p0_S1p9_UC * AB28:
 Missing RD_Cn15p0_S0p75_UC Note: Angle, moment, grf, gait phase, and exo
 data may be NaN for multiple reasons. 1. Angle, moment, grf, and gait
 phase data are NaN when inverse dynamics were not valid (e.g., when valid
 GRF data was not available). This often occurred near the edges of the
 motion capture space so kinematics were also set to NaN. This was very
 common during overground trials since participants often walked over
 sections of the lab that did not have force plate data. 2. The trq_est_l
 and trq_est_r columns in exo.csv are NaN for all BT and ET trials since
 hip moments were not estimated during these trials. 3. Occasionally the
 custom IMU logger on the coprocessor would take longer than 20 ms to
 sample the data when using the GEMS (i.e., for participants AB01-AB09). In
 these cases, the exo data were upsampled to 200 Hz but NaNd since exo data
 during these timesteps were not valid. Loop rates longer than 5 ms but
 lower than 20 ms were upsampled but the data were not NaNd to preserve the
 sequence for neural network training. Loop rates of over 20 ms occurred in
 less than 1% of the GEMS data for each participant. This issue did not
 occur for any of the other 25 participants. 4. Due to a bug in the
 controller software, trq_mea_l and trq_mea_r were not recorded for
 AB10-AB14. These columns are NaN for all trials for these participants.