Navigation

A CrowdBeNavigation is a behavior providing reactive navigation abilities to an Entity. The Navigation Behavior is needed when using a Go To Behavior but it can also be used alone, on crowd entities that need to avoid other entities that move or on crowd entities that are moved by an external field.
 
A Navigation Behavior in the behavior editor
 
Creating a Navigation Behavior can be performed through the following options:
  • Behavior Editor / Behavior Library: 
  • Crowd Menu: Crowd Behaviors / Behaviors / CrowdBeNavigation Node
  • MEL command: glmCrowdBeNavigationCmd;

 

Configuration

A Navigation Behavior defines the following specific attributes. To get more information about shared parameters, see here
 

Navigation Attributes

Navigation attributes of a navigation behavior
 
Random Speed Min/Max (in Maya Units/sec) the navigation speed of each crowd entity will be set randomly between these two values, thus providing diversity on a per particle level. The navigation speed is influenced by the random seed of the Crowd Manager. Notice that the navigation speed can also be defined through a per-particle attribute, Use Speed PP (see below)
Acceleration/Deceleration the maximum acceleration or deceleration allowed for navigation of the corresponding Entities
Entity Boldness The boldness attribute of an entity controls how much an entity takes his neighbors into account in the navigation algorithm. The greater the boldness the less the entity will try to avoid its neighbors, simulating a "bold" behavior. Notice that the boldness of each entity can also be defined through a per-particle attribute, Use Boldness PP (see below)
Time To Turn Around

the time it takes to do a 180 degrees. This parameter defines the maximum angular velocity of a navigating entity and can be used to facilitate (lower value) or make it more difficult (greater value) to turn.

Avoidance Type
Avoidance type of a navigation behavior

Three different collision avoidance algorithms are available in the Navigation Behavior. For more information about these navigators please refer to the related references:

  • Extrapolation : this avoidance algorithm tries to predict the future position of the neighbors of an agent based on their current position and speed and then adapts the agent's speed and direction in order to avoid collision with surrounding entities and obstacles while still navigating towards a goal.
     
  • Social Force : this avoidance algorithm computes forces between an agent and its neighbors as well as the surrounding obstacles and changes the speed of the agent according to these forces.
     
  • RVO : this avoidance algorithm takes into account the reactive behavior of the other agents by implicitly assuming that the other agents make similar collision-avoidance reasoning.
2 [LamDon04] F. Lamarche and S. Donikian, "Crowd of Virtual Humans: a New Approach for Real Time Navigation in Complex and Structured Environments", 2004.
3 [HelMol95] D. Helbing and P. Molnar, "Social force model for pedestrian dynamics", 1995.
4 [BerLinMan08] J. Van den Berg, M. Lin and D. Manosha, "Reciprocal Velocity Obstacles for Real-Time Multi-Agent Navigation", 2008.
 

Per Particle Attributes

 
Per particle attributes of a navigation behavior
 
Use Speed PP Name of the float per-particle field of the relative particle system, containing the maximum speed of the Entity. If none is given, a random value between Random Speed Min and Random Speed Max will be used (see above)
Use Boldness PP Name of the float per-particle field of the relative particle system, containing the boldness of the Entity. If none is given, the value specified by the Entity Boldness parameter will be used (see above).

Advanced Attributes

This layout contains advanced parameters intended mainly for advanced users.

Advanced attributes of a navigation behavior
 
Update Period (in frames)

It determines the number of frames to wait before updating the navigation (1 meaning that the navigation is updated at each frame). Increasing this parameter also increases performance but the navigation will be less precise.

Max Perceived Objects Count Maximum number of perceived objects (entities and obstacles). Increasing this parameter decreases performance but may be necessary in dense environments.
Min Extrapolation Time, Max Extrapolation Time This parameter is specific to the Extrapolation algorithm. The actual extrapolation time is computed as a weighted average between the two parameters, using the boldness as weight (i.e.  Extrapolation Time = Boldness * Min Extrapolation Time + (1 - Boldness) * Max Extrapolation Time ). This parameter represents the time interval used to predict positions of nearby entities based on their current position and speed.
Obstacles Penalty This parameter is specific to the Extrapolation algorithm. It determines how far away from obstacles the entity will try to navigate. Increasing this parameter will make the entity try to stay further away from obstacles.
Entities Penalty This parameter is specific to the Extrapolation algorithm. It determines how far away from other entities the current entity will try to navigate. Increasing this parameter will make the entity try to stay further away from other entities.
Repulsion Linear Factor This parameter is specific to the Social Force algorithm. It linearly increases the repulsion force.
Repulsion Inverse Exponential Factor This parameter is specific to the Social Force algorithm. When the inverse of this factor increases, the repulsion force increases exponentially.
Collision Penalty This parameter is specific to the RVO algorithm. It represents the penalty applied linearly to the minimum time to collision.
Orientation Speed Threshold Speed threshold for adapting orientation. When the speed of the entity is lower than this value, its orientation is not adapted.
Orientation Low Pass Filter Number of low pass filter samples for adapting orientation. It represents the number of frames used for smoothing the orientation corrections applied to the entities (it's used to avoid orientation jitter).
 

Velocity Sampling

These parameters are specific to the Extrapolation and RVO algorithms. The two algorithms work by choosing the best velocity among a sample of velocities (the one with the lowest penalty). The samples are built with default penalties defined with the parameters below. 

Per particle attributes of a navigation behavior
 
Acceleration Penalty penalty for accelerating
Deceleration Penalty penalty for decelerating
Left Turn Penalty penalty for making a left turn
Right Turn Penalty penalty for making a right turn
Nb Samples Number of Velocity Samples. Increasing the value of this parameter can decrease performance.