Periodic motion based pedestrian dead reckoning

EP4754749A1Pending Publication Date: 2026-06-10ACTIVE PROTECTIVE TECHNOLOGIES INC

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
ACTIVE PROTECTIVE TECHNOLOGIES INC
Filing Date
2024-07-30
Publication Date
2026-06-10

Smart Images

  • Figure US2024040242_13022025_PF_FP_ABST
    Figure US2024040242_13022025_PF_FP_ABST
Patent Text Reader

Abstract

Systems and methods for predicting a fall includes determining, during a first step and a second step, a second point in time where a displacement value of at least one location on a user is expected to be zero, the second point in time being associated with the second step, determining a plurality of acceleration values between the first step and the second step, adjusting the plurality of acceleration values to generate a plurality of adjusted acceleration values, computing a plurality of velocity values based on the plurality of adjusted acceleration values, adjusting the plurality of velocity values to generate a plurality of adjusted velocity values, computing a plurality of displacement values based on the plurality of adjusted velocity values, and predicting a gait parameter for the user based on the plurality of displacement values.
Need to check novelty before this filing date? Find Prior Art

Description

PERIODIC MOTION BASED PEDESTRIAN DEAD RECKONINGCROSS-REFERENCE TO RELATED PATENT APPLICATION

[0001] This application claims the benefit and priority to U.S. Provisional Patent Application No. 63 / 517,787, filed August 4, 2023, which is incorporated herein by reference in its entirety.BACKGROUND

[0002] Pedestrian Dead Reckoning (PDR) is a navigation technology that allows users to determine their position, orientation, and velocity without the use of a Global Positioning System (GPS) or any other external positioning system. PDR may be used in indoor navigation and in wearable devices such as smartwatches, fitness trackers, augmented reality glasses, etc. to detect a user’s movements and calculate their position and orientation relative to a starting point. To make such determinations, PDR may use a combination of sensors such as accelerometers, gyroscopes, and / or magnetometers.SUMMARY

[0003] This disclosure is directed to a PDR system that estimates zero velocity points based on acceleration and orientation data collected from a user. The present disclosure leverages the periodic nature of a user’s motion to estimate the zero-velocity points at each point in the motion cycle. By using this approach, the proposed strategy is able to provide accurate and reliable position estimates even in areas with poor GPS signals or other sources of interference. To estimate the zero velocity points, the present disclosure determines a step interval of a user, determines a matching point, determines acceleration values based on the matching point, adjusts the acceleration, computes velocity based on the adjusted acceleration, adjusts the computed velocity, and computes displacement based on the adjusted velocity to achieve an estimation of a three-dimensional (3D) motion trajectory of the user. The estimation of 3D motion trajectory may be used in various applications such as gait analysis, in-progress real-time fall-prediction, and long-term fall-risk assessment. Further, by estimating the 3D motion trajectory of the user, gait param eter(s) may be derived from the 3D motion trajectory estimation to accurately provide real-time fall-prediction and long-term fall-risk-assessment.

[0004] At least one aspect is directed to a non-transitory computer-readable media having computer-readable instructions stored thereon. The computer-readable instructions when executed by one or more processors cause the one or more processors to determine, during a plurality of gait cycles comprising at least a first step and a second step that immediately follows the first step, a second point in time where a displacement value of at least one location on a user is expected to be zero, wherein the second point in time is associated with the second step and is determined relative to a first point in time associated with the first step, determine a plurality of acceleration values associated with an acceleration of the at least one location on the user between the first step and the second step, adjust the plurality of acceleration values such that a velocity of the at least one location on the user at the second point in time is equal to the velocity of the at least one location on the user at the first point in time, to generate a plurality of adjusted acceleration values, compute a plurality of velocity values of the at least one location on the user between the first step and the second step based on the plurality of adjusted acceleration values, adjust the plurality of velocity values such that a displacement of the at least one location on the user at the second point in time is equal to the displacement of the at least one location on the user at the first point in time, to generate a plurality of adjusted velocity values, compute a plurality of displacement values of the at least one location on the user between the first step and the second step based on the plurality of adjusted velocity values, and predict a gait parameter associated with the user between the first step and the second step based on the plurality of displacement values.

[0005] At least one aspect is directed to a non-transitory computer-readable media having computer-readable instructions stored thereon. The computer-readable instructions when executed by one or more processors cause the one or more processors to determine a second point in time associated with a second cycle that immediately follows a first cycle, the second cycle returning to a position of the first cycle, wherein the second point in time is determined relative to a first point in time associated with the first cycle, and wherein the second point in time is where a displacement value of at least one location on a user is expected to be zero, determine a plurality of acceleration values associated with an acceleration of the at least one location on the user between the first cycle and the second cycle, adjust the plurality of acceleration values such that a velocity of the at least one location on the user at the second point in time is equal to the velocity of the at least one location on the user at the first point in time, to generate a plurality of adjusted acceleration values, compute a plurality of velocity values of the at least one location on the userbetween the first cycle and the second cycle based on the plurality of adjusted acceleration values, adjust the plurality of velocity values such that a displacement of the at least one location on the user at the second point in time is equal to the displacement of the at least one location on the user at the first point in time, to generate a plurality of adjusted velocity values, compute a plurality of displacement values of the at least one location on the user between the first cycle and the second cycle based on the plurality of adjusted velocity values, and predict a parameter associated with the user between the first cycle and the second cycle based on the plurality of displacement values

[0006] At least one aspect is directed to a method. The method includes determining, during a plurality of gait cycles comprising at least a first step and a second step that immediately follows the first step, a second point in time where a displacement value of at least one location on a user is expected to be zero, wherein the second point in time is associated with the second step and is determined relative to a first point in time associated with the first step, determining a plurality of acceleration values associated with an acceleration of the at least one location on the user between the first step and the second step, adjusting the plurality of acceleration values such that a velocity of the at least one location on the user at the second point in time is equal to the velocity of the at least one location on the user at the first point in time, to generate a plurality of adjusted acceleration values, computing a plurality of velocity values of the at least one location on the user between the first step and the second step based on the plurality of adjusted acceleration values, adjusting the plurality of velocity values such that a displacement of the at least one location on the user at the second point in time is equal to the displacement of the at least one location on the user at the first point in time, to generate a plurality of adjusted velocity values, computing a plurality of displacement values of the at least one location of the user between the first step and the second step based on the plurality of adjusted velocity values, and predicting a gait parameter associated with the user between the first step and the second step based on the plurality of displacement values.

[0007] This summary is illustrative only and is not intended to be in any way limiting. Other aspects, inventive features, and advantages of the devices or processes described herein will become apparent in the detailed description set forth herein, taken in conjunction with the accompanying figures, wherein like reference numerals refer to like elements.BRIEF DESCRIPTION OF THE DRAWINGS

[0008] FIGS. 1 A and IB are illustrations depicting a user interacting with a protective garment, according to an exemplary embodiment.

[0009] FIG. 2 is an exploded view of the protective garment of FIGS. 1 A and IB, according to an exemplary embodiment.;

[0010] FIG. 3 A is a perspective view of the protective garment of FIGS. 1A and IB in an unbuckled state, according to an exemplary embodiment.

[0011] FIG. 3B is a perspective view of the protective garment of FIGS. 1 A and IB in a buckled state, according to an exemplary embodiment.

[0012] FIG. 4 is a perspective view of internal components of the protective garment of FIGS. 1 A and IB, according to an exemplary embodiment.

[0013] FIG. 5 is a schematic diagram of a PDR system of the protective garment of FIGS. 1 A and IB configured to estimate zero velocity points during periodic motion, according to an exemplary embodiment.

[0014] FIG. 6 is a flowchart of a method for estimating zero velocity points during periodic motion, according to an exemplary embodiment.

[0015] FIG. 7 is an example computer system.DETAILED DESCRIPTION

[0016] Before turning to the figures, which illustrate certain exemplary embodiments in detail, it should be understood that the present disclosure is not limited to the details or methodology set forth in the description or illustrated in the figures. It should also be understood that the terminology used herein is for the purpose of description only and should not be regarded as limiting.Protective Garment

[0017] According to the exemplary embodiment shown in FIGS. 1 A-4, a protective garment 2 of the present disclosure is configured as a wearable belt. In other embodiments, the protective garment 2 is configured as another type of protective garment such as shorts, pants, a vest, a shirt, a jacket, and / or another type of garment that can be worn by individuals. As shown in FIGS. 1 A and IB, the protective garment 2 is configured to fit around a user’s hips and / or torso using a buckle 8 that includes a first buckle portion 14 and a second buckle portion 16 that selectively couples with the first buckle portion 14. The buckle 8, in this instance, then sits at the anterior most location on the user’s waist. Thebuckle 8 may be made of any number of plastic materials, including but not limited to ABS, polycarbonate, nylon, PEEK, or a lightweight composite material such as carbon-fiber. The buckle 8 may alternatively be made out of a lightweight metal alloy such as titanium, or any combination of the aforementioned materials.

[0018] As shown in FIGS. IB-4, the protective garment 2 includes an outer cover 12 that covers an airbag assembly 18 and a strap 32. The outer cover 12 is formed in a tubular shape. The outer cover 12 may be form-fitting over airbag assembly 18, the strap 32, and the buckle 8. The airbag assembly 18 is rolled inside of the outer cover 12. The outer cover 12 may be made of typical clothing materials such as polyester, cotton, nylon, or a blend. According to an exemplary embodiment, the outer cover 12 includes a longitudinal “burst” seam designed to separate upon inflation of the airbag assembly 18 such that the airbag assembly 18 can protrude or deploy from the outer cover 12. The burst seam may be a tearable seam, or a seam connected by a hook and loop fastener, snaps, or a burst zipper.

