World#

A rectangular region

Overloaded function.

  1. __init__(min_x: float, max_x: float, min_y: float, max_y: float) -> None

Creates a rectangular region

Parameters:
  • min_x – Minimal x coordinates

  • max_x – Maximal x coordinate

  • min_y – Minimal y coordinate

  • max_y – Maximal y coordinate

  1. __init__(p1: Vector2, p2: Vector2) -> None

Creates a rectangular region

Parameters:
  • p1 – Bottom-left corner

  • p2 – Top-right corner

Checks whether the bounding box includes a point

Parameters:

point – The point

Returns:

True if the bounding box contains the point.

Checks whether the bounding box covers another bounding box

Parameters:

other (navground.sim.BoundingBox) – The other bounding box

Returns:

True if the bounding box covers the other bounding box

Computes the distance to another bounding box

Parameters:

other (navground.sim.BoundingBox) – The other bounding box

Returns:

The distance

Creates a BoundingBox around a point.

Parameters:
  • position – The position

  • radius – The radius

Returns:

The bounding box.

Expands the bounding box by a vector

Parameters:

delta (navground.core.Vector2) – The expansion vector

Expands the bounding box to include another bounding box

Parameters:

other (navground.sim.BoundingBox) – The other bounding box

Convert a BoundingBox to a tuple of floats

Parameters:

bb – The bounding box

Returns:

The tuple <min_x, max_x, min_y, max_y>

Computes the intersection with another bounding box

Parameters:

other (navground.sim.BoundingBox) – The other bounding box

Returns:

The intersection or None if the bounding boxes do not overlap.

Checks whether it intersects with another bounding box

Parameters:

other (navground.sim.BoundingBox) – The other bounding box

Returns:

True if the two bounding boxes overlaps

Returns the YAML schema.

Returns:

The YAML schema

Sets the maximum x.

Parameters:
  • bb – The bounding box

  • value – The desired value

Returns:

A copy of the bounding box with the new bound.

Sets the maximum y.

Parameters:
  • bb – The bounding box

  • value – The desired value

Returns:

A copy of the bounding box with the new bound.

Sets the minimum x.

Parameters:
  • bb – The bounding box

  • value – The desired value

Returns:

A copy of the bounding box with the new bound.

Sets the minimum y.

Parameters:
  • bb – The bounding box

  • value – The desired value

Returns:

A copy of the bounding box with the new bound.

Convert a BoundingBox to a tuple of floats

Parameters:

bb – The bounding box

Returns:

The tuple <min_x, max_x, min_y, max_y>

Translates the bounding box by a vector

Parameters:

delta (navground.core.Vector2) – The displacement vector

Type:

Vector2

Returns the bottom-left corner

Type:

Vector2

Returns the top-right corner

Super-class that adds a unique ID to world entities.

This unique ID should not be fed to navigation behaviors, but only used internally by the simulation, for instance, to identify entities in a UI.

Determines if the entity has been in collision at least once since the given time.

Parameters:

time – The time

Returns:

True if been in collision since, False otherwise.

Type:

float

Returns the last collision time

A static obstacle with circular shape

Overloaded function.

  1. __init__(position: Vector2, radius: float) -> None

Constructs a new instance.

Parameters:
  • position – The position of the circle

  • radius – The radius of the circle

  1. __init__(disc: navground.core.Disc) -> None

Constructs a new instance.

Parameters:

disc – A disc

Dumps the object to a YAML-string.

Returns:

The YAML representation

Return type:

str

Load a obstacle from a YAML string.

Parameters:

value – the YAML string.

Returns:

The loaded obstacle or None if loading fails.

Return type:

Obstacle| None

Returns the json-schema

Returns:

json-schema

Return type:

dict[str, typing.Any]

Type:

navground.core.Disc

The disc.

A static wall.

Currently, only line segment are valid shapes of walls.

Overloaded function.

  1. __init__(p1: Vector2, p2: Vector2) -> None

