Robot Simulator of the Robotics Group for Self-Organization of Control  0.8.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Skeleton Class Reference

should look like a humanoid More...

#include <skeleton.h>

Inheritance diagram for Skeleton:
Collaboration diagram for Skeleton:

Public Types

enum  SkelParts {
  Hip, Trunk_comp, Belly, Thorax,
  Neck, Head_comp, Left_Shoulder, Left_Forearm,
  Left_Hand, Right_Shoulder, Right_Forearm, Right_Hand,
  Left_Thigh, Left_Shin, Left_Foot, Right_Thigh,
  Right_Shin, Right_Foot, LastPart
}
 
- Public Types inherited from AbstractRobot
typedef double sensor
 
typedef double motor
 
- Public Types inherited from Configurable
typedef std::string paramkey
 
typedef std::string paramdescr
 
typedef double paramval
 
typedef std::list< std::pair
< paramkey, paramval > > 
paramlist
 
typedef std::map< paramkey,
paramval * > 
parammap
 
typedef bool parambool
 
typedef std::list< std::pair
< paramkey, parambool > > 
paramboollist
 
typedef std::map< paramkey,
parambool * > 
paramboolmap
 
typedef int paramint
 
typedef std::list< std::pair
< paramkey, paramint > > 
paramintlist
 
typedef std::map< paramkey,
paramint * > 
paramintmap
 
typedef std::map< paramkey,
paramdescr
paramdescrmap
 
typedef std::pair< paramval,
paramval
paramvalBounds
 
typedef std::map< paramkey,
paramvalBounds
paramvalBoundsMap
 
typedef std::pair< paramint,
paramint
paramintBounds
 
typedef std::map< paramkey,
paramintBounds
paramintBoundsMap
 
typedef std::pair< paramkey,
paramval * > 
paramvalpair
 
typedef std::pair< paramkey,
parambool * > 
paramboolpair
 
typedef std::pair< paramkey,
paramint * > 
paramintpair
 
typedef std::vector
< Configurable * > 
configurableList
 
- Public Types inherited from BackCaller
typedef unsigned long CallbackableType
 
- Public Types inherited from Inspectable
typedef std::string iparamkey
 
typedef double iparamval
 
typedef std::pair< iparamkey,
iparamval const * > 
iparampair
 
typedef std::pair< iparamkey,
std::pair< const
matrix::Matrix *, bool > > 
imatrixpair
 
typedef std::list< iparamkeyiparamkeylist
 
typedef std::list< std::string > infoLinesList
 
typedef std::list< iparamvaliparamvallist
 
typedef std::list< iparamval
const * > 
iparamvalptrlist
 
typedef std::list< iparampairiparampairlist
 
typedef std::list< imatrixpairimatrixpairlist
 
typedef struct Inspectable::ILayer ILayer
 
typedef struct
Inspectable::IConnection 
IConnection
 
typedef std::list< ILayerilayerlist
 
typedef std::list< IConnectioniconnectionlist
 
typedef std::list< const
Inspectable * > 
inspectableList
 

Public Member Functions

 Skeleton (const OdeHandle &odeHandle, const OsgHandle &osgHandle, SkeletonConf &conf, const std::string &name)
 constructor of Skeleton robot More...
 
virtual ~Skeleton ()
 
virtual void placeIntern (const osg::Matrix &pose)
 sets the pose of the vehicle More...
 
virtual int getSensorsIntern (sensor *sensors, int sensornumber)
 overload this function in a subclass to do specific sensor handling, not needed for generic sensors More...
 
virtual void setMotorsIntern (const motor *motors, int motornumber)
 overload this function in a subclass to do specific sensor handling, not needed for generic motors More...
 
virtual int getSensorNumberIntern ()
 overload this function in a subclass to specific the number of custom sensors More...
 
virtual int getMotorNumberIntern ()
 overload this function in a subclass to specific the number of custom sensors More...
 
virtual void notifyOnChange (const paramkey &key)
 Is called when a parameter was changes via setParam(). More...
 
