Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
A SWIM STROKE ANALYSIS METHOD AND SYSTEM
Document Type and Number:
WIPO Patent Application WO/2024/092315
Kind Code:
A1
Abstract:
Swim stroke is analysed by taking measurements from an arm-worn device. The measurements comprise accelerometer measurements with respect to time. The beginning of each stroke is computed with respect to time from the measurements, where the beginning of each stroke is the time of hand entry.

Inventors:
WELLS NIALL (AU)
RAMPONO BRODY (AU)
BYSTRANOVSKYY DMYTRO (UA)
Application Number:
PCT/AU2023/051107
Publication Date:
May 10, 2024
Filing Date:
November 02, 2023
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BUTLER 88 PTY LTD (AU)
International Classes:
A63B24/00; A61B5/00; A61B5/11; A63B69/12; G01P15/00; G01P15/14
Domestic Patent References:
WO2018045211A12018-03-08
WO2019204876A12019-10-31
Foreign References:
US20170043212A12017-02-16
Attorney, Agent or Firm:
GOLJA HAINES & FRIEND (AU)
Download PDF:
Claims:
Claims 1. A swim stroke analysis method comprising: taking measurements from an arm-worn device, wherein the measurements comprise accelerometer measurements with respect to time; and computing the beginning of each stroke with respect to time from the measurements, wherein the beginning of each stroke is the time of hand entry. 2. A swim stroke analysing system comprising: a receiver of measurements with respect to time from an arm-worn device, wherein the measurements comprise accelerometer measurements and preferably gyroscope measurements; a processor for computing the beginning and end of each stroke with respect to time from the measurements, wherein the beginning of each stroke is the time of hand entry. 3. A swim stroke analysing system comprising: an arm-worn device comprising an accelerometer coupled to an arm of a user for taking acceleration measurements over time and preferably a gyroscope for taking angular velocity measurements over time; a transmitter of the measurements; a receiver of the measurements; a processor for computing the beginning and end of each stroke with respect to time from the measurements, wherein the beginning of each stroke is the time of hand entry. 4. A computer program embodied is a non-transient storage form comprising instruction for controlling a processor to perform the method defined in claim 1 or to operate as or as part of the system as defined in claim 2 or 3. 5. The method or system according to the respective one of claims 1 to 3, wherein the measurements further comprise gyroscope measurements with respect to time. 6. The method according to claim 1, wherein the method further comprises computing segments of each stroke.

7. The method according to claim 1, wherein the method further comprises computing hand roll angle at hand entry. 8. The method according to claim 1 or 7, wherein the method further comprises computing stroke crossover. 9. The method according to any one of claims 1, 7 or 8, wherein the method comprises computing peak acceleration at hand entry and the time thereof. 10. The method according to any one of claims 1, or 7 to 9, wherein the method further comprises computing a rest. 11. The method according to any one of claims 1, or 7 to 10, wherein the method further comprises defining a workout and computing a comparison of the strokes to the defined workout. 12. The method according to claim 9, wherein computing the peak acceleration comprises removing false positive peaks in acceleration. 13. The method according to claim 12, wherein the removing false positive peaks in acceleration comprises determining the peak within a selected time period. 14. The method according to any one of claims 9, or 12 to 13, wherein determining the peak acceleration comprises focusing on peaks in a selected time period. 15. The method according to claim 14, wherein focusing on peaks in the selected time period comprises boosting acceleration signal within the selected time period. 16. The method according to any one of claims 1, or 7 to 15, wherein computing the beginning of each stroke comprises determining a negative rotational velocity during a recovery phase of each stroke. 16. The method according to any one of claims 1, or 7 to 16, wherein computing the beginning of each stroke comprises determining a peak in amplitude of a snap signal over time. 17. The method according to claim 16, wherein the snap signal is boosted to determine the peak in amplitude.

