The Instrument class in obs_base tries to be a general representation of an instrument but has a couple of assumptions in it that make it hard for non Rubin users to use it.
- It depends heavily on the afw cameraGeom.
- It assumes that an instrument has filters (and uses an afw class to represent them)
pipe_base implicitly depends on an Instrument-like object existing for applying config overrides and ctrl_mpexec also needs a small number of methods for making collections and determining the name from registry.
On this ticket we will move the core code to pipe_base and leave the Rubin-specific Instrument in obs_base inheriting from the pipe_base variant. The register-instrument command will also have to be moved to pipe_base. ctrl_mpexec and ctrl_bps will also be changed such that they do not explicitly need obs_base.
The pipe_base class could be called InstrumentBase or simply Instrument.