Main Page | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Namespace Members | Data Fields | Globals

RobotFlow::FollowWall Class Reference

Inheritance diagram for RobotFlow::FollowWall:

Inheritance graph
[legend]
Collaboration diagram for RobotFlow::FollowWall:

Collaboration graph
[legend]

Public Member Functions

 FollowWall (string nodeName, ParameterSet params)
void calculate_behavior (int output_id, int count, Buffer &out)
virtual void calculate (int output_id, int count, FD::Buffer &out)
int get_behavior_id ()
virtual ObjectRef getOutput (int output_id, int count)
virtual void request (int outputID, const ParameterSet &req)
virtual void initialize ()
virtual void reset ()
virtual int addOutput (const std::string &outputName)
virtual int addInput (const std::string &inputName)
virtual void initializeBuffers ()
virtual void performRequests ()
virtual ObjectRef getOutputNamed (const std::string &outputName, int count)
virtual void connectToNode (std::string in, Node *inputNode, std::string out)
virtual bool hasOutput (int output_id) const
ObjectRef getInput (int inputID, int count)
virtual void stop ()
virtual void cleanupNotify ()
std::string getName ()
virtual void verifyConnect ()
void printOn (std::ostream &out=std::cout) const
void setUINode (UINode *_uinode)
void ref ()
void unref ()
int unique ()
virtual void destroy ()
virtual void serialize (std::ostream &out) const
virtual void unserialize (std::istream &in)
virtual void doesNotUnderstand (std::string method)
virtual bool isNil () const
virtual void prettyPrint (std::ostream &out=std::cout) const
virtual void readFrom (std::istream &in=std::cin)
virtual ObjectRef clone ()
virtual std::string className () const

Static Public Member Functions

static int register_behavior (const std::string &name)
static int find_behavior (const std::string &name)
static bool behavior_exists (const std::string &name)
static int get_behavior_size ()
static FD::Vector< std::string > & get_behaviors ()
static void remove_behavior (const std::string &name)
static int addFactory (const std::string &factoryName, _NodeFactory *const factory)
static int addXPM (const std::string &nodeName, char **XPMData)
static char ** getXPM (const std::string &nodeName)
static _NodeFactory * getFactoryNamed (const std::string &name)
static std::map< std::string,
_NodeFactory * > & 
factoryDictionary ()
static std::vector< std::string > & nodeInfo ()
static std::map< std::string,
char ** > & 
XPMDictionary ()
static int addNodeInfo (const std::string &info)
static ObjectRef newObject (const std::string &objType)
static int addObjectType (const std::string &objType, _ObjectFactory *factory)
static std::map< std::string,
_ObjectFactory * > & 
ObjectFactoryDictionary ()
static TypeMap< _ObjectFactory * > & TypeidDictionary ()

Protected Member Functions

virtual void connectToNode (unsigned int in, Node *inputNode, unsigned int out)
virtual std::vector< NodeInput > & getInputs ()
virtual int translateInput (std::string inputName)
virtual int translateOutput (std::string inputName)
virtual void rt_assert (bool cond, std::string message="", char *_file="unknown", int _line=0)
virtual void construct_assert (bool cond, std::string message="", char *_file="unknown", int _line=0)
virtual void throw_error (bool send_ptr, std::string message, char *_file, int _line)

Protected Attributes

int m_activationID
int m_exploitationID
int m_last_exploitation
int m_behaviorID
FD::ObjectRef m_exploitationValue
int processCount
std::vector< OutputCacheInfo > outputs
std::vector< InputCacheInfo > inputsCache
bool inOrder
std::string name
std::vector< NodeInput > inputs
std::vector< std::string > outputNames
ParameterSet parameters
UINode * uinode
AtomicCounter ref_count

Private Member Functions