[0019] As shown in FIGS. 2 and 4, the airbag assembly 18 is coupled to the strap 32. The airbag assembly 18 includes a plurality of loops 34 that facilitate attachment thereof to the strap 32. According to an exemplary embodiment, a length or circumference of the strap 32 is adjustable to closely match a circumference of the user’s waist. The outer cover 12 may include a zipper or other type of closable interface to allow access to the strap 32 for adjustment. As shown in FIG. 2, a first end of the strap 32 has a loop structure that receives a hinge pin 15 to secure the strap 32 and, therefore, the airbag assembly 18 to the first buckle portion 14. Opposing second ends of the strap 32 and the airbag assembly 18 include hook and loop fasteners 17 to secure the strap 32 and the airbag assembly 18 to the second buckle portion 16. For example, one of the hook and loop fasteners 17 may be on the strap 32, while the other hook and loop fastener 17 may be on the airbag assembly 18. Thus, the length of the strap 32 may be adjustable using the hook and loop fasteners 17. In other embodiments, the airbag assembly 18 is otherwise coupled to the first buckle portion 14 and / or the second buckle portion 16. As shown in FIG. 4, the strap 32 is adjustable using a double-loop slider type buckle 60, rather than a hook and loop fasteners 17. In other embodiments, the first buckle portion 14 and the second buckle portion 16 are directly attached to the airbag assembly 18.

[0020] According to an exemplary embodiment, the first buckle portion 14 and the second buckle portion 16 include connectors or interfaces that provide a secure connection therebetween when the user of the protective garment 2 engages the first buckle portion 14 with the second buckle portion 16. As shown in FIG. 3A, the first buckle portion 14 (or thesecond buckle portion 16) includes a spring clip 26 located on a projecting portion 30 that extends from a base portion 28 of the first buckle portion 14. The buckle 8 may include magnets to aid the user in aligning the first buckle portion 14 with the second buckle portion 16. Alternatively, the buckle 8 may utilize other types of secure connectors, including but not limited to a traditional button, a snap button, a traditional buckle latch, a hook-and-loop latch, screw threads, or a zipper.

[0021] As shown in FIG. 4, the protective garment 2 includes an actuator 10 and a battery 22 disposed within the first buckle portion 14, which do not protrude into the second buckle portion 16 when the buckle 8 is buckled. In other embodiments, one or both of the actuator 10 and the battery 22 are disposed within the second buckle portion 16. A shown in FIG. 4, the airbag assembly 18 runs around the inside of the outer cover 12 with one end connected to the actuator 10. The connection between airbag assembly 18 and the actuator 10 is form-fitting to provide an air-tight seal such that when the actuator 10 deploys or is activated, gas (e.g., air, CO2, nitrogen, etc.) is provided to expand the airbag assembly 18 without leaking. The gas that inflates the airbag assembly 18 may move from the actuator 10 around the circumference of the protective garment 2 by way of this connection. As an alternative, the gas from the actuator 10 can be diverted at the buckle 8 and flow in two directions around the protective garment 2, either simultaneously or independently to fill cushions in the airbag assembly 18.

[0022] As shown in FIGS. 3 A and 3B, the first buckle portion 14 (or the second buckle portion 16) includes a visual indicator 20 such as an LED or array of LEDs or other indicators. The first buckle portion 14 (or the second buckle portion 16) additionally or alternatively includes an access door 24 to provide access to components (e.g., the actuator 10, the battery 22, etc.) inside of first buckle portion 14 (or the second buckle portion 16).

[0023] As shown in FIG. 2, the protective garment 2 includes one or more sensors 13 configured to be disposed within the outer cover 12 or otherwise coupled to the protective garment 2. The one or more sensors 13 may include a first sensor such as an inertial sensor for measurement of three-dimensional motions (e.g., a 9-axis inertial measurement sensor) of the user. The first sensor may include an inertial measurement unit (IMU) including accelerometers, gyroscopes, and / or magnetometers. The one or more sensors 13 may include a second sensor for measurement of g-force, and thus may include only a tri-axial accelerometer. The second sensor may be configured to detect a baseline level of activity. If the second sensor detects a sufficient level of activity and motion in the user, the second sensor activates a wake cycle for the protective garment 2. If the second sensor does notdetect a sufficient level of activity and motion in the user, the second sensor activates a sleep cycle for the protective garment 2. In some embodiments, at least one of the one or more sensors 13 is disposed on or at a back side of the protective garment 2. In some embodiments, at least one of the one or more sensors 13 is disposed on or at a location on the protective garment 2 different from the back side thereof. For example, at least one of the one or more sensors 13 may be located on or in the buckle 8 of the protective garment 2.

[0024] As shown in FIG. 4, the protective garment 2 includes a control unit 36. According to an exemplary embodiment, the control unit 36 includes a controller that is coupled with the one or more sensors 13, the battery 22, and the actuator 10. The controller and the one or more sensors 13 may be powered by the battery 22. The controller is configured to control actuation of the actuator 10 based on signals received from the one or more sensors 13. While the control unit 36 is shown to be located on an inner side of the strap 32 at the rear or posterior side of the protective garment 2 in FIG. 4, at least a portion of the control unit 36 may be otherwise positioned (e.g., located on an outer side of the strap 32, attached to an inner surface of the outer cover 12, in the first buckle portion 14, in the second buckle portion 16, etc.).

[0025] Further details regarding the protective garment 2 may be found in U.S. Patent No. 11,253,013, filed August 24, 2018, which is incorporated herein by reference in its entiretyPeriodic Motion Based PDR

[0026] PDR is a navigation technology that allows users to determine their position, orientation, and velocity without the use of GPS or any other external positioning system. PDR relies on a combination of sensors such as accelerometers, gyroscopes, and magnetometers to detect a user’s movements and calculate their position and orientation relative to their starting point. The accuracy of PDR depends on several factors such as the quality of the sensors, the complexity of algorithms used, type of environment in which PDR is used, etc. An example PDR process may occur in a plurality of steps:

[0027] (1) Sensor Mounting: One or more sensors, such as accelerometers, gyroscopes, and magnetometers, may be mounted to a user. For example, one or more sensors may be mounted to a user (e.g., on a foot, shoe, etc., wearable device, the protective garment 2, etc.) or held by the user (e.g., smartphone held in hand or carried in pocket, etc.). The sensor(s) may be positioned in a specific orientation to capture the user’s movements. One exampleof a sensor that may be used may include an Inertial Measurement Unit (IMU). An IMU is a compact device having accelerometers, gyroscopes, and magnetometers. IMU-based PDR is a type of navigation technology that uses an IMU sensor to determine a user’s position, orientation, and velocity. In IMU-based PDR, the IMU sensor may measure acceleration and angular velocity, and these measurements may then be processed using algorithms to estimate the user’s position and orientation. The algorithms may take into account a user’s walking patterns, stride length, and other factors to calculate their position relative to their starting point.

[0028] (2) Sensor Data Collection: The sensor(s) may collect data (e.g., continuously) during the user’s movements, including for example, acceleration, angular velocity, and / or magnetic field measurements.

[0029] (3) Integration: The sensor data from the accelerometers may be pre-processed and integrated over time to estimate the user’s velocity and position. The data from the gyroscope(s) and magnetometer(s) may be used to estimate the user’s orientation.

[0030] (4) Dead-Reckoning: The estimated velocity and orientation may be used to calculate the user’s position relative to their starting point. This is known as deadreckoning. Dead-Reckoning may take into account the user’s walking patterns, stride length, and other factors.

[0031] (5) Zero Velocity Update (ZUPT): To improve the accuracy of PDR, ZUPT may be used to detect periods of zero velocity and reset estimated values. The zero-velocity points correspond to the times when a user’s velocity is zero. Specifically, PDR computations to determine a user’s position and / or velocity may accumulate errors over time (i.e., drift), which may degrade the accuracy of PDR computations. ZUPT provides a mechanism to increase the accuracy of PDR. For example, when a user is stationary, their velocity may be zero. ZUPT may detect these stationary moments. By detecting these moments of zero velocity, PDR may correct any accumulated errors in the navigation solution. The use of ZUPT may improve the accuracy of PDR, particularly in challenging environments, such as when walking through tight spaces or in areas with weak or absent signals. By continuously updating the PDR computations using ZUPT, ZUPT may help to reduce the cumulative errors that may occur over time to provide a more accurate navigation solution using PDR. Although ZUPT may be important, it may be difficult to determine the zero-velocity moments using current ZUPT mechanisms while a user is not stationary, for example, when walking or running.

[0032] (6) Post-Processing: The estimated values from operations (4) and (5) may optionally be post-processed to improve accuracy and robustness. Example post-processing techniques may include Kalman filtering or other data fusion techniques.

[0033] Thus, one factor determining the accuracy of PDR is the accurate detection of the zero velocity points using ZUPT. One mechanism to increase accurate detection of the zero velocity points may include varying the sensor placement on a user. For example, sensors (e.g., IMU sensors) mounted on shoes, feet, or lower legs may possibly increase accuracy of the zero velocity points because when walking, feet are in contact with the ground, providing brief but transitory moments where the sensors become stationary and have zero velocity. However, mounting sensors to specific locations may not always be feasible. Further, because of the way a user walks, this mechanism may not detect, or detect inaccurately, certain zero velocity points.

[0034] Another ZUPT mechanism may use heuristics to estimate the zero-velocity points. For example, such heuristics may identify a gait cycle of a user and approximate the key-points within the gait cycle where zero velocities occur. A gait cycle of a user during certain periodic activities such as walking, runningjogging, etc. (collectively referred to herein as walking activities) may be broken down into several phases, including:

[0035] (1) Stance Phase: This is the period when the foot is in contact with the ground.The stance phase may be divided into several sub-phases: Heel strike: the moment when the heel of the foot makes initial contact with the ground; Foot flat: the point at which the entire foot is in contact with the ground; Mid-stance: the point when the body’s weight is directly over the foot, and the foot is flat on the ground; and Heel-off: the moment when the heel of the foot starts to lift off the ground.

[0036] (2) Swing Phase: This is the period when the foot is not in contact with the ground. The swing phase may also be divided into several sub-phases: Early swing: the moment when the foot leaves the ground and starts to swing forward; Mid-swing: the point when the foot is directly underneath the body; and Late swing: the moment when the foot is about to make contact with the ground again.

[0037] Each gait cycle during the walking activities may include one stance phase and one swing phase. In other words, each gait cycle may include one step of one foot. Each “step” may include situations where at least a portion of the foot is touching the ground or when the foot is in the air (e.g., no portion of the foot is touching the ground). The stance phase and the swing phases may be repeated for each step taken during walking activities. The total duration of the sum of the duration of the stance phase and the duration of theswing phase is the step interval. The step interval of each step may vary depending on a number of factors, such as walking activity speed, terrain, individual characteristics of the user’s gait, etc.

