APPARATUS AND ASSOCIATED METHODS FOR STEP LENGTH ESTIMATION
20220233100 · 2022-07-28
Assignee
Inventors
- Paul Daniel BAXTER (Cambridge, Cambridgeshire, GB)
- Douglas James O'ROURKE (Cambridge, Cambridgeshire, GB)
Cpc classification
A61B5/6801
HUMAN NECESSITIES
A61B5/6898
HUMAN NECESSITIES
G01C21/16
PHYSICS
A61B2562/0219
HUMAN NECESSITIES
A61B5/725
HUMAN NECESSITIES
International classification
A61B5/11
HUMAN NECESSITIES
A61B5/00
HUMAN NECESSITIES
Abstract
A method and apparatus for estimating a step length of a user are disclosed. The method involves obtaining inertial data generated by an inertial sensor, extracting orthogonal motion components a plurality of directions, and estimating, based on the orthogonal motion components for each direction, a respective parameter that is indicative of energy expenditure by the user in the corresponding direction. The step length is then estimated, based on each estimated parameter indicating energy expenditure by the user, a corresponding step length.
Claims
1. A method for estimating a step length of a user, the method comprising: obtaining inertial data generated by at least one inertial sensor; extracting, from the inertial data, orthogonal motion components in at least two directions; estimating, based on the orthogonal motion components for each direction, a respective parameter that is indicative of energy expenditure by the user in the corresponding direction; and estimating, based on each estimated parameter that is indicative of energy expenditure by the user, a corresponding step length.
2. A method as claimed in claim 1, wherein the orthogonal motion components are extracted using at least one filter.
3. A method as claimed in claim 2, wherein the orthogonal motion components are extracted using at least one Kalman filter.
4. A method as claimed in claim 2, wherein the orthogonal motion components are smoothed using at least one high pass filter.
5. A method as claimed in claim 1, wherein the orthogonal motion components in at least two directions are orthogonal in a plane perpendicular to a gravitational direction.
6. A method as claimed in claim 1, wherein the orthogonal motion components comprise orthogonal acceleration components.
7. A method as claimed in claim 4, wherein the estimating of parameters that are indicative of energy expenditure by the user is based on orthogonal velocity components that are extracted from the orthogonal acceleration components.
8. A method as claimed in claim 1, wherein the orthogonal motion components comprise orthogonal velocity components.
9. A method as claimed in claim 7, wherein each parameter that is indicative of energy expenditure by the user in the corresponding direction is approximated by applying a window function to a respective set of the orthogonal velocity components in the corresponding direction for a time period corresponding to the window function.
10. A method as claimed in claim 9, wherein the window function comprises a generalised cosine window, optionally a Hamming window.
11. A method as claimed in claim 9, wherein each parameter that is indicative of energy expenditure by the user in the corresponding direction is approximated based on a calculation of a variance with the window function.
12. A method as claimed in claim 11, wherein each parameter that is indicative of energy expenditure by the user in the corresponding direction is a power, P, that is estimated, for a window function of length n, using the following equation:
13. A method as claimed in claim 1, wherein the estimating of the corresponding step length comprises estimating the corresponding step length based on a mathematical model that maps: the sum of respective orthogonal estimated parameters that are indicative of energy expenditure by the user, in each of at least two orthogonal directions; to an estimated step length; based on at least one mapping parameter.
14. A method as claimed in claim 13 wherein the at least one mapping parameter comprises a coefficient, k, a power, 1/α, and an offset, and wherein the mathematical model provides an estimated step length, SLuncal, given by:
SL.sub.uncal=k×(P.sub.N+P.sub.E).sup.1/α−offset where P.sub.N and P.sub.E are the respective orthogonal estimated parameters in each of each of two orthogonal directions.
15. A method as claimed in claim 12, wherein the at least one mapping parameter comprises at least one population specific parameter that is derived from previously extracted data representing typical locomotory motion for a population of a number of users.
16. A method as claimed in claim 15 further comprising: identifying a population specific profile from a plurality of selectable population specific profiles, wherein each selectable population specific profile comprises at least one respective population specific parameter that is different from a corresponding population specific parameter in another of the plurality of selectable population specific profiles; and estimating the corresponding step length based on the mathematical model using, as the at least one mapping parameter, at least one population specific parameter from the identified population specific profile.
17. A method as claimed in claim 1, wherein the estimated step length is an initial step length and wherein the method further comprises deriving an estimated user specific step length by applying, to the initial estimate of step length, a user specific parameter, that is derived from previously extracted data representing locomotory motion of the user.
18. Apparatus for estimating a step length of a user, the apparatus comprising: means for obtaining inertial data generated by at least one inertial sensor; means for extracting, from the inertial data, orthogonal motion components in at least two directions; means for estimating, using the orthogonal motion components for each direction, a respective parameter that is indicative of energy expenditure by the user in the corresponding direction; and means for estimating, using each estimated parameter that is indicative of energy expenditure by a user, a corresponding step length.
19. Apparatus as claimed in claim 18 wherein the means for obtaining inertial sensor is configured to obtain the inertial data from at least one body worn inertial sensor.
20. A computer-readable medium comprising instructions which, when executed by a computer, cause the computer to carry out the method of claim 1.
Description
[0039] Embodiments of the invention will now be described by way of example only with reference to the attached figures in which:
[0040]
[0041]
[0042]
OVERVIEW
[0043] A portable device for detecting, and estimating the length of steps taken by a user carrying the device is described by way of example with reference to the drawings. The portable device generates an estimate of the step length based on derived power parameters that are indicative of the power (energy expended per unit time) being expended by a user of the device. The derived power parameters are determined based, ultimately, on estimates of oriented inertial data extracted from raw inertial data output by one or more inertial sensors provided in the portable device.
[0044] The method used for estimating step length, in the portable device, is based on the premise that for a given person, walking faster generally involves walking in a more ‘energetic’ manner. Thus, identification of higher and lower energy steps can be used to allow an estimated step length to be scaled up or down based on an estimate of the energy expended.
[0045] Even if a given estimate of a step length for an individual step might be relatively inaccurate, for many systems (such as, but not limited to, those involving use of a particle filter), this is of less concern than the ability to take into account a systematic change in a user's locomotory style (e.g. walking, jogging, running, ascending, descending, etc.) over a number of steps with resulting greater accuracy in an estimate of the distance travelled over a number of steps while the change in walking style occurs.
[0046] This difference in emphasis has led to a significantly different step estimation procedure then has previously been employed in many existing systems.
[0047]
[0048] In
[0049] During the first style of locomotion (a), the user's waist (and hence the device 110) will exhibit localised movement (movement relative to the underlying more systematic movement of the user in a particular direction) that has lower acceleration and velocity components compared to the second style of locomotion (b).
[0050] The step length estimation method 100 beneficially exploits these differences to provide step length estimates that automatically and dynamically adjust for such different styles of locomotion without requiring separate detection of a change in gait and an associated switching between different locomotion profiles.
[0051] Specifically, the step length estimation method 100 involves continuously obtaining associated acceleration data from the inertial sensor(s) at S112.
[0052] The step length estimation method 100 then applies appropriate data/signal processing, at S114, to the received raw inertial data in order to extract estimates of localised two dimensional (2D) ‘horizontal’ motion (in this example velocity) components in orthogonal (e.g. North and East) directions.
[0053] As will be described in more detail later, the processing, in this example, involves the application of appropriate filtering to the raw data (e.g. using a stabilised strapdown Kalman or similar filter) to first produce an estimate of oriented inertial data in the form two dimensional (2D) acceleration components in orthogonal (e.g. North and East) directions. The orientated acceleration components, in this example, may then be filtered (if necessary) to produce smoothed acceleration signals in which the effect of any accelerometer bias or gravity leakage is removed or at least significantly inhibited. The (smoothed) orthogonal horizontal acceleration components are then integrated in the horizontal (e.g. North and East) axes to provide the horizontal velocity components which may also be filtered (if necessary) to produce smoothed localised orthogonal velocity components.
[0054] In this example, when a user makes a step, the step is detected as S116 based on the oriented sensor data arising from S114. It will be appreciated however that other step detection methods are possible that do not use the oriented sensor data in this way.
[0055] The step length estimation method 100 proceeds, when a step is detected at S116, with the application, at S118, of appropriate signal/data processing to the (smoothed) orthogonal motion (e.g. velocity) components to obtain respective parameters that are indicative of power (and hence energy consumption) in each orthogonal direction. In this example these parameters are referred to as ‘velocity powers’.
[0056] At S120, a mathematical model 130 is then applied, to a combination of both of the orthogonal velocity powers estimated at S118, to map the combined velocity power to a population specific estimated step length (i.e. the step length would remain the same, for the same velocity based input data, for any user of a given population of users).
[0057] It will be appreciated that whilst the underlying mathematical model 130 may remain the same for different populations of users the model 130 has a number of parameters that can, beneficially, be adjusted to improve the model 130 over time or to tailor it to take account of differences in step characteristics exhibited by different populations. For example, a population of athletes may be expected to have different step characteristics compared to a population representing average members of the public. Similarly a population with an unusually tall average height may be expected to have a different step characteristics compared to a population with an unusually short average height.
[0058] Optionally, therefore, each set of population specific parameters can form a respective population specific profile 132 that can be used as an input to the mathematical model to ensure that the step length estimates are appropriate tailored to a population that the user of the device forms part of.
[0059] Similarly, different population specific profiles 132 could be generated for different sensor placements. For example, one population specific profile 132 could be generated for a population of users that has the sensor located at the waist whereas another population specific profile 132 could be generated for a population of users that has the sensor located elsewhere on the body (e.g. near the chest in a jacket pocket) or on the head (e.g. built into a virtual reality headset, glasses, headphones or other headgear).
[0060] Where the step length method is implemented for a device that may be located (or has inertial sensors that may be located) in any of number of different locations (e.g. as part of an application on a smartphone), the population specific profile may be user configurable. For example, the user may be provided with an option in a settings menu of an application to set the location to any of a plurality of different possible locations each of which has a different respective population specific profile associated with it.
[0061] In this example, the population specific estimated step length provided at S120 is also be adjusted, at S122 (if necessary) to provide a user specific step length that is calibrated, based on user specific calibration data, to take account of user specific step characteristics (e.g. an unusually long or short step length) within the population. Optionally, therefore, user specific calibration data for each user can form part of a respective user specific profile 134 that can be used as an input to the calibration step S122 of the step length estimation method 100 in order to provide more accurate user specific step length estimation.
[0062] Thus, it can be seen that the above techniques can be combined through a map-matched particle filtering approach with motion analysis and classification with the potential to make inertial-only indoor tracking technically feasible in a much wider range of applications.
Step Length Estimation Device
[0063]
[0064] As shown, the user equipment 110 comprises a controller 210 for controlling the overall operation of the user equipment 110. The controller 210 is coupled to one or more sensors 220, a user interface 230, transceiver circuitry 240 with associated communication interfaces 250, and a memory 260.
[0065] Although not necessarily shown in
[0066] The sensor(s) 220 comprise one or more inertial/direction sensors 222 for sensing motion and orientation and for providing associated data from which the user equipment 110 can analyse and classify user motion appropriately, for example by determining when a step is taken, estimating a step length of the user over one or multiple steps, and calculate an associated bearing. The inertial/direction sensors 220, in this example, comprise a multi-axis (e.g. three orthogonal axes) accelerometer for measuring linear acceleration in different directions, one or more gyroscopes for measuring angular velocity, and a magnetometer based direction sensor. It will be appreciated, however, that any suitable inertial sensors may be used and that it may not be necessary for all such sensors to be present.
[0067] Where the user equipment 110 is only required to track movement in substantially two-dimensions, the inertial sensors 222 may be sufficient to achieve this. Such two-dimensional tracking may, for example, be sufficient in a building where there is little or no level ambiguity (e.g. a single floored building), or in a multi-floored building where movement around each floor is tracked separately in two-dimensions with an external input (e.g. from a user or a beacon) used to confirm which floor the user is on (and hence which floor plan representation to use from the mapping data). However, where the device 110 may be required to track movement in three-dimensions the sensors 220 may comprise one or more other sensors 224 (e.g. a pressure sensor or the like) to provide motion/position related data representing altitude (movement up/down in a ‘z’ direction orthogonal to the x and y directions). Other sensors 224 that may be provided for the user equipment 110 may, alternatively or additionally, include any other suitable externally connected or internal sensor for providing associated sensor data (e.g. a temperature sensor, infra-red sensor, light sensor, camera and/or the like).
[0068] The user interface 230 comprises user input devices 232 for receiving input from the user and user output devices 234 for providing output to the user. The user input devices 232 may comprise any suitable input devices including, for example, one or more audio input devices (e.g. a microphone), a touch sensitive display, one or more function keys/buttons, a fixed keypad, a camera and/or the like. The user output devices 234 may comprise any suitable output devices including, for example, one or more audio output devices (e.g. a speaker), a visual display (which may be provided by a touch sensitive display), one or more light sources (e.g. a camera flash), one or more sources of tactile feedback (e.g. a vibration generator) and/or the like.
[0069] The transceiver circuitry 240 is operable to transmit signals to, and to receive signals from, one or more other communication devices via one or more corresponding communication interfaces 250 and associated antenna. In this example, the user equipment 110 comprises one or more radio interfaces 252 via which communication to/from other radio communication enabled devices can be made, and one or more positioning system interfaces 254 for acquiring global positioning system (GPS) signals (or other similar positioning signals) which the user equipment 110 can analyse to providing associated measurement/position data. The radio interface(s) 252 may, for example, be configured for facilitating: communication via cellular base stations with other similar user equipment; communicating with radio beacons forming part of a location system for enhanced location tracking; near field, Wi-Fi, and/or Bluetooth communication; and/or the like.
[0070] The controller 210 is configured to control the overall operation of the user equipment 110 by, in this example, program instructions or software instructions stored within the memory 260. As shown, these software instructions include, among other things, an operating system 262, a communications control module 264, and a step detection and analysis module 266.
[0071] The communications control module 262 controls transmission and receipt of user equipment 110 communications from and to the other communication entities such as cellular base station, Wi-Fi access points, radio beacons, positioning system entities (e.g. satellites) etc.
[0072] The step detection and analysis module 266 is configured to detect steps made by the user from inertial data provided from the inertial sensors 222 and to process the inertial data to implement the step length estimation method 100 of
[0073] The acceleration signal processing module 270 is configured to process acceleration data from the inertial sensors 222 using appropriate acceleration signal processing filters 272, 274. As shown in
[0074] The velocity signal processing module 280 is configured to generate velocity data from the acceleration data provided by the inertial sensors 222 by means of one or more integrator(s) 282, to process the generated velocity data using one or more velocity signal processing filters 284, and to calculate estimated velocity powers using a power estimation module 286. As shown in
[0075] The step length calculation module 290 is configured to calculate estimates of a population step length for an average member of a given user population based on the velocity power estimates and a population specific parameter set 292 stored in the memory 260 (and that forms a corresponding population profile 132 shown in
[0076] In the example described above, the user equipment includes transceiver circuitry. Typically this circuitry will be formed by dedicated hardware circuits. However, in some embodiments, part of the transceiver circuitry may be implemented as software run by the corresponding controller.
[0077] In the above example, a number of software modules, sub-modules filters and other functions were described as being stored in the memory. As those skilled in the art will appreciate, these modules, sub-modules, filters and functions may be provided in compiled or un-compiled form and may be supplied to the user equipment as a signal over a computer network, or on a recording medium. Moreover whilst these modules, sub-modules, filters and functions may be provided in this way for certain applications, for example where an existing system has been modified to implement the step length calculation method, in other applications, for example in systems designed with the features described in mind from the outset, these modules, sub-modules, filters and functions may be built into the overall operating system or code and so these modules, sub-modules, filters and functions may not be discernible as discrete entities. Further, the functionality performed by part or all of the software may be performed using one or more dedicated hardware circuits.
Step Length Estimation
[0078]
[0079] As seen in
[0085] These stages will now be described in more detail, by way of example only, with reference to
Kalman Filtering
[0086] As seen in
[0087] Thus, the Kalman filter provides accelerometer signals that have been transformed into the orthogonal (North and East) components 302.
[0088] In the method described a 15-state error-state Kalman filter is used with periodic stabilising zero-position observations. Whilst this leads to a solution which may be less accurate over short periods of time than one without the zero-position observations it tends to provide improvements in long-term orientation and position stability. Specifically, if a user is stationary, then periodically (e.g. every second or so) the Kalman filter is passed a weak observation indicating that the user has not moved. Since all sources of drift (e.g. arising from accelerometer bias and/or gravity leakage) can lead, eventually, to relatively large position errors building up, the use of the zero-position observations have the effect of gently eliminating the sources of drift albeit at the cost of the filter itself not returning a meaningful position or velocity estimate. Nevertheless, for heading, orientation and local velocity changes (which is what the proposed step length estimation method uses) this technique is sufficient.
Obtaining Horizontal Velocity Estimates
[0089] The estimated oriented orthogonal (North and East) horizontal accelerometer components 302 are continually filtered at S324 using any suitable filter(s) (in this example high pass filter(s)) to produce smoothed orthogonal acceleration signal components 304 for which any accelerometer bias and/or gravity leakage has been eliminated or at least significantly inhibited.
[0090] The smoothed acceleration signal components 304 are then integrated at S326 (e.g. by means of the integrator(s) 282 of
[0091] The filters used for smoothing the acceleration and velocity signals are, in this example, 2-tap Butterworth infinite impulse response (IIR) filters designed with a 0.005 fractional cut-off (3 dB point) frequency for 100 Hz signals. Nevertheless, many similar filters could be used in their place, or a single filtering/integration operation combining both the filtering and integration could be used.
[0092] It will be appreciated, that although the outputs are referred to as estimates of “horizontal velocity components” they represent locally accurate estimates of velocity as any unchanging or slowly changing systematic components (referred to as “direct current” (DC) components) of the velocity signal are, in effect, removed or at least significantly suppressed by the filtering.
Obtaining Velocity Powers
[0093] The estimated horizontal velocity components 308 (v.sub.N, v.sub.E) are stored in a rolling buffer of length T.sub.buffer (a buffer of 1-second length is typically sufficient). On detection of a step the most recent of these (i.e. those in the most recent T.sub.buffer period) are used to calculate estimates of the orthogonal power components 310 (P.sub.N, P.sub.E) at S330.
[0094] The power estimation is approximated, for each of the orthogonal directions, by respective calculation of the variance with a length ‘n’ window function 309 (in this example a generalised cosine window such as a Hamming window or the like) with coefficients h.sub.i. The respective power P in each orthogonal direction is estimated as:
[0095] Where v.sub.i is the instantaneous velocity component (for the orthogonal direction in question) at time point i in the n length window.
[0096] It will be appreciated that the power parameters P need not represent an accurate estimate of actual power but can simply provide a systematically consistent indication of the power for different locomotory styles.
Calculating an Uncalibrated Step Length
[0097] At S332, the uncalibrated step length 312 (SL.sub.UNCAL) is calculated, based on a sum of the orthogonal power components (P.sub.N, P.sub.E) and a population specific parameter set 311/profile 132 comprising the population specific denominator of the population specific decimal or fractional power (1/α.sub.vP), the population specific coefficient (k.sub.vP) and the population specific offset (Offset.sub.pop) as follows:
SL.sub.uncal=k.sub.vP×(P.sub.N+P.sub.E).sup.1/α.sup.
[0098] A set of parameters found to be particularly accurate both for a specific population of users and more generally for the wider population is: [0099] A population specific decimal or fractional power of 1/10 or 0.1 (i.e. α.sub.vP=10); [0100] A population specific coefficient (k.sub.vP) of 3; and [0101] A population specific offset (Offset.sub.pop) of 1.3
[0102] This population specific parameter set was derived for a population of eighteen users specifically selected to present a range of different body types and walking styles as gauged by gender, height, weight, age and fitness. The selected users took part in a trial in which each user walked in a straight line over a set distance multiple times at different speeds, ranging from a very slow shuffle to a brisk power walk. The number of steps taken for each pass was then counted and an average step length estimated based on this.
[0103] The data from fifteen of the users was used for determining the population specific parameter set and the data from the other three users was used independently for validation of the parameter set.
[0104] It was found that the resulting population specific parameter set provided sufficient correlation between the results provided by the simple metric for uncalibrated step length 312 (SL.sub.UNCAL) described above using the inertial data, and the actual average step length calculated for the trial group.
[0105] Accordingly, this approach produces an estimate that is reasonably accurate for the general population.
Calculating a Calibrated (User Specific) Step Length
[0106] Nevertheless, the estimate can be further improved significantly by applying, at S334, an individual (user specific) calibration offset 313 (Offset.sub.user to the uncalibrated step length 312 (SL.sub.UNCAL) to determine a calibrated (user specific) step length 314 (SL.sub.CAL). Specifically, an individual's calibrated step length is produced by adding the individual (user specific) calibration offset 313 (Offset.sub.user)—which may be negative or positive—to the uncalibrated step length 312 (SL.sub.UNCAL) as follows:
SL.sub.cal=SL.sub.uncal+Offset.sub.user
[0107] The individual (user specific) calibration offset 313 (Offset.sub.user) can be calculated using a fairly straightforward initial calibration procedure in which the user's steps are counted as the user walks a short, known length, path and the actual average step length calculated. The uncalibrated step length is then calculated as described above with reference to
[0108] However, it will be appreciated that other methods could be used in addition or as an alternative to using a separate initial calibration procedure, for example methods involving ongoing (‘dynamic’) assessment and refinement of the calibration offset based on journeys made by the user when walking with a good GPS signal.
MODIFICATIONS AND ALTERNATIVES
[0109] Detailed embodiments have been described above. As those skilled in the art will appreciate, a number of modifications and alternatives can be made to the above embodiments whilst still benefiting from the inventions embodied therein.
[0110] The portable device in which the step length estimation method is used may be a stand-alone dedicated tracking device or may be integrated as part of another device. For example, the portable device may form part of a dedicated fitness tracker device or part of more generic user equipment (UE) for a cellular or similar network for example, a mobile communications device such as a mobile (cellular) telephone, smartphone, personal digital assistant, laptop, notebook, tablet computer, and/or the like.
[0111] It will be appreciated that whilst the described method is particularly advantageous for devices/sensors worn at the waist (or elsewhere on the torso) of a user, the method can, nevertheless, be adapted to provide advantageous step length estimation for devices that are worn at (or that receive inertial data from sensors that are worn at) other positions on a user's body. Such a method can, for example, provide advantages in any application in which as user's walking style may change dynamically over time—especially over a number of steps during such a dynamic change of walking style.
[0112] It will be appreciated that whilst in some devices the inertial sensor may be integrated together in the same device as a processor (or dedicated circuitry) configured to implement the step length estimation method, the sensor may be provided remotely and may provide the inertial data that it generates via a wireless or wired connection.
[0113] In the above description, the controller 210 is described for ease of understanding as having a number of discrete software modules. However, it will be appreciated that the functionality performed by part or all of the software may be performed using one or more dedicated hardware circuits for example using one or more dedicated integrated circuits such as an application specific integrated circuit (ASIC) or the like. The use of software modules is, nevertheless, preferred as it facilitates the updating of the step length estimation method.
[0114] It will be appreciated that the controller 210 referred to in the description may comprise any suitable controller such as, for example an analogue or digital controller. Each controller may comprise any suitable form of processing circuitry including (but not limited to), for example: one or more hardware implemented computer processors; microprocessors; central processing units (CPUs); arithmetic logic units (ALUs); input/output (IO) circuits; internal memories/caches (program and/or data); processing registers; communication buses (e.g. control, data and/or address buses); direct memory access (DMA) functions; hardware or software implemented counters, pointers and/or timers; and/or the like.
[0115] Various other modifications will be apparent to those skilled in the art and will not be described in further detail here.