Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

UPennWalkMC Class Reference

#include <UPennWalkMC.h>

Inheritance diagram for UPennWalkMC:

Inheritance graph
[legend]
List of all members.

Detailed Description

Uses the UPennalizers' 2004 RoboCup code to compute walking gaits.

This class is ported from University of Pennsylvania's 2004 Robosoccer entry, and falls under their license: ========================================================================= This software is distributed under the GNU General Public License, version 2. If you do not have a copy of this licence, visit www.gnu.org, or write: Free Software Foundation, 59 Temple Place, Suite 330 Boston, MA 02111-1307 USA. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, including MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. =========================================================================

Definition at line 20 of file UPennWalkMC.h.

Public Member Functions

 UPennWalkMC ()
 constructor
virtual int updateOutputs ()
 is called once per update cycle, can do any processing you need to change your priorities or set output commands on the MotionManager
virtual int isDirty ()
 not used by MotionManager at the moment, but could be used to reduce recomputation, and you may find it useful
virtual int isAlive ()
 used to prune "dead" motions from the MotionManager
void setTargetVelocity (float x, float y, float a)

Protected Member Functions

void SetLegJoints (double *x)
void SetStanceParameters (double bodyTilt, double shoulderHeight, double foreX0, double foreY0, double hindX0, double hindY0)
void SetWalkSpeeds (int quarterPeriod, double maxDistance, double foreLiftInitial, double foreLiftFinal, double hindLiftInitial, double hindLiftFinal)
void SetWalkWorkspace (double foreXMin, double foreXMax, double foreYMin, double foreYMax, double hindXMin, double hindXMax, double hindYMin, double hindYMax)
void LegPositionsToAngles (double *a)
 Calculate 12 leg joint angles from leg positions.
void StandLegs (double x=0, double y=0, double z=0)
int GetWalkPhase ()
void SetWalkPhase (int phase)
void WalkLegs (double xWalk=0.0, double yWalk=0.0, double aWalk=0.0)

Static Protected Member Functions

static double clip (double x, double min=-1.0, double max=1.0)

Protected Attributes

float xVel
float yVel
float aVel
double body_tilt
double shoulder_height
double fore_x0
double fore_y0
double hind_x0
double hind_y0
int walk_phase
int walk_phase_direction
int walk_quarter_period
double walk_max_distance
double walk_fore_lift_initial
double walk_fore_lift_final
double walk_hind_lift_initial
double walk_hind_lift_final
double walk_current_x [NumLegs]
double walk_current_y [NumLegs]
double walk_fore_xmin
double walk_fore_xmax
double walk_fore_ymin
double walk_fore_ymax
double walk_hind_xmin
double walk_hind_xmax
double walk_hind_ymin
double walk_hind_ymax


Member Function Documentation

virtual int UPennWalkMC::isAlive (  )  [inline, virtual]

used to prune "dead" motions from the MotionManager

note that a motion could be "paused" or inactive and therefore not dirty, but still alive, biding its time to "strike" ;)

Returns:
zero if the motion is still processing, non-zero otherwise

Implements MotionCommand.

Definition at line 34 of file UPennWalkMC.h.

virtual int UPennWalkMC::isDirty (  )  [inline, virtual]

not used by MotionManager at the moment, but could be used to reduce recomputation, and you may find it useful

Returns:
zero if none of the commands have changed since last getJointCmd(), else non-zero

Implements MotionCommand.

Definition at line 33 of file UPennWalkMC.h.

void UPennWalkMC::LegPositionsToAngles ( double *  a  )  [protected]

Calculate 12 leg joint angles from leg positions.

Note positions are relative to stance parameters so all zero inputs -> stance angles

Definition at line 225 of file UPennWalkMC.cc.

Referenced by StandLegs(), and WalkLegs().

virtual int UPennWalkMC::updateOutputs (  )  [inline, virtual]

is called once per update cycle, can do any processing you need to change your priorities or set output commands on the MotionManager

Returns:
zero if no changes were made, non-zero otherwise
See also:
RobotInfo::NumFrames

RobotInfo::FrameTime

Implements MotionCommand.

Definition at line 25 of file UPennWalkMC.h.


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

Tekkotsu v3.0
Generated Fri May 11 20:08:55 2007 by Doxygen 1.4.7