jaxdem.rl.environments.swarm_roller_3d#

Multi-agent 3-D swarm rolling environment with magnetic interaction and pyramid objectives.

Classes

SwarmRoller3D(state, system, env_params, ...)

Multi-agent 3-D rolling environment with magnetic interaction and pyramid objectives.

class jaxdem.rl.environments.swarm_roller_3d.SwarmRoller3D(state: State, system: System, env_params: dict[str, Any], n_lidar_rays: int, n_lidar_elevation: int)#

Bases: Environment

Multi-agent 3-D rolling environment with magnetic interaction and pyramid objectives.

n_lidar_rays: int#

Number of azimuthal bins for the 3-D LiDAR sensor.

n_lidar_elevation: int#

Number of elevation bins for the 3-D LiDAR sensor.

classmethod Create(N: int = 5, min_box_size: float = 10.0, max_box_size: float = 10.0, box_padding: float = 0.0, max_steps: int = 100000, friction: float = 0.2, lidar_range: float = 10.0, n_lidar_rays: int = 8, n_lidar_elevation: int = 8, magnet_strength: float = 4.0, magnet_range: float = 3.0, ke_weight: float = 0.1, coop_weight: float = 0.2, near_goal_bonus: float = 0.1) SwarmRoller3D[source]#

Create a swarm roller 3-D environment.

static reset(env: SwarmRoller3D, key: Array | ndarray | bool | number | bool | int | float | complex) Environment[source]#

Reset the environment to a random initial configuration.

static step(env: SwarmRoller3D, action: Array) Environment[source]#

Advance the environment by one physics step.

static observation(env: SwarmRoller3D) Array[source]#

Build per-agent observations.

static reward(env: SwarmRoller3D) Array[source]#

Return per-agent rewards.

static done(env: SwarmRoller3D) Array[source]#

Return True when the episode has exceeded max_steps.

property action_space_size: int[source]#

Number of scalar actions per agent (3-D torque).

property action_space_shape: tuple[int][source]#

Shape of a single agent’s action ((3,)).

property observation_space_size: int[source]#

Dimensionality of a single agent’s observation vector.