Public Member Functions | Private Member Functions
CnewPGstepStudy Class Reference

#include <newPGstepStudy.h>

List of all members.

Public Member Functions

void addStepFeaturesWithSlide (StepFeatures &stepF1, StepFeatures &stepF2, double negativeSlideTime)
 CnewPGstepStudy ()
void drawSeqHalfStepFeatures (ofstream &fb, double incrTime, double zc, double g, double t1, double t2, double t3, vector< double > vect_input, char leftOrRightFootStable, double coefFeet)
void drawSeqSlidedHalfStepFeatures (ofstream &fb, double incrTime, double zc, double g, double t1, double t2, double t3, vector< double > vect_input, char leftOrRightFootStable, double coefFeet)
void drawSeqStepFeatures (ofstream &fb, double incrTime, double zc, double g, double t1, double t2, double t3, double t4, double t5, vector< double > vect_input, char leftOrRightFootStable, double coefFeet)
void plotFootHeightSeqHalfStep (ofstream &fb, char whichDimension, double incrTime, double zc, double g, double t1, double t2, double t3, vector< double > vect_input, char leftOrRightFootStable)
void plotFootHeightSeqSlidedHalfStep (ofstream &fb, char whichDimension, double incrTime, double zc, double g, double t1, double t2, double t3, vector< double > vect_input, char leftOrRightFootStable)
void plotFootHeightSeqStep (ofstream &fb, char whichDimension, double incrTime, double zc, double g, double t1, double t2, double t3, double t4, double t5, vector< double > vect_input, char leftOrRightFootStable)
void plotOneDimensionCOMZMPSeqHalfStep (ofstream &fb, char whichDimension, double incrTime, double zc, double g, double t1, double t2, double t3, vector< double > vect_input, char leftOrRightFootStable)
void plotOneDimensionCOMZMPSeqSlidedHalfStep (ofstream &fb, char whichDimension, double incrTime, double zc, double g, double t1, double t2, double t3, vector< double > vect_input, char leftOrRightFootStable)
void plotOneDimensionCOMZMPSeqStep (ofstream &fb, char whichDimension, double incrTime, double zc, double g, double t1, double t2, double t3, double t4, double t5, vector< double > vect_input, char leftOrRightFootStable)
void produceOneDOWNHalfStepFeatures (StepFeatures &stepF, double incrTime, double zc, double g, double t1, double t2, double t3, vector< double > vectStep_input, char leftOrRightFootStable)
void produceOneStepFeatures (StepFeatures &stepF, double incrTime, double zc, double g, double t1, double t2, double t3, double t4, double t5, vector< double > vectStep_input, char leftOrRightFootStable)
void produceOneUPHalfStepFeatures (StepFeatures &stepF, double incrTime, double zc, double g, double t1, double t2, double t3, vector< double > vectStep_input, char leftOrRightFootStable)
void produceSeqHalfStepFeatures (StepFeatures &stepF, double incrTime, double zc, double g, double t1, double t2, double t3, vector< double > vectSteps_input, char leftOrRightFootStable)
void produceSeqSlidedHalfStepFeatures (StepFeatures &stepF, double incrTime, double zc, double g, double t1, double t2, double t3, vector< double > vectSteps_input, char leftOrRightFootStable)
void produceSeqStepFeatures (StepFeatures &stepF, double incrTime, double zc, double g, double t1, double t2, double t3, double t4, double t5, vector< double > vectSteps_input, char leftOrRightFootStable)
 ~CnewPGstepStudy ()

Private Member Functions

void genCOMZMPtrajectory (vector< double > &outputCOM, vector< double > &outputZMP, double incrTime, double zc, double g, double delta0, double deltaX, double deltaX2, double t1, double t2, double t3, double t4, double t5)
void genFOOTdownUPheight (vector< double > &output, double incrTime, double heightMax, double delay, double t1, double t2, double t3)
void genFOOTheight (vector< double > &output, double incrTime, double heightMax, double delay, double t1, double t2, double t3, double t4, double t5)
void genFOOTorientation (vector< double > &output, double incrTime, double initOrient, double endOrient, double delay, double t1, double t2, double t3, double t4, double t5, char dh)
void genFOOTposition (vector< double > &outputX, vector< double > &outputY, double incrTime, double xinit, double yinit, double xend, double yend, double delay, double t1, double t2, double t3, double t4, double t5, char dh)
void genFOOTupDOWNheight (vector< double > &output, double incrTime, double heightMax, double delay, double t1, double t2, double t3)
void genWAISTorientation (vector< double > &output, double incrTime, double initOrient, double endOrient, double delay, double t1, double t2, double t3, double t4, double t5, char dh)

Detailed Description

Definition at line 77 of file newPGstepStudy.h.


Constructor & Destructor Documentation

Constructor.

Definition at line 12 of file newPGstepStudy.cpp.

Destructor.

Definition at line 17 of file newPGstepStudy.cpp.


Member Function Documentation

void CnewPGstepStudy::addStepFeaturesWithSlide ( StepFeatures stepF1,
StepFeatures stepF2,
double  negativeSlideTime 
)

Definition at line 1553 of file newPGstepStudy.cpp.

void CnewPGstepStudy::drawSeqHalfStepFeatures ( ofstream &  fb,
double  incrTime,
double  zc,
double  g,
double  t1,
double  t2,
double  t3,
vector< double >  vect_input,
char  leftOrRightFootStable,
double  coefFeet 
)

Definition at line 244 of file newPGstepStudy.cpp.

void CnewPGstepStudy::drawSeqSlidedHalfStepFeatures ( ofstream &  fb,
double  incrTime,
double  zc,
double  g,
double  t1,
double  t2,
double  t3,
vector< double >  vect_input,
char  leftOrRightFootStable,
double  coefFeet 
)

Definition at line 464 of file newPGstepStudy.cpp.

void CnewPGstepStudy::drawSeqStepFeatures ( ofstream &  fb,
double  incrTime,
double  zc,
double  g,
double  t1,
double  t2,
double  t3,
double  t4,
double  t5,
vector< double >  vect_input,
char  leftOrRightFootStable,
double  coefFeet 
)

drawSteps outputs a file intended for gnuplot. Let's say that the result of drawSteps is in the file "data.gnuplot". Please write the following script file "toto.txt": set size ratio 1 unset key set term postscript eps enhanced set output "totoOutput.eps" plot "data.gnuplot" index 0 w l lt 1 lw 0.5 lc 1, "data.gnuplot" index 1 w l lt 2 lw 0.5 lc 2, "data.gnuplot" index 2 w l lt 2 lw 0.5 lc 2, "data.gnuplot" index 3 w l lt 1 lw 0.5 lc 3, "totoOutput.dat" index 4 w l lt 1 lw 0.5 lc 4 Then, gnuplot> load 'toto.txt' will produce the eps file "totoOutput.eps".

Parameters:
fbThe ofstream corresponding to the file where the data will be written.
vect_inputDescribes the sequence of steps.
leftOrRightFirstStable
halfStepsON
slideONHERE IS A PRECISE DESCRIPTION OF THE FORMAT USED FOR vect_input:
First remark: all angles are in degrees.
Let's denote by "FStF" the foot which will be stable during first step: the first stable foot.
The first 6 parameters are the following:
We consider a plan (the floor) with a x axis and a y axis. The orientation of the x axis in this plan is 0.
The (0,0) origin of this plan corresponds to the position of the waist and the CoM of the robot (they are supposed identical).
The 3 first parameters correspond to the FStF:
they are respectively the x position, y position and (absolute) orientation of the FStF.
The orientation of the FStF will always be supposed equal to ZERO ! Hence, the third parameter (vect_input[2]) is superfluous: it should always be 0 !!
The 3 next parameters correspond to the first swinging foot (FSwF): x position, y orientation, (absolute) orientation.
Let's denote by x, y, t, x', y', t', the first 6 parameters.
We suppose also that the position of the CoM is at the BARYCENTER OF THE INITIAL POSITIONS OF THE FEET; therefore we have: -x' = x , and -y' = y. HENCE, the 6 first parameters can in fact be generated with only 3 parameters, and :
x,y,t,x',y',t' = -x',-y',0,x',y',t'
So, we need only the initial position and orientation of the FSwF to generate the 6 parameters.
The first 6 parameters are all ABSOLUTE coordinates, but the following parameters are all RELATIVE coordinates ! What follows is a list of groups of parameters, each group corresponding to one step, or one half step realized. The groups depends on the options chosen. Let's describe all the cases.
CASE 1: halfStepsON=false, slidedStepsON=false.
In that case, what follows the 6 first parameters are groups of 3 parameters, each group describing the RELATIVE position of the last foot that was put on the ground. For example, if G_i = (x_i, y_i, t_i) is the ith such group, then (x_i, y_i) is the couple of coordinates (in meters) of the vector between the center of the stable foot and the swinging foot just after the ith step is finished (i.e. when the swinging foot touches the ground). Finally, t_i is the RELATIVE orientation (in degrees) of the final position of the swinging foot compared to the orientation of stable foot. For example, since the orientation of the first stable foot is 0, the parameter t_1 is the absolute orientation of the FSwF when the first step is just finished.
CASE 2: halfStepsON=false, slidedStepsON=true.
!!WARNING!! This is for the moment a forbidden choice. So far, the "sliding" has been implemented only with sequences of half steps. CASE 3: halfStepsON=true, slidedStepsON=false.
In that case, what follows the 6 first parameters are groups of 5 parameters. Each group corresponds to 2 half steps: one up, and one down. The two first parameters correspond to the RELATIVE position of the swing foot after the half step going up, i.e. when the swing foot is at his highest point. At this moment, the two feet are parallel. The first parameter is the lateral distance (in meters) between the two feet, and the second parameters is the height of the swing foot. Then, since after the next half step a full step has been realized, the three next parameters are defined just as in the case 1. CASE 4: halfStepsON=true, slidedStepsON=true.
In that case, what follows the first 6 parameters are groups of 7 parameters. The 2nd and 3rd, 5th, 6th and 7th parameters represent two half steps, and are defined just as in the case 3. The 1st and 4th parameters are "sliding negative times" (in s.), for respectively the first and second half step. For example, a slide parameter of -0.3s. means that the next step, instead of starting after the previous half step has been completed, will start 0.3s. before the end of the previous half step. The last 0.3s. of the previous half step will thus become a mixture between a finishing and a starting half step. This technique is used to speed up the walk and make it smoother. !!IMPORTANT!!: since there is nothing before the first half step, the first slide parameter must always be 0.

Definition at line 22 of file newPGstepStudy.cpp.

void CnewPGstepStudy::genCOMZMPtrajectory ( vector< double > &  outputCOM,
vector< double > &  outputZMP,
double  incrTime,
double  zc,
double  g,
double  delta0,
double  deltaX,
double  deltaX2,
double  t1,
double  t2,
double  t3,
double  t4,
double  t5 
) [private]

Definition at line 1111 of file newPGstepStudy.cpp.

void CnewPGstepStudy::genFOOTdownUPheight ( vector< double > &  output,
double  incrTime,
double  heightMax,
double  delay,
double  t1,
double  t2,
double  t3 
) [private]

Definition at line 1305 of file newPGstepStudy.cpp.

void CnewPGstepStudy::genFOOTheight ( vector< double > &  output,
double  incrTime,
double  heightMax,
double  delay,
double  t1,
double  t2,
double  t3,
double  t4,
double  t5 
) [private]

Definition at line 1274 of file newPGstepStudy.cpp.

void CnewPGstepStudy::genFOOTorientation ( vector< double > &  output,
double  incrTime,
double  initOrient,
double  endOrient,
double  delay,
double  t1,
double  t2,
double  t3,
double  t4,
double  t5,
char  dh 
) [private]

Definition at line 1362 of file newPGstepStudy.cpp.

void CnewPGstepStudy::genFOOTposition ( vector< double > &  outputX,
vector< double > &  outputY,
double  incrTime,
double  xinit,
double  yinit,
double  xend,
double  yend,
double  delay,
double  t1,
double  t2,
double  t3,
double  t4,
double  t5,
char  dh 
) [private]

Definition at line 1167 of file newPGstepStudy.cpp.

void CnewPGstepStudy::genFOOTupDOWNheight ( vector< double > &  output,
double  incrTime,
double  heightMax,
double  delay,
double  t1,
double  t2,
double  t3 
) [private]

Definition at line 1336 of file newPGstepStudy.cpp.

void CnewPGstepStudy::genWAISTorientation ( vector< double > &  output,
double  incrTime,
double  initOrient,
double  endOrient,
double  delay,
double  t1,
double  t2,
double  t3,
double  t4,
double  t5,
char  dh 
) [private]

Definition at line 1458 of file newPGstepStudy.cpp.

