main

25
Project and Implementation of a Dynamically Stable Gait in the Robot Nao Universit` a degli Studi di Roma “La Sapienza” Master in Mechanical Engineering Rafael Rojas Rafael Rojas Biped Locomotion in Nao Robot

Transcript of main

  • Project and Implementation of a DynamicallyStable Gait in the Robot Nao

    Universita degli Studi di Roma La SapienzaMaster in Mechanical Engineering

    Rafael Rojas

    Rafael Rojas Biped Locomotion in Nao Robot

  • 1 Motivations.

    2 Kajita simplification of gait dynamics.

    3 Walking Pattern Generator.

    4 The kinematic controller.

    5 Implementation in Nao.

    Rafael Rojas Biped Locomotion in Nao Robot

  • Motivations

    Nao comes with build-in functions to make the robot walkgiven some parameters, such velocity or a position of arriving.

    But we dont have access to the walking algorithm.

    To modify the motion planner and make it robust, forexample, with respect to external disturbance, it is necessaryto have access to the walking pattern generator.

    The development of a new walking pattern generator it isnecessary also for planning the motion of the robot throughobstacles.

    Rafael Rojas Biped Locomotion in Nao Robot

  • The Kajita simplified dynamics

    zcgx + x = ZMPx

    zcgy + y = ZMPy (1)

    This approach have a linear relationship between the state of thesystem and the Zero Moment Point (ZMP) position in thelocomotion plane.

    Rafael Rojas Biped Locomotion in Nao Robot

  • WPG

    The Walking Pattern Generator (WPG) is a block, where afootstep sequence with a ZMP trajectory are transformed into atrajectories of the feed and the center of Mass (CoM) that allowsan humanoid robot to walk with dynamic stability.

    Rafael Rojas Biped Locomotion in Nao Robot

  • WPG: Preview Controller

    Our WPG is based on a feedback controlled system with a controllaw noted as preview controller.

    Rafael Rojas Biped Locomotion in Nao Robot

  • WPG: Preview Controller

    The control law is:

    u(k) = GIk

    i=0

    e(i) Gxx(k)NLl=1

    Gd(l)ZMPd(k + l)

    and the values of GI , Gx and Gd(l) are calculated to minimize theperformance index:

    J =i=k

    [eT (i)Qee(i) + x

    T (i)Qxx(i) + uT (i)Ru(i)

    ]this is done through the resolution of the discrete algebraic riccatiequation (DARE).

    Rafael Rojas Biped Locomotion in Nao Robot

  • WPG: our variables

    Our WPG have the follow variables that we can modify:

    time of double support Tds

    time of single support Tss

    discretization time T

    height of the car of the kajita model zc

    the trajectory of the swinging foot

    the trajectory of the ZMP

    Rafael Rojas Biped Locomotion in Nao Robot

  • DARE risolution

    with a discretization time of T = 0.01 s, Nl = 150 future samplesof ZMPd and zc = 0.31

    0

    500

    1000

    1500

    2000

    0 0.2 0.4 0.6 0.8 1 1.2

    GI = 1149.635782.

    Gx = 42986.459193 8251.545731 114.108039.

    Gd is in the figure.

    Rafael Rojas Biped Locomotion in Nao Robot

  • WPG: ZMP trajectory

    Rafael Rojas Biped Locomotion in Nao Robot

  • WPG: CoM trajectory

    -0.06

    -0.04

    -0.02

    0

    0.02

    0 2 4 6 8 10 12 14

    posizione del CoM lungo x0

    0.2

    0.4

    0.6

    0.8

    1posizione del CoM lungo x

    Rafael Rojas Biped Locomotion in Nao Robot

  • WPG: left foot trajectory

    0 0.050.10.15

    0.20.250.30.35

    -0.1-0.05

    00.05

    0.10

    0.01

    0.02

    0.03

    0.04

    0.05

    0

    0.002

    0.004

    0.006

    0.008

    0.01

    0.012

    0 2 4 6 8 10 12 14

    z0.042

    0.043

    0.044

    0.045

    0.046

    0.047

    0.048

    0.049

    0 2 4 6 8 10 12 14

    y

    0

    0.05

    0.1

    0.15

    0.2

    0.25

    0.3

    0.35

    0.4 x

    Rafael Rojas Biped Locomotion in Nao Robot

  • WPG: rigth foot trajectory

    0 0.050.10.15

    0.20.250.30.35

    -0.1-0.05

    00.05

    0.10

    0.01

    0.02

    0.03

    0.04

    0.05

    0

    0.002

    0.004

    0.006

    0.008

    0.01

    0.012

    0 2 4 6 8 10 12 14

    z

    -0.4

    -0.2

    0

    0.2

    0 2 4 6 8 10 12 14

    y

    0

    0.05

    0.1

    0.15

    0.2

    0.25

    0.3

    0.35

    0.4 x

    Rafael Rojas Biped Locomotion in Nao Robot

  • WPG: trajectory in the space

    00.1

    0.20.3

    0.40.5

    -0.2-0.15

    -0.1-0.05

    00.05

    0.10.15

    0.20

    0.1

    0.2

    0.3

    0.4

    0.5

    Rafael Rojas Biped Locomotion in Nao Robot

  • Kinematic Controller

    the WPG implicitly splits the problem of the dynamically stablegait in two parts:

    a dynamic part solved by the WPG, that generates stabletrajectories

    a kinematic part of solving the inverse kinematic problem oftracking the trajectories generated by the WPG.

    Rafael Rojas Biped Locomotion in Nao Robot

  • Kinematic Control: resolution of kinematic redundancy

    the general solution of the inverse kinematicsfor a task ti is:

    q = J#ti ti+Piuj where Pi = IJ#ti Jti and uj R

    n

    the vector uj Rn can be used to trackanother task tj :

    uj = (JtjPi )#[tj JtjJ#ti ti

    ]+ Pjuk

    with Pj = I (JtjPi )# (JtjPi )

    Rafael Rojas Biped Locomotion in Nao Robot

  • this reasoning can be usedrecursively to solve and array of Ntask t1, t2, , tN sorted by priority,defining:

    i = i1Pi with 0 = I

    Jti = Jti i1 with Jt1 = Jt1

    Pi = I J#ti Jti ,vi =i

    k=1 k1J#tk

    (tk Jkvk1

    )with v0 = 0.

    q =Ni=1

    i1J#ti

    (ti Jivi1

    )after, we need to integrate numerically: qk+1 = qk + q(k)T

    Rafael Rojas Biped Locomotion in Nao Robot

  • General View of the Project

    Rafael Rojas Biped Locomotion in Nao Robot

  • Simulation in Webots

    Webots is an environment of develop, design and dynamicsimulation of mobile robots.

    Rafael Rojas Biped Locomotion in Nao Robot

  • Simulation: Indici di prestazioni

    Now we can show an example of the performance of our WPG andkinematic controller on the physic model of Nao that we can foundin webots.The performance index that we have used is:

    Total Square Torque: TST = QTQ,

    where Q is the vector of actual torque in the motors.

    Rafael Rojas Biped Locomotion in Nao Robot

  • Example: one trajectory of the ZMP

    Rafael Rojas Biped Locomotion in Nao Robot

  • Example: one trajectory of the ZMP

    Rafael Rojas Biped Locomotion in Nao Robot

  • Example

    (Loading Circle-m-increase3.mp4)

    Rafael Rojas Biped Locomotion in Nao Robot

    sim2video.aviMedia File (video/avi)

  • Example: performance index

    0

    100

    200

    300

    400

    500

    0 50 100 150 200 250 300 350 400 450

    Rafael Rojas Biped Locomotion in Nao Robot

  • Integration in Nao

    We start the implementation of our software in NaoQi from onemodule example named fastgetsetexample that uses themodule DCM. We have modified the lines from 347 to 385 andthere we have put the next pseudocode :

    1 get DCM time and set in the variable command

    2 get the feedback of the motors of nao withfMemoryFastAccess->GetValues(sensorValues);

    3 compute the WPG actual desired position and velocities

    4 resolve the inverse kinematic problem as we shown below

    5 send the desired position to Nao withdcmProxy->setAlias(commands);

    Rafael Rojas Biped Locomotion in Nao Robot