[0038] A zero-velocity point may correspond to a highest or a lowest position in the gait cycle. The highest position in the gait cycle may be reached during the stance phase of the gait cycle, specifically during the mid-stance phase. The highest position may be achieved when the body’s weight is directly over the foot, and the foot is flat on the ground. At this point, the hip, knee, and ankle joints are all in a relatively extended position, and the body has reached its highest point of elevation before starting to descend towards the next step. The lowest position in the gait cycle may be reached during the stance phase of the gait cycle, specifically during the mid-stance to the heel-off phase. This is the point when the body’s weight is transferred from the stance foot to the swing foot, and the stance foot begins to lift off the ground. At this point, the ankle, knee, and hip joints are all in a relatively flexed position, and the body has reached its lowest point of elevation before starting to rise up again with the swing foot.

[0039] The exact point at which a user reaches their highest position and / or their lowest position during a gait cycle may vary depending on a number of factors, such as walking activity speed, terrain, individual differences in gait mechanics, etc. Additionally, some people may have abnormal gait patterns that may affect the timing and magnitude of joint movements during the gait cycle. The heuristic-based techniques may fail to account for such differences in walking speeds, gait patterns, etc. Yet other ZUPT techniques may use biomedical models to approximate gait dynamics so to better approximate the ZUPT moments when sensors are placed on other locations. These models may rely on additional information such as leg length, height, and other physical characteristics to make an educated guess of the sensor’s zero-velocity points during walking episodes, and thus, may not be very accurate. In particular, these gait analytics techniques aim to identify stance versus swing phases or specific key-points along the gait cycle. However, these techniques are complex and involve heuristics that are based on a limited number of samples. As a result, these techniques may not be robust and may be difficult to implement with limited computing resources or stringent latency budgets. Further, these techniques may not be applied to non-walking activities such as certain types of exercising like swimming, rowing, climbing stairs etc. that have periodic motions.

[0040] Thus, existing mechanisms of ZUPT have limitations in accurately determining zero velocity points. The present disclosure provides technical solutions to determine thezero-velocity points to provide accurate and reliable PDR for both walking activities and non-walking activities. In particular, a user’s motion may be repeated during the walking and the non-walking activities. In other words, the user’s position at a particular point in a gait cycle during a walking activity may be the same or very similar to the user’s position in a next or preceding gait cycle. Thus, adjacent gait cycles have similar characteristics. For example, if the user is one-third into a gait cycle at a particular moment in time, the user’s position is likely to be similar to the position when the user is one-third into the next gait cycle that immediately follows. Similarly, if the user is at the midpoint of a gait cycle, the user is likely to experience a similar position and velocity at the midpoint of the preceding or the next gait cycle. Thus, motion of a user during certain types of walking activities is periodic and may be divided into a series of gait cycles. Similarly, the user’s positions at a particular point in a cycle during a non-walking activity may be periodic, repeated (e.g., comes back to the same initial position), and may be divided into a series of cycles. The description below is with respect to gait cycles used during walking activities. However, the description is applicable to cycles of non-walking activities as well.

[0041] At any point of a gait cycle, if the user’s initial velocity in the vertical direction at this point is known, the user’s vertical displacement over the duration of the gait cycle may be computed. The computed vertical displacement may be close to zero during the same point in the next gait cycle that immediately follows. However, in practice, the initial velocity information in a given gait cycle may be unknown. To estimate the initial velocity at any point along a gait cycle, mathematical constraints that reflect the periodic nature of a user’s motion may be imposed. For example, assuming that the vertical displacement from one point of gait cycle to the same point in the next gait cycle is zero, this assumption may be used to solve for the initial vertical velocity. By imposing similar constraints along the vertical direction at all points in a gait cycle, the initial velocity and subsequently the displacement (whether vertical or horizontal) of a user may be computed during the whole gait cycle. This allows tracking the user’s movement even when their initial velocity is unknown.

[0042] Further, the present disclosure estimates these zero velocity points based on acceleration and orientation data collected from a user (e.g., the user’s smartphone or other wearable device such as the protective garment 2). The present disclosure leverages the periodic nature of a user’s gait to estimate the zero-velocity points and initial velocity at each point in the gait cycle. By using this approach, the proposed strategy is able to provide accurate and reliable position estimates or trajectories even in areas with poor GPS signalsor other sources of interference. The present disclosure improves the accuracy and reliability of PDR in a range of applications, including indoor navigation, location-based services, fitness tracking, and fall prediction / intervention / detection / reconstruction. The present disclosure utilizes the periodic nature of gait cycles, which can provide a reliable and consistent source of information for PDR. The system and method of the present disclosure do not rely on external sensors or reference points, making it useful in environments where GPS signals are weak or unavailable. The system and method of the present disclosure provide a relatively simple and computationally efficient mechanism suitable for real-time applications.

[0043] Referring now to FIG. 5, an example system 100 is shown, in accordance with some embodiments. The system 100 may be used in, or associated with, a PDR system, and particularly with a ZUPT system to determine zero-velocity points during a periodic motion of a user. In particular, the system 100 may be used to determine the zero-velocity points when the user is walking, runningjogging, exercising, swimming, biking, or moving in other ways that include cyclical motion (e.g., motion that repeats).

[0044] As shown in FIG. 5, the system 100 may include one or more sensors 105 A and 105B (collectively referred to herein as sensors 105) that may be used to collect sensor data from a user or about the movement of the user. Although two of the sensors 105 are shown in FIG. 5, in other embodiments, a single sensor or more than two sensors may be used, with each sensor configured to collect one or more suitable parameters needed to compute the zero-velocity points, as described herein. For example, the sensors 105 may include one or more accelerometers to measure change in acceleration or rate of change in velocity along one or more axes of a user, one or more gyroscopes to measure angular velocity (e.g., change in rotational angle per unit of time, for example, measured in degrees per second), and / or one or more magnetometers to measure an orientation of a user in space. In some embodiments, one or more of the accelerometers, gyroscopes, and magnetometers may be combined into a single sensor such as an IMU sensor. In other embodiments, other or additional types of sensors may be used.

[0045] The sensors 105 may be mounted to one or more locations of the user to measure movement of the user at or adjacent to that location. For example, the sensors 105 may be mounted to a foot of the user, a waist of the user, a wrist of the user, a shoe of the user, a garment of the user, and / or any other location on the user. In some embodiments, one or more of the sensors 105 may be integrated into a portable device such as a smart watch, mobile phone, or other types of wearable devices that the user may carry with them. Thesensors 105 may be configured to collect data continuously from the user in some embodiments. In other embodiments, the sensors 105 may be configured to collect data from the user periodically at predetermined time periods. The sensors 105 may transmit the collected sensor data to a data processing system 110. In some embodiments, the sensors 105 are the sensors 13 of the protective garment 2. In some embodiments, the data processing system 110, or a portion thereof, is the control unit 36 of the protective garment 2. In some embodiments, the data processing system 110 communicates with the control unit 36 to acquire data therefrom.

[0046] The data processing system 110 may include a physical or virtual computer system operatively coupled, or associated with, the sensors 105. In some embodiments, the data processing system 110 may be coupled, or associated with, the sensors 105 via a network, either directly or directly through an intermediate computing device or system. The network may be any type or form of wired or wireless network. For example, the network maybe an Internet of Things network, Bluetooth network, mobile network (e.g., 5G), or any other type of network suitable for low-latency, low-powered edge-based applications.

[0047] The data processing system 110 may include a matching point detection system 115, an acceleration determination system 120, an acceleration adjustment system 125, a velocity determination system 130, a velocity adjustment system 135, a displacement determination system 140, and a gait parameter prediction system 145. Although not shown, the data processing system 110 may also include a pre-processing system to pre-process the sensor data. For example, in some embodiments, the sensor data may be averaged or combined using other functions to obtain raw data that may be further processed by the data processing system 110. In some embodiments, the data processing system 110 may also include a post-processing system that may post-process the data before outputting. For example, in some embodiments, the post-processing system may average or apply other functions to a parameter before outputting.

[0048] The matching point detection system 115 may be configured to determine a next matching point in a plurality of gait cycles of a user. In particular, for estimating a user’s motion during a plurality of gait cycles, the next matching point may be identified. The next matching point is the location where the expected displacement (whether vertical displacement or horizontal / lateral displacement) is zero. Some activities such as walking may be associated with a vertical displacement such as when a user is walking straight and / or a horizontal or lateral displacement such as motion associated with the movement ofthe right and left shoulder (e.g., when a drunk person is walking, postural sway, etc.). Vertical and lateral displacement computations may be the same. Depending on the application (specific type of motion), displacement may be vertical and / or lateral (e.g., gym activities such as rowing may include both vertical and lateral, swimming may include either lateral or vertical, climbing stairs may include only lateral, etc.).

[0049] To estimate a person’s initial velocity at any given point in time, the location of the next matching-point in the gait cycle that immediately follows may be identified using the matching point detection system 115. For example, if a user is currently at the midpoint of a gait cycle, the next matching point may be the next midpoint in the immediately following (e.g., next) gait cycle. If a user is at heel-strike in a current gait cycle, the matching point is the next heel-strike in the immediately following gait cycle. If a user is one-third into the swing phase in a current gait cycle, the matching point is the one-third point in the swing phase in the immediately following gait cycle, and so on. By identifying the next matching point, different phases of a gait cycle, such as stance or swing, or key points like heel-off or mid-stance need not be identified. The matching point detection system 115 may estimate the location of the next matching point by computing a correlation between current data (e.g., data 1 in the current gait cycle) and data obtained by shifting the current data backward by a certain amount of time (e.g., data 2 in a previous gait cycle). More particularly, the matching point detection system 115 may determine the next matching point based on a step interval between a point in a current gait cycle and the same point in the next gait cycle.

[0050] The matching point detection system 115 may determine the step interval using a step interval determination system 150. The step interval determination system 150 may determine the step interval of a step based on a historical step interval associated with at least one other user having a similar characteristic as the user and / or moving on a similar terrain as the terrain on which the user is moving during the gait cycle. The characteristic may include age of the user, height of the user, etc. The step interval determination system 150 may store the historical step interval data, for example, as a mapping between other user characteristics and step interval. In other embodiments, the step interval determination system 150 may store the historical step interval data in other ways.

