Keywords

1 Introduction

Efforts to describe and understand variations in body balance have led to the development of several postural assessment techniques, which can be performed either from a physiological or functional point of view [1]. The postural oscillations are traditionally represented by the trajectory of the pressure center (CP) and the center of mass (CM) [2].

However, while the CP is a kinetic measure easily obtained by force platform, the CM is a kinematic measure that is more difficult to access, as estimate of the CP or with the use of motion capture systems or inertial sensors, with certain complexity of operation and spatial layout [3].

The body center of mass is a point in or outside an object or body considered to have all its mass. Also if a force is applied to this point, the object or body is supposed to move without rotating.

The aim of this work is to reach an estimation of the CM position by using the Kinect coordinates and the kinematic method and analyze its behavior for a standing task. For justification, the knowledge of the body center of mass behavior is necessary to verify and implement protocols to reduce risk of fall in some people. And having a bit of sophistication, devices are often expensive.

2 Materials and Methods

In this topic we talk about the Kinect device and how it works, hardware and softwares used in this work and the kinematic method of estimating body center of mass, also known as segmental method, as well as the procedures to acquire the data.

2.1 Device–Kinect

In the development of this work was used the Microsoft Kinect device (in its version 360). The Kinect device was initially created to be a new method to control virtual games, in which the player itself (user) would perform the movement to the avatar, without the necessity of joysticks or knobs. All this is possible because the device makes use of a technique called Structured-Light 3D Scanning, well explained in the following reference [4].

Based on this technique, Kinect has dedicated software created by Microsoft to track people’s body using the data extracted of the images and it creates a skeleton model composed by a stick figure with the coordinates of the body joints.

2.2 Software—Python Codes and Kinect SDK

Kinect 360 can work with only 20 joints. To capture all these joints coordinates it was necessary to install software from Microsoft for Windows called SDK (Software Development Kit) v1.8 [5] to start using Kinect. A module in Python [6] named pykinect was also installed to receive the data from Kinect and manipulate them. With this module and through python programming we could dive into the data produced by Kinect software and use some important functions in this work as the Kinect initialization, depth and video frames, skeleton tracked and skeleton positions (the joints).

Then, we code routines in python to start the device, capture the frames to obtain the skeleton information needed, compute, save and show data and also to count the time in which the code would be running.

2.3 Hardware–Machine

We use a notebook ACER Aspire equipped with an Intel® core™ i3-2328, CPU 2.20 GHz, RAM 4 GB, OS 32bits.

2.4 Kinematic Method

There are some ways to compute a body CM. One of them is based on a table supported by a pin (rotation point) in which the subject is required to lie down and stay still. This method uses the principle of torque, and it can provide the center of mass not only for the total body but also for its segments. This method was particularly important to the development of the kinematic method.

Another method is using images and photogrammetry that consist in extract and gather information from image processing and analysis. The present work takes hold of this method in the development.

The Kinematic method of calculating the body center of mass was proposed by Zatsiorsky et al. in 1990 after estimating the center of mass for different segments of human body [7]. De Leva, 1993, observed some errors using Zatsiorsky’s method and could understand that the errors were occurring in consequence of the landmarks have been taken at the bone [8]. However, de Leva understood that it could be a better approach if it were taken at the axis of rotation of body segments. This method basically consists in computing the center of mass for each segment of human body to then compose the total body center of mass, and each segment is delimited by endpoints, usually joints. In this work the joints were taken through the acquisition of information generated by the Kinect skeleton model.

The body segmentation is composed of 14 parts: head, trunk, upper-arms, forearms, hands, thighs, shanks and feet so that each segment has its own CM, called segmental CM. After segmenting we need to locate all segmental CM, and that is part of Zatsiorsky et al. and de Leva’s works [7, 8]. They established an anthropometric table in which can be found the body segment parameters data.

To compute the body CM using this method is necessary to calculate the positions of the segmental CM based on the anthropometric table and the acquired joints positions by Kinect. This is possible through the Eq. 1, which basically places the anthropometric segmental CM as a point along the line that connects the distal and proximal points, which delimit segmental length. It is important to know that proximal and distal endpoints are related to if the joint location is next to the torso or away of it.

$${CM}_{w,s}={w}_{p}+L\times ({w}_{d}-{w}_{p})$$
(1)

where: CMw,s is position of the segmental CM in the direction chosen (w), L is the distance between the segmental CM and the proximal point wp in percent of length of the segment, wd and wp represent the variable chosen (x, y or z directions) in the distal and proximal positions, respectively.

Once knowing all the segmental CM positions in the directions needed, the Eq. 2 is used to calculate the body center of mass.

$$\mathrm{CM}=\frac{{\sum }_{i=0}^{n}{m}_{i}\times {\mathrm{CM}}_{s,i}}{{M}_{body}} $$
(2)

