larvaworld.lib.model.modules.sensor2

Classes

Sensor2

Base class for robot sensors in 2D simulation.

LightSensor

Light intensity sensor for robot navigation.

ProximitySensor

Proximity sensor for obstacle detection.

Module Contents

class larvaworld.lib.model.modules.sensor2.Sensor2(robot: Any, delta_direction: float, saturation_value: float, error: float)

Base class for robot sensors in 2D simulation.

Provides interface for sensor value reading and visualization with configurable orientation, saturation, and noise.

Attributes:

robot: Parent robot instance. delta_direction: Sensor orientation offset in radians. saturation_value: Maximum sensor reading value. error: Sensor noise/error magnitude. value: Current sensor reading.

Example:
>>> sensor = Sensor2(
...     robot=my_robot,
...     delta_direction=0.5,
...     saturation_value=1.0,
...     error=0.1
... )
robot
delta_direction
saturation_value
error
value = 0
get_value() float
draw() None
class larvaworld.lib.model.modules.sensor2.LightSensor(robot: Any, delta_direction: float, saturation_value: float, error: float, scene: Any)

Bases: Sensor2

Light intensity sensor for robot navigation.

Detects light sources in simulation environment, calculating intensity based on distance and direction using ray-casting.

Attributes:

LENGTH_SENSOR_LINE: Ray-casting distance for sensor (100 units).

Example:
>>> light_sensor = LightSensor(
...     robot=my_robot,
...     delta_direction=0.0,
...     saturation_value=100.0,
...     error=0.05,
...     scene=sim_scene
... )
LENGTH_SENSOR_LINE = 100
get_value() float
draw() None
class larvaworld.lib.model.modules.sensor2.ProximitySensor(robot: Any, delta_direction: float, saturation_value: float, error: float, max_distance: int, collision_distance: int = 12)

Bases: Sensor2

Proximity sensor for obstacle detection.

Detects nearby obstacles using ray-casting, returning distance to nearest obstacle in sensor direction.

Attributes:

max_distance: Maximum detection range. collision_distance: Distance threshold for collision (default: 12).

Example:
>>> prox_sensor = ProximitySensor(
...     robot=my_robot,
...     delta_direction=-0.785,
...     saturation_value=50.0,
...     error=0.1,
...     max_distance=100
... )
max_distance
collision_distance = 12
get_value(pos: list[float] | None = None, direction: float | None = None) float
draw(pos: list[float] | None = None, direction: float | None = None) None