0% found this document useful (0 votes)
22 views

NAOControl Robio13

Control de estabilidad de robot NAO en superficies con pendiente variable, desarrollado en la Universidad de La Sabana. Publicado en el IEEE Robio International Conference 2013.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

NAOControl Robio13

Control de estabilidad de robot NAO en superficies con pendiente variable, desarrollado en la Universidad de La Sabana. Publicado en el IEEE Robio International Conference 2013.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Proceeding of the IEEE

International Conference on Robotics and Biomimetics (ROBIO)


Shenzhen, China, December 2013

Geometric balancing control of humanoid robots*


Mario Arbulu, Alejandro Padilla and Francisco Ramirez

Abstract— This paper describes two novel cartesian control center of mass behavior could be analized in order to control
algorithms, in order to balance a humanoid robot on a variable robot balance, [7]. As humanoid balancing could be achieved
slope surface. Two approaches have been developed, one takes by differents stages, a multi-level postural behavihour is pro-
into account the body attitude sensors feedback; and the
other one, the body forward kinematics feedback. The first posed, [8]; this approach takes into account from wholebody
method takes the robot’s body attitude sensors measures, that level to joint level. When the robot lost its balance, safe
is the robot body configuration in the 3D space, and this is fall strategies are taken into account in order to avoid robot
the inverse kinematics algorithm’s input, which computes the damage, as an extreme balance case, [9]. By analyzing the
current joints position in order to balance the robot, standing balance in separate motion planes, it is possible to divide
position on a variable slope. The second method, computes the
forward kinematics joint positions to obtain the robot body and acquire the balance problem, and it could be solved
configuration, which is the input of the inverse kinematics at frontal and sagital plane disturbances, [10]. Momentum
algorithm, for balancing the robot. Both methods are tested in control have a simplified dynamics solution for humanoid
NAO humanoid robot platform, and the results are discussed. balancing, but structure elasticity is not taken into account, so
I. INTRODUCTION additional realtime wholebody control must be used to avoid
humanoid fall down, [11]. Geometric control null space-
The humanoid robot balancing is an open area of research, based is an approach which does not take into account the
since forty years ago. And, the problem which is focused robot dynamics, this approach avoids the singuralirities and
on humanoid robot balancing on standing position, when successfull results are achieved at low velocity recovery, [12].
the surface changes its slope has been solved, by some Most of the above methods deal with wholebody dynamics
methods such as, momentum-based balance controller, [1] robot control to achieve its balance, those approaches are
which takes in to account the momentum rate to compensate more accurate than kinematic ones, at fast motions. But, in
variable forces on humanoid robots, when the support surface our case at this stage of research, that the surface slope is
is in motion. Another approach, [2], takes into account changing at low velocity, cartesian control can be used.
human balance capture as a reference to achieve humanoid Thus, in this work, two approches are presented and
balance too. Compliant models have been developed to discussed. The first approach called “Attitude Measuring”
control the humanoid balance, with feedback force, [3]; (AM), uses the attitude sensors located on the robot chest,
since the robot’s elastic structure could be estimated by that which are taken in the humanoid space orientation in re-
model. Sinergies biologically inspired have been developed altime; when the surface slope is changing, that measure
at kinematic level, to achieven robot balance with succesfull is the negative feedback of the robot whole body inverse
results, [4]. As manipulation tasks, on standing position kinematics. The second approach called “Forward Approach”
introduces humanoid robot disturbances, balancing strategies (FA), computes the robot forward kinematics from the joint
should be introduced on humanoid robot to compensate the realtime joint measuring, in order to obtain the robot body
asymetric upper body forces, [5], so dynamical approches orientation; which is the negative feeback of robot body
have been proposed, which achieve the robot balance. Other inverse kinematics. With both approaches the robot balancing
strategies are focused by comparison with human control could be achieved in realtime, and its fall is avoided.
upright position, [6]; thus, it is possible to study, which The contributions are summarized as following:
human body joints are working on balancing control, and 1. Both approaches take into account the robot geometry
how they achieve human equilibrium. Taking into account only, and robot balance is achieved.
multicontact points on humanoids, as a general case, the 2. The proposed kinematic model is validated on actual
*This work was supported by Engineering Faculty of Universidad de La robot platform.
Sabana This paper is divided as following, the second section
M. Arbulu is Associate Professor with the Program of Informat- describes the problem statement;the third section describes
ics Engineering, Universidad de La Sabana, Puente del Comun, s/n,
Chia, Cundinamarca, Colombia, South America mario.arbulu at the approaches which have been developed; in the forth
unisabana.edu.co section, simulation and experimental results are shown and
F. Ramirez is Researcher with the Program of Informatics Engi- discussed; the conclusions are detailed in the fifth section;
neering, Universidad de La Sabana, Puente del Comun, s/n, Chia,
Cundinamarca, Colombia, South America franciscoramro at and finally future works are detailed, in the sixth section.
unisabana.edu.co
A. Padilla is Master student with the Program of Informatics En- II. PROBLEM STATEMENT
gineering, Universidad de La Sabana, Puente del Comun, s/n, Chia,
Cundinamarca, Colombia, South America alejandro.padilla at In the current environments, people try to maintain their
unisabana.edu.co stability while walking, or at standing position on any

