Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
FEEDBACK WEARABLE
Document Type and Number:
WIPO Patent Application WO/2017/083824
Kind Code:
A1
Abstract:
A method of operating a wearable (200) includes receiving an inertial measurement (232) from an inertial measurement sensor (230) disposed on a user (10). The inertial measurement is indicative of a movement of the user from a first pose (P1) to a second pose (P2) away from the first pose. The method also includes determining a movement vector (M) defining the movement of the user from the first pose to the second pose based on the inertial measurement. The movement vector is relative to the first pose. The method also includes determining whether the movement vector satisfies a threshold movement vector (MT). When the movement vector satisfies a threshold movement vector, the method includes instructing at least one actuator (220) to apply a feedback response on the user.

Inventors:
SINGHATAT WAMIS (US)
Application Number:
PCT/US2016/061844
Publication Date:
May 18, 2017
Filing Date:
November 14, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SINGHATAT WAMIS (US)
International Classes:
A61B5/11; G06F3/01; G06F3/0346
Domestic Patent References:
WO2004091400A12004-10-28
Foreign References:
US9149222B12015-10-06
US20060022833A12006-02-02
US20060161079A12006-07-20
KR20110053447A2011-05-23
Attorney, Agent or Firm:
KRUEGER, Brett A. et al. (US)
Download PDF:
Claims:
WHAT IS CLAIMED IS:

1. A method comprising:

receiving, at data processing hardware (240), an inertial measurement (232) from an inertial measurement sensor (230) disposed on a user (10), the user (10) defining a vertical gravitational axis (Vg) and a forward travel direction (DT), the user (10) having a pose (P) defined by a sway angle (0S) of the user (10) relative to the vertical gravitational axis (Vg) and a sway direction (Ds) of the user (10) relative to the forward travel direction (DT), the inertial measurement (232) indicative of a movement of the user (10) from a first pose (Pi) to a second pose (P2) away from the first pose (Pi);

determining, by the data processing hardware (240), a movement vector (M) defining the movement of the user (10) from the first pose (Pi) to the second pose (P2) based on the inertial measurement (232), the movement vector (M) relative to the first pose (Pi);

determining, by the data processing hardware (240), whether the movement vector (M) satisfies a threshold movement vector (Mr); and

when the movement vector (M) satisfies a threshold movement vector (Mr), instructing, by the data processing hardware (240), at least one actuator (220) to apply a feedback response on the user (10).

2. The method of claim 1, wherein determining whether the movement vector (M) satisfies a threshold movement vector (Μτ) comprises determining whether the movement vector (M) extends beyond a movement envelope (E) defined by a collection (14) of envelope movement vectors (EM) relative to the vertical gravitational axis (Vg) and the forward travel direction (DT) of the user (10) at the first pose (Pi).

3. The method of claim 1, wherein the movement vector (M) comprises an angular displacement (0S) of the user (10) from the first pose (Pi) to the second pose (P2).

4. The method of claim 1, wherein the movement vector (M) comprises a horizontal translation (T) relative to the vertical gravitational axis (Vg) of the user (10) from the first pose (Pi) to the second pose (P2).

5. The method of claim 1, wherein the user (10) has a center of gravity (CG) and the vertical gravitational axis (Vg) intersects the center of gravity (CG) of the user (10) along a direction of gravity at the first pose (Pi).

5

6. The method of claim 1, wherein the at least one inertial measurement sensor (230) comprises at least one of a tri-axial accelerometer, a tri-axial magnetometer, or a tri-axial gyroscope. o 7. The method of claim 1, wherein the at least one actuator (220) and the inertial measurement sensor (230) are disposed on a band (210) wearable by the user (10).

8. The method of claim 1, wherein the at least one actuator (220) comprises at least one of an electro-mechanical polymer, a piezo-electric actuator, a solenoid actuator, a 5 pneumatic actuator, a hydraulic actuator, or a linear actuator.

9. The method of claim 1, wherein instructing the at least one actuator (220) to apply the feedback response on the user (10) further comprises instructing a display of a stationary virtual object (290) on an electronic display (280) in communication with the0 data processing hardware (240).

10. The method of claim 1, wherein the feedback response comprises at least one of a force (F) at least partially opposite to and proportional to the movement vector (M), an audible signal, an emitted light, or a vibration.

5

1 1. A wearable (200) comprising:

a band (210);

actuators (220) disposed on the band (210), the actuators (220) circumferentially spaced along the band (210), each actuator (220) configured to apply a force to a user0 (10) donning the band (210);

an inertial measurement sensor (230); and controller (240) in communication with the actuators (220) and the inertial measurement sensor (230), the controller (240) configured to perform operations comprising:

receiving an inertial measurement (232) from the inertial measurement sensor (230), the user (10) defining a vertical gravitational axis (Vg) and a forward travel direction (DT), the user (10) having a pose (P) defined by a sway angle (0S) of the user (10) relative to the vertical gravitational axis (Vg) and a sway direction (Ds) of the user (10) relative to the forward travel direction (DT), the inertial measurement (232) indicative of a movement of the user (10) from a first pose (Pi) to a second pose (P2) away from the first pose (Pi);

determining a movement vector (M) defining the movement of the user (10) from the first pose (Pi) to the second pose P2 based on the inertial measurement (232), the movement vector (M) relative to the first pose (Pi);

determining whether the movement vector (M) satisfies a threshold movement vector (MT); and

when the movement vector (M) satisfies a threshold movement vector (MT), instructing at least one actuator (220) to apply a force (F) on the user (10), the force (F) at least partially opposite to and proportional to the movement vector (M).

12. The wearable (200) of claim 11, wherein determining whether the movement vector (M) satisfies a threshold movement vector (MT) comprises determining whether the movement vector (M) extends beyond a movement envelope (E) defined by a collection (14) of envelope movement vectors (EM) relative to the vertical gravitational axis (Vg) and the forward travel direction (DT) of the user (10) at the first pose (Pi).

13. The wearable (200) of claim 11, wherein the movement vector (M) comprises an angular displacement of the user (10) from the first pose (Pi) to the second pose (P2).

14. The wearable (200) of claim 11, wherein the movement vector (M) comprises a horizontal translation (T) relative to the vertical gravitational axis (Vg) of the user (10) from the first pose (Pi) to the second pose (P2).

15. The wearable (200) of claim 11, wherein the user (10) has a center of gravity (CG) and the vertical gravitational axis (Vg) intersects the center of gravity (CG) of the user (10) along a direction of gravity at the first pose (Pi).

