Components and constraints are incredibly flexible. To illustrate this, let's look at a Plex under construction that has components but no constraints (yet).
Our root constraints here all point to infrared (IR) camera 2. We know that every component belongs to the same RealSense™ D435i; designating IR camera 2 as the root suggests this connection symbolically via the Plex.
Comprehensive Component Constraints
Since the IR camera 1 component, IR camera 2 component, and depth component are all operating on the same device, their spatial and temporal constraints are straightforward to assign.
The master clock is a component itself; it puts out timestamp observations that help keep our Plex in sync. We can tie it to the rest of the Plex through a temporal constraint. This clock is not a physical component, so adding a spatial constraint doesn't make sense.
Lastly, it might be important that we know where all of this equipment is located relative to the chassis of our system. A chassis doesn't produce any observations, but it still acts as a spatial anchor for our Plex. We can add this information by making it a component with a spatial constraint:
Now if we put it all together, we have a complete Plex made with a variety of different components:
- Conventional hardware components (the IR cameras) with spatial and temporal constraints
- Components defined by temporal constraints alone (the master clock)
- Components that produce no observations (the chassis), but that still inform the Plex