Constructs a new instance.

Parameters:
  • p1 – The line segment start vertex

  • p2 – The line segment end vertex

  1. __init__(line: navground.core.LineSegment) -> None

Constructs a new instance.

Parameters:

ls – A line segment

Dumps the object to a YAML-string.

Returns:

The YAML representation

Return type:

str

Load a wall from a YAML string.

Parameters:

value – the YAML string.

Returns:

The loaded wall or None if loading fails.

Return type:

Wall| None

Returns the json-schema

Returns:

json-schema

Return type:

dict[str, typing.Any]

Type:

navground.core.LineSegment

The line segment

Rendering configuration: specified fields override navground.sim.ui.render_default_config for this world in rendering functions like navground.sim.ui.svg_for_world().

Constructs a new instance.

Actuate then controllers and perform collisions resolutions.

Parameters:

time_step – The duration of each time step

Adds an agent to the world.

Parameters:

agent – The agent

Adds a callback to be executed after each simulation step.

Parameters:

value – The callback

Overloaded function.

  1. add_obstacle(disc: navground.core.Disc) -> None

Adds a disc the world as a static obstacle

Parameters:

disc – The disc

  1. add_obstacle(obstacle: navground.sim.Obstacle) -> None

Adds a static obstacle the world

Parameters:

obstacle – The obstacle

Adds a random obstacles in the world bounding box

It iteratively try to sample a disc that is far enough of any other item. If the sampling fails, it counts as a try and the process stop after either enough obstacles have been added or enough tries performed.

Parameters:
  • number – The number of obstacles

  • min_radius – The minimum radius of obstacles

  • max_radius – The maximum radius of obstacles

  • margin – The minimal distance to other obstacles or agents. For agents, it’s additional to their safety margin.

  • max_tries – The maximum tries before terminating.

Overloaded function.

  1. add_wall(line: navground.core.LineSegment) -> None

Adds a line to the world as a wall

Parameters:

line – The line

  1. add_wall(wall: navground.sim.Wall) -> None

Adds a wall to the world

Parameters:

wall – The wall

Check if all agents are idle (i.e., their tasks are done and their controller are idle).

Returns:

True if all agents are idle

Check if all agents are idle or stuck (i.e., they are no moving because they task is done or they are deadlocked)

Returns:

True if all agents are idle or stuck

Remove all attributes

Clear collisions

Calculates the safety violation, i.e. the maximal penetration of a neighbor or obstacle in the safety margin of the agent.

Parameters:
  • agent – The agent

  • safety_margin – The safety margin. If not set, it will default to the agent’s behavior safety margin.

Returns:

The safety violation or 0 if no violation.

Copy the random generator from another world

Parameters:

world – The world

Dumps the object to a YAML-string.

Returns:

The YAML representation

Return type:

str

Gets the value of the specified attribute.

Parameters:

name – The name of the attribute

Returns:

The value of the attribute

Gets the agents that had a collision after now - duration.

Parameters:

duration – The duration

Returns:

The agents in collision.

Gets the agents that are in stuck since now - duration.

Parameters:

duration – The duration

Returns:

The agents in deadlock.

Gets all agents in a bounding box.

Parameters:

bb – The bounding box specified in world-fixed coordinates

Returns:

All agents that lie in a bounding box.

Gets all agents in a bounding box.

Parameters:
  • bb – The bounding box specified in world-fixed

  • ignore_lattice – Whether to ignore the lattice when computing neighbors

Returns:

All obstacles that lie in a bounding box

Find an entity by identifier

Parameters:

uid – The entity uid

Returns:

The entity or nullptr if not found.

Gets the periodic lattice.

Parameters:

axis – The axis (0 for x, 1 for y)

Returns:

An optional tuple of points that define a periodic lattice that wraps the selected axis.

The N=0, 1, or 2 vectors that define the lattice, e.g., {delta_x, -delta_x} if only the axis=0 lattice is set.