2136
978-1-4799-2744-9/13/$31.00 ©2013 IEEE
kinematics. The right robot side kinematics will be described
(that is, the right leg and arm kinematics); the left ones
should be solved in the same way, as following:
gst (0) : Initial manipulator configuration (right leg)
gst (θ) : Goal manipulator configuration (right leg)
gth (0) : Initial manipulator configuration (right hand)
gth (θ) : Goal manipulator configuration (right hand)
Fig. 1. Problem statement, maintain standing on variable slope. θ1 to θ11 : Degrees of freedom
θxrh to θθzrh
: Right hand position and orientation
θxa ,θya ,θza , θθx
a a
, θθy a
, θθz : COG position and orientation
surface, by balancing motion. This work solves the balancing θxr to θθz
r
: Right foot position and orientation
problem for maintaning a humanoid robot stability on a ξ1 to ξ11 : Twists of degrees of freedom
surface with variable slope, while it is at standing position,
ξxrh to ξθzrh
: Twists of non-physical degrees of freedom
(see Fig. 1). The balancing problem is solved by a negative
(right hand)
feedback of humanoid body attitude.
ξxa to ξθza
: Twists of non-physical degrees of freedom
III. DESCRIBING APPROACHES (COG)
As cartesian control will be used, at first, the kinematics ξxr to ξθzr
: Twists of non-physical degrees of freedom
model will be described. After that, the proposed approaches (right foot)
are explained. The Python code methods will be detailed, in ω1 to ω11 : Direction of degrees of freedom
order to achieve the robot balancing control. So, the forward kinematics is given by the next equations:
A. Kinematics Model
r r r r a a
This work deals with cartesian control, so the kinematics gst (θ) = eξx ∧θx .eξy ∧θy ...eξθz ∧θθz .gst (0) (1)
model is described in the following paragraphs with the
”’Screws approach”, (see Fig. 2): a a a a a a rh
∧θzrh
gth (θ) = eξx ∧θx .eξy ∧θy .eξz ∧θz ...eξz .gth (0) (2)
The inverse kinematics could be solved with the proposed
approach, which is detailed in [13].
B. Attitude measuring approach
In this subsection, the attiude sensor approach will be
detailed. In the Fig. 3, the flowchart is shown. The humanoid
robots have attiude sensors, which allow them to measure
their current space orientation. This measure is used to
control the robot stability, to avoid falling down. When the
surface slope changes, the robot must feedback its attitude,
in order to compensate those slope changes. So, the input
data to our approach is the robot attitude, that is robot body
orientation in the 3D space. With this data the whole body
Inverse kinematics is computed in realtime, which allows to
balance the robot, while the surface slope is changing.
The code has been written in Python which will be
described as following (see Fig. 4).
This code has the next methods: main(), grabarDato(),
poseInit(), poseBalance().
1) main() method: This method runs the balancing motion
on “x” and “y” axes.
Step 1:
a. Reading the Inertial and Joint position sensors, by
ALM EM ORY KEY N AM ES.
b. Import libraries.
Fig. 2. NAO DOF rotation axis, right side. Step 2:
An initial configuration is required, which parameters are
Now, let us define the configurations, twists, parameters as following:
and variables that should be used for solving the robot a. efecto: defines the selected end effector, it is the torso.

