Main Page | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages | Examples

AiboLeg Class Reference

#include <aiboleg.h>

Inheritance diagram for AiboLeg:

Inheritance graph
[legend]
Collaboration diagram for AiboLeg:

Collaboration graph
[legend]

Public Member Functions

 AiboLeg ()
virtual ~AiboLeg ()
int GetNumJoints () const
Methods for head primitives
void OpenPrimitives ()
OPrimitiveID GetJointID (LEG_JOINT j) const
Methods for commannd vector manipulation and generation
void NewCommandVectorData ()
Methods for setting joint angles
void SetJoint (slongword angle, LEG_JOINT joint, int cmdVecIndex)
void SetJoint (double angle, LEG_JOINT joint, int cmdVecIndex)
void SetJoint (double start, double angle, LEG_JOINT joint, int cmdVecIndex)
void SetJoint (slongword angle, LEG_JOINT joint, int numFrames, int cmdVecIndex)
void SetJoint (double angle, LEG_JOINT joint, int numFrames, int cmdVecIndex)
void SetJoint (double start, double angle, LEG_JOINT joint, int numFrames, int cmdVecIndex)
void SetJointRel (slongword angle, LEG_JOINT joint, int cmdVecIndex)
void SetJointRel (double angle, LEG_JOINT joint, int cmdVecIndex)
void SetJointRel (double start, double angle, LEG_JOINT joint, int cmdVecIndex)
void SetJointRel (slongword angle, LEG_JOINT joint, int numFrames, int cmdVecIndex)
void SetJointRel (double angle, LEG_JOINT joint, int numFrames, int cmdVecIndex)
void SetJointRel (double start, double angle, LEG_JOINT joint, int numFrames, int cmdVecIndex)
Methods for getting joint angles
double GetJointValue (LEG_JOINT joint) const
double GetOPENRJointValue (LEG_JOINT joint) const
double GetMaxJointValue (int index, JOINT_UNIT unit=ANGLE_RAD) const
double GetMaxJointValue (LEG_JOINT joint, JOINT_UNIT unit=ANGLE_RAD) const
double GetMinJointValue (int index, JOINT_UNIT unit=ANGLE_RAD) const
double GetMinJointValue (LEG_JOINT joint, JOINT_UNIT unit=ANGLE_RAD) const
double GetMaxJointVelocity (int index, JOINT_UNIT unit=ANGLE_RAD) const
double GetMaxJointVelocity (LEG_JOINT joint, JOINT_UNIT unit=ANGLE_RAD) const
Methods for stetting joint gain
void SetJointGain ()
void EnableJointGain (LEG_JOINT joint)
void DisableJointGain (LEG_JOINT joint)
Methods for joint primitives
OPrimitiveID GetJointID (int j) const
Methods for commannd vector manipulation and generation
RCRegion * FindFreeRegion () const
int FindFreeRegionIndex () const
RCRegion * GetRegion (int index=0)
void SetCommandVector (int index, OCommandVectorData *vec)
Methods for setting joint angles
void SetJointOPENR (slongword angle, OPrimitiveID joint, int jointIndex, int cmdVecIndex)
void SetJointOPENR (double angle, OPrimitiveID joint, int jointIndex, int cmdVecIndex)
void SetJoint (double start, double angle, OPrimitiveID joint, int jointIndex, int cmdVecIndex)
void SetJoint (double start, double angle, OPrimitiveID joint, int jointIndex, int numFrames, int cmdVecIndex)
void SetJoint (double angle, OPrimitiveID joint, int jointIndex, int cmdVecIndex)
void SetJoint (double angle, OPrimitiveID joint, int jointIndex, int numFrames, int cmdVecIndex)
void SetJoint (slongword angle, OPrimitiveID joint, int jointIndex, int cmdVecIndex)
void SetJoint (slongword angle, OPrimitiveID joint, int jointIndex, int numFrames, int cmdVecIndex)
void SetJointRelOPENR (slongword angle, OPrimitiveID joint, int jointIndex, int cmdVecIndex)
void SetJointRelOPENR (double angle, OPrimitiveID joint, int jointIndex, int cmdVecIndex)
void SetJointRel (double start, double angle, OPrimitiveID joint, int jointIndex, int cmdVecIndex)
void SetJointRel (double start, double angle, OPrimitiveID joint, int jointIndex, int numFrames, int cmdVecIndex)
void SetJointRel (double angle, OPrimitiveID joint, int jointIndex, int cmdVecIndex)
void SetJointRel (double angle, OPrimitiveID joint, int jointIndex, int numFrames, int cmdVecIndex)
void SetJointRel (slongword angle, OPrimitiveID joint, int jointIndex, int cmdVecIndex)
void SetJointRel (slongword angle, OPrimitiveID joint, int jointIndex, int numFrames, int cmdVecIndex)
void RefreshCommandVector (int cmdVecIndex)
void RefreshCommandVectors ()
void RefreshJointValue (int index)
void RefreshJointValues ()
Methods for getting joint angles
double GetJointValue (int index) const
double GetOPENRJointValue (OPrimitiveID joint) const
double GetOPENRJointValue (int joint) const
Methods for stetting joint gain
void EnableJointGain ()
void EnableJointGain (OPrimitiveID id)
void DisableJointGain ()
void DisableJointGain (OPrimitiveID id)
Methods for state of joints
JOINT_STATE GetState () const
void SetState (JOINT_STATE st)

