|
Robot Simulator of the Robotics Group for Self-Organization of Control
0.8.0
|
#include <nejihebi.h>


Classes | |
| struct | Conf |
| Struct containing all the configuration options for the nejihebi robot. More... | |
Public Member Functions | |
| Nejihebi (const OdeHandle &odeHandle, const OsgHandle &osgHandle, const Conf &conf=getDefaultConf(), const std::string &name="ScrewDriveSnake") | |
| Constructor. More... | |
| virtual | ~Nejihebi () |
| Destructor. More... | |
| const Conf & | getConf () const |
| Returns the current configuration of the robot. More... | |
| Inspectable::iparamkeylist | getInternalParamNames () const |
| The list of the names of all internal parameters given by getInternalParams(). More... | |
| Inspectable::iparamvallist | getInternalParams () const |
| virtual Primitive * | getMainPrimitive () const |
| Returns main primitive of the robot. More... | |
| virtual int | getMotorNumberIntern () |
| Returns number of motors. More... | |
| virtual int | getSensorNumberIntern () |
| Returns number of sensors. More... | |
| virtual int | getSensorsIntern (sensor *sensors, int sensornumber) |
| Returns current sensor values. More... | |
| void | nameMotor (const int motorNo, const std::string &name) |
| Assigns a name to a motor. More... | |
| void | nameSensor (const int sensorNo, const std::string &name) |
| Assigns a name to sensor. More... | |
| virtual void | placeIntern (const osg::Matrix &pose) |
| Sets the pose of the vehicle. More... | |
| virtual void | setMotorsIntern (const double *motors, int motornumber) |
| Sets current motorcommands. 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 Primitives & | getAllPrimitives () |
| virtual Joints | getAllJoints () const |
| returns a list of all primitives of the robot (const version) (used to store and restore the robot) More... | |
| virtual Joints & | getAllJoints () |
| 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 | notifyOnChange (const paramkey &key) |
| Is called when a parameter was changes via setParam(). More... | |
| 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< paramkey > | getAllParamNames (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 configurableList & | getConfigurables () 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 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 infoLinesList & | getInfoLines () 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 inspectableList & | getInspectables () const |
| Returns the list containing all inspectable children. More... | |
Static Public Member Functions | |
| static Conf | getDefaultConf () |
| Returns default configuration. More... | |
Additional Inherited Members | |
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< iparamkey > | iparamkeylist |
| typedef std::list< std::string > | infoLinesList |
| typedef std::list< iparamval > | iparamvallist |
| typedef std::list< iparamval const * > | iparamvalptrlist |
| typedef std::list< iparampair > | iparampairlist |
| typedef std::list< imatrixpair > | imatrixpairlist |
| typedef struct Inspectable::ILayer | ILayer |
| typedef struct Inspectable::IConnection | IConnection |
| typedef std::list< ILayer > | ilayerlist |
| typedef std::list< IConnection > | iconnectionlist |
| typedef std::list< const Inspectable * > | inspectableList |
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... | |
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 |
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) |
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< SensorAttachment > | sensors |
| std::list< MotorAttachment > | motors |
| TmpJoint * | fixationTmpJoint |
| 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 |
Nejihebi Robot.
This is a snake-like robot with screw drive mechanism as developed at the Matsuno Lab in Kyoto, Japan. For details on the real robot see:
Fukushima et al: Modeling and Control of a Snake-Like Robot Using the Screw-Drive Mechanism. IEEE Transactions on Robotics 28(3), 2012.
| Nejihebi | ( | const OdeHandle & | odeHandle, |
| const OsgHandle & | osgHandle, | ||
| const Conf & | conf = getDefaultConf(), |
||
| const std::string & | name = "ScrewDriveSnake" |
||
| ) |
Constructor.
| odeHandle | data structure for accessing ODE |
| osgHandle | data structure for accessing OSG |
| conf | configuration object |
| name | name to display for this robot |
|
virtual |
Destructor.
| const Nejihebi::Conf & getConf | ( | ) | const |
Returns the current configuration of the robot.
|
static |
Returns default configuration.
This method returns a configuration object with the default configuration for the robot which is supposed to be as close as possible to the real robot.
|
virtual |
The list of the names of all internal parameters given by getInternalParams().
The naming convention is "v[i]" for vectors and "A[i][j]" for matrices, where i, j start at 0.
Reimplemented from Inspectable.
|
virtual |
Reimplemented from Inspectable.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
Returns current sensor values.
This method returns all the sensor values of the robot. They are scaled into the interval -1 to 1. Let N be the number of screws for the current robot object. Then the sensor values are as follows:
0 : rotation angle of first screw (foremost screw) [-pi, pi] ... N-1 : rotation angle of N-th screw (backmost screw) [-pi, pi] N : position of first yaw yoint (foremost joint) [-pi, pi] N+1 : angle velocity of first yaw joint [-maxVel, maxVel] N+2 : position of first pitch joint [-pi, pi] N+3 : angle velocity of first pitch joint [-maxVel, maxVel] N+4 : position of second yaw joint ... 5N-5 : angle velocity of last pitch joint
| sensors | sensor array to which the sensors scaled to [-1,1] will be written |
| sensornumber | length of the sensor array |
Reimplemented from OdeRobot.
| void nameMotor | ( | const int | motorNo, |
| const std::string & | name | ||
| ) |
Assigns a name to a motor.
This method assigns a human readable name to a motor. This name is used for the associated inspectable value of the wiring as used e.g. in guilogger.
| motorNo | index of the motor |
| name | human readable name for the motor |
| void nameSensor | ( | const int | sensorNo, |
| const std::string & | name | ||
| ) |
Assigns a name to sensor.
This method assigns a human readable name to a sensor. This name is used for the associated inspectable value of the wiring as used e.g. in guilogger.
| sensorNo | index of the sensor |
| name | human readable name for the sensor |
|
virtual |
|
virtual |
Sets current motorcommands.
This method is used to deliver motor commands to the robots. If N is the number of screw elements of the robot then the meaning of the motor commands is as follows:
0 : goal speed for first screw (foremost screw) [-maxVel, maxVel] N-1 : goal speed for N-th screw (backmost screw) [-maxVel, maxVel] N : goal position for first yaw joint [-pi, pi] N+1 : goal position for first pitch joint [-pi, pi] N+2 : goal position for second yaw joint [-pi, pi] ... 3N-3 : goal position for last pitch joint [-pi, pi] 3N-2 : torque limit for first yaw joint [0:1] 3N-1 : torque limit for first pitch joint [0:1] 3N : torque limit for second yaw joint [0:1] ... 5N-5 : torque limit for last pitch joint [0:1]
| motors | motors scaled to [-1,1] |
| motornumber | length of the motor array |
Reimplemented from OdeRobot.