Environment is an infrared layout of a tracking area, by which a tracker determines its position in space.

Environment Structure

The Environment consists of IR markers. All markers are identical in their properties, frequency, and continuously emit light in the infrared range. They do not have any specific IDs.
For ease of use, IR markers can be grouped into elementary patterns called reference bars.

Operation in the Environment Tracker Algorithm

The tracker determines its position by the unique combinations of the markers location — features. When you turn it on for the first time or when the position has been lost (for example, after covering the lens with your hand), tracker tries to detect a feature from the visible markers.
Later, after determing its position, the tracker finds IR markers and match them with the Environment. If the markers location matches the layout, the tracker continues to work; otherwise it starts to search features.

Environment Parameters

Each Environment has 2 key parameters:
The parameters are opposite in their essence. The best tracking quality is achieved with a uniform placement of IR markers. The local uniqueness of an IR marker's position (features) is not taken into account. Similarly, achieving the maximum features quality reduces the tracking quality, because it rearranges the IR markers regardless of their even distribution.
Thus, when configuring the Environment's parameters, you need to strive for a balance between tracking quality and features quality.

Environment Types

There are three types of Environment:
In addition to Arbitrary2D Environment, you can create your own version of Environment in an alternative way. In this case, the user can not only arrange the IR markers randomly, but can also create their own version of the marker search algorithm (matching):
For details, see our project on Github.