16. The wearable (200) of claim 11, wherein the at least one actuator (220) comprises at least one of a tri-axial accelerometer, a tri-axial magnetometer, or a tri-axial gyroscope.

17. The wearable (200) of claim 11, wherein the inertial measurement sensor (230) is disposed on the band (210).

18. The wearable (200) of claim 11, wherein the at least one actuator (220) comprises at least one of an electro-mechanical polymer, a piezo-electric actuator, a solenoid actuator, a pneumatic actuator, a hydraulic actuator, or a linear actuator.

19. The wearable (200) of claim 11, wherein the operations further comprise, when the movement vector (M) satisfies a threshold movement vector (Mr), causing a display of a stationary virtual object (290) on an electronic display (280) in communication with the controller (240).

20. The wearable (200) of claim 11, wherein the operations further comprise, when the movement vector (M) satisfies a threshold movement vector (Μτ), triggering an ancillary feedback response comprising an audible response, a visual response, or a vibratory response.

21. A method compri sing :

receiving, at data processing hardware (240), an inertial measurement (232) from an inertial measurement sensor (230) disposed on a user (10), the user (10) defining a vertical gravitational axis (Vg) and a forward travel direction DT, the user (10) having a pose (P) defined by a sway angle (0S) of the user (10) relative to the vertical gravitational axis (Vg) and a sway direction (Ds) of the user (10) relative to the forward travel direction (DT), the inertial measurement (232) indicative of a movement of the user (10) from a first pose (Pi) to a second pose (P2) away from the first pose (Pi);

determining, by the data processing hardware (240), a movement vector (M) defining the movement of the user (10) from the first pose (Pi) to the second pose (P2) based on the inertial measurement (232), the movement vector (M) relative to the first pose (Pi);

determining, by the data processing hardware (240), whether the movement vector (M) satisfies a threshold movement vector (Mr); and

when the movement vector (M) satisfies a threshold movement vector (Mr), instructing, by the data processing hardware (240), display of a stationary virtual object (290) on an electronic display (280).

22. The method of claim 21, wherein determining whether the movement vector (M) satisfies a threshold movement vector (Μτ) comprises determining whether the movement vector (M) extends beyond a movement envelope (E) defined by a collection (14) of envelope movement vectors (EM) relative to the vertical gravitational axis (Vg) and the forward travel direction (DT) of the user (10) at the first pose (Pi).

23. The method of claim 21, wherein the movement vector (M) comprises an angular displacement (0S) of the user (10) from the first pose (Pi) to the second pose (P2).

24. The method of claim 21, wherein the movement vector (M) comprises a horizontal translation (T) relative to the vertical gravitational axis (Vg) of the user (10) from the first pose (Pi) to the second pose (P2).

25. The method of claim 21, wherein the user (10) has a center of gravity (CG) and the vertical gravitational axis (Vg) intersects the center of gravity (CG) of the user (10) along a direction of gravity.

26. The method of claim 21, wherein the at least one inertial measurement sensor (230) comprises at least one of a tri-axial accelerometer, a tri-axial magnetometer, or a tri-axial gyroscope.

27. The method of claim 21, wherein the inertial measurement sensor (230) is disposed on a band (210) wearable by the user (10).

28. The method of claim 21, wherein instructing the display of the stationary virtual object (290) comprises:

receiving a feed (284) of an environment about the user (10);

augmenting the feed (284) by adding the stationary virtual object (290) to the feed (284), the stationary virtual object (290) indicating the vertical gravitational axis (Vg); and

displaying the augmenting feed (284) on the electronic display (280).

29. The method of claim 28, wherein the electronic display (280) comprises a head mounted display.

30. The method of claim 21, further comprising when the movement vector (M) satisfies a threshold movement vector (Μτ), triggering an ancillary feedback response comprising an audible response, a visual response, or a vibratory response.

Description:
Feedback Wearable

TECHNICAL FIELD

[0001] This disclosure relates to wearables that provide feedback responses to a user.

BACKGROUND

[0002] Falls are the leading cause of unintentional death from injury in those over 65 years of age in the U.S. and other developed countries. One out of three adults over the age of 65 falls every year, and half of these are from recurrent fallers. The causes of falls among the elderly are usually multi -factorial, and include both extrinsic and intrinsic factors. Extrinsic causes of falling include illumination, floor surface, furniture, and other environmental factors, and can often be addressed with proper education and precautions to minimize tripping and slipping hazards within the living environment. Intrinsic causes, on the other hand, include many factors such as medication side effects, neurological diseases, illnesses, infections, cognitive impairments, and the natural functional decline associated with aging, and as a result, can be more challenging to address. Various feedback approaches currently exist that include vibrotactile and gyroscope-based force actuators that aim to improve sensory and motor-control functions important in sensing and correcting imbalance of a user.

SUMMARY

[0003] A common by-product of many of the aforementioned intrinsic factors is an impaired ability for an older adult to appropriately sense and to correct balance. Current approaches to improve the ability for those with impaired balance are limited and mostly relegated to physical therapy that focuses on improving response to imbalance-inducing scenarios and/or strengthening core muscles involved in maintaining balance. These approaches, however, provide limited real-time feedback to older adults regarding their balance and thus do little to improve sensory and motor-control functions important to sensing and to adjust imbalance. The present disclosure provides systems and methods for sensing movement of a user and providing feedback to the user based on an identification of the movement of the user. [0004] One aspect of the disclosure provides a method of operation for a wearable. The method includes receiving, at data processing hardware, an inertial movement from an inertial measurement sensor disposed on a user. The user defines a vertical gravitational axis and a forward travel direction. The user has a pose defined by a sway angle of the user relative to the vertical gravitational axis and a sway direction of the user relative to the forward travel direction. The inertial measurement is indicative of a movement of the user from a first pose to a second pose away from the first pose. The method also includes determining, by the data processing hardware, a movement vector defining the movement of the user from the first pose to the second pose based on the inertial measurement. The movement vector is relative to the first pose. The method also includes determining, by the data processing hardware, whether the movement vector satisfies a threshold movement vector. When the movement vector satisfies a threshold movement vector, the method includes instructing, by the data processing hardware, at least one actuator to apply a feedback response on the user.

