Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
POSTURE DETECTION SYSTEM
Document Type and Number:
WIPO Patent Application WO/2022/103406
Kind Code:
A1
Abstract:
A posture detection system using one or more devices paired with a hub device worn by a user. The system can determine a posture score for the user's posture position using distance and angle measurements of the one or more devices relative to the hub device. The system can compare the posture score to a reference posture score to determine whether the user deviates from an ideal posture position. The system can send a notification to the user based on how much the posture score differs from the reference posture score.

Inventors:
SHIN D (US)
ROBBINS MATTHEW (US)
PATEL SHWETAK (US)
Application Number:
PCT/US2020/060755
Publication Date:
May 19, 2022
Filing Date:
November 16, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
GOOGLE LLC (US)
International Classes:
G06F3/01; A61B5/00; A61B5/11
Domestic Patent References:
WO2019113441A12019-06-13
WO2019232000A12019-12-05
Foreign References:
US20180125423A12018-05-10
JPH08102702A1996-04-16
EP2107390A12009-10-07
KR20160143036A2016-12-14
Attorney, Agent or Firm:
CHEN, Albert, J. et al. (US)
Download PDF:
Claims:
IN THE CLAIMS

1. A method of detecting postural change, comprising: receiving a first signal from a first wearable device and a second signal from a second wearable device; calculating, with one or more processors, at least one first measurement based on the first signal and at least one second measurement based on the second signal; determining, with one or more processors, a posture of a user wearing the first wearable device and the second wearable device based on at least one of the at least one first measurement and the at least one second measurement; and providing a notification to the user based on the determined posture of the user.

2. The method of claim 1, wherein: a first measurement of the at least one first measurement is calculated to be a first distance from the first device and a second measurement of the at least one first measurement is calculated to be a first angle related to the first device; and a first measurement of the at least one second measurement is calculated to be a second distance from the second device and a second measurement of the at least one second measurement is calculated to be a second angle related to the second device.

3. The method of claim 1, wherein the posture is determined based on a posture score.

4. The method of claim 3, wherein determining the posture score includes: calculating a three-dimensional graphical object based on the at least one first measurement and the at least one second measurement; projecting the three-dimensional graphical object to a two-dimensional plate to calculate a two- dimensional graphical object; and determining the posture score based on at least one measurement of the two-dimensional graphical object.

5. The method of claim 3, further comprising calculating a third at least one measurement between the first device and the second device, wherein determining the posture score is also based on the third at least one measurement.

6. The method of claim 3, wherein the notification is sent when the posture score exceeds a threshold amount.

7. The method of claim 6, wherein the notification is sent to the user when the posture score exceeds the threshold amount for a period of time.

8. The method of claim 3, further comprising comparing the posture score with a reference posture score.

9. The method of claim 8, wherein the reference posture score is determined by: sending a prompt to the user; receiving information in response to the prompt; and calculating a custom reference posture score.

10. The method of claim 8, wherein sending the notification includes sending a first notification if the posture score is greater than the reference posture score or a second notification if the posture score is less than the reference posture score.

11. A system, comprising: one or more processors of a hub device are configured to: receive a first signal from a first wearable device and a second signal from a second wearable device; calculate at least one first measurement based on the first signal and at least one second measurement based on the second signal; determine a posture of a user wearing the first wearable device and the second wearable device based on at least one of the at least one first measurement and the at least one second measurement; and provide a notification to the user based on the determined posture of the user.

12. The system of claim 11, wherein: a first measurement of the at least one first measurement is calculated to be a first distance from the first device and a second measurement of the at least one first measurement is calculated to be a first angle related to the first device; and a first measurement of the at least one second measurement is calculated to be a second distance from the second device and a second measurement of the at least one second measurement is calculated to be a second angle related to the second device.

13. The system of claim 11, wherein the posture is determined based on a posture score.

14. The system of claim 13, wherein determining the posture score includes: calculating a three-dimensional graphical object based on the at least one first measurement and the at least one second measurement; projecting the three-dimensional graphical object to a two-dimensional plate to calculate a two- dimensional graphical object; and determining the posture score based on at least one measurement of the two-dimensional graphical object.

15. The system of claim 13, further comprising calculating a third at least one measurement between the first device and the second device, wherein determining the posture score is also based on the third at least one measurement

16. The system of claim 13, wherein the notification is sent when the posture score exceeds a threshold amount

17. The system of claim 16, wherein the notification is sent to the user when the posture score exceeds the threshold amount for a period of time.

18. The system of claim 13, further comprising comparing the posture score with a reference posture score.

19. The system of claim 18, wherein the reference posture score is determined by: sending a prompt to the user; receiving information in response to the prompt; and calculating a custom reference posture score.

20. The system of claim 18, wherein sending the notification includes sending a first notification if the posture score is greater than the reference posture score or a second notification if the posture score is less than the reference posture score.

