SUMO - Simulation of Urban MObility
MSPModel_Striping Class Reference

The pedestrian following model. More...

#include <MSPModel_Striping.h>

Inheritance diagram for MSPModel_Striping:
Inheritance graph
Collaboration diagram for MSPModel_Striping:
Collaboration graph

Data Structures

class  by_xpos_sorter
 sorts the persons by position on the lane. If dir is forward, higher x positions come first. More...
 
class  lane_by_numid_sorter
 
class  MovePedestrians
 
struct  NextLaneInfo
 
struct  Obstacle
 information regarding surround Pedestrians (and potentially other things) More...
 
class  PState
 Container for pedestrian state and individual position update function. More...
 
class  walkingarea_path_sorter
 
struct  WalkingAreaPath
 

Public Member Functions

PedestrianStateadd (MSPerson *person, MSPerson::MSPersonStage_Walking *stage, SUMOTime now)
 register the given person as a pedestrian More...
 
bool blockedAtDist (const MSLane *lane, SUMOReal distToCrossing, std::vector< const MSPerson * > *collectBlockers)
 whether a pedestrian is blocking the crossing of lane at offset distToCrossing More...
 
void cleanupHelper ()
 remove state at simulation end More...
 
 MSPModel_Striping (const OptionsCont &oc, MSNet *net)
 Constructor (it should not be necessary to construct more than one instance) More...
 
 ~MSPModel_Striping ()
 

Static Public Member Functions

static bool canTraverse (int dir, const ConstMSEdgeVector &route)
 return whether the route may traversed with the given starting direction More...
 
static void cleanup ()
 remove state at simulation end More...
 
static MSPModelgetModel ()
 

Static Public Attributes

static const int BACKWARD
 
static const int FORWARD
 
static const SUMOReal SAFETY_GAP
 
static const SUMOReal SIDEWALK_OFFSET
 the offset for computing person positions when walking on edges without a sidewalk More...
 
static const int UNDEFINED_DIRECTION
 
static SUMOReal stripeWidth
 model parameters More...
 
static SUMOReal dawdling
 
static SUMOTime jamTime
 
static const SUMOReal LOOKAHEAD_SAMEDIR
 
static const SUMOReal LOOKAHEAD_ONCOMING
 
static const SUMOReal LATERAL_PENALTY
 
static const SUMOReal OBSTRUCTED_PENALTY
 
static const SUMOReal INAPPROPRIATE_PENALTY
 
static const SUMOReal ONCOMING_CONFLICT_PENALTY
 
static const SUMOReal OBSTRUCTION_THRESHOLD
 
static const SUMOReal SQUEEZE
 
static const SUMOReal BLOCKER_LOOKAHEAD
 
static const SUMOReal RESERVE_FOR_ONCOMING_FACTOR
 
static const SUMOReal MAX_WAIT_TOLERANCE
 
static const SUMOReal LATERAL_SPEED_FACTOR
 
static const SUMOReal MIN_STARTUP_DIST
 

Protected Types

typedef std::map< const MSLane *, Pedestrians, lane_by_numid_sorterActiveLanes
 
typedef std::map< const MSLane *, Obstacles, lane_by_numid_sorterNextLanesObstacles
 
typedef std::vector< ObstacleObstacles
 
typedef std::vector< PState * > Pedestrians
 
typedef std::map< std::pair< const MSLane *, const MSLane * >, WalkingAreaPathWalkingAreaPaths
 

Protected Member Functions

const ActiveLanesgetActiveLanes ()
 
void moveInDirection (SUMOTime currentTime, std::set< MSPerson * > &changedLane, int dir)
 move all pedestrians forward and advance to the next lane if applicable More...
 
void moveInDirectionOnLane (Pedestrians &pedestrians, const MSLane *lane, SUMOTime currentTime, std::set< MSPerson * > &changedLane, int dir)
 move pedestrians forward on one lane More...
 

Private Member Functions

const ObstaclesgetNextLaneObstacles (NextLanesObstacles &nextLanesObs, const MSLane *lane, const MSLane *nextLane, int stripes, SUMOReal nextLength, int nextDir, SUMOReal currentLength, int currentDir)
 