[0005] Implementations of the disclosure may include one or more of the following optional features. In some implementations, determining whether the movement vector satisfies a threshold movement vector includes determining whether the movement vector extends beyond a movement envelope defined by a collection of envelope movement vectors relative to the vertical gravitational axis and the forward travel direction of the user at the first pose. The movement vector may include an angular displacement of the user from the first pose to the second pose. The movement vector may also include a horizontal translation relative to the vertical gravitational axis of the user from the first pose to the second pose.

[0006] In some examples, the user has a center of gravity and the vertical

gravitational axis intersects the center of gravity of the user along a direction of gravity. The at least one inertial measurement sensor may include at least one of a tri-axial accelerometer, a tri-axial magnetometer, or a tri-axial gyroscope. The at least one actuator and the inertial measurement sensor may be disposed on a band wearable by the user. The at least one actuator may include at least one of an electro-mechanical polymer, a piezo-electric actuator, a solenoid actuator, a pneumatic actuator, a hydraulic actuator, or a linear actuator. [0007] Instructing the at least one actuator to apply the feedback response on the user may include instructing a display of a stationary virtual object on an electronic display in communication with the data processing hardware. The feedback response may include at least one of a force at least partially opposite to and proportional to the movement vector, an audible signal, an emitted light, or a vibration.

[0008] Another aspect of the disclosure provides a wearable including a band, actuators disposed on the band, an inertial measurement sensor, and a controller. The actuators are circumferentially spaced along the band. Each actuator is configured to apply a force, such as a diametric force, to a user donning the band. The controller is in communication with the actuators and the inertial measurement sensor, and is configured to perform operations. The operations include receiving an inertial measurement from the inertial measurement sensor, determining a movement vector defining the movement of the user from the first pose to the second pose based on the inertial measurement, and determining whether the movement vector satisfies a threshold movement vector. The user defines a vertical gravitational axis and a forward travel direction. The user has a pose defined by a sway angle of the user relative to the vertical gravitational axis and a sway direction of the user relative to the forward travel direction. The inertial measurement is indicative of a movement of the user from a first pose to a second pose away from the first pose. The movement vector is relative to the first pose. When the movement vector satisfies a threshold movement vector, the operations include instructing at least one actuator to apply a force on the user. The force is at least partially opposite to and proportional to the movement vector.

[0009] This aspect may include one or more of the following optional features. In some implementations, determining whether the movement vector satisfies a threshold movement vector includes determining whether the movement vector extends beyond a movement envelope defined by a collection of envelope movement vectors relative to the vertical gravitational axis and the forward travel direction of the user at the first pose. The movement vector may include an angular displacement of the user from the first pose to the second pose. The movement vector may also include a horizontal translation relative to the vertical gravitational axis of the user from the first pose to the second pose. [0010] The user may have a center of gravity and the vertical gravitational axis may intersect the center of gravity of the user along a direction of gravity. At least one actuator may include at least one of a tri-axial accelerometer, a tri-axial magnetometer, or a tri-axial gyroscope. The inertial measurement sensor may be disposed on the band. At least one actuator may include at least one of an electro-mechanical polymer, a piezoelectric actuator, a solenoid actuator, a pneumatic actuator, a hydraulic actuator, or a linear actuator.

[0011] The operations may also include, when the movement vector satisfies a threshold movement vector, causing a display of a stationary virtual object on an electronic display in communication with the controller. The operations may further include, when the movement vector satisfies a threshold movement vector, triggering an ancillary feedback response comprising an audible response, a visual response, or a vibratory response.

[0012] Yet another aspect of the disclosure provides a second method of operation for a wearable. The method includes receiving, at data processing hardware, an inertial measurement from an inertial measurement sensor disposed on a user, determining, by the data processing hardware, a movement vector defining the movement of the user from the first pose to the second pose based on the inertial measurement, and determining, by the data processing hardware, whether the movement vector satisfies a threshold movement vector. The user defines a vertical gravitational axis and a forward travel direction. The user has a pose defined by a sway angle of the user relative to the vertical gravitational axis and a sway direction of the user relative to the forward travel direction. The inertial measurement may be indicative of a movement of the user from a first pose to a second pose away from the first pose. The movement vector may be relative to the first pose. When the movement vector satisfies a threshold movement vector, the method includes instructing, by the data processing hardware, display of a stationary virtual object on an electronic display.

[0013] This aspect may include one or more of the following optional features. In some implementations, determining whether the movement vector satisfies a threshold movement vector includes determining whether the movement vector extends beyond a movement envelope defined by a collection of envelope movement vectors relative to the vertical gravitational axis and the forward travel direction of the user at the first pose. The movement vector may include an angular displacement of the user from the first pose to the second pose. The movement vector may include a horizontal translation relative to the vertical gravitational axis of the user from the first pose to the second pose. The user may have a center of gravity and the vertical gravitational axis may intersect the center of gravity of the user along a direction of gravity. At least one inertial measurement sensor may include at least one of a tri-axial accelerometer, a tri-axial magnetometer, or a tri- axial gyroscope. At least one actuator and the inertial measurement sensor may be disposed on a band wearable by the user.

[0014] Instructing the display of the stationary virtual object may include receiving a feed of an environment about the user, augmenting the feed by adding the stationary virtual object to the feed, and displaying the augmenting feed on the electronic display. The stationary virtual object may indicate the vertical gravitational axis. The electronic display may include a head mounted display. The feedback response may include at least one of a force at least partially opposite to and proportional to the movement vector, an audible signal, an emitted light, or a vibration.

[0015] The details of one or more implementations of the disclosure are set forth in the accompanying drawings and the description below. Other aspects, features, and advantages will be apparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

[0016] FIG. 1 A is a schematic view of an example feedback environment for a user.

[0017] FIG. IB is a schematic view of the example feedback environment of FIG. 1 including movement of the user.

[0018] FIG. 1C is a schematic view of the example feedback environment of FIG. 1 including movement of the user.

[0019] FIG. 2A is a perspective view of an example wearable.

[0020] FIG. 2B is a schematic view of an example wearable having a controller separate from a band of the wearable.

[0021] FIG. 2C is a front perspective view of an example actuator for a wearable.

[0022] FIG. 2D is a side view of the actuator shown in FIG. 2C. [0023] FIG. 2E is a perspective view of an example inertial measurement sensor.

[0024] FIG. 3 is a flowchart of an example arrangement of operations of a method for providing feedback to a user based on an identification of movement of the user.

[0025] FIG. 4A is a flowchart of an example arrangement of operations of a method for providing feedback to a user based on an identification of movement of the user.

[0026] FIG. 4B is a schematic view of the example feedback environment including movement of the user.

