IP Library › Granted Patent US 11,896,368
Granted Patent B2
US 11,896,368 · App. 15/691,245 · Granted Feb 13, 2024

Systems and methods for determining swimming metrics

Inventors: Bharath Narasimha Rao (Mountain View, CA); Craig H. Mermel (San Jose, CA); Karthik Jayaraman Raghuram (Mountain View, CA); Hung A. Pham (Oakland, CA); Adam S. Howell (Oakland, CA); Rami Y. Hindiyeh (Pacifica, CA); James P. Ochs (San Francisco, CA); Vinay R. Majjigi (Mountain View, CA); Alexander Singh Alvarado (Sunnyvale, CA); Sunny K. Chow (Santa Clara, CA); Umamahesh Srinivas (Milpitas, CA); Xing Tan (San Jose, CA); Ronald K. Huang (San Jose, CA); Edith Merle Arnold (San Francisco, CA); Robin T. Guers (Cupertino, CA); Gunes Dervisoglu (Cupertino, CA); Adeeti Ullal (Mountain View, CA)
Assignee: Apple Inc.
A61B5/1112A61B5/0205A61B5/02438A61B5/1114A61B5/1118A61B5/1122A61B5/681A63B24/0062G01C22/00G01C22/006G01P15/14G06F18/2135G06F18/2411G06V40/23H04W4/027A63B2024/0071
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,896,368
App. No.
15/691,245
Granted
Feb 13, 2024
Kind
B2
Abstract

The present disclosure relates to methods and systems of determining swimming metrics of a user during a swimming session. The method can include receiving, by a processor circuit of a user device, motion information from one or more motion sensors of the user device; determining, by the processor circuit using the motion information, a first set of rotational data of the user device, wherein the first set of rotational data is expressed in a first frame of reference; converting, by the processor circuit, the first set of rotational data into a second set of rotational data, wherein the second set of rotational data is expressed in a second frame of reference; determining, by the processor circuit, one or more swimming metrics of the user; and outputting the one or more swimming metrics.

Claims (81)

1. A method for improving an accuracy of a wearable device while determining swimming metrics of a user during a swimming session, the method comprising:

receiving, by a processor circuit of the wearable device, motion data from one or more motion sensors of the wearable device;

determining, by the processor circuit using the motion data, a first set of rotational data of the wearable device, wherein the first set of rotational data is expressed in a first frame of reference;

converting, by the processor circuit, the first set of rotational data into a second set of rotational data, wherein the second set of rotational data is expressed in a second frame of reference;

determining, by the processor circuit, one or more swimming metrics of the user based on the second set of rotational data, where determining the one or more swimming metrics includes:

detecting a number of turns and a number of strokes of the user during the swimming session based on the received motion data;

determining a number of strokes per lap based on the number of turns and the number of strokes;

determining a variance of the number of strokes per lap;

adjusting the number of turns to reduce the variance of the number of strokes per lap;

determining a lap count of the user based on the adjusted number of turns; and

outputting, by the processor circuit, the one or more swimming metrics of the user.

2. The method of claim 1 , wherein detecting a number of turns further comprises:

determining whether a turn is not detected; and

inserting a missing turn in the number of turns in response to a determination that a turn is not detected.

3. The method of claim 2 , wherein determining whether a turn is not detected comprises:

determining a stroke range per lap; and

comparing the number of strokes between two consecutive turns with the determined stroke range per lap.

4. The method of claim 2 , wherein determining whether a turn is not detected comprises:

comparing the number of strokes between two consecutive turns with a threshold, wherein the threshold is determined by multiplying a mean value of the number of strokes per lap with a ratio.

5. The method of claim 1 , further comprising:

determining whether the number of strokes made by the user converges in the swimming session; or

determining whether the number of strokes made by the user converges in a historical swimming session.

6. The method of claim 5 , wherein determining whether the number of strokes made by the user converges in the swimming session comprises:

determining a standard deviation of the number of strokes among consecutive turns; and

comparing the standard deviation with a threshold.

7. The method of claim 6 , wherein the threshold is 1.5 strokes.

8. The method of claim 1 , wherein the first frame of reference comprises a body-fixed frame of reference with respect to the wearable device.

9. The method of claim 1 , wherein the second frame of reference comprises an inertial frame of reference.

10. A method comprising:

receiving, by a processor circuit of a wearable device worn on a wrist of a user during a swimming session, motion data from one or more motion sensors of the wearable device;

determining, by the processor circuit using the motion data, a first set of rotational data of the wearable device, wherein the first set of rotational data is expressed in a first frame of reference;

converting, by the processor circuit, the first set of rotational data into a second set of rotational data, wherein the second set of rotational data is expressed in a second frame of reference, and wherein the second set of rotational data includes data indicative of the user's arm or wrist movements;