PedestriansgetPedestrians (const MSLane *lane)
 retrieves the pedestian vector for the given lane (may be empty) More...
 

Static Private Member Functions

static void addCloserObstacle (Obstacles &obs, SUMOReal x, int stripe, int numStripes, const std::string &id, SUMOReal width, int dir)
 
static int connectedDirection (const MSLane *from, const MSLane *to)
 returns the direction in which these lanes are connectioned or 0 if they are not More...
 
static void DEBUG_PRINT (const Obstacles &obs)
 
static Obstacles getNeighboringObstacles (const Pedestrians &pedestrians, int egoIndex, int stripes)
 
static NextLaneInfo getNextLane (const PState &ped, const MSLane *currentLane, const MSLane *prevLane)
 computes the successor lane for the given pedestrian and sets the link as well as the direction to use on the succesor lane More...
 
static const MSLanegetNextWalkingArea (const MSLane *currentLane, const int dir, MSLink *&link)
 return the next walkingArea in the given direction More...
 
static void initWalkingAreaPaths (const MSNet *net)
 
static int numStripes (const MSLane *lane)
 return the maximum number of pedestrians walking side by side More...
 

Private Attributes

ActiveLanes myActiveLanes
 store of all lanes which have pedestrians on them More...
 
MovePedestriansmyCommand
 the MovePedestrians command that is registered More...
 
int myNumActivePedestrians
 the total number of active pedestrians More...
 

Static Private Attributes

static WalkingAreaPaths myWalkingAreaPaths
 store for walkinArea elements More...
 
static Pedestrians noPedestrians
 empty pedestrian vector More...
 

Friends

class GUIPerson
 

Detailed Description

The pedestrian following model.

Definition at line 58 of file MSPModel_Striping.h.

Member Typedef Documentation

Definition at line 144 of file MSPModel_Striping.h.

Definition at line 146 of file MSPModel_Striping.h.

typedef std::vector<Obstacle> MSPModel_Striping::Obstacles
protected

Definition at line 145 of file MSPModel_Striping.h.

typedef std::vector<PState*> MSPModel_Striping::Pedestrians
protected

Definition at line 142 of file MSPModel_Striping.h.

typedef std::map<std::pair<const MSLane*, const MSLane*>, WalkingAreaPath> MSPModel_Striping::WalkingAreaPaths
protected

Definition at line 147 of file MSPModel_Striping.h.

Constructor & Destructor Documentation

MSPModel_Striping::MSPModel_Striping ( const OptionsCont oc,
MSNet net 
)
MSPModel_Striping::~MSPModel_Striping ( )

Definition at line 122 of file MSPModel_Striping.cpp.

Member Function Documentation

PedestrianState * MSPModel_Striping::add ( MSPerson person,
MSPerson::MSPersonStage_Walking stage,
SUMOTime  now 
)
virtual
void MSPModel_Striping::addCloserObstacle ( Obstacles obs,
SUMOReal  x,
int  stripe,
int  numStripes,
const std::string &  id,
SUMOReal  width,
int  dir 
)
staticprivate

Definition at line 570 of file MSPModel_Striping.cpp.

References MSPModel::BACKWARD, and MSPModel::FORWARD.

Referenced by getActiveLanes(), and getNextLaneObstacles().

bool MSPModel_Striping::blockedAtDist ( const MSLane lane,
SUMOReal  distToCrossing,
std::vector< const MSPerson * > *  collectBlockers 
)
virtual
bool MSPModel::canTraverse ( int  dir,
const ConstMSEdgeVector route 
)
staticinherited

return whether the route may traversed with the given starting direction

Definition at line 91 of file MSPModel.cpp.

References MSPModel::BACKWARD, MSPModel::FORWARD, MSEdge::getFromJunction(), and MSEdge::getToJunction().

Referenced by MSPModel_Striping::PState::PState().

void MSPModel::cleanup ( )
staticinherited

remove state at simulation end

Definition at line 81 of file MSPModel.cpp.

References MSPModel::cleanupHelper(), and MSPModel::myModel.

Referenced by MSNet::clearAll().

void MSPModel_Striping::cleanupHelper ( )
virtual

remove state at simulation end

Reimplemented from MSPModel.

