Hand Class Reference

Artificial Hand. More...

#include <hand.h>

Inherits OdeRobot.

Inheritance diagram for Hand:

Inheritance graph
[legend]
Collaboration diagram for Hand:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Hand (const OdeHandle &odeHandle, const OsgHandle &osgHandle, const HandConf &conf, const std::string &name)
 constructor of hand
virtual void update ()
 update the subcomponents
virtual void place (const osg::Matrix &pose)
 sets the pose of the vehicle
virtual bool collisionCallback (void *data, dGeomID o1, dGeomID o2)
 checks for internal collisions and treats them.
virtual void doInternalStuff (GlobalData &globalData)
 this function is called in each timestep.
virtual int getSensors (sensor *sensors, int sensornumber)
 returns actual sensorvalues
virtual void setMotors (const motor *motors, int motornumber)
 sets actual motorcommands
virtual int getSensorNumber ()
 returns number of sensors
virtual int getMotorNumber ()
 returns number of motors
virtual paramlist getParamList () const
 The list of all parameters with their value as allocated lists.
virtual paramval getParam (const paramkey &key) const
 Returns the value of the given parameter.
virtual bool setParam (const paramkey &key, paramval val)
 Sets the values of the given parameter.

Static Public Member Functions

static HandConf getDefaultConf ()

Protected Member Functions

virtual PrimitivegetMainPrimitive () const
 Returns the palm as the main object of the robot, which is used for position and speed tracking.

Protected Attributes

HandConf conf
 configuration of hand
std::vector< Primitive * > objects
 vector containing Primitives
std::vector< OSGPrimitive * > osg_objects
 vector containing OSGPrimitives
std::vector< IRSensor * > ir_sensors
 vector containing Primitivesinfrared sensors
bool contact_joint_created
 true if contact joint is created
std::vector< Joint * > joints
 vector of the joints used in hand
std::vector< AngularMotor * > frictionmotors
 vector of the angular motors
std::vector< HingeServo * > servos
 vector of the used hinge servos
RaySensorBank irSensorBank
 a collection of ir sensors
dSpaceID hand_space
 space containing the hand
AngularMotorpalm_motor_joint
 motorjoint for actuating the forearm_palm joint (ball joint)
AngularMotorthumb_motor_joint
 motorjoint for actuating the palm_thumb joint (ball joint)
HingeJointthumb_bt
 Hinge Joint between thumb_buttom and thumb_top.
Jointpalm_index
 Hinge Joint between buttom, center and top part of the index finger.
Jointindex_bc
Jointindex_ct
Jointpalm_middle
 Hinge Joint between buttom, center and top part of the middle finger.
Jointmiddle_bc
Jointmiddle_ct
Jointpalm_ring
 Hinge Joint between buttom, center and top part of the ring finger.
Jointring_bc
Jointring_ct
Jointpalm_little
 Hinge Joint between buttom, center and top part of the little finger.
Jointlittle_bc
Jointlittle_ct
GripMode gripmode
 for handling lateral and precision grip modes
Position initial_pos
 initial position of robot
Pos oldp
int sensorno
int motorno
int sensor_number
paramval factorForce
paramval frictionGround
double velocity

Detailed Description

Artificial Hand.


Constructor & Destructor Documentation

Hand ( const OdeHandle odeHandle,
const OsgHandle osgHandle,
const HandConf conf,
const std::string &  name 
)

constructor of hand

Parameters:
odeHandle data structure for accessing ODE
osgHandle ata structure for accessing OSG
conf configuration of robot


Member Function Documentation

bool collisionCallback ( void *  data,
dGeomID  o1,
dGeomID  o2 
) [virtual]

checks for internal collisions and treats them.

In case of a treatment return true (collision will be ignored by other objects and the default routine) else false (collision is passed to other objects and (if not treated) to the default routine).

Reimplemented from OdeRobot.

void doInternalStuff ( GlobalData globalData  )  [virtual]

this function is called in each timestep.