21. The system of claim 12, wherein the system further comprises the first wearable device having a first ultra-wideband device and the second wearable device having a second ultra-wideband device, and the first signal comprising a signal generated based on one or more ultra-wideband transmissions between a hub device housing the one or more processors and at least one of the first ultra- wideband device or the second ultra-wideband device.

22. The system of claim 12, wherein the first and second wearable devices comprise a pair of earphones.

16

23. The system of claim 22, wherein the pair of earphones comprise ear buds.

24. The system of claim 22, wherein the hub device comprises a cellular telephone or a smart watch.

25. A non-transitory computer-readable medium storing instructions executable by one or more processors to perform a method, comprising: receiving a first signal from a first wearable device and a second signal from a second wearable device; calculating, with one or more processors, at least one first measurement based on the first signal and at least one second measurement based on the second signal; determining, with one or more processors, a posture of a user wearing the first wearable device and the second wearable device based on at least one of the at least one first measurement and the at least one second measurement; and providing a notification to the user based on the determined posture of the user.

17

Description:
POSTURE DETECTION SYSTEM

BACKGROUND

[0001] Improving posture may provide a host of benefits, from increased energy to decreased risk of j oint issues and heart diseases. As such, posture detection technologies can provide a benefit in health and productivity to users. One common scenario of poor posture includes a user having a forward head position, where a person’ s head slumps forward rather than being upright. One current method of detecting such forward head position uses earbuds with accelerometers to detect a change in head movement. However, during use (e.g., in an office environment), the user’s head is likely to remain in a static position rather than moving while the neck and general spinal posture may change. As such, accelerometer based methods of posture detection may likely prove ineffective in accurately determining poor user posture or when a user changes their posture.

BRIEF SUMMARY

[0002] This disclosure is directed to a posture detection system using one or more devices paired with a hub device worn by a user. The system can determine a posture score for the user’s posture position using distance and angle measurements of the one or more devices relative to the hub device. The system can compare the posture score to a reference posture score to determine whether the user deviates from an ideal posture position. The system can send a notification to the user based on how much the posture score differs from the reference posture score. Such notifications may cause the user to change their posture, resulting in short and long terms benefits to a user’s well being and/or health.

[0003] One aspect provides for a method of detecting postural change comprising receiving a first signal from a first wearable device and a second signal from a second wearable device, calculating, with one or more processors, at least one first measurement based on the first signal and at least one second measurement based on the second signal, determining, with one or more processors, a posture of a user wearing the first wearable device and the second wearable device based on at least one of the at least one first measurement and the at least one second measurement, and providing a notification to the user based on the determined posture of the user. A first measurement of the at least one first measurement may be calculated to be a first distance from the first device and a second measurement of the at least one first measurement may be calculated to be a first angle related to the first device, and a first measurement of the at least one second measurement may be calculated to be a second distance from the second device and a second measurement of the at least one second measurement may be calculated to be a second angle related to the second device. The posture may be determined based on a posture score. The posture score may include calculating a three-dimensional graphical object based on the at least one first measurement and the at least one second measurement, projecting the three-dimensional graphical object to a two- dimensional plate to calculate a two-dimensional graphical object, and determining the posture score based on at least one measurement of the two-dimensional graphical object. The method may further comprise calculating a third at least one measurement between the first device and the second device, wherein determining the posture score is also based on the third at least one measurement. The notification may be sent when the posture score exceeds a threshold amount. The notification may be sent to the user when the posture score exceeds the threshold amount for a period of time. The method may further comprise comparing the posture score with a reference posture score. The reference posture score may be determined by sending a prompt to the user, receiving information in response to the prompt, and calculating a custom reference posture score. Sending the notification may include sending a first notification if the posture score is greater than the reference posture score or a second notification if the posture score is less than the reference posture score.