Definition at line 178 of file MSPModel_Striping.cpp.

References myActiveLanes, myNumActivePedestrians, and myWalkingAreaPaths.

int MSPModel_Striping::connectedDirection ( const MSLane from,
const MSLane to 
)
staticprivate

returns the direction in which these lanes are connectioned or 0 if they are not

Definition at line 196 of file MSPModel_Striping.cpp.

References MSPModel::BACKWARD, MSPModel::FORWARD, MSLinkContHelper::getConnectingLink(), and MSPModel::UNDEFINED_DIRECTION.

Referenced by getActiveLanes(), and getNextLane().

void MSPModel_Striping::DEBUG_PRINT ( const Obstacles obs)
staticprivate
MSPModel * MSPModel::getModel ( )
staticinherited
MSPModel_Striping::NextLaneInfo MSPModel_Striping::getNextLane ( const PState ped,
const MSLane currentLane,
const MSLane prevLane 
)
staticprivate
const MSLane * MSPModel_Striping::getNextWalkingArea ( const MSLane currentLane,
const int  dir,
MSLink *&  link 
)
staticprivate

return the next walkingArea in the given direction

Definition at line 417 of file MSPModel_Striping.cpp.

References MSPModel::FORWARD, MSLane::getIncomingLanes(), MSLink::getLane(), and MSLane::getLinkCont().

Referenced by getActiveLanes(), and getNextLane().

MSPModel_Striping::Pedestrians & MSPModel_Striping::getPedestrians ( const MSLane lane)
private

retrieves the pedestian vector for the given lane (may be empty)

Definition at line 166 of file MSPModel_Striping.cpp.

References myActiveLanes, and noPedestrians.

Referenced by blockedAtDist(), getActiveLanes(), and getNextLaneObstacles().

void MSPModel_Striping::moveInDirectionOnLane ( Pedestrians pedestrians,
const MSLane lane,
SUMOTime  currentTime,
std::set< MSPerson * > &  changedLane,
int  dir 
)
protected

move pedestrians forward on one lane

Definition at line 674 of file MSPModel_Striping.cpp.

References DEBUG_PRINT(), DEBUGCOND, MSPModel_Striping::NextLaneInfo::dir, DIST_OVERLAP, MSPModel_Striping::PState::distanceTo(), MSPModel_Striping::PState::distToLaneEnd(), MSPModel_Striping::WalkingAreaPath::from, MSGlobals::gCheck4Accidents, gDebugFlag1, MSPerson::MSPersonStage_Walking::getArrivalPos(), MSTransportable::Stage::getDestination(), MSTransportable::Stage::getDestinationStop(), MSLane::getEdge(), Named::getID(), MSTransportable::getID(), MSPModel_Striping::PState::getImpatience(), MSPModel_Striping::PState::getLength(), MSLane::getLength(), MSPerson::MSPersonStage_Walking::getMaxSpeed(), MSPModel_Striping::PState::getMinGap(), getNeighboringObstacles(), getNextLane(), getNextLaneObstacles(), MSPModel_Striping::NextLaneInfo::lane, MSPModel_Striping::WalkingAreaPath::length, MSPModel_Striping::NextLaneInfo::link, LOOKAHEAD_ONCOMING, LOOKAHEAD_SAMEDIR, MSPModel_Striping::PState::mergeObstacles(), MSPModel_Striping::PState::myAmJammed, MSPModel_Striping::PState::myDir, MSPModel_Striping::PState::myLane, MSPModel_Striping::PState::myNLI, MSPModel_Striping::PState::myPerson, MSPModel_Striping::PState::myRelX, MSPModel_Striping::PState::myStage, MSPModel_Striping::PState::myWaitingToEnter, MSPModel_Striping::PState::myWalkingAreaPath, NUMERICAL_EPS, numStripes(), MSLink::opened(), MSPModel_Striping::PState::otherStripe(), SIMTIME, MSPModel_Striping::PState::stripe(), SUMOReal, time2string(), MSPModel_Striping::PState::walk(), and WRITE_WARNING.

Referenced by moveInDirection().

int MSPModel_Striping::numStripes ( const MSLane lane)
staticprivate

Friends And Related Function Documentation

friend class GUIPerson
friend

