larvaworld.lib.model.modules.sensor2 ==================================== .. py:module:: larvaworld.lib.model.modules.sensor2 Classes ------- .. autoapisummary:: larvaworld.lib.model.modules.sensor2.Sensor2 larvaworld.lib.model.modules.sensor2.LightSensor larvaworld.lib.model.modules.sensor2.ProximitySensor Module Contents --------------- .. py:class:: 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 ... ) .. py:attribute:: robot .. py:attribute:: delta_direction .. py:attribute:: saturation_value .. py:attribute:: error .. py:attribute:: value :value: 0 .. py:method:: get_value() -> float .. py:method:: draw() -> None .. py:class:: LightSensor(robot: Any, delta_direction: float, saturation_value: float, error: float, scene: Any) Bases: :py:obj:`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 ... ) .. py:attribute:: LENGTH_SENSOR_LINE :value: 100 .. py:method:: get_value() -> float .. py:method:: draw() -> None .. py:class:: ProximitySensor(robot: Any, delta_direction: float, saturation_value: float, error: float, max_distance: int, collision_distance: int = 12) Bases: :py:obj:`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 ... ) .. py:attribute:: max_distance .. py:attribute:: collision_distance :value: 12 .. py:method:: get_value(pos: list[float] | None = None, direction: float | None = None) -> float .. py:method:: draw(pos: list[float] | None = None, direction: float | None = None) -> None