[0004] Another aspect of the disclosure provides for a system comprising one or more processors of a hub device are configured to receive a first signal from a first wearable device and a second signal from a second wearable device, calculate at least one first measurement based on the first signal and at least one second measurement based on the second signal, determine a posture of a user wearing the first wearable device and the second wearable device based on at least one of the at least one first measurement and the at least one second measurement, and provide a notification to the user based on the determined posture of the user. A first measurement of the at least one first measurement may be calculated to be a first distance from the first device and a second measurement of the at least one first measurement may be calculated to be a first angle related to the first device, and a first measurement of the at least one second measurement may be calculated to be a second distance from the second device and a second measurement of the at least one second measurement may be calculated to be a second angle related to the second device. The posture may be determined based on a posture score. Determining the posture score may include calculating a three-dimensional graphical object based on the at least one first measurement and the at least one second measurement, projecting the three-dimensional graphical object to a two-dimensional plate to calculate a two-dimensional graphical object, and determining the posture score based on at least one measurement of the two-dimensional graphical object. The method may further comprise calculating a third at least one measurement between the first device and the second device, wherein determining the posture score is also based on the third at least one measurement. The notification may be sent when the posture score exceeds a threshold amount. The notification may be sent to the user when the posture score exceeds the threshold amount for a period of time. The method may further comprise comparing the posture score with a reference posture score. The reference posture score may determined by sending a prompt to the user, receiving information in response to the prompt, and calculating a custom reference posture score. Sending the notification may include sending a first notification if the posture score is greater than the reference posture score or a second notification if the posture score is less than the reference posture score. The system may further comprise the first wearable device having a first ultra-wideband device and the second wearable device having a second ultra-wideband device, and the first signal comprising a signal generated based on one or more ultra-wideband transmissions between a hub device housing the one or more processors and at least one of the first ultra-wideband device or the second ultra-wideband device. The first and second wearable devices may comprise a pair of earphones. The pair of earphones may comprise ear buds. The hub device may comprise a cellular telephone or a smart watch.

[0005] Another aspect of the disclosure provides for a non-transitory computer-readable medium storing instructions executable by one or more processors to perform a method, comprising receiving a first signal from a first wearable device and a second signal from a second wearable device, calculating, with one or more processors, at least one first measurement based on the first signal and at least one second measurement based on the second signal, determining, with one or more processors, a posture of a user wearing the first wearable device and the second wearable device based on at least one of the at least one first measurement and the at least one second measurement, and providing a notification to the user based on the determined posture of the user.

BRIEF DESCRIPTION OF THE DRAWINGS

[0006] FIG. 1 is an illustration of a user having an upright position using a posture detection system in accordance with aspects of the disclosure.

[0007] FIG. 2 is an illustration of a user having a slouched position using a posture detection system in accordance with aspects of the disclosure.

[0008] FIG. 3 is a three-dimensional graphical depiction of the posture detection system of FIG. 1. [0009] FIG. 4 is a three-dimensional graphical depiction of the posture detection system of FIG. 2. [0010] FIG. 5 is a two-dimensional graphical depiction of the graphical depictions of FIGS. 3-4 projected on to a two-dimensional plane.

[0011] FIG. 6 is a depiction of a hub device displaying a notification in accordance with aspects of the disclosure.

[0012] FIG. 7 is a functional block diagram depicting an example computing device in accordance with aspects of the disclosure.

[0013] FIG. 8 is an example flowchart of a method of using a posture detection system in accordance with aspects of the disclosure.

DETAILED DESCRIPTION

OVERVIEW

[0014] This technology is directed to a posture detection system that can detect one or more postural changes associated with a user and send a notification to the user when the user’ s posture deviates too far from an ideal posture position. The detection of this postural change can be based on the distance and angle of one or more computing devices, such as a pair of ear buds, to a hub device, such as a mobile phone, worn by the user.

[0015] FIGS. 1-2 depict an illustration of a user 101 using an example posture detection system 100. Posture detection system 100 includes first device 110 and second device 120 worn on head 102 of user 101 while hub device 130 can be worn on or placed proximate body 103 of the user. Body 103 can include any part of user 101 below head 102. Device 110, 120, 130 can be in wireless communication with each other however, in other examples, one or more of the devices may be in a wired connection with each other. Devices 110, 120 can be earbuds, headphones, or any other wearable device that is capable of being worn on a user’s head 102. For example, devices 110, 120 may comprise headphones with left and right earphones that are connected using wires or individual earbuds that each communicate with hub device 130 and/or with each other wirelessly. Hub device 130 can be a mobile phone, smart watch, or any other device capable of being secured to a static location below head 102, such as being worn on a user’s body 103 (e.g. , in a pants pocket, on a belt, a bag supported by the user’ s body). Each of devices 110, 120, 130 may include among its components ultra-wideband technology (e.g., transmitters, receivers, antennae’s). Generally, hub device 130 can be placed at any location below a user or subject’s head and proximate the user’s body, as long the hub device’s location is relatively static (e.g., movement below a threshold necessary for reliable detection of the location of devices 110, 120) and is capable of establishing a vertical reference line or axis relative to an axis associated with the user’s head when the user is in an upright posture or position.

[0016] FIG. 1 depicts an example of a user 101 in an upright position. In the upright position, a central craniocaudal axis 104 of the user’s head 102 is substantially aligned with a central craniocaudal axis 105 of the user’s body 103. In this position, first device 110 can have a first distance 141 from hub device 130 and second device 120 can have a second distance 142 from the hub device. Correspondingly, each device 110, 120 can have an angle with respect to an axis A extending vertically through hub device 130. Such an angle can be measured along the sagittal plane of user 101, however, in other examples, the angle can be measured from other points of view, such as the frontal or transverse plane. In this manner, first device 110 can have a first angle 151 from hub device 130 and second device 120 can have a second angle 152 from the hub device. First device 110 and second device 120 can additionally define a third distance 143 between each other.

