App: Tennis AI

Description

Tennis AI, your ultimate tennis workout assistant. My app tracks tennis strokes using built-in accelerometer of Garmin watch, helping you improve game with precision data. It can recognize type of strokes during the workout and provide detailed statistics for each of your trainings.

Get app from store

Tennis AI features:

  • Tracking activity:
    •  Time,
    •  Heart Rate,
    •  Distance,
    •  GPS,
    •  Other measures provided by your Garmin watch,
  • Tennis strokes recognition, count and power measure for the following stroke types:
    •  Forehand,
    •  Backhand,
    •  Serve,
    •  Backhand Slice,
  • Real time graph showing history of your strokes during activity,
  • Record of Winners and Errors for each stroke type,
  • Summary of recorded strokes in Garmin Connect app,
  • Time dependent graphs of all strokes recorded during activity displayed in Garmin Connect app,
  • In-app graphs showing stroke statistics for series of workouts based on stroke types:
    •  Count (total and per training),
    •  Average power,
    •  Winner count,
    •  Error count,
    •  Last training power distribution,
  • Tennis stroke recognition for left-handed users,
  • Dark Mode,
  • Update log prompts on app startup for better communication with the users,

  • Can someone download my app and check if different languages (French, German, Portugal, Italian, Polish) work?

    apps.garmin.com/.../0073ddf4-3ec7-436d-a598-d88cfd0d583a

    I've just released update with multilanguage support. Everything seems to work on my device but immidiately got a feedback from  one of the users that language does not change (reinstalled app, changed watch language).

    Thanks in advance

  • Why is Instinct2x not supported?

  • The reason is there is no enough available memory for apps on Instinct devices to handle stroke recognition algorithms. 

  • Some other watches support the calculation of swing speed, can this one also support~~

  • There is no straighforward way to convert accelerometer signal to ball or even a rackett speed due to accelerometer limitation - garmin accelerometers cannot measure accelerations above 8G. I'm going to correlate the signal with actual speeds measured by speed radar and try to came up with the solution but I keep it as a future development plan.

  • Regarding the "Power" measurements, what is the power scale?

  • It is a relative scale based on peak accelerometer signal value. ~67% is equivalent of 8G acceleration

  • Just to clarify, I assume you are measuring the peak accelerometer signal value at the wrist. Does that accurately correlate to racket speed?

  • It would most likely correlate somehow with peak racket speed (loosely with ball speed) but imagine that you hit with (I'm making those number up):

    - 20% of your power - record 3g and correlate to 30mph

    - 40% of your power - record 6g  and correlate to 60mph 

    - 66% of your power - record 8g and correlate to 80mph

    - 80% of your power - record 8g ...

    - 90% of your power - record 8g ...

    - 100% of your power - record 8g ...

    My point is there is just no signal recorded above 8g and believe me 8g is a low power shot :) If there is no signal there is no point to do the correlation.

    Above 8g my app estimates "missing/trimmed" acceleration signal based on the duration of trimmed signal eg. If the signal is = 8g for 3/25 sec the shot will not be as powerfull as when signal is = 8g for the 8/25sec. This may potientially be used in the future to introduce rackett speed estimate but would require me to correlate it with data collected using radar.

    I know the copetitors like swing vision on apple watch does deliver rackett speed recording (maybe even ball speed) but apple watch can record acceleration up to 16g. Another thing is how accurate it is and how does it coverts to ball speed. Based on my ecperience with processing signals from those devices and for tennis activity itself I can assure you those speed measurement bring as mutch value as the % scale from my apps :) I,m sure you know the ball speed difference is more about making a clean shot rather than putting a lot of force/acceleration and moreover it is a byproduct of adding rotation, adding body motion and ball speed you recieve.

    I bet people would love to see it in my apps and I could introduce some rough speed approxomation but it would be based not on physics but on users convincing themeselves those number are accurate :) Since I think of myself as independent developer I just prefer not to fool people and introduce features that are just totally inaccurate :)

    Anyways thanks for curiosity and feedback:)