Individuals with cerebral palsy are prone to difficulties in performing rhythmic movements [1]. One such movement is gait. Gait therapy is often started during youth in order to promote healthy gait development. Research shows that sensory cueing, the use of a rhythmic sensory input with which a user can time their walking, helps guide and establish quality gait [2, 3, 4, 5]. Such therapies, however, typically require large amounts of time, attention, and effort, limiting their convenience and accessibility. Further, gait therapy is performed almost exclusively in clinical settings -- environments in which a patient is much less likely to walk in a manner that truly reflects their everyday gait [6].
To address gait challenges and provide an accessible method of gait therapy for youth with cerebral palsy, this project develops a wearable vibrotactile cueing system. Vibrating buzzers on the waist help the user time their steps while the system monitors the user’s gait to quantify the effects of therapy. The wearable nature of the system means it can be used as a patient moves through day-to-day life, providing functional therapy and realistic gait data outside of a formal clinical setting.
Building the system requires connecting the GPIO pins of the Raspberry Pi to the peripherals used in the system. Begin by connecting the two accelerometers to a 3 volt pin and ground on the Raspberry Pi 4. Enable communication via I2C by connecting the SDA and SCL lines of both accelerometers. Be sure to place a 200-400 Ohm Resistor serially on both the SDA and SCL lines. Wires running to the fanny pack housing buzzers in the waist band and the Raspberry Pi 4 in the pouch must be taped at each connection and at least 2.5 feet long in total.
Next, connect the leads of the coin-buzzer motors to GPIO pins 4, 17, 27, and 22 (front left, front right, back left, and back right respectively). Note: the leads of coin-buzzers may be very small, solder the leads to female or male jumper cables to make them easier to work with in this case. No resistors are needed for the coin buzzers. Below is a summary of the connections.
The process of gait can be broken down into two main stages: swing and stance. The swing phase is when the foot lifts off from the ground and the leg swings forward to place the foot down. Once the heel returns to the ground, the stance phase is assumed.
By quantifying the time that a walker spends in each of the phases, gait parameters like cadence and asymmetry can be calculated and assessed for variability. Both gait variability and gait asymmetry are common problems in youth with cerebral palsy. High variability has been linked to unstable and inefficient gait [8], while high asymmetry can cause long-term trauma to joints, tendons, and muscles that significantly increases an individual’s risk of developing arthritis [9]. The quantification of these parameters can help to gauge such risks and monitor a patient’s progress throughout therapy.
Because a heel striking the ground indicates the start of stance phase and a toe lifting off of the ground indicates the start of swing phase, the swing and stance time values from a trial can be calculated via the timestamp detection of heel strike and toe lift events. This detection is done via an algorithm written in Python. It identifies peaks in ankle acceleration data that correspond to toe lift and heel strike and returns the times at which these events occur. Based on experimental data and identified trends from literature [10], the hypothesized data indicators for each relevant gait sub-phase are described in Table 1.
The algorithm seeks to identify heel strikes and toe lifts which then mark a user’s stance and swing phases, illustrated in the figure below.
First, the algorithm reduces signal noise by applying a 5 - 25 Hz band pass filter. The second step takes the filtered accelerometer data and calculates the standard deviation of the acceleration values. The data points exceeding a threshold of one standard deviation are identified and sorted into bins as represented in Figure 5 below. A bin ends when data once again drops below threshold. A positive bin contains positive points that exceed absolute threshold, while a negative bin contains negative points that exceed absolute threshold.
Heel strike time is designated as the rightmost point of the positive bin that follows a negative bin. Toe lift time is designated as the rightmost point of the bin preceding the negative bin. Stance time is calculated as the time between heel strike and toe lift. Similarly, the swing time is calculated as the time between toe lift and heel strike.
User interface informationThe user interface displayed at the end of a trial displays a plot that includes the ankle acceleration data and algorithmically identified heel strike and toe lift events. Along with this plot, several quantified gait parameters are also displayed. These parameters are:
Gait symmetry, defined as as the ratio of left stance time (STleft) to the right stance time (STright), as shown in (1).
Gait symmetry = STleft/STright
Phase symmetry, defined as the ratio of left stance time to left swing time (SWleft), as shown in (2).
Phase symmetry = STleft/SWleft
Overall cadence, which divides the number of steps in a trial (measured by the number of heel strikes) by the total trial time, as shown in Equation 3.
Overall cadence = (# of heel strikes)/(trial time)
Instantaneous cadence, calculated for every two steps (a right heel strike followed by a left heel strike), dividing them by the sum of right stance time, right swing time (SWright), left stance time, and left swing time. This is shown in (4).
Instantaneous cadence = (2 steps)/(STleft + STright + SWleft + SWright )
Overall cadence and instantaneous cadence are compared through a measure called cadence inconsistency, defined as the root-mean-squared error between overall and instantaneous cadence over the entire trial. Where OC is overall cadence and IC is instantaneous cadence, cadence inconsistency is defined as
Cadence inconsistency = sqrt((Σ(OC - IC)2/(# of IC values))Performing a trial
Trials should be conducted to verify that the buzzers are cueing gait with appropriate timing and that the algorithm is accurately detecting the timestamps of heel strike and toe lift events. These requirements can be confirmed by taking video of a user wearing the device while walking.
Begin a trial by running the VibrotactileTrial.py script and starting a video recording. Verify that the buzzers only begin cueing after the user takes four consecutive steps. Verify that the buzzers vibrate with an easily detectable intensity and do so with a timing that is conducive to the target walking pattern. Continue walking for the desired trial duration. End the trial by turning off the system and the video recording.
Verifying the algorithm’s accuracy requires manually identifying a user’s heel strike and toe lift timestamps from the trial video. Treat these timestamps as ‘ground truth’ and compare them to the timestamps generated by the event detection algorithm. Overlaying the ground truth timestamps on top of the plot that shows the algorithmic results, as shown below, can provide a helpful visual.
Human error in the manual identification of heel strike and toe lift times can present additional issues in accuracy which should be kept in mind. Other forms of determining ground truth heel strike and toe lift times, like using a professional camera system for phase detection, could be worthwhile alternatives if applicable and accessible.
Works Cited[1] E. E. Kwak, “Effect of Rhythmic Auditory Stimulation on Gait Performance in Children with Spastic Cerebral Palsy, ” Journal of Music Therapy, vol. 44, no. 3, pp. 198–216, 2007.
[2] J. Xu, T. Bao, U. H. Lee, C. Kinnaird, W. Carender, Y. Huang, K. H. Sienko, and P. B. Shull, “Configurable, wearable sensing and vibrotactile feedback system for real-time postural balance and gait training: proof-of-concept, ” Journal of NeuroEngineering and Rehabilitation, vol. 14, no. 1, 2017.
[3] K. Yasuda, Y. Hayashi, A. Tawara, and H. Iwata, “Development of a vibratory cueing system using an implicit method to increase walking speed in patients with stroke: a proof-of-concept study, ” ROBOMECH Journal, 2020.
[4] C. Wall, D. M. Wrisley, and K. D. Statler, “Vibrotactile tilt feedback improves dynamic gait index: A fall risk indicator in older adults, ” Gait & Posture, vol. 30, no. 1, pp. 16–21, 2009.
[5] G.-bin Song and H. J. Ryu, “Effects of gait training with rhythmic auditory stimulation on gait ability in stroke patients, ” Journal of Physical Therapy Science, vol. 28, no. 5, pp. 1403–1406, 2016.
[6] L. Carcreff, C. N. Gerber, A. Paraschiv-Ionescu, G. De Coulon, C. J. Newman, K. Aminian, and S. Armand, “Comparison of gait characteristics between clinical and daily life settings in children with cerebral palsy, ” Scientific Reports, vol. 10, no. 1, 2020.
[8] S. M. Brændvik, T. Goihl, R. S. Braaten, and B. Vereijken, “The Effect of Increased Gait Speed on Asymmetry and Variability in Children With Cerebral Palsy, ” Frontiers in Neurology, vol. 10, 2020.
[9] J. Lorentzen, R. Frisk, M. Willerslev-Olsen, L. Bouyer, S. F. Farmer, and J. B. Nielsen, “Gait training facilitates push-off and improves gait symmetry in children with cerebral palsy, ” Human Movement Science, vol. 69, p. 102565, 2020.
[10] R. R. Torrealba, J. M. Castellano, G. Fernández-López, and J. C. Grieco, “Characterisation of gait cycle from accelerometer data, ” Electronics Letters, vol. 43, no. 20, p. 1066, 2007.[1] E. E. Kwak, “Effect of Rhythmic Auditory Stimulation on Gait Performance in Children with Spastic Cerebral Palsy, ” Journal of Music Therapy, vol. 44, no. 3, pp. 198–216, 2007.
Comments