[0051] Thus, in some embodiments, the step interval determination system 150 may receive as inputs one or more characteristics (e.g., age, height, etc.) of the user. Based on the characteristics of the user, the step interval determination system 150 may identify one or more other users having the same or similar characteristics. The step intervaldetermination system 150 may also determine the step interval associated with the one or more other users having the same or similar characteristics as the user. The step interval determination system 150 may associate the determined step interval with the user. In some embodiments, the step interval determination system 150 may use one or more machine learning models 155 to determine the step interval. For example, in some embodiments, to determine the step interval, the machine learning models 155 may be trained to receive user characteristics as inputs and output a step interval for the user. The machine learning models 155 may be trained using historical data of the other users. The step interval determination system 150 may use other mechanisms to determine the step interval based on historical data.

[0052] In some embodiments, the step interval determination system 150 determines the step interval using correlation. For example, the step interval determination system 150 may shift current data (e.g., data 1) backwards by a range of threshold time values (e.g., 0.8 seconds to 1.1 seconds) to obtain shifted data (e.g., data 2). The current data (e.g., data 1) may be associated with a particular point (e.g., midpoint) in a current gait cycle (e.g., step 2) or current step. The shifted data (e.g., data 2) may be associated with the same particular point (e.g., midpoint) in an immediately previous gait cycle (e.g., step 1). The threshold time values, also called a search window, may be associated with common step intervals for a variety of users. In some embodiments, the threshold time values may be determined based on the step intervals of other users having similar characteristics as the user. For example, if the user is sixty years old, the threshold time values may be based on step intervals or average step intervals of other sixty year-old users. If the user is six feet tall, the threshold time values may be based on step intervals or average step intervals of other users who are also six feet tall. Similarly, the threshold time values may be based on other user characteristics or based on some other factors (e.g., health, gait pattern, terrain on which the user is walking, etc.). For example, if the user is a senior user and other senior users typically walk at a cadence of 1.5 seconds per step, a reasonable search window may be between 1.3 and 1.7 seconds. If more computing resources are available, the search window may be expanded to start from 1.1 seconds to end at 1.9 seconds. If no information regarding the typical behavior of the target community is available, population statistics may be used. For instance, knowing that the average senior user walks at a cadence of 1.3 per second, the search window may be narrowed from 1.0 to 1.6 seconds, or 1.1 to 1.5 seconds if less compute resource / time is available, and so on.

[0053] In real-time applications (e.g., where the user is currently engaging in a walking activity), the search window may be determined using techniques like Fourier transforms or other frequency / spectrum -based techniques to estimate an average gait cycle. For example, the search window (e.g., the threshold time values) may be used that reduces the risk of high computation resource usage and latency requirements. In non-real-time applications, a larger search window may be used due to availability of more time and possibly more computing resources available to perform a more comprehensive search. Although the above description is discussed with respect to looking backward in time for determining the step interval, in some embodiments of non-real-time applications, the step interval may be computed similarly by looking forward in time, such as computing the Fourier transform of the entire time series, to arrive at a better determination of the search window.

[0054] Thus, the shifted data may include a plurality of shifted data values depending on the number of threshold time values used. For example, if five threshold time values are used, the shifted data (e.g., data 2) may include five shifted data values. The step interval determination system 150 may compute a correlation between each shifted data value (e.g., data 2) and the current data (e.g., data 1). The shifted data value (e.g., data 2) that results in a highest correlation value may be designated as the step interval for the user. In other embodiments, functions other than correlation may be used to determine the step interval based on the shifted data (e.g., data 2) and current data (e.g., data 1) may be used.

[0055] The step interval determination system 150 may use any of a variety of correlation techniques to determine the step interval. For example, the correlation may include cross-correlation or auto-correlation. Cross-correlation is a mathematical technique used to measure the similarity between two time series. Cross-correlation involves sliding one time series (the “template” or “reference” series) across the other time series (the “target” series) and calculating a metric of similarity at each time step. The metric of similarity may be a dot product of the two time series at each step, but other metrics such as the normalized cross-correlation may also be used. The resulting values form a crosscorrelation function, which may be used to identify the lag (or time shift) between the two time series that maximizes their similarity. Cross-correlation may be useful in time-series analysis to identify patterns or trends that are common to multiple datasets.

[0056] Auto-correlation, also known as serial correlation, is a statistical concept used to measure the correlation between a time series and a lagged version of itself. Autocorrelation indicates the degree of similarity between values of a given time series that are separated by a certain lag or time interval. To calculate the auto-correlation of a time series,the correlation between the original series and a lagged version of itself may be computed. The correlation coefficient may range from -1 to 1, where a value of 1 may indicate a perfect positive correlation between the series and its lagged version, a value of -1 may indicate a perfect negative correlation, and a value of 0 may indicate no correlation. Autocorrelation may be used to detect patterns or trends in data, as well as to identify the presence of seasonality or cyclicality in the series. In other embodiments, the other types of correlation techniques may be used.

[0057] When using correlation to identify the step interval, if the highest computed correlation number is below a predetermined threshold, then the user may not be currently walking (e.g., not performing a walking activity). This conclusion may be based on historical analysis of similar users, which may show that a much higher correlation ratio than the computed highest correlation number is achieved when the user is walking (or performing a walking activity). By applying threshold-based statistics, the low correlation values may be used to conclude that the user is not currently in a walking gait cycle. The predetermined threshold may be based on a variety of factors, such as the placement of the sensors 105, user demographics, usage of assistive devices, presence of certain asymmetric gait patterns, and other considerations. By taking these factors into account, a suitable threshold value that is specific to the user and the environment in which they are walking may be set. The threshold value may be personalized to the user and may depend on the specific user situation. For example, users with certain medical conditions or physical impairments may achieve lower correlation ratios than healthy users and may require a different threshold value that is different from normal users.

[0058] Thus, using correlation ratios and threshold-based statistics may be an effective way to identify when the user is not in a walking gait cycle. By taking various factors into account when setting the threshold, the technique may be made more robust and accurate for different users and situations.

[0059] The step interval may be used to determine the next matching point. For example, if the determined step interval is X seconds (e.g., 1.0 seconds) between the current position (e.g., associated with data 1, step 2) and the shifted position (e.g., associated with data 2, step 1), due to the periodic nature of the gait cycle, the same position (e.g., midpoint) in the next gait cycle (e.g., data 3, step 3) may be X seconds from the current position. Thus, the matching point detection system 115 may be configured to determine a next matching point or a point in time in a second step where a displacement value of at least location on auser is expected to be zero relative to a first point in time associated with a first step, with the second step coming immediately after the first step.

[0060] The acceleration determination system 120 may be configured to determine acceleration values between the first step and the second step. The acceleration determination system 120 may determine the acceleration values based on sensor data received from the sensors 105. The number of acceleration values to be determined between the first step and the second step may be predetermined. For example, in some embodiments, ten acceleration values may be sampled between the first step and the second step. In some embodiments, the number of acceleration values to be determined may be based on a duration. For example, an acceleration value may be sampled every 1 millisecond. Thus, if the step interval is 800 milliseconds, 800 samples may be collected between the first step and the second step.

[0061] The sampled acceleration values may be adjusted using the acceleration adjustment system 125. In particular, upon determining the next matching point (e.g., next- t), the sampled acceleration values may be adjusted over the course of the current gait cycle (e.g., current-t to next-t) using the following equations:Equation 1 : velocity(@next-t) = f acceleration^) dt (integrated from current-t to next-t) + velocity(@current-t)Equation 2: velocity(@next-t) = velocity(@current-t)

[0062] In other words, if the current velocity at the current matching point (e.g., current- t) is equal to the velocity at the next matching point (e.g., next-t), then the integration of acceleration over the current cycle is equal to zero. However, if the current velocity at the current matching point (e.g., current-t) is not equal to the velocity at the next matching point (e.g., next-t), then the integration of acceleration over the current cycle is not equal to zero. If the integration of acceleration over the current cycle is not equal to zero, the acceleration values may be adjusted over the next cycle (next-t to next-next-t) so that the integration is zero in the next cycle. By adjusting the acceleration values, any excess or deficient acceleration over the next cycle (next-t to next-next-t) may be evenly distributed, so that the integration of acceleration over the next cycle (next-t to next-next-t) is zero.

[0063] Mathematically speaking, adjusting of acceleration may be considered demeaning and may be applied as a preprocessing step in the PDR steps discussed above. For instance, if the summation of acceleration during the next 800-millisecond gait cycle is 1.6 meters / second, and there are 800 samples within this cycle (meaning there is a new data-point / snapshot every millisecond), dividing 1.6 meters / second by 800 may determinethe adjustment needed for each individual sample, which is 0.2 centimeters / second. Thus, instead of using the raw acceleration values determined by the acceleration determination system 120, acceleration values may be adjusted by reducing each acceleration sample value by 0.2 centimeters / second. These adjusted acceleration values may be used for downstream tasks to increase accuracy.

[0064] A non-limiting example for adjusting acceleration is as follows assuming a sampling frequency of 10 samples per second. This means that the next 800 milliseconds of a gait cycle may produce 8 data samples or snapshots of acceleration values (from current-t to next-t):[0.201, 1.101, -0.699, -0.199, -0.199, -0.499, 0.101, 0.201]

[0065] A summation of the above 8 acceleration numbers is equal to 0.008 meters / second: sum of [0.201, 1.101, -0.699, -0.199, -0.199, -0.499, 0.101, 0.201] = 0.008

[0066] The above acceleration sample values may be adjusted to ensure that the velocity at next-t is the same as current-t. For example, if the current velocity is X, then the velocity at next-t would be X plus 0.008 meters / second. To obtain the velocity at next-t that is also X, may demean each of the 8 sample acceleration values above. Each sample acceleration value may be adjusted by an adjustment factor. The adjustment factor may be determined by dividing the sum of acceleration values (e.g., 0.008) by the number of samples (e.g., 8 samples). For example, dividing 0.08 by 8 equals 0.001, which may be the adjustment factor in the example above.