[0017] FIG. 2 depicts an example of a user 101 in a slouched position, deviating from the upright position. In the slouched position, the central craniocaudal axis 104 of a user’s head 102 is misaligned with the central craniocaudal axis 105 of the user’s body 103. For example, head 102 can be forward relative to a portion of body 103, such as a user’s shoulders, rather than being substantially upright. In this position, first device 110 can have a first distance 144 and second device 120 can have a second distance 145. First device 110 can have a first angle 153 from hub device 130 and second device 120 can have a second angle 154 from the hub device. First device 110 and second device 120 can additionally define a third distance 146 between each other which, in some examples, can be substantially equivalent to third distance 143. [0018] System 100 can then determine a posture score when user 101 is upright based on measurements 141, 142, 143, 151, 152 and when the user is slouched based on measurements 144, 145, 146, 153, 154. System 100 first transforms such measurements into a three-dimensional graphical representation, as depicted in FIGS. 3-4, and then projects these representations on to a two-dimensional plane, as depicted in FIG. 5.

[0019] To generate a three-dimensional graphical representation of the measurements, such as graphic triangles 200, 300 as shown in FIGS. 3-4, system 100 can first generate a Euclidean distance matrix based on the measurements. This matrix can be geometrically centered so that a Gramian matrix can be computed. A singular value decomposition can be performed on the Gramian matrix so that a set of eigenvalue-scaled eigenvectors can be calculated. Using these eigenvectors, a three-dimensional graph representing the topology of the upright and slouched measurements can be generated.

[0020] FIG. 3 depicts an example graphic triangle 200 graphically representing the measurements of a user 101 in an upright position in a three-dimensional space. For instance, with additional reference to FIG. 1, axis B can correspond to axis A, first graphical point 210 can correspond to first device 110, second graphical point 220 can correspond to second device 120, and third graphical point 230 can correspond to hub device 130. Moreover, first graphical line 241 can correspond to first distance 141, second graphical line 242 can correspond to first distance 242, and third graphical line 243 can correspond to third distance 143.

[0021] FIG. 4 depicts an example graphic triangle 300 graphically representing the measurements of user 101 in a slouched position in a three-dimensional space. For instance, with additional reference to FIG. 2, axis C can correspond to axis A, first graphical point 310 can correspond to first device 110, second graphical point 320 can correspond to second device 320, and third graphical point 330 can correspond to hub device 130. Moreover, first graphical line 344 can correspond to first distance 144, second graphical line 345 can correspond to second distance 145, and third graphical line 346 can correspond to third distance 146.

[0022] System 100 can then generate a two-dimensional graphical representation by projecting graphic triangles 200, 300 on to a two-dimensional plane using methods known in the art, such as principal component analysis, as shown in FIG. 5. This reduction in dimensionality can generate a more compact representation of the measurements of devices 110, 120, 130 worn by user 101, thus reducing the magnitude and complexity of calculations required while still providing sufficient information for a machine-learning model to be trained on.

[0023] FIG. 5 depicts an example graphical comparison of graphic triangles 200', 300' corresponding to graphic triangles 200, 300 projected onto a two-dimensional plane, such as the X-Z plane. Graphic triangle 200' is the two-dimensional graphical representation of user 101 in the upright position with measurements corresponding to this position. Graphical points 210', 220', 230' corresponds to graphical points 210, 220, 230 of graphic triangle 200, while distances 241', 242', 243' corresponds to distances 241, 242, 243 and angles 251', 252' correspond to angles 151, 152 as shown in FIG. 1. Graphic triangle 300' is the two- dimensional graphical representation of user 101 in the slouched position with measurements corresponding to this position. Graphical points 310', 320', 330' corresponds to graphical points 310, 320, 330 of graphic triangle 300 while distances 344', 345', 346' corresponds to distances 344, 345, 346 and angles 353', 354' correspond to angles 153, 154, as shown in FIG. 2. Moreover, axis D corresponds to axes B, C, representing axis A as shown in FIGS. 1-2.

[0024] System 100 can then use the measurements of two-dimensional graphic triangles 200', 300' to determine a posture score by inputting the measurements of the two-dimensional graphic triangles into a weighted algorithm, as discussed further below. For example, where user 101 has an upright position as shown in FIG. 1, system 100 can determine that the posture position of user 101 has a posture score of 50 based off graphic triangle 200'. Where user 101 transitions from this upright position to a slouched position, as shown in FIG. 2, system 100 can determine that this new posture position of user 101 has a posture score of 80 based off graphic triangle 300'.