[0027] FIG. 5 is schematic view of an example computing device that may be used to implement the systems and methods of a feedback wearable.

[0028] Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

[0029] The present disclosure provides systems and methods for sensing movement of a user and providing feedback to the user based on an identification of the movement of the user. A wearable donned by the user senses the movement of the user and when the movement is outside a typical range of movements (e.g., postural body sway representative of normal balance) or is indicative of an imminent fall, the wearable provides the user a feedback response, which the user can use to correct his/her movements and/or avoid the fall. In some examples, during normal activities, the wearable continually monitors head movement of the user and when the head movement exceeds a threshold movement, imparts motion-proportionate forces to the head of the user to alert the user of the irregular head movements. The imparted forces may be proportional to the head movement and in a direction opposite of the head movement (e.g., as to mimic pushing the user back to a safe position). The forces generated by the wearable may be perceived by the user as reactive loads to help stabilize the head of the user, thereby improving the user's ability to sense and correct for imbalance, and ultimately train the user to improve and maintain balance without the need for continually wearing the wearable.

[0030] FIGS. 1 A-C illustrate a user 10 in an example feedback environment 100 wearing a wearable 200. Referring to FIG. 1 A, the user 10 has a longitudinal axis L and vertical gravitational axis V g , which is perpendicular to ground 20 along a direction of gravity. The longitudinal axis L of the user 10 may be coincident with the vertical gravitational axis V g when the user 10 is standing straight up and vertical. The user 10 has a center of gravity CG, which is a point where the user 10 has a zero sum distribution of mass. The longitudinal axis L of the user 10 intersects the center of gravity CG of the user 10. Moreover, the user 10 has a pose P defined by a sway angle 0 S of the user 10 relative to the vertical gravitational axis V g and a sway direction Ds of the user 10 relative to a forward travel direction DT of the user 10. The pose P of the user 10 defines a particular attitude or stance assumed by the user 10. The attitude of the user 10 can be defined by an orientation or an angular position of an object in space. For example, the pose P of the user 10 can be defined as the sway angle 0 S of the user 10 between the longitudinal axis L and the vertical gravitational axis V g and the sway direction Ds (e.g., an angle) of the user 10 relative to the forward travel direction DT.

[0031] The wearable 200 defines a vertical axis V w . In some implementations, when the user 10 dons the wearable 200, the user 10 arranges the wearable 200 such that the vertical axis V w of the wearable 200 is coincident or substantially coincident with the longitudinal axis L of the user 10. In additional implementations, the wearable 200 includes or defines a locating feature, such as a poka yoke, that causes the wearable 200 to become seated on the user 10 in an orientation such that the vertical axis V w of the wearable 200 is coincident or substantially coincident with the longitudinal axis L of the user 10. For example, a hat including the wearable 200 causes the user 10 to don the wearable in substantially consistent manner and in a substantially consistent position and/or orientation with respect to the center of gravity CG and the longitudinal axis L of the user 10.

[0032] In the example shown in FIG. IB, the user 10 is positioned at a sway pose P, Ps with a sway center of gravity CG, CG S . The user 10 has an associated movement envelope E that defines a volume of space the user 10 can move or sway within without losing balance and/or falling. The movement envelope E is defined by a collection 14 of envelope movement vectors EM relative to the vertical gravitational axis Vg and the forward travel direction DT of the user 10. A threshold movement vector Mr may be one of the envelope movement vectors EM defining the movement envelope E or inferred based on the movement envelope E to be coincident a movement vector M. In some implementations such as balance training, the threshold movement vector Mr is representative of normal postural sway for the user 10. When the threshold movement vector MT is representative of normal postural sway for the user 10, balance training would allow the user 10 to correct balance before losing balance and/or falling. In some examples, normal postural sway, depending on age, has the sway angle 0 S of the user 10 of about one to two degrees between the longitudinal axis L and the vertical gravitational axis V G . The threshold movement vector MT would represent the sway angle 0 S of the user 10 of about one to two degrees between the longitudinal axis L and the vertical gravitational axis V g .

[0033] In the example shown in FIG. 1C, the user 10 moves from a first pose P, Pi to a second pose P, P 2 , causing a center of gravity CG, CGi of the first pose Pi to translate via the motion to a center of gravity CG, CG2 of the second pose P 2 . The movement of the user 10 may be quantified as the movement vector M defined by an angular displacement 0d and a horizontal translation T relative to the vertical gravitational axis V g of the user 10 from the first pose Pi to the second pose P 2 . The movement envelope E is pinned to the user 10 and moves with the user 10. For example, the movement envelope E of the user 10 at the first pose Pi has a different position and orientation (e.g., a different attitude) than the movement envelope E of the user 10 at the second pose P 2 .

[0034] As the user 10 moves from the first pose Pi to the second pose P 2 , the wearable 200 senses the movement of the user 10 and determines a movement vector M quantifying the movement. The wearable 200 determines whether the movement vector M satisfies the threshold movement vector MT. In some examples, the wearable 200 determines whether the movement vector M extends beyond the movement envelope E (the volume of movement space wherein the user 10 maintains normal postural sway). When the movement vector M satisfies the threshold movement vector MT (e.g., by extending beyond the movement envelope E), the wearable 200 delivers a feedback response to the user 10, prompting the user 10 to correct a potentially hazardous movement or resulting pose P that may cause a loss of balance or a fall. The feedback response may have one or more characteristics (e.g., a direction, a magnitude, a duration, a modulation, etc.) proportional or equal to the movement vector M and/or a difference between the movement vector M and the threshold movement vector Μτ. The feedback response may be haptic (via an applied force), audible, visual, etc.

[0035] FIG 2A illustrates an example wearable 200 that delivers the feedback response to the user 10. The wearable 200 includes a band 210, actuators 220 disposed on the band 210, an inertial measurement sensor 230, and a controller in communication with the actuators 220 and the inertial measurement sensor 230. In the example shown, a head-worn garment 250 (e.g., a hat) donnable by the user 10 includes the wearable 200. In other examples, the wearable 200 is implemented as a band configuration worn around the user 10, such as a chest strap, a shirt, a vest, a waist-worn belt, a neck collar, an ankle band, a wrist band, a finger band, a helmet, or other user accessory.