[0067] A negated value of the adjustment factor may then be added to each sample acceleration value to obtain a plurality of adjusted acceleration values. For example, in the example above, the sign of the adjustment factor of 0.001 may be negated to -0.001, which may then be added to each of the sample acceleration values, providing adjusted acceleration values of:[0.2, 1.1, -0.7, -0.2, -0.2, -0.5, 0.1, 0.2]

[0068] The sum of the adjusted series is zero: sum of [0.2, 1.1, -0.7, -0.2, -0.2, -0.5, 0.1, 0.2] = 0

[0069] The zero sum indicates that the velocity computed using the above mechanism of adjustment factor may be zero in the next-t. The above computations may be used when the user is walking relatively straight on a relatively flat surface, where the velocity in the vertical direction is expected to remain constant from the start of a cycle to the end of a cycle (or from current-point to next matching-point) or if the user does not make suddenturns, the velocity in the non-vertical direction is expected to maintain relative stability, and the increment from current-point to next matching-point may also be approximated to be zero. The above mechanism may also be used beyond the realm of regular walking patterns as long as the user is exhibiting repeated motion patterns, and as long as the relationship between the velocities at the current moment and the next matching moment remains consistent. For example, this adjustment process may be applied when the user is using gym equipment, such as a rowing machine or a treadmill, climbing stairs, swimming, etc. In other words, the mechanism of acceleration adjustment described above may be used for both walking and non-walking activities.

[0070] The velocity determination system 130 may be used to compute velocity at any point during the next cycle (e.g., from current-t to next-t) using the adjusted acceleration values computed by the acceleration adjustment system 125. The velocity determination system 130 may compute the velocity using the following equation:Equation 3 : velocity(@any-t) = f acceleration^) dt (integrated from current-t to any-t) + velocity(@current-t)

[0071] The acceleration(t) may be the adjusted acceleration values. Thus, the velocity determination system 130 may compute a plurality of velocity values between the first step (e.g., step 2, current-t) and the second step (e.g., step 3, next-t). In some embodiments, the number of velocity values computed may be equal to the number of samples in the acceleration values. For example, if 8 sample acceleration values give 8 adjusted acceleration values, the velocity determination system 130 may compute 8 velocity values (e.g., one velocity value for each of the 8 adjusted acceleration values).

[0072] The velocity adjustment system 135 may be configured to adjust the velocity values to obtain a plurality of (e.g., 8) adjusted velocity values. The velocity values may be adjusted such that the displacement (whether vertical or horizontal) at the second step (e.g., next-t) is zero. Continuing with the example above, the adjusted raw acceleration values of [ 0.2 1.1 -0.7 -0.2 -0.2 -0.5 0.1 0.2] may be integrated, assuming zero initial velocity, to obtain a set of velocity values:Velocity = [0.2, 1.3, 0.6, 0.4, 0.2, -0.3, -0.2, 0.0]

[0073] Note that at the end of cycle (e.g., at next-t), the velocity comes back to zero, which is what is expected as the acceleration adjustment guarantees that. By summing up the velocity values above, the total displacement (e.g., on vertical direction, from current-t to next-t) may be computed as 2.2 meters: sum of [0.2, 1.3, 0.6, 0.4, 0.2, -0.3, -0.2, 0.0] = 2.2

[0074] However, because the user has not moved vertically during the next gait cycle, the velocity needs to be adjusted to ensure that the displacement at next-t is zero. Thus, each of the velocity values above is adjusted by an adjustment factor. The adjustment factor may be determined by dividing the sum (e.g., 2.2 meters) by the number of samples (e.g., 8) to obtain the adjustment factor (e.g., 0.275 meters / second). A negated adjustment factor (e.g., - 0.275) is then added to each velocity value to obtain the adjusted velocity values:[-0.075, 1.025, 0.325, 0.125, -0.075, -0.575, -0.475, -0.275]

[0075] A sum of [-0.075, 1.025, 0.325, 0.125, -0.075, -0.575, -0.475, -0.275] = 0.0, indicating that the displacement at the end of next-t is zero, thereby confirming that when the initial velocity is minus 0.275 meters / second then the user has not moved at all in vertical direction from current-t to next-t.

[0076] Using the adjusted velocity values, the displacement determination system 140 may be configured to compute a plurality of (e.g., 8) displacement values using the following equation for any given time between current-t and next-t:Equation 4: displacement (from current-t to next-t) = J velocity(t) dt (integrated from current-t to next-t) = 0

[0077] The gait parameter prediction system 145 may predict a gait parameter based on the computed plurality of determination values computed by the displacement determination system 140. The gait parameters may provide valuable insights into a user’s walking behavior and identify potential gait abnormalities or imbalances that may increase their risk of falling. This information may be used to develop targeted interventions to mitigate these risks and improve the user’s overall safety and well-being and better forecast the user’s fragility, ability to balance, or probability of falling. The gait parameter may be used to predict a fall of the user between the first step and the second step based on the computed plurality of displacement values and one or more historical displacement values. For example, the gait parameter prediction system 145 may compare the plurality of displacement values (or an average or other function of the plurality of displacement values) with a historical threshold value indicative of a fall. If the displacement values are greater than or equal to the historical threshold value, the gait parameter prediction system 145 may determine that the user is likely to fall between the first step and the second step. Thus, the above mechanism may improve fall risk assessment, post-fall reconstruction analysis, detect sensor misorientation, step counting, and automate functional assessments, making fall prevention and rehabilitation more effective and efficient. For example, a PDR mechanismbased on the above computations offers several benefits in the field of general fall risk assessment and descriptive post-fall reconstruction analysis.

[0078] By accurately determining zero-velocity points during gait cycles, the accuracy of post-fall reconstruction analysis, particularly for fall initiated from a walking position, may be improved. This is because the initial conditions of the fall, such as the velocity and orientation of the body at the time of the fall, may be estimated more accurately. This information may be used to understand the mechanics of the fall, identify the cause of the fall, and develop targeted interventions to prevent future falls.

[0079] The present disclosure may be used to detect when a wearable sensor, such as an accelerometer, is not worn in the correct orientation or position. For example, if an accelerometer is placed on the side of the waist of a user when the accelerator is designed to be placed on the lower back of the user, the computations above may detect this error and provide feedback, thereby improving accuracy of sensor data collection and improving the overall accuracy of fall prediction. In particular, by determining the trajectory of a user’s gait and associating the trajectory with the orientation of the sensor, whether the user has correctly worn the belt and therefore the sensor may be estimated.

[0080] Equipped with better and accurate velocity determination, the PDR mechanism based on the computations above may be used to create automated analyses that mimic functional tests administered by clinicians, such as the Timed-Up-and-Go (TUG) test. For example, in some embodiments, a TUG test may involve timing of a user rising from a seated position, walking a designated distance (e.g., 10 feet), walking back to the starting position, and assuming the seated position again. In some cases, a half-TUG test (e.g., where the first half includes the user rising from the seated position and walking the designated distance, with the second half including the user walking back to the starting position and resuming the seated position) may be used to train an algorithm for measuring the time to rise from the seated position and walking the designated distance (e.g., 10 feet). The value of the measured time may then be doubled to approximate a full TUG test. By accurately tracking the user’s movements and assessing their gait parameters, such as stride length and cadence, the present disclosure may provide accurate, objective, and non-biased measures of functional performance in a real-world setting, which may be used to assess fall risk and track changes over time.

[0081] Although the present disclosure has been discussed with respect to fall prediction, in other embodiments, the computations above may be used to predict other gait parameters. For example, gait-based performance metrics and / or gait assessments, based onreal world, non-scripted movements (e.g., stride time variability, X-minute walking test, etc.) may be obtained from motion data at predetermined intervals. Information may then be reported to clinical / monitoring staff for clinical use / reporting. Gait-based performance metrics, gait assessments, or fall risk assessments may be conducted utilizing motion data (scripted or non-scripted) obtained from various mobile devices with integrated IMU sensors (i.e., device agnostic), analyzed via proprietary software, and output to established clinical reports / EHR’s, or shared individually with the mobile device user. IMU-based PDR (device agnostic) may be applied to the effort to assist in locating a resident, such as a resident fall in a ‘dark’ area such as a stairwell, or in an emergency / evacuation event. Similarly, the gait parameter may be used to recognize a serious event, such as a fall in a shower where the resident is unable to recover, yet unable to reach a pull cord. In some embodiments, the gait parameter prediction system 145 may use the machine learning model 155 to predict the gait parameter.

[0082] The data processing system 110 may be a remote computing system (e.g., located in a cloud environment, remote on-premise server, etc.). At least some elements of the data processing system 110 may be accessible via portable devices such as laptops, mobile devices, wearable smart devices, etc. The data processing system 110 may include other or additional elements that may be considered desirable to have in performing the functions described herein. The data processing system 110, the matching point detection system 115, the acceleration determination system 120, the acceleration adjustment system 125, the velocity determination system 130, the velocity adjustment system 135, the displacement determination system 140, and / or the gait parameter prediction system 145, may include, or be associated with, a system processor 160.

[0083] The system processor 160 may execute one or more instructions associated with the system 100. The system processor 160 may include an electronic processor, an integrated circuit, or the like including one or more of digital logic, analog logic, digital sensors, analog sensors, communication buses, volatile memory, nonvolatile memory, and the like. The system processor 160 may include, but is not limited to, at least one microcontroller unit (MCU), microprocessor unit (MPU), central processing unit (CPU), graphics processing unit (GPU), physics processing unit (PPU), embedded controller (EC), or the like. The system processor 160 may include, or be associated with, a memory 165 operable to store or storing one or more non-transitory computer-readable instructions for operating components of the system processor and operating components operably coupled to the system processor. The one or more instructions may include at least one of firmware,software, hardware, operating systems, embedded operating systems, and the like. The system processor 160 or the system 100 generally may include at least one communication bus controller to effect communication between the system processor and the other elements of the system 100.

[0084] The memory 165 may include one or more hardware memory devices to store binary data, digital data, or the like. The memory 165 may include one or more electrical components, electronic components, programmable electronic components, reprogrammable electronic components, integrated circuits, semiconductor devices, flip flops, arithmetic units, or the like. The memory 165 may include at least one of a nonvolatile memory device, a solid-state memory device, a flash memory device, a NAND memory device, a volatile memory device, etc. The memory 165 may include one or more addressable memory regions disposed on one or more physical memory arrays.