where: CM is the total body CM in the chosen direction, m is the segmental mass, CMs is the segmental CM in a specific direction and Mbody is the total body mass.

In this work, at the end of calculation with Eq. 2, we will have the spatial position of body CM.

2.5 Procedures

The procedure of data acquisition was performed with a healthy male subject, 1.67 m high and 60 kg mass, standing about 2.0 m from the Kinect device in a standard position (standing straight and relaxed hands by side) with double limbs, feet apart and eyes open. The subject was instructed to look straight ahead, remain silent and stay as still as possible till the end of the acquisition. This task was taken for 30 s and it was repeated three times. Also a voluntary oscillation in the Mediolateral direction around the ankle was executed, in which the subject moved to the both sides until he felt his limit of stability (the sensation of falling) for 30 s.

3 Results

The results are shown in Figs. 1 and 2. They show data from one of the acquisitions, in which Fig. 1 represents data from AP and ML directions. This result would be seen if we could join a pen vertically exactly in the CM position and it could scribble a paper sheet. All data is in millimeters.

Fig. 1
figure 1

CM trajectory

Fig. 2
figure 2

CM displacement across time

Figure 1 shows the trajectory of the CM while performing the task. As human body is commonly modelled as an inverted pendulum, the representation in this figure is the projection of the spatial CM along the plane of the floor, where the ML direction corresponds to the X-axis and the AP direction to the Z-axis in the Kinect device.

It is important to say that the trajectory origin (0, 0) is taken as the first point calculated from the first frame captured.

Figure 2 shows two time series that represent the displacement of the CM in both directions (AP and ML) computed as the displacement relative to the first point captured.

Figure 3 shows the result for a voluntary oscillation in the ML direction around the ankle.

Fig. 3
figure 3

Ankle sway across time

4 Discussion

The purpose of this work was to calculate the body CM for a standing task using Zatsiorsky and de Leva’s works and by extracting information from MS Kinect device. The results shown in the previous topic were obtained from a male subject (because the anthropometric model makes distinction between male and female due to their morphologic variation).

After implementing the segmental method for calculating the CM of the human body, tests were performed to verify its proper functioning. From then on, data were collected with the subject according to the protocol described to verify the data obtained and be able to analyze them.

It was possible to calculate and verify that the estimate of the CM for the subject was (57.56 ± 0.10)%, compared to the physiological CM, which is 55% of height, according to [9]. In addition to the estimate, it was also obtained its trajectory, which is called a statokinesiogram (Fig. 1), as well as its stabilogram (Fig. 2), which represents the time series of the oscillation amplitude in each direction (AP and ML). Thus, it is possible to analyze the metrics such as the amplitude of oscillation which is important to verify, in simple terms, how much of the base area is used for the oscillation of the CM (which can give indications of the stability). It is also possible to calculate its displacement and speed, among other metrics.

In the test performed, a mean velocity of 0.30 mm/s was obtained for the AP direction and 0.11 mm/s for the ML direction and also the oscillation amplitude was calculated in both directions, reaching 8.53 mm and 9.46 mm for ML and AP, respectively. Most of the literature found on Kinect and stability analysis deals with device validation compared to other devices as in [10], which makes it difficult to compare raw data as the ones placed in this work.

Another task was performed in which the result is shown in Fig. 3. The subject was standing and the based formed by his feet had its largest edge measuring approximately 300 mm. This result can be seen in Fig. 3 for the ML direction, where the maximum amplitude of oscillation tends to 300 mm. The AP direction shown does not contribute to the results, but the largest valley shown at around 25 s indicates that the CM was recalculated by the software because of an imbalance at the end of the test. A similar test was performed and analyzed by the reference [11].

It is worth mentioning that none of the data were subjected to filter.

The application of Kinect into practice has been studied by many researchers due to its potential of use in assessing postural stability, and many of the works are reviewed and compared in the systematic review of the reference [10]. Some of these applications are single and double-limb stance horizontal CM displacement and sway velocity with eyes open for static balance.

The application of this device can help health professionals to distinguish groups of equilibrium based on the metrics obtained from tests, discriminating patients at risk of falling and also evaluate protocols to improve postural stability. It is also possible to use it as an application to help elder patients in doing home exercises to increase stability [12], and be supervised by physical therapists.

5 Conclusion

Based on what was shown in this work it is possible to notice that Kinect has a good potential to be used as a device for kinematic analysis of CM due to its advantages, such as markerless skeleton recognition, flexibility, low-cost and facility to be incorporated in a computational routine.

Although the Kinect has been discontinued, this work can be an opportunity to show that low-cost movement sensors can be used to do tasks also done for expensive devices in balance assessments and give consistent results, even being limited.

For future work, a model to estimate the Kinect measurement error will be developed. An application will also be developed to explore and use the potential of the device.