ChppGikStepElement Class Reference

This is motion planner for a step This is a sequence ChppGikZMPshiftElement-ChppGikFootDisplaceElement-ChppGIkZMPshiftElement that plans motion for the feet and for the ZMP as follows:
First, ZMP is moved under the support foot. More...

#include <hpp/gik/motionplanner/element/step-element.hh>

Inheritance diagram for ChppGikStepElement:
Collaboration diagram for ChppGikStepElement:

Public Member Functions

 ChppGikStepElement (ChppGikStandingRobot *inSRobot, double inStartTime, const ChppGikFootprint *inFootprint, bool isRightFoot, double inSamplingPeriod, double inFinalZMPCoefficient=0.75, double inEndShiftTime=0.8, double inStartZMPShiftTime=0.6, double inFootMotionDuration=0.8, double inStepHeight=0.05)
 Constructor. More...
 
 ChppGikStepElement (ChppGikStandingRobot *inSRobot, const ChppGikFootprint *inFootprint, double inStartTime, bool isRightFoot, double rightfoot2TargetZMPX, double rightfoot2TargetZMPY, double inSamplingPeriod, double inEndShiftTime=0.8, double inStartZMPShiftTime=0.6, double inFootMotionDuration=0.8, double inStepHeight=0.05)
 Constructor. More...
 
virtual CjrlGikMotionConstraintclone () const
 Clone constructor. More...
 
virtual CjrlGikStateConstraintstateConstraintAtTime (double inTime)
 Get state constraint at a given time. More...
 
ChppGikTransformationConstraintfootConstraintAtTime (double inTime)
 Get foot transformation constraint at given time. More...
 
virtual CjrlFoot * supportFootAtTime (double inTime)
 Get the support foot joint at time inTime. More...
 
virtual bool plan (ChppGikSupportPolygon &supportPolygon, vector3d &ZMP)
 Plan stability-consistent ZMP and update given arguments in case of success. More...
 
virtual void preProlongate (double inPreProlongation)
 Mmake this motion constraint return the last planned constraint, from time endTime() to time endTime()+inProlongation. More...
 
virtual void postProlongate (double inPostProlongation)
 Make this motion constraint return the first planned constraint from time current startTime()-inProlongation to current startTime(). More...
 
bool isRight ()
 
 ~ChppGikStepElement ()
 Destructor. More...
 
- Public Member Functions inherited from ChppGikLocomotionElement
 ChppGikLocomotionElement (ChppGikStandingRobot *inSRobot, double inStartTime, double inDuration, double inSamplingPeriod)
 constructor More...
 
CjrlDynamicRobot * robot ()
 Get a pointer to associated robot. More...
 
virtual void startTime (double)
 Disactivated. More...
 
virtual double startTime ()
 Get the start time for this jrlGikMotionConstraint. More...
 
virtual double endTime ()
 Get the end time for this jrlGikMotionConstraint. More...
 
virtual double duration ()
 Get the duration of the original motion. More...
 
virtual CjrlGikMotionConstraintmotionConstraint ()
 Get a pointer to the motion constraint. More...
 
virtual matrixNxPZMPmotion ()
 Get the support foot joint at time inTime. More...
 
virtual ~ChppGikLocomotionElement ()
 Destructor. More...
 
- Public Member Functions inherited from CjrlGikMotionConstraint
virtual ~CjrlGikMotionConstraint ()
 
- Public Member Functions inherited from ChppGikPrioritizedMotion
 ChppGikPrioritizedMotion (CjrlDynamicRobot *inRobot, unsigned int inPriority, CjrlGikMotionConstraint *inMotionConstraint, double inDampingFactor)
 Constructor. More...
 
void workingJoints (const vectorN &inJointsMask)
 Set the joint mask put to work. More...
 
const vectorNworkingJoints () const
 Get the joint mask put to work. More...
 
unsigned int priority () const
 Get the priority. More...
 
double dampingFactor () const
 Get the damping factor. More...
 
CjrlDynamicRobot * robot ()
 Get the robot for this motion. More...
 
virtual ~ChppGikPrioritizedMotion ()
 Destructor. More...
 

Additional Inherited Members

- Protected Attributes inherited from ChppGikLocomotionElement
double attPreProlongation
 
double attPostProlongation
 
double attStartTime
 
double attEndTime
 
double attSamplingPeriod
 
double attEps
 
double attDuration
 
double attModifiedStart
 
double attModifiedEnd
 