[0085] Referring to FIG. 6, an example flowchart outlining operations of a process 200 is shown, in accordance with some embodiments. The process 200 may be executed to identify zero velocity points, as well as predict a gait parameter, that may be used in a variety of applications such as fall prediction, fall risk assessment, post-fall reconstruction analysis, detect sensor misorientation, and / or step counting. The process 200 may be performed by the data processing system 160 and / or the control unit 36 that execute computer-readable instructions stored in a memory (e.g., the memory 165). For example, the process 200 may be implemented using one or more processors associated with the matching point detection system 115, the acceleration determination system 120, the acceleration adjustment system 125, the velocity determination system 130, the velocity adjustment system 135, the displacement determination system 140, and / or the gait parameter prediction system 145 executing computer-readable instructions stored in a memory (e.g., the memory 165).

[0086] At operation 205, the one or more processors determines the next matching point during a periodic motion of a user. The periodic motion may be associated with a gait cycle during a walking activity (e.g., walking, running, etc.) or a periodic cycle during a nonwalking activity (e.g., climbing stairs, swimming, etc.). The description of the process 200 below is with respect to a walking activity, and particularly, a gait cycle. Each gait cycle may include a step. However, the description of the process 200 is similarly applicable to a non-walking activity, and particularly, a periodic cycle (e.g., a second cycle that immediately follows a first cycle, the second cycle returning to a position of the first cycle). Each periodic cycle may be considered one cycle (e.g., analogous to a step).

[0087] The one or more processors determines, during a plurality of gait cycles having at least a first step and a second step that immediately follows the first step, a second point in time (e.g., next-t) where a displacement value of at least one location on a user is expected to be zero. The second point in time is associated with the second step and is determined relative to a first point in time (e.g., current-t) associated with the first step. The second point in time may be considered the next matching point relative to the first point in time. The location on the user may be associated with center of mass of a body of the user. The displacement value may be vertical displacement value or a lateral displacement value. The one or more processors may determine the next matching point based on a step interval of the user. The step interval of the user may be computed based on historical step intervals, correlation, or a combination thereof, as described above. For example, the one or more processors may determine the step interval based on a historical step interval associated with at least one other user having a similar characteristic as the user and / or walking on a terrain similar to the terrain on which the user is walking during the gait cycle. The characteristic may include an age of the user, height of the user, health of the user, demographics of the user, etc. Using the step interval, the one or more processors may predict the next matching point as discussed above.

[0088] At operation 210, the one or more processors determine (e.g., measure) a plurality of acceleration values associated with an acceleration of the at least one location on the user between the first step and the second step. For example, the one or more processors may determine a number of acceleration values between the first step and the second step. Then one or more processors may determine the number of acceleration values based on sensor data received from sensors (e.., the sensors 13, the sensors 105, etc.). At operation 215, the one or more processors adjust the plurality of acceleration values of the operation 210 such that a velocity of the at least one location on the user at the second point in time is equal to the velocity of the at least one location on the user at the first point in time, to generate a plurality of adjusted acceleration values. In some embodiments, the desired velocity of the at least one location on the user at the first point in time and the second point in time may be zero. In other embodiments, the desired velocity of the at least one location on the user at the first point in time and the second point in time may be another value.

[0089] To generate the plurality of adjusted acceleration values, the one or more processors may compute a sum of the plurality of acceleration values of the operation 210, divide the sum by a number of values in the plurality of acceleration values to obtain anacceleration adjustment value or factor, and subtract the acceleration adjustment value from each of the plurality of acceleration values to obtain the plurality of adjusted acceleration values (or negate the acceleration adjustment factor and add to each of the plurality of acceleration values).

[0090] At operation 220, the one or more processors compute a plurality of velocity values of the at least one location on the user between the first step and the second step based on the plurality of adjusted acceleration values of the operation 215. The one or more processors may compute the plurality of velocity values by integrating the plurality of adjusted acceleration values from the first point in time to the second point in time. At operation 225, the one or more processors adjust the plurality of velocity values computed at the operation 220 such that a displacement of the at least one location on the user at the second point in time is equal to the displacement of the at least one location on the user at the first point in time, to generate a plurality of adjusted velocity values. The displacement of the at least one location on the user at the second point in time and the first point in time may be desired to be zero or some other value.

[0091] The one or more processors may compute the plurality of adjusted velocity values by computing a sum of the plurality of velocity values of the operation 220, dividing the sum by a number of values in the plurality of velocity values to obtain a velocity adjustment value or factor, and subtracting the velocity adjustment value from each of the plurality of velocity values (or negating the velocity adjustment factor and adding to each of the plurality of velocity values) to obtain the plurality of adjusted velocity values. At operation 230, using the plurality of adjusted velocity values, the one or more processors compute a plurality of displacement values of the at least one location on the user between the first step and the second step. The one or more processors may compute the plurality of displacement values by integrating the plurality of adjusted velocity values from the first point in time to the second point in time. At operation 235, the one or more processors predict a gait parameter associated with the user between the first step and the second step based on the plurality of displacement values. The gait parameter may be derived mathematically based on the trajectory (e.g., locations / coordinates in 3D) of the user’s movement. For example, the one or more processors may predict the gait parameter by comparing the plurality of displacement values with a historical displacement value. For example, the one or more processors may determine a difference between the plurality of displacement values and a historical vertical displacement value, compare the difference with a predetermined threshold, and predict a fall of the user based on the difference beinggreater than the predetermined threshold. The gait parameter may be used for other applications as well (e.g., fall risk assessment, post-fall reconstruction analysis, detect sensor misorientation, step counting, etc.).

[0092] Turning to FIG. 7, an example block diagram of an example computer system 300 is shown, in accordance with some embodiments. The computer system 300 may be any computing device used herein (e.g., the control unit 36, the data processing system 110, etc.) and may include or be used to implement a data processing system or its components. The computer system 300 may be a computer, a tablet, a smartphone, a smartwatch, a server, etc. in communication with the protective garment 2. The computer system 300 includes at least one bus 305 or other communication component or interface for communicating information between various elements of the computer system. The computer system 300 further includes at least one processor 310 or processing circuit coupled to the bus 305 for processing information. The computer system 300 also includes at least one main memory 315, such as a random-access memory (RAM) or other dynamic storage device, coupled to the bus 305 for storing information, and instructions to be executed by the processor 310. The main memory 315 may be used for storing information during execution of instructions by the processor 310. The computer system 300 may further include at least one read only memory (ROM) 320 or other static storage device coupled to the bus 305 for storing static information and instructions for the processor 310. A storage device 325, such as a solid-state device, magnetic disk or optical disk, may be coupled to the bus 305 to persistently store information and instructions.

[0093] The computer system 300 may be coupled via the bus 305 to a display 330, such as a liquid crystal display, or active-matrix display, for displaying information. An input device 335, such as a keyboard or voice interface may be coupled to the bus 305 for communicating information and commands to the processor 710. The input device 335 may include a touch screen display (e.g., the display 330). The input device 335 may also include a cursor control, such as a mouse, a trackball, or cursor direction keys, for communicating direction information and command selections to the processor 310 and for controlling cursor movement on the display 330.

[0094] The processes, systems and methods described herein may be implemented by the computer system 300 in response to the processor 310 executing an arrangement of instructions contained in the main memory 315. Such instructions may be read into the main memory 315 from another computer-readable medium, such as the storage device 325. Execution of the arrangement of instructions contained in the main memory 315 causes thecomputer system 300 to perform the illustrative processes described herein. One or more processors in a multi-processing arrangement may also be employed to execute the instructions contained in the main memory 315. Hard-wired circuitry can be used in place of or in combination with software instructions together with the systems and methods described herein. Systems and methods described herein are not limited to any specific combination of hardware circuitry and software.

[0095] Although an example computing system has been described in FIG. 7, the subject matter including the operations described in this specification can be implemented in other types of digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.Applications of Periodic Motion Based PDR

[0096] As introduced above, the periodic motion based PDR processes detailed herein can be applied in various instances or scenarios to provide enhanced detection and processing capabilities. For example, periodic motion or gait-based PDR can be implemented and utilized by the systems and devices herein (e.g., the protective garment 2, the system 100, etc.) to improve fall risk assessment, detect sensor misorientation, step counting, and post-fall reconstruction analysis.Fall Risk Assessment

[0097] By enhancing PDR using the periodic motion techniques described herein, fall risk of users can be more accurately assessed and predicted. By way of example, the periodic motion of a user may be monitored over a period of time (e.g., days, weeks, months, etc.) to generate a motion profile for the user. The motion profile may include normative values for gait characteristics / patterns, postural sway characteristics / patterns, and the like for the user based on their periodic or cyclical motions over time.

[0098] As the motion profile is generated over time, trends can be detected that indicate deviations from the normative values. By way of example, the protective garment 2 may be worn by individuals that have difficulties walking and / or have an elevated risk of falling. As their neurological systems, vestibular systems, muscular strength, and / or skeletal strength decline over time, changes in their periodic / cyclical motion and walking characteristics can be tracked and monitored as part of their motion profile.

[0099] The trends may be accessible (e.g., via an application or web portal using the display 330 of the computer system 300) by the user of the protective garment 2 and / or by other parties (e.g., a caretaker, a family member, hospital staff, care facility staff, etc.) such that the user or the other parties may evaluate such trends to determine whether the user has an elevated risk of falling based on such trends.

[0100] In some embodiments, the systems and devices herein (e.g., the protective garment 2, the system 100, etc.) are configured to provide alerts to the user and / or the other parties when the trends indicate an elevated risk of falling is possible. By way of example, the systems and devices may evaluate a rate of change in the trends, and if the rate of change in the trends in greater than a rate of change threshold, an alert may be provided to indicate that there is an elevated risk of falling (e.g., an audible notification via the protective garment 2; a text, email, web / app, etc. notification via the computer system 300; etc.). Accordingly, the user and / or the other parties can be more aware of health declines and take corrective or mitigating actions to prevent a future fall (e.g., certain therapies to build back strength, switch to wheelchairs or motorized scooters, limit walking to when in the presence of others, etc.)Sensor Misorientation