Definition at line 60 of file MSPModel_Striping.h.

Field Documentation

const SUMOReal MSPModel_Striping::BLOCKER_LOOKAHEAD
static

Definition at line 114 of file MSPModel_Striping.h.

Referenced by blockedAtDist().

SUMOReal MSPModel_Striping::dawdling
static

Definition at line 85 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping(), and MSPModel_Striping::PState::walk().

const SUMOReal MSPModel_Striping::INAPPROPRIATE_PENALTY
static

Definition at line 102 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::walk().

SUMOTime MSPModel_Striping::jamTime
static

Definition at line 88 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping(), and MSPModel_Striping::PState::walk().

const SUMOReal MSPModel_Striping::LATERAL_PENALTY
static

Definition at line 96 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::walk().

const SUMOReal MSPModel_Striping::LATERAL_SPEED_FACTOR
static

Definition at line 123 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::walk().

const SUMOReal MSPModel_Striping::LOOKAHEAD_ONCOMING
static

Definition at line 93 of file MSPModel_Striping.h.

Referenced by moveInDirectionOnLane(), and MSPModel_Striping::PState::walk().

const SUMOReal MSPModel_Striping::LOOKAHEAD_SAMEDIR
static

Definition at line 91 of file MSPModel_Striping.h.

Referenced by moveInDirectionOnLane(), and MSPModel_Striping::PState::walk().

const SUMOReal MSPModel_Striping::MAX_WAIT_TOLERANCE
static

Definition at line 120 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::getImpatience().

const SUMOReal MSPModel_Striping::MIN_STARTUP_DIST
static

Definition at line 126 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::walk().

ActiveLanes MSPModel_Striping::myActiveLanes
private

store of all lanes which have pedestrians on them

Definition at line 398 of file MSPModel_Striping.h.

Referenced by add(), cleanupHelper(), getActiveLanes(), getPedestrians(), and moveInDirection().

MovePedestrians* MSPModel_Striping::myCommand
private

the MovePedestrians command that is registered

Definition at line 392 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping().

int MSPModel_Striping::myNumActivePedestrians
private

the total number of active pedestrians

Definition at line 395 of file MSPModel_Striping.h.

Referenced by add(), cleanupHelper(), and moveInDirection().

MSPModel_Striping::WalkingAreaPaths MSPModel_Striping::myWalkingAreaPaths
staticprivate

store for walkinArea elements

Definition at line 401 of file MSPModel_Striping.h.

Referenced by cleanupHelper(), initWalkingAreaPaths(), and MSPModel_Striping::PState::moveToNextLane().

MSPModel_Striping::Pedestrians MSPModel_Striping::noPedestrians
staticprivate

empty pedestrian vector

Definition at line 404 of file MSPModel_Striping.h.

Referenced by getPedestrians().

const SUMOReal MSPModel_Striping::OBSTRUCTED_PENALTY
static

Definition at line 99 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::walk().

const SUMOReal MSPModel_Striping::OBSTRUCTION_THRESHOLD
static

Definition at line 108 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::walk().

const SUMOReal MSPModel_Striping::ONCOMING_CONFLICT_PENALTY
static

Definition at line 105 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::walk().

const SUMOReal MSPModel_Striping::RESERVE_FOR_ONCOMING_FACTOR
static

Definition at line 117 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::walk().

const SUMOReal MSPModel::SAFETY_GAP
staticinherited

Definition at line 78 of file MSPModel.h.

Referenced by blockedAtDist(), and MSLink::writeApproaching().

const SUMOReal MSPModel::SIDEWALK_OFFSET
staticinherited

the offset for computing person positions when walking on edges without a sidewalk

Definition at line 81 of file MSPModel.h.

Referenced by MSPModel_NonInteracting::PState::getPosition(), MSPerson::MSPersonStage_Driving::getPosition(), MSPerson::MSPersonStage_Waiting::getPosition(), and GUINet::initGUIStructures().

const SUMOReal MSPModel_Striping::SQUEEZE
static

Definition at line 111 of file MSPModel_Striping.h.

Referenced by MSPModel_Striping::PState::otherStripe().

const int MSPModel::UNDEFINED_DIRECTION
staticinherited

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