Therapist-exoskeleton-patient interaction for gait therapy
Data files
Jun 15, 2026 version files 20.82 GB
Abstract
Following a stroke, individuals often experience mobility and balance impairments due to weakness and loss of independent joint control in the lower limbs. Gait recovery is a primary goal of physical rehabilitation for these individuals, traditionally achieved through high-intensity training led by a physical therapist. However, the conventional approach used by physical therapists, applying manual assistance or resistance during training, can be physically demanding and limits their ability to physically interact with the patient at multiple joints simultaneously. Robotic exoskeletons have emerged as a promising solution, enabling multi-joint support, reducing therapist strain, and offering objective performance feedback. However, typical exoskeleton control strategies limit the physical therapist’s involvement and adaptability to the patient’s needs, which may hinder clinical adoption and outcomes.
In this study, we introduce a novel gait rehabilitation paradigm based on physical Human-Robot-Human Interaction (pHRHI), in which a therapist and an individual post-stroke are each equipped with a lower-limb exoskeleton virtually connected at the hips and knees via spring-damper elements. This connection enables bidirectional physical interaction, allowing the therapist to guide
the patient’s movement while receiving real-time haptic feedback. We evaluated this approach with eight chronic post-stroke participants using within-subject design, comparing the pHRHI-based training to conventional therapist-guided mobilization during treadmill walking. Results showed that the pHRHI condition led to greater joint range of motion, increased step length and height,
elevated muscle activation compared to conventional therapy, and high levels of self-reported motivation and enjoyment. These findings suggest that pHRHI can effectively integrate robotic precision with therapist intuition, offering a promising framework for enhancing gait rehabilitation outcomes in post-stroke populations.
The attached dataset includes kinematic, dynamic, and kinetic data collected during this study. It may be used to identify therapist action policies based on patient impairment and to design novel rehabilitative controllers strategies for lower-limb exoskeletons.
Dataset DOI: 10.5061/dryad.37pvmcvxd
Description of the data and file structure
System Description
Two lower-limb exoskeletons (ExoMotus-X2, Fourier Intelligence, Singapore) were modified and employed to develop a physical Human-Robot-Robot-Human Interaction (pHRHI) framework for gait therapy. The X2 exoskeleton, designed for overground walking, features four active degrees of freedom (DoFs) at the hip and knee joints, while passively supporting the ankle joints with a torsional spring.
To implement our framework for Therapist-Exoskeleton-Patient Interaction (TEPI) we rendered virtual torsional spring and damper elements between exoskeletons worn by a physical therapist and a patient post-stroke. Our approach was evaluated during blocks of treadmill walking. Kinematics and muscle activation during TEPI training were compared with conventional manual therapy (CMT), where a physical therapist provided guidance through hands-on mobilization of the patient's legs.
Participants and Experimental Protocol
Eight individuals with chronic hemiparetic stroke participated in this study. Each patient attended two visits: TEPI and CMT in a randomized order. During each visit, three 10-minute treadmill walking blocks were conducted (belt speed fixed at 0.2 m/s), with approximately three-minute breaks between each block.
During the TEPI visit, the patient and therapist faced one another, and the therapist provided physical assistance through the virtual connection of the two exoskeletons, in addition to auditory cues. Both legs were coupled during the training (i.e., right leg of patient to left leg of therapist, left leg of patient to right leg of therapist).
During the CMT visit, the therapist sat in front of the treadmill and provided manual assistance and auditory cues to the patient, consistent with conventional treadmill training.
Data Recording and Analyses
Robot kinematic data were measured at 333 Hz through encoder readings of the hip and knee joints. Additionally, wireless EMG/IMU sensors (Trigno Avanti, Delsys) were used to measure muscle activation and kinematics during both visits. Eight sensor sets were placed on the bellies of the following muscles in both legs: rectus femoris (RF), biceps femoris (BF), tibialis anterior (TA), and medial gastrocnemius (MG). During CMT, an additional IMU was placed on the trunk, while during TEPI, the IMU sensor of the exoskeleton on the backpack was used.
EMG data were sampled at 1000 Hz. Initially, the raw EMG signals were bandpass filtered between 20 and 500 Hz using a sixth-order Butterworth filter. Subsequently, a notch filter was applied between 59 and 61 Hz to minimize noise from power-line interference. After full-wave rectification, the signals were low-pass filtered at 5 Hz. The filtered quaternion output of the Trigno sensors at 148 Hz was used to measure joint angles in both the sagittal plane. All data related to kinematics and muscle activation were windowed and time-normalized between consecutive heel-strikes, detected by ground reaction force sensors instrumented in a split-belt treadmill.
Files and variables
File: hip_norm_best_steps_withBaseline_IMURotwAnkle_redo_imu_users_1_2_3_6_9_11_12_13_20250318.mat
Description:
Single MATLAB structure named "user" containing the data collected in the two visits for each user (8 users total).
Relevant variables
User structure
In the highest level of the "user" structure, there are eight populated fields containing data for each of the eight participants.
- The "visit" field contains the relevant data for the TEPI and CMT visits
Visit structure
In each visit field of the "user" structure, there are two rows (one for each visit).
-
"exoDyad" is a flag that indicates if this visit was TEPI (1) or CMT (0)
-
"robotData" contains a structure for all exoskeleton-related data. Note that even in the CMT visit where an exoskeleton was not worn by the patient, this field still contains data related to ground reaction force measurements
-
"imu" and "emg" contain the IMU and EMG structures, respectively.
Robot data structure
Within the "robotData" field, there are two subfields for the patient ("a") and therapist ("b") structures. These "a" and "b" structures are organized identically. Key variables are stored in matrices and cells as described below. Note that all lateralized kinematic/kinetic variables that are segmented by gait cycle are done so with respect to the left/right sides. For example, patient left hip joint angles are segmented from left heel strike to left heel strike. Patient right hip joint angles are segmented from right heel strike to right heel strike. Therapist data are segmented with respect to the patient's heel strike data. For instance, therapist left hip joint angles are segmented from patient right heel strike to right heel strike.
Within each of the relevant variable fields, data are segmented in various ways.
"all_t" includes all data across the entire experiment without gait cycle segmentation. Data contained in "all_t" are organized as matrices with dimension M time points by X variable columns (described for each individual variable below).
"sessions_norm" includes data segmented by gait cycle, time normalized to 100 points from heel strike to heel strike, for each of the three training blocks (cell rows 1 through 3) as well as baseline data from pre-assessment walking without the exoskeleton (cell row 4, if available for a particular patient). Data contained in "sessions_norm" cells are organized as matrices with dimension 100 normalized time points (percentage of gait cycle) by N strides.
"best_norm" includes the data from "sessions_norm", pared down to only the N most similar strides (based on mean squared error of individual stride joint hip and knee kinematics with respect to the grand averages in a block of walking). N equals 100 strides for the three training blocks (cell rows 1 through 3) and N equals 20 strides for baseline data from pre-assessment walking without the exoskeleton (cell row 4, if available for a particular patient). Data contained in "best_norm" cells are organized as matrices with dimension 100 normalized time points (percentage of gait cycle) by N strides.
-
"time" includes the time step (seconds); columns of cells for segmented data are stored in the following order: left strides (1) and right strides (2)
-
"q" includes sagittal plane joint angles of the exoskeleton obtained from the encoders (radians); columns of cells are stored in the following order: left hip (1), left knee (2), right hip (3), right knee (4).
-
"qd" includes the sagittal plane joint angle velocities of the exoskeleton obtained from the encoders (radians per second); columns of cells are stored in the following order: left hip (1), left knee (2), right hip (3), right knee (4)
-
"q_trunk" includes the sagittal plane joint angle of the exoskeleton backpack obtained from the exoskeleton IMU (radians)
-
"desIntTorque" includes desired interaction torques used in the control of exoskeleton as a result of the virtual connection between the patient and therapist (Newton meters); columns of cells are stored in the following order: backpack (1), left hip (2), left knee (3), right hip (4), right knee (5).
-
"intTorque" includes the measured interaction torque at each of the exoskeleton joints (Newton meters); columns of cells are stored in the following order: backpack (1), left hip (2), left knee (3), right hip (4), right knee (5).
-
"vGRF" includes the raw vertical ground reaction force readings obtained from the treadmill force plate sensors (Volts); columns of cells are stored in the following order: left force plate (1), right force plate (2)
-
"alpha" includes the normalized stance interpolation factor values derived from the ratio of ground reaction force readings (dimensionless, varies from 0 [right single stance] to 1 [left single stance]), which are used to segment data into gait cycles; columns of cells are stored in the following order: left stride values (1), right stride values (2)
-
"ankle_l" includes the cartesian position of the left ankle; columns of cells are stored in the following order: horizontal x-value (1), vertical y-value (2)
-
"ankle_r" includes the cartesian position of the right ankle; columns of cells are stored in the following order: horizontal x-value (1), vertical y-value (2)
Note that only the "time", "vGRF" and "alpha" variables of the patient robot ("a") are available for the CMT visit which does not feature the exoskeleton.
IMU data structure
The "imu" field contains data only for the patient. Key variables are stored in matrices and cells as described below. As with the robot data, all lateralized kinematic variables are segmented by gait cycle with respect to the left/right sides. For example, left hip joint angles are segmented from left heel strike to left heel strike. Right hip joint angles are segmented from right heel strike to right heel strike.
Within each of the relevant variable fields, data are segmented in various ways.
"all_t" includes all data across the entire experiment without gait cycle segmentation. Data contained in "all_t" are organized as matrices with dimension M time points by X variable columns (described for each individual variable below).
"sessions_norm" includes data segmented by gait cycle, time normalized to 100 points from heel strike to heel strike, for each of the three training blocks (cell rows 1 through 3) as well as baseline data from pre-assessment walking without the exoskeleton (cell row 4, if available for a particular patient). Data contained in "sessions_norm" cells are organized as matrices with dimension 100 normalized time points (percentage of gait cycle) by N strides.
"best_norm" includes the data from "sessions_norm", pared down to only the N most similar strides (based on mean squared error of individual stride joint hip and knee kinematics with respect to the grand averages in a block of walking). N equals 100 strides for the three training blocks (cell rows 1 through 3) and N equals 20 strides for baseline data from pre-assessment walking without the exoskeleton (cell row 4, if available for a particular patient). Data contained in "best_norm" cells are organized as matrices with dimension 100 normalized time points (percentage of gait cycle) by N strides.
-
"time" includes the time step (seconds); columns of cells for segmented data are stored in the following order: left strides (1) and right strides (2)
-
"jointAngle" includes the sagittal plane joint angles of the patient obtained from the IMUs (radians); columns of cells are stored in the following order: left hip (1), left knee (2), right hip (3), right knee (4).
EMG data structure
The "emg" field contains data only for the patient. Key variables are stored in matrices and cells as described below. As with the robot data, all lateralized EMG variables are segmented by gait cycle with respect to the left/right sides. For example, left rectus femoris data are segmented from left heel strike to left heel strike. Right rectus femoris data are segmented from right heel strike to right heel strike.
Within each of the relevant variable fields, data are segmented in various ways.
Within the "raw" (no preprocessing) and "filtered" (described above; bandpass filtering, rectification, lowpass filtering) fields of each muscle variable, "all_t" includes all data across the entire experiment without gait cycle segmentation. Data contained in "all_t" are organized as matrices with dimension M time points by X variable columns (described for each individual variable below).
"sessions_norm" includes data segmented by gait cycle, time normalized to 100 points from heel strike to heel strike, for each of the three training blocks (cell rows 1 through 3) as well as baseline data from pre-assessment walking without the exoskeleton (cell row 4, if available for a particular patient). Data contained in "sessions_norm" cells are organized as matrices with dimension 100 normalized time points (percentage of gait cycle) by N strides.
"best_norm" includes the data from "sessions_norm", pared down to only the N most similar strides (based on mean squared error of individual stride joint hip and knee kinematics with respect to the grand averages in a block of walking). N equals 100 strides for the three training blocks (cell rows 1 through 3) and N equals 20 strides for baseline data from pre-assessment walking without the exoskeleton (cell row 4, if available for a particular patient). Data contained in "best_norm" cells are organized as matrices with dimension 100 normalized time points (percentage of gait cycle) by N strides.
-
"time" includes the time step (seconds); columns of cells for segmented data are stored in the following order: left strides (1) and right strides (2)
-
"RF_L" and "RF_R" include the filtered activations of the patient's left and right rectus femoris, respectively, obtained from the EMG sensors (Volts)
-
"BF_L" and "BF_R" include the filtered activations of the patient's left and right biceps femoris, respectively, obtained from the EMG sensors (Volts)
-
"TA_L" and "TA_R" include the filtered activations of the patient's left and right tibialis anterior, respectively, obtained from the EMG sensors (Volts)
-
"MG_L" and "MG_R" include the filtered activations of the patient's left and right medial gastrocnemius, respectively, obtained from the EMG sensors (Volts)
Code/software
Code for preliminary analysis in MATLAB is available here: https://github.com/ponsLab/Th-Exo-Patient-pI
Human subjects data
All participants provided informed written consent prior to the experiments. The institutional review board of Northwestern University (STU00212684) approved this study, and all procedures were in accordance with the Declaration of Helsinki. The consent allows us to publish anonymized data of the participants. The trial protocol is registered on clinicaltrials.gov (NCT04578665).
