Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

XWalkParameters Class Reference

Parameters used by XWalkMC to control gait. More...

#include <XWalkParameters.h>

Inheritance diagram for XWalkParameters:

Detailed Description

Parameters used by XWalkMC to control gait.

One instance of this class is a public superclass which clients can modify directly, and a second instance is stored internally by XWalkMC which allows it to smoothly transition parameter values when they are updated. (See XWalkMC::ParameterTransition)

Definition at line 11 of file XWalkParameters.h.

List of all members.

Classes

class  LegParameters
 Specifies parameters for each leg. More...
class  SinusoidalParameters
 Specifies parameters for shifting the body position while in motion. More...

Public Member Functions

 XWalkParameters ()
 constructor, sets default values
 XWalkParameters (const XWalkParameters &p)
 copy constructor, forwards to operator=
void packGroundGravity (const fmat::SubVector< 3 > &ground, const fmat::SubVector< 3 > gravity) const
 converts the gravity and ground configuration parameters to fmat data structures for further calculations
float getMaxXVel () const
 returns fastest possible foward velocity given the current parameters (mm/s)
float getMaxYVel () const
 returns fastest possible sideways velocity given the current parameters (mm/s)
float getMaxAVel () const
 returns fastest possible rotational velocity given the current parameters (rad/s)
fmat::Column< 2 > computeNeutralPos (unsigned int leg) const
 returns center point of stride

Static Public Member Functions

static void projectToGround (const fmat::Column< 3 > &ground, float height, const fmat::Column< 3 > &gravity, fmat::Column< 3 > &tgt)
 projects point to ground plane along gravity vector

Public Attributes

plist::ArrayOf
< plist::Primitive< float > > 
groundPlane
 equation of the ground plane relative to the base frame (in millimeters)
plist::ArrayOf
< plist::Primitive< float > > 
gravityVector
 Vector indicating direction of gravity's pull, relative to the ground plane normal vector; this influences the projection of the foot positions onto the ground plane, magnitude is arbitrary.
plist::Primitive< floatoffsetX
 Bias the position of the body relative to the ground (in millimeters), so increasing this parameter moves the robot forward, parallel to the ground.
plist::Primitive< floatoffsetY
 Bias the position of the body relative to the ground (in millimeters), so increasing this parameter moves the robot left, parallel to the ground.
plist::Primitive< floatoffsetA
 Bias the orientation of the body relative to the ground (in radians), so increasing this parameter turns the robot counter-clockwise.
plist::Primitive< bool > resetOnStop
 Causes the feet to redistribute to their central positions when motion stops.
plist::Primitive< floatfrictionCoef
 Coefficient of friction with the ground (aka µ), limits the amount of non-normal force which can be applied.
plist::Primitive< floatstrideLenX
 The size of step to take with each leg (all legs have the same period and travel same speed, so must have the same length of stride).
plist::Primitive< floatstrideLenY
 The size of step to take with each leg (all legs have the same period and travel same speed, so must have the same length of stride).
plist::Primitive< bool > adaptiveLegOrder
 Whether to re-order the leg flights based on direction of motion.
plist::Primitive< bool > rotateBodyMotion
 Whether to rotate the sway and surge motions to match direction of motion.
plist::Primitive< unsigned int > transitionDuration
 How much time to use getting into initial position, or when parameters change (milliseconds).
SinusoidalParameters bounce
 moves the body up and down
SinusoidalParameters sway
 moves the body left and right
SinusoidalParameters surge
 moves the body forward and back
plist::ArrayOf< LegParameterslegParams
plist::DictionaryOf
< SinusoidalParameters
nonLegJoints

Protected Member Functions

void init ()
float nominalPeriod () const
float minPeriod () const

Static Protected Attributes

static const float EPSILON = 1e-5f
 limit of resolution for various computations

Constructor & Destructor Documentation

XWalkParameters::XWalkParameters (  ) 

constructor, sets default values

Definition at line 17 of file XWalkParameters.h.

XWalkParameters::XWalkParameters ( const XWalkParameters p  ) 

copy constructor, forwards to operator=

Definition at line 26 of file XWalkParameters.h.


Member Function Documentation

fmat::Column< 2 > XWalkParameters::computeNeutralPos ( unsigned int  leg  )  const

returns center point of stride

Definition at line 57 of file XWalkParameters.cc.

Referenced by getMaxAVel().

float XWalkParameters::getMaxAVel (  )  const

returns fastest possible rotational velocity given the current parameters (rad/s)

Definition at line 17 of file XWalkParameters.cc.

Referenced by GaitedFootstepMC::setGait(), and XWalkMC::setTargetDisplacement().

float XWalkParameters::getMaxXVel (  )  const

returns fastest possible foward velocity given the current parameters (mm/s)

Definition at line 11 of file XWalkParameters.cc.

Referenced by GaitedFootstepMC::setGait(), and XWalkMC::setTargetDisplacement().

float XWalkParameters::getMaxYVel (  )  const

returns fastest possible sideways velocity given the current parameters (mm/s)

Definition at line 14 of file XWalkParameters.cc.

Referenced by GaitedFootstepMC::setGait(), and XWalkMC::setTargetDisplacement().

void XWalkParameters::init (  )  [protected]

Definition at line 168 of file XWalkParameters.h.

Referenced by XWalkParameters().

float XWalkParameters::minPeriod (  )  const [protected]

