Next Article in Journal
SwissFEL: The Swiss X-ray Free Electron Laser
Next Article in Special Issue
Data-Foraging-Oriented Reconnaissance Based on Bio-Inspired Indirect Communication for Aerial Vehicles
Previous Article in Journal
The New Concept of Nano-Device Spectroscopy Based on Rabi–Bloch Oscillations for THz-Frequency Range
Previous Article in Special Issue
Human-Like Walking with Heel Off and Toe Support for Biped Robot
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Calculation of the Center of Mass Position of Each Link of Multibody Biped Robots

Department of Advanced Robotics, Italian Institute of Technology, via Morego, 30, Genova 16163, Italy
*
Author to whom correspondence should be addressed.
Appl. Sci. 2017, 7(7), 724; https://doi.org/10.3390/app7070724
Submission received: 26 May 2017 / Revised: 4 July 2017 / Accepted: 10 July 2017 / Published: 14 July 2017
(This article belongs to the Special Issue Bio-Inspired Robotics)

Abstract

:
In this paper, a novel method to determine the center of mass position of each link of human-like multibody biped robots is proposed. A first formulation to determine the total center of mass position has been tested in other works on a biped platform with human-like dimensions. In this paper, the formulation is optimized and extended, and it is able to give as output the center of mass positions of each link of the platform. The calculation can be applied to different types of robots. The optimized formulation is validated using a simulated biped robot in MATLAB.

1. Introduction

One of the pioneers in the field of biped robots was the Waseda University of Tokyo. In 1973, research groups from Waseda University developed WABOT-I, and in 1984 WABOT-2 as to become a professional musician [1]. In 1999, they developed a humanoid with a complete human configuration capable of biped locomotion, WABIAN (Waseda Bipedal humANoid), and in 2011 its Italian version SABIAN [2,3,4]. In 2017, a more complex version of the WABIAN robot is presented in [5]. In 2013, Google acquired eight advanced robot companies. Boston Dynamics, one of these, is known for its advanced robots including the world’s fastest robot, Cheetah [6] (which can travel at 29 mph), Big Dog [7] (the all-rough and tough robot that walks, runs, climbs, and carries heavy loads), and the latest Atlas (a biped humanoid capable of walking in outdoor rough terrain with the upper limbs capable of performing other tasks while walking). Several versions of Atlas [8,9] have been prepared for the DARPA Robotics Challenge program. In 2017, Boston Dynamics presented a very innovative robot with higher locomotion capabilities including wheels in the feet [10].
The general robot design process includes many phases, like the design of every complex machine. A tentative method to define these phases is shown as follows:
  • PHASE 1—Determination of the technical specifications which define limits and characteristics that the robot should have.
  • PHASE 2—Conceptual design of the robot including analysis of the developed robots in the world; design of novel systems; definition of the whole system including mechanics, electronics, low and high level control.
  • PHASE 3—Functional design of the robot including interaction of the robot with the environment; theoretical formulation and optimization; software and hardware design of virtual models (virtual model prototyping using CAD tools, analytical simulations, finite elements analysis, multibody analysis).
  • PHASE 4—Development of the robot including rapid prototyping modeling and tests.
  • PHASE 5—Realization of the final robot prototype and final tests.
All robots realized in Phase 5 should have, theoretically, the same architecture of the virtual models designed in Phase 3. In particular, the positions of the CoM (Center of Mass) of each link of the robot should have the same position defined in the virtual model. However, the total CoM of the real platform is not in the same calculated position of the total CoM of its respective virtual model. Why are these discrepancies are created? Are these errors (between virtual models and real robots) influences on the robot functionality?
In order to answer to these two questions we could show how the problem was evident in the SABIAN robot (height: 1500 mm; 64 kg). During our tests on the platform, we noted a weight difference of about 5 kg including differences of CoM position between real and virtual SABIAN. These discrepancies are created because during manufacturing, construction, and maintenance of the robot, the tolerances of the joints, cables, drivers, batteries, links, etc. could not be completely respected and errors are created. These errors influence the robot functionality and cannot be eliminated [11]. Hence, the real center of mass (CoM) of the robot is not coincident with the CoM of its virtual model [12]. In our experiments, the robot SABIAN [2,3] had about 5 kg of errors in an unknown position and during locomotion, the controller implemented on the virtual model architecture was not able to control the real platform with this unknown error position. Dynamic balance in locomotion is not simple to control in a biped platform and these errors may disturb biped stability.
Some researchers and specialists in the humanoid robotics field use a posture controller [11,12], in order to reduce the error between the robotic platform and its virtual model. Kwon et al. [13] (2007) proposed a method that uses a closed-loop observer based on a Kalman filter, adopted as estimation framework. Ayusawa et al. (2008) [14] proposed a method based on regression analysis models in order to estimate inertial parameters using a minimal set of sensors. In the work of Sujan and Dubowsky (2003) [15] the dynamic parameters of a mobile robot are calculated using an algorithm based on a mutual-information-based theoretic metric for the excitation of vehicle dynamics. Liu et al. (1998) [16], Khalil et al. (2007) [17], and Swevers et al. (1997) [18] show other methods oriented to improve the balancing performances of mobile biped robots when the center of mass is not precisely known.
In [2,3], the authors proposed a novel approach to determine the correct position of the center of mass in humanoid robots. In order to compensate the errors between the biped platform and its virtual model, an additional mass has been implemented in the virtual model of the humanoid robot. The value of this mass error is the analytical difference between the weight of the robot and the weight of its virtual model. Its position in the space is not known a priori, but it will be approximately calculated with the procedure described in [3]. In order to define its position, the authors of the paper proposed an analytic formula that gives the real position of the CoM of the platform and is based on the application of a procedure that requires only the values of the force-torque sensors, applied on the feet of the humanoid robot, and the values of the motors torque. This procedure standardizes the calibration procedure in order to minimize the errors and it can be applied to every biped platform. The formulation approach has been implemented on the SABIAN robot with dimensions comparable to humans (height: 1500 mm; weight: 64 kg) giving very good results.
The limits underlined in the papers [2,3] were based on the approximation used to put the error mass in the determined CoM with the proposed formula. The approximation has been justified because the real position of the error mass is not known and if an external mass is positioned in the real CoM, its negative influence is reduced. However, the problem remains because an approximation has been used on behalf of exact calculation.
In this paper, the limits underlined in [2,3] are bypassed with the optimization of the formula based on the determination of the CoM position of each link of the robot. With the proposed solution, the error mass is distributed on each link of the biped robot.
Another advantage of the formulation presented in this paper is that if the total CoM position of the platform is known a priori, the first formulation proposed in [2,3] can be bypassed and the CoM positions of each link of the platform can be calculated analytically without using force-torque sensors and the motor’s torque.
The paper is structured as follows: Section 2 presents, in synthesis, the first validated theoretical formulation proposed in [2,3]; Section 3 shows results and discussion on the second theoretical formulation to determine the center of mass position of each link of the platform. Section 4 presents validation of the second theoretical formulation. The paper ends with a conclusion and future works.