Data Fields

RCRegion * Region [MaxJointRegions]

Static Public Attributes

static const int MaxJointRegions = 2

Protected Attributes

JOINT_STATE State
int NumJoints
double * JointValues
OPrimitiveID * JointID
double FrameFactor [ocommandMAX_FRAMES]

Static Protected Attributes

static const word J1_PGAIN = 0x0016
static const word J1_IGAIN = 0x0004
static const word J1_DGAIN = 0x0008
static const word J2_PGAIN = 0x0014
static const word J2_IGAIN = 0x0004
static const word J2_DGAIN = 0x0006
static const word J3_PGAIN = 0x0023
static const word J3_IGAIN = 0x0004
static const word J3_DGAIN = 0x0005
static const double MAX_J1_DEG = 117.0
static const double MAX_J2_DEG = 89.0
static const double MAX_J3_DEG = 147.0
static const double MIN_J1_DEG = -117.0
static const double MIN_J2_DEG = -11.0
static const double MIN_J3_DEG = -27.0
static const double MAX_J1 = MAX_J1_DEG * DEGTORAD
static const double MAX_J2 = MAX_J2_DEG * DEGTORAD
static const double MAX_J3 = MAX_J3_DEG * DEGTORAD
static const double MIN_J1 = MIN_J1_DEG * DEGTORAD
static const double MIN_J2 = MIN_J2_DEG * DEGTORAD
static const double MIN_J3 = MIN_J3_DEG * DEGTORAD
static const double MAX_J1_VELO_DEG = 2.58/2.0
static const double MAX_J2_VELO_DEG = 2.29/2.0
static const double MAX_J3_VELO_DEG = 2.60/2.0
static const double MAX_J1_VELO = MAX_J1_VELO_DEG * DEGTORAD
static const double MAX_J2_VELO = MAX_J2_VELO_DEG * DEGTORAD
static const double MAX_J3_VELO = MAX_J3_VELO_DEG * DEGTORAD
static const word PSHIFT = 0x000e
static const word ISHIFT = 0x0002
static const word DSHIFT = 0x000f

Detailed Description

Class For manipulation leg joints
Examples:

LegsExample.h.


Constructor & Destructor Documentation

AiboLeg::AiboLeg  ) 
 

Default constructor

virtual AiboLeg::~AiboLeg  )  [inline, virtual]
 

Default destructor


Member Function Documentation

void AiboLeg::OpenPrimitives  )  [virtual]
 

Initializes the JointID's

Implements AiboJoint.

OPrimitiveID AiboLeg::GetJointID LEG_JOINT  j  )  const [inline]
 

Returns the primitive id of joint

Parameters:
j Joint index
Returns:
OPrimitiveId of joint corresponding to joint index

void AiboLeg::NewCommandVectorData  )  [virtual]
 

Initializes the RCRegion's (Region[]) with a command vector

Implements AiboJoint.

void AiboLeg::SetJoint slongword  angle,
LEG_JOINT  joint,
int  cmdVecIndex
[inline]
 

Sets a joint to a given value

Parameters:
angle Value of angle to be set. UNIT: micro radians
joint Joint to be set
cmdVecIndex Index of command vector in which the data should be set

Here is the call graph for this function:

void AiboLeg::SetJoint double  angle,
LEG_JOINT  joint,
int  cmdVecIndex
[inline]
 

