# `BB.Estimator.Context`
[🔗](https://github.com/beam-bots/bb/blob/main/lib/bb/estimator/context.ex#L5)

Framework-provided init context delivered to `c:BB.Estimator.init/1` via
the `:estimator_context` option.

Carries the topology-derived information an estimator needs to interpret
its inputs and stamp its outputs correctly: the robot module, the
estimator's full path, the target frame for its outputs, and the static
frame transforms from each input's source frame to the target frame.

## Fields

- `:robot` - The robot module that owns this estimator.
- `:path` - The estimator's full path (e.g. `[:sensor, :base_link, :imu,
  :orientation]` for sensor-nested or `[:estimator, :base_link, :pose]`
  for link-nested).
- `:target_frame` - The frame atom of the estimator's outputs. For
  sensor-nested estimators this is the parent sensor's frame. For
  link-nested estimators this is the parent link's name.
- `:transforms` - A map from input declaration name to a
  `BB.Math.Transform.t()` describing the static transform from that
  input's source frame into the target frame. For inputs already in the
  target frame the value is `BB.Math.Transform.identity()`. Empty for
  sensor-nested estimators (no transform needed - the input is in the
  same frame as the output).

# `t`

```elixir
@type t() :: %BB.Estimator.Context{
  path: [atom()],
  robot: module(),
  target_frame: atom(),
  transforms: %{required(atom()) =&gt; BB.Math.Transform.t()}
}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