[0025] Where a posture score of a position of a user deviates a threshold amount from a reference posture score for too long, system 100 can send a notification to user 101 informing the user that they are no longer in the upright position. For example, system 100 can have the threshold amount be set as ten points above the reference posture score. As such, where the reference posture score is 50, no notification is sent where user 101 has an upright position and a posture score of 50, as shown in FIG. 1. Conversely, a notification can be sent where user 101 has a slouched position and a posture score of 80, as shown in FIG. 2. Further, where the posture score exceeds the threshold amount, system 100 can send the notification only if that posture score is maintained above that threshold amount for a period of time, such as ten minutes. This can prevent system 100 from sending a notification where user 101 is simply temporarily moving around, such as getting out of a chair, rather than being in a static position with a slouched posture.

[0026] System 100 can notify the user that they are no longer in the upright position through an audio signal through devices 110, 120, a haptic signal through hub device 130, or any other form of notification. As such, the notification sent by the system may comprise an alert for the user to change their posture, e.g., sit up straight. For example, FIG. 6 depicts hub 130 having a text notification 161 stating “You’re slouching ! Try sitting up straighter.” displayed on screen 160. The alert in turn may provide health benefits such as mitigating potential back pain or strengthening the user’s core by consistently maintaining a proper upright posture.

EXAMPLE SYSTEM

[0027] FIG. 7 illustrates an example of internal components of a computing device 400, such as device 110, 120, 130. While a number of internal components are shown, it should be understood that additional or fewer components may be included. By way of example only, device 400 may include components typically found in playback devices, such as speakers, microphones, earbuds, headphones, or the like. Alternatively, device 400 may include components typically found in portable devices, such as mobile telephones, wearables, or the like. The computing device may be, for example, a wireless accessory or wearable device, such as wireless earbuds, headphones, a mobile phone, smart watch, or the like. Moreover, computing device 400 may be a paired device in a system of other devices, such as a mobile phone or any other hub device paired with one or more earbuds. While the below description relates to device 400, it should be understood that other devices in communication with device 400 may be similar or identical. In some examples, however, each device in the system of paired devices (e.g., a pair of earbuds in communication with a mobile phone) may be different types of devices, or have different internal components. Device 400 may include one or more memories 410, sensors 420, processors 430, a battery 440, a communication interface 450, output 460, as well as other components.

[0028] Memory 410 may store information accessible by the one or more processors 430, including data 411 and instructions 412 that may be executed or otherwise used by the one or more processors 430. For example, memory 410 may be of any type capable of storing information accessible by the processor(s) 420, including a computing device-readable medium, or other medium that stores data that may be read with the aid of an electronic device, such as a volatile memory, non-volatile as well as other write-capable and read-only memories. By way of example only, memory 410 may be a static random-access memory (SRAM) configured to provide fast lookups. Systems and methods may include different combinations of the foregoing, whereby different portions of the instructions and data are stored on different types of media. [0029] The data 411 may be retrieved, stored or modified by the one or more processors 430 in accordance with the instructions 412. Data 411 may also include information stored from sensor(s) 420. For instance, data 411 may include information received from one of sensor(s) 420. As one example, this can be in the form of radio signals from an ultra-wideband antenna. In another example, data 411 can include distance and angle measurements between device 400, such as hub device 130, and other devices, such as first device 110 and second device 120. Although the claimed subject matter is not limited by any particular data structure, the data may be stored in computing device registers, in a relational database as a table having a plurality of different fields and records, XML documents or flat files. The data may also be formatted in any computing device-readable format.

[0030] Further, memory 410 may house a weighted algorithm that is trained by a machine-learning model, such as a deep-neural network classifier, and stored in the memory. Additionally or alternatively, memory 410 can house a customized reference posture score generated specific to each user through a number of prompts or instructions provided as an audio output or visual display through output 460. As such, output 460 may be speakers, a display, a haptic element, or any other means of providing information to a user. Functions, methods and routines of the instructions are explained in more detail below.

[0031] The instructions 412 may be any set of instructions to be executed directly (such as machine code) or indirectly (such as scripts) by the one or more processors 430. For example, the instructions may be stored as computing device code on the computing device -readable medium. In that regard, the terms “software,” “instructions,” and “programs” may be used interchangeably herein. The instructions may be stored in object code format for direct processing by the processor 430, or in any other computing device language including scripts or collections of independent source code modules that are interpreted on demand or compiled in advance. For example, device 400 can receive a first signal from a first device and a second signal from a second device. Processors 430 can calculate at least one first measurement based on the first signal and at least one second measurement based on the second signal. Processors 430 can determine a posture score based on the at least one first measurement and the at least one second measurement. Processors 430 can compare the posture score with a reference posture score. When the posture score exceeds a threshold amount, output 460 can send a notification to a user. Further, memory 410 may house a weighted algorithm trained by a machine-learning model to determine a posture score and stored in the memory prior to a user first using device 400. Even further, instructions 411 can include an ultra-wideband protocol to determine the angles and distances between a number of devices that send ultra-wideband signals to each other. Functions, methods and routines of the instructions are explained in more detail below.