CjrlFoot * attSupportFoot
 
CjrlFoot * attConstrainedFoot
 
bool attPlanSuccess
 
matrixNxP attZMPmotion
 
CjrlHumanoidDynamicRobot * attHumanoidRobot
 
ChppGikStandingRobotattStandingRobot
 
- Protected Attributes inherited from ChppGikPrioritizedMotion
CjrlGikMotionConstraintattMotionConstraint
 
vectorN attWorkingJoints
 
unsigned int attPriority
 
CjrlDynamicRobot * attRobot
 
double attDampingFactor
 

Detailed Description

This is motion planner for a step This is a sequence ChppGikZMPshiftElement-ChppGikFootDisplaceElement-ChppGIkZMPshiftElement that plans motion for the feet and for the ZMP as follows:
First, ZMP is moved under the support foot.


Second, the non-support foot is displaced
Third, the ZMP is moved at a given point between the two feet.

Constructor & Destructor Documentation

◆ ChppGikStepElement() [1/2]

ChppGikStepElement::ChppGikStepElement ( ChppGikStandingRobot inSRobot,
double  inStartTime,
const ChppGikFootprint inFootprint,
bool  isRightFoot,
double  inSamplingPeriod,
double  inFinalZMPCoefficient = 0.75,
double  inEndShiftTime = 0.8,
double  inStartZMPShiftTime = 0.6,
double  inFootMotionDuration = 0.8,
double  inStepHeight = 0.05 
)

Constructor.

The minimum time for the step motion (i.e parameter inFlightTime) is 0.5. So if the user constructs a step with anything below, it gets automatically thresholded.

◆ ChppGikStepElement() [2/2]

ChppGikStepElement::ChppGikStepElement ( ChppGikStandingRobot inSRobot,
const ChppGikFootprint inFootprint,
double  inStartTime,
bool  isRightFoot,
double  rightfoot2TargetZMPX,
double  rightfoot2TargetZMPY,
double  inSamplingPeriod,
double  inEndShiftTime = 0.8,
double  inStartZMPShiftTime = 0.6,
double  inFootMotionDuration = 0.8,
double  inStepHeight = 0.05 
)

Constructor.

The minimum time for the step motion (i.e parameter inFlightTime) is 0.5. So if the user constructs a step with anything below, it gets automatically thresholded.

◆ ~ChppGikStepElement()

ChppGikStepElement::~ChppGikStepElement ( )

Destructor.

Member Function Documentation

◆ clone()

virtual CjrlGikMotionConstraint* ChppGikStepElement::clone ( ) const
virtual

Clone constructor.

Implements CjrlGikMotionConstraint.

◆ footConstraintAtTime()

ChppGikTransformationConstraint* ChppGikStepElement::footConstraintAtTime ( double  inTime)
virtual

Get foot transformation constraint at given time.

Implements ChppGikLocomotionElement.

◆ isRight()

bool ChppGikStepElement::isRight ( )
Returns
true if this step is for right foot, false if for left

◆ plan()

virtual bool ChppGikStepElement::plan ( ChppGikSupportPolygon supportPolygon,
vector3d ZMP 
)
virtual

Plan stability-consistent ZMP and update given arguments in case of success.

Parameters
supportPolygonused and modified by this element according to purpose
ZMPused and modified by this element according to purpose
Returns
false conditions required by implemented planning algorithms not met

Implements ChppGikLocomotionElement.

◆ postProlongate()

virtual void ChppGikStepElement::postProlongate ( double  inPostProlongation)
virtual

Make this motion constraint return the first planned constraint from time current startTime()-inProlongation to current startTime().

Reimplemented from ChppGikLocomotionElement.

◆ preProlongate()

virtual void ChppGikStepElement::preProlongate ( double  inPreProlongation)
virtual

Mmake this motion constraint return the last planned constraint, from time endTime() to time endTime()+inProlongation.

Reimplemented from ChppGikLocomotionElement.

◆ stateConstraintAtTime()

virtual CjrlGikStateConstraint* ChppGikStepElement::stateConstraintAtTime ( double  inTime)
virtual

Get state constraint at a given time.

Implements CjrlGikMotionConstraint.

◆ supportFootAtTime()

virtual CjrlFoot* ChppGikStepElement::supportFootAtTime ( double  inTime)
virtual

Get the support foot joint at time inTime.

Returns
0 if the time is out of definition bounds

Implements ChppGikLocomotionElement.