SlideShare a Scribd company logo
1 of 25
Download to read offline
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
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 walk
given some parameters, such velocity or a position of arriving.
But we don’t have access to the walking algorithm.
To modify the motion planner and make it robust, for
example, with respect to external disturbance, it is necessary
to have access to the walking pattern generator.
The development of a new walking pattern generator it is
necessary also for planning the motion of the robot through
obstacles.
Rafael Rojas Biped Locomotion in Nao Robot
The Kajita simplified dynamics
zc
g
¨x + x = ZMPx
zc
g
¨y + y = ZMPy (1)
This approach have a linear relationship between the state of the
system and the Zero Moment Point (ZMP) position in the
locomotion plane.
Rafael Rojas Biped Locomotion in Nao Robot
WPG
The Walking Pattern Generator (WPG) is a block, where a
footstep sequence with a ZMP trajectory are transformed into a
trajectories of the feed and the center of Mass (CoM) that allows
an 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 control
law noted as preview controller.
Rafael Rojas Biped Locomotion in Nao Robot
WPG: Preview Controller
The control law is:
u(k) = −GI
k
i=0
e(i) − Gx x(k) −
NL
l=1
Gd (l) ZMPd (k + l)
and the values of GI , Gx and Gd (l) are calculated to minimize the
performance index:
J =
∞
i=k
eT
(i)Qee(i) + ∆xT
(i)Qx ∆x(i) + ∆uT
(i)R∆u(i)
this is done through the resolution of the discrete algebraic riccati
equation (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 samples
of 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 x
0
0.2
0.4
0.6
0.8
1
posizione del CoM lungo x
Rafael Rojas Biped Locomotion in Nao Robot
WPG: left foot trajectory
0 0.050.10.150.20.250.30.35
-0.1
-0.05
0
0.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.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.150.20.250.30.35
-0.1
-0.05
0
0.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
0
0.1
0.2
0.3
0.4
0.5
-0.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.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 stable
gait in two parts:
a dynamic part solved by the WPG, that generates stable
trajectories
a kinematic part of solving the inverse kinematic problem of
tracking 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 kinematics
for a task ti is:
˙q = J#
ti
˙ti +Pi uj where Pi = I−J#
ti Jti and uj ∈ R
the vector uj ∈ Rn can be used to track
another task tj :
uj = (Jtj Pi )#
tj − Jtj J#
ti
˙ti + Pj uk
with Pj = I − (Jtj Pi )#
(Jtj Pi )
Rafael Rojas Biped Locomotion in Nao Robot
this reasoning can be used
recursively to solve and array of N
task t1, t2, · · · , tN sorted by priority,
defining:
Ωi = Ωi−1Pi with Ω0 = I
˜Jti = Jti Ωi−1 with ˜Jt1 = Jt1
Pi = I − ˜J#
ti
˜Jti ,
vi =
i
k=1 Ωk−1
˜J#
tk
˙tk − Jkvk−1
with v0 = 0.
˙q =
N
i=1
Ωi−1
˜J#
ti
˙ti − Ji vi−1
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 dynamic
simulation 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 and
kinematic controller on the physic model of Nao that we can found
in webots.
The performance index that we have used is:
Total Square Torque: TST = QT Q,
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
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 one
module example named fastgetsetexample that uses the
module DCM. We have modified the lines from 347 to 385 and
there 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 with
fMemoryFastAccess->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 with
dcmProxy->setAlias(commands);
Rafael Rojas Biped Locomotion in Nao Robot

More Related Content

Similar to main

Pic18 f4520 and robotics
Pic18 f4520 and roboticsPic18 f4520 and robotics
Pic18 f4520 and robotics
Siddhant Chopra
 
Hands-on Robotics_Way Point Navigation
Hands-on Robotics_Way Point NavigationHands-on Robotics_Way Point Navigation
Hands-on Robotics_Way Point Navigation
Deepak Sharma
 
Fractional order PID for tracking control of a parallel robotic manipulator t...
Fractional order PID for tracking control of a parallel robotic manipulator t...Fractional order PID for tracking control of a parallel robotic manipulator t...
Fractional order PID for tracking control of a parallel robotic manipulator t...
ISA Interchange
 
Raymond.Brunkow-Project-EEL-3657-Sp15
Raymond.Brunkow-Project-EEL-3657-Sp15Raymond.Brunkow-Project-EEL-3657-Sp15
Raymond.Brunkow-Project-EEL-3657-Sp15
Raymond Brunkow
 

Similar to main (20)

L010338894
L010338894L010338894
L010338894
 
Report - Line Following Robot
Report - Line Following RobotReport - Line Following Robot
Report - Line Following Robot
 
Pic18 f4520 and robotics
Pic18 f4520 and roboticsPic18 f4520 and robotics
Pic18 f4520 and robotics
 
Design, analysis and controlling of an offshore load transfer system Dimuthu ...
Design, analysis and controlling of an offshore load transfer system Dimuthu ...Design, analysis and controlling of an offshore load transfer system Dimuthu ...
Design, analysis and controlling of an offshore load transfer system Dimuthu ...
 
Navigation and Trajectory Control for Autonomous Robot/Vehicle (mechatronics)
Navigation and Trajectory Control for Autonomous Robot/Vehicle (mechatronics)Navigation and Trajectory Control for Autonomous Robot/Vehicle (mechatronics)
Navigation and Trajectory Control for Autonomous Robot/Vehicle (mechatronics)
 
Thesis_EN
Thesis_ENThesis_EN
Thesis_EN
 
MATLAB Mechanical Engineering Research Projects
MATLAB Mechanical Engineering Research ProjectsMATLAB Mechanical Engineering Research Projects
MATLAB Mechanical Engineering Research Projects
 
Mapping mobile robotics
Mapping mobile roboticsMapping mobile robotics
Mapping mobile robotics
 
Vlsi ii project presentation
Vlsi ii project presentationVlsi ii project presentation
Vlsi ii project presentation
 
Two wheel self balancing robot
 Two wheel self balancing robot Two wheel self balancing robot
Two wheel self balancing robot
 
Matlab robotics toolbox
Matlab robotics toolboxMatlab robotics toolbox
Matlab robotics toolbox
 
Stepper Motor Matlab Projects Research Help
Stepper Motor Matlab Projects Research HelpStepper Motor Matlab Projects Research Help
Stepper Motor Matlab Projects Research Help
 
Hands-on Robotics_Way Point Navigation
Hands-on Robotics_Way Point NavigationHands-on Robotics_Way Point Navigation
Hands-on Robotics_Way Point Navigation
 
Robotics Simulation by Wireless Brains - ROBOKDC'15 Project
Robotics Simulation by Wireless Brains - ROBOKDC'15 ProjectRobotics Simulation by Wireless Brains - ROBOKDC'15 Project
Robotics Simulation by Wireless Brains - ROBOKDC'15 Project
 
OpenGL L02-Transformations
OpenGL L02-TransformationsOpenGL L02-Transformations
OpenGL L02-Transformations
 
Intelligent Control Systems for Humanoid Robot: Master Thesis_Owen Chih-Hsuan...
Intelligent Control Systems for Humanoid Robot: Master Thesis_Owen Chih-Hsuan...Intelligent Control Systems for Humanoid Robot: Master Thesis_Owen Chih-Hsuan...
Intelligent Control Systems for Humanoid Robot: Master Thesis_Owen Chih-Hsuan...
 
Portofolio Control Version SN
Portofolio Control Version SNPortofolio Control Version SN
Portofolio Control Version SN
 
Fractional order PID for tracking control of a parallel robotic manipulator t...
Fractional order PID for tracking control of a parallel robotic manipulator t...Fractional order PID for tracking control of a parallel robotic manipulator t...
Fractional order PID for tracking control of a parallel robotic manipulator t...
 
Raymond.Brunkow-Project-EEL-3657-Sp15
Raymond.Brunkow-Project-EEL-3657-Sp15Raymond.Brunkow-Project-EEL-3657-Sp15
Raymond.Brunkow-Project-EEL-3657-Sp15
 
Modular Pick and Place Simulator using ROS Framework
Modular Pick and Place Simulator using ROS FrameworkModular Pick and Place Simulator using ROS Framework
Modular Pick and Place Simulator using ROS Framework
 

main

  • 1. 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
  • 2. 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
  • 3. Motivations Nao comes with build-in functions to make the robot walk given some parameters, such velocity or a position of arriving. But we don’t have access to the walking algorithm. To modify the motion planner and make it robust, for example, with respect to external disturbance, it is necessary to have access to the walking pattern generator. The development of a new walking pattern generator it is necessary also for planning the motion of the robot through obstacles. Rafael Rojas Biped Locomotion in Nao Robot
  • 4. The Kajita simplified dynamics zc g ¨x + x = ZMPx zc g ¨y + y = ZMPy (1) This approach have a linear relationship between the state of the system and the Zero Moment Point (ZMP) position in the locomotion plane. Rafael Rojas Biped Locomotion in Nao Robot
  • 5. WPG The Walking Pattern Generator (WPG) is a block, where a footstep sequence with a ZMP trajectory are transformed into a trajectories of the feed and the center of Mass (CoM) that allows an humanoid robot to walk with dynamic stability. Rafael Rojas Biped Locomotion in Nao Robot
  • 6. WPG: Preview Controller Our WPG is based on a feedback controlled system with a control law noted as preview controller. Rafael Rojas Biped Locomotion in Nao Robot
  • 7. WPG: Preview Controller The control law is: u(k) = −GI k i=0 e(i) − Gx x(k) − NL l=1 Gd (l) ZMPd (k + l) and the values of GI , Gx and Gd (l) are calculated to minimize the performance index: J = ∞ i=k eT (i)Qee(i) + ∆xT (i)Qx ∆x(i) + ∆uT (i)R∆u(i) this is done through the resolution of the discrete algebraic riccati equation (DARE). Rafael Rojas Biped Locomotion in Nao Robot
  • 8. 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
  • 9. DARE risolution with a discretization time of T = 0.01 s, Nl = 150 future samples of 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
  • 10. WPG: ZMP trajectory Rafael Rojas Biped Locomotion in Nao Robot
  • 11. WPG: CoM trajectory -0.06 -0.04 -0.02 0 0.02 0 2 4 6 8 10 12 14 posizione del CoM lungo x 0 0.2 0.4 0.6 0.8 1 posizione del CoM lungo x Rafael Rojas Biped Locomotion in Nao Robot
  • 12. WPG: left foot trajectory 0 0.050.10.150.20.250.30.35 -0.1 -0.05 0 0.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.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
  • 13. WPG: rigth foot trajectory 0 0.050.10.150.20.250.30.35 -0.1 -0.05 0 0.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
  • 14. WPG: trajectory in the space 0 0.1 0.2 0.3 0.4 0.5 -0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.20 0.1 0.2 0.3 0.4 0.5 Rafael Rojas Biped Locomotion in Nao Robot
  • 15. Kinematic Controller the WPG implicitly splits the problem of the dynamically stable gait in two parts: a dynamic part solved by the WPG, that generates stable trajectories a kinematic part of solving the inverse kinematic problem of tracking the trajectories generated by the WPG. Rafael Rojas Biped Locomotion in Nao Robot
  • 16. Kinematic Control: resolution of kinematic redundancy the general solution of the inverse kinematics for a task ti is: ˙q = J# ti ˙ti +Pi uj where Pi = I−J# ti Jti and uj ∈ R the vector uj ∈ Rn can be used to track another task tj : uj = (Jtj Pi )# tj − Jtj J# ti ˙ti + Pj uk with Pj = I − (Jtj Pi )# (Jtj Pi ) Rafael Rojas Biped Locomotion in Nao Robot
  • 17. this reasoning can be used recursively to solve and array of N task t1, t2, · · · , tN sorted by priority, defining: Ωi = Ωi−1Pi with Ω0 = I ˜Jti = Jti Ωi−1 with ˜Jt1 = Jt1 Pi = I − ˜J# ti ˜Jti , vi = i k=1 Ωk−1 ˜J# tk ˙tk − Jkvk−1 with v0 = 0. ˙q = N i=1 Ωi−1 ˜J# ti ˙ti − Ji vi−1 after, we need to integrate numerically: qk+1 = qk + ˙q(k)∆T Rafael Rojas Biped Locomotion in Nao Robot
  • 18. General View of the Project Rafael Rojas Biped Locomotion in Nao Robot
  • 19. Simulation in Webots Webots is an environment of develop, design and dynamic simulation of mobile robots. Rafael Rojas Biped Locomotion in Nao Robot
  • 20. Simulation: Indici di prestazioni Now we can show an example of the performance of our WPG and kinematic controller on the physic model of Nao that we can found in webots. The performance index that we have used is: Total Square Torque: TST = QT Q, where Q is the vector of actual torque in the motors. Rafael Rojas Biped Locomotion in Nao Robot
  • 21. Example: one trajectory of the ZMP Rafael Rojas Biped Locomotion in Nao Robot
  • 22. Example: one trajectory of the ZMP Rafael Rojas Biped Locomotion in Nao Robot
  • 24. 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
  • 25. Integration in Nao We start the implementation of our software in NaoQi from one module example named fastgetsetexample that uses the module DCM. We have modified the lines from 347 to 385 and there 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 with fMemoryFastAccess->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 with dcmProxy->setAlias(commands); Rafael Rojas Biped Locomotion in Nao Robot