[0101] Also, by enhancing PDR using the periodic motion techniques described herein, misorientation of sensors (e.g., the sensors 13, the sensors 105, etc.) can be detected. For example, the protective garment 2 may be worn by individuals that are cognitively impaired. As a result, in some instances, such individuals may not put on the protective garment 2 in the proper orientation. By way of example, instead of the buckle 8 being located front and center at the anterior most location on the individual’s waist, the buckle 8 may be offset at an angle relative to the sagittal plane (e.g., skewed to the right, the left, etc.). Such misorientation can adversely impact the sensing, processing, and airbag deployment capabilities of the systems and devices described herein (e.g., the protective garment 2, the system 100, etc.).

[0102] In some embodiments, the systems and devices described herein (e.g., the protective garment 2, the system 100, etc.) are configured to monitor cyclic amplitude displacement within the sagittal plane as a user properly wearing the protective garment 2 walks (e.g., when the buckle 8 is intersected by the sagittal plane) and store a nominal or baseline gait amplitude displacement. Then, if the buckle 8 is not in the proper positionwhen the protective garment 2 is put on in the future, the systems and devices described herein can detect misorientation of the sensors when the user starts to walk and provide a notification or alert. By way of example, because of the misorientation, the cyclic amplitude displacement detected by the sensors may vary from the nominal or baseline gait amplitude displacement. By way of another example, because of the misorientation, the cyclic amplitude displacement detected by the sensors may not all be in the sagittal plane. Accordingly, in response to one or both of these indications, an alert can be provided with the protective garment 2 to the user directly (e.g., a chime, a haptic signal, etc.) or to an external device (e.g., the computer system 300, a smartphone, a smartwatch, a server, etc.) associated with the protective garment 2. Accordingly, the user or another person that is alerted can correctly orient the protective garment 2.Step Counting

[0103] Also, by enhancing PDR using the periodic motion techniques described herein, step counting of users can be more accurately detected and monitored. Step counting devices typically rely on sensing spikes in acceleration or g-forces to indicate that steps are being taken. However, the protective garment 2 may be worn by individuals that have difficulties walking. Such individuals may typically walk with “soft steps” or shuffle their feet such that the spikes in the acceleration / g-force curve can be minimal and hard to detect accurately as such individuals walk. Advantageously, the periodic motion based PDR processes described herein can accurately detect the zero velocity points between cycles or steps, which can then be used for step counting instead of relying on unreliable and inaccurate acceleration / g-force readings of such individuals.Post-Fall Reconstruction

[0104] Periodic motion based PDR can be used prior to and during a fall event (i.e., when someone transitions from walking to falling) to improve reconstruction of the fall event post-fall. Specifically, the protective garment 2 is configured to monitor motion data surrounding and leading up to a fall event (e.g., a black box file). Such motion data may then be evaluated to generate a three-dimensional reconstruction of the fall event.

[0105] The cyclicality data from walking can be useful to improve the PDR accuracy during the fall event. During a suspected fall, the algorithm may rely on detection of cyclicality to obtain a more accurate / reliable zero vertical velocity initial time point toimprove the subsequent computation of PDR. More specifically, the systems and devices described herein (e.g., the protective garment 2, the system 100, etc.) are configured to detect when someone transitions from walking to falling by (a) spotting sudden changes in movement data (e.g., via detection of a big spike in acceleration) and / or (b) using walking data as a baseline to understand what normal movement looks like versus falling movement (e.g., compare real-time data to the baseline to spot when something unusual happens, like a fall). By recognizing such transitions, the systems and devices can adjust calculations to provide better position estimates during and after the fall. The systems and devices can reset or recalibrate the zero-velocity points based on the last stable walking cycle before the fall. An example reconstruction process is outlined below.

[0106] First, the systems and devices (e.g., the protective garment 2, the system 100) are configured to monitor motion data of user (e.g., periodic or cyclical gait) and determine the zero vertical velocity points, which are indicative of completed steps (either at the top or bottom of the gait). Second, the systems and devices are configured to detect a transition from walking movements to non-walking walking movements. Such detection may be based on accelerometer readings / data exceeding a threshold value (e.g., indicating of a fall, transition to lying down, transition to sitting, etc.), gyroscope magnitudes / orientation readings exceeding a certain threshold (e.g., indicating off-balance movements or nonwalking orientations), vertical displacement exceeding typical vertical displacement of past gait cycles, and / or other factors. Third, the systems and devices are configured to compare real-time data of the non-walking movements to baseline non-walking movements to identifying abnormalities. By way of example, the baseline non-walking movements may include data regarding transitions from walking to siting and / or walking to lying down. Fourth, the systems and devices are configured to determine that the non-walking movements indicate a fall event in response to abnormalities between the current nonwalking movements and the baseline non-walking movements (e.g., sitting down, lying down, etc.). Lastly, the systems and devices are configured to determine the last zero vertical velocity point in time prior to the fall event to facilitate recalibrating the zerovelocity points based on the last stable walking cycle. This point may then be used as the basis for reconstructing where and when the fall occurred in space and time, and improve position estimates during and after the fall. This will also facilitate understanding the vertical distance the user fell during the fall event.

[0107] The herein described subject matter sometimes illustrates different components contained within, or connected with, different other components. It is to be understood thatsuch depicted architectures are illustrative, and that in fact many other architectures can be implemented which achieve the same functionality. In a conceptual sense, any arrangement of components to achieve the same functionality is effectively “associated” such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality can be seen as “associated with” each other such that the desired functionality is achieved, irrespective of architectures or intermedial components. Likewise, any two components so associated can also be viewed as being “operably connected,” or “operably coupled,” to each other to achieve the desired functionality, and any two components capable of being so associated can also be viewed as being “operably couplable,” to each other to achieve the desired functionality. Specific examples of operably couplable include but are not limited to physically mateable and / or physically interacting components and / or wirelessly interactable and / or wirelessly interacting components and / or logically interacting and / or logically interactable components.

[0108] With respect to the use of plural and / or singular terms herein, those having skill in the art can translate from the plural to the singular and / or from the singular to the plural as is appropriate to the context and / or application. The various singular / plural permutations may be expressly set forth herein for sake of clarity.

[0109] It will be understood by those within the art that, in general, terms used herein, and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as “open” terms (e.g., the term “including” should be interpreted as “including but not limited to,” the term “having” should be interpreted as “having at least,” the term “includes” should be interpreted as “includes but is not limited to,” etc.).

[0110] Although the figures and description may illustrate a specific order of method steps, the order of such steps may differ from what is depicted and described, unless specified differently above. Also, two or more steps may be performed concurrently or with partial concurrence, unless specified differently above. Such variation may depend, for example, on the software and hardware systems chosen and on designer choice. All such variations are within the scope of the disclosure. Likewise, software implementations of the described methods can be accomplished with standard programming techniques with rulebased logic and other logic to accomplish the various connection steps, processing steps, comparison steps, and decision steps.

[0111] It will be further understood by those within the art that if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation, no such intent is present. For example, as an aidto understanding, the following appended claims may contain usage of the introductory phrases “at least one” and “one or more” to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim recitation to inventions containing only one such recitation, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an” (e.g., “a” and / or “an” should typically be interpreted to mean “at least one” or “one or more”); the same holds true for the use of definite articles used to introduce claim recitations. In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should typically be interpreted to mean at least the recited number (e.g., the bare recitation of “two recitations,” without other modifiers, typically means at least two recitations, or two or more recitations).

[0112] Furthermore, in those instances where a convention analogous to “at least one of A, B, and C, etc.” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., “a system having at least one of A, B, and C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and / or A, B, and C together, etc.). In those instances where a convention analogous to “at least one of A, B, or C, etc.” is used, in general, such a construction is intended in the sense one having skill in the art would understand the convention (e.g., “a system having at least one of A, B, or C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and / or A, B, and C together, etc.). It will be further understood by those within the art that virtually any disjunctive word and / or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms. For example, the phrase “A or B” will be understood to include the possibilities of “A” or “B” or “A and B.”

[0113] Further, unless otherwise noted, the use of the words “approximate,” “about,” “around,” “substantially,” etc., mean plus or minus ten percent.

[0114] The foregoing description of illustrative implementations has been presented for purposes of illustration and of description. It is not intended to be exhaustive or limiting with respect to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of the disclosedimplementations. It is intended that the scope of the invention be defined by the claims appended hereto and their equivalents.

Claims

CLAIMS:

1. A movement detection system comprising: a garment configured to be worn by a user, the garment including one or more sensors configured to acquire movement data regarding movements of the user; one or more processing circuits configured to: identify a plurality of zero vertical velocity points within periodic motion of the user based on the movement data; detect a fall event based on the movement data; and identify a last zero vertical velocity point of the plurality of zero vertical velocity points prior to the fall event as a location of a start of the fall event.

2. The movement detection system of claim 1, wherein the one or more processing circuits are located on the garment.

3. The movement detection system of claim 1, wherein the one or more processing circuits include a first processing circuit located on the garment and a second processing circuit remote from the garment.

4. The movement detection system of claim 1, wherein the garment includes an airbag, and wherein the one or more processing circuits are configured to inflate the airbag in response to the fall event.

5. The movement detection system of claim 1, wherein the garment includes a waist-strap and a buckle, and wherein the one or more processing circuits are configured to: detect whether the buckle is in alignment with a sagittal plane of the user; and provide an alert in response to the buckle not being in alignment with the sagittal plane.

6. The movement detection system of claim 1, wherein the one or more processing circuits are configured to count steps based on identification of the plurality of zero vertical velocity points.

7. The movement detection system of claim 1, wherein the one or more processing circuits are configured to monitor the periodic motion of the user over a period of time and generate a motion profile for the user.

8. The movement detection system of claim 7, wherein the motion profile includes normative values for at least one of gait characteristics or postural sway characteristics for the user based on the periodic motion over the period of time, and wherein the one or more processing circuits are configured to detect a trend of deviations from the normative values indicative of an elevated risk of falling.

9. The movement detection system of claim 8, wherein the one or more processing circuits are configured to facilitate accessing the motion profile and the trend via an external device.