[0036] The band 210 is positioned on the user 10 such that the user 10 perceives (e.g., feels, hears, or sees) the feedback response from the wearable 200. The user 10 may perceive the feedback response anywhere on the user 10 or anywhere at or near the wearable 200. In some examples, the band 210 perimetrically surrounds a portion of the user 10 to sense directions of movement and/or to deliver the feedback response. For example, FIG. 2 A illustrates the band 210 of the wearable 200 positioned on the head 12 of the user 10 via the head-worn garment 250. When circumferentially around the head 12 of the user 10, the band 210 of the wearable 200 may sense forward, backward, or lateral movement. Since a user 10 may vary in size or in shape, the band 210 is configured to adjust for the user 10 to enable the band 210 to be sized in close

approximation to a surface of the user 10. In some implementations, the band 210 accommodates for different users by a band adjustor 212. The band adjustor 212 may be in-line with the band 210 or have an overlapping configuration. Example configurations for the band adjustor 212 are pinlock adjustors, ratchet adjustors, hook and loop fastener adjustors, or linkage adjustors. Other configurations are possible as well, such as an elastic band.

[0037] The actuators 220 are circumferentially spaced along the band 210 with a spacing S between each actuator 220. For example, a first actuator 220, 220a is spaced by a spacing S apart from a second actuator 220, 220b. Moreover, the actuators 220 may be evenly or unevenly spaced. The actuators 220 are configured to apply a force F (e.g., a diametric force) to a user 10 donning the band 210. The diametric force F is in a direction opposite and proportional to the movement of the user 10 from the first pose Pi to the second pose P 2 . The number of actuators 220 circumferentially spaced along the band 210 depends on a level of precision for the feedback response and may distribute counter forces on the side opposite the diametric force F. For example, the wearable 200 with two actuators 220a, 220b may impart a combined force between directions nearest to one of the two actuators 220a, 220b in order to generate the diametric force F. Whereas, a wearable 200 with eight actuators 220, 220a-i may apply the diametric force F to an actuator 220 more closely relating to the direction of the movement between the first pose Pi and the second pose P 2 . In some examples, at least one actuator 220 applies the diametric force F while the opposite side of the band 210 applies a broadly distributed reaction force. In the example shown in FIG. 2A, ten actuators 220, 220a-j circumscribe the head 12 of the user 10. Other arrangements are possible as well with any number of actuators 220 (e.g., one continuous actuator 220 about the head 12 of the user 10). The actuators 220 may be electromechanical actuators, such as electromechanical polymers, piezo-electric actuators, solenoid actuators, pneumatic actuators, hydraulic actuators, or linear actuators.

[0038] In some examples, at least one actuator 220 is configured to output a feedback response, such as a sound, a vibration, or light. The feedback response may be in addition to the diametric force F or independent from the diametric force F. As examples, the at least one actuator 220 may include a vibration motor, a linear resonant actuator, a light emitting diode, an audio signaling device, such as a beeper or a buzzer, or other electrical component capable of providing the feedback response.

[0039] The inertial measurement sensor 230 is configured to measure an inertial measurement 232 indicative of a movement of the user 10 from a first pose Pi to a second pose P 2 away from the first pose Pi. The inertial measurement 232 may be the horizontal translation T of the center of gravity CG of the user 10 from the first pose Pi to the second pose P 2 or an angular change of the wearable 200 as the wearable 200 moves with the user 10 from the first pose Pi to the second pose P 2 . The inertial measurement sensor 230 may detect and may measure an acceleration, a tilt, a shock, a vibration, or a rotation of the user 10, as the inertial measurement 232, using the first pose Pi as an inertial reference frame. In some examples, the inertial measurement sensor 230 produces three dimensional measurements of a specific force and an angular rate. The inertial measurement sensor 230 may include at least one of a tri-axial accelerometer, a tri-axial magnetometer, or a tri-axial gyroscope. The inertial measurement sensor 230 may also include a microprocessor.

[0040] A controller 240 is configured to process data relating to the user 10 or the wearable 200. The controller 240 receives an inertial measurement 232 from the inertial measurement sensor 230 (e.g., via a wired or wireless connection) disposed on the user 10. The controller 240 determines the movement vector M defining the movement of the user 10 from the first pose Pi to the second pose P2 based on the inertial measurement 232, the movement vector M being relative to the first pose Pi. The controller 240 decides whether the movement vector M satisfies the threshold movement vector Μτ. When the movement vector M satisfies the threshold movement vector Mr, the controller 240 instructs at least one actuator 220 to apply the diametric force F, at least partially opposite to and proportional to the movement vector M, on the user 10.

[0041] In some implementations, the threshold movement vector Μτ is set to zero such that the controller 240 instructs at least one actuator 220 to apply the feedback response on the user 10 when the controller 240 determines any movement vector M has occurred by the user 10. Alternatively or additionally, the threshold movement vector Mr is variable based on activity such that the controller 240 may apply different feedback responses depending on the movement vector M. In some examples, the controller 240 applies one type of feedback response (e.g., sound, vibration, light, or force) or pattern of feedback responses when the movement vector M satisfies the threshold movement vector MT and another type of feedback response (e.g., sound, vibration, light, or force) or pattern of feedback responses when the movement vector M extends beyond the movement envelope E.

[0042] In some examples, the movement vector M satisfies the threshold movement vector MT when the movement vector M extends beyond the movement envelope E or the volume of movement space wherein the user 10 maintains balance. The user 10 or a third party may train or define the movement envelope E or pre-program the movement envelope E in the controller 240. For example, the controller 240 may execute a training routine that stores training movement vectors M indicative of the movement envelope E (e.g., in non-transitory memory of controller 240). Additionally or alternatively, the controller 240 may learn the movement envelop E of the user 10 via the stored movement vectors M, a prescribed movement routine for the user 10 to carry out, or a learned pattern of movements of the user 10 over time. In some examples, the controller 240 identifies patterns in the movement vectors M determined by changes in the inertial measurements 232 between poses (e.g., between the first pose Pi to the second pose P 2 ). The controller 240 may normalize the movement vectors M to define movements of the user 10 wherein the user 10 maintains balance. The controller 240 may define the threshold movement vector MT as a movement vector M that represents a boundary of the movement envelope E. In some examples, the controller 240 identifies that the movement vector M satisfies the threshold movement vector MT when the movement vector M is an anomaly of the collection 14 of envelope movement vectors EM.

[0043] In some implementations, the user 10 has a third party or a programming device pre-program the movement envelope E in the controller 240. In such

implementations, a modeling or a computation program determines the collection 14 of envelope movement vectors EM and/or the threshold movement vector MT based on a set of characteristics of the user 10. The set of characteristics may include age, gender, height, or other physiological characteristics. A smartphone, tablet, computer, a remote based-cloud application or other application system may execute the modeling or the computation program.