determining, by the processor circuit, one or more swimming metrics of the user based on the second set of rotational data, where determining the one or more swimming metrics includes:

detecting a number of turns and a number of strokes of the user during the swimming session based on the received motion data;

determining a number of strokes per lap based on the number of turns and the number of strokes;

determining a variance of the number of strokes per lap;

adjusting the number of turns to reduce the variance of the number of strokes per lap;

determining a lap count of the user based on the adjusted number of turns; and

outputting, by the processor circuit, the one or more swimming metrics of the user.

11. The method of claim 10 , further comprising:

determining whether the number of strokes of the user converges in the swimming session; or

determining whether the number of strokes made by the user converges in a historical swimming session.

12. The method of claim 11 , wherein determining whether the number of strokes of the user converges in the swimming session comprises:

determining a standard deviation of the number of strokes among consecutive turns; and

comparing the standard deviation with a threshold.

13. The method of claim 12 , wherein the threshold is 1.5 strokes.

14. The method of claim 11 , wherein determining whether a turn is not detected comprises:

determining a stroke range per lap; and

comparing the number of strokes between two consecutive turns with the determined stroke range per lap.

15. The method of claim 11 , wherein determining whether a turn is not detected comprises:

comparing the number of strokes between two consecutive turns with a threshold, wherein the threshold is determined by multiplying a mean value of the number of strokes per lap with a ratio.

16. The method of claim 10 , wherein the first frame of reference comprises a body-fixed frame of reference with respect to the wearable device.

17. The method of claim 10 , wherein the second frame of reference comprises an inertial frame of reference.

18. The method of claim 10 , wherein detecting a number of turns further comprises:

determining whether a turn is not detected; and

inserting a missing turn in the number of turns in response to a determination that a turn is not detected.

19. A system for improving an accuracy of a wearable device while determining one or more swimming metrics of a user during a swimming session, the system comprising:

one or more motion sensors configured to collect motion data; and

a processor circuit coupled to the one or more motion sensors and configured to execute instructions causing the processor to:

determine a first set of rotational data, wherein the first set of rotational data is expressed in a first frame of reference;

convert the first set of rotational data into a second set of rotational data, wherein the second set of rotational data is expressed in a second frame of reference;

determine one or more swimming metrics of the user based on the second set of rotational data, where determining the one or more swimming metrics includes:

detecting a number of turns and a number of strokes of the user during the swimming session based on the received motion data;

determine a number of strokes per lap based on the number of turns and the number of strokes;

determine a variance of the number of strokes per lap;

adjust the number of turns to reduce the variance of the number of strokes per lap;

determine a lap count of the user based on the adjusted number of turns; and

output the one or more swimming metrics of the user.

20. A system comprising:

one or more motion sensors configured to collect motion data, the one or more sensors included in or coupled to a wearable device worn on a wrist of a user during a swimming session;

a processor circuit coupled to the one or more motion sensors and configured to execute instructions causing the processor to:

receive motion data from one or more motion sensors of the wearable device;

determine, using the motion data, a first set of rotational data of the wearable device, wherein the first set of rotational data is expressed in a first frame of reference;

convert the first set of rotational data into a second set of rotational data, wherein the second set of rotational data is expressed in a second frame of reference, and wherein the second set of rotational data includes data indicative of the user's arm or wrist movements;

determine one or more swimming metrics of the user based on the second set of rotational data, where the instructed are further executed to:

detect a number of turns and a number of strokes of the user during the swimming session based on the received motion data;

determine a number of strokes per lap based on the number of turns and the number of strokes;

determine a variance of the number of strokes per lap;

adjust the number of turns to reduce the variance of the number of strokes per lap;

determine a lap count of the user based on the adjusted number of turns; and

output the one or more swimming metrics of the user.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2018
From: NARASIMHA RAO, BHARATH; MERMEL, CRAIG; RAGHURAM, KARTHIK JAYARAMAN; PHAM, HUNG A.; HOWELL, ADAM S.; HINDIYEH, RAMI Y.; OCHS, JAMES P.; MAJJIGI, VINAY R.; SINGH ALVARADO, ALEXANDER; CHOW, SUNNY K.; SRINIVAS, UMAMAHESH; TAN, XING; HUANG, RONALD K.; ARNOLD, EDITH MERLE; GUERS, ROBIN T.; DERVISOGLU, GUNES; ULLAL, ADEETI
To: APPLE INC.
Reel/Frame 045417/0170 →
Continuity (7)
Provisional Application 62381843 · Aug 31, 2016
Provisional Application 62381846 · Aug 31, 2016
Provisional Application 62381988 · Aug 31, 2016
Provisional Application 62381989 · Aug 31, 2016
Provisional Application 62381641 · Aug 31, 2016
Provisional Application 62381640 · Aug 31, 2016
Related Publication 20180056128A1 · Mar 1, 2018
Cited By (1)
US 12,478,835