#include <derivativewiring.h>
Inherits AbstractWiring.
Inheritance diagram for DerivativeWiring:
Public Member Functions | |
DerivativeWiring (const DerivativeWiringConf &conf, NoiseGenerator *noise) | |
constructor | |
virtual | ~DerivativeWiring () |
destructor | |
Static Public Member Functions | |
static DerivativeWiringConf | getDefaultConf () |
Providing default configuration for DerivativeWiring with first derivative. | |
static DerivativeWiringConf | getDefaultConf1 () |
Providing default configuration for DerivativeWiring for only first derivative. | |
Protected Member Functions | |
virtual bool | initIntern (int robotsensornumber, int robotmotornumber, RandGen *randGen=0) |
initializes the internal numbers of sensors and motors on robot side, calculate number of sensors and motors on controller side | |
virtual bool | wireSensorsIntern (const sensor *rsensors, int rsensornumber, sensor *csensors, int csensornumber, double noise) |
Realizes derivative wiring from robot sensors to controller sensors. | |
virtual bool | wireMotorsIntern (motor *rmotors, int rmotornumber, const motor *cmotors, int cmotornumber) |
Realizes wiring from controller motor outputs to robot motors. | |
void | calcFirstDerivative () |
Calculate the first derivative of the sensorvalues given by the robot f'(x) = (f(x+1) - f(x-1)) / 2 since we do not have f(x+1) we go one timestep in the past. | |
void | calcSecondDerivative () |
Calculate the secound derivative of the sensorvalues given by the robot f'(x) = f(x) - 2f(x-1) + f(x-2). | |
Protected Attributes | |
DerivativeWiringConf | conf |
used configuration | |
int | time |
sensor * | sensorbuffer [buffersize] |
current and old smoothed sensor values of robot | |
sensor * | first |
current first derivative | |
sensor * | second |
current second derivative | |
motor * | blindMotors |
array that stored the values of the blind motors | |
Static Protected Attributes | |
static const int | buffersize = 40 |
DerivativeWiring | ( | const DerivativeWiringConf & | conf, | |
NoiseGenerator * | noise | |||
) |
constructor
conf | for giving the wished configuration of DerivativeWiring via DerivativeWiringConf | |
noise | NoiseGenerator that is used for adding noise to sensor values |
~DerivativeWiring | ( | ) | [virtual] |
destructor
void calcFirstDerivative | ( | ) | [protected] |
Calculate the first derivative of the sensorvalues given by the robot f'(x) = (f(x+1) - f(x-1)) / 2 since we do not have f(x+1) we go one timestep in the past.
void calcSecondDerivative | ( | ) | [protected] |
Calculate the secound derivative of the sensorvalues given by the robot f'(x) = f(x) - 2f(x-1) + f(x-2).
static DerivativeWiringConf getDefaultConf | ( | ) | [inline, static] |
Providing default configuration for DerivativeWiring with first derivative.
No smoothing and no scaling. ( as static method )
static DerivativeWiringConf getDefaultConf1 | ( | ) | [inline, static] |
Providing default configuration for DerivativeWiring for only first derivative.
smoothing over 4 steps and scale of 5. Use smaller noise! ( as static method )
bool initIntern | ( | int | robotsensornumber, | |
int | robotmotornumber, | |||
RandGen * | randGen = 0 | |||
) | [protected, virtual] |
initializes the internal numbers of sensors and motors on robot side, calculate number of sensors and motors on controller side
Implements AbstractWiring.
bool wireMotorsIntern | ( | motor * | rmotors, | |
int | rmotornumber, | |||
const motor * | cmotors, | |||
int | cmotornumber | |||
) | [protected, virtual] |
Realizes wiring from controller motor outputs to robot motors.
rmotors | pointer to array of motorvalues for robot | |
rmotornumber | number of robot motors | |
cmotors | pointer to array of motorvalues from controller | |
cmotornumber | number of motorvalues from controller |
Implements AbstractWiring.
bool wireSensorsIntern | ( | const sensor * | rsensors, | |
int | rsensornumber, | |||
sensor * | csensors, | |||
int | csensornumber, | |||
double | noise | |||
) | [protected, virtual] |
Realizes derivative wiring from robot sensors to controller sensors.
rsensors | pointer to array of sensorvalues from robot | |
rsensornumber | number of sensors from robot | |
csensors | pointer to array of sensorvalues for controller | |
csensornumber | number of sensors to controller | |
noise | size of the noise added to the sensors |
Implements AbstractWiring.
motor* blindMotors [protected] |
array that stored the values of the blind motors
const int buffersize = 40 [static, protected] |
DerivativeWiringConf conf [protected] |
used configuration
sensor* sensorbuffer[buffersize] [protected] |
current and old smoothed sensor values of robot
int time [protected] |