[0044] In additional examples, the controller 240 instructs at least one actuator 220 to apply the diametric force F depending on a shape of the band 210 or how many actuators 220 are included on the shape of the band 210. The number of actuators 220

circumferentially spaced along the band 210 depends on a level of precision for the feedback response. In some configurations, the controller 240 interpolates directions of movement of the user 10 to apply the diametric force F at least partially opposite to and proportional to the movement vector M. For example, the wearable 200 with two actuators 220a, 220b may impart a combined force between directions nearest to one of the two actuators 220a, 220b in order to generate the diametric force F. Whereas, a wearable 200 with eight actuators 220, 220a-i may apply the diametric force F via one actuator 220 or a combination of actuators 220, 220a-i closely relating to the direction of the movement between the first pose Pi and the second pose P 2 . In some examples, the incremental spacing S between the actuators 220, 220a-n is close enough that one given actuator 220 aligns with a proposed direction of the diametric force F.

[0045] In some implementations, the controller 240 instructs at least one actuator 220 to continuously apply the diametric force F proportional to the movement vector M. The diametric force may be linear or non-linear. As an example, the diametric force F may be like that of a spring force, F= Kx, where the diametric force F, like the displacement x of the spring force, is proportional to the movement vector M such that as the movement vector M decreases or increases in magnitude the diametric force F applied by at least one actuator 220 will decrease or increase respectively.

[0046] Additionally or alternatively, the controller 240 may be configured to instruct at least one actuator 220 to apply the diametric force F by displacement control or by force-control. In examples of displacement control, the controller 240 outputs a current capable of changing a position of at least one actuator 220. Whereas, in examples of force control, the controller 240 communicates with at least one load transducer paired with at least one actuator 220. With the load transducer, the controller 240 may receive an electrical signal from the load transducer proportional to a force measured by the load transducer at a position of the load transducer. The controller 240 may interpret the electrical signal from the load transducer to instruct the actuator 220 to apply the diametric force F related to the force measure by the load transducer.

[0047] In the example shown in FIG. 2B, the controller 240 is disposed on the band 210 of the wearable 200. When disposed on the band 210 of the wearable 200, the controller has wiring circuitry (e.g., a wiring harness) capable of communicating with the inertial measurement sensors 230 and at least one actuator 220. In other examples, such as in FIG. 2B, the controller 240 is separate from the band 210 of the wearable 200. In such examples, the controller 240 is configured for wired communication (via wired tether) or wireless communication (e.g., via Bluetooth compatible circuitry) with the inertial measurement sensors 230 and/or at least one actuator 220. For example, the controller 240 may be a mobile device 270 (e.g., a laptop 270a, a tablet 270b, mobile phone 270c, etc.) having a wireless connection (e.g., Bluetooth) to a wireless connector 260 disposed on the band 210. The wireless connector 260 relays communications between the controller 240 and the at least one actuator 220. Additionally, the mobile device 270 may include the inertial measurement sensors 230. Otherwise, the wireless connector 260 relays communications between the controller 240 and the inertial measurement sensors 230 on the band 210 as well. In some implementations, the controller 240 is removably attached to the band 210 of the wearable 200 such that the user 10 may attach the controller 240 to another portion of the user 10. When the controller 240 is removably attached, the controller 240 may include physical wiring tethering the controller 240 to the band 210 of the wearable 200 or a wireless

configuration.

[0048] Referring to FIGS. 2C and 2D, in some implementations, the actuator 220 generates a motion-proportionate displacement for the user 10 to perceive varying magnitudes of the diametric force F. In the example shown, the actuator 220 is an electromechanical polymer (EMP), also known as an electro-active polymer (EAP), artificial muscle, or a di-electric elastomeric actuator (DEA). Generally,

electromechanical polymers are polymers that deform when stimulated by an electric field. In the example shown, the actuator 220 defines a long axis AL, a short axis As perpendicular to the long Axis As, and a force axis AF orthogonal to the long axis AL and the short axis As. The actuator 220 may have a configuration to produce a first displacement Ay by bending along the long axis AL to create an arch 222 at its center or in a cantilever beam configuration to produce a second displacement Δχ at the end of the long axis AL. AS shown, the displacement, Δχ or Ay, may impart the diametric force F by the actuator 220 along the force axis AF.

[0049] Alternatively, the actuator 220 may be other types of electro-mechanical or mechanical actuators, such as solenoid actuators, pneumatic actuators, hydraulic actuators, linear actuators, or inflatable bladders. For these types of actuators, an electrical signal from the controller 240 actuates an electro-mechanical or mechanical structure of the actuator 220 to impart the diametric force F on the user 10. For example, in a simple solenoid actuator, the electrical signal from the controller 240 induces a magnetic field to produce a mechanical response by a mechanical structure, such as a plunger or rod. In such example, the electrical signal strength determines an amount of the mechanical response by the mechanical structure of the simple solenoid actuator. [0050] The vibrotactile, gyroscope-based force actuators, and other prior approaches have limitations that make them impractical and/or unsuitable for mainstream adoption. For example, vibrotactile actuators do not apply reactive and motion-proportionate forces to the user. Gyroscope-based actuators also suffer from various shortcomings. For example, gyroscope-based actuators can only impart moments (rotational force) to the user and thus do not create adequate sensations of reactive force that are useful for signaling small or even moderate levels of imbalanced motion. Gyroscope-based actuators (and their required power sources) are generally not available in a size and configuration that can be comfortably worn by elderly or frail users for extended durations, such as during normal activities of daily living, further limiting their practicality and applicability as a wearable solution. On the other hand, the actuators 220 of the wearable 200 (e.g., electromechanical actuators) can be light weight, flexible, low power consumption, and/or manufactured in large volumes to achieve low unit cost. Gyroscope-based actuators may also counterintuitively accentuate the imbalance of the user rather than compensate for imbalance.

