25 #ifndef __SPHEREROBOT3MASSES_H
26 #define __SPHEREROBOT3MASSES_H
66 } Sphererobot3MassesConf;
104 const std::string& name,
const std::string& revision,
double transparency);
Class for a bank (collection) of ray sensors.
Definition: raysensorbank.h:36
double irsensorscale
range of the ir sensors in units of diameter
Definition: sphererobot3masses.h:53
Data structure for accessing the ODE.
Definition: odehandle.h:44
double brake
if nonzero the robot brakes (deaccelerates actively/magically)
Definition: sphererobot3masses.h:57
bool irAxis3
Definition: sphererobot3masses.h:49
bool motorsensor
motor values as sensors
Definition: sphererobot3masses.h:46
RaySensor::rayDrawMode drawIRs
Definition: sphererobot3masses.h:52
std::list< Sensor * > sensors
list of sensors that are mounted at the robot. (e.g. AxisOrientationSensor)
Definition: sphererobot3masses.h:63
virtual void sense(GlobalData &globalData) override
this function is called each controlstep before control.
Definition: sphererobot3masses.cpp:173
double spheremass
Definition: sphererobot3masses.h:41
double pendulardiameter
automatically set
Definition: sphererobot3masses.h:42
Matrixd Matrix
Definition: osgforwarddecl.h:47
Interface class for graphic primitives like spheres, boxes, and meshes, which can be drawn by OSG...
Definition: osgprimitive.h:62
charArray paramkey
Definition: avrtypes.h:36
SliderServo * servo[servono]
Definition: sphererobot3masses.h:82
Sphererobot3MassesConf conf
Definition: sphererobot3masses.h:85
OSGPrimitive * axis[servono]
Definition: sphererobot3masses.h:83
double motor_ir_before_sensors
if true motor sensors and ir sensors are given before additional sensors
Definition: sphererobot3masses.h:56
Definition: raysensor.h:56
unsigned int numberaxis
Definition: sphererobot3masses.h:80
Definition: sphererobot3masses.h:76
rayDrawMode
Definition: raysensor.h:56
double sensor
Definition: types.h:29
parts
enum for the objects of the robot
Definition: sphererobot3masses.h:76
Data structure for accessing the OpenSceneGraph.
Definition: osghandle.h:79
Definition: sphererobot3masses.h:76
virtual ~Sphererobot3Masses()
Definition: sphererobot3masses.cpp:95
bool irAxis1
Definition: sphererobot3masses.h:47
virtual void destroy()
destroys vehicle and space
Definition: sphererobot3masses.cpp:336
Abstract class for sensors that can be plugged into a robot.
Definition: sensor.h:43
double irCharacter
characteristics of sensor ( where x is the range-distance)
Definition: sphererobot3masses.h:54
virtual int getSensorsIntern(sensor *sensors, int sensornumber)
Writes the sensor values to an array in the memory.
Definition: sphererobot3masses.cpp:127
virtual void notifyOnChange(const paramkey &key)
Is called when a parameter was changes via setParam().
Definition: sphererobot3masses.cpp:348
bool irSide
4 IR senors to both side in y direction (collides with irAxis2)
Definition: sphererobot3masses.h:51
virtual void setMotorsIntern(const double *motors, int motornumber)
overload this function in a subclass to do specific sensor handling, not needed for generic motors ...
Definition: sphererobot3masses.cpp:159
static Sphererobot3MassesConf getDefaultConf()
default configuration
Definition: sphererobot3masses.h:112
bool irRing
IR sensors in a ring in x,z plane (collides with irAxis1 and irAxis3)
Definition: sphererobot3masses.h:50
double pendularrange
fraction of the diameter the pendular masses can move to one side
Definition: sphererobot3masses.h:45
bool created
Definition: sphererobot3masses.h:88
A spherical robot with 3 internal masses, which can slide on their orthogonal axes.
Definition: sphererobot3masses.h:72
Data structure holding all essential global information.
Definition: globaldata.h:57
std::list< SensorAttachment > sensors
Definition: oderobot.h:269
RaySensorBank irSensorBank
a collection of ir sensors
Definition: sphererobot3masses.h:86
configuration object for the Sphererobot3Masses robot.
Definition: sphererobot3masses.h:38
bool irAxis2
Definition: sphererobot3masses.h:48
virtual int getSensorNumberIntern()
overload this function in a subclass to specific the number of custom sensors
Definition: sphererobot3masses.cpp:204
void addSensor(Sensor *s)
adds a sensor to the list of sensors
Definition: sphererobot3masses.h:65
Sphererobot3Masses(const OdeHandle &odeHandle, const OsgHandle &osgHandle, const Sphererobot3MassesConf &conf, const std::string &name, double transparency=0.5)
constructor
Definition: sphererobot3masses.cpp:53
virtual void doInternalStuff(GlobalData &globalData)
this function is called in each simulation timestep (always after control).
Definition: sphererobot3masses.cpp:180
OsgHandle osgHandle
Definition: oderobot.h:278
double axesShift
defines how much the axes are shifted from the center
Definition: sphererobot3masses.h:58
OdeHandle odeHandle
Definition: oderobot.h:277
Definition: sphererobot3masses.h:76
virtual void create(const osg::Matrix &pose)
creates vehicle at desired position and orientation
Definition: sphererobot3masses.cpp:215
virtual void update()
update the OSG notes here, if overwritten, call OdeRobot::update()!
Definition: sphererobot3masses.cpp:104
double diameter
Definition: sphererobot3masses.h:40
double motorpowerfactor
power factor for servos w.r.t. pendularmass
Definition: sphererobot3masses.h:44
Abstract class for ODE robots.
Definition: oderobot.h:64
double pendularmass
Definition: sphererobot3masses.h:43
static const int servono
Definition: sphererobot3masses.h:79
void init()
initialises some internal variables
Definition: sphererobot3masses.cpp:85
double transparency
Definition: sphererobot3masses.h:87
RaySensor * irSensorTempl
template for creation of the other ir sensors (if 0 then IRSensor(irCharacter))
Definition: sphererobot3masses.h:55
Definition: sphererobot3masses.h:76
Definition: sphererobot3masses.h:76
virtual void placeIntern(const osg::Matrix &pose)
wrapper to for
Definition: sphererobot3masses.cpp:167
general servo motor to achieve position control
Definition: oneaxisservo.h:38
std::list< MotorAttachment > motors
Definition: oderobot.h:270
virtual int getMotorNumberIntern()
overload this function in a subclass to specific the number of custom sensors
Definition: sphererobot3masses.cpp:200
Class for Ray-based sensors.
Definition: raysensor.h:54
int c
Definition: hexapod.cpp:56