libmove3d-planners
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Member Functions | List of all members
HRICS::MultiAgentCell Class Reference

Plannar HRI Cell. More...

#include <HRICS_MultiAgentGrid.hpp>

Inheritance diagram for HRICS::MultiAgentCell:
API::TwoDCell API::BaseCell

Classes

struct  AgentInCell
 structure defining the data for an agent in a cell More...
 
class  CylinderInCell
 
class  MetaAgentInCell
 

Public Member Functions

 MultiAgentCell (int i, Eigen::Vector2i coord, Eigen::Vector2d corner, MultiAgentGrid *grid)
 
AgentInCellgetAgentAt (unsigned int i)
 getAgentAt More...
 
unsigned int getAgentNumber ()
 
MultiAgentGrid::MetaAgentInGrid::s_ptr getMetaFromGrid (unsigned int a)
 
void resetData (void)
 reset data as for a new cell, set agents list according to the grid ones.
 
void setDistance (unsigned int index, double value)
 
void setAltDistance (unsigned int index, double value, MultiAgentCell *alt_origin, MultiAgentCell *previous_cell=0)
 
double getDistance (unsigned int index)
 
double getAltDistance (unsigned int index, MultiAgentCell *alt_origin)
 
void setDistanceIsComputed (unsigned int index)
 
void unsetDistanceIsComputed (unsigned int index)
 
bool isDistanceComputed (unsigned int index)
 
double getDistanceAny (unsigned int agent, MultiAgentCell *other)
 get distance either using getDistance or getAltDistance, on this or other according to the origins set does not read tempDist returns inf if not found
 
std::vector< MultiAgentCell * > getTrajAny (unsigned int agent, MultiAgentCell *origin)
 
std::vector< MultiAgentCell * > getAltTraj (unsigned int agent, MultiAgentCell *alt_origin, bool reverse=false)
 returns the shortest path FROM alt_origin TO this except if reverse is set to true, its the other way around
 
bool getOpen ()
 
void setOpen ()
 
bool getClosed ()
 
void setClosed ()
 
double getTempColor ()
 
void setTempColor (double c)
 
void resetExplorationStatus ()
 
std::vector< Eigen::Vector2d,
Eigen::aligned_allocator
< Eigen::Vector2d > > & 
getVectorTraj (unsigned int index)
 
void setVectorTraj (unsigned int index, std::vector< Eigen::Vector2d, Eigen::aligned_allocator< Eigen::Vector2d > > &vec_traj)
 
std::vector< MultiAgentCell * > & getTraj (unsigned int index)
 
void setTraj (unsigned int index, std::vector< MultiAgentCell * > &traj)
 
double getTempDist (void)
 
void setTempDist (double v)
 
double getTempEstim (void)
 
void setTempEstim (double v)
 
MultiAgentCellgetTempCameFrom (void)
 
void setTempCameFrom (MultiAgentCell *f)
 
MultiAgentCellgetAltCameFrom (unsigned int index, MultiAgentCell *alt_origin)
 
bool isAccessible (unsigned int index)
 
void setAccessible (unsigned int index, bool v)
 
bool isAccessibilityComputed (unsigned int index)
 
void setReachable (unsigned int index, bool b)
 
bool isReachable (unsigned int index)
 
bool isBoundary (unsigned int index)
 
bool isFrontier (unsigned int a1, unsigned int a2)
 
bool checkIsInCollision (unsigned int agent_this, MultiAgentCell *other, unsigned int agent_other)
 
std::vector
< std::tr1::shared_ptr
< FrontierCells > > 
createAllRealFrontiersFor (unsigned int a1, unsigned int a2)
 calls createRealFrontierFor(a1,a2,meta) for each meta frontier in which a1 and a2 are concerned
 
FrontierPtr createRealFrontierFor (unsigned int a1, unsigned int a2, MetaFrontierPtr mfrontier)
 creates and set a real frontier as a specialization of the given MetaFrontier, for agents a1 and a2 returns this frontier
 
std::vector< MetaFrontierPtr > & getMetaFrontier (unsigned int a1, unsigned int a2)
 
std::vector< MetaFrontierPtr > & getMetaFrontier (unsigned int a1, MultiAgentGrid::MetaAgentInGrid::s_ptr m2)
 
