Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

# FutureWorldModelGenerator Class Reference

A class for computing a world model after excuting a specific action. More...

`#include <FutureWorldModelGenerator.h>`

List of all members.

## Public Member Functions
void | transformWorldState (const PfPose &poseNow, PfPose &poseThen, Action &action, Actionfield *callingField, std::vector< PotentialFieldsObject * > &worldStateNow, std::vector< PotentialFieldsObject * > &worldStateThen, std::vector< PotentialFieldsObject * > &worldStateStatic)
| Transforms the world state by applying an action.
## Static Public Member Functions
FutureWorldModelGenerator * | getFutureWorldModelGenerator ()
| Returns a pointer to the class (which is a singleton).
## Private Member Functions
| FutureWorldModelGenerator ()
| Constructor.
void | executeSingleTransformation (PfPose &pose, Action &action, PotentialfieldTransformation *transformation, Actionfield *callingField, std::vector< PotentialFieldsObject * > &dynamicWorldState, std::vector< PotentialFieldsObject * > &staticWorldState)
| Executes a transformation.
double | getMaxTranslationForObject (const PfPose &objectPose, const PfVec &translation, std::vector< PotentialFieldsObject * > &otherObjects, std::vector< PotentialFieldsObject * > &otherStaticObjects, int excludedObject=-1)
| Checks a planned transformation for collisions.
double | getMaxRotationForObject (const PfPose &objectPose, const PfPose &rotationPose, double rotation, std::vector< PotentialFieldsObject * > &otherObjects, std::vector< PotentialFieldsObject * > &otherStaticObjects, int excludedObject=-1)
| Checks a planned rotation for collisions.

## Detailed Description

A class for computing a world model after excuting a specific action.

Definition at line 32 of file FutureWorldModelGenerator.h.

## Constructor & Destructor Documentation

FutureWorldModelGenerator::FutureWorldModelGenerator | ( |  | ) | `[inline, private]`

| Constructor. Definition at line 36 of file FutureWorldModelGenerator.h.

## Member Function Documentation

FutureWorldModelGenerator* FutureWorldModelGenerator::getFutureWorldModelGenerator | ( |  | ) | `[inline, static]`

| Returns a pointer to the class (which is a singleton). Returns: The pointer Definition at line 42 of file FutureWorldModelGenerator.h. Referenced by Actionfield::Actionfield().

void FutureWorldModelGenerator::transformWorldState | ( | const PfPose & | poseNow,
|  | PfPose & | poseThen,
|  | Action & | action,
|  | Actionfield * | callingField,
|  | std::vector< PotentialFieldsObject * > & | worldStateNow,
|  | std::vector< PotentialFieldsObject * > & | worldStateThen,
|  | std::vector< PotentialFieldsObject * > & | worldStateStatic
| ) |

  | Transforms the world state by applying an action. Parameters:
  poseNow | The original pose
  poseThen | The pose after the action
  action | The action
  callingField | The potential field calling this function
  worldStateNow | The state of all objects before the action
  worldStateThen | The state of all objects after the action
  worldStateStatic | All static objects (never move, cannot be moved)
Definition at line 19 of file FutureWorldModelGenerator.cpp. References Action::actionType, executeSingleTransformation(), PfPose::hasProbabilityDistribution, Action::joinAction, MEASURE_OBJECT, MEASURE_SELF, MOVE_OBJECT, MOVE_SELF, Action::objectIdx, PfPose::probabilityDistribution, PfPose::setPoseFromSamples(), Action::time, and Action::transformations. Referenced by Actionfield::execute(), and Actionfield::findBestSequence().

Here is the call graph for this function:

void FutureWorldModelGenerator::executeSingleTransformation | ( | PfPose & | pose,
|  | Action & | action,
|  | PotentialfieldTransformation * | transformation,
|  | Actionfield * | callingField,
|  | std::vector< PotentialFieldsObject * > & | dynamicWorldState,
|  | std::vector< PotentialFieldsObject * > & | staticWorldState
| ) | `[private]`

  | Executes a transformation. Parameters:
  pose | The robot pose (may be changed by this function)
  action | The action to which the transformation is assigned
  transformation | The transformation to be executed
  callingField | The potential field using this class
  dynamicWorldState | All dynamic objects (may be changed by this function)
  staticWorldState | All static objects
Definition at line 110 of file FutureWorldModelGenerator.cpp. References Action::actionType, PfPose::addAbsVector(), Translation::alongGradient, Rotation::angle, Action::canBeApplied(), PfVec::distanceTo(), PfVec::getAngle(), Actionfield::getFutureFieldVecAt(), getMaxRotationForObject(), getMaxTranslationForObject(), PotentialFieldsObject::getPose(), PotentialfieldTransformation::getType(), PfPose::hasProbabilityDistribution, Action::joinAction, PfVec::length(), Translation::maxGradientDeviation, Translation::maxLength, Action::motionParameters, MOVE_OBJECT, PfVec::normalize(), PfPose::normRotation(), Action::objectIdx, PfPose::pos, PfPose::probabilityDistribution, PfVec::rotate(), PfPose::rotateAround(), ROTATION, PfPose::rotation, Rotation::speed, Translation::speed, Translation::stepLength, PotentialfieldTransformation::time, Rotation::toGradient, Rotation::toObject, Translation::toObject, TransformationType, Translation::translation, TRANSLATION, PfVec::x, and PfVec::y. Referenced by transformWorldState().

Here is the call graph for this function:

double FutureWorldModelGenerator::getMaxTranslationForObject | ( | const PfPose & | objectPose,
|  | const PfVec & | translation,
|  | std::vector< PotentialFieldsObject * > & | otherObjects,
|  | std::vector< PotentialFieldsObject * > & | otherStaticObjects,
|  | int | excludedObject = -1
| ) | `[private]`

  | Checks a planned transformation for collisions. Parameters:
  objectPose | The pose of the object to be transformed
  translation | The planned translation
  otherObjects | All dynamic objects
  otherStaticObjects | All static objects
  excludedObject | The index (in otherObjects) of the object to be checked
Returns: A value [0.0 .. 1.0] indicated "how much" of the translation may be executed Definition at line 326 of file FutureWorldModelGenerator.cpp. References intersectGeometricObjects(), PfVec::length(), Line::p1, Line::p2, PfPose::pos, PfieldGeometricObject::position, and PfieldGeometricObject::radiusOfCollisionCircle. Referenced by executeSingleTransformation().

Here is the call graph for this function:

double FutureWorldModelGenerator::getMaxRotationForObject | ( | const PfPose & | objectPose,
|  | const PfPose & | rotationPose,
|  | double | rotation,
|  | std::vector< PotentialFieldsObject * > & | otherObjects,
|  | std::vector< PotentialFieldsObject * > & | otherStaticObjects,
|  | int | excludedObject = -1
| ) | `[private]`

  | Checks a planned rotation for collisions. Parameters:
  objectPose | The pose of the object to be transformed
  rotationPose | The position to rotate around also including the current rotation
  rotation | The planned rotation
  otherObjects | All dynamic objects
  otherStaticObjects | All static objects
  excludedObject | The index (in otherObjects) of the object to be checked
Returns: A value [0.0 .. 1.0] indicated "how much" of the translation may be executed Definition at line 394 of file FutureWorldModelGenerator.cpp. References EPSILON, PfPose::getAngleTo(), Circle::initRadiusOfCollisionCircle(), intersectGeometricObjects(), PfPose::normRotation(), Sector::openingAngle, point, Sector::pointInside(), PfPose::pos, PfieldGeometricObject::position, Circle::radius, and PfPose::rotation. Referenced by executeSingleTransformation().

Here is the call graph for this function:

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

- Tools/PotentialFields/FutureWorldModelGenerator.h
- Tools/PotentialFields/FutureWorldModelGenerator.cpp