virtual PrimitivegetMainPrimitive () const
 the main object of the robot, which is used for position and speed tracking More...
 
virtual Position getHeadPosition ()
 returns the position of the head More...
 
virtual Position getTrunkPosition ()
 returns the position of the trunk More...
 
GripperListgetGrippers ()
 returns a the gripper list More...
 
- Public Member Functions inherited from OdeRobot
 OdeRobot (const OdeHandle &odeHandle, const OsgHandle &osgHandle, const std::string &name, const std::string &revision)
 Constructor. More...
 
virtual ~OdeRobot ()
 calls cleanup() More...
 
virtual int getSensors (double *sensors, int sensornumber) final
 returns actual sensorvalues More...
 
virtual void setMotors (const double *motors, int motornumber) final
 sets actual motorcommands More...
 
virtual int getSensorNumber () final
 returns number of sensors More...
 
virtual int getMotorNumber () final
 returns number of motors More...
 
virtual std::list
< SensorMotorInfo
getSensorInfos () override
 returns the information for the sensors. More...
 
virtual std::list
< SensorMotorInfo
getMotorInfos () override
 returns the information for the motors. More...
 
virtual void addSensor (std::shared_ptr< Sensor > sensor, Attachment attachment=Attachment())
 adds a sensor to the robot. More...
 
virtual void addMotor (std::shared_ptr< Motor > motor, Attachment attachment=Attachment())
 adds a motor to the robot. More...
 
virtual std::list
< SensorAttachment
getAttachedSensors ()
 returns all generic sensors with their attachment More...
 
virtual std::list
< MotorAttachment
getAttachedMotors ()
 returns all generic motors with their attachment More...
 
virtual void addTorqueSensors (double maxtorque=1.0, int avg=1)
 adds a torque sensor to each joint. Call it after placement of robot. More...
 
virtual void update ()
 update the OSG notes here, if overwritten, call OdeRobot::update()! More...
 
virtual void place (const Pos &pos) final
 sets the vehicle to position pos More...
 
virtual void place (const osg::Matrix &pose) final
 sets the pose of the vehicle More...
 
virtual bool collisionCallback (void *data, dGeomID o1, dGeomID o2)
 
virtual void sense (GlobalData &globalData)
 this function is called each controlstep before control. More...
 
virtual void doInternalStuff (GlobalData &globalData)
 this function is called in each simulation timestep (always after control). More...
 
virtual void setColor (const Color &col)
 sets color of the robot More...
 
virtual Position getPosition () const
 returns position of the object More...
 
virtual Position getSpeed () const
 returns linear speed vector of the object More...
 
virtual Position getAngularSpeed () const
 returns angular velocity vector of the object More...
 
virtual matrix::Matrix getOrientation () const
 returns the orientation of the object More...
 
virtual Primitives getAllPrimitives () const
 returns a list of all primitives of the robot (used to store and restore the robot) More...
 
virtual PrimitivesgetAllPrimitives ()
 
virtual Joints getAllJoints () const
 returns a list of all primitives of the robot (const version) (used to store and restore the robot) More...
 
virtual JointsgetAllJoints ()
 
virtual bool store (FILE *f) const
 returns a list of all joints of the robot (const version) More...
 
virtual bool restore (FILE *f)
 loads the object from the given file stream (ASCII preferred). More...
 
virtual void moveToPosition (Pos pos=Pos(0, 0, 0.5), int primitiveID=-1)
 relocates robot such its primitive with the given ID is at the new postion (keep current pose). More...
 
virtual void moveToPose (Pose pose, int primitiveID=-1)
 relocates robot such its primitive with the given ID is at the new pose (keep relative pose of all primitives). More...
 
virtual Pose getInitialPose ()
 returns the initial pose of the main primitive (use it e.g. with moveToPose) More...
 
virtual Pose getRelativeInitialPose ()
 returns the initial relative pose of the main primitive (use it with moveToPose to further translate or rotate). More...
 
virtual void fixate (GlobalData &global, int primitiveID=-1, double duration=0)
 fixates the given primitive of the robot at its current position to the world for a certain time. More...
 