2. First Validated Theoretical Formulation

2.1. Dynamics of Multibody Biped Robots

Figure 1 shows global and local reference Cartesian system (respectively G-XYZ and P-XpYpZp and three points in the space (0, 1 and 2). The three points can be considered as belonging to a rigid body in the space; furthermore, the rigid body can be compared to a humanoid platform, or multibody robot, with its center of gravity in the Point 2 and its feet in the Points 0 and 1. A humanoid robot is indeed composed of a trunk and articulated kinematic chains such as legs and arms, connected to the trunk with joints and motors, and with force-torque sensors positioned on the feet and on the hands. The Points 0 and 1 represent the feet, where the force-torque sensors are positioned, and are shown with a light blue colour; the center of mass represented with the Point 2 is shown in red; the other black points indicate the center of mass of the links of the robot.
The dynamics of the system is described by the two equations (see Figure 1):
m 2 · a 2 = m 2 · g + F 0 + F 1 + F 2
M P = M 0 + M 2 + M 1 + p 0 × F 0 + p 1 × F 1 + p 2 × F 2
where: a 2 = [ a X 2 , a Y 2 , a Z 2 ] T is the acceleration of the CoM; m2 is the total mass of the robot without feet; p 0 = [ n , l , e ] T and p 1 = [ o , q , f ] T are the position vectors shown in Figure 1. p 2 = [ X 2 , Y 2 , Z 2 ] T is the CoM position that will be determined with the proposed formula in Section 3. M 0 = [ M X 0 , M Y 0 , M Z 0 ] T , M 1 = [ M X 1 , M Y 1 , M Z 1 ] T , M 2 = [ M X 2 , M Y 2 , M Z 2 ] T , F 0 = [ F X 0 , F Y 0 , F Z 0 ] T , F 1 = [ F X 1 , F Y 1 , F Z 1 ] T , F 2 = [ F X 2 , F Y 2 , F Z 2 ] T respectively represent the torques ( M 0 , M 1 , M 2 ) and the forces ( F 0 , F 1 , F 2 ) acting at the Points 0, 1 and 2. M P = [ M X P , M Y P , M Z P ] T is the resultant moment calculated with respect to the local Cartesian system (see Figure 1). The direction of the force and torque vectors, shown in Figure 1, is only indicative; the positive direction of the force and torque vectors has been considered with the same positive direction of the global reference Cartesian system (G-XYZ).
Furthermore, we can say that:
M 2 = [ M X 2 M Y 2 M Z 2 ] = [ M j _ r o l l M j _ p i t c h M j _ y a w ]  
M2 includes only the internal torques; M0 and M1 include the ground reaction torques. The Equation (3) is based on the assumption that the Jacobian Matrix is equal to the identity Matrix. This assumption is correct if the joints axis of the robot remain parallel, during motion, to the Y axis of the global reference Cartesian system (G-XYZ). It means that the motion of the robot for the determination of the formula is performed in a 2D plane. In this paper, the XZ plane is considered. M j _ r o l l , M j _ p i t c h , M j _ y a w are the torques of all roll, pitch, and yaw motors of the robot [11] and Mj is obtained from the equation:
M j [ N m ] = K [ N m / A ] · I [ A ]  
The accuracy in the estimation of Mj, calculated in (4) depends on the accuracy of the K value that is a constant parameter set for each motor and on the accuracy of the current I necessary for the motor function. In particular, the resolution of the used A/D converters is a fundamental parameter to define the accuracy of the current I.

2.2. Equilibrium

Considering the robot equilibrium ( m 2 a 2 = 0 ;   M P = 0 ) with respect to the Point P as shown in the Figure 1, Equations (1) and (2) can be modified. Moving the point of view from the vector shape to the scalar one, the values of the three components x, y, and z of the force and the torque can be obtained. The new system consists of six equations (five linearly independent) in six unknown values FX2, FY2, FZ2, X2, Y2, Z2. The forces and torques in Points 0 and 1 can be calculated by means of the load cells. The torques MX2, MY2, MZ2 are determined using (3) and (4).
In order to simplify the system, the robot is positioned in two different configurations. The two configurations are chosen in order to have a simplified geometry using l = q, n = o = e = f = 0 (see Figure 1) obtaining p 0 = [ 0 , l , 0 ] T and p 1 = [ 0 , l , 0 ] T .
In the first step the robot is placed on a walking surface and the platform should be kept in a first balance configuration (Scheme A, see Figure 2), allowing a measurement of the forces ( F 0 , F 1 ) and the torques ( M 0 , M 1 ) by means of the force-torque sensors on the feet, and of the armature currents ( M j _ r o l l , M j _ p i t c h , M j _ y a w ). In a second step, the robot is placed in a second balance configuration (Scheme B, see Figure 2), and in the same way, forces, torques, and motor currents associated with this new balance configuration are measured. The two balance configurations can be performed as the reader prefers underlining that the robot should be in a balance position. In particular, the coordinates X2A and Z2A are relative to the position of the center of mass of the platform in the configuration A along the first straight common line, which is chosen (in this paper) orthogonal to the plane of standing, and then parallel to the Z axis. mu, ru, lu, are the mass and the position of the center of mass of the robot ankle link from the floor to the ankle joint; U is the length of the ankle. mw, rw, lw, are the mass and the position of the center of mass of the remaining links of the platform. In the second balance configuration B, the components of the body are aligned according to a second straight common line, inclined to the vertical line with an angle θt. While mu, mw, ru, lu remain constant, rw and lw change their values. In this case, X2B and Z2B identify the coordinates of the center of mass of the body in the second balance configuration B. The coordinates of the two feet are the same because we chose this configuration as input. The implementations have been done positioning the robot in this initial position using a leveller and the encoders of the motors.
Based on the choice l = q, n = o = e = f = 0 ( p 0 = [ 0 , l , 0 ] T and p 1 = [ 0 , l , 0 ] T ), the Equations (1) and (2) can be rewritten in a general form that is function of the balance i configuration (I = A or I = B). Thus, Equations from (5) to (9) are obtained.
F X 2 i = F X 0 i F X 1 i  
F Y 2 i = F Y 0 i F Y 1 i  
F Z 2 i = m 2 · g F Z 0 i F Z 1 i
X 2 i = ( M Y 0 i + M Y 1 i + M Y 2 i ) / ( F Z 0 i + F Z 1 i ) + [ ( F X 0 i + F X 1 i ) / ( F Z 0 i + F Z 1 i ) ] · Z 2 i
Y 2 i = [ ( M X 0 i + M X 1 i + M X 2 i ) / ( F Z 0 i + F Z 1 i ) ] + [ l · ( F Z 1 i F Z 0 i ) / ( F Z 0 i + F Z 1 i ) ] + + [ ( F Y 0 i + F Y 1 i ) / ( F Z 0 i + F Z 1 i ) ] · Z 2 i

2.3. Proposed Coefficients

In following, four novel coefficients ( α i ,   β i ,   γ i ,   δ i ) are introduced
( M Y 0 i + M Y 1 i + M Y 2 i ) / ( F Z 0 i + F Z 1 i ) = α i
( F X 0 i + F X 1 i ) / ( F Z 0 i + F Z 1 i ) = β i
( M X 0 i + M X 1 i + M X 2 i ) / ( F Z 0 i + F Z 1 i ) + [ l · ( F Z 1 i F Z 0 i ) / ( F Z 0 i + F Z 1 i ) ] = γ i
( F Y 0 i + F Y 1 i ) / ( F Z 0 i + F Z 1 i ) = δ i
Rewriting Equations (8) and (9) (for I = A or I = B)
X 2 i = α i + β i · Z 2 i
Y 2 i = γ i + δ i · Z 2 i
Using the parameters mu, mw, ru, lu, rw and lw, the Equations (16) and (17) can be obtained. Thus, the Equations (14), (16) and (17) can be seen as a system composed of six equations in six unknown variables (for i = A and i = B) X2A, Z2A, X2B, Z2B, rw, lw; the relation between mw and mu is given by the Equation (18). θt is fixed by the user (θt = 0 in i = A), in a way that does not allow to tilt the platform.
X 2 i = [ m u · r u + m w · ( l w · sin θ t + r w · cos θ t ) ] / m 2
Z 2 i = [ m u · l u + m w · ( U + l w · cos θ t r w · sin θ t ) ] / m 2
m w = m 2 m u
Solving the equations system constituted by (14), (16) and (17), the positions of the center of mass are calculated in both the configurations A and B (for i = A and i = B). It must be underlined that only X as a function of Z has been considered, but the same result can be obtained considering Y as a function of Z.

2.4. Determination of the Partial Center of Mass Position

Placing θt = 0 (then i = A) and substituting (16) and (17) into (14) and placing θt ≠ 0 (then i = B) and substituting (16) and (17) into (14), two different equations will be obtained. Finally, combining these two equations l w and r w are obtained.
Placing θt ≠ 0 (then i = B) and rewriting (17) with the latter values given by l w and r w , Z2B is obtained.
Z2B represents the general position of the height Z of the center of mass for any value of θt. Placing i = B in (14) and (15) and substituting the found value of Z2B, the general formula of the position of the center of mass in (19) is given. Considering the equilibrium configuration, A (i = A) and then θt equal to zero, the system (20) is obtained.
In particular, the calculation of the center of mass position is strictly related to the proposed coefficients α A ,   β A ,   γ A ,   δ A ,   α B ,   β B , γ B ,   δ B , that are numerical values associated with the first and second measurements on the robot. In order to calculate these coefficients, it is necessary to consider the arbitrary θt associated with the second balance configuration, in addition to other parameters such as the above mentioned position of the center of mass of the feet (ru and lu) and its mass (mu) calculated using the CAD model. These parameters have a lower weight with respect to other links of the platform and then a lower inertial influence [3]. The two formulations (19) and (20) were tested and validated on the SABIAN platform giving very good results and presented in [2,3].
{ Z 2 B = f ( θ t , m 2 , β B , β A , α A , m u , l u , U , r u , α B ) ; X 2 B = α B + β B · Z 2 B ; Y 2 B = γ B + δ B · Z 2 B ;  
{ Z 2 B ( θ t = 0 ) = Z 2 A = f ( m 2 , β B , β A , α A , m u , l u , U , r u , α B ) ; X 2 B ( θ t = 0 ) = X 2 A = α A + β A · Z 2 A ; Y 2 B ( θ t = 0 ) = Y 2 A = γ A + δ A · Z 2 A ;  

3. Second Theoretical Formulation

3.1. Procedure for n Degrees of Freedom

In order to find the CoM positions of each link of the platform, the following procedure and formulation must be used. In particular, if n are the degrees of freedom of the platform; i represents the used configurations to calculate the CoM of each link. j represents the initial configuration. The number (k) of the configurations necessary to calculate the CoM position for each link of the system is calculated in the following
k = n + 1
The total CoM position (X2i, Y2i, Z2i) of the complete system for each configuration i can be obtained with the following formulas where the coefficients α i ,   β i ,   γ i ,   δ i ,   α j ,   β j ,   γ j ,   δ j , are calculated using respectively (10)–(13).
{ Z 2 i = f ( θ i , m 2 , β i , β j , α j , m u , l u , U , r u , α i ) ; X 2 i = α i + β i · Z 2 i ; Y 2 i = γ i + δ i · Z 2 i ;
The following formulas from (23) to (26) allow to determine the CoM positions of each link of the robot. mw, m2, mu, ru, qu, lu, U, are the input of the system as shown in the Section 2. rwi, qwi, lwi, are the components of the vector position t i = [ r w i q w i l w i + U ] T respectively in XP, YP, and ZP directions (see Figure 1). χ i and ε i are the angles of the vector position t i = [ r w i q w i l w i + U ] T as shown in Figure 3.
r w i = X 2 i · m 2 m u · r u m w ;   q w i = Y 2 i · m 2 m u · q u m w ; l w i = Z 2 i · m 2 m u · l u m w U
r w i = X 2 i · m 2 m u · r u m w ;   q w i = Y 2 i · m 2 m u · q u m w ; l w i = Z 2 i · m 2 m u · l u m w U
t i = [ r w i q w i l w i + U ] = [ t i   sin χ i   sin ε i t i   sin χ i   cos ε i t i   cos χ i ]
t i · m w = v = 1 n s i v · m i v
s i = [ r i q i l i ]

3.2. Procedure for n = 2 Degrees of Freedom

Figure 4 shows a sketch of a robot in a plane XP, ZP with two degrees of freedom (n = 2) and three links (La, Lb, Lc). From (21) k = 3 is obtained. This result means that two configurations must be used to calculate the coefficients α i ,   β i ,   γ i ,   δ i , and one configuration must be used to calculate the coefficients α j ,   β j , γ j ,   δ j using respectively (10)–(13) in order to find the CoM position of the links of the robot. In particular, the following iterative procedure should be used:
  • The robot is placed on a walking surface and the platform should be kept in a first balance configuration j allowing a measurement of the forces ( F 0 , F 1 ) and the torques ( M 0 , M 1 ) by means of the force-torque sensors on the feet, and of the armature currents ( M j _ r o l l , M j _ p i t c h , M j _ y a w ). These values are used to calculate the coefficients α j ,   β j ,   γ j ,   δ j , of the (22) using respectively (10)–(13);
  • The robot is placed in a second and third balance configuration i, and in the same way, forces, torques, and motor currents associated with each balance configuration (second and third) are measured. These values are used to calculate the coefficients α i ,   β i ,   γ i ,   δ i using respectively (10)–(13).
  • For each balance configuration i, the total CoM position is calculated using (22);
  • Each total CoM position allows to determine rwi, qwi, lwi, using (23) and the CoM position of each link of the robot using (27). For each configuration i, an equation using (26) is created. n linearly independent equations are used to find n vector positions.

3.3. Implementation of the Analytical Formulation

The example shown in Figure 4 has four unknown parameters (rb, lb, rc, lc), but four linearly independent equations can be obtained by the formulas shown in Section 3.1. In this case, we suppose to have ma, mb, mc, ra, la, as input. Figure 5 shows in details the configurations b and c shown in Figure 4. In particular, the four unknown parameters (rb, lb, rc, lc) which should be determined using analytical formulation are found using polar coordinates. t b and t c are the position vectors of the mass mw respect to the local reference system P-XPYPZP and respectively of the configuration b and c. s b and s c are respectively the position vectors of the masses, mb and mc, respect to the local reference system of each link.
Using (22), Z2b, X2b, and Z2c, X2c, can be calculated as shown in following
{ Z 2 b = f ( θ b , m 2 , β b , β a , α a , m a , l a , L a , r a , α b ) X 2 b = α b + β b · Z 2 b
{ Z 2 c = f ( θ c , m 2 , β c , β a , α a , m a , l a , L a , r a , α c ) X 2 c = α c + β c · Z 2 c
Using (23)–(25), rwb, lwb, and rwc, lwc, can be determined (see Figure 5) and the modules and angles of the two position vectors ( t b and t c ) are found
r w b = X 2 b · m 2 m u · r u m w ;   l w b = Z 2 b · m 2 m u · l u m w L a
r w c = X 2 c · m 2 m u · r u m w ;   l w c = Z 2 c · m 2 m u · l u m w L a
t b = r w b 2 + ( l w b + L a ) 2 ;   χ b = tan 1 ( r w b ( l w b + L a ) )
t c = r w c 2 + ( l w c + L a ) 2 ;   χ c = tan 1 ( r w c ( l w c + L a ) )  
Using (26) and (27), the modules of the position vectors s b and s c (respectively the position vectors of the masses mb and mc respect to the local reference system of each link) are determined. In the following, detailed equations are shown which can determine the four unknown parameters (rb, lb, rc, lc).
m w · r w b = m b · ( l b · sin θ b + r b · cos θ b ) + m c · ( ( L b + l c ) · sin θ b + r c · cos θ b )  
m w · ( l w b + L a ) = m b · ( L a + l b · cos θ b r b · sin θ b ) + m c · ( ( L b + l c ) · cos θ b r c · sin θ b + L a )
m w · r w c = m b · r b + m c · ( l c · sin θ c r c · cos θ c )
m w · ( l w c + L a ) = m b · ( L a + l b ) + m c · ( L a + L b + l c · cos θ c r c · sin θ c )
Solving the system using the Cramer’s rule, we obtain the following equations where sin θ b = s θ b ;   cos θ b = c θ b ;   sin θ c = s θ c ;   cos θ c = c θ c ;
A = | m b c θ b m b s θ b m b s θ b m b c θ b m c c θ b m c s θ b m c s θ b m c c θ b m b 0 0 m b m c c θ c m c s θ c m c s θ c m c s θ c |
| a 1 a 2 a 3 a 4 | = | m w r w b m c L b s θ b m w ( l w b + L a ) m b L a m c L b c θ b m c L a m w r w c m w ( l w c + L a ) m b L a m c ( L a + L b ) |
r b = | a 1 m b s θ b a 2 m b c θ b m c c θ b m c s θ b m c s θ b m c c θ b a 3 0 a 4 m b m c c θ c m c s θ c m c s θ c m c s θ c | det ( A )  
l b = | m b c θ b a 1 m b s θ b a 2 m c c θ b m c s θ b m c s θ b m c c θ b m b a 3 0 a 4 m c c θ c m c s θ c m c s θ c m c s θ c | det ( A )  
r c = | m b c θ b m b s θ b m b s θ b m b c θ b a 1 m c s θ b a 2 m c c θ b m b 0 0 m b a 3 m c s θ c a 4 m c s θ c | det ( A )
l c = | m b c θ b m b s θ b m b s θ b m b c θ b m c c θ b a 1 m c s θ b a 2 m b 0 0 m b m c c θ c a 3 m c s θ c a 4 | det ( A )
The proposed representation is general and can be implemented on robots with different types of joints (prismatic, revolute, spherical, helical, etc.). In case of robot conceived in an unconventional way, such as passive or flexible robots or robot with wheels [19,20,21], the procedure (21) and the formulas from (22) to (27) can be implemented if the two following points are satisfied:
  • Only two force-torque sensors must be the contact elements between the robot and the ground;
  • Joint sensors must give relative position of motion and current values to produce join motion.
Another advantage of the formulation presented in this paper, as underlined in the first section, is that if the total CoM position of the platform is known a priori, the first formulation proposed in [2,3] and shown in Section 2 of this paper can be bypassed and the CoM positions of each link of the platform can be calculated analytically without using force-torque sensors and motor’s torque. In this case, only the formulation of the Section 3 can be used.

4. Validation of the Second Theoretical Formulation

4.1. Example

In order to validate the second theoretical formulation shown in Section 3 (the first theoretical formulation was validate in [2,3] as underlined in Section 1 and Section 2), a virtual robot with three links and two DoFs in each leg is used. Figure 6 shows the designed robot and Table 1 shows the characteristics of the robot (lengths of the links, weights, CoMs positions, etc.).

4.2. Validation

In following, the example shown in Figure 6 with the characteristics shown in Table 1 is implemented in MATLAB using equations presented in Section 3. The validation consists to give as input the total CoM positions of each configuration and to verify that the CoM position of each link of the platform, calculated with the formulations of the Section 3, has the same value used in input.
  • % MATLAB Example
  • thb = 10 *pi/180; %radiant angle of the link Lb
  • thc = 10 *pi/180; %radiant angle of the link Lc
  • ma = 6.72; %kg weight of the Foot
  • mb = 0.95; %kg weight of the link b
  • mc = 1.16 + 0.94; %kg weight of the link c
  • mw = mb + mc; %kg
  • m2 = mu + mw; %kg
  • ra = 0; %mm position of the CoM of the foot
  • la = 26.32; %mm position of the CoM of the foot
  • La = 100; %mm length of the foot in Zp direction
  • Lb = 400; %mm length of the shin in Zp direction
  • Lc = 500; %mm length of the thigh in Zp direction
  • lb = 200; %mm INPUT CONDITION FOR VALIDATION
  • lc = 250; %mm INPUT CONDITION FOR VALIDATION
  • Z2a = (1/m2) *(ma *la + mb * (La + lb) + mc * (La + Lb + lc)); %mm Total CoM position in the configuration a
  • X2a = 0; %mm Total CoM position in the configuration a
  • Z2b = (1/m2) *(ma *la + mb * (La + lb *cos (thb)) + mc *(La + (Lb + lc) *cos (thb))); %mm Total CoM position in the configuration b
  • X2b = (1/m2) *(mb *lb *sin (thb) + mc *(Lb + lc) *sin (thb)); %mm Total CoM position in the configuration b
  • Z2c = (1/m2) *(ma *la + mb *(La + lb) + mc * (La + Lb + lc *cos (thc))); %mm Total CoM position in the configuration c
  • X2c = (1/m2) * (mc *lc *sin (thc)); %mm Total CoM position in the configuration c
  • rwb = (X2b *m2 − ma *ra)/mw; %mm from Equations (30) and (31)
  • lwb = (Z2b *m2 − ma *la)/mw − La; %mm from Equations (30) and (31)
  • rwc = (X2c *m2 − ma *ra)/mw; %mm from Equations (30) and (31)
  • lwc = (Z2c *m2 − ma *la)/mw − La; %mm from Equations (30) and (31)
  • B = mw * (lwb + La) − mb *La − mc *Lb *cos (thb) − mc *La; %change of variables
  • C = mw * (lwc + La) − mb *La − mc * (La + Lb); %change of variables
  • det_A = (mb *mc *cos (thb) * (cos (thc) − 1)); %from Equation (38)
  • lb_validation = (mc * (B *cos (thc) − C *cos (thb)))/det_A; %mm from Equation (41)
  • lc_validation = (mb * (C *cos (thb) − B))/det_A; %mm from Equation (41)

5. Conclusions

In this paper, an optimized formulation to determine the center of mass position of each link of a multibody biped robot is presented. The formulation is merged with a procedure that can be applied to each types of robot with two force-torque sensors in contact between the robot and the ground and joint sensors. An advantage of the formulation presented in this paper, as underlined in the paper, is that if the total CoM position of the platform is known a priori, the first formulation proposed in [2,3] (and shown in Section 2 of this paper) can be bypassed and the CoM positions of each link of the platform can be calculated analytically without using force-torque sensors and motors torque. In this case, only the formulation of the Section 3 can be used. The validation confirms the functioning of the proposed formulation.

Acknowledgments

The authors would like to express their sincere gratitude to the Humanot Team.

Author Contributions

This research is completely performed by Giovanni Gerardo Muscolo, who also wrote the paper. Darwin Caldwell and Ferdinando Cannella gave support to the first author.

Conflicts of Interest

The authors declare no conflict of interest.

Nomenclature

G-XYZglobal Cartesian system
P-XpYpZplocal Cartesian system
a 2 = [ a X 2 ,   a Y 2 ,   a Z 2 ] T acceleration vector of the total CoM
m2total mass of the robot without feet
p 0 = [ n ,   l ,   e ] T position vector of Point 0
p 1 = [ o ,   q ,   f ] T position vector of Point 1
p 2 = [ X 2 ,   Y 2 ,   Z 2 ] T position vector of Point 2
M 0 = [ M X 0 ,   M Y 0 ,   M Z 0 ] T torque vector of Point 0
M 1 = [ M X 1 ,   M Y 1 ,   M Z 1 ] T torque vector of Point 1
M 2 = [ M X 2 ,   M Y 2 ,   M Z 2 ] T torque vector of Point 2
F 0 = [ F X 0 ,   F Y 0 ,   F Z 0 ] T force vector of Point 0
F 1 = [ F X 1 ,   F Y 1 ,   F Z 1 ] T force vector of Point 1
F 2 = [ F X 2 ,   F Y 2 ,   F Z 2 ] T force vector of Point 2
M P = [ M X P ,   M Y P ,   M Z P ] T torque vector of the resultant moment calculated with respect to the local Cartesian system P-XpYpZp
M j _ r o l l , M j _ p i t c h , M j _ y a w torques of all roll, pitch, and yaw motors of the robot
X2A, Y2A, Z2Aposition of the centre of mass of the platform in the configuration A
X2B, Y2B, Z2Bposition of the centre of mass of the platform in the configuration B
mu, ru, qu, lumass and position of the centre of mass of the robot ankle link from the floor to the ankle joint
Ulength of the ankle
mw, rw, qw, lwmass and the position of the centre of mass of the remaining links of the platform
θtangle used in the configuration B
Kconstant parameter set for each motor
Icurrent necessary for the motor function
α i ,   β i ,   γ i ,   δ i four novel coefficients for the configuration i
α j ,   β j ,   γ j ,   δ j four novel coefficients for the configuration j
ndegrees of freedom of the platform
knumber of the configurations to calculate positions of the CoM for each link of the system
i, jused configurations to calculate the CoM of each link
t i = [ r w i q w i l w i + U ] T vector position of mw
rwi, qwi, lwicomponents of the vector position t i = [ r w i q w i l w i + U ] T respectively in XP, YP and ZP directions
χ i and ε i angles of the vector position t i = [ r w i q w i l w i + U ] T with the the local reference system P-XPYPZP
t b and t c position vectors of the mass mw respect to the local reference system P-XPYPZP and respectively of the configurations b and c
s b and s c position vectors of the masses mb and mc respect to the local reference system of each link

References

  1. Sugano, S.; Kato, I. WABOT-2: Autonomous robot with dexterous finger-arm-Finger-arm coordination control in keyboard performance. In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA 1987), Raleigh, NC, USA, 31 March–3 April 1987; pp. 90–97. [Google Scholar]
  2. Muscolo, G.G.; Recchiuto, C.T.; Hashimoto, K.; Laschi, C.; Dario, P.; Takanishi, A. A Method for the calculation of the effective Center of Mass of Humanoid robots. In Proceedings of the 11th IEEE-RAS International Conference on Humanoid Robots (Humanoids 2011), Bled, Slovenia, 26–28 October 2011. [Google Scholar]
  3. Muscolo, G.G.; Recchiuto, C.T.; Molfino, R. Dynamic balance optimization in biped robots: Physical modeling, implementation and tests using an innovative formula. Robotica 2015, 33, 2083–2099. [Google Scholar] [CrossRef]
  4. Muscolo, G.G.; Hashimoto, K.; Takanishi, A.; Dario, P. A comparison between two force-position controllers with gravity compensation simulated on a humanoid arm. J. Robot. 2013, 2013, 4. [Google Scholar] [CrossRef] [PubMed]
  5. Otani, T.; Hashimoto, K.; Miyamae, S.; Ueta, H.; Sakaguchi, M.; Kawakami, Y.; Lim, H.O.; Takanishi, A. Angular Momentum Compensation in Yaw Direction using Upper Body based on Human Running. In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA 2017), Singapore, 29 May–3 June 2017. [Google Scholar]
  6. Boston Dynamics 2013: Cheetah—Fastest Legged Robot. Available online: http://bostondynamics.com/robot-cheetah.html (accessed on 15 April 2017).
  7. Raibert, M. Dynamic legged robots for rough terrain. In Proceedings of the 10th IEEE-RAS International Conference on Humanoid Robots (Humanoids 2010), Nashville, TN, USA, 13 January 2011; p. 1. [Google Scholar]
  8. Case, S. DARPA Unveils Atlas DRC Robot. July 2013. Available online: http://spectrum.ieee.org/automaton/robotics/humanoids/darpa-unveilsatlas-drc-robot (accessed on 28 March 2017).
  9. Boston Dynamics 2013: Atlas—The Agile Anthropomorphic Robot (2013). Available online: http://www.bostondynamics.com/robot_Atlas.html (accessed on 1 April 2017).
  10. Boston Dynamics 2017: Introducing Handle. Available online: https://www.youtube.com/watch?v=-7xvqQeoA8c (accessed on 8 May 2017).
  11. Kim, J.-H.; Kim, J.-Y.; Oh, J.-H. Adjustment of Home Posture of Biped Humanoid Robot Using an Inertial Sensor and Force Torque Sensors. In Proceedings of the 2007 IEEE/RSJ International Conference on Intelligent Robots and Systems, San Diego, CA, USA, 29 October–2 November 2007. [Google Scholar]
  12. Nunez, V.; Nadjar-Gauthier, N.; Yokoi, K.; Blazevic, P.; Stasse, O. Inertial Forces Posture Control for Humanoid Robots Locomotion. In Humanoid Robots: Human-like Machines; Hackel, M., Ed.; Itech: Vienna, Austria, 2007; p. 642. [Google Scholar]
  13. Kwon, S.J.; Oh, Y. Estimation of the Center of Mass of Humanoid Robot. In Proceedings of the 2007 International Conference on Control, Automation and Systems, COEX, Seoul, Korea, 17–20 October 2007. [Google Scholar]
  14. Ayusawa, K.; Venture, G.; Nakamura, Y. Identification of Humanoid Robots Dynamics Using Floating-base Motion Dynamics. In Proceedings of the 2008 IEEE/RSJ International Conference on Intelligent Robots and Systems, Acropolis Convention Center, Nice, France, 22–26 September 2008. [Google Scholar]
  15. Sujan, V.A.; Dubowsky, S. An Optimal Information Method for Mobile Manipulator Dynamic Parameter Identification. IEEE/ASME Trans. Mechatron. 2003, 2, 215–225. [Google Scholar] [CrossRef]
  16. Liu, G.; Iagnemma, K.; Dubowsky, S.; Morel, G. A Base Force/Torque Sensor Approach to Robot Manipulator Inertial Parameter Estimation. In Proceedings of the 1998 IEEE International Conference on Robotics & Automation, Leuven, Belgium, 20–22 May 1998. [Google Scholar]
  17. Khalil, W.; Gautier, M.; Lemoine, P. Identification of the payload inertial parameters of industrial manipulators. In Proceedings of the 2007 IEEE International Conference on Robotics and Automation, Roma, Italy, 10–14 April 2007. [Google Scholar]
  18. Swevers, J.; Ganseman, C.; Tukel, D.B.; De Schutter, J.; Van Brussel, H. Optimal Robot Excitation and Identification. IEEE Trans. Robot. Autom. 1997, 13, 730–740. [Google Scholar] [CrossRef]
  19. Muscolo, G.G.; Recchiuto, C.T. Flexible Structure and Wheeled Feet to Simplify Biped Locomotion of Humanoid Robots. Int. J. Hum. Robot. 2017, 14. [Google Scholar] [CrossRef]
  20. Muscolo, G.G.; Caldwell, D.; Cannella, F. Multibody Dynamics of a Flexible Legged Robot with Wheeled Feet. In Proceedings of the ECCOMAS Thematic Conference on Multibody Dynamics, Prague, Czech Republic, 19–22 June 2017. [Google Scholar]
  21. Muscolo, G.G.; Caldwell, D.; Cannella, F. Biomechanics of Human Locomotion with Constraints to Design Flexible-Wheeled Biped Robots. In Proceedings of the AIM 2017IEEE International Conference on Advanced Intelligent Mechatronics, Munich, Germany, 3–7 July 2017. [Google Scholar]
Figure 1. Scheme for determining the total CoM (Center of Mass) position. The direction of the force and torque vectors is only indicative. Points 0 and 1 represent the feet, where the force/torque sensors are positioned; the center of mass is represented with the Point 2; the other black points indicate the mass of the links of the robot.
Figure 1. Scheme for determining the total CoM (Center of Mass) position. The direction of the force and torque vectors is only indicative. Points 0 and 1 represent the feet, where the force/torque sensors are positioned; the center of mass is represented with the Point 2; the other black points indicate the mass of the links of the robot.
Applsci 07 00724 g001
Figure 2. Two examples of balance configurations; scheme A and scheme B. m2 is the total CoM. mu and mw are the CoMs of the two links.
Figure 2. Two examples of balance configurations; scheme A and scheme B. m2 is the total CoM. mu and mw are the CoMs of the two links.
Applsci 07 00724 g002
Figure 3. Scheme and vector position of the mass mw.
Figure 3. Scheme and vector position of the mass mw.
Applsci 07 00724 g003
Figure 4. Sketch of a robot in a plane with 2 degrees of freedom. Three Configurations (a)–(c). m2 is the total mass of the system; ma, , mc are the masses of the links and ra, , rc and la, , lc are respectively the x and z components of the center of mass of the links respect to the relative revolute joint; La, , Lc are the lengths of the links.
Figure 4. Sketch of a robot in a plane with 2 degrees of freedom. Three Configurations (a)–(c). m2 is the total mass of the system; ma, , mc are the masses of the links and ra, , rc and la, , lc are respectively the x and z components of the center of mass of the links respect to the relative revolute joint; La, , Lc are the lengths of the links.
Applsci 07 00724 g004
Figure 5. Example for implementing the formula.
Figure 5. Example for implementing the formula.
Applsci 07 00724 g005
Figure 6. Example for implementing the formula.
Figure 6. Example for implementing the formula.
Applsci 07 00724 g006
Table 1. Characteristics of the robot.
Table 1. Characteristics of the robot.
LinkWeight [kg]Absolute CoM Position Respect to Xp, Yp, Zp [mm]Zp [mm]Relative CoM Position in Xp-Zp Plane [mm]
Foot 06.720, −200, 26.32La = 100la = 26.32, ra = 0
Shin 00.950, −200, 300Lb = 400lb = 200; rb = 0
Thigh 01.160, −200, 750Lc = 500lc = 250; rc = 0
Foot 16.720, 200, 26.32La = 100la = 26.32, ra = 0
Shin 10.950, 200, 300Lb = 400lb = 200; rb = 0
Thigh 11.160, 200, 750Lc = 500lc = 250; rc = 0
Waist0.940, 0, 1000//

Share and Cite

MDPI and ACS Style

Muscolo, G.G.; Caldwell, D.; Cannella, F. Calculation of the Center of Mass Position of Each Link of Multibody Biped Robots. Appl. Sci. 2017, 7, 724. https://doi.org/10.3390/app7070724

AMA Style

Muscolo GG, Caldwell D, Cannella F. Calculation of the Center of Mass Position of Each Link of Multibody Biped Robots. Applied Sciences. 2017; 7(7):724. https://doi.org/10.3390/app7070724

Chicago/Turabian Style

Muscolo, Giovanni Gerardo, Darwin Caldwell, and Ferdinando Cannella. 2017. "Calculation of the Center of Mass Position of Each Link of Multibody Biped Robots" Applied Sciences 7, no. 7: 724. https://doi.org/10.3390/app7070724

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop