General
This section outlines how to interact with our movement analysis service. Firstly, VayAnalyser has to be created, where a specific exercise can be configured. The API is written based on an event VayListener that can be added to the analyser. Throughout an exercise, our movement analysis service provides information about the user's session state that is further explained in a seperate page. When an event is triggered by the API, relevant information is received within the event data. In the following section, the most relevant event data are highlighted briefly
Pose
The most basic output from the VAY service is the human pose, which is estimated
by our AI algorithm. The positions are stored for each body point within the
PoseEvent
and are provided by the onPose
callback in the VayListener
. These
points are useful for visualization and custom analysis.
Metric Value
For every metric that is tracked during the configured exercise, the API returns
a detailed analysis with the onMetricValues
callback containing the
current value
and the metric that the value belongs to. For a ROM metric, the
value can e.g. be used to obtain the user's ROM of a movement.
Feedback
The onFeedback
callback provides feedback immediately after our AI algorithm
has detected an undesired body position. For example, if the user squats too
low, the corrective feedback is sent before the user is again in an upright
position where the repetition is completed. This can occur each time the user
reaches this undesired position.
Activity Summary
After an exercise is completed, a summary with all feedback that were collected
during the activity are sent with the onActivity
callback. The activity
performed by the user is classified into either a VayRepetition
, where the
exercise is completed with a full range, or a VayAttempt
, where the user's range
of motion or form deviated too much from the target exercise. Hence the purpose
of a VayAttempt
is to inform the user that the movement was recognized and what
is missing to be counted as repetition.
If a counter is used to show the number of repetitions, we recommend to only consider repetitions in the counter and not attempts.
Example: Squat
Assume you are using the Swift API to analyse a squat. An example of proper
alignment of a squat is keeping the back upright during execution to prevent
injuries. Therefore, the AI checks if the metric, specifically the angle between
the back and the vertical axis, is in the desired range. With the
onMetricValues
callback, the API returns an understandable value for this
metric that is checked. Furthermore, one can see if the user does not keep the
back in an upright position by listening to the onFeedback
callback or the
onActivity
callback. The onActivity
callback summarises all feedback after
the activity is complete, and classifies the activity into a VayRepetition
or
a VayAttempt
. Finally, the corrective feedback would be
"Keep your torso upright"
.