Monty.Simulators.Synthetic.SensorModule (ExTbpMonty.Core v0.1.0)

Copy Markdown View Source

A sensor module for a sensor whose config names a class this port has not written.

Monty's configs name four sensor classes: CameraSM, which is Monty.Frameworks.Models.SensorModules.CameraSM, ExperimentSensorModule, which is Monty.Experiment.SensorModule.ExperimentSensorModule, and the salience and 2D sensor modules, which are still to come. This is what runs for the last two: the ported observation processor and percept filter behind the sensor's config, so the run still reports the patch's features, and no noise, because this quiet stand-in has none.

Use the ported class for anything real. What this is for is running a config that names a sensor class this port does not have, without pretending that class ran.

Summary

Functions

A sensor module for one sensor.

Types

state()

@type state() :: %{
  sensor_module_id: atom() | String.t(),
  pose: map() | nil,
  processor: Monty.Frameworks.Models.SensorModules.ObservationProcessor.t(),
  filter: struct(),
  filter_memory: term()
}

Functions

new(sensor_module_id, options \\ [])

@spec new(atom() | String.t(), keyword()) :: state()

A sensor module for one sensor.

Options: :features — the features the sensor's config declares — :delta_thresholds — how much a feature has to change before a point is worth sending — and the processor's own settings (:pc1_is_pc2_threshold, :is_surface_sm, :weight_curvature, :surface_normal_method).