**A DEVICE AND METHOD FOR MORE ACCURATELY CHARACTERIZING THE MOVEMENTS OF A PEDESTRIAN**

*;*

**G06F17/10***;*

**G01C5/06***;*

**G01C21/16***;*

**G01C21/20***;*

**G01C22/00**

**G06K9/00**US20120136573A1 | 2012-05-31 | |||

EP1253404A2 | 2002-10-30 |

MINGRONG REN ET AL: "A Novel Pedestrian Navigation Algorithm for a Foot-Mounted Inertial-Sensor-Based System", SENSORS, vol. 16, no. 2, 21 January 2016 (2016-01-21), pages 139, XP055422767, DOI: 10.3390/s16010139

ANONYMOUS: "Naismith's rule", WIKIPEDIA, 30 March 2017 (2017-03-30), pages 1 - 8, XP055423016, Retrieved from the Internet

ANONYMOUS: "Tobler's hiking function", WIKIPEDIA, 20 February 2017 (2017-02-20), pages 1 - 4, XP055423018, Retrieved from the Internet

YUNKI KIM ET AL: "Height estimation scheme of low-cost pedestrian dead-reckoning system using Kalman Filter and walk condition estimation algorithm", 2013 IEEE/ASME INTERNATIONAL CONFERENCE ON ADVANCED INTELLIGENT MECHATRONICS, July 2013 (2013-07-01), pages 1492 - 1497, XP055424184, ISSN: 2159-6247, ISBN: 978-1-4673-5319-9, DOI: 10.1109/AIM.2013.6584306