void CnewPGstepStudy::plotFootHeightSeqHalfStep ( ofstream &  fb,
char  whichDimension,
double  incrTime,
double  zc,
double  g,
double  t1,
double  t2,
double  t3,
vector< double >  vect_input,
char  leftOrRightFootStable 
)

Definition at line 791 of file newPGstepStudy.cpp.

void CnewPGstepStudy::plotFootHeightSeqSlidedHalfStep ( ofstream &  fb,
char  whichDimension,
double  incrTime,
double  zc,
double  g,
double  t1,
double  t2,
double  t3,
vector< double >  vect_input,
char  leftOrRightFootStable 
)

Definition at line 857 of file newPGstepStudy.cpp.

void CnewPGstepStudy::plotFootHeightSeqStep ( ofstream &  fb,
char  whichDimension,
double  incrTime,
double  zc,
double  g,
double  t1,
double  t2,
double  t3,
double  t4,
double  t5,
vector< double >  vect_input,
char  leftOrRightFootStable 
)

Definition at line 725 of file newPGstepStudy.cpp.

void CnewPGstepStudy::plotOneDimensionCOMZMPSeqHalfStep ( ofstream &  fb,
char  whichDimension,
double  incrTime,
double  zc,
double  g,
double  t1,
double  t2,
double  t3,
vector< double >  vect_input,
char  leftOrRightFootStable 
)

Definition at line 750 of file newPGstepStudy.cpp.

void CnewPGstepStudy::plotOneDimensionCOMZMPSeqSlidedHalfStep ( ofstream &  fb,
char  whichDimension,
double  incrTime,
double  zc,
double  g,
double  t1,
double  t2,
double  t3,
vector< double >  vect_input,
char  leftOrRightFootStable 
)

Definition at line 816 of file newPGstepStudy.cpp.

void CnewPGstepStudy::plotOneDimensionCOMZMPSeqStep ( ofstream &  fb,
char  whichDimension,
double  incrTime,
double  zc,
double  g,
double  t1,
double  t2,
double  t3,
double  t4,
double  t5,
vector< double >  vect_input,
char  leftOrRightFootStable 
)

Definition at line 684 of file newPGstepStudy.cpp.

void CnewPGstepStudy::produceOneDOWNHalfStepFeatures ( StepFeatures stepF,
double  incrTime,
double  zc,
double  g,
double  t1,
double  t2,
double  t3,
vector< double >  vectStep_input,
char  leftOrRightFootStable 
)

Definition at line 1857 of file newPGstepStudy.cpp.

void CnewPGstepStudy::produceOneStepFeatures ( StepFeatures stepF,
double  incrTime,
double  zc,
double  g,
double  t1,
double  t2,
double  t3,
double  t4,
double  t5,
vector< double >  vectStep_input,
char  leftOrRightFootStable 
)

Definition at line 1705 of file newPGstepStudy.cpp.

void CnewPGstepStudy::produceOneUPHalfStepFeatures ( StepFeatures stepF,
double  incrTime,
double  zc,
double  g,
double  t1,
double  t2,
double  t3,
vector< double >  vectStep_input,
char  leftOrRightFootStable 
)

Definition at line 1781 of file newPGstepStudy.cpp.

void CnewPGstepStudy::produceSeqHalfStepFeatures ( StepFeatures stepF,
double  incrTime,
double  zc,
double  g,
double  t1,
double  t2,
double  t3,
vector< double >  vectSteps_input,
char  leftOrRightFootStable 
)

Definition at line 1978 of file newPGstepStudy.cpp.

void CnewPGstepStudy::produceSeqSlidedHalfStepFeatures ( StepFeatures stepF,
double  incrTime,
double  zc,
double  g,
double  t1,
double  t2,
double  t3,
vector< double >  vectSteps_input,
char  leftOrRightFootStable 
)

Definition at line 2053 of file newPGstepStudy.cpp.

void CnewPGstepStudy::produceSeqStepFeatures ( StepFeatures stepF,
double  incrTime,
double  zc,
double  g,
double  t1,
double  t2,
double  t3,
double  t4,
double  t5,
vector< double >  vectSteps_input,
char  leftOrRightFootStable 
)

Definition at line 1929 of file newPGstepStudy.cpp.


The documentation for this class was generated from the following files:


halfsteps_pattern_generator
Author(s): Nicolas Perrin, Thomas Moulard/thomas.moulard@gmail.com
autogenerated on Sat Dec 28 2013 17:05:31