<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Stabilize humanoid robot teleoperated by a RGB-D sensor</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Andrea Bisson?</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrea Busatto?</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stefano Michieletto</string-name>
          <email>stefano.michieletto@dei.unipd.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Emanuele Menegatti</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Intelligent Autonomous Systems Lab (IAS-Lab) Department of Information Engineering (DEI) University of Padova</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>An easy way to let a robot execute complex actions is to let the robot copy human moves. Useful information are read by sensors and elaborated to convert them into robot movements. This work focuses on keeping the robot balanced while it is performing an action: grasp an object laying on the ground in front of the robot. Experiments are performed with a human user moving in front of the sensor using a humanoid robot performing the same action, the Vstone Robovie-X.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        In this paper we describe a laboratory experience involving a humanoid robot
an its behaviours. This work follows to some similar experiences [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] already
developed in our lab. The proposed system elaborates online human movements
in order to control the robot joints. The goal is to make robot picking up an object
teleoperated by an human actor. The robot has to avoid unstable situations by
automatically balancing the input movements could make it fall down. Robot
Stabilization is the key step of the complete process (Fig. 1) used to compute
suitable joint values: the algorithm elaborates a feedback signal to keep the robot
balanced during the movement.
      </p>
      <p>Fig. 1. Overview of the entire system proposed in this paper.</p>
      <p>The robot used in this work is a humanoid: the Vstone Robovie-X.
RobovieX is a exible and economic platform already used in robotics courses to make
? These authors contributed equally to this work.
students familiar with humanoids. Our lab also provided us a simulated version
of this humanoid in order to prevent robot damages during the tests.</p>
      <p>The remainder of the paper is organized as follows: in Section 2 the data
acquisition system is explained, while the robot structure is illustrated in
Section 3. The stability algorithms used, math and physics behind them and some
speci c tests performed are described in Section 4. Finally, Section 5 contains
conclusions.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Data acquisition</title>
      <p>
        In this paper, data are acquired from a low cost RGB-D sensor: a person can