Sets a joint to a given value

Parameters:
angle Value of angle to be set. UNIT: radians
joint Joint to be set
cmdVecIndex Index of command vector in which the data should be set

Here is the call graph for this function:

void AiboLeg::SetJoint double  start,
double  angle,
LEG_JOINT  joint,
int  cmdVecIndex
[inline]
 

Sets a joint to a given value

Parameters:
start Start value (act value)
angle Value of angle to be set. UNIT: radians
joint Joint to be set
cmdVecIndex Index of command vector in which the data should be set

Here is the call graph for this function:

void AiboLeg::SetJoint slongword  angle,
LEG_JOINT  joint,
int  numFrames,
int  cmdVecIndex
[inline]
 

Sets a joint to a given value

Parameters:
angle Value of angle to be set. UNIT: micro radians
joint Joint to be set
numFrames Number of frames in which the position should be reached (one frame = 8ms) WARNING: std numFrames is 16. if you use less communication may fail
cmdVecIndex Index of command vector in which the data should be set

Here is the call graph for this function:

void AiboLeg::SetJoint double  angle,
LEG_JOINT  joint,
int  numFrames,
int  cmdVecIndex
[inline]
 

Sets a joint to a given value

Parameters:
angle Value of angle to be set. UNIT: radians
joint Joint to be set
numFrames Number of frames in which the position should be reached (one frame = 8ms) WARNING: std numFrames is 16. if you use less communication may fail
cmdVecIndex Index of command vector in which the data should be set

Here is the call graph for this function:

void AiboLeg::SetJoint double  start,
double  angle,
LEG_JOINT  joint,
int  numFrames,
int  cmdVecIndex
[inline]
 

Sets a joint to a given value

Parameters:
start Start value (act value)
angle Value of angle to be set. UNIT: radians
joint Joint to be set
numFrames Number of frames in which the position should be reached (one frame = 8ms) WARNING: std numFrames is 16. if you use less communication may fail
cmdVecIndex Index of command vector in which the data should be set

Here is the call graph for this function:

void AiboLeg::SetJointRel slongword  angle,
LEG_JOINT  joint,
int  cmdVecIndex
[inline]
 

Sets a joint to a given value relative to actual value

Parameters:
angle Value of angle to be set. UNIT: micro radians
joint Joint to be set
cmdVecIndex Index of command vector in which the data should be set

Here is the call graph for this function:

void AiboLeg::SetJointRel double  angle,
LEG_JOINT  joint,
int  cmdVecIndex
[inline]
 

Sets a joint to a given value relative to actual value

Parameters:
angle Value of angle to be set. UNIT: radians
joint Joint to be set
cmdVecIndex Index of command vector in which the data should be set

Here is the call graph for this function:

void AiboLeg::SetJointRel double  start,
double  angle,
LEG_JOINT  joint,
int  cmdVecIndex
[inline]
 

Sets a joint to a given value relative to actual value

Parameters:
start Start value (act value)
angle Value of angle to be set. UNIT: radians
joint Joint to be set
cmdVecIndex Index of command vector in which the data should be set

Here is the call graph for this function:

void AiboLeg::SetJointRel slongword  angle,
LEG_JOINT  joint,
int  numFrames,
int  cmdVecIndex
[inline]
 

Sets a joint to a given value relative to actual value

Parameters:
angle Value of angle to be set. UNIT: micro radians
joint Joint to be set
numFrames Number of frames in which the position should be reached (one frame = 8ms) WARNING: std numFrames is 16. if you use less communication may fail
cmdVecIndex Index of command vector in which the data should be set

Here is the call graph for this function:

void AiboLeg::SetJointRel double  angle,
LEG_JOINT  joint,
int  numFrames,
int  cmdVecIndex
[inline]
 

Sets a joint to a given value relative to actual value

Parameters:
angle Value of angle to be set. UNIT: radians
joint Joint to be set
numFrames Number of frames in which the position should be reached (one frame = 8ms) WARNING: std numFrames is 16. if you use less communication may fail
cmdVecIndex Index of command vector in which the data should be set

Here is the call graph for this function:

void AiboLeg::SetJointRel double  start,
double  angle,
LEG_JOINT  joint,
int  numFrames,
int  cmdVecIndex
[inline]
 

Sets a joint to a given value relative to actual value