18. The method according to claim 17, wherein the snap signal is boosted by determining a rolling standard deviation of each orthogonal acceleration and scaling the snap signal by the determined rolling standard deviation. 19. The method according to claim 17 or 18, wherein the snap signal is boosted by a proximity signal. 20. The method according to claim 19, wherein the proximity signal is a triangular wave having a period. 21. The method according to claim 20, wherein the period is determined by identifying a prominent repeating low frequency signal in the acceleration signal. 22. The method according to any one of claims 19 to 21, wherein the stroke start points are determined by determining prominent local maxima of the boosted snap signal. 23. The method according to any one of claims 1, or 7 to 22, wherein an insweep phase is computed by computing the maximum value of acceleration in the y axis during each stroke period. 24. The method according to any one of claims 1, or 7 to 23, wherein a catch phase is computed by computing jerk and filtering the jerk, wherein the catch phase ends when the filtered jerk is negative. 25. The method according to any one of claims 1, or 7 to 24, wherein an upsweep phase is computed by computing a peak in acceleration in the x axis. 26. The method according to any one of claims 1, or 7 to 25, wherein a recovery phase is computed by computing when the acceleration in the y axis is negative. 27. The method according to claim 7, wherein the roll angle entry is computed by determining constituent y and z axis accelerations at the time of the beginning of each stroke and then determining theta and omega angles from the magnitude of the accelerations. 28. The method according to claim 8, wherein the crossover angle of entry is computed by determining the amount of radial-ulnar rotation in the z axis from wrist entry to insweep. 29. The method according to claim 28, wherein the radial-ulnar rotation in the z axis is computed by taking the integral of angular velocity in the z axis. 30. The method according to any one of claims 1, or 7 to 29, wherein a splash score is computed from absolute acceleration at the time of entry. 31. The method according to any one of claims 1, or 7 to 30, wherein a force score is computed by determining the maximum magnitude of acceleration after the stroke begins. 32 A swim stroke analysis method comprising: taking measurements from an arm-worn device, wherein the measurements comprise accelerometer measurements with respect to time; and computing the time of hand entry during each stroke from the measurements.