[0032] The one or more processors 430 may be microprocessors, logic circuitry (e.g., logic gates, flipflops, etc.) hard-wired into the device 400 itself, or may be a dedicated application specific integrated circuit (ASIC). It should be understood that the one or more processors 430 are not limited to hard-wired logic circuitry, but may also include any commercially available processing unit, or any hardware-based processors, such as a field programmable gate array (FPGA). In some examples, the one or more processors 430 may include a state machine or a digital signal processor (DSP) for a microphone. Each component within device 400 can have their own processor in communication with processor 430. For instance, sensors 420 and communication interface 450 may also have processors (not shown), similar to processor 430, to communicate with processor 430. Further, processors within sensors 420 and communication interface 450 may execute instructions (not shown) to perform a method similar to instructions 412.

[0033] The one or more sensors 420 may include any of a variety of mechanical or electromechanical sensors for detecting inputs or conditions relevant to other operations. Such sensors may include, for example, an accelerometer, gyroscope, switch, light sensor, barometer, audio sensor, haptic sensor, heat sensor, radio frequency (RF) sensor, inertial measurement unit (IMU), motion sensor (such as a short range radar), antenna array, capacitive sensor, resistive sensor, capacitance gasket, or the like. Sensor 420 may be powered by battery 440 onboard device 400 or may include its own battery (not shown). Where sensor 420 is powered by its own battery, the sensor may be on even when device 400 is not turned on.

[0034] The communication interface 450 may be used to form connections with, or send signals to, other devices, such as a paired host device or another earbud. The connection may be, for example, a Bluetooth connection or any other type of wireless link. By way of example only, connections with other devices may include an asynchronous connection-less (ACL) link. The communication interface 450 may also be used to form a backchannel communication link with another wirelessly paired device. For example, where the device 400 is an earbud, the primary device may form a backchannel communication link with another earbud. Further, device 400 can form a communication link with a host device, such as a mobile phone. Yet further, communication interface 450 can include an ultra-wideband antenna and associated electronics (e.g., transmitter and receiver, or chip or package) that can send an ultra-wideband signal to an array of antennas. This backchannel link may include a Bluetooth link, such as BLE, an NFMI link, or other types of links. Communication interface 450 may include a wireless communication controller, such as a Bluetooth controller, in communication with processor 430. The controller may be configured to execute instructions, such as a stack program, stored within communication interface 450 or memory 410 to provide a connection status between device 400 and other paired devices to processor 430.

[0035] In some examples, communications interface may include the capability for device 110 and 120 to communicate with each other, either wirelessly over via a wire connecting them. For example, if device 110 and 120 can communicate with each other and their relative position calibrated when worn by a user, then it may be possible to equip only one device 110 or 120 relative to device 130 with the ultra- wideband technology described herein so as to calculate the position and angle of only one device 110 or 120 equipped with the ultra- wideband technology. The position and angle of the one device can then be computed based on the calculated position of that device.

[0036] Although FIG. 7 functionally illustrates the processor, memory, and other elements of device 400 as being within the same block, it will be understood by those of ordinary skill in the art that the processor and memory may actually include multiple processors and memories that may or may not be stored within the same physical housing. For example, memory 410 may be a volatile memory or other type of memory located in a casing different from that of computing device 400. Moreover, the various components described above may be component of one or more electronic devices.

EXAMPLE METHOD

[0037] A method of using positioning system 100 will now be described with reference to flowchart 500 and FIGS. 1-8. Although the below method is described as being performed by hub device 130, it should be understood that first device 110 and second device 120 can also perform similar method steps.

[0038] Turning to block 510, hub device 130 receives a first signal from first device 110 and a second signal from second device 120. For example, first device 110 and second device 120 can each have a respective ultra-wideband antenna (e.g., housed in communication interface 450 of device 400) that sends a respective signal to hub device 130. Hub device 130 can have a multi-antenna linear array (e.g., housed as one of sensor 420 of device 400) configured to receive the first signal and the second signal. First device 110 can additionally send a signal to second device 120.

[0039] Turning to block 520, one or more processors of system 100, such as processor 430 of device 400, can calculate at least one first measurement based on the first signal and at least one second measurement based on the second signal. For example, when user 101 is in a slouched position, the measurement can be a distance between devices 110, 120 and hub device 130, such as distances 144, 154. The measurements can additionally be an angle between devices 110, 120 and hub device 130, such as angles 153, 154. Additionally, one or both of the first and second signals can provide information for hub device 130 to calculate distances 146 between first device 110 and second device 120, such as information regarding a signal sent between the first device and the second device. Such distance measurements can be calculated using an ultra-wideband protocol.

