BODY POSITION DETECTION
20230003761 · 2023-01-05
Inventors
- Michiel Hans ZEINSTRA (BLAUWHUIS, NL)
- Petrus Johannes BREMER (DRACHTEN, NL)
- Jeroen BEUTICK (ZWOLLE, NL)
- Frank VAN DER SCHOOT (EINDHOVEN, NL)
Cpc classification
G06F3/011
PHYSICS
A61B5/4809
HUMAN NECESSITIES
A61B2562/0219
HUMAN NECESSITIES
International classification
A61B5/11
HUMAN NECESSITIES
Abstract
The present invention relates to body position detection. In order to improve body position detection, a computer-implemented method is provided that comprises the steps of: a) receiving (210) accelerometer data from an accelerometer mounted on a user,
wherein the received accelerometer data comprises three acceleration components including a first acceleration component in a first axis direction, a second acceleration component in a second axis direction substantially perpendicular to the first axis direction, and a third acceleration component in a third axis direction substantially perpendicular to a plane formed by the first and second axes; and
wherein the first axis direction is parallel to a frontal axis of the user, the second axis direction is parallel to a longitudinal axis of the user, and the third axis direction is parallel to a sagittal axis of the user; b) determining (220), based on the received accelerometer data, at least one body position based on a comparison between an absolute value of a projection of a gravity vector on a plane formed by two of the first, second, and third axes and an absolute value of an acceleration component in a remaining axis direction.
Claims
1. A computer-implemented method for body position detection, comprising the steps of: a) receiving accelerometer data from an accelerometer mounted on a user, wherein the received accelerometer data comprises three acceleration components including a first acceleration component in a first axis direction, a second acceleration component in a second axis direction substantially perpendicular to the first axis direction, and a third acceleration component in a third axis direction substantially perpendicular to a plane formed by the first and second axes; and wherein the first axis direction is parallel to a frontal axis of the user, the second axis direction is parallel to a longitudinal axis of the user, and the third axis direction is parallel to a sagittal axis of the user; and b) determining, based on the received accelerometer data, at least one body position based on a comparison between an absolute value of a projection of a gravity vector on a plane formed by two of the first, second, and third axes and an absolute value of an acceleration component in a remaining axis direction.
2. Computer-implemented method according to claim 1, wherein the at least one body position comprises a sleeping position and a non-sleeping position; and wherein step b) further comprises the step of determining whether the user is in a sleeping position or in a non-sleeping position based on a comparison between an absolute value of the projection of the gravity vector on the plane formed by the first and third axis directions and an absolute value of the second acceleration component.
3. Computer-implemented method according to claim 2, wherein the absolute value of the second acceleration component is multiplied by a tangent of a desired angle for the comparison.
4. Computer-implemented method according to claim 2, wherein, when it is determined that the user is in a non-sleeping position, the method further comprises the step of determining, based on a sign of a value of the second acceleration component, whether the user is in a standing or an upside-down position.
5. Computer-implemented method according to claim 2, wherein, when it is determined that the user is in a sleeping position, the method further comprises the step of determining whether the user is in a flat position or in a side position based on (i) a comparison between an absolute value of the third acceleration component with an absolute value of the first acceleration component, or (ii) a comparison between an absolute value of a projection of a gravity vector on a plane formed by the second and third axes and an absolute value of the first acceleration component.
6. Computer-implemented method according to claim 5, wherein the absolute value of the first acceleration component is multiplied by a tangent of a desired angle for the comparison.
7. Computer-implemented method according to claim 5, wherein, when it is determined that the user is in a side position, the method further comprises the step of determining, based on a sign of a value of the first acceleration component, whether the user is in a left or right position.
8. Computer-implemented method according to claim 5, wherein, when it is determined that the user is in a flat position, the method further comprises the step of determining, based on a sign of a value of the third acceleration component, whether the user is in a supine or prone position.
9. Computer-implemented method according to claim 1, further comprising: detecting, based on the received accelerometer data, a movement of the user; and determining the at least one body position of the user using an unfiltered value of the three acceleration components, if the movement is below a pre-defined threshold.
10. Computer-implemented method according to claim 9, wherein the detection of the movement of the user further comprises: calculating a resultant vector of the three acceleration components; and determining that the user is moving when the resultant vector exceeds a moving threshold.
11. Computer-implemented method according to claim 9, wherein the detection of the movement of the user further comprises: calculating an average of a plurality of consecutive samples that are within a certain range of a moving average for each of the three acceleration components; calculating, for each sample, a difference between a sample value of the respective sample and the average; and determining that the user is moving when one or more sample values exceed a threshold from the moving average.
12. An apparatus comprising a communications module configured to receive accelerometer data from an accelerometer mounted on a user; and a processing unit configured to perform the steps of the method according to claim 1.
13. A body position detection system, comprising: an accelerometer mountable on a user; and an apparatus according to claim 12.
14. A computer program product comprising instructions to cause the apparatus or the body position detection system to execute the steps of the method according to claim 1.
15. A computer-readable data carrier having stored thereon the computer program product of claim 14.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0038] In the drawings, like reference characters generally refer to the same parts throughout the different views. Also, the drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the invention.
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
DETAILED DESCRIPTION OF THE EMBODIMENTS
[0053]
[0054] The apparatus 10 may include one or more processing units 12. Optionally, as shown in
[0055] In general, the apparatus 10 may comprise various physical and/or logical components for communicating and manipulating information, which may be implemented as hardware components (e.g., computing devices, processors, logic devices), executable computer program instructions (e.g., firmware, software) to be executed by various hardware components, or any combination thereof, as desired for a given set of design parameters or performance constraints. Although
[0056] In some examples, the apparatus 10 may be implemented by a computing platform such as a mobile platform, personal computer (PC) platform, and/or consumer electronics (CE) platform supporting various networking, communications, and/or multimedia capabilities. Such capabilities may be supported by various networks, such as a Wide Area Network (WAN), Local Area Network (LAN), Metropolitan Area Network (MAN), wireless WAN (WWAN), wireless LAN (WLAN), wireless MAN (WMAN), wireless personal area network (WPAN), Worldwide Interoperability for Microwave Access (WiMAX) network, broadband wireless access (BWA) network, the Internet, and/or any other wired or wireless network in accordance with the described embodiments.
[0057] In some implementations, the apparatus 10 may comprise a system within and/or coupled to a computing device such as PC, desktop PC, notebook PC, laptop computer, mobile internet device (MID), mobile computing device, smart phone, personal digital assistant (PDA), mobile telephone, or other type of computing device in accordance with the described embodiments. The computing device may include, for example, an electronic display.
[0058] In some implementations, the apparatus 10 may be implemented as a sleep position trainer. This sleep position trainer prevents the user sleeping in a predefined position by detection of that position and provide the user feedback. The feedback can be a mechanical actuator, a lighting indication or any other indication that stimulates the user to turn into another sleeping position. The detection of the sleep position and the actuator can be in separate devices connected by any kind of connection system (for example a wireless network).
[0059] Returning to
[0060] The memory 14 may include, but is not limited to, volatile memory and/or non-volatile memory. The memory 14 may be used to store body positions, processor instructions, and other data and instructions to enable the processor to perform the techniques described herein.
[0061] The one or more communications modules 16 may include hardware and/or software to enable the apparatus 10 to receive data from the accelerometer 20, and to communicate with other devices and/or a network. For example, the one or more communications modules 16 may receive accelerometer data via a wired connection or via a wireless connection. The one or more communications modules 16 may also provide cellular telephone communications, and/or other data communications for the apparatus 10.
[0062] The one or more applications 18 may include various software and/or hardware-based applications that provide functionality to the apparatus 10. The one or more applications 16 may include an application that orients the accelerometer data. The one or more applications 16 may include, for example, cellular telephone applications, messaging applications, health and fitness applications, etc.
[0063]
[0064]
[0065]
[0066] Turning back to
[0067] Thus, the body position of a user can be calculated by a simple algorithm. The simple algorithm does not require trigonometric calculations and can be applied to small low power micro controllers without using floating-point. Furthermore, the length of the gravity vector as projected on a plane instead on its perpendicular vector to prevent position detection issues with a tilted accelerometer coordinate system.
[0068] In the following, processing methods for determining the body position will be elucidated.
[0069] Since one needs to know in which sleeping position the user is, the number of positions is limited. Sleeping positions can be defined as supine, prone, left and right. Besides this, also non-sleep positions can be determined, such as standing and upside down.
[0070] Sleeping vs Non-Sleeping Position
[0071] The sleeping position can be detected by the projection of the gravity vector on the plane formed by the first and third axis directions, i.e. both x-axis and z-axis.
[0072] When the user is going to stand up, i.e. in a non-sleeping position, the vector √{square root over (A.sub.x.sup.2+A.sub.z.sup.2)} will decrease to zero because both the x-axis and the z-axis will become parallel to the earth and the acceleration component in the y-axis will increase from 0 to 1 G.
[0073] Since an accelerometer has tolerance and may not be calibrated in production, it may be risky to use fixed thresholds. Instead of fixed thresholds, it may be beneficial to use the axis excluded in the vector; in this example the |A.sub.y|. So when the |A.sub.y| becomes >vector √{square root over (A.sub.x.sup.2+A.sub.z.sup.2)}, the user is supposed to be in a non-sleeping position. When the |A.sub.y| is lower, the user is considered to be in a sleeping position. Toggle moment will be at 45°.
[0074] In order to remain flexible on the angle of toggling, the threshold may be multiplied based on the y-axis by the tangent of a desired angle. For example,
[0075] Standing vs Upside Down Position
[0076] When the user is in a non-sleeping position, two variants are possible: standing and upside down. In order to distinguish between upside down and standing positions, the system can look at the value of the second acceleration component A.sub.y in the second axis direction Y. As shown in
[0077] Flat vs Side Position
[0078] Flat position (supine or prone) and side position (left or right) may be detected by one axis only, for example z-axis. The left image of
[0079] However, in some situations, the user may be tilted up to 30° in a horizontal position. In this case, the absolute value of the third acceleration component A.sub.z will already be decreased in that situation as can be seen in the middle picture of
[0080] In order to remain flexible on the angle of toggling, the threshold may also be multiplied based on the first acceleration component A.sub.x in the x-axis by the tangent of a desired angle. For example,
[0081] Left vs Right Position
[0082] When the user is in a side position, two variants are possible: left and right. In order to distinguish between left and right positions, the system can look at the value of the first acceleration component A.sub.x. As shown in
[0083] Supine vs Prone Position
[0084] When the user is in a flat position, two variants are possible: supine and prone. In order to distinguish between supine and prone positions, the system can look at the value of the third acceleration component A.sub.z. As shown in
[0085] Full Position Detection
[0086] The above-discussed position detections may be combined to give a total algorithm as shown in
[0087] Movement Detection
[0088] During the testing, the inventors of the present disclosure have discovered that moving from one sleeping position to an opposite position (180°) within 1 second may cause a wrong position detection in case averaging of samples is applied which is intentionally not done in the disclosure. For example, as shown in
[0089] In order to solve the above-identified problem, instead of filtering, movement detection is applied. This may prevent the system from calculation with artificial numbers causing a wrong position detection.
[0090] The first movement detection may be based on the fact that the resulting vector of all axes should be 1 G when in stable position. The resulting vector can be calculated with:
√{square root over (A.sub.x.sup.2+A.sub.y.sup.2A.sub.z.sup.2)}
Movement may be defined when the resulting vector exceeds a threshold, such as:
|√{square root over (A.sub.x.sup.2A.sub.y.sup.2A.sub.z.sup.2)}−1G|≥MovingThreshold
[0091] Since the first movement detection can be tricked by applying an acceleration of 2 G from the ground. That means that the 1 G directed to ground will become 1 G directed upwards. The vector will remain equal to 1 G and no movement is detected while there is. Therefore, in some examples, a second movement detection may be required.
[0092] The second movement detection may be based on several consecutive samples that are within a certain range of the moving average.
[0093] It should also be understood that, unless clearly indicated to the contrary, in any methods claimed herein that include more than one step or act, the order of the steps or acts of the method is not necessarily limited to the order in which the steps or acts of the method are recited.
[0094] All definitions, as defined and used herein, should be understood to control over dictionary definitions, definitions in documents incorporated by reference, and/or ordinary meanings of the defined terms.
[0095] The indefinite articles “a” and “an,” as used herein in the specification and in the claims, unless clearly indicated to the contrary, should be understood to mean “at least one.”
[0096] The phrase “and/or,” as used herein in the specification and in the claims, should be understood to mean “either or both” of the elements so conjoined, i.e., elements that are conjunctively present in some cases and disjunctively present in other cases. Multiple elements listed with “and/or” should be construed in the same fashion, i.e., “one or more” of the elements so conjoined. Other elements may optionally be present other than the elements specifically identified by the “and/or” clause, whether related or unrelated to those elements specifically identified.
[0097] As used herein in the specification and in the claims, “or” should be understood to have the same meaning as “and/or” as defined above. For example, when separating items in a list, “or” or “and/or” shall be interpreted as being inclusive, i.e., the inclusion of at least one, but also including more than one, of a number or list of elements, and, optionally, additional unlisted items. Only terms clearly indicated to the contrary, such as “only one of” or “exactly one of,” or, when used in the claims, “consisting of,” will refer to the inclusion of exactly one element of a number or list of elements. In general, the term “or” as used herein shall only be interpreted as indicating exclusive alternatives (i.e. “one or the other but not both”) when preceded by terms of exclusivity, such as “either,” “one of,” “only one of,” or “exactly one of.”
[0098] As used herein in the specification and in the claims, the phrase “at least one,” in reference to a list of one or more elements, should be understood to mean at least one element selected from any one or more of the elements in the list of elements, but not necessarily including at least one of each and every element specifically listed within the list of elements and not excluding any combinations of elements in the list of elements. This definition also allows that elements may optionally be present other than the elements specifically identified within the list of elements to which the phrase “at least one” refers, whether related or unrelated to those elements specifically identified.
[0099] In the claims, as well as in the specification above, all transitional phrases such as “comprising,” “including,” “carrying,” “having,” “containing,” “involving,” “holding,” “composed of,” and the like are to be understood to be open-ended, i.e., to mean including but not limited to. Only the transitional phrases “consisting of” and “consisting essentially of” shall be closed or semi-closed transitional phrases, respectively.
[0100] In another exemplary embodiment of the present invention, a computer program or a computer program element is provided that is characterized by being adapted to execute the method steps of the method according to one of the preceding embodiments, on an appropriate system.
[0101] The computer program element might therefore be stored on a computer unit, which might also be part of an embodiment of the present invention. This computing unit may be adapted to perform or induce a performing of the steps of the method described above. Moreover, it may be adapted to operate the components of the above described apparatus. The computing unit can be adapted to operate automatically and/or to execute the orders of a user. A computer program may be loaded into a working memory of a data processor. The data processor may thus be equipped to carry out the method of the invention.
[0102] This exemplary embodiment of the invention covers both, a computer program that right from the beginning uses the invention and a computer program that by means of an up-date turns an existing program into a program that uses the invention.
[0103] Further on, the computer program element might be able to provide all necessary steps to fulfil the procedure of an exemplary embodiment of the method as described above.
[0104] According to a further exemplary embodiment of the present invention, a computer readable medium, such as a CD-ROM, is presented wherein the computer readable medium has a computer program element stored on it which computer program element is described by the preceding section.
[0105] A computer program may be stored and/or distributed on a suitable medium, such as an optical storage medium or a solid state medium supplied together with or as part of other hardware, but may also be distributed in other forms, such as via the internet or other wired or wireless telecommunication systems.
[0106] However, the computer program may also be presented over a network like the World Wide Web and can be downloaded into the working memory of a data processor from such a network. According to a further exemplary embodiment of the present invention, a medium for making a computer program element available for downloading is provided, which computer program element is arranged to perform a method according to one of the previously described embodiments of the invention.
[0107] While several inventive embodiments have been described and illustrated herein, those of ordinary skill in the art will readily envision a variety of other means and/or structures for performing the function and/or obtaining the results and/or one or more of the advantages described herein, and each of such variations and/or modifications is deemed to be within the scope of the inventive embodiments described herein. More generally, those skilled in the art will readily appreciate that all parameters, dimensions, materials, and configurations described herein are meant to be exemplary and that the actual parameters, dimensions, materials, and/or configurations will depend upon the specific application or applications for which the inventive teachings is/are used. Those skilled in the art will recognize, or be able to ascertain using no more than routine experimentation, many equivalents to the specific inventive embodiments described herein. It is, therefore, to be understood that the foregoing embodiments are presented by way of example only and that, within the scope of the appended claims and equivalents thereto, inventive embodiments may be practiced otherwise than as specifically described and claimed. Inventive embodiments of the present disclosure are directed to each individual feature, system, article, material, kit, and/or method described herein. In addition, any combination of two or more such features, systems, articles, materials, kits, and/or methods, if such features, systems, articles, materials, kits, and/or methods are not mutually inconsistent, is included within the inventive scope of the present disclosure.