float computeMeanValue (vector< float >data)
float computeStdDev (vector< float >data)
bool findWallInData (std::vector< float > angleBeta, float gamma, float b, float &distWall, float &angularCorrection)
void getInitialDistWalls (std::vector< int >laserReading, float &aLeft, float &aRight)
void detectWalls (std::vector< int >laserReading, bool &wallLeft, float &distWallLeft, float &angularCorrectionLeft, bool &wallRight, float &distWallRight, float &angularCorrectionRight, bool toLog)
float lookupZValue (float degreeConfidence)
int speedValue (float angularCorrection)

Private Attributes

int laserID
int rotationID
int velocityID
int m_max_velocity
int m_min_velocity
int m_max_rotation
int m_nb_speed_value
std::vector< int > m_velocity_chart
std::vector< int > m_rotation_chart
std::vector< int > m_angle_chart
int m_max_dist_wall
int m_min_dist_wall
int m_dist_center
int m_dist_detection
int m_angular_correction
int m_angular_treshold
int m_range_begin
int m_range_end
int m_nbLaserSample
float m_laser_increment
int m_laser_range
int m_range_increment
int m_begin_right
int m_end_right
int m_begin_left
int m_end_left
float m_degree_confidence
float m_estimator
float m_stdDeviation
int m_n
float m_maxStdDevBeta

Static Private Attributes

static const float RAD_DEGREE = 57.2958
static const float PI = 3.14159
static const float PI_2 = 1.5708
static const float PI_4 = 0.785398

Friends

friend std::ostream & operator<< (std::ostream &out, const Object &obj)

Constructor & Destructor Documentation

RobotFlow::FollowWall::FollowWall string  nodeName,
ParameterSet  params
[inline]
 


Member Function Documentation

static bool RobotFlow::Behavior::behavior_exists const std::string &  name  )  [static, inherited]
 

Verifies if a behavior is registered.

Parameters:
name The behavior name that we are looking for.
Return values:
bool Returns true if the behavior name is registered, else returns false.

void RobotFlow::Behavior::calculate int  output_id,
int  count,
FD::Buffer out
[virtual, inherited]
 

This function is required by the BufferedNode class. That's the core processing function called by the overflow engine. This function takes care to update the exploitation value and verifies if the Behavior is activated before calling calculate_behavior.

Parameters:
output_id The output identification we are interested in.
count The iteration number we are calculating.
out The output buffer where th put the result.

Implements FD::BufferedNode.

Reimplemented in RobotFlow::Grasp.

void RobotFlow::FollowWall::calculate_behavior int  output_id,
int  count,
Buffer out
[inline, virtual]
 

calculate_behavior is a pure virtual function. It should be implemented in every derived class. Processing of the behaviors is done inside this function.

Parameters:
output_id The output identification we are interested in.
count The iteration number we are calculating.
out The output buffer where th put the result.

Implements RobotFlow::Behavior.

float RobotFlow::FollowWall::computeMeanValue vector< float >  data  )  [inline, private]
 

float RobotFlow::FollowWall::computeStdDev vector< float >  data  )  [inline, private]
 

void RobotFlow::FollowWall::detectWalls std::vector< int >  laserReading,
bool &  wallLeft,
float &  distWallLeft,
float &  angularCorrectionLeft,
bool &  wallRight,
float &  distWallRight,
float &  angularCorrectionRight,
bool  toLog
[inline, private]
 

static int RobotFlow::Behavior::find_behavior const std::string &  name  )  [static, inherited]
 

Translation of the behavior name into the behavior identification number.

Parameters:
name The behavior name that we are looking for.
Return values:
int the behavior identification number.

bool RobotFlow::FollowWall::findWallInData std::vector< float >  angleBeta,
float  gamma,
float  b,
float &  distWall,
float &  angularCorrection
[inline, private]
 

int RobotFlow::Behavior::get_behavior_id  )  [inherited]
 

Get the behavior id

Return values:
int The behavior id

static int RobotFlow::Behavior::get_behavior_size  )  [inline, static, inherited]
 

Returns the number of registered behaviors.

Return values:
int The number of registered behaviors.

Vector< string > & RobotFlow::Behavior::get_behaviors  )  [static, inherited]
 

Returns the data structure containing the registered behavior names. This function should not be used by derived classes.

