AREXIS is a system that uses augmented reality to teach people simple exercises such as squats. It first overlays a simple animation showing the user what the exercise looks like. It then freezes the overlay in the final position for the exercise and provides another overlay showing the user his or her current position. When the user's position matches the final position, the overlays change color to indicate the exercise is complete.
Watch a video of it in action:
AREXIS can be used to teach people exercises in the comfort and privacy of their own home. The squat is a good example exercise. For a beginner, the form can be practiced without any weight. The user do not need to be at the gym or even need any special equipment. If you look closely in the video, you will see the user is holding an umbrella, not a bar. Eventually the user will need to progress to an actual weighted squat, but by then he or she will be familiar with the correct form.
The AR overlay provides feedback that users cannot get from simply watching a video. It is difficult to remember all the little details when learning a new exercise. It is also difficult for people to judge angles correctly.
AREXIS could be very good for helping people do physical therapy exercises at home. From my own experience, I know it is very easy to get a small but important point wrong when I did new exercises at home. I did not know I was making a mistake until my next session with the therapist a week later.AREXIS uses ARToolkit and a standard webcam to track markers printed out using a standard printer. The marker positions are projected in to screen space coordinates so they can be reference in a common coordinate system. Only the x and y dimensions are considered for a couple of reasons. One, for the exercises AREXIS was built for, the markers all stay in approximately the same plane. Two, the coordinates returned by ARToolkit are accurate enough for registration but not extremely accurate in real world coordinates. Especially with the camera being about 8 feet away, the z coordinates would not have the accuracy or resolution to be useful.
The exercise is encoded in a text file containing the markers and their relative angles for the starting and finishing positions. One marker must be specified as the reference point for the rest of the markers. This reference point will always match up with the corresponding point on the user's body. For example, in the squat, the marker on the foot is the reference point. In a squat, the foot remains stationary while the knee, hip, and bar move. In the video, you can see when the user adjusts his footing, the overlay moves with him, registered with his foot.
The animation and the final position are registered with the reference point, but the lengths of each line segment tend to be incorrect. These line segment lengths are the same as the distance between the markers, which one would expect to remain approximately constant. However, as the user moves, the clothes and markers shift and the distances change quite a bit. This is most evident at the end of the video when the user performs the leg raise. The overlay shows the user's upper leg going out very far forward during the animation. As the user raises his leg, you will notice the overlay shrinks to match the new lengths.
AREXIS is also limited by the limitations of low cost optical tracking. Good lighting is very important for the tracking to work correctly. If even one of the markers cannot be located, the system will behave strangely until it can be located. As the user moves, the markers can shift, lighting changes, and clothes and shoelaces can obscure the markers. Also, to capture the user's entire body, the camera needs to be about 8 feet away. At that distance, a 1.3 megapixel (1280x1024) webcam produces significantly better results than a 0.3 megapixel (640x480) webcam.
./arexis <exercise_file> <left/right> <fake_tracking>All the parameters are optional, but if used they must come in this order.
Exercises are described by a set of markers and the relative angles between them. For example, to draw the overlay for the squat, the system first plots a point at the foot. It then rotates 55 degrees and translates the distance to the knee. Then it rotates 100 degrees and translates the distance to the hip. Finally, it rotates -100 degrees and translates the distance to the bar.
The rotation amounts are specified in a configuration file described below. The translation amounts are equal to the distances between the corresponding markers tracked on the user.
The exercise files are modified versions of the object data files used by the loadMultiple example in ARToolkit. See Data/squat and Data/legraise for examples.
The format is:
number_of_markers
marker_number_of_reference_marker*
marker_name
marker_pattern_file
marker_size
marker_coordinate
finish_angle*
start_angle*
length*
The parts marked with a * are the things used by AREXIS but not loadMultiple.
The fake tracking mode can be used for testing exercise animations. In this mode, tracking data is ignored. Instead, it uses the lengths given in the file as the distances between the markers. The reference marker, however, must be placed somewhere on the screen. For this marker only, finish_angle is interpreted as the x coordinate and start_angle as the y coordinate. Both coordinates are in the range [-1, 1].
Exercise configurations all assume the camera is to the right of the user. Running with the left mode will attempt to flip the animation accordingly, but this is not well tested. Additionaly, choosing a marker other than marker 0 as the reference marker is not well tested.