MAKOTO TANIGAWA ET AL: "Drift-free dynamic height sensor using MEMS IMU aided by MEMS pressure sensor", (WPNC '08) 5TH, IEEE, 27 March 2008 (2008-03-27), pages 191 - 196, XP031247847, ISBN: 978-1-4244-1798-8

BOLANAKIS DIMOSTHENIS E ET AL: "Temperature influence on differential barometric altitude measurements", 2015 IEEE 8TH INTERNATIONAL CONFERENCE ON INTELLIGENT DATA ACQUISITION AND ADVANCED COMPUTING SYSTEMS: TECHNOLOGY AND APPLICATIONS (IDAACS), IEEE, vol. 1, 24 September 2015 (2015-09-24), pages 120 - 124, XP032820725, ISBN: 978-1-4673-8359-2, [retrieved on 20151130], DOI: 10.1109/IDAACS.2015.7340711

KENNEDY, P, WILDERNESS RULES, 1998, Retrieved from the Internet

AITKEN, ROBERT: "Ph.D. Thesis", 1977, UNIVERSITY OF ABERDEEN, article "Wilderness Areas in Scotland"

LANGMUIR, ERIC: "Mountain Training England; Mountain Training Scotland", 2013, article "Mountaincraft and Leadership; A Handbook for Mountaineers and Hillwalking Leaders in the British Isles", pages: 38 - 39

CLAIMS 1 . A device (300a, 300b), comprising: - a communication link to a first sensor (310a, 310b), said first sensor being located within a housing carriable by a pedestrian, configured to obtain measured values of a first set of data representative of a speed of the pedestrian, or a derivative thereof; - a communication link to a second sensor (320a, 320b), said second sensor being located within a housing carriable by the pedestrian, configured to obtain measured values of a second set of data representative of an altitude of the pedestrian, or a derivative thereof; - a processing logic (330a, 330b) configured to calculate estimated values of a state vector of the pedestrian comprising: o a first element representative of the speed of the pedestrian, or a derivative thereof; o a second element representative of the altitude of the pedestrian, or a derivative thereof; o and a path slope; said processing logic being configured to calculate estimated values of the state vector based on said measured values of the first set of data said measured values of the second set of data, and a model of the pedestrian motion comprising a relationship between at least a speed of the pedestrian or a derivative thereof and a path slope or a derivative thereof. 2. The device of claim 1 , wherein the processing logic is configured to perform successive steps of calculation of the state vector, each step (k) comprising: - calculating predicted values of the state vector at step (k), based on predicted values at the output of one or more preceding steps (k-1 , k-2...), and said model of the pedestrian; - modifying values of the state vector at step (k), in order to minimize a difference between observed values of the first and second elements, based on said first and second sets of data, and predicted values of the first and second element at step (k). 3. The device of claim 2, wherein: - the first set of data is associated with a first uncertainty value, based on a measurement precision of the first sensor; - the second set of data is associated with a second uncertainty value, based on a measurement precision of the second sensor; - the processing logic is configured to modify values of the state vector at step (k), in order to minimize the difference between observed and predicted values of the first and second elements at step (k) using said first uncertainty value, and said second uncertainty value. 4. The device of one of claims 2 or 3, wherein the processing logic comprises one or more of a Kalman filter, or extended Kalman filter, an unscented Kalman filter, a central difference Kalman filter, or a particle filter. 5. The device of one of claims 1 to 4, wherein the processing logic is configured to detect a change of the pace of the pedestrian. 6. The device of claim 5, wherein the processing logic is configured to detect said change of the pace of the pedestrian, based on a comparison between a speed of the pedestrian in the state vector, and a reference speed of the pedestrian. 7. The device of one of claims 5 or 6, dependent upon claim 2, wherein the processing logic is configured, at each time step, to: - determine, if the user is performing one of walking or running; - if the user is neither walking nor running, set the value of the first element representative of the speed of the pedestrian to a value representative of null speed; - if the user is walking or running, and a path change is detected, calculating a predicted value of the first element at time step (k) based on values of the first element at one or more preceding steps (k-1 , k-2, ...), and adjusting said relationship between the speed of the pedestrian and the path slope based on the values of said first element, and said path slope, at the output of one or more of step k, and successive steps (k+1 , k+2, ...); - if the user is walking or running, and no path change is detected, calculating a predicted value of the first element representative of the speed of the pedestrian at time step (k) based on values of path slope at one or more preceding steps (k-1 , k-2, ...), and said relationship between the speed of the pedestrian and the path slope. 8. The device of one of claims 1 to 5, wherein said relationship between a speed the pedestrian and a path slope is one of a Tobler's hiking function or a Naismith's rule with or without Tranter, Aitken or Langmuir corrections. 9. The device of claim 8, wherein said one of a Tobler's hiking function or a Naismith's rule with or without Tranter, Aitken or Langmuir corrections is parameterized using one or more of an age of the pedestrian, a gender of the pedestrian, an height of the pedestrian, and a weight or a body mass index of the pedestrian. 10. The device of one of claims 8 to 9, wherein said Tobler's hiking function or a Naismith's rule with or without Tranter, Aitken or Langmuir corrections is parameterized by a pace of the pedestrian. 1 1 . The device of one of claims 1 to 10, wherein the first sensor is a pedometer, and the first set of data is one of a step count or a step frequency. 12. The device of one of claims 1 to 1 1 , wherein the processing logic is configured to continuously estimate components of a position and/or a speed of the pedestrian. 13. The device of claim 12, wherein the processing logic is configured to: - detect if a GNSS application is ON or OFF; - receive a position of the pedestrian from the GNSS application, whenever said GNSS application is ON; - store a last position of the user received from the GNSS application, when said application is turned OFF; - estimate, whenever said GNSS application is OFF, a distance crossed by the user; - when said GNSS application is turned ON, calculate a start position of the user, using said last position of the user, and said distance crossed by the user. 14. The device of one of any preceding claims, configured to output one or more of a step count of the pedestrian, a speed of the pedestrian, a distance crossed by the pedestrian, an uphill/downhill elevation and a path slope. 15. A method (800) comprising: - using (810) a first sensor, said first sensor being located within a housing carriable by a pedestrian, to obtain measured values of a first set of data representative of a speed of the pedestrian, or a derivative thereof; - using (820) a second sensor, said second sensor being located within a housing carriable by the pedestrian, to obtain measured values of a second set of data representative of an altitude of the pedestrian, or a derivative thereof; - calculating (830) estimated values of a state vector of the pedestrian comprising: o a first element representative of the speed of the pedestrian, or a derivative thereof; o a second element representative of the altitude of the pedestrian, or a derivative thereof; o and a path slope; wherein calculating estimated values of a state vector of the pedestrian is based on said measured values of the first set of data, said measured values of the second set of data, and a model of the pedestrian motion comprising a relationship between at least a speed of the pedestrian or a derivative thereof and a path slope or a derivative thereof. 1 6. A computer program product, stored on a non-transient computer readable medium, comprising computer code instructions configured to: - obtain measured values from a first sensor, said first sensor being located within a housing carriable by a pedestrian, to obtain measured values of a first set of data representative of a speed of the pedestrian, or a derivative thereof; - obtain measured values from a second sensor, said second sensor being located within a housing carriable by a pedestrian, to obtain measured values of a second set of data representative of an altitude of the pedestrian, or a derivative thereof; - calculate estimated values of a state vector of the pedestrian comprising: o a first element representative of the speed of the pedestrian, or a derivative thereof; o a second element representative of the altitude of the pedestrian, or a derivative thereof; o and a path slope; wherein said computed code instructions are configured to calculate estimated values of a state vector of the pedestrian based on said measured values of the first set of data, said measured values of the second set of data, and a model of the pedestrian motion comprising at least a relationship between a speed of the pedestrian or a derivative thereof and a path slope or a derivative thereof. 17. A state vector for defining the movement of a pedestrian, comprising: - a first element representative of a speed of a pedestrian, or a derivative thereof; - a second element representative of an altitude of the pedestrian, or a derivative thereof; - a path slope; wherein said elements are derived from: - measured values of a first set of data representative of the speed of the pedestrian, or a derivative thereof, said measured values of the first set of data being obtained by a first sensor located within a housing carriable by a pedestrian; - measured values of a second set of data representative of an altitude of the pedestrian, or a derivative thereof, said measured values of the second set of data being obtained by a second sensor located within a housing carriable by the user; and - a model of the pedestrian motion comprising at least a relationship between a speed of the pedestrian or a derivative thereof and a path slope or a derivative thereof. |

MOVEMENTS OF A PEDESTRIAN

FIELD OF THE INVENTION

[0001] The present invention relates to the field of motion tracking. More specifically, it relates to a determination of the movement of a pedestrian that remains accurate, even in changing environments, especially if the pedestrian walks on a trajectory with different slopes.

BACKGROUND PRIOR ART

[0002] Motion tracking may relate to the monitoring of characteristics of the movement of a pedestrian. For example, motion tracking may be used to calculate a trajectory of a pedestrian, or to calculate a speed of a pedestrian. Motion tracking is also used in a number of applications related to the movement of a pedestrian, such as monitoring a speed of a pedestrian practicing sport, computing/monitoring calories burned, or any application that relies on observing movements of a pedestrian.

[0003] Motion tracking functions can be implemented in a number of different devices. These devices encompass specific devices, such as smart watches or smart wristbands, loT devices (built on a shirt as example) or programmable devices or the like (for example, smartphones) with a motion tracking application. Motion tracking functions usually use motion signals from motion sensors in one or more devices worn by the pedestrian. Such motion sensors may be for example accelerometers, gyros and/or magnetometers, and may be packaged in many different formats. For example, they may be packaged as MEMS (MicroElectroMechanical Systems) sensors.

[0004] A pedometer is a sensor that counts a number of steps, or a step frequency, of a pedestrian. A pedometer may be implemented in a software form, by analyzing signals from various sensors. For example, software can be configured to analyze signals from an accelerometer, and detect the pace or step frequency of the pedestrian by analyzing the accelerometer signals. This is possible, because each step of the pedestrian can be characterized by successive highs and lows in the acceleration signals, following the movements of the hips, wrist or chest of the pedestrian.

[0005] Pedometer measurements can be used to detect speed and/or movement of a pedestrian. For example, European patent application published under number EP1253404 discloses a method for pedestrian trajectory tracking (so-called "Pedestrian Dead Reckoning ") that uses the horizontal acceleration of the pedestrian to characterize the steps of the pedestrian, and, using the steps, the displacements of the pedestrian.

[0006] Such techniques for estimating a distance crossed based on a step count, or step frequency, require knowledge of a stride length of the pedestrian for converting a step count into distance, or a step frequency into speed. Some basic methods or devices rely on standard stride lengths. However such standard stride lengths provide very coarse approximations of the distance crossed, or speed of the pedestrian. Indeed, different pedestrians may have very different stride lengths for a given stride frequency, and stride length changes when stride frequency changes, not to mention that environmental factors such as ground slope also affect stride length.

[0007] These techniques allow an accurate tracking of a movement of a pedestrian using a pedometer when a pedestrian is moving on flat ground. However, these techniques do not properly handle the possibility for a pedestrian to move on a path with a slope, for example when he/she is performing a hike. This decreases the accuracy of stride length and pace determination, because the slope of the path of the pedestrian modifies both the stride length, and the pace of the pedestrian. The above-mentioned techniques thus fail to accurately and reliably take into account the effect of the slope on the movement of the pedestrian. This issue more generally arises, in all applications that monitor the movements of a pedestrian, when using measurements of any physical field related to the speed of the pedestrian.

[0008] There is therefore the need for a device and method to accurately monitor movements of a user, whatever the current slope of the path where the pedestrian is moving and the pace of the pedestrian.

SUMMARY OF THE INVENTION

[0009] To this effect, the invention discloses a device comprising: a communication link to a first sensor, said first sensor being located within a housing carriable by a pedestrian, configured to obtain measured values of a first set of data representative of a speed of the pedestrian, or a derivative thereof; a communication link to a second sensor, said second sensor being located within a housing carriable by the pedestrian, configured to obtain measured values of a second set of data representative of an altitude of the pedestrian, or a derivative thereof; a processing logic configured to calculate estimated values of a state vector of the pedestrian comprising: a first element representative of the speed of the pedestrian, or a derivative thereof; a second element representative of the altitude of the pedestrian, or a derivative thereof; and a path slope; said processing logic being configured to calculate estimated values of the state vector based on said measured values of the first set of data said measured values of the second set of data, and a model of the pedestrian motion comprising a relationship between at least a speed of the pedestrian or a derivative thereof and a path slope or a derivative thereof.

[0010] Advantageously, the processing logic is configured to perform successive steps of calculation of the state vector, each step (k) comprising: calculating predicted values of the state vector at step (k), based on predicted values at the output of one or more preceding steps (k-1 , k-2...), and said model of the pedestrian; modifying values of the state vector at step (k), in order to minimize a difference between observed values of the first and second elements, based on said first and second sets of data, and predicted values of the first and second element at step (k).

[0011] Advantageously, the first set of data is associated with a first uncertainty value, based on a measurement precision of the first sensor ; the second set of data is associated with a second uncertainty value, based on a measurement precision of the second sensor ; the processing logic is configured to modify values of the state vector at step (k), in order to minimize the difference between observed and predicted values of the first and second elements at step (k) using said first uncertainty value, and said second uncertainty value.

[0012] Advantageously, the processing logic comprises one or more of a Kalman filter, or extended Kalman filter, an unscented Kalman filter, a central difference Kalman filter, or a particle filter.

[0013] Advantageously, the processing logic is configured to detect a change of the pace of the pedestrian.

[0014] Advantageously, the processing logic is configured to detect said change of the pace of the pedestrian, based on a comparison between a speed of the pedestrian in the state vector, and a reference speed of the pedestrian.

[0015] Advantageously, the processing logic is configured, at each time step, to: determine, if the user is performing one of walking or running ; if the user is neither walking nor running, set the value of the first element representative of the speed of the pedestrian to a value representative of null speed ; if the user is walking or running, and a path change is detected, calculating a predicted value of the first element at time step (k) based on values of the first element at one or more preceding steps (k-1 , k-2, ...), and adjusting said relationship between the speed of the pedestrian and the path slope based on the values of said first element, and said path slope, at the output of one or more of step k, and successive steps (k+1 , k+2, ...) ; if the user is walking or running, and no path change is detected, calculating a predicted value of the first element representative of the speed of the pedestrian at time step (k) based on values of path slope at one or more preceding steps (k-1 , k-2, ...), and said relationship between the speed of the pedestrian and the path slope.

[0016] Advantageously, said relationship between a speed the pedestrian and a path slope is one of a Tobler's hiking function or a Naismith's rule with or without Tranter, Aitken or Langmuir corrections.

[0017] Advantageously, said one of a Tobler's hiking function or a Naismith's rule with or without Tranter, Aitken or Langmuir corrections is parameterized using one or more of an age of the pedestrian, a gender of the pedestrian, an height of the pedestrian, and a weight or a body mass index of the pedestrian.

[0018] Advantageously, said Tobler's hiking function or a Naismith's rule with or without Tranter, Aitken or Langmuir corrections is parameterized by a pace of the pedestrian.

[0019] Advantageously, the first sensor is a pedometer, and the first set of data is one of a step count or a step frequency.

[0020] Advantageously, the processing logic is configured to continuously estimate components of a position and/or a speed of the pedestrian.

[0021] Advantageously, the processing logic is configured to: detect if a GNSS application is ON or OFF; receive a position of the pedestrian from the GNSS application, whenever said GNSS application is ON; store a last position of the user received from the GNSS application, when said application is turned OFF; estimate, whenever said GNSS application is OFF, a distance crossed by the user; when said GNSS application is turned ON, calculate a start position of the user, using said last position of the user, and said distance crossed by the user.

[0022] Advantageously, the device is configured to output one or more of a step count of the pedestrian, a speed of the pedestrian, a distance crossed by the pedestrian, an uphill/downhill elevation and a path slope.

[0023] The invention also discloses a method comprising: using a first sensor, said first sensor being located within a housing carriable by a pedestrian, to obtain measured values of a first set of data representative of a speed of the pedestrian, or a derivative thereof ; using a second sensor, said second sensor being located within a housing carriable by the pedestrian, to obtain measured values of a second set of data representative of an altitude of the pedestrian, or a derivative thereof ; calculating estimated values of a state vector of the pedestrian comprising : a first element representative of the speed of the pedestrian, or a derivative thereof ; a second element representative of the altitude of the pedestrian, or a derivative thereof ; and a path slope ; wherein calculating estimated values of a state vector of the pedestrian is based on said measured values of the first set of data, said measured values of the second set of data, and a model of the pedestrian motion comprising a relationship between at least a speed of the pedestrian or a derivative thereof and a path slope or a derivative thereof.

[0024] The invention also discloses a computer program product, stored on a non- transient computer readable medium, comprising computer code instructions configured to : obtain measured values from a first sensor, said first sensor being located within a housing carriable by a pedestrian, to obtain measured values of a first set of data representative of a speed of the pedestrian, or a derivative thereof ; obtain measured values from a second sensor, said second sensor being located within a housing carriable by a pedestrian, to obtain measured values of a second set of data representative of an altitude of the pedestrian, or a derivative thereof ; calculate estimated values of a state vector of the pedestrian comprising : a first element representative of the speed of the pedestrian, or a derivative thereof ; a second element representative of the altitude of the pedestrian, or a derivative thereof ; and a path slope ; wherein said computed code instructions are configured to calculate estimated values of a state vector of the pedestrian based on said measured values of the first set of data, said measured values of the second set of data, and a model of the pedestrian motion comprising at least a relationship between a speed of the pedestrian or a derivative thereof and a path slope or a derivative thereof.

[0025] The invention also discloses a state vector for defining the movement of a pedestrian, comprising: a first element representative of a speed of a pedestrian, or a derivative thereof; a second element representative of an altitude of the pedestrian, or a derivative thereof; a path slope; wherein said elements are derived from: measured values of a first set of data representative of the speed of the pedestrian, or a derivative thereof, said measured values of the first set of data being obtained by a first sensor located within a housing carriable by a pedestrian; measured values of a second set of data representative of an altitude of the pedestrian, or a derivative thereof, said measured values of the second set of data being obtained by a second sensor located within a housing carriable by the user; and a model of the pedestrian motion comprising at least a relationship between a speed of the pedestrian or a derivative thereof and a path slope or a derivative thereof.

[0026] In an aspect, the invention relates to the characterization of the movements of a pedestrian. A number of applications, for example hike, require a good estimation of instantaneous speed-related and altitude-related sets of data. Speed-related and altitude-related sets of data can be measured respectively by speed-related and altitude-related sensors. However measures from such sensor are usually affected by noise, which reduces the precision of measurements. The invention allows obtaining precise estimations of speed-related and altitude-related sets of data, by defining a state vector of the pedestrian comprising speed-related and altitude-related sets of data, as well as a path slope. Estimations of the values of the state vector are obtained, over successive path steps, by measurements from speed-related and altitude-related sensors, and a model of the pedestrian comprising a relationship between a speed of the pedestrian and a path slope. Although the path slope is not directly measured, it advantageously allows, in combination with the model of the pedestrian motion, to perform an effective and accurate data fusion between speed- related and altitude-related sets of data.

[0027] Some advantages of the invention are listed below but it appears in an obvious manner for a person skilled in the art that other advantages are involved by such invention.

[0028] The invention implies a more precise monitoring of the movements of a pedestrian.

[0029] The invention allows a precise monitoring of the movements of a pedestrian, even using sensors having a limited precision.

[0030] The invention advantageously allows a precise monitoring of the movements of a pedestrian, even when no Radio Frequency-based (e.g no GNSS or other Radio- Frequency measurements allowing calculating a position) measurements are available.

[0031] The invention allows a precise determination of pedestrian stride and/or pace, taking into account the slope of the path that the pedestrian follows.

[0032] The invention is applicable to any kind of sensor providing measurements in relation with the speed of the user, or variation thereof.

[0033] The invention is applicable to any kind of sensor providing measurements in relation with the altitude of the user, or variation thereof.

[0034] The invention can be tailored to physical characteristics of a pedestrian.

[0035] The invention can be implemented using MEMS.

BRIEF DESCRIPTION OF THE DRAWINGS

[0036] The invention will be better understood and its various features and advantages will emerge from the following description of a number of exemplary embodiments, showed for illustration purposes only, and its appended figures in which:

- Figure 1 a and 1 b display two examples of devices suitable for adaptation to embody the invention; - Figure 2 displays a pedestrian performing hiking and wearing a device according to the invention;

- Figures 3a and 3b display two examples of a functional architecture of a device in two embodiments of the invention;

- Figure 4 displays two examples of functions for establishing a relationship between a speed of the user and a path slope in two embodiments of the invention;

- Figure 5 displays an example of an extended Kalman filtering in a number of embodiments of the invention;

- Figure 6 displays an example a logic of selection and execution of Kalman filters in a number of embodiments of the invention;

- Figure 7 displays an example of pace change detection in a number of embodiments of the invention;

- Figure 8 displays a flow chart of an example of a method of the invention.

DETAILED DESCRIPTION OF THE INVENTION

[0037] Figures 1 a and 1 b display two examples of devices suitable for adaptation to embody the invention.

[0038] Figure 1 a displays a first example of a device 100a suitable for adaptation to embody the invention. The device 100a is a watch with processing capabilities and thus belongs to the devices commonly called "Smart watches". The device 100a is configured to display the current time to a pedestrian wearing the watch, as well as information relative to the movement of the pedestrian, such as the instantaneous speed of the pedestrian, or the current pace of the pedestrian. The device 100a is designed to be attached on the wrist of the pedestrian. The device 100a can use a connection to external devices. For example, the device 100a can be configured to be connected to a smartphone, or connect to a remote server.

[0039] Figure 1 b displays a second example of a device 100b suitable for adaptation to embody the invention. The device 100b is a smartphone. The device 100b can be configured to perform any function usually performed by a smartphone, such as calling, installing applications, browsing websites, etc... The device 100b can be equipped with any connection which is adaptable to a smartphone, such as a Wi-Fi connection, Bluetooth connection, 3G, 4G and/or 5G connection, etc...

[0040] The device 100a or 100b can be used to monitor the activity of a pedestrian who is wearing the device, for example when the pedestrian is performing sport. Monitoring the activity of the pedestrian can be performed for example by displaying instantaneously to the pedestrian information relative to the movement of the pedestrian, or displaying average values for a whole sport session. For example, the device 100a or 100b can be configured to display an average speed, pace, and/or heart rate of the pedestrian, for instance during a sport session. It may also be configured to display information relative to the environment of the pedestrian, such as the outdoor temperature, air pressure and/or altitude. The device 100a or 100b may also be configured to send these values to be processed by an external device, such as a smartphone, any connected device, or a remote server.

[0041] In order to monitor the activity of the pedestrian, the device 100a or 100b comprises a first sensor to obtain measured values of a first set of data representative of a speed of the pedestrian, or a derivative thereof, and a second sensor configured to obtain measured values of a second set of data representative of an altitude of the pedestrian, or a derivative thereof. The first sensor may be for example an accelerometer, a pedometer, a heart rate sensor, a GNSS receiver, or more generally any kind of sensor that allows obtaining, directly or indirectly, a first set of data representative of a speed of the pedestrian, or a derivative thereof. The second sensor may be for example a barometric pressure sensor, a barometer, an accelerometer, a GNSS receiver, or more generally any kind of sensor that allows obtaining, directly or indirectly, measured values of a second set of data representative of an altitude of the pedestrian, or a derivative thereof.

[0042] The devices 100a and 100b are provided by means of examples only. However the invention is not restricted to these examples. Any suitable type or shape of device can be used. The invention is also applicable to a computing device that receives measurements data from devices such as the devices 100a and 100b.

[0043] The figure 2 displays a pedestrian performing hiking and wearing a device according to the invention.

[0044] Figure 2 represents a human pedestrian. However, it should be noted that the term "pedestrian" does not only designate a human pedestrian. Indeed, the invention is applicable to any kind of pedestrian, such as a human pedestrian, but also an animal or robot pedestrian, provided that the pedestrian is able to carry sensor housings and is moving by performing actual steps. In the following part of specification, walking may be used for any kind of such movement.

[0045] The pedestrian is hiking along a hike path 230. During the hike, he progressively goes through successive positions in the hike path, for example the positions 210, 21 1 , 212. At each position, the pedestrian is walking according to an immediate path slope of the hike path. For example, at position 210, the pedestrian is walking with a low positive path slope 220; at position 21 1 , the pedestrian is walking with a high positive path slope 221 ; at position 21 2, the pedestrian is walking with a high negative path slope 222.

[0046] At each position, the path slope has an impact on the speed, and more generally the movement, of the pedestrian. Indeed, the pedestrian is generally moving slowly, and with a low pace, at high positive slopes, because much effort is needed to climb the hike path at high positive slopes. The pedestrian also moves slowly, and with a low pace, at high negative slope, in order to avoid falling. On the contrary, the pedestrian is expected to move faster at a null or low negative or positive slope. The theoretical relationship between the slope and the speed of the user is explained with greater details with reference to figure 4. The knowledge of the path slope at every instant thus provides useful information regarding the movement of the user, and vice versa. However the instantaneous path slope of the hike path is a priori unknown. Therefore, one of the objectives of the invention is to constantly estimate the instantaneous path slope of the path of the pedestrian using available measurements, and use the theoretical relationship between the slope and the speed of the user in order to perform data fusion between the measurements.

[0047] Figures 3a and 3b display two examples of a functional architecture of a device referring to two potential embodiments of the invention.

[0048] Figure 3a displays a first example of a functional architecture of a device 300a in a first embodiment of the invention. The device 300a is intended to be carried by the user, and may be for example one of the devices 100a and 100b. According to various embodiments of the invention, the device 300a may be for example a smartphone, a smartwatch, or any suitable device comprising sensors and processing capabilities, carriable by or associated to the user. The sensors may be carried either directly (for example through a wrist) or indirectly (for example if the sensor is tied to a shoe, worn by the pedestrian) by the pedestrian.

[0049] The device 300a comprises a first sensor 310a configured to obtain measured values of a first set of data representative of a speed of the pedestrian, or a derivative thereof. Thus, the first sensor may be any sensor that provides information directly or indirectly related to the speed of the user.

[0050] In the application, the speed of the pedestrian is a speed of the pedestrian in a 3D fixed frame of reference. Thus, the estimation of the speed of the pedestrian at successive time steps allows calculating the total distance walked or ran by the pedestrian. In the application, the "speed" of the pedestrian generally describes the norm of the velocity of the pedestrian in a 3D frame of reference. Thus, the estimation of the speed of the pedestrian at successive time steps allows calculating the total distance walked or ran by the pedestrian in this frame of reference. The "speed" of the pedestrian may also describe the components of the velocity of the pedestrian in a 3D frame of reference. Thus, the estimation of the speed of the pedestrian at successive time steps allows calculating the total distance walked or ran by the pedestrian along each axis of this frame of reference.

[0051] In an embodiment of the invention, the first sensor 310a is an accelerometer (for example a 1 -axis, a 2-axis or a 3-axis accelerometer). The first set of data may comprise raw measurements from the accelerometer, a norm of the acceleration of the user, accelerometer measurements on a single axis, or any set of data directly or indirectly obtained by the accelerometer which is relative to the acceleration of the user.

[0052] In another embodiment of the invention, the first sensor 310a is a pedometer, and the first set of data may be one of a step frequency or pace, step count, or a combination thereof. In the course of the application, a sensor is defined as a pedometer, if it outputs a step count or a step frequency. The invention is applicable to any kind of pedometer, for example a pedometer comprising an accelerometer, and processing capabilities to determine a step frequency or step count based on accelerometer measurements. The invention is also applicable to an accelerometer with pedometer function, which outputs both acceleration of the pedestrian, and a step count or step frequency. The invention is also applicable to a pedometer comprising a mechanical assembly, such as a spring-suspended lever arm, and processing capabilities to determine a step frequency or step count based on measurements of the mechanical assembly movements.

[0053] In yet another embodiment of the invention, the first sensor is a GNSS receiver, and the first set of data one of a GNSS estimate speed or GNSS estimated acceleration.

[0054] More generally, the first sensor may be any kind of sensor configured to obtain measured values of the first set of data representative of the speed of the pedestrian, or a derivative thereof, when the first sensor is worn by the pedestrian or carried by the pedestrian.

[0055] The device 300a comprises a second sensor 320a configured to obtain measured values of a second set of data representative of an altitude of the pedestrian, or a derivative thereof.

[0056] In an embodiment of the invention, the second sensor 320a is a barometer. The second set of data may be for example an air pressure, an absolute altitude, or a relative altitude, or a combination thereof. A relative altitude can be calculated directly from air pressure, while an absolute altitude can be obtained by performing a difference between air pressure, and a reference air pressure at a reference altitude. [0057] In another embodiment of the invention, the second sensor 320a is a GNSS receiver, and the second set of data is a satellite-based altitude of the user.

[0058] In yet another embodiment of the invention, the second sensor 320a is an accelerometer, and the second set of data is one of a vertical acceleration of the user measured by the accelerometer, or a vertical speed of the user obtained from the accelerometer.

[0059] In yet another embodiment of the invention, the second sensor 320a is a thermometer. Variations of altitude can be inferred from variation of temperature. It is also possible to obtain an evaluation of the altitude of the pedestrian from a comparison between the measured temperature and a measurement of temperature performed at a meteorological station of known altitude, for example using the ideal gaz law (PV = nRT), or a gradient of temperature.

[0060] In a number of embodiments of the invention, the second sensor 320a is complemented with a further sensor which provides measurements related to the altitude of the pedestrian. For example, the second sensor 320a can be a barometer, and the device 300a can further comprise a thermometer. Measurements of altitude, or a derivative thereof, can be obtained by fusing measurements of pressure and altitude.

[0061] More generally, the second sensor may be any kind of sensor configured to obtain measured values of the second set of data representative of the altitude of the pedestrian, or a derivative thereof, when the second sensor is worn by the user or carried by the user.

[0062] In a number of embodiments, the measurements rely on a first source of data and a second source of data, rather than a first and a second sensor. The first source of data is related to speed or a derivative thereof. The second source of data is related to altitude or a derivative thereof. According to various embodiments of the invention, the first and second sources of data are provided by first and second sensor respectively. In other embodiments of the invention, the first and second sources of data are provided by a first and a second output of a single sensor. For example, the first source of data can be a horizontal acceleration sensed by an accelerometer, and the second source of data a vertical acceleration sensed by the same accelerometer.

[0063] The device 300a further comprises a processing logic 330a configured to calculate estimated values of a state vector of the pedestrian comprising a first element representative of the speed of the pedestrian, or a derivative thereof, a second element representative of the altitude of the pedestrian, or a derivative thereof, and a path slope, based on said measured values of the first set of data, said measured values of the second set of data, and a model of the pedestrian motion comprising a relationship between at least a speed of the pedestrian or a derivative thereof and a path slope or a derivative thereof.

[0064] According to various embodiments of the invention, the model may define a relationship between a speed of the pedestrian and the current path slope. In other embodiments of the invention, the model may define a relationship between other values related to the speed and the path slope. For example, the model may define a relationship between the acceleration and the derivative of the path slope, or the acceleration and a combination of the path slope and the derivative of the path slope. The relationships defined in the model may also comprise additional parameters. For example, the model may define a relationship between the speed and a function of the path slope and the temperature (for example if the pedestrian is expected to walk slowly at low temperature). The model may also integrate other parameters such as the wind direction and speed, the humidity, or the type of pavement of the path, if such information is available.

[0065] The state vector used in the invention is remarkable in that is incorporates the path slope, which is not directly measured by sensors. The presence of the path slope within the state vector allows, along with the model of the pedestrian, to perform a more efficient and accurate data fusion between the first element, representative of the speed of the pedestrian, or a derivative thereof, and the second element, representative of the altitude of the pedestrian, or a derivative thereof, and therefore obtain more reliable values of the first and the second elements.

[0066] In a number of embodiments of the invention, the first element and the first set of data belong to the same type of data. For example, the first set of data and the first element may be both a stride frequency of the pedestrian. In other embodiments of the invention, the first element and the first set of data belong to different types of data, although they are both in relation to the speed of the user. For example, the first set of data can be a stride frequency, while the first element is a speed of the pedestrian.

[0067] In a number of embodiments of the invention the second element and the second set of data belong to the same type of data. For example, the second set of data and the second element may be both a total air pressure. In other embodiments of the invention, the second element and the second set of data belong to different types of data, although they are both in relation to the altitude of the user. For example, the second set of data can be a total air pressure, while the second element is a contribution of altitude to air pressure.

[0068] According to various embodiments of the invention, the processing logic 330a may be a processor operating in accordance with software instructions, software instructions to be loaded by a processor, a hardware configuration of a processor, or a combination thereof. It should be understood that any or all of the functions discussed herein may be implemented in a pure hardware implementation and/or by a processor operating in accordance with software instructions. It should also be understood that any or all software instructions may be stored in a non-transitory computer-readable medium.

[0069] The path slope defines the current slope of the path the pedestrian is walking or running in. The value of the path slope is an angle, and may be expressed using different conventions. For example, the path slope may be defined in degrees or radians. The angle of path slope is usually calculated from a horizontal plane. In a number of embodiments of the invention, the path slope has a null value for a horizontal path, a positive value for a climbing path, and a negative value for a descending path. For example, referring back to figure 2, the angles 220 and 221 have a positive value, and represents the path slope of a climbing path, while angle 222 has a negative value, and represents the path slope of a descending path.

[0070] The processing logic 330a is configured to calculate, at successive time steps, estimated values of the state vector of the pedestrian. In a number of embodiments of the invention, the state vector comprises, in addition to the first set of data, the second set of data, and the path slope, other relevant values such as the pace of the user, the horizontal acceleration or the vertical acceleration of the user.

[0071] In a number of embodiments of the invention, the successive time steps can be a number with successive values 1 , 2, ... k, and, at each time step k, the processing logic 300a is configured to perform two successive calculation steps:

- A prediction step to calculate predicted values of the state vector at step (k), based on predicted values at the output of one or more preceding steps (k-1 , k-2...), and said model of the pedestrian;

- An update step to modify values of the state vector at step (k), minimize a difference between observed values of the first and second elements, based on said first and second sets of data, and predicted values of the first and second element at step (k).

This allows providing a good estimation of the state vector, by using both prediction based on models and comparison/readjustment with measurements, even if measurements are noisy.

[0072] In an embodiment of the invention, the prediction step may consist in simply assigning to the predicted values of the state vector at step (k), the values of the state vector at the output of update step at step (k-1 ). In other embodiments of the invention, a more complete prediction can be performed. For example, if the state vector comprises both a speed and an acceleration of the pedestrian, the speed at step (k) can be predicted, based on the speed and the acceleration at step (k-1 ). The model of the pedestrian can also be used to predict the speed of the pedestrian at step (k) based on the path slope at step (k-1 ), the path slope at step (k) based on the speed of the pedestrian at step (k-1 ), or both the speed and the path slope at step (k) based on the speed and the path slope at step (k-1 ). In a number of embodiments of the invention, the speed at step (k) is calculated based on a combination of the speed, the acceleration, and the path slope at step (k-1 ).

[0073] The update step consists in updating predicted values at step (k), based on observed values of the first and second elements. The observed values of the first element are obtained from the measured values of the first set of data, and the observed values of the second element are obtained from the measured values of the second set of data. According to various embodiments of the invention, the observed values of the first and second elements may be obtained directly or indirectly. For example, if the first element and the first set of data are both a speed of the pedestrian, the observed value of the first element is obtained directly from the first set of data. In another example, the first set of data is a stride frequency of the user, and the first element is a speed of the user. The speed of the user can be obtained by multiplying the stride frequency by stride length.

[0074] The prediction step ensures that the state vector fairly matches the model of the pedestrian, and has a good internal consistency at each time step, while the update step ensures, at each time step, that estimated values of the state vector do not diverge from actual measurements, even though the measurements are noisy.

[0075] In a number of embodiments of the invention, the measurement precision of the first sensor, and the measurement precision of the second sensor are known, the first set of data may then be associated with a first uncertainty value, based on a measurement precision of the first sensor, and the second set of data associated with a second uncertainty value, based on a measurement precision of the second sensor. The measurement precision may be fixed for each sensor, or associated with each measurement.

[0076] In a number of embodiments of the invention, uncertainty values are expressed in the form of a range of possible values around the measurement. For example, if the second sensor is a barometer, the second set of data is an absolute pressure expressed in hPa, and the second sensor has a measurement precision of ± 1 mbar, the measured value of the second set of data at step (k) may be expressed for example as: P _{m }eas(k) = 900 ± 0.12 hPa. The uncertainty values depend mostly on the accuracy of the sensor which is used, the accuracy varying greatly according to the sensor manufacturers or models. The uncertainty values may also be variable. For example, the accuracy of a pressure sensor may depend upon temperature.

[0077] In other embodiments of the invention, uncertainty values are expressed in the form of a variance, or standard deviation of measurements. A measured value of pressure from the second sensor may then be expressed in the form of a distribution of probability, with a mean and a standard deviation, for example: μ _{Ρ } = 900 hPa; σ ^{2 } _{Ρ }= 1 hPa. This allows calculating a range of possible values where value the first or second set of data is found with a defined probability (for example a 95% or 99% probability). A range of possible values of the first and second element can be obtained from a range of possible values of the first set of data and the second set of data, in a straightforward manner.

[0078] The first and second uncertainty values can be used during the update step, in order to take into account the reliability of measurements. For example, the lesser the uncertainty value of a measurements, the more the measurement can be taken into account to update values of the first or second set of data during the update step.

[0079] Figure 3b displays a second example of a functional architecture of a device 300b in an embodiment of the invention.

[0080] The device 300b comprises a processing logic 330b, which is similar to the processing logic 330a. Unlike the device 300a, the device 300b does not comprise a first and a second sensor. The device 300b is in connection to a first sensor 310b, similar to the first sensor 310a, but located in a separate housing. The device 300b is in connection to a second sensor 310b, similar to the second sensor 310a, but located in a separate housing. According to various embodiments of the invention, the first sensor 310b and second sensor 320b may be located in the same housing, or in two different housings. However this representation is provided by means of non limitative example, and the first sensor 310b, and the second sensor 320b may connected by any type of suitable connection, for example a wired connection, a wireless (Bluetooth, Wi-Fi...) or an optical connection.

[0081] In the embodiment displayed in figure 3b, both the first sensor 310b, and the second sensor 320b are intended to be worn or carried by the user. The device 300b may be worn or not by the user. The device 300b may be for example a smartphone connected to a device worn by the user comprising the first sensor 310b and the second sensor 320b, for example a smartwatch. The device 300b may also be a computer, or a server connected to the first sensor 310b and the second sensor 320b, which are worn by the user. User can also carry the sensor in a bag, integrated in a walking stick or on other devices such as clothes, etc...

[0082] In the figure 3b, the second sensor 320b is a GNSS receiver configured to receive GNSS signals from GNSS satellites 321 b, 322b and calculate the altitude of the user using these signals. However this representation is provided by means of non limitative example, and the first sensor 310b, and the second sensor 320b, may be any of the suitable sensors discussed with reference to the first sensor 310a, and the second sensor 320a of figure 3a.

[0083] The devices 300a and 300b are provided by means of non limitative examples of possible architecture of a device according to the invention. However other architectures are possible. For example only one of the first sensor or the second sensor may be located within the same device than the processing logic.

[0084] Figure 4 displays two examples of functions for establishing a relationship between a speed the user and a path slope in two embodiments of the invention.

[0085] According to various embodiments of the invention, different relationships between the speed of the pedestrian and the slope of the path can be used. For example, the Tobler's hiking function or the Naismith's rule may be used, with or without one of the Tranter, Aitken or Langmuir corrections.

[0086] Tobler's hiking function is an exponential function determining the walking speed, taking into account the slope angle, and has been defined by Tobler, W. (1993), Three presentations on geographical analysis and modeling, NCGIA. Naismith's rule is a rule to calculate how long hiking on a hiking path may take, depending on the slope of the hiking path, and then also defines a relationship between the path slope and the speed of the user. Different improved versions of this function exist. For example corrections may be one or more of:

- Tranter's correction, disclosed for example by Kennedy, P (1998) Wilderness Rules, Available from http://www.gillean.demon.co.uk/Naismith/Naismith.htm - Aitken's correction, disclosed for example by Aitken, Robert (1977). Wilderness Areas in Scotland, unpublished Ph.D. Thesis. University of Aberdeen;

- Langmuir's correction, disclosed for example by Langmuir, Eric (2013).

Mountaincraft and Leadership; A Handbook for Mountaineers and Hillwalking Leaders in the British Isles (Fourth ed.). Mountain Training England; Mountain Training Scotland, pp. 38-39. ISBN 978 0 9568869 0 3.

[0087] The graph 400 displays a Tobler's hiking function 410, and a Naismith's rule with Langmuir correction 420. The two functions provide a speed of the pedestrian as a function of path slope. The speed of the user is represented in the vertical axis 402, in kilometers per hour, while the path slope is represented in the horizontal axis 401 , in degrees.

[0088] Both the maximum speed 41 1 for the Tobler's function, and the maximum speed 421 for the Naismith's rule with Langmuir correction, corresponds to a low negative path slope 403, that is to say a slope which is slowly descending. On the other hand, according to both Tobler's hiking function 410, and the Naismith's rule with Langmuir correction 420, the speed of the user is lower for highly negative or positive slope, and is generally lower as the value of the path slope is different from the low negative path slope 403.

[0089] In an embodiment of the invention, the same predefined function may be used for all pedestrians. In other embodiments of the invention, the Tobler's hiking function or Naismith's rule is parameterized using one or more of an age of the pedestrian, a gender of the pedestrian, an height of the pedestrian, and a weight or a body mass index of the pedestrian. This allows obtaining a more accurate function that takes into account parameters having an impact on the speed of the user. In the case of a Tobler's hiking function, the function is parameterized by setting the value of a Tobler coefficient K _{T0 }bier-

[0090] In a number of embodiments of the invention, the Tobler's hiking function or Naismith's rule may be parameterized using the pace of the pedestrian. The Tobler's hiking function or Naismith's rule may then be adjusted in real time, when a pace change of the pedestrian is detected.

[0091] Figure 4 displays two examples of functions to determine a speed of the user as a function of the path slope. However these functions are provided by means of example only, and any other function, rule or model that provides a relationship between the speed of the user and the path slope can be used in the invention, and parameterized with one or more of an age of the pedestrian, a gender of the pedestrian, an height of the pedestrian, a weight or a body mass index of the pedestrian and a pace of the pedestrian.

[0092] Figure 5 displays an example of an extended Kalman filtering in a number of embodiments of the invention.

[0093] According to various embodiments of the invention, the processing logic 330a or 330b can be configured to calculate estimated values of the state vector of the pedestrian using one or more of a Kalman filter, or extended Kalman filter, an unscented Kalman filter, a central difference Kalman filter, or a particle filter. The figure 5 displays an example of an extended Kalman filter 510 for calculating estimated values of the state vector of the pedestrian. However figure 5 is provided by means of example only, and the invention is applicable to any technique to calculate estimated values of the state vector based on a model of the pedestrian, and measured values of the first set of data and the second set of data, and/or perform data fusion between the first sensor 310a, 310b, and the second sensor 320a, 320b using the model of the pedestrian.

[0094] In the example displayed in figure 5, the first sensor 310a, 310b is a pedometer, and the first set of data is a step count. The second sensor 320a, 320b is a barometer, and the second set of data is an air pressure. The measurements p _{ba }ro of air pressure performed by the barometer are the sum of a static pressure p _{s } which is the ambient pressure at the altitude of the initialization of the barometer, and an altitude pressure p _{a }, which corresponds to a contribution to pressure of the difference of altitude between the altitude at which the barometer was initialized, and the current altitude of the pedestrian. We have thus:

[0095] The state vector of the extended Kalman filter 510 is given by:

Wherein: - v is the speed of the pedestrian (first element of the state vector, representative of the speed of the user);

- is the path slope;

- p _{a } is the pressure due to altitude (second element of the state vector, representative of the altitude of the user);

- Ps is the static pressure, the contribution of weather to ambient pressure.

The Kalman filter is configured to calculate values of the state vector at successive time steps 1 , 2, ... k. In the description below, a value without index generally designates a data, and a value with an index represents the value of this data at a time step. For example, a generally designates the path slope, and a _{k } is the value of the path slope at step k.

[0096] It shall be noted that the state vector above is provided by means of non limitative example only, and other state vactor may be used in the invention. For example, a man skilled in the art may add other parameters such as the temperature, according to his needs.

[0097] The state vector can be initialized using different values. In an embodiment of the invention, the state vector is initialized to:

Wherein p _{0 } is the static pressure measured by the barometer at the initialization of the Kalman filter.

[0098] The Kalman filter is executed at successive time steps, each time step having a duration ΔΤ, which may be for example 0.1 to 10 seconds. The data fusion block in figure 5 outputs a number of different values, some read from the sensors and provided "as is", some being the result of processing steps, which are:

- The step count 520, as measured by the pedometer;

- The speed v 521 of the pedestrian, which is the speed v of the state vector of the extended Kalman filter;

- The distance crossed at the current step k, which is calculated based on the speed at the successive time steps: - The uphill elevation 522 and downhill elevation (or distance descended) 523 of the pedestrian, which respectively represent the cumulated elevation that was climbed up and down by the user:

o The uphill elevation 522 is incremented at each time step k wherein the path slope a _{k } is positive:

o The downhill elevation 523 is incremented at each time step k wherein the path slope a _{k } is negative:

- The path slope a _{k } at time step k.

[0099] Any of the outputs can be used afterwards, for example to be displayed to the pedestrian. The outputs may also be sent to a remote device such as smartphone, or a server, to be further processed. The outputs may be for example published online, or used in a sport application.

[00100] The state transition of the Extended Kalman Filter can be performed in different modes according to different embodiments of the invention. In a number of embodiments of the invention, a properly calibrated Tobler function (or an equivalent function or model providing a relationship between the path slope and speed of the pedestrian) is available. A state transition model (that will be called "regular mode" in the specification below) can be defined using the following assumptions.

[00101] The speed of the user at time step k is calculated based on the path slope at time step k-1 , and the Tobler's hiking function: Wherein w _{v k } is the process noise at time step k, related to the speed of the pedestrian.

[00102] The path slope is approximated to the path slope at the preceding step, and a process noise:

Wherein w _{a k }, is the process noise at time step k, for the path slope.

[00103] The variation of the pressure due to altitude is calculated using the international standardized barometric formula:

Wherein is the process noise at time step k for the altitude pressure, and T° _{k } a

temperature measured at time step k, by the barometer or a sensor close enough to the barometer to provide air temperature where the pressure is measured.

provides an estimated variation of the altitude of the pedestrian.

[00104] The static pressure is approximated to the static pressure at the preceding step, plus a process noise:

Wherein w _{Ps k } is the process noise at time step k, for the static pressure.

[00105] The state transition model of the regular mode can thus be expressed by the transition matrix:

It is possible to infer the values of the coefficients of the transition matrix from Equations 5 to 9:

[00106] The observation model of the Extended Kalman Filter can be built upon the assumption below.

[00107] The pedometer measures a step frequency, and a measured speed of the user at time step k v _{ped0ik } is obtained by multiplying the step frequency by a stride of the user. We thus have: Wherein is an observation noise of the pedometer.

Note that the typical relationship between the step frequency, the stride length and the user speed is assumed to be known beforehand and can be parameterized using one or more of age of the pedestrian, gender of the pedestrian, height of the pedestrian, and weight and/or a body mass index of the pedestrian.

[00108] The barometer measures at each time step a pressure which is the

sum of the static and the altitude pressure. We thus have:

Wherein is an observation noise of the barometer.

[00109] The observation matrix of the Extended Kalman Filter is thus built as:

[00110] Based on the equations and matrixes above, the Extended Kalman Filter can be executed with the predict and update steps, for example by performing the series of operations below at each time step k:

Predict

Predicted state estimate

Predicted covariance estimate

Update

Innovation or measurement residual

Innovation (or residual) covariance

Optimal Kalman gain

Updated (a posteriori) state estimate

Updated (a posteriori) estimate covariance

[00111] In a number of embodiments of the invention, the Tobler coefficient ^{K }Tobier ^{m }^y not be accurately known initially. The Tobler coefficient can be calculated in another mode of operation, called transient mode. In transient mode, the Equation 5 to obtain the speed of the user at time step k by applying the Tobler function is replaced by an estimation of the speed of the user at the previous time step, and the transition model is defined by:

[00112] Based on the equations above, the state transition matrix of the transient mode is:

Wherein f _{2 },f _{3 },f _{4 } and f _{5 } are the same as in regular mode, and are thus defined by equations 1 1 to 14. The observation matrix of the transient mode is identical to the observation matrix of the regular mode.

[00113] During the operation of the transient mode, the Tobler coefficient K _{ToMer } can be calculated by:

- Calculating a variation of altitude over a time duration based on barometer measurements;

- Using one or more estimated speeds v _{k } during the time duration to estimate a distance crossed by the user during said time duration;

- Calculating the path slope corresponding to the distance crossed by the user, and the variation of altitude; - Calculating the Tobler coefficient K _{Tobler } corresponding to the path slope and speeds of the user, for example by using an inverse of the Tobler's hiking function provided in Equation 5.

[00114] In some cases, the pedestrian may stop moving during a certain amount of time. It may be desirable to stop the execution of the Extended Kalman Filter during this stop. In a number of embodiments of the invention, a special processing mode is used when it is detected that the pedestrian stops walking. When the special processing mode is activated at a time ti , the state vector at time ti is saved:

[00115] During the special processing mode, the changes of pressure measured by the barometer are stored, in order to take into account natural changes of the static pressure. When it is detected that the pedestrian resumes walking at a time t2, a total change of the static pressure during the special processing mode is calculated:

[00116] In an embodiment of the invention, the Extended Kalman Filter is reinitialized in regular mode using a state vector at time t2:

This allows a clean re-initialization of the Extended Kalman Filter. Indeed, since the pedestrian did not move between t1 and t2, the path slope and altitude pressure should be identical between times t1 and t2, while the addition of ΔΡ to the static pressure allows taking into account the natural changes of static pressure.

[00117] In another embodiment of the invention, when it is detected that the user resumes walking, the Extended Kalman Filter is completely re-initialized. For example, it may be initialized with a null slope, a preset value of speed, and a new measurement of static pressure. For example, the Kalman Filter whose execution was suspended can be initialized with the state vector below:

[00118] In a number of embodiments of the invention, the mode of operation of the Extended Kalman Filter may be changed according to a pace change detection 530. Examples of such changes will be explained with reference to figures 6 and 7 for illustration purposes.

[00119] In all embodiments of the invention involving the calculation of a state vector at successive time steps, a number of improvements or checks can be added in order to prevent an unlikely behavior such as estimation divergence.

[00120] In a number of embodiments of the invention, the variation of slope can be bounded between two successive time steps. This allows preventing an excessive variation of the estimated path slope between two successive time steps, which seems a reasonable assumption since there is very little chance that the path slope changes very suddenly in one time step. For example, the value of path slope at time step k a _{k } may be bounded to the value Thus, the

variation of path slope between two successive time steps cannot exceed 10°. Other limits may be used, in different embodiments of the invention. The limitation of the variation of the path slope between two successive time steps may in particular depend on a number of factors, such as the instantaneous speed of the pedestrian, or the time step duration.

[00121] The same reasoning may apply to the static pressure change rate. For example, the value of static pressure at time step k may be bounded to the value

wherein is the duration of a time step, in

seconds. The speed of change of the static pressure is thus limited to 1 ,5 hPa/h. This allows limiting the speed of change of static pressure to a speed of change that has a reasonable likelihood of appearance. Indeed, it is generally agreed that a speed of change of 2 hPa/h of the static pressure occurs only in case of very rare meteorological events (storm, hurricane, cyclone...) which lead to very fast variations of meteorological parameters (pressure, temperature, humidity...). However, other limit values may be used in other embodiments of the invention. The same principle can be used in embodiments of the invention wherein the state vector comprises other meteorological parameters. For example, if the state vector comprises the variation of temperature between two successive time steps can be bounded to a maximum variation of temperature in standard conditions.

[00122] In a number of embodiments of the invention, the computing resources needed to compute the functions can be limited by one or more of:

- Using pre-computed tables, either for calculating a global result of the functions, or intermediary functions such as the trigonometric functions;

- For values that remain close to zero, calculating using limited developments (a.k.a. Taylor series) of certain functions;

- Separating the Tobler's hiking function into a number of segments represented by a piecewise linear function. Thus the speed of the pedestrian can be deduced from the path slope by determining to which segment the path slope belongs, then calculating the speed using the corresponding linear function.

[00123] Figure 6 displays an example of a logic of selection and execution of Kalman filters that may be used in a number of embodiments of the invention.

[00124] The logic 600 of selection and execution of Kalman filters can be performed for example by the processing logic 330a, 330b, or any other processing logic according to various embodiments of the invention. The logic 600 allows selecting the best mode of operation of the Kalman filter, among the 3 modes defined in relation to figure 5: the "Regular mode" 610, the "Special processing mode" 61 1 , and the "Transient mode" 612.

[00125] The logic 600 comprises an initialization step 620. In a number of embodiments of the invention, the initialization step 621 uses personal input data, comprising parameters relative to the pedestrian, that have an impact on the model of the pedestrian. For example, personal input data may comprise the age, gender, weight and/or height of the user. The initialization may comprise initializing the state vector, and transition and observation matrices of the Kalman filter.

[00126] As discussed above, in a number of embodiments of the invention, when the Tobler coefficient K _{Tobler } is unknown, the transient mode 612 is used to determine the value of the Tobler coefficient K _{ToMer }. In the example disclosed in figure 6, a convergence timer is used to ensure that the transient mode is executed during a duration long enough to have a reliable value of the Tobler coefficient K _{ToMer }. The initialization step 620 comprises initializing the convergence timer. [00127] The logic 600 determines, at each time step, which mode of operation of the Kalman filter should be used. After initialization step 620, the logic comprises a step 630 to verify if a pace change is detected. According to various embodiments of the invention, different tests can be performed to detect a change of pace of the user. Figure 7 provides an example of such a test.

[00128] If a path change is detected, the logic 600 returns to the initialization step 620. Otherwise, test 631 is performed to detect if the pedestrian stopped walking or running. According to various embodiments of the invention, the test 631 may comprise detecting if the pedestrian is static, in an elevator, on mechanical stairs, in or on a transportation device, or in any other situation where the pedestrian does not move by performing steps. In other embodiments, the test may detect situation where the pedestrian moves in addition to a moving environment such as walking on mechanical stairs or mechanical sidewalk in motion.

[00129] Different tests are possible to determine if the pedestrian is static, in an elevator, on mechanical stairs, or in any other situation where the pedestrian does not walk or run. For example, the second test may be based on a comparison of the stride frequency measured by the pedometer, and the pressure change rate, to thresholds. For example:

- An idle state (pedestrian not moving) can be detected, if the stride frequency measured by the pedometer has been below 0.1 Hz over the past M steps, and the pressure change rate is close to zero;

- It can be detected that the pedestrian is on an inclined moving sidewalk, escalator, elevator, or in any other situation wherein the user is moving without walking or running, if the stride frequency measured by the pedometer is below 0.1 Hz, and the absolute value of pressure change rate is above 2.5 hPa / min.

This double test advantageously allows disambiguating cases wherein the pedestrian is not moving at all, and cases wherein the pedestrian is moving without performing movements by him/herself. In other embodiments of the invention, the same disambiguation can be performed using different test, for example using the norm of accelerometer measurements.

[00130] If the test 631 returns a positive result, the special processing mode 612 is activated. In a number of embodiments of the invention, if the test 631 detects that the user stopped running or walking, but is still moving (which is for example the case if the user is static in automatic stairs or in an elevator), the convergence timer is reset, and the state vector re-initialized. Thus, at the next step wherein it is detected that the pedestrian is walking or running, the Kalman filter is re-initialized in transient mode with a re-initialized state vector. This allows avoiding using a false assumption that the state vector did not change.

[00131] If the test 631 returns a negative result (i.e, if it detects that the pedestrian is walking or running), a test 632 is performed to detect if the convergence timer is over. If the convergence timer is not over, the transient mode 61 1 is used. Thus, the transient mode is used when the pedestrian is walking or running, until the convergence timer is over, in order to let enough time to the transient mode to calculate a proper value of the Tobler coefficient K _{ToMer }. If the convergence timer is over, the value K _{Tobler } of the Tobler coefficient is known, and the normal mode 610 is used.

[00132] Once one of the normal mode 610, the transient mode 61 1 , or the special processing mode 612 has been used, the state vector is updated. The logic 600 comprises a fourth test 633 to detect if the re-initialization trigger has been activated (which is the case, for example if the second test 631 detected that the pedestrian is in an elevator). If the re-initialization trigger has been activated, the whole process is re-initialized 620. Otherwise, a fifth test 634 is performed to detect if a divergence happened during the execution of the Kalman filter.

[00133] The test of divergence may be useful, if the pedestrian performed a very unnatural move that was not well detected by the Kalman filter. The divergence can be detected by analyzing a posteriori the covariance matrices of the Kalman filter. For example, the fifth test 634 can comprise calculating the 3σ FOM (acronym for Figure Of Merit) of the Kalman filter, and detecting a divergence if the 3σ FOM exceeds a threshold for at least one element of the state vector. For example, a divergence can be detected, if the 3σ FOM for speed if greater than 0.5 kph, or if the 3σ FOM for slope is greater than 5°. According to other embodiments of the invention, other thresholds, elements of the state vector, of FOM may be used. For example the fifth test 634 may use 2σ FOM, use a FOM of the altitude pressure, or use other thresholds.

[00134] If a divergence is detected, the process is re-initialized, the logic 600 returns to the initialization step 620. Otherwise, the next step is performed 640, starting from the first test 630 of pace change detection. [00135] The logic 600 is provided by means of non-limitative example only. In other embodiments of the invention, at each time step, another method may be selected for modifying the state vector (for example, another type of Kalman filter, a Kalman filter with different transition and/or observation matrices, or another method, for example a particle filter). Different tests may also be performed, additional tests may be added, some tests may be deleted from the process and/or the tests may be performed in a different order.

[00136] Figure 7 displays an example of pace change detection applicable in a number of embodiments of the invention.

[00137] In an aspect of the invention, pace changes of the pedestrian can be detected, in order to modify the execution of Kalman filters. This is for instance the case with pace change detection 530, or test 631 .

[00138] According to various embodiments of the invention, different methods are applicable to detect pace change. For example, pace change may be detected based on a comparison of pedometer readings, and GNSS-esti mated speed.

[00139] In a number of embodiments of the invention, path changes are detected using the following steps:

- Retrieving the current speed and current slope of the pedestrian;

- Calculating a slope-based speed of the pedestrian, by applying Tobler's hiking function to the current slope of the user. The slope-based speed of the pedestrian provides a reference speed for a given slope;

- Calculating a ratio between the current speed of the pedestrian, and the slope- based speed of the pedestrian, based on preferences of the user. This ratio thus indicates if the pedestrian is walking faster or slower than he/she usually does depending on the slope;

- Classifying the pace of the pedestrian, based on said ratio.

This allows classifying the pace of the pedestrian, without needing additional measurements. Meanwhile, the use of the reference walking speed of the user allows performing a precise classification for a user.

[00140] According to various embodiments of the invention, the reference walking speed may be part of the above reference model of the pedestrian, or part of a separate model. The reference speed may be determined in different manners. For example, the user may input manually into the system his/her reference speed, using a keyboard, a sensitive screen, voice recognition, dedicated keys or any input system available. The reference speed may be also determined during a training phase, for example by observing a speed range which is the most frequently used by the user, or specifically asking the user to walk it his/her preferred speed during a period of time, and observing the average speed of the user during said period of time. The reference speed may also be computed based on typical models, depending on one or more of age of the user, gender of the user, height of the user and weight or body mass index of the user.

[00141] The figure 7 displays an example of this selection: the graph 700 represents the ratio between the speed at null slope, and the preferred speed of the user, for 5 successive time steps. The horizontal axis 701 represents the successive time steps, from the first time step k-4 to the current time step k, while the vertical axis 702 represents the ratio between the speed at null slope, and a preferred walking speed of the user.

[00142] The points 710, 71 1 , 712, 713 and 714 represents five successive values of the ratio, for the five successive time steps k-4 to k. In a number of embodiments of the invention, a polynomial fitting 720 is applied on these values, in order to avoid pace changes due to a single, inconsistent value. At each time step, the ratio can be compared to a number of thresholds, either before or after polynomial fitting, to perform a classification of the pace of the user. For example, the thresholds and pace classes below can be used:

- 0 < ratio < 0.90 : Slow walking;

- 0.90 < ratio < 1 .40 : Regular walking;

- 1 .40 < ratio < 2.40 : Slow running;

- 2.40 < ratio : Fast running.

[00143] In a number of embodiments of the invention, a specific Tobler's hiking function is calibrated for the user, for each pace class. This allows using, for each pace of the user, the most relevant Tobler's hiking function, and obtaining the most accurate results.

[00144] Figure 8 displays a flow chart of an example of a method of the invention. [00145] The method 800 comprises of a first step 810 of using a first sensor, said first sensor being located within a housing carriable by a pedestrian, to obtain measured values of a first set of data representative of a speed of the pedestrian, or a derivative thereof.

[00146] The method 800 comprises a second step 820 of using a second sensor, said second sensor being located within a housing carriable by the pedestrian, to obtain measured values of a second set of data representative of an altitude of the pedestrian, or a derivative thereof.

[00147] The method 830 comprises a third step 830 of calculating estimated values of a state vector of the pedestrian comprising:

- a first element representative of the speed of the pedestrian, or a derivative thereof;

- a second element representative of the altitude of the pedestrian, or a derivative thereof;

and a path slope;

calculating estimated values of a state vector of the pedestrian being based on said measured values of the first set of data, said measured values of the second set of data, and a model of the pedestrian motion comprising a relationship between at least a speed the pedestrian or a derivative thereof and a path slope or a derivative thereof.

[00148] All the embodiments discussed above are applicable to the method 800.

[00149] In addition of advantageously providing a good estimation of the speed, pace of the pedestrian, and a good estimation of the slope of the path the pedestrian is walking on, the invention can be used for additional purposes.

[00150] A number of embodiments of the invention rely on a calculation of a relative altitude of the pedestrian. It is for example the case of embodiments discussed below with the altitude pressure. It is also the case in embodiments wherein the second sensor 320a, 320b measures a variation of altitude, or a derivative thereof (for example if the second sensor 320a, 320b is an accelerometer, which measures the vertical acceleration of the pedestrian or using temperature measurements that are linked to variation of altitude but not only).

[00151] In some embodiments, the invention also allows calculating the absolute altitude, if a measurement of absolute altitude is available for at least one reference time step, by adding the relative altitude between the current time step and the reference time step to the absolute altitude measurement at one reference time step. The absolute altitude measurement at the reference time step may be obtained for instance by using signals received from GNSS satellites, or by manually entering the altitude at the reference point.

[00152] This allows providing the absolute altitude at each time step, even if absolute measurements of altitude are not always available. This could be useful for example for a hiker, which enters the absolute altitude at a reference point (for example, the starting point of the hike), and permanently knows his/her absolute altitude, without requiring running a GNSS application. In other embodiments, crowdsourcing data shared with other people may be used to determine an absolute altitude. Other techniques may also rely on ranging approaches for example with people or with beacons in the vicinity to determine an absolute altitude.

[00153] The invention also allows improving the start time of GNSS applications. GNSS applications usually start considering that the last known location is the current location of the user. This may lead to incorrect start assumptions of the GNSS application, if the user moved a lot when the GNSS application was switched off. The invention allows starting a GNSS application with an improved start location, by:

- Detecting if a GNSS application is ON or OFF;

- Receiving a position of the pedestrian from the GNSS application, whenever said GNSS application is ON;

- Storing a last position of the user received from the GNSS application, when said application is turned OFF;

- Estimating, whenever said GNSS application is OFF, a distance crossed by the user using the previously described technique;

- When said GNSS application is turned ON, calculating a circle containing the start position of the user, using said last position of the user, and said distance crossed by the user. A confidence level may be associated to the radius of this circle based on the FOM previously described. If a measurement of absolute altitude is available for at least one reference time step during which the GNSS application was ON, then the circle can be extended to a cylinder by taking into account the vertical distance crossed by the user.

[00154] Thus, when the GNSS application is restarted, a more accurate position is used to start the GNSS application. This is possible, if the state vector comprises a position of the user, which is modified at each time step. [00155] In a number of prior art applications, a GNSS application is started based on the last known satellite-based position. In case of important displacement of the user since the last satellite-based position was known, the GNSS application can start by displaying a wrong location, for example by displaying the user in the wrong town. On the contrary, starting the GNSS application using a location provided by the invention allows displaying the user immediately at a correct location (which is read in the state vector of the invention, if it comprises the position of the user), if a method of the invention performed a characterization of the movement of the pedestrian in the interval when the GNSS application was OFF.

[00156] The examples described above are given as illustrations of embodiments of the invention. They do not in any way limit the scope of the invention, which is defined by the following claims.

**Previous Patent:**BIOTIN-CONJUGATED N-ACETYL GLYCOL SPLIT HEPARIN

**Next Patent: TREATMENT OF A BACTERIAL VAGINAL INFECTION**