ChppGikLocomotionElement Class Reference

A locomotion element is a motion planning task that produces threes motion chunks: a 2D Zero Momentum Point motion, a foot motion constraint and a support polygon motion. More...

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

Inheritance diagram for ChppGikLocomotionElement:
Collaboration diagram for ChppGikLocomotionElement:

List of all members.

Public Member Functions

 ChppGikLocomotionElement (ChppGikStandingRobot *inSRobot, double inStartTime, double inDuration, double inSamplingPeriod)
 constructor
CjrlDynamicRobot * robot ()
 Get a pointer to associated robot.
virtual
ChppGikTransformationConstraint
footConstraintAtTime (double inTime)=0
 Get the foot transformation constraint at given time.
virtual void preProlongate (double inPreProlongation)
 Mmake this motion constraint return the last planned constraint, from time endTime() to time endTime()+inProlongation.
virtual void postProlongate (double inPostProlongation)
 Make this motion constraint return the first planned constraint from time current startTime()-inProlongation to current startTime().
virtual void startTime (double)
 Disactivated.
virtual double startTime ()
 Get the start time for this jrlGikMotionConstraint.
virtual double endTime ()
 Get the end time for this jrlGikMotionConstraint.
virtual double duration ()
 Get the duration of the original motion.
virtual CjrlGikMotionConstraintmotionConstraint ()
 Get a pointer to the motion constraint.
virtual matrixNxPZMPmotion ()
 Get the support foot joint at time inTime.
virtual CjrlFoot * supportFootAtTime (double inTime)=0
 Get the support foot joint at time inTime.
virtual bool plan (ChppGikSupportPolygon &supportPolygon, vector3d &ZMP)=0
 Plan stability-consistent ZMP and update given arguments in case of success.
virtual ~ChppGikLocomotionElement ()
 Destructor.

Protected Attributes

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

Detailed Description

A locomotion element is a motion planning task that produces threes motion chunks: a 2D Zero Momentum Point motion, a foot motion constraint and a support polygon motion.


Constructor & Destructor Documentation

ChppGikLocomotionElement::ChppGikLocomotionElement ( ChppGikStandingRobot inSRobot,
double  inStartTime,
double  inDuration,
double  inSamplingPeriod 
) [inline]
virtual ChppGikLocomotionElement::~ChppGikLocomotionElement ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual double ChppGikLocomotionElement::duration ( ) [inline, virtual]

Get the duration of the original motion.

Note:
duration of the original motion i.e with prolongation being null

References attDuration.

virtual double ChppGikLocomotionElement::endTime ( ) [inline, virtual]

Get the end time for this jrlGikMotionConstraint.

Returns:
the end time given upon construction plus the postprolongation time

Implements CjrlGikMotionConstraint.

References attModifiedEnd.

virtual ChppGikTransformationConstraint* ChppGikLocomotionElement::footConstraintAtTime ( double  inTime) [pure virtual]

Get the foot transformation constraint at given time.

Implemented in ChppGikFootDisplaceElement, ChppGikZMPshiftElement, ChppGikStepElement, and ChppGikWalkElement.

virtual CjrlGikMotionConstraint* ChppGikLocomotionElement::motionConstraint ( ) [inline, virtual]

Get a pointer to the motion constraint.

Reimplemented from ChppGikPrioritizedMotion.

virtual bool ChppGikLocomotionElement::plan ( ChppGikSupportPolygon supportPolygon,
vector3d ZMP 
) [pure 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

Implemented in ChppGikFootDisplaceElement, ChppGikZMPshiftElement, ChppGikStepElement, and ChppGikWalkElement.

virtual void ChppGikLocomotionElement::postProlongate ( double  inPostProlongation) [inline, virtual]

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

Reimplemented in ChppGikStepElement, and ChppGikWalkElement.

References attEndTime, attModifiedEnd, attPlanSuccess, and attPostProlongation.

virtual void ChppGikLocomotionElement::preProlongate ( double  inPreProlongation) [inline, virtual]

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

Reimplemented in ChppGikStepElement, and ChppGikWalkElement.

References attModifiedStart, attPlanSuccess, attPreProlongation, and attStartTime.

CjrlDynamicRobot* ChppGikLocomotionElement::robot ( ) [inline, virtual]

Get a pointer to associated robot.

Implements CjrlGikMotionConstraint.

References ChppGikPrioritizedMotion::attRobot.

virtual void ChppGikLocomotionElement::startTime ( double  ) [inline, virtual]

Disactivated.

Implements CjrlGikMotionConstraint.

virtual double ChppGikLocomotionElement::startTime ( ) [inline, virtual]

Get the start time for this jrlGikMotionConstraint.

Returns:
the start time given upon construction minus the preprolongation time

Implements CjrlGikMotionConstraint.

References attModifiedStart.

virtual CjrlFoot* ChppGikLocomotionElement::supportFootAtTime ( double  inTime) [pure virtual]

Get the support foot joint at time inTime.

Returns:
0 if the time is out of definition bounds

Implemented in ChppGikFootDisplaceElement, ChppGikZMPshiftElement, ChppGikStepElement, and ChppGikWalkElement.

virtual matrixNxP& ChppGikLocomotionElement::ZMPmotion ( ) [inline, virtual]

Get the support foot joint at time inTime.

Returns:
0 if the time is out of definition bounds

References attZMPmotion.


Member Data Documentation

CjrlHumanoidDynamicRobot* ChppGikLocomotionElement::attHumanoidRobot [protected]