[0040] This ultra-wideband protocol can determine the distance measurements by sending a first signal from a first device (e.g., device 110) to a second device (e.g., hub device 130), and then having the second device send a second signal back to the first device. The second device may take a fixed amount of time to prepare the second signal to the first device. The distance measurements can then be calculated by first taking the total travel time of the first and second signals and subtracting the fixed amount of time it took the second device to prepare the second signal, This time can then be multiplied by the speed of light before being divided by two to determine the distance from the first device to the second device. The angle measurements can be determined by beamforming techniques that can calculate a phase interference between two ultra-wideband signals (e.g., a phase interference between a first ultra- wideband signal from first device 110 to hub device 130, and then a second ultra- wideband signal from second device 120 to the hub device).

[0041] Turning to block 530, one or more processors of system 100 can determine a posture score based on the at least one first measurement and the at least one second measurement. Specifically, the posture score can be determined by inputting the measurements of a graphical representation of the devices 110, 120, 130 worn by user 101 into a weighted algorithm. First, the measurements of the position of devices 110, 120, 130 can first be graphed in a three-dimensional space. Such a graphical representation can be performed using methods known in the art, such as multidimensional scaling or other methods of graphing a set of measurements to have a three-dimensional topology, as discussed further below. For instance, where user 101 is in a slouched position, graphic triangle 300 as depicted in FIG. 4 can represent the posture position of the user in three-dimensions.

[0042] The three-dimensional graphic triangle is then projected onto a two-dimensional plane. This can be performed using principal component analysis, or other methods known in the art to project a three- dimensional graphic object onto a two-dimensional plane. This reduction in dimensionality can reduce the amount of information that is required to be processed by system 100 while still providing sufficient relevant information for the system to determine a posture score. For instance, where user 101 is in a slouched position, graphic triangle as depicted in triangle 300' as depicted in FIG. 5 can represent the posture position of the user in two-dimensions.

[0043] System 100 can then input distances 344', 345', 346' and angles 353', 354' into a weighted algorithm to determine a posture score. This algorithm can have a certain weight for each of the distance and angle measurements such that each of the measurements can be multiplied by the corresponding weight and added up to determine the posture score. This algorithm can be generated by training a machine learning model on large datasets of upright and slouched postures, and the algorithm stored within a memory of one of devices 110, 120, 130 prior to user 101 using system 100.

[0044] As one example, where the user is in a slouched position that is represented by graphic triangle 300', the algorithm can assign the following weights: a weight of 1 for distance 346' between graphical point 310' and graphical point 320'; a weight of 2 for distance 344' between graphical point 310' and graphical point 330'; a weight of 2 for distance 345' between graphical point 320' and graphical point 330'; a weight of 3 for angle 353' between graphical point 310' and axis D; and a weight of 3 for angle 354' between graphical point 320' and axis D. Using such an example, system 100 can determine that the posture position of the user is 80.

[0045] In this example, the weight for angles 353', 354', representing the angle of devices 110, 120 relative to hub device 130, can be larger than the weight for distances 344', 343', 346', to emphasize that the degree of forward lean of head 102 relative to body 103 is more important in considering the posture of user 101 than the distance measurements. Moreover, the weights for distances 344', 345', representing the distance between devices 110, 120 and hub device 130, can be larger than the weights for distance 346', representing the distance between first device 110 and second device 120 (e.g., the width of head 102) as distance 346' will likely remain substantially the same no matter the posture position of user 101 where the first device and the second device are, for example, earbuds. In other examples, the weights for each measurement can be larger or smaller.

[0046] Turning to block 540, one or more processors of system 100 can compare the posture score with a reference posture score. The reference posture score can be the posture score of user 101 in an ideal upright position. For example, such an ideal posture position can be depicted by the posture position of user 101 in FIG. 1 and graphic triangle 200' in FIG. 5. Using the weighted algorithm, system 100 can use the measurements of graphic triangle 400' to determine that the reference posture score is 50. Where user 101 is in a slouched position, system 100 can note that the posture score of user 101 in this slouched position is thirty points higher than the reference posture score.

[0047] This reference posture score can be stored in system 100 prior to user 101 using the system based on the calculated average upright position of a data sample of posture positions. Alternatively, system 100 can include an option enabling user 101 to set a custom reference posture score specific to the user. In this example, system 100 can prompt user 101, such as through output 560, requesting the user to sit or stand up in an upright position. System 100 can additionally provide a number of prompts to refine this custom posture score. These additional prompts can include requesting user 101 maintain the upright position for a period of time, such as one or two minutes. Further, system 100 can request that user 101 maintain this position while performing certain activities to replicate the likely activities the user would be doing while maintaining this upright position, such as typing on a keyboard or browsing a mobile phone. User 101 following these prompts can provide system 100 with information to calculate a custom reference posture score using the weighted algorithm. System 100 can then compare future posture scores with this custom reference posture score. Further, user 101 can provide authorization to system 100 to continuously refine and update this custom posture score. In this manner, the custom posture score can reflect user 101 gaining the strength and flexibility to maintain a more upright posture over time. In other examples, the weights of the weighted algorithm can be updated based on the information provided by user 101 to provide a custom weighted algorithm.