Parameters:
start Start value (act value)
angle Value of angle to be set. UNIT: radians
joint Joint to be set
numFrames Number of frames in which the position should be reached (one frame = 8ms) WARNING: std numFrames is 16. if you use less communication may fail
cmdVecIndex Index of command vector in which the data should be set

Here is the call graph for this function:

double AiboLeg::GetJointValue LEG_JOINT  joint  )  const [inline]
 

double AiboLeg::GetOPENRJointValue LEG_JOINT  joint  )  const [inline]
 

Here is the call graph for this function:

double AiboLeg::GetMaxJointValue int  index,
JOINT_UNIT  unit = ANGLE_RAD
const [inline, virtual]
 

Returns the max joint value for joint with the given index

Parameters:
index Joint index
unit Unit for the angle. Radians or degree?
Returns:
Max possible joint value.

Implements AiboJoint.

double AiboLeg::GetMaxJointValue LEG_JOINT  joint,
JOINT_UNIT  unit = ANGLE_RAD
const
 

Same as GetMaxJointValue(int index). Acceptes just an other argument

double AiboLeg::GetMinJointValue int  index,
JOINT_UNIT  unit = ANGLE_RAD
const [inline, virtual]
 

Returns the mix joint value for joint with the given index

Parameters:
index Joint index
unit Unit for the angle. Radians or degree?
Returns:
MIN possible joint value.

Implements AiboJoint.

double AiboLeg::GetMinJointValue LEG_JOINT  joint,
JOINT_UNIT  unit = ANGLE_RAD
const
 

Same as GetMinJointValue(in index). Acceptes just an other argument

double AiboLeg::GetMaxJointVelocity int  index,
JOINT_UNIT  unit = ANGLE_RAD
const [inline, virtual]
 

Returns the max joint velocity for joint with the given index

Parameters:
index Joint index
unit Unit for the angle. Radians/frame or degree/frame?
Returns:
Max joint velocity.

Implements AiboJoint.

double AiboLeg::GetMaxJointVelocity LEG_JOINT  joint,
JOINT_UNIT  unit = ANGLE_RAD
const
 

Same as GetMaxJointVelocity(int index). Acceptes just an other argument

void AiboLeg::SetJointGain  )  [virtual]
 

Sets the joint gain for all joints and enables it

Implements AiboJoint.

void AiboLeg::EnableJointGain LEG_JOINT  joint  )  [inline]
 

Enables joint gain for the corresponding joint

Parameters:
joint Joint for which the gain should be set

Here is the call graph for this function:

void AiboLeg::DisableJointGain LEG_JOINT  joint  )  [inline]
 

Disables joint gain for the corresponding joint

Parameters:
joint Joint for which the gain should be disabled

Here is the call graph for this function:

OPrimitiveID AiboJoint::GetJointID int  j  )  const [inline, inherited]
 

RCRegion * AiboJoint::FindFreeRegion  )  const [inherited]
 

Finds a free memory region (RCRegion) in which the next command data can be set

Returns:
Free RCRegion

int AiboJoint::FindFreeRegionIndex  )  const [inherited]
 

Finds a free memory region (RCRegion) in which the next command data can be set

Returns:
Index of free RCRegion

RCRegion * AiboJoint::GetRegion int  index = 0  )  [inline, inherited]
 

returns the command vector corresponding to the index

void AiboJoint::SetCommandVector int  index,
OCommandVectorData *  vec
[inherited]
 

Method allows user to insert an own command vector in memory region

Parameters:
index Index of Region in which the command vector is set
vec Command vector to be set

void AiboJoint::SetJointOPENR slongword  angle,
OPrimitiveID  joint,
int  jointIndex,
int  cmdVecIndex
[inline, inherited]
 

Sets the joint value in the given command vector to a given value

Parameters:
angle The angle for the joint. UNIT: micro rad
joint The primitive id of the joint
jointIndex The index of the joint in the command vector
cmdVecIndex The index of the command vector in which the data should be set
Warning:
Slow function because actual joint value is obtained by OPENR::GetJointValue(...)!! Better if you use
See also:
void SetJoint(double start, double angle, OPrimitiveID joint, int jointIndex, int cmdVecIndex)

void AiboJoint::SetJointOPENR double  angle,
OPrimitiveID  joint,
int  jointIndex,
int  cmdVecIndex
[inherited]
 