2137
Fig. 5. Forward approach flowchart.
Fig. 3. Attitude measuring approach flowchart.

The code has been written in Python, (see Fig. 6).

Fig. 4. Attitude measuring approach code.

b. espacio: defines the global reference frame.


c. mascaraAxis: defines how many axis are working.
Step 3: Fig. 6. Forward approach code.
Requires a proxy for connecting the robot by WiFi (SSL
protocol), and it runs the initial performance. We should d. Run the poseBalance() method.
define the next variables: e. Delay 3 seconds to avoid the sensors noise.
a. movimiento: defines the proxy name availible for the f. Take the current robot pose (valorDato) to compare
robot, in this case we take the ALMotion API, with the robot with the previous one (posicionInicialSA). In the cycle,
IP and standard port (9559). both data are compared in order to do the online negative
b. Activate all the motors with Stiffness method. feedback. At this stage, valorDato[0] (rotation around “x”
c. Run the poseInit() method. axis), and valorDato[1] (rotation around “y” axis), are the

2138
current attitude; and poscionInicialSA[0] (rotation around
“x” axis), posicionInicial[1] (rotation around “y” axis), are
the previous attitude robot angles. Both, the current and
previous attitudes have been compared during the cycle, (see
red boxes on Fig. 4).
g. To save the attitude, and each rotation axis on files.
Step 4:
Run the loop, which allows the robot balance, by ten Fig. 7. Balancing frontal view simulation.
seconds. As the robot Attitude will be compensated, the “wx”
and “wy” are computed as difference between the current 6
Rotation around x−axis

FA
attitude and previous one, (see red box in Fig. 4.) AM

It is possible to stop the loop with “Ctrl+C”. 5

The methods: poseInit(), poseBalance(), and grabarDato();


4
will be descibed in the apendix.

deg
3
C. Forward approach
The forward approach takes the current position measure 2

of each robot joint, as input of wholebody humanoid forward


1
kinematics (Fig. 5). This algorithm computes the current
robot body attitude. With a negative attitude feedback to 0
0 5 10 15 20 25 30 35 40
Inverse kinematics algorithm, the robot balance is achieved. time (sec)

The same steps as the previous approach are developed,


the only difference is in the step 3, when the robot attitude is
computed by the difference between the current attitude with Fig. 8. Balancing frontal view rotation around x-axis simulation results.
the previous one, which is computed by the forward kine-
matics. In the f. stage, the next variation is made: Take the
current robot pose (valorDato) to compare with the previous
one (posicionInicial, from forward kinematics). In the cycle,
both data are compared in order to do the online negative
feedback. At this stage, valorDato[0] (rotation around “x”
axis), and valorDato[1] (rotation around “y” axis), are the
current attitude; and poscionInicial[3] (rotation around “x”
axis), posicionInicial[4] (rotation around “y” axis), are the
previous attitude robot angles. Both, the current and previous Fig. 9. Balancing sagital view simulation.
attitudes have been compared during the cycle, (see red box
Fig. 6). 2
Rotation around y−axis

FA
Both approaches results will be shown and discussed in AM

the next section. 1

IV. SIMULATION AND EXPERIMENTAL RESULTS 0

Some simulation (Fig. 7 to 10), and experimental (Fig. 11


deg

−1
to 14) results will be discussed in this section.
1) Simulation results: Both approaches have been tested, −2