Description:
A Swim Stroke Analysis Method and System [0001] The present invention relates to the analysis of swim strokes. Background [0002] The following discussion of the background art is intended to facilitate an understanding of the present invention only. It should be appreciated that the discussion is not an acknowledgement or admission that any of the material referred to was part of the common general knowledge as at the priority date of the application. [0003] Swimmers from athletes to casual like to, or indeed in some cases need to, monitor their swim stroke performance, particularly when they are seeking to improve their stroke technique. [0004] Current wrist worn smart devices provide some ability to monitor movement, such as steps, but currently have limited functionality for monitoring swimming. Such devices include Apple™ watches and Garmin™ fitness watches. The present functionality of such devices is to recognise the movement of the wrist is that of performing a swim stroke and then to count the number of strokes in a time period to be able to determine a rate of strokes. It is desirable to determine different phases of the stroke for technique analysis and training. Mere identification of a stroke is insufficient to analyse swim stroke technique. [0005] The present invention seeks to provide improved or alternative swim stroke analysis to what is currently available. [0006] Throughout the specification unless the context requires otherwise, the word “comprise” or variations such as “comprises” or “comprising”, will be understood to imply the inclusion of a stated integer or group of integers but not the exclusion of any other integer or group of integers. [0007] Throughout the specification unless the context requires otherwise, the word “include” or variations such as “includes” or “including”, will be understood to imply the inclusion of a stated integer or group of integers but not the exclusion of any other integer or group of integers. [0008] Discussion of any known information or prior patent documents herein is not intended to be regarded as an admission that that information or document forms part of the common general knowledge of a person skilled in the art. Summary of the Invention [0009] According to an aspect of the present invention there is provided a swim stroke analysis method comprising: taking measurements from an arm-worn device, wherein the measurements comprise accelerometer measurements with respect to time; and computing the beginning of each stroke with respect to time from the measurements, wherein the beginning of each stroke is the time of hand entry. [0010] In an embodiment the measurements further comprise gyroscope measurements with respect to time. [0011] In an embodiment the method further comprises computing segments of each stroke. [0012] In an embodiment the method further comprises computing stroke kinetics. [0013] In an embodiment the method comprises computing hand roll angle at hand entry. [0014] In an embodiment the method further comprises computing stroke crossover. [0015] In an embodiment the method comprises computing peak acceleration at hand entry and the time thereof. [0016] In an embodiment the method further comprises computing stroke kinematics. [0017] In an embodiment the method further comprises computing stroke count and period. [0018] In an embodiment the method further comprises computing a rest. [0019] In an embodiment the method further comprises defining a workout and computing a comparison of the strokes to the defined workout. [0020] In an embodiment computing the beginning of each stroke comprises determining a peak acceleration. Preferably the peak acceleration is the Euclidean norm of measured acceleration vectors. [0021] In an embodiment determining the peak acceleration comprises removing false positive peaks in acceleration. In an embodiment the removing false positive peaks in acceleration comprises determining the peak within a selected time period. In an embodiment determining the peak acceleration comprises focusing on peaks in a selected time period. In an embodiment focusing on peaks in the selected time period comprises boosting acceleration signal within the selected time period. [0022] In an embodiment computing the beginning of each stroke comprises determining a negative rotational velocity during a recovery phase of each stroke. [0023] In an embodiment computing the beginning of each stroke comprises determining a peak in amplitude of a snap signal over time. [0024] In an embodiment the snap signal is boosted to determine the peak in amplitude. [0025] In an embodiment the snap signal is boosted by determining a rolling standard deviation of each orthogonal acceleration and scaling the snap signal by the determined rolling standard deviation. [0026] In an embodiment the snap signal is boosted by a proximity signal. In an embodiment the proximity signal is a triangular wave having a period. In an embodiment the period is determined by identifying a prominent repeating low frequency signal in the acceleration signal. In an embodiment the peak of the triangular wave coincides with the peak in the amplitude of the repeating low frequency signal. [0027] In an embodiment the stroke start points are determined by determining prominent local maxima of the boosted snap signal. [0028] In an embodiment stroke period of each stroke is determined by computing the time between stroke start times. [0029] In an embodiment the method comprises computing temporal phases in each stroke. [0030] In an embodiment an insweep phase is computed. In an embodiment computing the insweep phase comprises computing the maximum value of acceleration in the y axis during each stroke period. [0031] In an embodiment a catch phase is computed. In an embodiment computing the catch phase comprises computing jerk. In an embodiment the jerk is applied with a low pass filter. In an embodiment the catch phase ends when the filtered jerk is negative. [0032] In an embodiment an upsweep phase is computed. In an embodiment computing the upsweep phase comprises computing a peak in acceleration in the x axis. [0033] In an embodiment a recovery phase is computed. In an embodiment computing the recovery phase comprises computing when the acceleration in the y axis is negative. [0034] In an embodiment the roll angle entry is computed by determining constituent y and z axis accelerations at the time of the beginning of each stroke and then determining theta and omega angles from the magnitude of the accelerations. [0035] In an embodiment the crossover angle of entry is computed by determining the amount of radial-ulnar rotation in the z axis from wrist entry to insweep. In an embodiment the radial-ulnar rotation in the z axis is computed by taking the integral of angular velocity in the z axis. [0036] In an embodiment a splash score is computed. In an embodiment the splash score is computed from absolute acceleration at the time of entry. [0037] In an embodiment a force score is computed. In an embodiment the force score is computed by determining the maximum magnitude of acceleration after the stroke begins. [0038] In an embodiment the computed values are displayed to a user. In an embodiment the values are displayed in a graph against time. [0039] In an embodiment the hand entry angle and/or the cross over angle are graphically displayed by count at each angle. [0040] In an embodiment the measurements are recorded on a wrist device. In an embodiment the wrist device transfers data comprising the measurement to a cloud based analysis engine. In an embodiment the analysis engine performs at least some of the computations. [0041] In an embodiment the computations are time-aligned with biometric readings (eg. heart rate). [0042] In an embodiment the graphical displays are computed by the computation engine and provided as graphical display instructions to a viewing device. [0043] According to an aspect of the present invention there is provided a swim stroke analysis method comprising: taking measurements from an arm-worn device, wherein the measurements comprise accelerometer measurements with respect to time; and computing the time of hand entry during each stroke from the measurements. [0044] According to an embodiment of the invention there is provided a swim stroke analysing system comprising: a receiver of measurements with respect to time from an arm-worn device, wherein the measurements comprise accelerometer measurements and preferably gyroscope measurements; a processor for computing the beginning and end of each stroke with respect to time from the measurements, wherein the beginning of each stroke is the time of hand entry. [0045] According to an embodiment of the invention there is provided a swim stroke analysing system comprising: an arm-worn device comprising an accelerometer coupled to an arm of a user for taking acceleration measurements over time and preferably a gyroscope for taking angular velocity measurements over time; a transmitter of the measurements; a receiver of the measurements; a processor for computing the beginning and end of each stroke with respect to time from the measurements, wherein the beginning of each stroke is the time of hand entry. [0046] According to an embodiment of the present invention there is provided a computer program embodied in a non-transient storage form comprising instructions for controlling a processor to perform the method defined above or to operate as or as part of the system as defined above. Description of Figures [0047] In order to provide a better understanding of the present invention example embodiments will now be described in which: Figure 1 is a schematic diagram of an example system according to the present invention; Figure 2 is an example screen shot of a bar graph of the time for each of a number of strokes showing each stroke segmented into phases; Figure 3 is an example screen shot showing a number of hand entry angles in a swim session; Figure 4 is an example screen shot showing a number of stroke crossover angles in a swim session; Figure 5 is an example screen shot showing a number of lap slip times in a swim session; Figure 6 is a graph of example raw accelerometer data from an embodiment of a wrist worn device during a swim session; Figure 7 is a graph of example magnitude accelerometer data based on the data shown in Figure 6 with local maxima identified (by a dot); Figure 8 is a graph of example angular velocity data from the wrist worn device during the swim session shown in Figure 6; Figure 9 is a graph of example filtered angular velocity data based on the data shown in Figure 8; Figure 10 is a graph of the filtered angular velocity data shown in Figure 9 with local minima identified (by a dot); Figure 11 is a graph of the filtered angular velocity data shown in Figure 9 with maxima identified (by a dot) after each local minima shown in Figure 10; Figure 12 is a graph of a snap signal determined from magnitude of acceleration along with the acceleration data shown in Figure 7; Figure 13 is a graph of the absolute magnitude of rolling standard deviations of each axis of acceleration of the data shown in Figure 6; Figure 14 is a graph of scaled data of Figure 13; Figure 15 is a graph of boosted snap signal data shown in Figure 12 scaled by the data shown in Figure 14 along with the magnitude accelerometer data of Figure 7; Figure 16 is an example of a proximity signal along with the boosted snap signal of Figure 15; Figure 17 is an example double boosted snap signal using the proximity signal of Figure 16 along with the magnitude acceleration data of Figure 7; Figure 18 is an example of peaks detected in the double boosted data shown in Figure 17 (identified by dots) along with the magnitude acceleration data of Figure 7; Figure 19 is an example of detection of insweep segments of the strokes identified (by dots) in the magnitude acceleration data of Figure 7 from maxima of the data of y axis acceleration Figure 6; Figure 20 is an example of detection of catch segments of the strokes (indicated by dots) from filtered jolt based on the magnitude acceleration data of Figure 7 along with the magnitude acceleration data of Figure 7; Figure 21 is an example of detection of upsweep segments of the strokes (indicated by dots) from maxima of the data of x axis acceleration of Figure 6 along with the magnitude acceleration data of Figure 7; and Figure 22 is an example of detection of recovery segments of the strokes (indicated by dots) from negative y axis acceleration the data of Figure 6 along with the magnitude acceleration data of Figure 7. Description of Examples [0048] Referring to Figure 1, there is shown a system 10 for swim stroke analysis. The system 10 comprises one or more arm, preferably wrist mounted devices, such as an Apple™ watch 12, or a Garmin™ watch 16. These devices are configured to record acceleration experienced at the wrist of a user 30, 32 using an accelerometer, and in particular in relation to the present invention when swimming, more particularly when swimming freestyle stroke (also known as forward crawl or front crawl). The devices, such as is the case with the watch 12 may also record gyroscope data, this data being angular velocity experienced at the wrist of the user 30. This data is also sometimes called inertial measurement unit (IMU) data. The IMU data may be stored by the devices 12, 16 in Healthkit data (from the Apple Watch), or Garmin Cloud or similar. [0049] The watch 12 is able to connect to a smartphone 14, such as an iphone™ which in turn communicates with an online server, such as a cloud server 20. The watch 16 may be able to communicate over the internet with a dedicated/proprietary server 18, in some embodiments via an intermediary device 17, 17’ (such as a smartphone 17 or personal computer 17’), from which the data may be obtained and sent to or retrieved by the cloud server 20. The server 20 comprises a webserver to display information based on the collected data on a display device 22, such as a web browser running on a computer. The information may also be displayed on the phone 14 or another device (such as device 17, 17’). [0050] Any of devices 12, 14, 16, 17, 17’, 18, 20, 22 could perform all or some of the computations described herein, however it is preferred and is described herein as the server 20 performs the computations as programmed by computer program instructions in order to handle performing such computations from multiple devices 12, 16 or their respective users 30, 32, scaled accordingly so that the computational load of many user’s devices can be centralised and performed computationally efficiently. The computer program instructions are typically stored in a non-volatile manner, such as on a hard disk drive or solid state drive but may be stored on other media. The computer program instructions control the or each processor of the server 20 to perform some or all of the computations described herein and in an embodiment to prepare instructions (such as a website) for display on the phone 14, device 17, 17’, or display device 22. [0051] As described below, the computations allow for analysis of the swimming technique at macro and micro levels. This enables the user to better understand their technique and improve it. The invention enables self analysis, but also can be used for computational analysis, such as identification of a deficiency in technique (for example hand entry angle is too great), and can thus enable a market place 34 for either computational diagnostic tools, or self improvement instructions (such as instructional videos) and can provide the analysis to a coach 36 for instruction during training. [0052] The starting point of the analysis is to identify the beginning of each stroke (not merely that a stroke is being performed or of the type of stroke being performed). As shown in Figure 2, each stroke is represented as a bar in the bar graph. The height of each bar is in seconds. It can be seen that the height of each bar is gradually decreasing in height, meaning that (generally speaking) each stroke shortened in time. [0053] In the present invention, each stroke is regarded as beginning at hand entry (into the water), which in freestyle transitions into the glide phase of the stroke once the hand has entered the water. The impact of the hand with the water creates acceleration changes that are measurable. Once water entry is completed the glide occurs when the outstretched hand moves through the water and turbulence from the hand entry subsides. [0054] As each stroke repeats, it is possible to recognise a stroke by the pattern of repetition of the acceleration experienced by the device 12, 16. However, using that technique will only identify the duration and start/finish of each stroke. [0055] Also shown in Figure 2 is each bar being divided into stroke phases, comprising glide, recovery and pull, which is further segmented into insweep, downsweep and upsweep. Figure 2 is presented on a per stroke basis (“Strokes” is selected). Alternatively, averages of each segment can be provided on per lap basis (“Laps” is selected). Further only the relevant stroke phase time can be displayed (selection of “Glide”, “Downsweep”, “Insweep”, “Upsweep” or “Recover”). [0056] This feedback is valuable to coaches and swimmers to understand how long they are spending in each phase of the stroke and for the stroke overall. Integrated with data labelling the user can see the affect of swim equipment like fins and paddles and provide more detailed analysis about or removing these laps and strokes from analysis. [0057] In order to segment each stroke into these phases the accelerometer measurements and preferably gyroscope measurements require complex analysis, as described by example below. [0058] On a WatchOS™ device 12, an application is installed to create a motion file from the watch’s accelerometer and gyroscope (if available) sensors. This file is distinct from the device operating system’s activity data, so that raw data can be processed using the present invention, instead of or in addition to using the device’s interpretation of the raw data. The motion file is compressed and transferred to the phone 14. The watch application can also be used to provide instruction information to the user 30 during a training session. [0059] On an iOS device (such as phone 14), an application is installed to receive the file from the watch 12 to interface with the cloud server 20 and to provide the user interface on the phone 14. [0060] On a Garmin device 16, raw data may not be able to be accessed. Instead, the raw data is obtained from the Garmin cloud server 18. Instruction information can be provided to the user 32 by interfacing with Garmin’s training API to push workouts to the Garmin device 16. [0061] Other brand devices having at least a 3 axis accelerometer could be used if the raw accelerometer data (or acceptably usable data) is able to be accessed. [0062] Lap beginning/end (in time) can be calculated by the detection of the turnaround of the swimmer between laps. Alternatively, a button push can be used to identify a lap transition. [0063] A rest can be identified by using a combination of device activity, motion and swimmer’s historical pace to estimate and automatically apply a rest. The rest sensitivity can be tuned based on the pace of the swimmer’s functional threshold pace (FTP), set in the application or defaulted to 2:00 / 100m. At default, rests need to be greater than ~7 seconds for rest identification for those with faster FTPs, rest segmentation can be as small as ~4 seconds. This significantly improves the application experience for faster swimmers who will often use sub 5 second rest as part of training programs. [0064] The application on the phone 14 or the display device 22 can show kinetic and kinematic information. [0065] In Figure 3 hand entry angle (which is the roll of the wrist at the point of entry of the hand into the water and is the beginning of the catch phase of the stroke) is shown with a count (height of each bar) at each angle of hand entry, as well as an average angle of hand entry (in this case 15° with 88% in the target range). Having a ‘thumb first entry’ is a common technique error in freestyle swimming that can lead to shoulder injury as well as reducing the efficiency of a swimmer’s stroke as they cannot catch as much water with their hand and forearm as when they enter fingertip first and can move more water with the beginning of their stroke. Displaying the hand entry angle allows errors or bad technique to the corrected. In this example, there is a target range from -5 to +15 degrees visualised by percentage of the user’s strokes for a swim in this range by highlighting a percentage (or count) in 5 degree increments in the broader range displayed from -120 through +120 degrees. [0066] In Figure 4 crossover angle (which is a measure of how far from being inline with the user’s shoulder the user’s wrist is at the point of entry into the water measured in degrees from the shoulder) is shown with a count (height of each bar) at each hand entry, as well as an average crossover angle (in this case 15° with 19% being in the target range). Having a ‘crossover' is a common technique error in freestyle swimming that can lead to shoulder injury as well as trouble swimming in a straight line for open water and triathlon swimmers. Displaying the crossover angle allows errors or bad technique to the corrected. In this example, there is a target range for crossover between -10 and +10 degrees visualised by percentage of the user’s strokes for a swim in this range by highlighting a percentage (or count) in 5 degree increments in the broader range displayed from -90 through +90 degrees. [0067] The kinematic information such as pull force and entry splash can also be displayed to the user 30, 32 / coach 36. The stroke count per lap/displace and person of each stroke (or average stroke period) can also be displayed, as exemplified in Figure 5 which shows lap split times segmented by rests. Further this can be correlated with heart rate. [0068] The following references are used in relation to the sensor data. With reference to the human anatomical position, acceleration a from negative to positive in each axis is defined as: a x : proximal to distal. a y : medial (ulnar) to lateral (radial). a z : palmar to dorsal. [0069] With reference to the human anatomical position, rotational velocity g from negative to positive in each axis is defined as: gx : wrist pronation to supination. gy : shoulder extension to flexion. gz : shoulder adduction to abduction. [0070] T ∈ ℝ is the set of all discrete time points in accelerometer and gyroscope signals. Stroke Start Point [0071] In the example described, the point of entry into the water of the user’s hand is defined as the start point of each stroke. Figure 6 shows example raw acceleration data for each of the x, y and z axes. [0072] Define the magnitude of acceleration a (t) as the Euclidean norm of the component acceleration vectors by: ^ ^ ( ^^) = ^^ ^^ ( ^^)2 + ^^ ^^ ( ^^)2 + ^^ ^^ ( ^^)2 [0073] Figure 7 shows a plot of a (t) based on the raw data in Figure 6. [0074] A peak detection algorithm is used to find the prominent local maxima of a (t), which are plotted in Figure 7. These maxima are regarded as corresponding to the point of impact of the wrist with the water surface causing rapid change in acceleration - which are defined as the start point of each stroke. [0075] This technique alone can be insufficient for finding all strokes. For example, swimmers with gentle hand entry may not produce acceleration peaks large enough to be detected, or sharp, forceful propulsions through the water may be incorrectly identified as a stroke start point. Thus false positive acceleration peaks might be detected. To address this, additional methods can be used to limit the range in which acceleration peaks are searched for. In embodiments, the method used depends on whether gyroscope signal is available on the device (as is the case for device 12, but may not be the case for device 14). Where angular velocity is available from a gyroscope [0076] Angular velocity g y (t) follows an oscillating signal with a period π of one stroke length, with positive rotational velocity during the propulsive phase of the stroke, and negative rotational velocity during the recovery phase of the stroke. Example gy (t) data is demonstrated in Figure 8. [0077] A Butterworth low-pass filter is applied to th ye gy (t) to produce g (t). An example of which is shown in Figure 9. The set of prominent local minima M of g (t) are then found using a peak- detection algorithm as shown by the plot in Figure 10. [0078] Stroke start points S are found by finding the maximum of a (t) in a window of length ε following these local minima, as follows: ^^ = { ^^ ^^ ^^ ^^ ^^ ^^ ^^ ( ^^) ∶ ^^ ∈ ^^ } ^^ ≤ ^^ ≤ ^^ + ^^ [0079] An example of the computed beginning of each stroke determined by the maximum acceleration following a peak in negative rotational velocity (during a recovery phase of each stroke) is shown in Figure 11. Where angular velocity is not available [0080] In the absence of a gyroscope signal, the snap signal (second derivative of the acceleration signal) can be used to find stroke start points. Define the snap signal s(t) as the second derivative of the acceleration signal a (t) with respect to time, as follows: 2 ^ ^ ^ ^^ ^^ ( ^^) ( ^ ) = ^^ ^^ 2 [0081] The signal s(t) is shown alongside a (t) in Figure 12. [0082] The snap signal has high amplitude during periods of rapidly changing acceleration, such as the hand entry into the water. It is preferred to boost this signal to aid in estimation of stroke start points. Signal boosting with S(t) [0083] Fluctuation in the a (t) is lowest in the period immediately after hand entry, where the hand glides into the water. For each time t and window size ε, define the set T t , ε as the set of all discrete time points in the signal a (t) within a window of size centred on t: ^^ ^^ ^^ ^^ = ^^: ^^ − ≤ ^^ ≤ ^^ + , ^^ ∈ [0084] For each axis, the rolling standard deviation σ(t) centred on time t with window size of ε is given by: [0085] Define S (t) as the sum of the σ(t) in each axis: S (t) = σ x (t) + σ y (t) + σ z (t) [0086] An example of the signal S (t) is shown in Figure 13. [0087] The signal S (t) is then scaled to a range of [0, 1] using: ^ ^ ^^ ^^( ^^) − ^^ ^^ ^^ ( ^^( ^^) ) [0088] Sscaled (t) is shown in Figure 14. [0089] The boosted snap signal, sboost (t), is then found by multiplying (elementwise) the snap signal by S scaled (t): s boost (t) = s(t) x S scaled (t) [0090] The signal s boost (t) is shown alongside a (t) in Figure 15. Signal Boosting with P(t) [0091] Strokes are expected to occur with a consistent frequency within a lap. This is used to further boost the snap signal in times where the next stroke would be expected. This is particularly effective at removing outliers due to irregular timing. [0092] A fourier transformation is applied to the a (t) signal, and the prominent repeating low frequency signal is used to estimate the stroke period π stroke . [0093] Define the proximity signal P (t) as the triangle wave spanning the range [0, 1], with period πstroke , and peaks fit to the prominent peaks of the sboost (t). The signal P (t) is shown alongside s boost (t) in Figure 16. [0094] The double-boosted snap signal is then found by multiplying (elementwise) the boosted snap signal by P (t): sdouble−boost (t) = sboost (t) x P (t) [0095] The signal s double−boost (t) is shown alongside a (t) in Figure 17. [0096] Stroke start points are determined as the prominent local maxima of s bouble−boost (t) using a peak-detection algorithm. These peaks are shown in Figure18. Stroke Period [0097] Stroke period is calculated as the time between adjacent stroke start times. This is in contrast to simply dividing stroke count by distance. Stroke Temporal Phases [0098] Let Tp ∈ ℝ be the set of all discrete time points in accelerometer and gyroscope signals between the start of one stroke and start of a subsequent stroke. Individual stroke phases are found through signal analysis within each stroke. Insweep [0099] The insweep phase is characterised by elbow flexion and acceleration in the y-axis towards the midline. The start of insweep tinsweep is found by taking the maximum value of ay (t) during each stroke period as follows: ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ = ^^ ^^ ^^ ^^ ^^ ^^ ^^( ^^) i ∈ ^^ ^^ [00100] An example of the maximum value of acceleration in the y axis during each stroke period is shown in Figure 19. Catch [00101] The catch phase is characterised by a period of reduced acceleration after hand entry, followed by an increase in acceleration during the propulsive phase of the stroke. Jerk, the derivative of acceleration magnitude with respect to time j(t), is found as follows: ∗ ^ ^ ^^ ^^ ( ^^) ( ^^ ) = ^^ ^^ [00102] A low-pass filter is applied to j(t) to produce j (t). The last point between the stroke start and insweep start in which j (t) is negative is labelled as t catch ; the point of the catch phase ending. tcatch = max {i ∈ Tp : j (i) < 0} [00103] The points at which j (t) are negative are shown in Figure 20. Upsweep [00104] Following insweep, the upsweep phase is characterised by proximal movement of the wrist towards the shoulder as the hand pushes out behind the swimmer. The local minimum in ax(t) after insweep is labelled as the beginning of the upsweep phase tupsweep, which is found using a peak-detection algorithm. The detected peaks, and thus the beginning of the upsweep phase, are shown in Figure 21. Recovery [00105] Following upsweep, the recovery phase is characterised by the shift from elbow flexion to elbow extension as it emerges from the water. The first point in which a y (t) is negative after t upsweep is labelled as the beginning of the recovery phase t recovery . t recovery = min {i ∈ T p : i > t upsweep , a y (i) < 0} [00106] The detected points of negative ay (t) are shown in Figure 22. Kinetics Roll angle of entry of hand [00107] The peak in a (t) at the start of each stroke is a result of the water exerting a normal force on the accelerometer in the device 12, 16 orthogonal to the water’s surface. Assuming the water surface is stable, this force is parallel to the direction of gravity. The roll angle φ(t) of the wrist at hand entry can be determined by considering the constituent vectors a y (t) and a z (t), as follows: ^^ ( ^) ^ ^^ ^^ ^^ ^ ^^ = ^ 1 ) Crossover angle of entry [00108] Assuming that the wrist is pointing downwards during the insweep phase, we can estimate the crossover angle ψ(t) (wrist yaw) at hand entry by calculating the amount of radial- ulnar rotation in the z axis from wrist entry tstart to insweep tinsweep. This is found through the integral of g z , as follows: ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^( ^^) = ∫ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ Kinematics Splash Score [00109] The peak in a (t) at the point of hand entry t0 is caused by the deceleration of the accelerometer caused by impact with the water. The splash-score F splash is given by the value of a (t 0 ), and measures how smooth hand entry is. F splash = a (t0) Force Score [00110] The maximum value of a (t) during the stroke (after hand entry) reflects a peak in acceleration during the propulsive phase of the stroke. The force score Fpropulsion is a measure of this maximum, and reflects the force exerted during propulsion. Fpropulsion = argmax a (i) i ∈ Tp Use of Phase Segmentation, Kinetics and Kinematics [00111] In an embodiment the method further comprises defining a workout and computing a comparison of the strokes to the defined workout. Stroke phases that take longer or shorter than the defined stroke workout can be highlighted for stroke improvement. Likewise measured kinematics and kinetics can be compared to workout defines kinematics and kinetics can be used for stroke technique coaching. [00112] In an embodiment the computed values are displayed to a user. In an embodiment the values are displayed in a graph against time. [00113] In and embodiment the hand entry and cross over angle are graphically displayed by count at each angle and may be compared graphically to the defined angles desired for the specified technique. [00114] In an embodiment the computations are time-aligned with biometric readings (eg heart rate). This allows assessment of and thus coaching of the work rate, swim pace and stamina of the swimmer, amongst other things. Beginning of the swim can be recorded by a button press on the device 12, 16 or by the hand slapping a hard surface (such as the edge of a pool) or by palm slapping the surface of the water, which will produce a significantly greater acceleration change due to the slap in comparison to the hand entry acceleration change. [00115] In an embodiment the graphical displays are computed by the computation engine and provided as graphical display instructions to a viewing device. The display may provide aggregated report where the longitudinal view of the swim is displayed and can show changes over time. For example, a swim from 3 months ago had a cross over angle of 15 degrees, which has been progressively worked on and shows progression to a current cross over angle of 10 degrees. This view will be of benefit to show improvement in stroke technique as well as being able to see benefits in different coaching techniques. [00116] Coaching services, such as videos can be provided and coach matching/finding can be provided in the phone or web application. [00117] In some freestyle swimming guides hand entry is part of the recovery phase at the end of a stroke before the glide commences. However, since the phases must be computed from measurements, the present invention does not regard the hand entry as a part of the recovery phase. Instead, hand entry is regarded as the beginning of the stroke which starts the glide phase. In practical terms this distinction is irrelevant as the end of one stroke is followed by the beginning of the next, with an insignificant timing difference between the transition between the strokes. However, computationally this provides an unexpected advantage because hand entry is detectable with good accuracy as described herein. For example, in WO2018045211 glide is determined by pitch being near zero and acceleration is 10% of maximum, which is believed to be less accurate. [00118] Aspects of the invention may be applicable to swim stroke types where the hand is out of the water and then enters the water, in addition to freestyle stroke, such as butterfly and back stroke, where the computation of hand entry is used to determine the beginning of a stroke with respect to time. Other freestyle applicable aspect [00119] Modifications may be made to the present invention within the context of that described and shown in the drawings. Such modifications are intended to form part of the invention described in this specification.



 
Previous Patent: CATHODE MATERIALS

Next Patent: CONTROL OF METHANE DISCHARGE