Parameters:
  • include_zero – Whether to include the zero vector

  • c8 – Whether to use 8-connectivity instead of 4-connectivity

Returns:

A vector of 2D vectors

Gets all walls in a bounding box.

Parameters:

bb – The bounding box specified in world-fixed

Returns:

All walls that lie in a bounding box

Gets all neighbor of an agent

Parameters:
  • agent – The agent

  • distance – The radius of the neighborhood

  • ignore_lattice – Whether to ignore the lattice when computing neighbors

Returns:

All neighbor within a circle of radius radius centered around the agent.

Gets all obstacles in a bounding box.

Parameters:

bb – The bounding box specified in world-fixed coordinates

Returns:

All obstacles that lie in a bounding box.

Checks if the specified attribute is set.

Parameters:

name – The name of the attribute

Returns:

True if the attribute is present.

Check if two entities are currently in collision

Parameters:
  • e1 – The first entity

  • e2 – The second entity

Returns:

True if they are in collision.

Searches for the index of an agent.

Parameters:

agent – The agent

Returns:

The index of this agent in the world agents list or null if not found.

Load a world from a YAML string.

Parameters:

value – the YAML string.

Returns:

The loaded world or None if loading fails.

Return type:

World| None

Record the collision between two entities

Parameters:
  • e1 – The first entity

  • e2 – The second entity

Clear all the callbacks

Updates the world for one or more time steps

Parameters:
  • steps – The number of steps

  • time_step – The duration of each time step

Updates the world until a condition is satisfied

Parameters:
  • condition – The condition

  • time_step – The duration of each time step

Returns the json-schema

Returns:

json-schema

Return type:

dict[str, typing.Any]

Set the value of a named attribute.

Parameters:
  • name – The name of the property

  • value – The desired value for the attribute

Sets the periodic lattice.

Parameters:
  • axis – The axis (0 for x, 1 for y)

  • value – An optional tuple of points that define a periodic lattice that wraps the selected axis. Pass none to unset the lattice and remove wrapping.

Sets a condition to terminate simulations

Parameters:

value – The desired condition.

Checks whether the simulation should terminate

Returns:

True if a termination condition is set and evaluates to true.

Snap agents’ twists smaller than epsilon to zero.

Parameters:

epsilon – The tolerance

Move agents so that they do not overlap anymore with themselves or with any obstacle

Parameters:
  • minimal_distance – The minimal distance

  • with_safety_margin – Whether the safety margin should be added to the minimal distance

  • max_iterations – The maximal number of iterations to perform.

Updates world for a single time step.

Parameters:

time_step – The time step

Updates world for a single time step without actuation and collisions resolution.

Parameters:
  • time_step – The time step

  • advance_time – Whenever to advance time too.

Type:

list[navground.sim.NativeAgent]

All agents in this world.

Type:

dict[str, Union[bool, int, float, str, Vector2, list[bool], list[int], list[float], list[str], list[Vector2]]]

All attributes.

Type:

navground.sim.BoundingBox

The bounding box.

Type:

set[tuple[navground.sim.Entity, navground.sim.Entity]]

The colliding pairs computed during the last simulation step.

Type:

list[navground.core.Disc]

All disc shaped static obstacles in this world.

Parameters:

ignore_lattice – whether to ignore the lattice

Type:

bool

Returns whether there is a termination condition set.

Returns:

True if a termination condition has been set.

Type:

list[navground.core.LineSegment]

All line obstacles in this world.

Type:

navground.sim.BoundingBox

The bounding box that contains all agents, obstacles and walls.

Type:

list[navground.sim.Obstacle]

All obstacles in this world.

Type:

object

The random generator.

Return type:

numpy.random.Generator

Type:

int

The random seed.

Type:

int

The simulation step.

Type:

float

The simulation time.

Type:

list[navground.sim.Wall]

All walls in this world.

Note

Class World supports dynamic attributes <attributes python>.