Robot Simulator of the Robotics Group for Self-Organization of Control: OneActiveMultiPassiveController Class Reference

# OneActiveMultiPassiveController Class Reference

class (interface) for using multiple controller, the first one is the active one, which generates motor values. More...

`#include <oneactivemultipassivecontroller.h>`

Inherits AbstractMultiController.

Collaboration diagram for OneActiveMultiPassiveController:
[legend]

List of all members.

## Public Member Functions
| OneActiveMultiPassiveController (AbstractController *controller, const std::string &name="1ActXPassController", const std::string &revision="$ID$")
| contructor (hint: use $ID$ for revision)
virtual | ~OneActiveMultiPassiveController ()
virtual void | init (int sensornumber, int motornumber, RandGen *randGen=0)
| initialisation of the controller with the given sensor/ motornumber Must NORMALLY be called before use.
virtual void | step (const sensor *sensors, int sensornumber, motor *motors, int motornumber)
| performs one step (includes learning).
virtual void | stepNoLearning (const sensor *sensors, int sensornumber, motor *motors, int motornumber)
| performs one step without learning.
## Protected Attributes
motor * | passiveMotors

## Detailed Description

class (interface) for using multiple controller, the first one is the active one, which generates motor values.

The other controllers are passive and cannot affect the motor values.

## Constructor & Destructor Documentation

OneActiveMultiPassiveController | ( | AbstractController * | controller,
|  | const std::string & | name = `"1ActXPassController"`,
|  | const std::string & | revision = `"$ID$"` |
| ) |  |  |

contructor (hint: use $ID$ for revision)

~OneActiveMultiPassiveController | ( |  | ) | `[virtual]`

## Member Function Documentation

void init | ( | int | sensornumber,
|  | int | motornumber,
|  | RandGen * | randGen = `0` |
| ) |  |  | `[virtual]`

initialisation of the controller with the given sensor/ motornumber Must NORMALLY be called before use.

For all multicontroller call first AbstractMultiController::init(sensornumber,motornumber) if you overwrite this method

Reimplemented from AbstractMultiController.

void step | ( | const sensor * | sensors,
|  | int | sensornumber,
|  | motor * | motors,
|  | int | motornumber |
| ) |  |  | `[virtual]`

performs one step (includes learning).

Calculates motor commands from sensor inputs.

Parameters:

  | sensors | sensors inputs scaled to [-1,1]
  | sensornumber | length of the sensor array
  | motors | motors outputs. MUST have enough space for motor values!
  | motornumber | length of the provided motor array

Implements AbstractMultiController.

void stepNoLearning | ( | const sensor * | sensors,
|  | int | sensornumber,
|  | motor * | motors,
|  | int | motornumber |
| ) |  |  | `[virtual]`

performs one step without learning.

See also:
  step

Implements AbstractMultiController.

## Member Data Documentation

motor* passiveMotors`[protected]`

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

- oneactivemultipassivecontroller.h
- oneactivemultipassivecontroller.cpp