10. The movement detection system of claim 8, wherein the one or more processing circuits are configured to provide an alert in response to the trend indicating that the elevated risk of falling is present.

11. The movement detection system of claim 1, wherein the one or more processing circuits are configured to compare the movement data to data representative of at least one of a first act of siting or a second act of lying down, and confirm that the movement data indicates that the fall event in occurring based on the comparison.

12. The movement detection system of claim 1, wherein the one or more sensors include an inertial measurement unit.

13. A movement detection system comprising: one or more sensors configured to acquire movement data regarding movements of a user; a non-transitory computer readable medium having computer-readable instructions stored thereon that when executed by one or more processors cause the one or more processors to: identify a plurality of zero vertical velocity points within periodic motion of the user based on the movement data; detect a fall event based on the movement data; andidentify a last zero vertical velocity point of the plurality of zero vertical velocity points prior to the fall event as a location of a start of the fall event.

14. The movement detection system of claim 13, wherein the instructions cause the one or more processors to count steps based on identification of the plurality of zero vertical velocity points.

15. The movement detection system of claim 13, wherein the instructions cause the one or more processors to monitor the periodic motion of the user over a period of time and generate a motion profile for the user.

16. The movement detection system of claim 15, wherein the motion profile includes normative values for at least one of gait characteristics or postural sway characteristics for the user based on the periodic motion over the period of time, and wherein the instructions cause the one or more processors to detect a trend of deviations from the normative values indicative of an elevated risk of falling.

17. The movement detection system of claim 8, wherein the instructions cause the one or more processing circuits to at least one of (a) facilitate accessing the motion profile and the trend via an external device or (b) provide an alert in response to the trend indicating that the elevated risk of falling is present.

18. The movement detection system of claim 13, wherein the one or more sensors include an inertial measurement unit.

19. A movement detection system comprising: a non-transitory computer readable medium having computer-readable instructions stored thereon that when executed by one or more processors cause the one or more processors to: acquire movement data regarding movements of a user; identify a plurality of zero vertical velocity points within periodic motion of the user based on the movement data; and using the plurality of zero vertical velocity points, at least one of:(a) detect a fall event based on the movement data and identify a last zero vertical velocity point of the plurality of zero vertical velocity points prior to the fall event as a location of a start of the fall event;(b) count steps based on identification of the plurality of zero vertical velocity points; or(c) monitor the periodic motion of the user over a period of time, generate a motion profile for the user where the motion profile includes normative values for at least one of gait characteristics or postural sway characteristics for the user based on the periodic motion over the period of time, and detect a trend of deviations from the normative values indicative of an elevated risk of falling.

20. The movement detection system of claim 19, further comprising a garment configured to be work by the user, the garment including a sensor configured to facilitate acquiring the movement data.

21. A non-transitory computer-readable media comprising computer-readable instructions stored thereon that when executed by one or more processors cause the one or more processors to: determine, during a plurality of gait cycles comprising at least a first step and a second step that immediately follows the first step, a second point in time where a displacement value of at least one location on a user is expected to be zero, wherein the second point in time is associated with the second step and is determined relative to a first point in time associated with the first step; determine a plurality of acceleration values associated with an acceleration of the at least one location on the user between the first step and the second step; adjust the plurality of acceleration values such that a velocity of the at least one location on the user at the second point in time is equal to the velocity of the at least one location on the user at the first point in time, to generate a plurality of adjusted acceleration values; compute a plurality of velocity values of the at least one location on the user between the first step and the second step based on the plurality of adjusted acceleration values; adjust the plurality of velocity values such that a displacement of the at least one location on the user at the second point in time is equal to the displacement of the at least one location on the user at the first point in time, to generate a plurality of adjusted velocity values; compute a plurality of displacement values of the at least one location on theuser between the first step and the second step based on the plurality of adjusted velocity values; and predict a gait parameter associated with the user between the first step and the second step based on the plurality of displacement values.

22. The non-transitory computer-readable media of claim 21, wherein the gait parameter is used to predict a fall of the user between the first step and the second step based on the plurality of displacement values and a historical displacement value.

23. The non-transitory computer-readable media of claim 21, wherein the one or more processors further execute computer-readable instructions to determine the second point in time based on a step interval between the first step and the second step.

24. The non-transitory computer-readable media of claim 23, wherein the step interval is determined based on a historical step interval associated with at least one other user having a similar characteristic as the user or walking on a terrain similar to the terrain on which the user is walking during the plurality of gait cycles.

25. The non-transitory computer-readable media of claim 24, wherein the characteristic comprises at least one of an age of the user, a height of the user, demographics of the user, or health of the user.

26. The non-transitory computer-readable media of claim 23, wherein the step interval is determined based on correlation.

27. The non-transitory computer-readable media of claim 21, wherein to obtain the plurality of adjusted acceleration values, the one or more processors further execute computer-readable instructions to: compute a sum of the plurality of acceleration values; divide the sum by a number of values in the plurality of acceleration values to obtain an acceleration adjustment value; and subtract the acceleration adjustment value from each of the plurality of acceleration values to obtain the plurality of adjusted acceleration values.

28. The non-transitory computer-readable media of claim 27, wherein to compute the plurality of adjusted velocity values, the one or more processors furtherexecute computer-readable instructions to: compute a sum of the plurality of velocity values; divide the sum by a number of values in the plurality of velocity values to obtain a velocity adjustment value; and subtract the velocity adjustment value from each of the plurality of velocity values to obtain the plurality of adjusted velocity values.

29. The non-transitory computer-readable media of claim 21, wherein the displacement value comprises a vertical displacement value, and wherein the at least one location on the user for the vertical displacement value comprises a center of mass of a body of the user.

30. The non-transitory computer-readable media of claim 21, wherein the displacement value comprises at least one of a vertical displacement value or a lateral displacement value.

31. A non-transitory computer-readable media comprising computer-readable instructions stored thereon that when executed by one or more processors cause the one or more processors to: determine a second point in time associated with a second cycle that immediately follows a first cycle, the second cycle returning to a position of the first cycle, wherein the second point in time is determined relative to a first point in time associated with the first cycle, and wherein the second point in time is where a displacement value of at least one location on a user is expected to be zero; determine a plurality of acceleration values associated with an acceleration of the at least one location on the user between the first cycle and the second cycle; adjust the plurality of acceleration values such that a velocity of the at least one location on the user at the second point in time is equal to the velocity of the at least one location on the user at the first point in time, to generate a plurality of adjusted acceleration values; compute a plurality of velocity values of the at least one location on the user between the first cycle and the second cycle based on the plurality of adjusted acceleration values; adjust the plurality of velocity values such that a displacement of the at least one location on the user at the second point in time is equal to the displacement of the atleast one location on the user at the first point in time, to generate a plurality of adjusted velocity values; compute a plurality of displacement values of the at least one location on the user between the first cycle and the second cycle based on the plurality of adjusted velocity values; and predict a parameter associated with the user between the first cycle and the second cycle based on the plurality of displacement values.

32. The non-transitory computer-readable media of claim 31, wherein the parameter is used for predicting a fall of the user between the first step and the second step based on the plurality of displacement values and a historical displacement value.

33. The non-transitory computer-readable media of claim 31, wherein the one or more processors further execute computer-readable instructions to determine the second point in time based on an interval between the first cycle and the second cycle, and wherein the interval is determined based on at least one of a historical interval associated with at least one other user having a similar characteristic as the user or co-relation.

34. The non-transitory computer-readable media of claim 31, wherein the displacement value comprises at least one of a vertical displacement value or a lateral displacement value.

35. The non-transitory computer-readable media of claim 31, wherein to obtain the plurality of adjusted acceleration values, the one or more processors further execute computer-readable instructions to: compute a sum of the plurality of acceleration values; divide the sum by a number of values in the plurality of acceleration values to obtain an acceleration adjustment value; and subtract the acceleration adjustment value from each of the plurality of acceleration values to obtain the plurality of adjusted acceleration values.

36. The non-transitory computer-readable media of claim 35, wherein to compute the plurality of adjusted velocity values, the one or more processors further execute computer-readable instructions to: compute a sum of the plurality of velocity values; divide the sum by a number of values in the plurality of velocity values toobtain a velocity adjustment value; and subtract the velocity adjustment value from each of the plurality of velocity values to obtain the plurality of adjusted velocity values.

37. A method comprising: determining, during a plurality of gait cycles comprising at least a first step and a second step that immediately follows the first step, a second point in time where a displacement value of at least one location on a user is expected to be zero, wherein the second point in time is associated with the second step and is determined relative to a first point in time associated with the first step; determining a plurality of acceleration values associated with an acceleration of the at least one location on the user between the first step and the second step; adjusting the plurality of acceleration values such that a velocity of the at least one location on the user at the second point in time is equal to the velocity of the at least one location on the user at the first point in time, to generate a plurality of adjusted acceleration values; computing a plurality of velocity values of the at least one location on the user between the first step and the second step based on the plurality of adjusted acceleration values; adjusting the plurality of velocity values such that a displacement of the at least one location on the user at the second point in time is equal to the displacement of the at least one location on the user at the first point in time, to generate a plurality of adjusted velocity values; computing a plurality of displacement values of the at least one location of the user between the first step and the second step based on the plurality of adjusted velocity values; and predicting a gait parameter associated with the user between the first step and the second step based on the plurality of displacement values.

38. The method of claim 37, wherein the gait parameter is used for predicting a fall of the user between the first step and the second step based on the plurality of displacement values and a historical displacement value.

39. The method of claim 37, wherein to obtain the plurality of adjusted acceleration values, the method further comprises:computing a sum of the plurality of acceleration values; dividing the sum by a number of values in the plurality of acceleration values to obtain an acceleration adjustment value; and subtracting the acceleration adjustment value from each of the plurality of acceleration values to obtain the plurality of adjusted acceleration values.

40. The method of claim 39, wherein to compute the plurality of adjusted velocity values, the method further comprises: computing a sum of the plurality of velocity values; dividing the sum by a number of values in the plurality of velocity values to obtain a velocity adjustment value; and subtracting the velocity adjustment value from each of the plurality of velocity values to obtain the plurality of adjusted velocity values.