larvaworld.lib.model.modules.turner
Classes
Base turner module for directional control. |
|
Constant-output turner for simple directional control. |
|
Sinusoidal turner for oscillatory directional control. |
|
Neural oscillator turner using Wilson-Cowan dynamics. |
Module Contents
- class larvaworld.lib.model.modules.turner.Turner(**kwargs: Any)
Bases:
larvaworld.lib.model.modules.basic.EffectorBase turner module for directional control.
Abstract base class for body-bending modules that control angular velocity and directional changes during locomotion.
- Attributes:
input_range: Valid input range for sensory activation (-1 to 1)
- Example:
>>> # Use concrete subclasses like ConstantTurner, SinTurner, NeuralOscillator >>> turner = SinTurner(freq=0.58, amp=0.5)
- input_range
- class larvaworld.lib.model.modules.turner.ConstantTurner(**kwargs: Any)
Bases:
Turner,larvaworld.lib.model.modules.basic.StepEffectorConstant-output turner for simple directional control.
Provides step-based turning behavior with constant angular velocity when active. Simplest turner implementation for baseline locomotion.
- Example:
>>> turner = ConstantTurner(amp=0.3) >>> angular_velocity = turner.step()
- class larvaworld.lib.model.modules.turner.SinTurner(**kwargs: Any)
Bases:
Turner,larvaworld.lib.model.modules.basic.SinOscillatorSinusoidal turner for oscillatory directional control.
Extends Turner with sinusoidal oscillation, producing periodic left-right turning patterns. Commonly used for exploratory behavior.
- Attributes:
freq: Oscillation frequency in Hz (0.0-2.0)
- Example:
>>> turner = SinTurner(freq=0.58, amp=0.4) >>> angular_velocity = turner.step()
- freq
- class larvaworld.lib.model.modules.turner.NeuralOscillator(**kwargs: Any)
Bases:
TurnerNeural oscillator turner using Wilson-Cowan dynamics.
Implements biologically realistic central pattern generator (CPG) for directional control using coupled excitatory/inhibitory neural populations. Produces emergent oscillatory turning behavior from neural dynamics rather than prescribed waveforms.
- Attributes:
base_activation: Baseline neural activation level (10-40 Hz) activation_range: Valid activation range bounds (0-100 Hz) tau: Neural time constant for population dynamics (seconds) w_ee, w_ce, w_ec, w_cc: Synaptic connection weights between populations m: Maximum neural spike rate (Hz) n: Spike-rate response steepness coefficient E_l, E_r: Left/right excitatory population activities C_l, C_r: Left/right inhibitory population activities H_E_l, H_E_r, H_C_l, H_C_r: Hysteresis variables for populations
- Example:
>>> neural_turner = NeuralOscillator( ... base_activation=20.0, ... tau=0.1, ... w_ee=3.0, ... w_ec=4.0 ... ) >>> angular_velocity = neural_turner.step(A_in=0.5)
- base_activation
- activation_range
- tau
- w_ee
- w_ce
- w_ec
- w_cc
- m
- n
- r1
- r0
- activation
- E_r = 0
- H_E_r = 0
- E_l = 0
- H_E_l = 0
- C_r = 0
- H_C_r = 0
- C_l = 0
- H_C_l = 0
- scaled_tau
- warm_up() None
- update() None
- act() None
- inact() None
- oscillate() None
- compute_R(x: float, h: float) float
- get_state() list[float]