Definition at line 44 of file XWalkParameters.cc.

Referenced by getMaxAVel(), getMaxXVel(), and getMaxYVel().

float XWalkParameters::nominalPeriod (  )  const [protected]

Definition at line 31 of file XWalkParameters.cc.

Referenced by XWalkMC::resetPeriod().

void XWalkParameters::packGroundGravity ( const fmat::SubVector< 3 > &  ground,
const fmat::SubVector< 3 >  gravity 
) const

converts the gravity and ground configuration parameters to fmat data structures for further calculations

gravity will be normalized, ground will just be the first three terms of groundPlane

Definition at line 87 of file XWalkParameters.cc.

Referenced by GaitedFootsteps::setGait(), GaitedFootstepMC::setGait(), and XWalkMC::updateOutputs().

void XWalkParameters::projectToGround ( const fmat::Column< 3 > &  ground,
float  height,
const fmat::Column< 3 > &  gravity,
fmat::Column< 3 > &  tgt 
) [static]

Member Data Documentation

Whether to re-order the leg flights based on direction of motion.

Definition at line 93 of file XWalkParameters.h.

Referenced by XWalkMC::computeLegPhase(), init(), and XWalkMC::setTargetVelocity().

moves the body up and down

Definition at line 128 of file XWalkParameters.h.

Referenced by init(), and XWalkMC::updateOutputsWalking().

Coefficient of friction with the ground (aka µ), limits the amount of non-normal force which can be applied.

Definition at line 81 of file XWalkParameters.h.

Referenced by init().

Vector indicating direction of gravity's pull, relative to the ground plane normal vector; this influences the projection of the foot positions onto the ground plane, magnitude is arbitrary.

This vector is added to the normal vector to the ground plane from the body frame origin. Thus, leaving this vector at (0,0,0) means that the gravity vector will always point straight into the ground, and adjusting the ground plane will change the attitude of the body without affecting foot positions. However, adjusting this instead of the groundPlane adjusts feet positions while keeping body parallel to the ground. Adjusting both is necessarily if you want to keep the body Z-axis aligned with gravity while walking uphill.

Definition at line 63 of file XWalkParameters.h.

Referenced by init(), and packGroundGravity().

equation of the ground plane relative to the base frame (in millimeters)

The equation is of the form $p_1x + p_2y + p_3z = p_4$, relative to the base frame, the first three parameters should be normalized. See also gravityVector.

Definition at line 54 of file XWalkParameters.h.

Referenced by GaitedFootsteps::addCandidate(), GaitedFootsteps::addRotation(), GaitedFootsteps::expand(), init(), packGroundGravity(), GaitedFootstepMC::updateOutputs(), XWalkMC::updateOutputsInitial(), and XWalkMC::updateOutputsWalking().

Bias the orientation of the body relative to the ground (in radians), so increasing this parameter turns the robot counter-clockwise.

Definition at line 74 of file XWalkParameters.h.

Referenced by XWalkMC::computeCurrentBodyOffset(), and init().

Bias the position of the body relative to the ground (in millimeters), so increasing this parameter moves the robot forward, parallel to the ground.

See also each leg's stanceWidth, which if changed en masse can provide the same adjustment parallel to the base frame instead of ground plane

Definition at line 67 of file XWalkParameters.h.

Referenced by XWalkMC::computeCurrentBodyOffset(), getMaxAVel(), and init().

Bias the position of the body relative to the ground (in millimeters), so increasing this parameter moves the robot left, parallel to the ground.

See also each leg's strideBias, which if changed en masse can provide the same adjustment parallel to the base frame instead of ground plane

Definition at line 71 of file XWalkParameters.h.

Referenced by XWalkMC::computeCurrentBodyOffset(), getMaxAVel(), and init().

Causes the feet to redistribute to their central positions when motion stops.

Looks better, but actually a little inefficient when you start walking again

Definition at line 78 of file XWalkParameters.h.

Referenced by init().

Whether to rotate the sway and surge motions to match direction of motion.

Definition at line 96 of file XWalkParameters.h.

Referenced by XWalkMC::computeCurrentBodyOffset(), and init().

The size of step to take with each leg (all legs have the same period and travel same speed, so must have the same length of stride).

Definition at line 87 of file XWalkParameters.h.

Referenced by GaitedFootsteps::addCandidate(), getMaxAVel(), getMaxXVel(), GaitedFootsteps::heuristic(), init(), XWalkMC::resetPeriod(), and GaitedFootsteps::setGait().

The size of step to take with each leg (all legs have the same period and travel same speed, so must have the same length of stride).

Definition at line 90 of file XWalkParameters.h.

Referenced by GaitedFootsteps::addCandidate(), getMaxAVel(), getMaxYVel(), init(), XWalkMC::resetPeriod(), and GaitedFootsteps::setGait().

moves the body forward and back

Definition at line 130 of file XWalkParameters.h.

Referenced by XWalkMC::computeCurrentBodyOffset(), and init().

moves the body left and right

Definition at line 129 of file XWalkParameters.h.

Referenced by XWalkMC::computeCurrentBodyOffset(), and init().

How much time to use getting into initial position, or when parameters change (milliseconds).

Definition at line 99 of file XWalkParameters.h.

Referenced by init(), and XWalkMC::spiderSettings().


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

Tekkotsu v5.1CVS
Generated Mon May 9 04:59:19 2016 by Doxygen 1.6.3