while varying the surface slope on frontal, and sagital planes


−3
(Fig. 7, Fig. 9).
Frontal simulation results, that is attitud profile around −4
0 5 10 15 20 25 30 35 40
“x-axis” is shown in Fig. 8. In the FA approach the attitud time (sec)

variation is higher than the AM approach; that varies between


2 to 6 degrees. While at AM approach, the attitude varies
between 0.5 to 5 degrees. That is because, on the FA Fig. 10. Balancing frontal view rotation around y-axis simulation results.
approach forward kinematics the current body attitude is
computed, and joint robot elasticity is not taken into account.
In the case of FA approach, the current robot body attitude is around -1 degree. And almost the same recovery motion is
taken into account from the attitude sensors, so it is a more achieved from 25 seconds. Both approaches give similar re-
accurate attitude estimation. sults, because at sagital motion structure stiffness is strongest
Sagital simulation results are detailed on Fig. 10 (“y-axis” instead of frontal motion; so the current attitude obtained by
attitude profile). At sagital motion, both approaches oscilate FA approach is almost the same of AM approach.

2139
shows higest orientation angles around “x-axis” instead of
AM approach. That is by the measuring precision. On sagital
motion both approaches are closer. At this stance, both
approaches are validated on real humanoid robot platform.

V. CONCLUSIONS
Fig. 11. Balancing frontal view actual results.

Low velocity robot attitud control could be achived, by


Rotation around x−axis
6
FA
taking into account the robot geometry.
5 AM
AM approach is more stable instead of FA one. Because:
4 1. The actual robot attitude is taken in realtime.
3
2. The robot achieves a stable position with less oscilla-
2
tion.
deg

1
3. The errors due to the forward kinematics computation
0
are avoided.
−1
4. Increasing the code running time makes a faster bal-
−2
ancing motion, but it is more unestable.
−3

−4
0 2 4 6 8 10 12 14 16 18
time (sec) VI. F UTURE WORKS

Taking into account the robot dynamics, which will im-


Fig. 12. Balancing frontal view rotation around x-axis actual results. prove its control stability. Multibody dynamics and compli-
ance control should improve the robot control stability.
To improve the robot joints control at force control level.

APPENDIX

C ODE M ETHODS

The methods which have been used will be detailed in this


Apendix, as following, (see Fig. 15).
Fig. 13. Balancing sagital view actual results.

Rotation around y−axis


A. grabarDato() method
1
FA
AM This method creates an array of the available data, which
0
has been readed from the sensors.
−1

−2
B. PoseInit() method
deg

−3
This method turns the robot at initial position. It is ready
−4
to start walking. This robot configuration is defined by
−5 Aldebaran-Robotics. It is a safe robot configuration for a
−6 standing position.
−7
0 2 4 6 8 10 12 14 16 18
time (sec)
C. PoseBalance() method
This method turns the robot at “surf” configuration, where
Fig. 14. Balancing sagital view rotation around y-axis actual results. the support polygon is increased, and the center of mass
lowers. Now, the robot is ready for balancing on a variable
slope.
2) Experimental results: In order to validate the proposed
approaches, some experimental tests have been done, and ACKNOWLEDGMENT
their results will be discussed, in this section (Fig. 11 to 14).
Frontal compensation is shown in Fig. 12, and sagital The authors would like to thank to Engineering Faculty
attitude profile in Fig. 14. Both results, and performance are from Universidad de La Sabana, technical lab people, for
quite similar to simulations. At frontal motion, FA approach their helpfull support on this research.