virtual bool unFixate (GlobalData &global)
 release the robot in case it is fixated and return true in this case More...
 
- Public Member Functions inherited from AbstractRobot
 AbstractRobot (const std::string &name="abstractRobot", const std::string &revision="$ID$")
 Constructor. More...
 
virtual ~AbstractRobot ()
 
virtual std::string getTrackableName () const
 returns name of trackable More...
 
- Public Member Functions inherited from Trackable
 Trackable ()
 Constructor. More...
 
virtual ~Trackable ()
 
- Public Member Functions inherited from Configurable
 Configurable ()
 
 Configurable (const std::string &name, const std::string &revision)
 intialise with name and revision (use "$ID$") More...
 
virtual ~Configurable ()
 
virtual void addParameter (const paramkey &key, paramval *val, paramval minBound, paramval maxBound, const paramdescr &descr=paramdescr())
 This is the new style for adding configurable parameters. More...
 
virtual void addParameter (const paramkey &key, paramval *val, const paramdescr &descr=paramdescr())
 See addParameter(const paramkey& key, paramval* val, paramval minBound, paramval maxBound, const paramdescr& descr) More...
 
virtual void addParameter (const paramkey &key, parambool *val, const paramdescr &descr=paramdescr())
 See addParameter(const paramkey& key, paramval* val) but for bool values. More...
 
virtual void addParameter (const paramkey &key, paramint *val, paramint minBound, paramint maxBound, const paramdescr &descr=paramdescr())
 See addParameter(const paramkey& key, paramval* val) but for int values. More...
 
virtual void addParameter (const paramkey &key, paramint *val, const paramdescr &descr=paramdescr())
 
virtual void addParameterDef (const paramkey &key, paramval *val, paramval def, paramval minBound, paramval maxBound, const paramdescr &descr=paramdescr())
 This function is only provided for convenience. More...
 
virtual void addParameterDef (const paramkey &key, paramval *val, paramval def, const paramdescr &descr=paramdescr())
 
virtual void addParameterDef (const paramkey &key, parambool *val, parambool def, const paramdescr &descr=paramdescr())
 See addParameterDef(const paramkey&, paramval*, paramval) More...
 
virtual void addParameterDef (const paramkey &key, paramint *val, paramint def, paramint minBound, paramint maxBound, const paramdescr &descr=paramdescr())
 See addParameterDef(const paramkey&, paramval*, paramval) More...
 
virtual void addParameterDef (const paramkey &key, paramint *val, paramint def, const paramdescr &descr=paramdescr())
 
virtual void setParamDescr (const paramkey &key, const paramdescr &descr, bool traverseChildren=true)
 sets a description for the given parameter More...
 
int getId () const
 return the id of the configurable objects, which is created by random on initialisation More...
 
virtual paramkey getName () const
 return the name of the object More...
 
virtual paramkey getRevision () const
 returns the revision of the object More...
 
virtual void setName (const paramkey &name, bool callSetNameOfInspectable=true)
 Sets the name of the configurable. More...
 
virtual void setRevision (const paramkey &revision)
 sets the revision Hint: { return "$ID$"; } More...
 
virtual paramval getParam (const paramkey &key, bool traverseChildren=true) const
 returns the value of the requested parameter or 0 (+ error message to stderr) if unknown. More...
 
virtual bool hasParam (const paramkey &key, bool traverseChildren=true) const
 Returns if the requested parameter is part of the configurable or their children. More...
 
virtual bool setParam (const paramkey &key, paramval val, bool traverseChildren=true)
 sets the value of the given parameter or does nothing if unknown. More...
 
virtual void setParamBounds (const paramkey &key, paramval minBound, paramval maxBound, bool traverseChildren=true)
 Sets the bounds (minBound and maxBound) of the given parameter. More...
 
virtual void setParamBounds (const paramkey &key, paramint minBound, paramint maxBound, bool traverseChildren=true)
 
virtual void setParamBounds (const paramkey &key, paramvalBounds bounds, bool traverseChildren=true)
 