[0051] FIG. 2E illustrates an example inertial measurement sensor 230. The inertial measurement sensor 230 is a circuit configured to detect and to measure the acceleration, the tilt, the shock, the vibration, or the rotation of the user 10. To detect and to measure, the inertial measurement sensor 230 may include at least one of a tri-axial accelerometer, a tri-axial magnetometer, or a tri-axial gyroscope. The tri-axial accelerometer includes circuitry to sense the movement of a user 10 between poses (e.g., between the first pose and the second pose) along a straight line or an axis, such as a position and an orientation of the inertial measurement sensor 230. In some examples, the accelerometer may use a mass-spring system or a vibration system configured to determine an acceleration corresponding to a displacement of a mass in the mass-spring system or a stress related to a vibration in the vibration system. The inertial measurement sensor 230 may also include a gyroscope, such as the tri-axial gyroscope, to measure a rate of rotation about a defined axis. The gyroscope is configured to sense rotation of the inertial measurement sensor 230 such that a sensed rotation is a portion of the inertial measurement 232 output to the controller 240. The controller 240 receives the inertial measurement 232 of the inertial measurement sensor 230 and determines movements of the user 10 relative to the wearable 200. Thus, the gyroscope senses rotations of the user 10 as the user 10 moves with the wearable 200. The inertial measurement sensor 230 may include more than one of the tri-axial accelerometer, the tri-axial magnetometer, or the tri-axial gyroscope to increase accuracy of the inertial measurement sensor 230. The inertial measurement sensor 230 may be positioned on the wearable 200, the controller 240, or other portions of the user 10.

[0052] Although the wearable 200 provides a solution for falls among the elderly or older adults, the wearable 200 may be useful in many other ways for improving body control and providing navigational guidance. For example, the wearable 200 could be useful in activities demanding controlled movement of a portion of the user 10. In some instances, the wearable 200 controls movements within particular activities, such as: stabilizing the head of a baseball player or a golfer during a swing; directing a basketball shot form of a basketball player; stabilizing the aim of a sharp-shooter, stabilizing surgical hand motion; or other related motion control activities. The wearable 200 may also guide navigational activities, such as walking, running cycling, driving, or flying. Navigational guidance by the wearable 200 may be advantageous for the user 10 with hearing or sight impairment or for the user in environments with insufficient lighting, high background noise, or generally compromised means of communication.

[0053] In some implementations, the wearable 200 assists navigation for the user 10. In such implementations, at least one actuator 220 provides the feedback response in a desired direction of travel to direct the user 10 to move from the first pose PI to the second pose P2 in the desired direction of travel. Additionally or alternatively, the controller 240 may communicate to apply a pattern of feedback responses as guidance instructions, such as stop, turn right, or turn left, as some examples. The feedback response may be a force, a vibration, a sound, or other perceivable response to the user 10. The controller 240 may include or communicate with global positioning or mapping software to further assist in navigation of the user 10.

[0054] The controller 240 of the wearable 200 may quantify the movement vector M in different ways. In some examples, the controller 240 quantifies the movement vector M by using an angular displacement 0d, 6 W of the wearable 200 and a horizontal translation T, T w of the wearable 200 relative to the wearable axis V w of the wearable 200 at the first pose Pi. Additionally or alternatively, the controller 240 quantifies the movement vector M by using an angular displacement 0d, 6 U of the center of gravity CG of the user 10 and a horizontal translation T, T u of the user 10 relative to the vertical gravitational axis V g of the user 10 at the first pose Pi. In some examples, the controller 240 quantifies the movement vector M by using the angular displacement 0d, 6 S of the inertial measurement sensor 230 and a horizontal translation T, T s of the inertial measurement sensor 230.

[0055] FIG. 3 provides an example arrangement of a method 300 of operation for a wearable 200. At block 302, the method 300 includes receiving, at data processing hardware (e.g., the controller 240), an inertial measurement 232 from an inertial measurement sensor 230 disposed on a user 10. The user 10 defines a vertical gravitational axis V g and a forward travel direction DT. Moreover, the user 10 has a pose P defined by a sway angle 0 S of the user 10 relative to the vertical gravitational axis V g and a sway direction Ds of the user 10 relative to the forward travel direction DT. The inertial measurement 232 is indicative of a movement of the user 10 from a first pose Pi to a second pose P2 away from the first pose Pi. At block 304, the method 300 includes determining, by the data processing hardware, a movement vector M defining the movement of the user 10 from the first pose Pi to the second pose P2 based on the inertial measurement 232. The movement vector M is relative to the first pose Pi. At block 306, the method 300 includes determining, by the data processing hardware, whether the movement vector M satisfies a threshold movement vector Μτ. At block 308, the method 300 includes instructing, by the data processing hardware, at least one actuator 220 to apply a feedback response on the user 10. The force F at least partially opposite to and proportional to the movement vector M when the movement vector M satisfies a threshold movement vector Μτ.

[0056] In some implementations, determining whether the movement vector M satisfies a threshold movement vector Mr includes determining whether the movement vector M extends beyond a movement envelope E defined by a collection 14 of envelope movement vectors EM relative to the vertical gravitational axis Vg and the forward travel direction DT of the user 10 at the first pose Pi. The movement vector M may include an angular displacement 0d, 6 W of the user 10 from the first pose Pi to the second pose P2. The movement vector M may also include a horizontal translation T relative to the vertical gravitational axis V g of the user 10 from the first pose Pi to the second pose P 2 .

[0057] In some examples, the user 10 has a center of gravity CG and the vertical gravitational axis V g intersects the center of gravity CG of the user 10 along a direction of gravity. The at least one inertial measurement sensor 230 may include at least one of a tri-axial accelerometer, a tri-axial magnetometer, or a tri-axial gyroscope. The at least one actuator 220 and the inertial measurement sensor 230 may be disposed on a band 210 wearable by the user 10. The at least one actuator 220 may include at least one of an electro-mechanical polymer, a piezo-electric actuator, a solenoid actuator, a pneumatic actuator, a hydraulic actuator, or a linear actuator.

[0058] Instructing the at least one actuator 220 to apply the feedback response on the user 10 may include instructing a display of a stationary virtual object on an electronic display in communication with the data processing hardware. The feedback response may include at least one of a force at least partially opposite to and proportional to the movement vector M, an audible signal, an emitted light, or a vibration.

