api.rig¶
- class aind_behavior_dynamic_foraging.rig.AindDynamicForagingRig(*, aind_behavior_services_pkg_version: Annotated[Literal['0.13.5'], _PydanticGeneralMetadata(pattern='^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$')] = '0.13.5', version: Literal['0.0.2-rc33'] = '0.0.2-rc33', computer_name: str, rig_name: str, data_directory: Path, triggered_camera_controller: CameraController[SpinnakerCamera], monitoring_camera_controller: CameraController[WebCamera] | None = None, harp_behavior: HarpBehavior, harp_lickometer_left: HarpLicketySplit | None = None, harp_lickometer_right: HarpLicketySplit | None = None, harp_clock_generator: HarpWhiteRabbit, harp_sound_card: DynamicForagingSoundCard, harp_sniff_detector: HarpSniffDetector | None = None, harp_environment_sensor: HarpEnvironmentSensor | None = None, manipulator: DynamicForagingAindManipulator, calibration: RigCalibration)[source]¶
Bases:
Rig- calibration: RigCalibration[source]¶
- harp_sound_card: DynamicForagingSoundCard[source]¶
- manipulator: DynamicForagingAindManipulator[source]¶
- class aind_behavior_dynamic_foraging.rig.DynamicForagingAindManipulator(*, device_type: ~typing.Literal['StepperDriver'] = 'StepperDriver', calibration: ~aind_behavior_services.rig.aind_manipulator.AindManipulatorCalibration = AindManipulatorCalibration(description='AindManipulator calibration and settings', full_step_to_mm=ManipulatorPosition(x=0.01, y1=0.01, y2=0.01, z=0.01), axis_configuration=[AxisConfiguration(axis=<Axis.Y1: 2>, step_acceleration_interval=100, step_interval=100, microstep_resolution=<MicrostepResolution.MICROSTEP8: 0>, maximum_step_interval=2000, motor_operation_mode=<MotorOperationMode.QUIET: 0>, max_limit=25, min_limit=-0.01), AxisConfiguration(axis=<Axis.Y2: 3>, step_acceleration_interval=100, step_interval=100, microstep_resolution=<MicrostepResolution.MICROSTEP8: 0>, maximum_step_interval=2000, motor_operation_mode=<MotorOperationMode.QUIET: 0>, max_limit=25, min_limit=-0.01), AxisConfiguration(axis=<Axis.X: 1>, step_acceleration_interval=100, step_interval=100, microstep_resolution=<MicrostepResolution.MICROSTEP8: 0>, maximum_step_interval=2000, motor_operation_mode=<MotorOperationMode.QUIET: 0>, max_limit=25, min_limit=-0.01), AxisConfiguration(axis=<Axis.Z: 4>, step_acceleration_interval=100, step_interval=100, microstep_resolution=<MicrostepResolution.MICROSTEP8: 0>, maximum_step_interval=2000, motor_operation_mode=<MotorOperationMode.QUIET: 0>, max_limit=25, min_limit=-0.01)], homing_order=[<Axis.Y1: 2>, <Axis.Y2: 3>, <Axis.X: 1>, <Axis.Z: 4>], initial_position=ManipulatorPosition(x=0.0, y1=0.0, y2=0.0, z=0.0)), who_am_i: ~typing.Literal[1130] = 1130, serial_number: str | None = None, port_name: str, subject_offset: ~aind_behavior_services.rig.aind_manipulator.ManipulatorPosition = ManipulatorPosition(x=0.0, y1=0.0, y2=0.0, z=0.0))[source]¶
Bases:
AindManipulatorA calibrated manipulator for the dynamic foraging rig. This is a subclass of the AindManipulator that includes an offset of the subject position relative to the initial position.
- class aind_behavior_dynamic_foraging.rig.DynamicForagingSoundCard(*, device_type: Literal['SoundCard'] = 'SoundCard', calibration: SoundCardCalibration = SoundCardCalibration(go_cue=Waveform(waveform_type='sine', index=3, duration=0.1, frequency=7500.0), cs_plus=Waveform(waveform_type='sine', index=4, duration=0.1, frequency=13000.0), cs_minus=Waveform(waveform_type='white_noise', index=5, duration=0.1, frequency=None)), who_am_i: Literal[1280] = 1280, serial_number: str | None = None, port_name: str)[source]¶
Bases:
HarpSoundCardA calibrated sound card for the dynamic foraging rig. This is a subclass of the HarpSoundCard that includes the sound card calibration.
- calibration: SoundCardCalibration[source]¶
- class aind_behavior_dynamic_foraging.rig.RigCalibration(*, water_valve_left: WaterValveCalibration, water_valve_right: WaterValveCalibration)[source]¶
Bases:
BaseModelContainer class for calibration models. In a future release these will be moved to the respective devices
- class aind_behavior_dynamic_foraging.rig.SoundCardCalibration(*, go_cue: Waveform = Waveform(waveform_type='sine', index=3, duration=0.1, frequency=7500.0), cs_plus: Waveform = Waveform(waveform_type='sine', index=4, duration=0.1, frequency=13000.0), cs_minus: Waveform = Waveform(waveform_type='white_noise', index=5, duration=0.1, frequency=None))[source]¶
Bases:
BaseModelCalibration model for the sound card. Contains the waveforms to play for each cue.
- class aind_behavior_dynamic_foraging.rig.Waveform(*, waveform_type: Literal['sine', 'white_noise'] = 'sine', index: Annotated[int, Ge(ge=3), Le(le=31)], duration: Annotated[float, Gt(gt=0)], frequency: float | None = None)[source]¶
Bases:
BaseModelModel for a waveform to be played on the sound card.
- index: Annotated[int, FieldInfo(annotation=NoneType, required=True, description='Index of the sound to play on the sound card', metadata=[Ge(ge=3), Le(le=31)])][source]¶