Distance-based repetition tracking by head-mounted device
By integrating distances in head-mounted devices - determining the device and gyroscope, automatically tracking the distance between the user and the landmark, the problem of users manually counting the number of repetitions during exercise is solved, and accurate and automatic repetition counting function is achieved, improving the Exercise efficiency.
Patent Information
- Application Number
- CN202380025875.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-03-10
- Filing Date
- 2023-03-10
- Publication Date
- 2025-02-18
AI Technical Summary
Users hope not to manually count repetitions when exercising, but to automatically track and count through technical means.
The distance-determining device and gyroscope are used to determine the distance between the user and the landmark by the head-mounted device, and automatically output the repeated counting indication according to the change in distance.
It enables users to accurately track the number of repetitions without manual counting during exercise, improving exercise efficiency and user experience.
Smart Images

Figure CN119487476A_ABST
Abstract
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of and claims priority to U.S. non-provisional patent application No. 17 / 654,327, filed on March 10, 2022, entitled “TRACKING REPETITIONS BY HEAD-MOUNTED DEVICE BASED ON DISTANCE,” the disclosure of which is incorporated herein by reference in its entirety. Technical Field
[0002] This instruction manual relates to exercise tracking. Background Art
[0003] A user may desire to perform an exercise without having to personally count its repetitions. Summary of the invention
[0004] In some aspects, the technology described herein relates to a method comprising: determining, by a head-mounted device, based on first data received from a distance-determining device (i.e., a device for determining the distance between two objects) included in the head-mounted device, that a first distance of the head-mounted device from a landmark is outside a completion range; based on the determination that the first distance of the head-mounted device from the landmark is outside the completion range of the landmark, outputting an indication that a repetition has not been completed; determining, based on second data received from the distance-determining device, that a second distance of the head-mounted device from the landmark is within a completion range; and based on the determination that the second distance of the head-mounted device from the landmark is within the completion range, incrementing a repetition counter and outputting an indication that the repetition has been completed.
[0005] In some aspects, the technology described herein relates to a method further comprising: determining a completion range based on a height of a user wearing a head mounted device.
[0006] In some aspects, the technology described herein relates to a method further comprising: determining a height of a user based on receiving input from the user.
[0007] In some aspects, the technology described herein relates to a method further comprising determining a height of a user based on third data received from a distance-determining device and orientation data received from a gyroscope when the user is in a standing position.
[0008] In some aspects, the technology described herein relates to a method further comprising: determining an orientation range based on a first distance of a head-mounted device from a landmark; determining that the orientation of the head-mounted device is outside the orientation range based on orientation data received from a gyroscope; and based on the determination that the orientation of the head-mounted device is outside the orientation range, outputting an indication that the form of a user wearing the head-mounted device is incorrect.
[0009] In some aspects, the technology described herein relates to a method, further comprising: determining an orientation range based on a first distance of a head-mounted device from a landmark; determining that the orientation of the head-mounted device is within the orientation range based on orientation data received from a gyroscope; and outputting an indication of correct morphology of a user wearing the head-mounted device based on the determination that the orientation of the head-mounted device is within the orientation range.
[0010] In some aspects, the technology described herein relates to a head-mounted device configured to perform the method described above. Further, the present disclosure relates to a head-mounted device, including: a distance-determining device and / or a distance-determining device (for example, including at least one camera and / or at least one sensor for measuring distance), the distance-determining device and / or the distance-determining device being configured to capture and determine the distance; a gyroscope, the gyroscope being configured to determine the orientation of the head-mounted device; at least one processor; and a non-transitory computer-readable storage medium, the non-transitory computer-readable storage medium including instructions stored thereon, which when executed by at least one processor are configured to cause the head-mounted device to: output an instruction for a user to start exercising based on the orientation of the head-mounted device being within a starting orientation range, the head-mounted device being set at the user's on the head; determining, based on first data captured by the distance-determining device, that a first distance of the head-mounted device from the landmark is outside the completion range; based on the first distance from the landmark being outside the completion range, outputting instructions for the user to complete the first part of the exercise; determining, based on second data captured by the distance-determining device, that a second distance of the head-mounted device from the landmark is within the completion range; based on the second distance of the head-mounted device from the landmark being within the completion range, outputting instructions for the user to perform the second part of the exercise; determining, based on third data captured by the distance-determining device, that a third distance of the head-mounted device from the landmark is within the starting position range; and incrementing a repetition counter based on the third distance of the head-mounted device from the landmark being within the starting position range.
[0011] In some aspects, the technology described herein relates to a head-mounted device, wherein the instructions are further configured to cause the head-mounted device to, before determining that a first distance of the head-mounted device from a landmark is outside a completion range: determine, based on fourth data captured by a distance-determining device, that a third distance of the head-mounted device from the landmark is within a starting position range; and based on the determination that the third distance of the head-mounted device from the landmark is within the starting position range, set a repetition counter to zero.
[0012] In some aspects, the technology described herein relates to a head-mounted device, wherein the instructions are further configured to cause the head-mounted device, after outputting an instruction for a user to start exercising, to: run a timer when a third distance from the head-mounted device to the landmark is within the starting position range; and output the value of the timer.
[0013] In some aspects, the technology described herein relates to a head-mounted device, wherein the instructions are further configured to cause the head-mounted device, after outputting instructions for a user to start exercising: determine that an orientation of the head-mounted device is outside of an appropriate morphological range, the appropriate morphological range being based on a first distance of the head-mounted device from a landmark; and based on the determination that the orientation of the head-mounted device is outside of the appropriate morphological range, output instructions for the user to correct the user's body posture.
[0014] In some aspects, the technology described herein relates to a head-mounted device in which the range of completion is based on the height of the user.
[0015] In some aspects, the technology described herein relates to a head-mounted device, wherein the instructions are further configured to cause the head-mounted device to determine a user's height based on fourth data captured by a distance-determining device before outputting instructions for the user to begin exercising.
[0016] In some aspects, the technology described herein relates to a head-mounted device in which a range of completion is based on the user's height and the category of exercise.
[0017] In some aspects, the technology described herein relates to a head-mounted device, wherein: the head-mounted device further includes an accelerometer; and the instructions are further configured to cause the head-mounted device to: determine that a speed of the head-mounted device exceeds a speed threshold; and based on the speed of the head-mounted device exceeding the speed threshold, output instructions for the user to slow down the performance of an exercise.
[0018] In some aspects, the technology described herein relates to a head-mounted device in which a landmark includes a portion of a surface on which a user is performing an exercise.
[0019] In some aspects, the technology described herein relates to a non-transitory computer-readable storage medium, including instructions stored thereon, which, when executed by at least one processor, are configured to cause a head-mounted device to: determine that a first orientation of the head-mounted device is outside an appropriate morphological range, the appropriate morphological range being based on a distance of the head-mounted device from a landmark; based on the determination that the first orientation of the head-mounted device is outside the appropriate morphological range, output an instruction for a user to correct the user's body posture, the head-mounted device being worn on the user's head; determine that a second orientation of the head-mounted device is within an appropriate morphological range; after determining that the second orientation of the head-mounted device is within the appropriate morphological range, determine that the distance of the head-mounted device from the landmark is within a completion range based on data received from a distance-determination device; and increment a repetition counter based on the distance of the head-mounted device from the landmark being within the completion range.
[0020] In some aspects, the technology described herein relates to a non-transitory computer-readable storage medium, wherein the instructions are further configured to cause a head-mounted device to output an indication that a repetition has been completed based on a distance of the head-mounted device from a landmark being within a completion range.
[0021] In some aspects, the technology described herein relates to a non-transitory computer-readable storage medium, wherein the instructions are further configured to cause a head-mounted device to output an indication that a user is performing an exercise in an appropriate form based on a determination that a second orientation of the head-mounted device is within an appropriate form range.
[0022] In some aspects, the technology described herein relates to a non-transitory computer-readable storage medium, wherein a range of completion is based on a user's height.
[0023] In some aspects, technology described herein relates to a non-transitory computer-readable storage medium, wherein a landmark includes a portion of a surface on which a user is performing an exercise.
[0024] The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0025] Figure 1A A user wearing a head mounted device is shown performing a push-up in a starting position.
[0026] FIG. 1B shows a user performing push-ups in a neutral position.
[0027] Figure 1C A user performing push-ups is shown in the bottom finish position.
[0028] Figure 1D A user is shown performing push-ups with the hips raised high.
[0029] Figure 1E A user is shown performing push-ups with the hips lowered.
[0030] FIG. 2 shows a graph with a distance threshold and the ideal orientation as a function of the distance.
[0031] Figure 3 Height measurements of a user in a standing position wearing a head mounted device are shown.
[0032] Figure 4 A user performing a crunch while wearing a head mounted device is shown.
[0033] FIG. 5 illustrates a user wearing a head mounted device performing a squat.
[0034] FIG. 6 is a block diagram of a head mounted device.
[0035] FIG. 7 is a flow chart illustrating a method performed by a head mounted device.
[0036] 8 is a flow chart illustrating another method performed by a head mounted device.
[0037] 9 is a flow chart illustrating another method performed by a head mounted device.
[0038] FIG. 10 is a flow chart illustrating another method performed by a head mounted device.
[0039] Fig.11 Examples of computer devices and mobile computer devices that can be used to implement the techniques described herein are shown.
[0040] Like reference numbers in the various drawings indicate like elements. DETAILED DESCRIPTION
[0041] The head-mounted device may monitor a user performing an exercise, such as push-ups, crunches, or squats. For example, the head-mounted device may track repetitions performed by a user based on the distance of the head-mounted device from a landmark. The landmark may include a portion of a surface, such as a floor or ground on which the user is performing the exercise. For example, when the distance of the head-mounted device from the landmark is within a starting position range, the head-mounted device may consider the user to be in a starting position, and when the distance of the head-mounted device from the landmark is within a completion range, the head-mounted device may consider the user to have completed the first part of the repetition. The depth sensor and / or distance determination device may include one or more cameras, one or more range sensors (e.g., a time of flight (ToF) sensor and / or a light detection and / or ranging (LiDAR) camera), or consist thereof. The head-mounted device may measure the distance to the landmark based on one or more cameras included in the head-mounted device and / or based on the one or more cameras and a gyroscope included in the head-mounted device.
[0042] The head mounted device may also monitor the user's form while the user performs the exercise. The head mounted device may monitor the form based on the orientation of the head mounted device as measured by a gyroscope and / or accelerometer included in the head mounted device. The head mounted device may determine whether the user's form is appropriate based on whether the orientation of the head mounted device is within an orientation range. The orientation range may change as the user performs repetitions based on the distance of the head mounted device from a landmark.
[0043] Figure 1AA user 150 is shown performing push-ups in a starting position while wearing a head mounted device (HMD) 100. The user 150 may place portions of the user's 150 arms 156A, 156B (such as the user's 150 hands) and legs 158A, 158B (such as the user's 150 feet) on a surface 102. The surface 102 may include a floor, ground, or other surface on which the user 150 is exercising. When the user 150 exhibits proper form, the user's 150 torso 154 may be straight along the posture line 112 and / or plane.
[0044] The head mounted device 100 may be worn and / or disposed on a head 152 of a user 150. The head mounted device 100 may include smart glasses. The head mounted device 100 may point in a direction away from the head 152 and / or face of the user 150. The direction in which the head mounted device 100 (e.g., a front surface of the head mounted device) points may be considered as an orientation 110 of the head mounted device 100. The head mounted device 100 may include an orientation sensor that measures the orientation 110, which may include a gyroscope and / or an accelerometer. In some examples, the gyroscope may be included in an inertial measurement unit (IMU) included in the head mounted device 100. The head mounted device 100 and / or the gyroscope may compare the orientation 110 to a parallel plane 108. The parallel plane 108 may be parallel to the surface 102. Angle The difference between orientations 110 in parallel planes 108 may be measured and / or represented.
[0045] The head mounted device 100 includes a distance determination device configured to measure a distance 106 between the head mounted device 100 and a landmark 104 (e.g., a distance between a (e.g., dot-shaped) area of the head mounted device and a dot-shaped landmark or a point of the landmark). As used herein, the distance 106 may refer to any distance between the head mounted device 100 and the landmark 104, and may include distances at the respective locations of the head mounted device 100 and the landmark 104. Figure 1A , 1B, and 1C. The head mounted device 100 may measure a first distance 106A between the head mounted device 100 and the landmark 104 when the user 150 is in the starting position of the push-up. The landmark 104 may include a portion of the surface 102. The head mounted device 100 may select the landmark 104 and measure the distance 106A to the same landmark 104 throughout the exercise (in Figure 1AIn the example of the exercise being push-ups). Landmark 104 can be a fixed object that does not move, and / or a portion of a fixed object that does not move, to provide consistency when measuring distance 106. Head-mounted device 100 can select landmark 104 as an object that will remain within the field of view of a camera included in head-mounted device 100 throughout the exercise (and / or repetition). Landmark 104 can be within reach of the user. Head-mounted device 100 can measure distance 106A based on one or more images of landmark 104 captured by a distance measurement device (e.g., a camera included in head-mounted device 100). For example, head-mounted device 100 can measure distance 106A by triangulation between multiple images of landmark 104 captured by a camera and / or based on one or more measurements of orientation by a gyroscope.
[0046] exist Figure 1A In the example shown, distance 106A may be within the starting position range. The starting position range may be a function of the height of user 150, such as a range around an estimated arm length of user 150. For example, the length of user 150's arms 156A, 156B may be estimated to be 40% of the height of user 150. In an example where the length of user 150's arms 156A, 156B may be estimated to be 40% of the height of user 150, the starting position range may be between 30% and 40% of the height of user 150. In some examples, based on distance 106A being within the starting position range, head mounted device 100 may output an instruction for user 150 to begin exercising and / or repetitions, such as an audible output: "Down! ".
[0047] exist Figure 1A In the example shown, orientation 110 may be within a range of starting orientations. In the push-up example, angle The starting orientation range (which measures the difference (angle) between orientation 110 and parallel plane 108) can be close to 90° or perpendicular to surface 102, such as between 80° and 90°. In this example, because angle The user 150 is considered to be in a proper position to start push-ups because the orientation 110 of the head mounted device 100 is within the starting orientation range. The head mounted device 100 may output instructions for the user to start an exercise, such as push-ups, based on the orientation 110 of the head mounted device 100 being within the starting orientation range. In some examples, the instructions may be audible outputs, such as "Begin! " or "Down!".
[0048] FIG. 1B shows user 150 performing a prone position in an intermediate position. In this example, user 150 has bent the arms of user 150 and distance 106 (denoted as second distance 106B) has increased from Figure 1A104. The first distance 106A shown in the starting position of the user 150 is reduced. However, the distance 106B is still outside the completion range from the landmark 104. The completion range can also be a function of the height of the user 150. In some examples, the final position can be considered to be a position where the user's head and / or the head mounted device 100 is within 10% of the height of the user 150 from the landmark 104. In the example where the final position is considered to be a position where the user's head and / or the head mounted device 100 is within 10% of the height of the user 150 from the landmark 104, the completion range can be approximately 10% of the height of the user 150, such as between 5% and 15% of the height of the user 150. In some examples, based on the distance 106B being outside the completion range, the head mounted device 100 can output an instruction for the user 150 to continue exercising, such as an audible output: "Keep going!
[0049] Figure 1C A user 150 is shown performing a push-up in the bottom or finishing position. In this example, the user 150 has completed the first portion of the exercise, which in this example is the descent of a push-up. Based on completing the first portion of the exercise, the distance 106 has decreased, and the third distance 106C is within the completion range. Figure 1C 2, third distance 106C is less than completion distance 204. Based on third distance 106C being less than completion distance 204, head mounted device 100 may determine that distance 106C is within completion range 205 (shown in FIG. 2). In some examples, head mounted device 100 may deem that user 150 has completed a repetition of the exercise and increment a repetition counter. In some examples, the repetition counter may be incremented only after user 150 has returned to the repetition counter. Figure 1A The head mounted device 100 will not consider the user 150 to have completed a repetition of the exercise until the starting position and / or distance 106 shown has returned to the starting position range.
[0050] Figure 1D A user 150 is shown performing push-ups in a configuration in which the user's 150 hips are too high. In the case where the user's 150 hips are too high, the angle Φ will be less than 180°, and the user's 150 head 152 will sink, causing the angle (which represents the difference between orientation 110 and parallel plane 108) is outside the orientation range and / or is greater than 90°. Based on the angle Outside of the orientation range and / or greater than 90°, the head mounted device 100 may output an indication that the user's 150 form is incorrect. In some examples, the indication may be an audible output, such as “Lower your hips”.
[0051] Figure 1EA user 150 is shown performing a push-up in a configuration in which the user's 150 hips are too low. In the case where the user's 150 hips are too low, the angle Φ will be greater than 180° and the user's 150 head 152 will be raised, causing the angle (which represents the difference between orientation 110 and parallel plane 108) is outside the orientation range and / or is less than a threshold morphology value (such as 80°). Outside of the orientation range and / or less than a threshold form value (such as 80°), head mounted device 100 may output an indication that the form of user 150 is incorrect. In some examples, the indication may be an audible output, such as “Liftyour hips”.
[0052] 2 shows a graph with distance thresholds and ideal orientation as a function of distance. Starting position range 202 may include distances where distance 106 is greater than or equal to return to completion distance 206. Completion range 205 may include distances where distance 106 is less than or equal to completion distance 204. Completion range 205 may represent a range of distances 106 within which user 150 may be considered to have completed the first portion of the workout.
[0053] Completion distance 204 may represent, for example, the distance 106 of head mounted device 100 from surface 102 and / or landmark 104 when user 150 has completed the first portion of an exercise and / or halfway through a repetition of an exercise. Completion distance 204 and / or completion range 205 may be the distance or position at which the user stops moving and / or changes direction of movement during an exercise. In the push-up and squat example, completion distance 204 may represent when user 150 has reached the bottom of an exercise (e.g., at Figure 1C In the example of a push-up, completion distance 204 may represent distance 106 when user 150 has reached the top of the exercise. Completion range 205 may represent any value below completion distance 204 to account for situations where user 150 moves beyond completion distance 204.
[0054] Return to completion distance 206 may represent when user 150 has returned to the starting position of the exercise (such as when doing a push-up with user 150's arms 156A, 156B fully extended, as in Figure 1A106 when the user 150 is in a standing position (as shown in FIG. 10A ), or when doing a squat. The return to completion distance 206 and / or the starting position range 202 may be a distance or position at which the user stops moving and / or changes direction of movement after having completed a repetition of the exercise during the exercise. The starting position range 202 may include any value of the distance 106 that is greater than the return to completion distance 206 and allows the return to completion distance 206 to have a value less than the distance 106A when the user 150 is fully extended, thereby allowing a certain tolerance in the movement of the user 150.
[0055] A repetition may be considered to be a movement and / or execution of an exercise that is repeated within an exercise session. A single (complete) repetition may include movement from the starting position range 202 to the finishing range 205 and movement from the finishing range back to the starting position range 202, or movement from the finishing range 205 to the starting position range 202 and movement from the starting position range 202 back to the finishing range 205. A half repetition and / or first portion of an exercise may include movement from the finishing range 205 to the starting position range 202, or movement from the starting position range 202 to the finishing range.
[0056] Head mounted device 100 may determine completion distance 204, completion range 205, return completion distance 206, and / or starting position range 202 as a function of the height of user 150. In some examples, return completion distance 206 may be, for example, 40% of the height of user 150, and starting position range 202 may be any value equal to or greater than return completion distance 206. In some examples, completion distance 204 may be half of return completion distance 206, or completion distance 204 may be 10% of the height of user 150. In some examples, completion range 205 may be any value less than or equal to completion distance 204.
[0057] In some examples, return to completion distance 206 and completion distance 204 may be when user 150 is in the starting or plank position and user 150's arms 156A, 156B are straight (eg, Figure 1A In some examples, head mounted device 100 may determine distance 106A when user 150 is at the starting position, and thereafter determine return completion distance 206 and completion distance 204 as a function of distance 106A when user 150 is at the starting position. In some examples, return completion distance 206 may be 60% of distance 106A when user 150 is at the starting position, and / or completion distance 204 may be 10% of distance 106A when user 150 is at the starting position.
[0058] Ideal orientation 208 may be a function of distance 106. For example, when user 150 has completed a push-up (e.g. Figure 1C ) and the distance 106 is at or near the completion distance 204 and / or the distance 106 is within the completion range, the ideal orientation 208 and / or The ideal value may be 90°. Figure 1A 1, the ideal orientation 208 may be a value less than 90°, such as 80°, when in the starting position shown. In some examples, the angle of the ideal orientation 208 may be the arccosine of the distance 106 divided by the height of the user 150. The orientation range, or the range around the ideal orientation 208, may be the ideal orientation 208 plus or minus a specified number of degrees, such as plus or minus 2° or plus or minus 3°.
[0059] Figure 3 A height measurement of a user 150 in a standing position wearing the head mounted device 100 is shown. In some examples, the head mounted device 100 can determine the height of the user 150 when the user 150 is in a standing position.
[0060] exist Figure 3 In the example shown, user 150 is standing on surface 102. User 150 can look around, enabling head mounted device 100 to capture one or more images via a camera included in head mounted device 100. Movement of user 150 can also cause head mounted device 100 to move to different orientations 110. Figure 3 The angle between the orientations 110 in the parallel plane 108 parallel to the surface 102 is shown. .
[0061] Based on capturing one or more images and / or multiple orientations 110, the head mounted device 100 can determine a height 302 from the head mounted device 100 to the surface 102, or a height 304 from the top of the head of the user 150 to the surface 102. As non-limiting examples, the head mounted device 100 can determine the height 302 based on an optical method, based on an accelerometer included in the head mounted device 100, based on a simultaneous localization and mapping (SLAM) technique, based on a Rule of 57 method, or based on a DisNet method. The head mounted device 100 can use the heights 302, 304 to determine the completion distance 204, the completion range, the return completion distance 206, and / or the starting position range 202. In some examples, the head mounted device 100 may determine the height 304 of the user 150 based on user input, such as the user 150 verbally stating the height of the user 150, or the user 150 manually entering the height 304 of the user 150 into the head mounted device 100 or another device that communicates with the head mounted device 100.
[0062] Figure 4 A user 150 is shown wearing the head mounted device 100 performing a crunch. A crunch (also referred to as a "sit-up") is another example of an exercise that the head mounted device 100 may monitor that the user 150 is performing and track repetitions. In the example of a crunch, a first portion of the exercise would include the user 150 lifting the user's 150 head and / or torso 154 away from the surface 102, and thereby increasing the distance of the user's 150 head and / or torso 154 from the surface 102. In the example of a crunch, a second portion of the exercise would include the user 150 lowering the user's 150 head and / or torso 154 back toward the surface 102, and thereby decreasing the distance of the user's 150 head and / or torso 154 from the surface 102. The head mounted device 100 may rely on a portion of the surface 102 as a landmark, or select another object in the field of view in front of the user's 150 head.
[0063] In some examples, the head mounted device 100 can track the movement and / or progress of the user 150 during the crunch exercise based on the orientation 110 of the head mounted device 100. The orientation 110 of the head mounted device 100 can be determined by angle. , which measures the difference between the orientation 110 of the head mounted device 100 and the angle of a parallel plane 108 parallel to the surface 102.
[0064] FIG5 shows a user 150 wearing the head mounted device 100 performing a squat. In an example where the user 150 performs a squat as an exercise, in a first portion of the exercise, the user 150 may bend the legs of the user 150 to move downward, and in a second portion of the exercise, straighten the legs of the user 150 to move upward. The head mounted device 100 may monitor the form of the user 150 performing the squat based on the orientation 110 of the head mounted device 100. In this exercise, proper form may dictate the angle. (which measures the difference between the orientation 110 of the head mounted device 100 and the parallel plane 108) is close to zero, such as within a threshold range of zero, such as within 10° of zero.
[0065] In the squat example, the return completion distance 206 may be the height of user 150, and / or be close to the height of user 150, such as 90% of the height of user 150, and / or the starting position range 202 may be a value equal to or greater than 90% of the height of user 150. In some examples, the completion distance 204 may be 70% of the height of user 150, and / or the completion range may be less than or equal to 70% of the height of user 150, requiring the user to squat down 30% of the height of user 150.
[0066] 6 is a block diagram of a head mounted device 100. The head mounted device 100 may include any combination of the modules described herein.
[0067] The head mounted device 100 may include a camera 602. The camera 602 may include one or more cameras, such as one or more cameras that capture images from the same direction as the eyes of the user 150 capture images, and / or one or more gaze tracking cameras that capture images of the eyes of the user 150 for the purpose of tracking the eyes of the user 150. The camera 602 may capture images, such as images of the landmark 104 and / or other objects. The camera 602 may include a camera that captures light, and / or one or more depth sensors and / or range sensors (such as a camera, a time of flight (ToF) sensor, a light detection and / or ranging (LiDAR) camera). The camera 602 is an example of a distance-determining device and / or a depth sensing device that can capture image data and / or data based on which the head mounted device 100 can determine the distance 106 (such as the distance 106 to the landmark 104).
[0068] The head mounted device 100 may include a gyroscope 604. The gyroscope 604 may determine an orientation 110 of the head mounted device 100. The gyroscope 604 may determine the orientation 110 of the head mounted device 100 relative to a parallel plane 108 parallel to the surface 102 of the earth and / or relative to a direction perpendicular to the surface 102 of the earth and / or extending through the center of the earth.
[0069] The head mounted device 100 may include an accelerometer 606. The accelerometer 606 may measure acceleration, velocity, and / or movement of the head mounted device 100. In some examples, the gyroscope 604 and the accelerometer 606 may be included in an inertial measurement unit (IMU) included in the head mounted device.
[0070] In some examples, head mounted device 100 may use accelerometer 606 and / or accelerometer 606 and camera 602 to determine a speed of head mounted device 100, which may indicate a speed at which user 150 is performing an exercise. Head mounted device 100 may determine whether the speed exceeds a speed threshold, which may indicate that user 150 is at risk of injuring a joint of user 150 during the exercise. If the speed exceeds the speed threshold, head mounted device 100 may output an instruction for user 150 to slow down the performance of the exercise based on the speed of head mounted device 100 exceeding the speed threshold. For example, speaker 610 may output an audible instruction to “Slow down.”
[0071] The head mounted device 100 may include a display 608. The display 608 may present graphical output to the user 150. The display 608 may be included on an interior portion of the head mounted device 100, facing the eyes of the user 150. In some examples, the display 608 may include a graphical representation of the current body position of the user 150, such as a representation of the form of the user 150 performing the exercise, and / or an indication of whether the user is performing the exercise with proper form (such as in the example of push-ups, whether the user's 150 hips are too low or too high, or in the example of squats, whether the user's back is leaning too far forward). In some examples, the display 608 may also indicate the number of repetitions that the user has performed. In some examples, the color presented by the display 608 may indicate whether the form of the user 150 is proper, such as green indicating proper form and red indicating improper form.
[0072] The head mounted device may include speakers 610. Speakers 610 may include one or more speakers that provide audible output to user 150.
[0073] The head mounted device may include an altitude determiner 612. The altitude determiner 612 may determine an altitude 302, 304 of the user 150. In some examples, the altitude determiner 612 may determine the altitude 302, which may be a distance from the head mounted device 100 to the nearest portion of the surface 102, based on triangulation of multiple images captured by the camera 602 and / or based on angle and / or orientation data measured by the gyroscope 604. The altitude determiner 612 may determine the altitude 302, 304 using the techniques described with respect to the distance determiner 616.
[0074] Head mounted device 100 may include landmark selector 614. Landmark selector 614 may select a landmark 104 that will be an object and / or location used as a reference point for head mounted device 100 to determine distance 106. In some examples, landmark selector 614 may select a landmark 104 that is a portion of surface 102 that is closest to head mounted device 100. In some examples, landmark selector 614 may select a landmark 104 that has features that make it less likely that a recognition error will occur.
[0075] The head mounted device 100 may include a distance determiner 616. The distance determiner 616 may determine the distance 106 of the head mounted device 100 from the landmark 104. The distance determiner 616 may determine the distance 106 based on an image captured by the camera 602 and / or an angle measured by the gyroscope 604. As non-limiting examples, the distance determiner 616 may determine the distance 106 using a single camera 602 through a monocular vision method, a log mapping method, or a method of performing a regression coefficient analysis using data extracted from a captured photo, or may determine the distance by self-positioning using a single camera 602 and a changing orientation 110 of the head mounted device 100. In some examples, the distance determiner 616 may determine the distance based on image data captured by the camera 602 and / or orientation data received from the gyroscope 604.
[0076] The head mounted device 100 may include an orientation determiner 617. The orientation determiner 617 may determine the orientation 110 of the head mounted device 100. In some examples, the orientation determiner 617 may also determine the angle , which measures the difference between the orientations 110 in the parallel planes 108. The orientation determiner 617 can determine the orientation of the head mounted device 100 based on the orientation data received from the gyroscope 604.
[0077] The head mounted device 100 may include a range determiner 618. The range determiner 618 may determine a range, such as a starting position range, an intermediate position range, a finishing range, and / or an orientation range. The distance-based range may be based on the determined height 302, 304 of the user 150. The range may also depend on the category of exercise. For example, the range may be different for a category of push-ups, a category of crunches, and / or a category of squats.
[0078] The range determiner 618 may include a starting position range determiner 620. The starting position range determiner 620 may determine the starting position range 202 shown in FIG. 2. The starting position range determiner 620 may determine the starting position range 202 based on the type of exercise and / or the height of the user. In the example of push-ups, the starting position range determiner 620 may determine the starting position range 202 to be, for example, between 30% and 40% of the height 302, 304 of the user 150. In the example of crunches, the starting position range determiner 620 may determine the starting position range 202 to be a short distance from the surface 102, such as, for example, 10% of the height 302, 304 of the user 150 from the surface 102. In the example of squats, the starting position range determiner 620 may determine the starting position range 202 to be at least 90% of the height 302, 304 of the user 150 from the surface 102. For certain exercises, such as push-ups and squats, the starting position range determiner 620 may determine the starting position range 202 as a minimum distance, such as at least 30% of the height 302, 304 of the user 150 for push-ups and at least 90% of the height 302, 304 of the user 150 for squats. For certain exercises, such as crunches, the starting position range determiner 620 may determine the starting position range 202 as a maximum distance 106 from the surface 102, such as at most 10% and / or no more than 10% of the height 302, 304 from the surface 102.
[0079] The range determiner 618 may include an intermediate position range determiner 622. The intermediate position range determiner 622 may determine a range within which the user is not considered to be at the starting position or the finishing position. The intermediate position range determined by the intermediate position range determiner 622 may include, for example, a distance 106 outside the starting position range 202 and outside the finishing distance range, and / or between the return finishing distance 206 and the finishing distance 204. The intermediate position range determiner 622 may determine the intermediate position range based on the category of the exercise.
[0080] Range determiner 618 may include completion location range determiner 623. Completion location range determiner 623 may determine completion range 205, which may be considered a range of distance 106 within which user 150 may be considered to have completed the first portion of the workout. Completion location range determiner 623 may determine completion range 205 based on the category of the workout.
[0081] In some examples, the completion position range determiner 623 may determine the completion range 205 as a ratio of the height 302, 304 of the user 150. For example, when the exercise is push-ups, the completion position range determiner 623 may determine the completion distance 204 to be 10% of the height 302, 304 of the user 150, or less than or equal to 50% of the return completion distance 206. When the exercise is squats, the completion position range determiner 623 may determine the completion distance 204 to be 70% of the height 302, 304 of the user 150. When the exercise is crunches, the completion position range determiner 623 may determine the completion distance 204 to be 20% of the height 302, 304 of the user 150 from the surface 102.
[0082] In some examples, the completion position range determiner 623 may change the completion distance 204 to modify the difficulty of the exercise. For example, the completion position range determiner 623 may reduce the completion distance 204 to make push-ups and / or squats more difficult. The completion position range determiner 623 may change the completion distance 204, such as by reducing the completion distance 204 based on the exercise history of the user 150 (which may include the current exercise session and / or the previous exercise session). In some examples, if the user 150 has previously completed a given number of repetitions of the exercise, the completion position range determiner 623 may make the exercise more difficult by changing the completion distance 204 (such as by reducing the completion distance 204). In some examples, the completion position range determiner 623 may make the exercise more difficult by changing the completion distance 204 (such as by reducing the completion distance 204 if the user 150 quickly completes the repetitions during the exercise session, which may be considered an indication that the completion distance 204 is too easy for the user 150).
[0083] Range determiner 618 may include orientation range determiner 624. In some examples, orientation range determiner 624 may determine orientation 110 and / or 2. The range within which user 150 may be considered to be performing an exercise with proper form. The range determined by orientation range determiner 624 may be considered to be a proper form range. Orientation range determiner 624 may determine the range based on the category of exercise. The orientation range determined by orientation range determiner 624 may be a band and / or range around ideal orientation 208 shown in FIG. 2.
[0084] In the push-up example, the angle of ideal orientation 208 may be the arccosine of distance 106 divided by the height of user 150. An orientation range, or range around ideal orientation 208, such as ideal orientation 208 plus or minus a specified number of degrees, such as plus or minus 2° or plus or minus 3°.
[0085] In the squat example, the angle of the ideal orientation 208 may be zero, and the range of orientations may be plus or minus a specified number of degrees, such as plus or minus 2° or plus or minus 3°.
[0086] In the example of a crunch, the angle of the ideal orientation 208 may be the arccosine of the distance 106 divided by half the height of the user 150 (since only the torso 154 of the user 150 is moving). An orientation range, or a range around the ideal orientation 208, such as the ideal orientation 208 plus or minus a specified number of degrees, such as plus or minus 2° or plus or minus 3°.
[0087] The head mounted device 100 may include a state determiner 626. The state determiner 626 may determine the state of the user 150 within the exercise. The state determiner 626 may determine, for example, whether the user 150 is in a starting position, an intermediate position, or a finishing position. For example, the state determiner 626 may determine that the user 150 is in the starting position based on the distance 106 determined by the distance determiner 616 being within the starting position range 202. The state determiner 626 may determine that the user 150 is in the intermediate position based on the distance 106 determined by the distance determiner 616 being within the intermediate range and / or between the starting position range and the finishing position range. The state determiner 626 may determine that the user is in the finishing position based on the distance 106 determined by the distance determiner 616 being within the finishing range 205.
[0088] The head mounted device 100 may include a repetition counter 628. The repetition counter 628 may increment the repetition value when the user 150 completes a repetition, and / or when the user 150 completes a portion of a workout. In some examples, the repetition counter 628 may increment the repetition value when the state determiner 626 determines that the user 150 has entered the completion range 205. In some examples, the repetition counter 628 may increment the repetition value when the state determiner 626 determines that the user 150 has entered the completion range 205 and then returned to the starting position range 202. In some examples, when the repetition counter 628 increments the repetition value, the speaker 610 may output an audible notification to the user 150, such as by audibly stating the number of repetitions that the user 150 has completed.
[0089] The head mounted device may include a posture monitor 630. The posture monitor 630 may determine the orientation 110 of the user 150 determined by the orientation determiner 617. When it falls outside the orientation range determined by the orientation range determiner 624. In some examples, when the form monitor 630 determines that the form of the user 150 has fallen outside the orientation range, the speaker 610 may output an audible notification to the user 150 to correct the body posture of the user 150. For example, when the form monitor 630 determines that the orientation 110 of the head mounted device 100 is too low, the speaker 610 may instruct the user 150 to "Lower your hips", and / or when the form monitor 630 determines that the orientation 110 of the head mounted device 100 is too high, the speaker 610 may instruct the user 150 to "raise your hips".
[0090] The head mounted device 100 may include a timer 632. The timer 632 may maintain a timer indicating the length of time that the user 150 has maintained a certain position, such as a starting position or a finishing position. In some examples, the display 608 may indicate to the user 150 how long the user 150 has maintained the position. For example, the user 150 may want to maintain a particular position for a predetermined amount of time before returning to a different position.
[0091] The head mounted device 100 may include at least one processor 634. The at least one processor 634 may execute instructions, such as instructions stored in at least one memory device 636, to cause the head mounted device 100 to perform any combination of the methods, functions, and / or techniques described herein.
[0092] The head mounted device 100 may include at least one memory device 636. The at least one memory device 636 may include a non-transitory computer-readable storage medium. The at least one memory device 636 may store thereon data and instructions that, when executed by at least one processor (such as the processor 634), are configured to cause the head mounted device 100 to perform any combination of the methods, functions, and / or techniques described herein. Therefore, in any of the implementations described herein (even if not explicitly stated in conjunction with a particular implementation), software (e.g., processing modules, stored instructions) and / or hardware (e.g., processors, memory devices, etc.) associated with or included in the head mounted device 100 may be configured to perform any combination of the methods, functions, and / or techniques described herein, either alone or in combination with the head mounted device 100.
[0093] At least one memory device 636 may store a repetition value 638. When user 150 begins an exercise, the repetition value may start at zero. Each time user 150 completes a repetition of an exercise, repetition counter 628 may increment repetition value 638.
[0094] The head mounted device 100 may include at least one input / output node 640. The at least one input / output node 640 may receive and / or transmit data, such as receiving and / or transmitting data from and / or to the head mounted device 100 and another electronic device, and / or may receive input and provide output from and to the user 150. The input and output functions may be combined into a single node, or may be divided into separate input and output nodes. The input / output node 640 may include a camera 602, a gyroscope 604, an accelerometer 606, a display 608, a speaker 610, and / or any wired or wireless interface (such as Bluetooth or Institute of Electrical and Electronics Engineers 802.11) for communicating with other electronic devices.
[0095] 7 is a flow chart illustrating a method performed by the head mounted device 100. The head mounted device 100 may initiate an exercise mode (702), such as a push-up mode, a crunch mode, or a squat mode. In some examples, the head mounted device 100 may initiate the exercise mode based on user input, such as, as non-limiting examples, user input by the user 150 stating "push-ups," "crunches," or "squats." In some examples, the head mounted device 100 may initiate the exercise mode (702) based on the determined movement of the head mounted device 100 detected by the accelerometer 606 matching a pattern stored in association with a particular exercise, such as push-ups, crunches, or squats. In some examples, the head mounted device 100 may initiate the exercise mode (702) based on the distance of change 106 determined by the head mounted device 100 matching a pattern stored in association with a particular exercise, such as push-ups, crunches, or squats.
[0096] After starting the exercise mode (702), the head mounted device 100 can determine whether the user is in the starting position (704). In the push-up example, the head mounted device 100 can determine whether the user is looking down and within a predetermined distance 106 of the surface 102 (such as based on the angle determined by the orientation determiner 617). Within a predetermined margin of 90° (such as 10°), and / or whether the distance 106 is within the starting position range 202. In the example of squatting, the head mounted device 100 can determine whether the user is standing and looking forward, such as whether the distance 106 is within the starting position range 202 of at least 90% of the height 302, 304 of the user 150 and whether the orientation 110 indicates that the user 150 is looking forward, such as the angle In the example of a crunch, the head mounted device 100 can determine whether the distance 106 is within the starting position range 202 (such as no greater than 10% of the height 302, 304 of the user 150) and whether the orientation 110 of the head mounted device 100 indicates that the user 150 is looking upward (such as at an angle of 20°). Within the starting orientation range, the starting orientation range may be considered to be a predetermined range perpendicular to the parallel plane 108 , such as between 80° and 100° from parallel to the surface 102 ).
[0097] In some examples, determining that user 150 is at the starting location ( 704 ) may include determining that a repetition of the exercise has not been completed (and / or has not been completed). In some examples, determining that a repetition of the exercise has not been completed may include determining that the distance is outside of completion range 205 .
[0098] If the head mounted device 100 determines that the user 150 is not in the starting position, the head mounted device 100 may instruct the user 150 to enter the starting position 706. In some examples, the head mounted device 100 may instruct the user 150 to enter the starting position 706 by outputting an audible instruction such as “Get into position!
[0099] If head mounted device 100 determines that the user is in the starting position, head mounted device 100 may transition to a counting mode (707). Counting mode may include determining whether user 150 has completed a repetition and / or what state user 150 is in within a workout, and / or maintaining a count of the number of repetitions that user 150 has completed. Transitioning to counting mode (707) may include setting a counter to zero. In some examples, transitioning to counting mode in (706) may include determining that distance 106 is outside of a completion range.
[0100] After transitioning to the counting mode (707), the head mounted device 100 may instruct the user 150 to perform the first portion of the exercise (708). In some examples, the instructions to perform the first portion of the exercise (708) may include repeating the indication that it has not yet been completed. The instructions to perform the first portion of the exercise (708) may include an audible output of the speaker 610. In an example where the exercise is a push-up or a squat, the instructions to perform the first portion of the exercise (708) may include an audible instruction "Down!". In an example where the exercise is a crunch, the instructions to perform the first portion of the exercise (708) may include an audible instruction "Up! In some examples, when the completion position range determiner 623 changes the completion distance 204 to make the exercise more difficult for the user 150, the head mounted device 100 may instruct the user 150 to continue the exercise, such as through an audible output, such as in an example where the exercise is a push-up or a squat, by providing an audible output "Keep going down! ".
[0101] In some examples, before instructing user 150 to perform the first portion of the exercise (708), head mounted device 100 may determine that user 150 has left a starting position, and / or has entered an intermediate position, such as by bringing distance 106 within an instruction threshold distance of surface 102.
[0102] After instructing the user 150 to perform the first portion of the exercise (708), the head mounted device 100 can determine whether the distance 106 is within the completion range 205 (710). In the push-up example, determining whether the user 150 is within the completion range 205 (710) can include determining whether the user 150 has lowered the user 150 close enough to the surface 102. If the head mounted device 100 determines that the user 150 and / or the head mounted device 100 is not within the completion range 205, the head mounted device 100 will again instruct the user 150 to perform the first portion of the exercise (708).
[0103] If the head mounted device 100 determines that the user 150 and / or the head mounted device 100 is within the completion range 205, the head mounted device 100 may instruct the user 150 to perform the second portion of the exercise (712). In some examples, the instructions to perform the second portion of the exercise (712) may include repeating the indication that it has been completed. The instructions to perform the second portion of the exercise (712) may include an audible output of the speaker 610. In an example where the exercise is a push-up or a squat, the instructions to perform the first portion of the exercise (712) may include an audible instruction "Up!". In an example where the exercise is a crunch, the instructions to perform the first portion of the exercise (708) may include an audible instruction "Down!".
[0104] After instructing user 150 to perform the second portion of the exercise (712), head mounted device 100 can determine whether user 150 and / or head mounted device 100 is within starting location range 202 (714), and / or whether user 150 has completed the second portion of the exercise. Head mounted device 100 can, for example, determine whether distance 106 is within starting location range 202. If head mounted device 100 determines that user 150 and / or head mounted device 100 is not within starting location range 202, and / or the second portion of the exercise has not been completed, head mounted device 100 can again instruct user 150 to perform the second portion of the exercise (712).
[0105] If the head mounted device 100 determines that the user 150 and / or the head mounted device 100 is within the starting position range 202, and / or the second portion of the exercise has been completed, the head mounted device 100 may increment the repetition counter (716), increasing the repetition value by one. In some examples, after determining at (710) that the user 150 and / or the head mounted device 100 is within the completion range 205, the head mounted device 100 may increment the repetition counter 628 (716). In some examples, the head mounted device 100 may output the repetition value 638, thereby notifying the user 150 of how many repetitions the user 150 has completed, such as providing an audible output with the repetition value or the display 608 indicating a number representing the repetition value 638. After incrementing the repetition counter (716), the head mounted device 100 may again instruct the user 150 to perform the first portion of the exercise (708). In some examples, if user 150 has a goal of a certain number of repetitions to complete an exercise, head mounted device 100 may compare repetition value 638 to the goal, and if repetition value 638 reaches and / or equals the goal, head mounted device 100 may notify user 150 that user 150 has reached the goal, rather than instructing user 150 to perform the first portion of the exercise (708).
[0106] In some examples, at any time while the head mounted device 100 is performing the method, the form monitor 630 may determine whether the orientation 110 is within an appropriate form range, which may also be referred to as an orientation range. If the form monitor 630 determines that the orientation 110 is outside the appropriate form range, the form monitor 630 may instruct a module in the head mounted device 100 (such as the speaker 610) to output instructions to the user 150 to correct the body posture. The form monitor 630 may continue to issue instructions to the user 150 to correct the body posture until the form monitor 630 determines that the orientation 110 is within an appropriate form range and / or orientation range. In some examples, at any time while the head mounted device 100 is performing the method 700, the display 608 may provide visual feedback to the user 150 about the form of the user 150 performing the exercise, such as a graphical indication of the form of the user 150 and / or an indication of whether the user's form is appropriate or inappropriate.
[0107] 8 is a flow chart showing another method 800 performed by the head mounted device 100. The method 800 may include: determining, by the head mounted device 100, based on first data received from a depth-sensing device and / or a distance-determination device (such as a camera 602) included in the head mounted device 100, that a first distance 106 of the head mounted device 100 from the landmark 104 is outside the completion range 205 (802). The method 800 may include: based on the determination that the first distance 106 of the head mounted device 100 from the landmark 104 is outside the completion range 205 from the landmark 104, outputting an indication that the repetition is not yet completed (802). The method 800 may include: determining, based on second data received from the depth-sensing device and / or the distance-determination device, that a second distance 106 of the head mounted device 100 from the landmark 104 is within the completion range 205 (806). The method 800 may include, based on a determination that the second distance 106 of the head mounted device 100 from the landmark 104 is within the completion range 205 , incrementing the repetition counter 628 and outputting an indication that the repetition has been completed ( 808 ).
[0108] In some examples, method 800 may further include determining a completion range 205 based on a height 302 , 304 of a user 150 wearing the head mounted device 100 .
[0109] In some examples, method 800 may further include determining a height 302 , 304 of user 150 based on receiving input from user 150 .
[0110] In some examples, method 800 may further include determining a height 302 , 304 of user 150 based on third data received from the depth-sensing device and / or the distance-determining device and orientation 110 data received from gyroscope 604 when user 150 is in a standing position.
[0111] In some examples, method 800 may further include: determining an orientation range based on a first distance 106 of the head mounted device 100 from a landmark 104; determining that the orientation 110 of the head mounted device 100 is outside the orientation 110 range based on orientation 110 data received from the gyroscope 604; and based on the determination that the orientation 110 of the head mounted device 100 is outside the orientation, outputting an indication that the posture of the user 150 wearing the head mounted device 100 is incorrect.
[0112] In some examples, method 800 may further include: determining an orientation range based on a first distance 106 of the head-mounted device 100 from a landmark 104; determining that the orientation 110 of the head-mounted device 100 is within the orientation 110 range based on orientation 110 data received from the gyroscope 604; and based on the determination that the orientation 110 of the head-mounted device 100 is within the orientation range, outputting an indication that the posture of the user 150 wearing the head-mounted device 100 is correct.
[0113] 9 is a flow chart showing another method 900 performed by the head mounted device 100. The method 900 may include: based on the orientation 110 of the head mounted device 100 being within the starting orientation range, outputting an instruction for the user 150 to start the exercise (902). The method 900 may include: based on first data captured by a depth-sensing device and / or a distance-determining device (such as a camera 602), determining that a first distance 106 of the head mounted device 100 from the landmark 104 is outside the completion range 205 (904). The method 900 may include: based on the first distance 106 from the landmark 104 being outside the completion range 205, outputting an instruction for the user 150 to complete the first portion of the exercise (906). The method 900 may include: based on second data captured by the depth-sensing device and / or the distance-determining device, determining that a second distance 106 of the head mounted device 100 from the landmark 104 is within the completion range 205 (908). The method 900 may include, based on the second distance 106 of the head mounted device 100 from the landmark 104 being within the completion range 205, outputting instructions for the user 150 to perform the second portion of the exercise (910). The method 900 may include, based on third data captured by the depth-sensing device and / or the distance-determination device, determining that the third distance 106 of the head mounted device 100 from the landmark 104 is within the starting position range 202 (912). The method 900 may include, based on the third distance 106 of the head mounted device 100 from the landmark 104 being within the starting position range 202, incrementing the repetition counter 628 (914).
[0114] In some examples, method 900 may further include: before determining that the first distance 106 of the head-mounted device 100 from the landmark 104 is outside the completion range 205 (904), determining that a third distance 106 of the head-mounted device 100 from the landmark 104 is within the starting position range 202 based on fourth data captured by the depth-sensing device and / or the distance-determination device; and setting the repetition counter 628 to zero based on the determination that the third distance 106 of the head-mounted device 100 from the landmark 104 is within the starting position range 202.
[0115] In some examples, method 900 may further include: after outputting an instruction (902) for user 150 to start exercising, running timer 632 when the third distance 106 between head mounted device 100 and landmark 104 is within starting position range 202; and outputting the value of timer 632.
[0116] In some examples, method 900 may further include: after outputting an instruction (902) for user 150 to start exercising, determining that orientation 110 of head mounted device 100 is outside of an appropriate morphological range, the appropriate morphological range being based on a first distance 106 of head mounted device 100 from landmark 104; and based on the determination that orientation 110 of head mounted device 100 is outside of the appropriate morphological range, outputting an instruction for user 150 to correct user 150's body posture.
[0117] In some examples, the completion range 205 may be based on the height 302 , 304 of the user 150 .
[0118] In some examples, method 900 may further include determining a height 302 , 304 of user 150 based on fourth data captured by the depth-sensing device and / or the distance-determination device before outputting an instruction ( 902 ) for user 150 to begin exercising.
[0119] In some examples, the completion range 205 is based on the height 302 , 304 of the user 150 and the category of the workout.
[0120] In some examples, method 900 may further include: determining that the speed of head mounted device 100 exceeds a speed threshold; and based on the speed of head mounted device 100 exceeding the speed threshold, outputting instructions for user 150 to slow down the performance of the exercise.
[0121] In some examples, landmark 104 may include a portion of surface 102 on which user 150 is performing an exercise.
[0122] 10 is a flow chart illustrating another method 1000 performed by a head mounted device 100. The method 1000 may include determining that a first orientation 110 of the head mounted device 100 is outside of an appropriate morphological range (1002), the appropriate morphological range being based on a distance 106 of the head mounted device 100 from a landmark 104. The method 1000 may include outputting an instruction to a user 150 to correct a body posture of the user 150 based on the determination that the first orientation 110 of the head mounted device 100 is outside of the appropriate morphological range (1002) (1004). The head mounted device 100 may be worn on a head of the user 150. The method 1000 may include determining that a second orientation 110 of the head mounted device 100 is within an appropriate morphological range (1006). The method 1000 may include, after determining that the second orientation 110 of the head mounted device 100 is within the appropriate morphological range (1006), determining that the distance 106 of the head mounted device 100 from the landmark 104 is within the completion range 205 based on data received from a depth-sensing device and / or a distance-determining device (such as the camera 602) (1008). The method 1000 may include, based on the distance 106 of the head mounted device 100 from the landmark 104 being within the completion range 205, incrementing the repeat counter 628 (1010).
[0123] In some examples, method 1000 may further include: based on the distance 106 of the head mounted device 100 from the landmark 104 being within the completion range 710, outputting an indication that the repetition has been completed.
[0124] In some examples, method 1000 may further include outputting an indication that user 150 is performing the exercise in a proper form based on a determination that second orientation 110 of head mounted device 100 is within a proper form range ( 1006 ).
[0125] In some examples, the completion range 205 may be based on the height 302 , 304 of the user 150 .
[0126] In some examples, landmark 104 may include a portion of surface 102 on which user 150 is performing an exercise.
[0127] Fig.11Examples of a general purpose computer device 1100 and a general purpose mobile computer device 1150 that can be used with the techniques described herein are shown. Computing device 1100 is intended to represent various forms of digital computers, such as laptops, desktops, tablet computers, workstations, personal digital assistants, televisions, servers, blade servers, mainframes, and other suitable computing devices. Computing device 1150 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular phones, smart phones, and other similar computing devices. The components shown here, their connections and relationships, and their functions are intended to be exemplary only and are not intended to limit the implementation of the inventions described and / or claimed in this document.
[0128] The computing device 1100 includes a processor 1102, a memory 1104, a storage device 1106, a high-speed interface 1108 connected to the memory 1104 and a high-speed expansion port 1110, and a low-speed interface 1112 connected to a low-speed bus 1114 and the storage device 1106. The processor 1102 can be a semiconductor-based processor. The memory 1104 can be a semiconductor-based memory. Each of the components 1102, 1104, 1106, 1108, 1110, and 1112 is interconnected using various buses and can be installed on a common motherboard or installed in other ways as appropriate. The processor 1102 can process instructions for execution within the computing device 1100, including instructions stored in the memory 1104 or on the storage device 1106, to display graphical information of a GUI on an external input / output device (such as a display 1116 coupled to the high-speed interface 1108). In other implementations, multiple processors and / or multiple buses may be used as appropriate along with multiple memories and multiple types of memory. In addition, multiple computing devices 1100 may be connected, with each device providing portions of the necessary operations (e.g., as a server farm, a group of blade servers, or a multi-processor system).
[0129] The memory 1104 stores information within the computing device 1100. In one implementation, the memory 1104 is one or more volatile memory units. In another implementation, the memory 1104 is one or more non-volatile memory units. The memory 1104 may also be another form of computer-readable medium, such as a magnetic disk or optical disk.
[0130] The storage device 1106 can provide mass storage for the computing device 1100. In one implementation, the storage device 1106 can be or include a computer-readable medium, such as 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 a device array (including a device in a storage area network or other configuration). A computer program product can be tangibly embodied in an information carrier. The computer program product can also include instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer-readable medium or a machine-readable medium, such as the memory 1104, the storage device 1106, or a memory on the processor 1102.
[0131] The high-speed controller 1108 manages bandwidth-intensive operations of the computing device 1100, while the low-speed controller 1112 manages less bandwidth-intensive operations. This allocation of functions is exemplary only. In one implementation, the high-speed controller 1108 is coupled to the memory 1104, the display 1116 (e.g., through a graphics processor or accelerator), and a high-speed expansion port 1110 that can accept various expansion cards (not shown). In this implementation, the low-speed controller 1112 is coupled to the storage device 1106 and the low-speed expansion port 1114. The low-speed expansion port, which may include various communication ports (such as USB, Bluetooth, Ethernet, wireless Ethernet), can be coupled to one or more input / output devices, such as a keyboard, a pointing device, a scanner, or a network device (such as a switch or router), for example, through a network adapter.
[0132] As shown, computing device 1100 can be implemented in a variety of different forms. For example, it can be implemented as a standard server 1120, or multiple implementations in a group of such servers. It can also be implemented as part of a rack server system 1124. In addition, it can be implemented in a personal computer such as a laptop computer 1122. Alternatively, components from computing device 1100 can be combined with other components in a mobile device (not shown) (such as device 1150). Each device in such a device can contain one or more of computing devices 1100, 1150, and the entire system can be composed of multiple computing devices 1100, 1150 that communicate with each other.
[0133] The computing device 1150 includes a processor 1152, a memory 1164, an input / output device (such as a display 1154), a communication interface 1166, and a transceiver 1168, among other components. The device 1150 may also be provided with a storage device (such as a microdrive or other device) to provide additional storage. Each of the components 1150, 1152, 1164, 1154, 1166, and 1168 are interconnected using various buses, and several of the components may be mounted on a common motherboard or otherwise as appropriate.
[0134] Processor 1152 may execute instructions within computing device 1150, including instructions stored in memory 1164. The processor may be implemented as a chipset including separate multiple analog and digital processor chips. The processor may provide, for example, coordination of other components of device 1150, such as controlling a user interface, applications executed by device 1150, and wireless communications performed by device 1150.
[0135] The processor 1152 can communicate with the user through a control interface 1158 and a display interface 1156 coupled to the display 1154. The display 1154 can be, for example, a TFT LCD (thin film transistor liquid crystal display) or an OLED (organic light emitting diode) display, or other suitable display technology. The display interface 1156 may include suitable circuitry for driving the display 1154 to present graphics and other information to the user. The control interface 1158 can receive commands from the user and convert them for submission to the processor 1152. In addition, an external interface 1162 in communication with the processor 1152 can be provided to enable near-field communication of the device 1150 with other devices. The external interface 1162 can, for example, provide wired communication in some implementations, or wireless communication in other implementations, and multiple interfaces can also be used.
[0136] The memory 1164 stores information within the computing device 1150. The memory 1164 may be implemented as one or more of one or more computer-readable media, one or more volatile memory units, or one or more non-volatile memory units. An expansion memory 1174 may also be provided and connected to the device 1150 via an expansion interface 1172, which may include, for example, a SIMM (single in-line memory module) card interface. Such an expansion memory 1174 may provide additional storage space for the device 1150, or may also store applications or other information of the device 1150. Specifically, the expansion memory 1174 may include instructions for executing or supplementing the processes described above, and may also include security information. Thus, for example, the expansion memory 1174 may be provided as a security module for the device 1150, and may be programmed with instructions that permit secure use of the device 1150. In addition, a security application may be provided via a SIMM card along with additional information, such as placing identification information on the SIMM card in an unbreakable manner.
[0137] The memory may include, for example, flash memory and / or NVRAM memory, as discussed below. In one implementation, a computer program product is tangibly embodied in an information carrier. The computer program product includes instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer-readable medium or machine-readable medium, such as memory 1164, expansion memory 1174, or memory on processor 1152, which may be received, for example, via transceiver 1168 or external interface 1162.
[0138] Device 1150 may communicate wirelessly via communication interface 1166, which may include digital signal processing circuitry, where necessary. Communication interface 1166 may provide for communication in various modes or protocols, such as GSM voice calls, SMS, EMS or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, etc. Such communication may occur, for example, via radio frequency transceiver 1168. In addition, short-range communication may occur, such as using Bluetooth, WiFi, or another such transceiver (not shown). In addition, GPS (global positioning system) receiver module 1170 may provide additional navigation-related and location-related wireless data to device 1150, which may be used as appropriate by applications running on device 1150.
[0139] Device 1150 may also communicate audibly using audio codec 1160, which may receive verbal information from a user and convert it into usable digital information. Audio codec 1160 may also generate audible sounds for the user, such as through a speaker (e.g., in an earpiece of device 1150). Such sounds may include sounds from voice phone calls, may include recorded sounds (e.g., voice messages, music files, etc.), and may also include sounds generated by applications operating on device 1150.
[0140] As shown, computing device 1150 can be implemented in a variety of different forms. For example, it can be implemented as a cellular phone 1180. It can also be implemented as a part of a smart phone 1182, a personal digital assistant, or another similar mobile device.
[0141] Various implementations of the systems and techniques described herein can be implemented in digital electronic circuit systems, integrated circuit systems, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system that includes at least one programmable processor that can be either special purpose or general purpose and can be coupled to receive data and instructions from and send data and instructions to a storage system, at least one input device, and at least one output device.
[0142] These computer programs (also referred to as programs, software, software applications, or code) include machine instructions for a programmable processor and may be implemented in high-level procedural and / or object-oriented programming languages and / or in assembly / machine languages. As used herein, the terms "machine-readable medium," "computer-readable medium," refer to any computer program product, apparatus, and / or device (e.g., disk, optical disk, memory, programmable logic device (PLD)) for providing 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 for providing machine instructions and / or data to a programmable processor.
[0143] To provide interaction with a user, the systems and techniques described herein may be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices may also be used to provide interaction with the user; for example, the feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form, including acoustic, verbal, or tactile input.
[0144] The systems and techniques described herein may be implemented in a computing system that includes a back-end component (e.g., as a data server), or includes a middleware component (e.g., an application server), or includes a front-end component (e.g., a client computer with a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described herein), or any combination of such back-end components, middleware components, or front-end components. The components of the system may be interconnected by any digital data communication form or medium (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), and the Internet.
[0145] A computing system may include clients and servers. Clients and servers are generally remote from each other and typically interact through a communication network. The relationship of client and server arises through computer programs running on the respective computers and having a client-server relationship to each other.
[0146] A number of embodiments have been described, however, it will be appreciated that various modifications can be made without departing from the spirit and scope of the invention.
[0147] In addition, the logic flows depicted in the accompanying drawings do not require the particular order or sequential order shown to achieve the desired results. In addition, other steps can be provided, or steps can be deleted from the described flow, and other components can be added to or removed from the described system. Therefore, other embodiments are also within the scope of the appended claims.
Claims
1. A method comprising: Determining, by the head mounted device based on first data received from a distance-determining device included in the head mounted device, that a first distance of the head mounted device from the landmark is outside a completion range; outputting an indication that repetition has not been completed based on a determination that the first distance of the head mounted device from the landmark is outside the completion range; determining, based on second data received from the distance-determining device, that a second distance of the head mounted device from the landmark is within the completion range; as well as Based on a determination that the second distance of the head mounted device from the landmark is within the completion range, a repetition counter is incremented and an indication is output that the repetition has been completed.
2. The method of claim 1, further comprising: The completion range is determined based on a height of a user wearing the head mounted device.
3. The method of claim 2, further comprising: The height of the user is determined based on receiving input from the user.
4. The method according to claim 2 or 3, further comprising: The height of the user is determined based on third data received from the distance-determining device and orientation data received from a gyroscope when the user is in a standing position.
5. The method according to any one of the preceding claims, further comprising: determining an orientation range based on the first distance of the head mounted device from the landmark; determining, based on orientation data received from a gyroscope, that the orientation of the head mounted device is outside of the orientation range; as well as Based on a determination that the orientation of the head mounted device is outside of the orientation range, an indication is output that the posture of a user wearing the head mounted device is incorrect.
6. The method according to any one of the preceding claims, further comprising: determining an orientation range based on the first distance of the head mounted device from the landmark; determining, based on orientation data received from a gyroscope, that the orientation of the head mounted device is within the orientation range; as well as Based on a determination that the orientation of the head mounted device is within the range of orientations, an indication is output that the form of a user wearing the head mounted device is correct.
7. A head mounted device, specifically used to perform the method according to any one of claims 1 to 6, the head mounted device comprising: a distance-determining device configured to capture and determine a distance; at least one processor; as well as a non-transitory computer-readable storage medium comprising instructions stored thereon, the instructions being configured, when executed by the at least one processor, to cause the head mounted device to: determining, based on first data captured by the distance-determining device, that a first distance of the head mounted device from the landmark is outside of a completion range; outputting an instruction for the user to complete a first portion of a workout based on the first distance to the landmark being outside the completion range; determining, based on second data captured by the distance-determining device, that a second distance of the head mounted device from the landmark is within the completion range; outputting instructions for the user to perform a second portion of the exercise based on the second distance of the head mounted device from the landmark being within the completion range; determining, based on third data captured by the distance-determining device, that a third distance of the head mounted device from the landmark is within the starting position range; and A repeat counter is incremented based on the third distance of the head mounted device from the landmark being within the starting position range.
8. The head mounted device of claim 7, further comprising: A gyroscope is configured to determine an orientation of the head mounted device, wherein based on the orientation of the head mounted device being within a starting orientation range, an instruction is outputted for the user to start the exercise, the head mounted device being disposed on the head of the user.
9. The head mounted device of claim 7 or 8, wherein the instructions are further configured to cause the head mounted device, before determining that the first distance of the head mounted device from the landmark is outside the completion range: determining, based on fourth data captured by the distance-determining device, that a third distance of the head mounted device from the landmark is within the starting position range; and Based on a determination that the third distance of the head mounted device from the landmark is within the starting position range, the repetition counter is set to zero.
10. The head mounted device of any one of claims 7 to 9, wherein the instructions are further configured to cause the head mounted device, after outputting the instructions for the user to start the exercise: running a timer when the third distance of the head mounted device from the landmark is within the starting position range; and Output the value of the timer.
11. The head mounted device of any one of claims 8 to 11, wherein the instructions are further configured to cause the head mounted device, after outputting the instructions for the user to start the exercise: determining that the orientation of the head mounted device is outside of an appropriate morphological range, the appropriate morphological range being based on the first distance of the head mounted device from the landmark; and Based on a determination that the orientation of the head mounted device is outside the appropriate morphological range, an instruction is outputted for the user to correct the user's body posture.
12. A head mounted device as claimed in any one of claims 7 to 11, wherein the completion range is based on the height of the user.
13. A head-mounted device as described in claim 12, wherein the instructions are further configured to cause the head-mounted device to determine the height of the user based on fourth data captured by the distance-determining device before outputting the instructions for the user to start the exercise.
14. A head mounted device as claimed in any one of claims 7 to 13, wherein the completion range is based on the height of the user and the category of the exercise.
15. A head mounted device as claimed in any one of claims 7 to 14, wherein: The head mounted device further comprises an accelerometer; and The instructions are further configured to cause the head mounted device to: determining that a velocity of the head mounted device exceeds a velocity threshold; and Based on the speed of the head mounted device exceeding the speed threshold, outputting instructions for the user to slow down performance of the exercise.
16. A head mounted device as claimed in any one of claims 7 to 15, wherein the landmark comprises a portion of a surface on which the user is performing the exercise.
17. A non-transitory computer-readable storage medium comprising instructions stored thereon, the instructions being configured, when executed by at least one processor, to cause a head mounted device to: determining that a first orientation of the head mounted device is outside of an appropriate morphological range, the appropriate morphological range being based on a distance of the head mounted device from a landmark; outputting an instruction for a user to correct a body posture of the user based on a determination that the first orientation of the head mounted device is outside the appropriate morphological range, the head mounted device being worn on a head of the user; determining that a second orientation of the head mounted device is within the appropriate morphological range; After determining that the second orientation of the head mounted device is within the appropriate morphological range, determining that the distance of the head mounted device from the landmark is within a completion range based on data received from a distance-determining device; and Based on the distance of the head mounted device from the landmark being within the completion range, a repetition counter is incremented.
18. The non-transitory computer-readable storage medium of claim 17, wherein the instructions are further configured to cause the head mounted device to output an indication that the repetition has been completed based on the distance of the head mounted device from the landmark being within the completion range.
19. A non-transitory computer-readable storage medium as described in claim 17 or 18, wherein the instructions are further configured to cause the head-mounted device to output an indication that the user is performing the exercise in an appropriate form based on a determination that the second orientation of the head-mounted device is within the appropriate form range.
20. The non-transitory computer-readable storage medium of any one of claims 17 to 19, wherein the completion range is based on a height of the user.
21. The non-transitory computer-readable storage medium of claims 17 to 20, wherein the landmark comprises a portion of a surface on which the user is performing an exercise.