Return values:
std::vector<std::string>& The data structure containing the registered behavior names.

void RobotFlow::FollowWall::getInitialDistWalls std::vector< int >  laserReading,
float &  aLeft,
float &  aRight
[inline, private]
 

float RobotFlow::FollowWall::lookupZValue float  degreeConfidence  )  [inline, private]
 

static int RobotFlow::Behavior::register_behavior const std::string &  name  )  [static, inherited]
 

This function is called by the REGISTER_BEHAVIOR macro. It should not be called from anything else.

Parameters:
name The name of the behavior we want to register.
Return values:
int The identification number of the new behavior.

static void RobotFlow::Behavior::remove_behavior const std::string &  name  )  [static, inherited]
 

Remove the behavior

Parameters:
name The behavior name that we want remove

int RobotFlow::FollowWall::speedValue float  angularCorrection  )  [inline, private]
 


Field Documentation

int RobotFlow::FollowWall::laserID [private]
 

int RobotFlow::Behavior::m_activationID [protected, inherited]
 

activation vector or bool input

std::vector<int> RobotFlow::FollowWall::m_angle_chart [private]
 

int RobotFlow::FollowWall::m_angular_correction [private]
 

int RobotFlow::FollowWall::m_angular_treshold [private]
 

int RobotFlow::FollowWall::m_begin_left [private]
 

int RobotFlow::FollowWall::m_begin_right [private]
 

int RobotFlow::Behavior::m_behaviorID [protected, inherited]
 

behavior identification number

float RobotFlow::FollowWall::m_degree_confidence [private]
 

int RobotFlow::FollowWall::m_dist_center [private]
 

int RobotFlow::FollowWall::m_dist_detection [private]
 

int RobotFlow::FollowWall::m_end_left [private]
 

int RobotFlow::FollowWall::m_end_right [private]
 

float RobotFlow::FollowWall::m_estimator [private]
 

int RobotFlow::Behavior::m_exploitationID [protected, inherited]
 

exploitation output

FD::ObjectRef RobotFlow::Behavior::m_exploitationValue [protected, inherited]
 

last exploitation value

float RobotFlow::FollowWall::m_laser_increment [private]
 

int RobotFlow::FollowWall::m_laser_range [private]
 

int RobotFlow::Behavior::m_last_exploitation [protected, inherited]
 

last exploitation output id

int RobotFlow::FollowWall::m_max_dist_wall [private]
 

int RobotFlow::FollowWall::m_max_rotation [private]
 

int RobotFlow::FollowWall::m_max_velocity [private]
 

float RobotFlow::FollowWall::m_maxStdDevBeta [private]
 

int RobotFlow::FollowWall::m_min_dist_wall [private]
 

int RobotFlow::FollowWall::m_min_velocity [private]
 

int RobotFlow::FollowWall::m_n [private]
 

int RobotFlow::FollowWall::m_nb_speed_value [private]
 

int RobotFlow::FollowWall::m_nbLaserSample [private]
 

int RobotFlow::FollowWall::m_range_begin [private]
 

int RobotFlow::FollowWall::m_range_end [private]
 

int RobotFlow::FollowWall::m_range_increment [private]
 

std::vector<int> RobotFlow::FollowWall::m_rotation_chart [private]
 

float RobotFlow::FollowWall::m_stdDeviation [private]
 

std::vector<int> RobotFlow::FollowWall::m_velocity_chart [private]
 

const float RobotFlow::FollowWall::PI = 3.14159 [static, private]
 

const float RobotFlow::FollowWall::PI_2 = 1.5708 [static, private]
 

const float RobotFlow::FollowWall::PI_4 = 0.785398 [static, private]
 

const float RobotFlow::FollowWall::RAD_DEGREE = 57.2958 [static, private]
 

int RobotFlow::FollowWall::rotationID [private]
 

int RobotFlow::FollowWall::velocityID [private]
 


The documentation for this class was generated from the following file:
Generated on Wed Oct 5 14:36:26 2005 for RobotFlow by  doxygen 1.4.4