Sets the joint value in the given command vector to a given value and know your angles by yourself!

Parameters:
angle The angle for the joint. UNIT: micro rad
joint The primitive id of the joint
jointIndex The index of the joint in the command vector
cmdVecIndex The index of the command vector in which the data should be set
Warning:
Slow function because actual joint value is obtained by OPENR::GetJointValue(...)!! Better if you use
See also:
void SetJoint(double start, double angle, OPrimitiveID joint, int jointIndex, int cmdVecIndex)

Here is the call graph for this function:

void AiboJoint::SetJoint double  start,
double  angle,
OPrimitiveID  joint,
int  jointIndex,
int  cmdVecIndex
[inherited]
 

Sets the joint value in the given command vector to a given value

Parameters:
start Start angle (actual Value)
angle The angle for the joint. UNIT: rad
joint The primitive id of the joint
jointIndex The index of the joint in the command vector
cmdVecIndex The index of the command vector in which the data should be set
Warning:
you will have to call RefreshCommandVectors() once before this function will be fuly operational

Here is the call graph for this function:

void AiboJoint::SetJoint double  start,
double  angle,
OPrimitiveID  joint,
int  jointIndex,
int  numFrames,
int  cmdVecIndex
[inherited]
 

Sets the joint value in the given command vector to a given value

Parameters:
start Start angle (actual Value)
angle The angle for the joint. UNIT: rad
joint The primitive id of the joint
jointIndex The index of the joint in the command vector
numFrames Number of frames in wich the position should be reached (one frame = 8ms)
cmdVecIndex The index of the command vector in which the data should be set
Warning:
: std numFrames is 16, if you use less communication may fail

you will have to call RefreshCommandVectors() once before this function will be fuly operational

Here is the call graph for this function:

void AiboJoint::SetJoint double  angle,
OPrimitiveID  joint,
int  jointIndex,
int  cmdVecIndex
[inline, inherited]
 

Sets the joint value in the given command vector to a given value

Parameters:
angle The angle for the joint. UNIT: rad
joint The primitive id of the joint
jointIndex The index of the joint in the command vector
cmdVecIndex The index of the command vector in which the data should be set
Warning:
you will have to call RefreshCommandVectors() once before this function will be fuly operational

Here is the call graph for this function:

void AiboJoint::SetJoint double  angle,
OPrimitiveID  joint,
int  jointIndex,
int  numFrames,
int  cmdVecIndex
[inline, inherited]
 

Sets the joint value in the given command vector to a given value

Parameters:
angle The angle for the joint. UNIT: rad
joint The primitive id of the joint
jointIndex The index of the joint in the command vector
numFrames Number of frames in wich the position should be reached (one frame + 8ms)
cmdVecIndex The index of the command vector in which the data should be set
Warning:
std numFrames is 16, if you use less communication may fail

you will have to call RefreshCommandVectors() once before this function will be fuly operational

Here is the call graph for this function:

void AiboJoint::SetJoint slongword  angle,
OPrimitiveID  joint,
int  jointIndex,
int  cmdVecIndex
[inline, inherited]
 

Sets the joint value in the given command vector to a given value

Parameters:
angle The angle for the joint. UNIT: micro rad
joint The primitive id of the joint
jointIndex The index of the joint in the command vector
cmdVecIndex The index of the command vector in which the data should be set
Warning:
std numFrames is 16, if you use less communication may fail

you will have to call RefreshCommandVectors() once before this function will be fuly operational

Here is the call graph for this function:

void AiboJoint::SetJoint slongword  angle,
OPrimitiveID  joint,
int  jointIndex,
int  numFrames,
int  cmdVecIndex
[inline, inherited]
 

Sets the joint value in the given command vector to a given value

Parameters:
angle The angle for the joint. UNIT: rad
joint The primitive id of the joint
jointIndex The index of the joint in the command vector
numFrames Number of frames in wich the position should be reached (one frame = 8ms)
cmdVecIndex The index of the command vector in which the data should be set
Warning:
std numFrames is 16, if you use less communication may fail

you will have to call RefreshCommandVectors() once before this function will be fuly operational

Here is the call graph for this function:

void AiboJoint::SetJointRelOPENR slongword  angle,
OPrimitiveID  joint,
int  jointIndex,
int  cmdVecIndex
[inline, inherited]
 

Sets the joint value relative to the actual value in the given command vector to a given value