It should perform robot-internal checks, like space-internal collision detection, sensor resets/update etc.

Parameters:
globalData structure that contains global data from the simulation environment

Implements OdeRobot.

static HandConf getDefaultConf (  )  [inline, static]

virtual Primitive* getMainPrimitive (  )  const [inline, protected, virtual]

Returns the palm as the main object of the robot, which is used for position and speed tracking.

Implements OdeRobot.

int getMotorNumber (  )  [virtual]

returns number of motors

Implements AbstractRobot.

Configurable::paramval getParam ( const paramkey key  )  const [virtual]

Returns the value of the given parameter.

Parameters:
key name of the parameter

Configurable::paramlist getParamList (  )  const [virtual]

The list of all parameters with their value as allocated lists.

Reimplemented from Configurable.

int getSensorNumber (  )  [virtual]

returns number of sensors

Implements AbstractRobot.

int getSensors ( sensor sensors,
int  sensornumber 
) [virtual]

returns actual sensorvalues

Parameters:
sensors sensors scaled to [-1,1]
sensornumber length of the sensor array
Returns:
number of actually written sensors

Implements AbstractRobot.

void place ( const osg::Matrix pose  )  [virtual]

sets the pose of the vehicle

Parameters:
pose desired 4x4 pose matrix

Implements OdeRobot.

void setMotors ( const motor motors,
int  motornumber 
) [virtual]

sets actual motorcommands

Parameters:
motors motors scaled to [-1,1]
motornumber length of the motor array

Implements AbstractRobot.

bool setParam ( const paramkey key,
paramval  val 
) [virtual]

Sets the values of the given parameter.

Parameters:
key name of the parameter
val value to which the parameter will be set

void update (  )  [virtual]

update the subcomponents

Implements OdeRobot.


Member Data Documentation

HandConf conf [protected]

configuration of hand

bool contact_joint_created [protected]

true if contact joint is created

paramval factorForce [protected]

paramval frictionGround [protected]

std::vector<AngularMotor*> frictionmotors [protected]

vector of the angular motors

GripMode gripmode [protected]

for handling lateral and precision grip modes

dSpaceID hand_space [protected]

space containing the hand

Joint * index_bc [protected]

Joint * index_ct [protected]

Position initial_pos [protected]

initial position of robot

std::vector<IRSensor*> ir_sensors [protected]

vector containing Primitivesinfrared sensors

RaySensorBank irSensorBank [protected]

a collection of ir sensors

std::vector<Joint*> joints [protected]

vector of the joints used in hand

Joint * little_bc [protected]

Joint * little_ct [protected]

Joint * middle_bc [protected]

Joint * middle_ct [protected]

int motorno [protected]

std::vector<Primitive*> objects [protected]

vector containing Primitives

Pos oldp [protected]

std::vector<OSGPrimitive*> osg_objects [protected]

vector containing OSGPrimitives

Joint* palm_index [protected]

Hinge Joint between buttom, center and top part of the index finger.

Joint* palm_little [protected]

Hinge Joint between buttom, center and top part of the little finger.

Joint* palm_middle [protected]

Hinge Joint between buttom, center and top part of the middle finger.

AngularMotor* palm_motor_joint [protected]

motorjoint for actuating the forearm_palm joint (ball joint)

Joint* palm_ring [protected]

Hinge Joint between buttom, center and top part of the ring finger.

Joint * ring_bc [protected]

Joint * ring_ct [protected]

int sensor_number [protected]

int sensorno [protected]

std::vector<HingeServo*> servos [protected]

vector of the used hinge servos

HingeJoint* thumb_bt [protected]

Hinge Joint between thumb_buttom and thumb_top.

AngularMotor* thumb_motor_joint [protected]

motorjoint for actuating the palm_thumb joint (ball joint)

double velocity [protected]


The documentation for this class was generated from the following files:
Generated on Fri Oct 30 16:29:03 2009 for Robot Simulator of the Robotics Group for Self-Organization of Control by  doxygen 1.4.7