perform the desired actions in front of the sensor without any need of additional
equipment. A skeleton tracking system is used to extract human joints
positions and angles from the raw data provided by the sensor, namely a Microsoft
Kinect. The skeleton information (Figure 2) is subsequently remapped to the
robot model, so that the person acting in front of the camera could simply
teleoperate the robot by his own body, similarly to the systems described in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ],
and [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
The robot used in this work is a Vstone Robovie-X (Fig. 3). It is a small
humanoid robot with 17 DoF (Head 1, Arms 6, Legs 10). In this work the whole
robot body has been used to get it stable. In particular the upper body is also
involved in a grasping action so arms and shoulders can't be enforced to completely
keep the stability. The lower body is mainly controlled in order to maintain
balance but it is also important to let the robot reach objects easily.
In the following subsections are described the stability algorithms and
optimizations for the robot movement.
As we said before, our primary goal is to make a robot pick up an object laying
in front of it by imitating the human movements coming from a skeleton tracking
system. The main challenge is to keep the robot stable while it is crouching and
grasping the object.
      </p>
      <p>
        A consolidated method to maintain the robot stability [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] is to keep the
Center of Mass (CoM) projection point inside the contact area of the feet with
the ground. The CoM projection point of the robot should be calculated in order
to reach two di erent purposes: maintain the point inside the safe balanced area
and keep the robot movements as similar as possible to the user motions.
      </p>
      <p>At each instant, the CoM is equal to:</p>
      <p>N</p>
      <p>P mk xk
CoMx = k=1</p>
      <p>;
M</p>
      <p>N</p>
      <p>P mk yk
CoMy = k=1</p>
      <p>;
M</p>
      <p>N</p>
      <p>P mk zk
CoMz = k=1</p>
      <p>M
(1)
where N = 17 is the number of joints, mk is the kth joint inertial mass, M is
the mass of the robot, and xk; yk; zk are the coordinates of the kth joint with
respect to the Torso joint.</p>
      <p>Thus, the ground projection of the CoM is given by (CoMx; CoMy), and it
has to satisfy the constraints 90cm &lt; Comx &lt; 90cm and 35:5cm &lt; Comy &lt;
35:5cm that is the area covered by the robot foot in the initial standing position.
The selected movement is quite simple, so several solutions are feasible to solve
the problem. We imposed a strong relation between hip, knee an ankle joints
in order to involve all the lower body joints and at the same time adapt to the
human natural behaviour.</p>
      <p>=
=
2
;
0
157o
(2)
where is the pitch hip angle at instant t, is the knee angle at instant t, and
is the pitch ankle angle at instant t. Fig. 4 shows the three described angles in
the robot model. The method was tested experimentally on both simulated and
real robot.
4.2</p>
      <p>Re nement
We re ne the described technique applying di erent strategies in order to avoid
some rough robot movements we noticed during the initial tests. Studying the
dynamics of the task, we decided to limit roll movements (i.e. lateral movements)
in joints not involved in reaching the goal, like hips and ankles.</p>
      <p>Fast and sudden movements could threaten the robot stability while
performing an activity. Ensuring the smoothness of all robot moves is essential in
balancing purpose. Without any focused control, the input data can make the
robot move jerkily. This problem is due to the fast human movements compared
with the frame rate of the sensor and to the margin of error of the skeleton
tracker computing joints positions.</p>
      <p>The data acquired by the RGB-D sensor are ltered to remove the noise by
calculating the mean value of the last three angle values of every joint in order
to avoid rough robot movements and obtain a smoother motion.</p>
      <p>The pose feedback equation is:
where t is the raw value given by the skeleton tracker for a certain joint, ^t is the
computed value at the instant t for the considered joint, ^t 1 is the computed
value at the instant t 1 for the considered joint, ^t 2 is the computed value at
the instant t 2 for the considered joint.</p>
      <p>Moreover, the movements of the right and left side of the robot body are
coordinated in order to make easier for the robot to grasp the object. In this
way, we also increase the robot stability and its precision during the motion.</p>
      <p>Finally, the proportions between lower body angles are computed according
to the equation 2. These re ned data are used as input to the algorithm checking
if the CoM projection on the ground is inside the stability area.</p>
      <p>Again, the whole system has been tested with many users and di erent
objects1 on both real and simulated environment. The applied re nements
significantly improved the performance and the users easily reached the goal. It is
worth to notice that a slight delay is introduced by USB connection between
the system and the real robot, nevertheless no delay is present in the simulated
model, that works at 30 fps. We also can make real and simulated robot work
together, so humans can take advantage of the information provided by the virtual
model.
5</p>
    </sec>
    <sec id="sec-3">
      <title>Conclusions</title>
      <p>In this paper, a robot behaviour was developed in order to maintain robot
stability during a pinking up task performed by human teleoperation. The system
keeps the robot stable using movements as similar as possible to the user ones.
Our technique reach real-time performances, the robot is able to move smoothly
according to user movements.</p>
      <p>The system has been tested with di erent users and objects and it has also
been exposed as a working demo to the \The Researchers Night"2 in Padova.</p>
      <p>
        The work described in this paper could be used jointly with a Robot Learning
from Demonstration (RLfD) framework already developed in our lab [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. RLfD
is a programming paradigm that uses demonstrations in order to make a robot
learn new tasks. The system can be applied to improve the stability of the
robot while it is performing the learned activity. The idea is to extend our lab
1 Few videos of some tests realized: https://www.youtube.com/watch?v=LJyXT6gAyo8
https://www.youtube.com/watch?v=AOIkVLn3Kng https://www.youtube.com/
watch?v=GS9A4prXfpI
2 http://www.near-nottedeiricercatori.it/
experience by modeling the movements of the person in front of the sensor using
a Gaussian Mixture Model (GMM). The GMM will provide us a probabilistic
way to to classify a movement as safe or unsafe in order to prevent robot falls.
      </p>
      <p>As future work we also will improve the system by increasing the set of
supported actions and applying it to scenarios involving innovative robotic platforms
like exoskeletons.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Michieletto</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ghidoni</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pagello</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moro</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Menegatti</surname>
          </string-name>
          , E.:
          <article-title>Why teach robotics using ROS</article-title>
          .
          <source>Journal of Automation</source>
          , Mobile Robotics &amp; Intelligent
          <string-name>
            <surname>Systems</surname>
          </string-name>
          (in press)
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Pollard</surname>
            ,
            <given-names>N.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hodgins</surname>
            ,
            <given-names>J.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riley</surname>
            ,
            <given-names>M.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Atkeson</surname>
            ,
            <given-names>C.G.</given-names>
          </string-name>
          :
          <article-title>Adapting human motion for the control of a humanoid robot</article-title>
          .
          <source>In: Robotics and Automation</source>
          ,
          <source>2002. Proceedings. ICRA'02. IEEE International Conference on. Volume</source>
          <volume>2</volume>
          ., IEEE (
          <year>2002</year>
          )
          <volume>1390</volume>
          {
          <fpage>1397</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Dariush</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gienger</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Arumbakkam</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhu</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jian</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fujimura</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Goerick</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Online transfer of human motion to humanoids</article-title>
          .
          <source>International Journal of Humanoid Robotics</source>
          <volume>6</volume>
          (
          <issue>02</issue>
          ) (
          <year>2009</year>
          )
          <volume>265</volume>
          {
          <fpage>289</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Michieletto</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chessa</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Menegatti</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>Learning how to approach industrial robot tasks from natural demonstrations</article-title>
          .
          <source>In: Proceedings of IEEE Workshop on Advanced Robotics and its Social Impacts ARSO2013</source>
          , IEEE (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Vukobratovic</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stepanenko</surname>
          </string-name>
          , J.:
          <article-title>On the stability of anthropomorphic systems</article-title>
          .
          <source>Mathematical Biosciences</source>
          <volume>15</volume>
          (
          <issue>1</issue>
          ) (
          <year>1972</year>
          )
          <volume>1</volume>
          {
          <fpage>37</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Michieletto</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rizzi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Menegatti</surname>
          </string-name>
          , E.:
          <article-title>Robot learning by observing humans activities and modeling failures</article-title>
          .
          <source>In: IROS workshops: Cognitive Robotics Systems (CRS2013)</source>
          ,
          <source>IEEE (Nov</source>
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>