Parameters:
angle The relative angle for the joint. UNIT: micro rad
joint The primitive id of the joint
jointIndex The index of the joint in the command vector
cmdVecIndex The index of the command vector in which the data should be set

void AiboJoint::SetJointRelOPENR double  angle,
OPrimitiveID  joint,
int  jointIndex,
int  cmdVecIndex
[inherited]
 

Sets the joint value relative to the actual value in the given command vector to a given value and know the angles by yourself!

Parameters:
angle The relative angle for the joint. UNIT: micro rad
joint The primitive id of the joint
jointIndex The index of the joint in the command vector
cmdVecIndex The index of the command vector in which the data should be set
Warning:
slow function because actual joint value is obtained by OPENR::GetJointValue(...)!! Better if you use
See also:
void SetJointRel(double start, double angle, OPrimitiveID joint, int jointIndex, int cmdVecIndex)

Here is the call graph for this function:

void AiboJoint::SetJointRel double  start,
double  angle,
OPrimitiveID  joint,
int  jointIndex,
int  cmdVecIndex
[inherited]
 

Sets the joint value relative to the actual value in the given command vector to a given value

Parameters:
start Start angle (actual Value)
angle The relative angle for the joint. UNIT: micro rad
joint The primitive id of the joint
jointIndex The index of the joint in the command vector
cmdVecIndex The index of the command vector in which the data should be set
Warning:
you will have to call RefreshCommandVectors() once before this function will be fuly operational

Here is the call graph for this function:

void AiboJoint::SetJointRel double  start,
double  angle,
OPrimitiveID  joint,
int  jointIndex,
int  numFrames,
int  cmdVecIndex
[inherited]
 

Sets the joint value relative to the actual value in the given command vector to a given value.

Parameters:
start Start angle (actual Value).
angle The relative angle for the joint. UNIT: micro rad
joint The primitive id of the joint.
jointIndex The index of the joint in the command vector.
numFrames Number of frames in wich the position should be reached (one frame + 8ms).
cmdVecIndex The index of the command vector in which the data should be set
Warning:
std frames is 16 if you use less communication may fail.

Not more than 16 frames allowed!!

Here is the call graph for this function:

void AiboJoint::SetJointRel double  angle,
OPrimitiveID  joint,
int  jointIndex,
int  cmdVecIndex
[inline, inherited]
 

Sets the joint value relative to the actual value in the given command vector to a given value

Parameters:
angle The relative angle for the joint. UNIT: micro rad
joint The primitive id of the joint
jointIndex The index of the joint in the command vector
cmdVecIndex The index of the command vector in which the data should be set
Warning:
you will have to call RefreshCommandVectors() once before this function will be fuly operational

Here is the call graph for this function:

void AiboJoint::SetJointRel double  angle,
OPrimitiveID  joint,
int  jointIndex,
int  numFrames,
int  cmdVecIndex
[inline, inherited]
 

Sets the joint value relative to the actual value in the given command vector to a given value

Parameters:
angle The relative angle for the joint. UNIT: micro rad
joint The primitive id of the joint
jointIndex The index of the joint in the command vector
numFrames Number of frames in wich the position should be reached (one frame + 8ms)
Warning:
std frames is 16 if you use less communication may fail
Parameters:
cmdVecIndex The index of the command vector in which the data should be set
Warning:
you will have to call RefreshCommandVectors() once before this function will be fuly operational

Here is the call graph for this function:

void AiboJoint::SetJointRel slongword  angle,
OPrimitiveID  joint,
int  jointIndex,
int  cmdVecIndex
[inline, inherited]
 

Sets the joint value relative to the actual value in the given command vector to a given value

Parameters:
angle The relative angle for the joint. UNIT: micro rad
joint The primitive id of the joint
jointIndex The index of the joint in the command vector
cmdVecIndex The index of the command vector in which the data should be set
Warning:
you will have to call RefreshCommandVectors() once before this function will be fuly operational

Here is the call graph for this function:

void AiboJoint::SetJointRel slongword  angle,
OPrimitiveID  joint,
int  jointIndex,
int  numFrames,
int  cmdVecIndex
[inline, inherited]
 

Sets the joint value relative to the actual value in the given command vector to a given value