FrontierPtr getRealFrontier (unsigned int a1, unsigned int a2, MetaFrontierPtr mfrontier)
 returns the real Frontier that is a specification of the MetaFrontier mfrontier returns empty ptr if not set More...
 
void setBlankCost ()
 
Eigen::Vector2i getCoord ()
 
void computeAccessibility (unsigned int index_agent)
 test if there is a collision with a BB (the cylinders) for the agent referenced in the the MultiAgentGrid as at given index (must not change)
 
double computeCost ()
 compute move cost for an agent, according to it's speed. More...
 
bool computeBestRobotPos ()
 compute best robot pos
 
bool checkMetaAgent (unsigned int index)
 return true if meta agent is OK, false if it have been changed
 
void resetAccessibility ()
 reset the reacheability computing for all agents
 
void resetAccessibility (unsigned int index)
 reset reachability for agent at index
 
void resetDistances (unsigned int index)
 
void resetAllDistances (void)
 
void resetTraj ()
 reset the Trajectories computing
 
void resetTraj (unsigned int index)
 reset trajectories computing related data for agent at index
 
std::vector< MultiAgentCell * > getNeighbors (unsigned int index)
 find the direct neighbors of this cell (used when computing distance propagation)
 
std::vector< MultiAgentCell * > findNeighborsInRange (unsigned int agent, double range)
 
double computeDist (MultiAgentCell *neighCell)
 compute distance between two cells
 
void addPoint (double Rz)
 add a point to the random vector in order to draw it (the red arrows)
 
std::vector< MultiAgentCell * > getCrown (double min, double max)
 return the crown arround the cell taking the min and max value
 
std::tr1::shared_ptr
< MetaFrontierCells
addMetaFrontier (MultiAgentCell *other, bool over_obstacle, unsigned int agent_this, unsigned int agent_other, double dist, bool check_exists=false)
 
std::tr1::shared_ptr
< MetaFrontierCells
addMetaFrontier (MultiAgentCell *other, bool over_obstacle, MetaAgentInCell::s_ptr agent_this, MetaAgentInCell::s_ptr agent_other, double dist, bool check_exists=false)
 
std::tr1::shared_ptr
< FrontierCells
addFrontierComplete (MultiAgentCell *other, bool over_obstacle, unsigned int agent_this, unsigned int agent_other, double dist, bool check_exists=false)
 
- Public Member Functions inherited from API::TwoDCell
EIGEN_MAKE_ALIGNED_OPERATOR_NEW TwoDCell ()
 Constructor of cell. More...
 
 TwoDCell (int i, Eigen::Vector2d corner, TwoDGrid *grid)
 
virtual ~TwoDCell ()
 Constructor of cell. More...
 
bool isInsideCell (Eigen::Vector2d point)
 Function is inside cell. More...
 
Eigen::Vector2d getCenter ()
 Function to get the center of the cell. More...
 
Eigen::Vector2d getCorner ()
 
Eigen::Vector2d getRandomPoint ()
 Random Point In ThreeDCell.
 
Eigen::Vector2d getCellSize ()
 Gets the cell size.
 
int getIndex ()
 
virtual void draw ()
 
bool operator== (TwoDCell otherCell)
 
- Public Member Functions inherited from API::BaseCell
virtual bool writeToXml (xmlNodePtr cur)
 
virtual bool readCellFromXml (xmlNodePtr cur)
 

Additional Inherited Members

- Protected Attributes inherited from API::TwoDCell
int _index
 
Eigen::Vector2d _corner
 
TwoDGrid_grid
 

Detailed Description

Plannar HRI Cell.

Member Function Documentation

double HRICS::MultiAgentCell::computeCost ( )

compute move cost for an agent, according to it's speed.

Parameters
index_agent
Returns
Todo:
use different weights for travel distance and duration

compute partial cost

AgentInCell* HRICS::MultiAgentCell::getAgentAt ( unsigned int  i)
inline

getAgentAt

Parameters
i
Returns
See Also
getAgentNumber()
FrontierPtr MultiAgentCell::getRealFrontier ( unsigned int  a1,
unsigned int  a2,
MetaFrontierPtr  mfrontier 
)

returns the real Frontier that is a specification of the MetaFrontier mfrontier returns empty ptr if not set

See Also
createRealFrontierFor()

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