Abstract class for ODE robots. More...
#include <oderobot.h>
Inherits AbstractRobot, and Storeable.
Inherited by AddSensors2RobotAdapter, AmosII, Arm, Arm2Segm, DefaultCaterPillar, Discus, ForcedSphere, Formel1, Hand, Hexapod, HurlingSnake, MuscledArm, Nimm2, Nimm4, ReplayRobot, RobotChain, Schlange, ShortCircuit, Skeleton, SliderWheelie, Sphererobot, Sphererobot3Masses, TruckMesh, Uwo, and VierBeiner.
Public Member Functions | |
OdeRobot (const OdeHandle &odeHandle, const OsgHandle &osgHandle, const std::string &name, const std::string &revision) | |
Constructor. | |
virtual | ~OdeRobot () |
calls cleanup() | |
virtual void | update ()=0 |
update the OSG notes here | |
virtual void | place (const Pos &pos) |
sets the vehicle to position pos | |
virtual void | place (const osg::Matrix &pose)=0 |
sets the pose of the vehicle | |
virtual bool | collisionCallback (void *data, dGeomID o1, dGeomID o2) |
virtual void | sense (GlobalData &globalData) |
this function is called each controlstep before control. | |
virtual void | doInternalStuff (GlobalData &globalData) |
this function is called in each simulation timestep (always after control). | |
virtual void | setColor (const Color &col) |
sets color of the robot | |
virtual Position | getPosition () const |
returns position of the object | |
virtual Position | getSpeed () const |
returns linear speed vector of the object | |
virtual Position | getAngularSpeed () const |
returns angular velocity vector of the object | |
virtual matrix::Matrix | getOrientation () const |
returns the orientation of the object | |
virtual Primitive * | getMainPrimitive () const |
return the primitive of the robot that is used for tracking and camera following | |
virtual Primitives | getAllPrimitives () const |
returns a list of all primitives of the robot (used to store and restore the robot) | |
virtual Primitives & | getAllPrimitives () |
virtual bool | store (FILE *f) const |
returns a list of all primitives of the robot (const version) (used to store and restore the robot) | |
virtual bool | restore (FILE *f) |
loads the object from the given file stream (binary). | |
virtual void | moveToPosition (Pos pos=Pos(0, 0, 0.5)) |
relocates robot to new postion (keep current pose) such that lowest body part is at the given position (the center of it, so the bounding box is not checked) | |
Protected Member Functions | |
virtual void | cleanup () |
deletes all objects (primitives) and joints (is called automatically in destructor) | |
Static Protected Member Functions | |
static bool | isGeomInPrimitiveList (Primitive **ps, int len, dGeomID geom) |
static bool | isGeomInPrimitiveList (std::list< Primitive * > ps, dGeomID geom) |
Protected Attributes | |
Primitives | objects |
list of objects (should be populated by subclasses) | |
std::vector< Joint * > | joints |
list of joints (should be populated by subclasses) | |
OdeHandle | odeHandle |
OsgHandle | osgHandle |
dSpaceID | parentspace |
Friends | |
class | OdeAgent |
Abstract class for ODE robots.
OdeRobot | ( | const OdeHandle & | odeHandle, | |
const OsgHandle & | osgHandle, | |||
const std::string & | name, | |||
const std::string & | revision | |||
) |
Constructor.
odehandle | structure with all global ODE variables |
void cleanup | ( | ) | [protected, virtual] |
deletes all objects (primitives) and joints (is called automatically in destructor)
virtual bool collisionCallback | ( | void * | data, | |
dGeomID | o1, | |||
dGeomID | o2 | |||
) | [inline, virtual] |
Reimplemented in AddSensors2RobotAdapter, and Hexapod.
virtual void doInternalStuff | ( | GlobalData & | globalData | ) | [inline, virtual] |
this function is called in each simulation timestep (always after control).
It should perform robot-internal checks and actions like resetting certain sensors or implement velocity dependend friction and the like. The attached Motors should act here.
globalData | structure that contains global data from the simulation environment |
Reimplemented in AddSensors2RobotAdapter, AmosII, Arm, Arm2Segm, Discus, ForcedSphere, Formel1, FourWheeled, Hand, Hexapod, HurlingSnake, MuscledArm, Nimm2, Nimm4, ReplayRobot, RobotChain, Schlange, ShortCircuit, Skeleton, SliderWheelie, Sphererobot, Sphererobot3Masses, TruckMesh, Uwo, and VierBeiner.
virtual Primitives& getAllPrimitives | ( | ) | [inline, virtual] |
Reimplemented in AddSensors2RobotAdapter.
virtual Primitives getAllPrimitives | ( | ) | const [inline, virtual] |
returns a list of all primitives of the robot (used to store and restore the robot)
Reimplemented in AddSensors2RobotAdapter, Schlange, and SliderWheelie.
Position getAngularSpeed | ( | ) | const [virtual] |
virtual Primitive* getMainPrimitive | ( | ) | const [inline, virtual] |
return the primitive of the robot that is used for tracking and camera following
Reimplemented in AddSensors2RobotAdapter, AmosII, Arm, Arm2Segm, DefaultCaterPillar, Discus, ForcedSphere, Formel1, Hand, Hexapod, HurlingSnake, MuscledArm, ReplayRobot, RobotChain, Schlange, ShortCircuit, Skeleton, SliderWheelie, Sphererobot, Uwo, and VierBeiner.
matrix::Matrix getOrientation | ( | ) | const [virtual] |
Position getPosition | ( | ) | const [virtual] |
Position getSpeed | ( | ) | const [virtual] |
bool isGeomInPrimitiveList | ( | std::list< Primitive * > | ps, | |
dGeomID | geom | |||
) | [static, protected] |
bool isGeomInPrimitiveList | ( | Primitive ** | ps, | |
int | len, | |||
dGeomID | geom | |||
) | [static, protected] |
relocates robot to new postion (keep current pose) such that lowest body part is at the given position (the center of it, so the bounding box is not checked)
virtual void place | ( | const osg::Matrix & | pose | ) | [pure virtual] |
sets the pose of the vehicle
pose | desired 4x4 pose matrix |
Implemented in AddSensors2RobotAdapter, AmosII, Arm, Arm2Segm, DefaultCaterPillar, Discus, ForcedSphere, Formel1, Hand, Hexapod, HurlingSnake, MuscledArm, Nimm2, Nimm4, ReplayRobot, RobotChain, Schlange, ShortCircuit, Skeleton, SliderWheelie, Sphererobot, Sphererobot3Masses, TruckMesh, Uwo, and VierBeiner.
void place | ( | const Pos & | pos | ) | [virtual] |
sets the vehicle to position pos
pos | desired position of the robot |
bool restore | ( | FILE * | f | ) | [virtual] |
loads the object from the given file stream (binary).
Implements Storeable.
virtual void sense | ( | GlobalData & | globalData | ) | [inline, virtual] |
this function is called each controlstep before control.
This is the place the perform active sensing (e.g. Image processing)
globalData | structure that contains global data from the simulation environment |
Reimplemented in AddSensors2RobotAdapter, and TwoWheeled.
void setColor | ( | const Color & | col | ) | [virtual] |
sets color of the robot
Reimplemented in AddSensors2RobotAdapter.
bool store | ( | FILE * | f | ) | const [virtual] |
returns a list of all primitives of the robot (const version) (used to store and restore the robot)
Implements Storeable.
virtual void update | ( | ) | [pure virtual] |
update the OSG notes here
Implemented in AddSensors2RobotAdapter, AmosII, Arm, Arm2Segm, DefaultCaterPillar, Discus, ForcedSphere, Formel1, FourWheeled, Hand, Hexapod, HurlingSnake, MuscledArm, Nimm2, Nimm4, ReplayRobot, RobotChain, Schlange, ShortCircuit, Skeleton, SliderWheelie, Sphererobot, Sphererobot3Masses, TruckMesh, TwoWheeled, Uwo, and VierBeiner.
friend class OdeAgent [friend] |
list of joints (should be populated by subclasses)
Primitives objects [protected] |
list of objects (should be populated by subclasses)
Reimplemented in Discus, and Sphererobot.
dSpaceID parentspace [protected] |
Reimplemented in Arm, Arm2Segm, and MuscledArm.