Parameters:
angle The relative angle for the joint. UNIT: micro rad
joint The primitive id of the joint
jointIndex The index of the joint in the command vector
numFrames Number of frames in wich the position should be reached (one frame + 8ms)
cmdVecIndex The index of the command vector in which the data should be set
Warning:
std frames is 16 if you use less communication may fail.

Not more than 16 frames allowed!!

you will have to call RefreshCommandVectors() once before this function will be fuly operational

Here is the call graph for this function:

void AiboJoint::RefreshCommandVector int  cmdVecIndex  )  [inherited]
 

Sets all values of each joint in a command vector to the actual joint values

Parameters:
cmdVecIndex The Index of the command vector

Here is the call graph for this function:

void AiboJoint::RefreshCommandVectors  )  [inline, inherited]
 

Sets all values of each joint in all command vectors to the actual joint values

Here is the call graph for this function:

void AiboJoint::RefreshJointValue int  index  )  [inherited]
 

Refreshes the protocoled joint value

See also:
JointValues
Parameters:
index Index of the joint to refresh

void AiboJoint::RefreshJointValues  )  [inline, inherited]
 

Refreshes all of the protocoled joint values

See also:
JointValues

Here is the call graph for this function:

double AiboJoint::GetJointValue int  index  )  const [inline, inherited]
 

Returns the protocoled joint value (where you think you are)

Parameters:
index Index of which you want to get the actual value
Returns:
Joint Value in radians

double AiboJoint::GetOPENRJointValue OPrimitiveID  joint  )  const [inherited]
 

Returns the real joint value

Parameters:
joint Joint of which you want to get the actual value
Returns:
Joint Value in radians

double AiboJoint::GetOPENRJointValue int  joint  )  const [inherited]
 

Returns the real joint value

Parameters:
joint Joint of which you want to get the actual value
Returns:
Joint Value in radians

void AiboJoint::EnableJointGain  )  [inline, inherited]
 

Enables the joint gain for all joints(already included in SetJoint Gain() )

void AiboJoint::EnableJointGain OPrimitiveID  id  )  [inline, inherited]
 

Enables the joint gain (already included in SetJoint Gain() )

Parameters:
id Primitive id for joint

void AiboJoint::DisableJointGain  )  [inline, inherited]
 

Disables the joint gain for all joints

void AiboJoint::DisableJointGain OPrimitiveID  id  )  [inline, inherited]
 

Disables the joint gain

Parameters:
id Primitive id for joint

JOINT_STATE AiboJoint::GetState  )  const [inline, inherited]
 

Returns the state of the joints

Returns:
JOINT_STATE of command vector

void AiboJoint::SetState JOINT_STATE  st  )  [inline, inherited]
 

Sets the Joint State to a given state

Parameters:
st Joint state

int AiboJoint::GetNumJoints  )  const [inline, inherited]
 

Returns the numer of joint of an ERS-220

Returns:
Number of joints


Field Documentation

const word AiboLeg::J1_PGAIN = 0x0016 [static, protected]
 

P-Gain value (PID-Controller) for leg-joint 1

const word AiboLeg::J1_IGAIN = 0x0004 [static, protected]
 

I-Gain value (PID-Controller) for leg-joint 1

const word AiboLeg::J1_DGAIN = 0x0008 [static, protected]
 

D-Gain value (PID-Controller) for leg-joint 1

const word AiboLeg::J2_PGAIN = 0x0014 [static, protected]
 

P-Gain value (PID-Controller) for leg-joint 2

const word AiboLeg::J2_IGAIN = 0x0004 [static, protected]
 

I-Gain value (PID-Controller) for leg-joint 2

const word AiboLeg::J2_DGAIN = 0x0006 [static, protected]
 

D-Gain value (PID-Controller) for leg-joint 2

const word AiboLeg::J3_PGAIN = 0x0023 [static, protected]
 

P-Gain value (PID-Controller) for leg-joint 3

const word AiboLeg::J3_IGAIN = 0x0004 [static, protected]
 

I-Gain value (PID-Controller) for leg-joint 3

const word AiboLeg::J3_DGAIN = 0x0005 [static, protected]
 

D-Gain value (PID-Controller) for leg-joint 3

const double AiboLeg::MAX_J1_DEG = 117.0 [static, protected]
 

Maximum allowed joint value for leg-joint 1 UNIT: degree

const double AiboLeg::MAX_J2_DEG = 89.0 [static, protected]
 

Maximum allowed joint value for leg-joint 2 UNIT: degree