[0059] FIG. 4A provides an example arrangement of a method 400 of operation for a wearable 200. FIG. 4B is a schematic view of the example feedback environment including movement of the user 10 donning the wearable 200. At block 402, the method 400 includes receiving, at data processing hardware (e.g. the controller 240), an inertial measurement 232 from an inertial measurement sensor 230 disposed on a user 10. At block 404, the method 400 includes determining, by the data processing hardware, a movement vector M defining the movement of the user 10 from the first pose Pi to the second pose P2 based on the inertial measurement 232. At block 406, the method 400 includes determining, by the data processing hardware, whether the movement vector M satisfies a threshold movement vector Mr. The user 10 defines a vertical gravitational axis V g and a forward travel direction DT. The user 10 has a pose P defined by a sway angle 0 S of the user 10 relative to the vertical gravitational axis V g and a sway direction Ds of the user 10 relative to the forward travel direction DT. The inertial measurement 232 may be indicative of a movement of the user 10 from a first pose Pi to a second pose P2 away from the first pose Pi. The movement vector M may be relative to the first pose Pi. When the movement vector M satisfies a threshold movement vector Mr, at block 408, the method 400 includes instructing, by the data processing hardware, display on an electronic display 280 a stationary virtual object 290. Alternatively or additionally, the threshold movement vector Mr may be set to zero such that the method 400 instructs the electronic display 280 to display the stationary virtual object 290 during any movement of the user 10. The stationary virtual object 290 may move with the user 10. Moreover, the stationary virtual object 290 may be a virtual pole or sign appearing to be anchored into the ground directly in front of and in close proximity to the user 10 to enhance visual sensory feedback, which has been shown to be important for maintaining balance and postural stability. During gait, the wearable 200 may virtually display a continuous guide rail, fence, or corridor in close proximity to the user and along which the user could walk. The electronic display 280 may wirelessly communicate with the inertial measurement sensor 230 or the controller 240, or could alternatively incorporate similar inertial measurement and processing elements to function as a stand-alone device. For users 10 with severely impaired eyesight due to degenerative diseases, such as cataracts or macular degeneration, the aforementioned stationary virtual objects 290 may be replaced with a field of view that varies from bright white when perfectly balanced to pitch black when unbalanced (or other color variations), and in between having fine gradations of light, which are proportional to the sway angle 0 S of the user 10.

[0060] In some implementations, determining whether the movement vector M satisfies a threshold movement vector Mr includes determining whether the movement vector M extends beyond a movement envelope E defined by a collection 14 of envelope movement vectors EM relative to the vertical gravitational axis V G and the forward travel direction DT of the user 10 at the first pose Pi. The movement vector M may include an angular displacement 0d, 6 W of the user 10 from the first pose Pi to the second pose P2. The movement vector M may include a horizontal translation T relative to the vertical gravitational axis V g of the user 10 from the first pose Pi to the second pose P2. The user 10 may have a center of gravity CG and the vertical gravitational axis V g may intersect the center of gravity CG of the user 10 along a direction of gravity. At least one inertial measurement sensor 230 may include at least one of a tri-axial accelerometer, a tri-axial magnetometer, or a tri-axial gyroscope. At least one actuator 220 and the inertial measurement sensor 230 may be disposed on a band 210 wearable by the user 10. [0061] In some implementations, the wearable 200 is a head mounted display (HMD) that includes an electronic display 280 (e.g., screen or projector) and an imaging sensor 282 (e.g., camera) in communication with the controller 240. The imaging sensor 282 captures images or a feed 284 of an environment about the user 10. In some examples, the feed 284 may be a transparent feed of the environment about the user 10 or a video feed input by the user 10 or a third party. Instructing the display of the stationary virtual object 290 may include receiving the feed 284 of the environment about the user 10, augmenting the feed 284 by adding the stationary virtual object 290 to the feed 284, and displaying the augmenting feed 284 on the electronic display 280. The stationary virtual object 290 may indicate the vertical gravitational axis V g . The feedback response may include at least one of a force at least partially opposite to and proportional to the movement vector M, an audible signal, an emitted light, or a vibration.

[0062] FIG. 5 is schematic view of an example computing device 500 that may be used to implement the systems and methods described in this document. The computing device 500 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. The components shown here, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit implementations of the inventions described and/or claimed in this document.

[0063] The computing device 500 includes a processor 510, memory 520, a storage device 530, a high-speed interface/controller 540 connecting to the memory 520 and high-speed expansion ports 550, and a low speed interface/controller 560 connecting to low speed bus 570 and storage device 530. Each of the components 510, 520, 530, 540, 550, and 560, are interconnected using various busses, and may be mounted on a common motherboard or in other manners as appropriate. The processor 510 can process instructions for execution within the computing device 500, including instructions stored in the memory 520 or on the storage device 530 to display graphical information for a graphical user interface (GUI) on an external input/output device, such as display 580 coupled to high speed interface 540. In other implementations, multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory. Also, multiple computing devices 500 may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).

[0064] The memory 520 stores information non-transitorily within the computing device 500. The memory 520 may be a computer-readable medium, a volatile memory unit(s), or non-volatile memory unit(s). The non-transitory memory 520 may be physical devices used to store programs (e.g., sequences of instructions) or data (e.g., program state information) on a temporary or permanent basis for use by the computing device 500. Examples of non-volatile memory include, but are not limited to, flash memory and read-only memory (ROM) / programmable read-only memory (PROM) / erasable programmable read-only memory (EPROM) / electronically erasable programmable readonly memory (EEPROM) (e.g., typically used for firmware, such as boot programs). Examples of volatile memory include, but are not limited to, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), phase change memory (PCM) as well as disks or tapes.

[0065] The storage device 530 is capable of providing mass storage for the computing device 500. In some implementations, the storage device 530 is a computer- readable medium. In various different implementations, the storage device 530 may be a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations. In additional implementations, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as the memory 520, the storage device 530, or memory on processor 510.

[0066] The high speed controller 540 manages bandwidth-intensive operations for the computing device 500, while the low speed controller 560 manages lower bandwidth- intensive operations. Such allocation of duties is exemplary only. In some

implementations, the high-speed controller 540 is coupled to the memory 520, the display 580 (e.g., through a graphics processor or accelerator), and to the high-speed expansion ports 550, which may accept various expansion cards (not shown). In some implementations, the low-speed controller 560 is coupled to the storage device 530 and low-speed expansion port 570. The low-speed expansion port 570, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet), may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.

[0067] The computing device 500 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 500a or multiple times in a group of such servers 500a, as a laptop computer 500b, or as part of a rack server system 500c.

[0068] Various implementations of the systems and techniques described herein can be realized in digital electronic and/or optical circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or

interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.

[0069] These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, non- transitory computer readable medium, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and/or data to a programmable processor. [0070] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0071] To provide for interaction with a user, one or more aspects of the disclosure can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube), LCD (liquid crystal display) monitor, or touch screen for displaying information to the user and optionally a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user's client device in response to requests received from the web browser.

[0072] A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the disclosure. Accordingly, other implementations are within the scope of the following claims.