2140
R EFERENCES
[1] S. Lee, A. Goswami, A momentum-based balance controller for hu-
manoid robots on non-level and non-stationary ground, Autonomous
Robots, Volume 33, Issue 4, pp. 399-414, doi: 10.1007/s10514-012-
9294-z, Print ISSN 0929-5593, Online ISSN 1573-7527, Springer,
2012.
[2] K. Yamane, J. Hodgins, Simultaneous tracking and balancing of
humanoid robots for imitating human motion capture data, In-
telligent Robots and Systems, 2009. IROS 2009. IEEE/RSJ In-
ternational Conference on, pp.2510-2517, 10-15 Oct. 2009 doi:
10.1109/IROS.2009.5354750.
[3] B.J. Stephens; C.G. Atkeson, Dynamic Balance Force Control for
compliant humanoid robots, Intelligent Robots and Systems (IROS),
2010 IEEE/RSJ International Conference on, pp.1248-1255, 18-22
Oct. 2010 doi: 10.1109/IROS.2010.5648837
[4] H. Hauser; G. Neumann; A.J. Ijspeert; W. Maass, Biologically inspired
kinematic synergies enable linear balance control of a humanoid robot,
Biological Cybernetics, pp. 235-249, doi: 10.1007/s00422-011-0430-1
[5] M. Stilman; J. Olson; W. Gloss, Golem krang: Dynamically stable
humanoid robot for mobile manipulation, Robotics and Automation
(ICRA), 2010 IEEE International Conference on, pp.3304-3309, 3-7
May 2010 doi: 10.1109/ROBOT.2010.5509593
[6] R. J. Peterka, Comparison of Human and Humanoid Robot
Control of Upright Stance, Journal of Physiology-Paris, Vol.
103, Issues 35, MaySeptember 2009, Pages 149158 doi:
http://dx.doi.org/10.1016/j.bbr.2011.03.031
[7] L. Sentis; J. Park; O. Khatib, Compliant Control of Multicon-
tact and Center-of-Mass Behaviors in Humanoid Robots, Robotics,
IEEE Transactions on , vol. 26, no.3, pp.483-501, June 2010 doi:
10.1109/TRO.2010.2043757
[8] S.H. Hyon; R. Osu; Y. Otaka, Integration of multi-level postural
balancing on humanoid robots,Robotics and Automation, 2009. ICRA
’09. IEEE International Conference on, pp.1549-1556, 12-17 May
2009 doi: 10.1109/ROBOT.2009.5152434
[9] S. Yun; A. Goswami; Y. Sakagami, Safe fall: Humanoid robot
fall direction change through intelligent stepping and inertia
shaping, Robotics and Automation, 2009. ICRA ’09. IEEE In-
ternational Conference on, pp.781-787, 12-17 May 2009 doi:
10.1109/ROBOT.2009.5152755
[10] Y. Yoshida; K. Takeuchi; D. Sato; D. Nenchev, Postural balance
strategies for humanoid robots in response to disturbances in the
frontal plane, Robotics and Biomimetics (ROBIO), 2011 IEEE Interna-
tional Conference on, pp.1825-1830, 7-11 Dec. 2011 doi: 10.1109/RO-
BIO.2011.6181555
[11] A. Macchietto, V. Zordan, C. R. Shelton, Momentum control for
balance, ACM TRANSACTIONS ON GRAPHICS, Volume 28 Issue
3, August 2009 doi: 10.1145/1531326.1531386
[12] B. Wang; R. Hu; J. Zhang and C. Huai, Balance recovery control for
biped robot based on reaction null space method, Journal of Control
Theory and Applications , Volume 8, Issue 4, p.548 November 2010
doi: 10.1007/s11768-010-0268-4, Print ISSN 1672-6340, Online ISSN
1993-0623, South China University of Technology and Academy of
Mathematics and Systems Science, CAS, Springer
[13] M. Arbulú, J.M. Pardos, L.M. Cabas, P. Staroverov, D. Kaynov, C.
Pérez, M.A. Rodrı́guez, C. Balaguer, Rh-0 humanoid full size robot’s
control strategy based on the Lie logic technique, in IEEE-RAS Proc.
International Conference on Humanoid Robots (Humanoids) (IEEE
Press, Tsukuba, Japan, 2005), pp. 271-76.

Fig. 15. Code methods.

2141

You might also like