const double AiboLeg::MAX_J3_DEG = 147.0 [static, protected]
 

Maximum allowed joint value for leg-joint 3 UNIT: degree

const double AiboLeg::MIN_J1_DEG = -117.0 [static, protected]
 

Minimum allowed joint value for leg-joint 1 UNIT: degree

const double AiboLeg::MIN_J2_DEG = -11.0 [static, protected]
 

Minimum allowed joint value for leg-joint 2 UNIT: degree

const double AiboLeg::MIN_J3_DEG = -27.0 [static, protected]
 

Minimum allowed joint value for leg-joint 3 UNIT: degree

const double AiboLeg::MAX_J1 = MAX_J1_DEG * DEGTORAD [static, protected]
 

Maximum allowed joint value for leg-joint 1 UNIT: radians

const double AiboLeg::MAX_J2 = MAX_J2_DEG * DEGTORAD [static, protected]
 

Maximum allowed joint value for leg-joint 2 UNIT: radians

const double AiboLeg::MAX_J3 = MAX_J3_DEG * DEGTORAD [static, protected]
 

Maximum allowed joint value for leg-joint 3 UNIT: radians

const double AiboLeg::MIN_J1 = MIN_J1_DEG * DEGTORAD [static, protected]
 

Minimum allowed joint value for leg-joint 1 UNIT: radians

const double AiboLeg::MIN_J2 = MIN_J2_DEG * DEGTORAD [static, protected]
 

Minimum allowed joint value for leg-joint 2 UNIT: radians

const double AiboLeg::MIN_J3 = MIN_J3_DEG * DEGTORAD [static, protected]
 

Minimum allowed joint value for leg-joint 3 UNIT: radians

const double AiboLeg::MAX_J1_VELO_DEG = 2.58/2.0 [static, protected]
 

Maximum allowed joint acceleration for leg-joint 1 UNIT: deg/frame

const double AiboLeg::MAX_J2_VELO_DEG = 2.29/2.0 [static, protected]
 

Maximum allowed joint acceleration for leg-joint 2 UNIT: deg/frame

const double AiboLeg::MAX_J3_VELO_DEG = 2.60/2.0 [static, protected]
 

Maximum allowed joint acceleration for leg-joint 3 UNIT: deg/frame

const double AiboLeg::MAX_J1_VELO = MAX_J1_VELO_DEG * DEGTORAD [static, protected]
 

Maximum allowed joint acceleration for leg-joint 1 UNIT: rad/frame

const double AiboLeg::MAX_J2_VELO = MAX_J2_VELO_DEG * DEGTORAD [static, protected]
 

Maximum allowed joint acceleration for leg-joint 2 UNIT: rad/frame

const double AiboLeg::MAX_J3_VELO = MAX_J3_VELO_DEG * DEGTORAD [static, protected]
 

Maximum allowed joint acceleration for leg-joint 3 UNIT: rad/frame

const int AiboJoint::MaxJointRegions = 2 [static, inherited]
 

Number of maximum allowed RCRegions for joint control

RCRegion* AiboJoint::Region[MaxJointRegions] [inherited]
 

Array of RCRegion s for joint control

JOINT_STATE AiboJoint::State [protected, inherited]
 

State of joints

int AiboJoint::NumJoints [protected, inherited]
 

Number of Joints

double* AiboJoint::JointValues [protected, inherited]
 

Array for joint angle protocol (where you think you are)

OPrimitiveID* AiboJoint::JointID [protected, inherited]
 

Array for storing primitive ID's

const word AiboJoint::PSHIFT = 0x000e [static, protected, inherited]
 

P-Shift value (PID-Controller) for AIBO joints

const word AiboJoint::ISHIFT = 0x0002 [static, protected, inherited]
 

I-Shift value (PID-Controller) for AIBO joints

const word AiboJoint::DSHIFT = 0x000f [static, protected, inherited]
 

D-Shift value (PID-Controller) for AIBO joints

double AiboJoint::FrameFactor[ocommandMAX_FRAMES] [protected, inherited]
 

Array for FrameFactor. Normally a motion is performed over 16 frames. This factor multiplied with die difference of current and desired value so that the gain from one frame to an other is constant. It is used in nearly every SetJoint...(...) metho.


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

tams Tim Baier AiboLib v0.2.4
Generated Thu Jan 19 11:55:51 2006 by doxygen 1.4.3