[0048] Turning to block 650, system 100 can send a notification to user 101 when the posture score exceeds a threshold amount. The threshold amount can be the minimum difference from the reference posture score before system 100 sends a notification. As such, when the posture score of user 101 in the first position does not exceed this threshold amount, system 100 may do nothing. However, when the posture score exceeds this threshold amount, system 100 can send a notification to user 101.

[0049] In one example, user 101 is in the slouched position, as shown in FIG. 2, with a posture score of 80 and the threshold amount is ten points. A reference ideal posture score, such as a posture score representing user 101 while in an upright position shown in FIG. 1, can be 50. Since the posture score of user 101 in this first position is thirty points higher than the reference posture score and twenty points higher than the threshold amount, system 100 can send a notification to user 101.

[0050] The notification can be any signal notifying user 101 that they have deviated from an ideal upright posture. For instance, the notification can be an auditory signal, such as through first device 110 or second device 120 where the first and second devices are earbuds or head phones, informing user 101 that they are currently deviated from the upright position. Additionally or alternatively, the notification can be a haptic signal from hub device 130, such as a vibration. The notification can also be a visual display, such as a text or image shown on a display of hub device 130. For example, FIG. 6 depicts hub 130 having a text notification 161 stating “You’re slouching! Try sitting up straighter.” displayed on screen 160.

[0051] System 100 can additionally or alternatively send a notification where the posture score exceeds the threshold amount but is less than the reference posture score. In this example, where user 101 is excessively arching their back (not shown), the user may have a posture score of 30. System 100 can send a notification to user 101 that their back is excessively arched. In a further example, system 100 can determine where a posture score deviates a threshold amount from a reference posture score when head 102 is leaning towards a side, rather than slumped forward or back (e.g., where the head is leaning towards one shoulder or the other), and send a notification informing user 101 to keep their head more centralized. [0052] System 100 can continuously perform the above method once over a certain period of time. For example, the above method can be computationally cheap enough to be run once every second, the method can also be run once over a longer period of time, such as fifteen seconds, one to a few minutes, or the like, to minimize battery and processor usage.

[0053] It should be understood that the above weights and posture scores are merely exemplary, and that such weights and posture scores can be any number. Moreover, in other examples, posture detection system

100 can include more than three paired devices, such as four, five, six, or the like. In such instances, the graphical representation of the devices can geometrically match the number of paired devices, such as a rectangular shape for four devices, pentagonal shape for five devices, or the like. In a yet further example, posture detection system 100 can include only two paired devices, such as one earbud and one hub device. In this instance, the graphical representation of the posture position of the user can be a line. Further, although hub device 130 is depicted as being located on a user’s body, it should be understood that the hub device can be located in any location below head 102 as long as the hub device is substantially immobile to provide a reference point for devices 110, 120. For example, device 130 can be on a desk or the like.

[0054] In one example use case, a user 101 may be initially sitting at a desk in an upright position, as depicted in FIG. 1. System 100 can determine that a posture score of this system does not deviate a threshold amount from a reference posture score and, so, will not send a notification to the user. As user

101 continues sitting there, their posture may start deviating from the upright position until the user enters a slouched position, as depicted in FIG. 2. System 100 can determine that the posture score of this slouched position deviates a threshold amount from the reference posture score and, where user 101 maintains this position for a predetermined period of time, the system can send a notification to the user informing them that their position is no longer upright, such as a text notification 161 on hub device 160 depicted in FIG. 6.

[0055] Prior methods of posture detection would involve the devices using accelerometers to determine a change in posture. However, such methods can have a hard time detecting posture or postural changes due to the static nature of holding a posture. The posture detection system of this disclosure provides a benefit over prior methods of posture detection by using the distances and angles of one or more devices relative to a hub device to determine the posture of a user. This can be beneficial as the system can provide consistent real-time information of a user’ s posture to the user using commonly owned devices, such as earbuds and a mobile device. The posture detection system can then send notifications to a user informing them of their posture, thus enabling the user to more consistently maintain upright and proper posture, leading to a host of health benefits (e.g., stronger core, less back or neck pain, etc.).

[0056] Although the subject matter herein has been described with reference to particular examples, it is to be understood that these examples are merely illustrative of the principles and applications of the subject matter described. It is therefore to be understood that numerous modifications may be made and that other arrangements may be devised without departing from the spirit and scope as defined by the appended claims.