virtual void setParamBounds (const paramkey &key, paramintBounds bounds, bool traverseChildren=true)
 
virtual paramlist getParamList () const
 The list of all parameters with there value as allocated lists. More...
 
virtual std::list< paramkeygetAllParamNames (bool traverseChildren=true)
 returns all names that are configureable More...
 
virtual parammap getParamValMap () const
 
virtual paramintmap getParamIntMap () const
 
virtual paramboolmap getParamBoolMap () const
 
virtual paramdescr getParamDescr (const paramkey &key, bool traverseChildren=true) const
 returns the description for the given parameter More...
 
virtual paramvalBounds getParamvalBounds (const paramkey &key, bool traverseChildren=true) const
 
virtual paramintBounds getParamintBounds (const paramkey &key, bool traverseChildren=true) const
 
virtual bool hasParamDescr (const paramkey &key, bool traverseChildren=true) const
 
virtual bool hasParamvalBounds (const paramkey &key, bool traverseChildren=true) const
 
virtual bool hasParamintBounds (const paramkey &key, bool traverseChildren=true) const
 
virtual bool storeCfg (const char *filenamestem, const std::list< std::string > &comments=std::list< std::string >())
 stores the key values paires into the file : filenamestem.cfg including the comments given in the list More...
 
virtual bool restoreCfg (const char *filenamestem)
 restores the key values paires from the file : filenamestem.cfg More...
 
void print (FILE *f, const char *prefix, int columns=90, bool traverseChildren=true) const
 prints the keys, values and descriptions to the file. Each line is prefixed More...
 
bool parse (FILE *f, const char *prefix=0, bool traverseChildren=true)
 parses the configuration from the given file More...
 
virtual void addConfigurable (Configurable *conf)
 Adds a configurable as a child object. More...
 
virtual void removeConfigurable (Configurable *conf)
 Removes a configurable as a child object. More...
 
virtual const configurableListgetConfigurables () const
 Returns the list containing all configurable children. More...
 
virtual void configurableChanged ()
 Indicates that the configurable itself or the configurable children attached to this configurable have changed. More...
 
- Public Member Functions inherited from BackCaller
 BackCaller ()
 
virtual ~BackCaller ()
 
virtual void addCallbackable (Callbackable *callbackableInstance, CallbackableType type=BackCaller::DEFAULT_CALLBACKABLE_TYPE)
 Adds a Callbackable instance to this caller instance. More...
 
virtual void removeCallbackable (Callbackable *callbackableInstance, CallbackableType type=BackCaller::DEFAULT_CALLBACKABLE_TYPE)
 Removes a Callbackable instance from this caller instance. More...
 
virtual void removeAllCallbackables (CallbackableType type)
 Removes all Callbackable instances from this caller instance. More...
 
virtual void callBack (CallbackableType type=BackCaller::DEFAULT_CALLBACKABLE_TYPE)
 Calls all registered callbackable classes of the determined type. More...
 
virtual void callBackQMP (CallbackableType type=BackCaller::DEFAULT_CALLBACKABLE_TYPE)
 Calls all registered callbackable classes of the determined type. More...
 
- Public Member Functions inherited from Storeable
virtual ~Storeable ()
 
bool storeToFile (const char *filename) const
 Provided for convenience. More...
 
bool restoreFromFile (const char *filename)
 Provided for convenience. More...
 
- Public Member Functions inherited from Inspectable
 Inspectable (const iparamkey &name="")
 TYPEDEFS END. More...
 
virtual ~Inspectable ()
 
virtual iparamkeylist getInternalParamNames () const
 The list of the names of all internal parameters given by getInternalParams(). More...
 
virtual iparamvallist getInternalParams () const
 
virtual iparamvalptrlist getInternalParamsPtr () const
 be careful: matrices will be ignored More...
 
virtual ilayerlist getStructuralLayers () const
 Specifies which parameter vector forms a structural layer (in terms of a neural network) The ordering is important. More...
 
virtual iconnectionlist getStructuralConnections () const
 Specifies which parameter matrix forms a connection between layers (in terms of a neural network) The orderning is not important. More...
 
virtual void addInspectableValue (const iparamkey &key, iparamval const *val, const std::string &descr=std::string())
 This is the new style for adding inspectable values. More...
 
virtual void addInspectableMatrix (const iparamkey &key, const matrix::Matrix *m, bool only4x4AndDiag=true, const std::string &descr=std::string())
 This is the new style for adding inspectable values. More...
 
virtual void addInspectableDescription (const iparamkey &key, const std::string &descr)
 adds a description for the given parameter using info-lines The line will start (appart from the #I) with a D for description followed by the key end then followed by the string. More...
 
virtual void addInfoLine (std::string infoLine)
 Adds an info line to this inspectable instance. More...
 
virtual void addInfoLines (std::list< std::string > infoLineList)
 Adds a bunch of infolines with addInfoLine to this inspectable instance. More...
 
virtual void removeInfoLines ()
 Removes all infolines from this inspectable instance. More...
 
virtual const infoLinesListgetInfoLines () const
 Returns all infolines added to this inspectable instance. More...
 
virtual void addInspectable (Inspectable *insp)
 Adds an inspectable as a child object. More...
 
virtual void removeInspectable (Inspectable *insp)
 Removes an inspectable as a child object. More...
 
virtual void setNameOfInspectable (const iparamkey &name)
 set the name of the inspectable More...
 
virtual const iparamkey getNameOfInspectable () const
 return the name of the inspectable, getName() would conflict with Configurable::getName() too often More...
 
virtual const inspectableListgetInspectables () const
 Returns the list containing all inspectable children. More...
 

Static Public Member Functions

static SkeletonConf getDefaultConf ()
 
static SkeletonConf getDefaultConfVelServos ()
 

Protected Member Functions

virtual void create (const osg::Matrix &pose)
 creates vehicle at desired pose More...
 
virtual void destroy ()
 destroys vehicle and space More...
 
- Protected Member Functions inherited from OdeRobot
void attachSensor (SensorAttachment &sa)
 
void attachMotor (MotorAttachment &ma)
 
virtual void cleanup ()
 deletes all objects (primitives) and joints (is called automatically in destructor) More...
 
- Protected Member Functions inherited from Configurable
void copyParameters (const Configurable &, bool traverseChildren=true)
 copies the internal params of the given configurable More...
 
void printdescr (FILE *f, const char *prefix, const paramkey &key, int columns, int indent) const
 

Protected Attributes

SkeletonConf conf
 
bool created
 
OdeHandle ignoreColSpace
 
std::vector< TwoAxisServo * > hipservos
 
std::vector< OneAxisServo * > kneeservos
 
std::vector< OneAxisServo * > ankleservos
 
std::vector< TwoAxisServo * > armservos
 
std::vector< OneAxisServo * > arm1servos
 
std::vector< TwoAxisServo * > headservos
 
OneAxisServopelvisservo
 
std::vector< OneAxisServo * > backservos
 
std::vector< TwoAxisServo * > backservos2
 
std::vector< AngularMotor * > frictionmotors
 
GripperList grippers
 
int backbendindex
 
- Protected Attributes inherited from OdeRobot
Primitives objects
 list of objects (should be populated by subclasses) More...
 
Joints joints
 list of joints (should be populated by subclasses) More...
 
std::list< SensorAttachmentsensors
 
std::list< MotorAttachmentmotors
 
TmpJointfixationTmpJoint
 
Pose initialPose
 
Pose initialRelativePose
 
OdeHandle odeHandle
 
OsgHandle osgHandle
 
dSpaceID parentspace
 
bool initialized
 
bool askedfornumber
 
- Protected Attributes inherited from Inspectable
iparamkey name
 
iparampairlist mapOfValues
 
imatrixpairlist mapOfMatrices
 
infoLinesList infoLineStringList
 

Additional Inherited Members

- Static Public Attributes inherited from Configurable
static const CallbackableType CALLBACK_CONFIGURABLE_CHANGED = 11
 
- Static Public Attributes inherited from BackCaller
static const CallbackableType DEFAULT_CALLBACKABLE_TYPE = 0
 This is the default Callbackable type. More...
 
- Static Protected Member Functions inherited from OdeRobot
static bool isGeomInPrimitiveList (Primitive **ps, int len, dGeomID geom)
 
static bool isGeomInPrimitiveList (std::list< Primitive * > ps, dGeomID geom)
 

Detailed Description

should look like a humanoid

Member Enumeration Documentation

enum SkelParts
Enumerator
Hip 
Trunk_comp 
Belly 
Thorax 
Neck 
Head_comp 
Left_Shoulder 
Left_Forearm 
Left_Hand 
Right_Shoulder 
Right_Forearm 
Right_Hand 
Left_Thigh 
Left_Shin 
Left_Foot 
Right_Thigh 
Right_Shin 
Right_Foot 
LastPart 

Constructor & Destructor Documentation

Skeleton ( const OdeHandle odeHandle,
const OsgHandle osgHandle,
SkeletonConf conf,
const std::string &  name 
)

constructor of Skeleton robot

Parameters
odeHandledata structure for accessing ODE
osgHandleata structure for accessing OSG
confconfiguration object
virtual ~Skeleton ( )
inlinevirtual

Member Function Documentation

void create ( const osg::Matrix pose)
protectedvirtual

creates vehicle at desired pose

creates vehicle at desired position

Parameters
pose4x4 pose matrix
posstruct Position with desired position
void destroy ( )
protectedvirtual

destroys vehicle and space

static SkeletonConf getDefaultConf ( )
inlinestatic
static SkeletonConf getDefaultConfVelServos ( )
inlinestatic
GripperList & getGrippers ( )

returns a the gripper list

returns the grippers

Position getHeadPosition ( )
virtual

returns the position of the head

virtual Primitive* getMainPrimitive ( ) const
inlinevirtual

the main object of the robot, which is used for position and speed tracking

Reimplemented from OdeRobot.

int getMotorNumberIntern ( )
virtual

overload this function in a subclass to specific the number of custom sensors

See Also
getMotorNumber()

Reimplemented from OdeRobot.

int getSensorNumberIntern ( )
virtual

overload this function in a subclass to specific the number of custom sensors

See Also
getSensorNumber()

Reimplemented from OdeRobot.

int getSensorsIntern ( sensor sensors,
int  sensornumber 
)
virtual

overload this function in a subclass to do specific sensor handling, not needed for generic sensors

See Also
getSensors()
addSensor()

Reimplemented from OdeRobot.

Position getTrunkPosition ( )
virtual

returns the position of the trunk

void notifyOnChange ( const paramkey key)
virtual

Is called when a parameter was changes via setParam().

Note that it is not called of parameters of childs are changed, then there notifyOnChange() method is called. The key and of the changed parameter (use getParam() to retrieve its actual value). Overload this function when special actions have to be taken on parameter changes.

Reimplemented from Configurable.

void placeIntern ( const osg::Matrix pose)
virtual

sets the pose of the vehicle

Parameters
posedesired pose matrix

Implements OdeRobot.

void setMotorsIntern ( const motor motors,
int  motorsnumber 
)
virtual

overload this function in a subclass to do specific sensor handling, not needed for generic motors

See Also
setMotors()
addMotor()

Reimplemented from OdeRobot.

Member Data Documentation

std::vector<OneAxisServo*> ankleservos
protected
std::vector<OneAxisServo*> arm1servos
protected
std::vector<TwoAxisServo*> armservos
protected
int backbendindex
protected
std::vector<OneAxisServo*> backservos
protected
std::vector<TwoAxisServo*> backservos2
protected
SkeletonConf conf
protected
bool created
protected
std::vector<AngularMotor*> frictionmotors
protected
GripperList grippers
protected
std::vector<TwoAxisServo*> headservos
protected
std::vector<TwoAxisServo*> hipservos
protected
OdeHandle ignoreColSpace
protected
std::vector<OneAxisServo*> kneeservos
protected
OneAxisServo* pelvisservo
protected

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