> For the complete documentation index, see [llms.txt](https://stage-precision.gitbook.io/grid/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://stage-precision.gitbook.io/grid/camera-calibration/project-setup/camera-tracking-sources.md).

# Camera Tracking Sources

Camera calibration workflows can use different types of tracking and movement data, depending on the selected calibration tool.

In Grid Studio, this data usually comes from **Tracking Objects** in the Project Tree. These objects can represent camera tracking systems, lens encoder readouts, or other movement-related sources.

Examples of data that may be required are:

* camera position
* camera rotation
* zoom encoder values
* focus encoder values
* axis, rail, or pan/tilt movement values

Not every tracking source provides all required values. Some sources only provide position and rotation. Others provide lens encoder values such as zoom and focus. Some workflows may require multiple sources to be combined.

{% hint style="info" %}
Iris values are not required for the camera calibration workflows described in this section. The relevant lens encoder values are usually **Zoom** and **Focus**.
{% endhint %}

***

## Tracking Objects in the Project Tree

Tracking sources are added as objects in the Project Tree.

Depending on the setup, these objects may receive data from systems such as camera tracking systems, optical tracking systems, lens encoder systems, or other movement integrations.

The Tracking Object itself is not usually selected directly in the Calibration Object. Instead, the data is first mapped to a target object, usually a **Camera Object**.

### Tracking Object Purpose

A Tracking Object receives or provides tracking-related data inside Grid Studio.

This may include:

* position
* rotation
* zoom
* focus
* other movement values, depending on the system

### Why the Tracking Object Is Not Used Directly

Calibration workflows usually need the same data that will later drive the real Camera Object during operation.

For this reason, tracking and encoder data should first be mapped to the object that will use it later.

In most camera workflows, this is the **Camera Object**.

***

## Camera Object and Map Inputs

A **Camera Object** is required for workflows where tracking or lens encoder data is used.

The Camera Object receives tracking and encoder values through **Map Inputs**.

A Map Input connects data from a Tracking Object to parameters of the Camera Object.

This allows the Camera Object to be driven by the tracking source and later load the generated Lens Profile and Alignment Profile.

### Why the Camera Object Is Required

The Camera Object represents the calibrated virtual camera in the project.

It can receive live tracking values and apply calibration data such as:

* Lens Profile
* Alignment Profile
* mapped position and rotation values
* mapped zoom and focus values

### Map Inputs on the Camera Object

Map Inputs can contain important setup information, such as:

* which source values are connected
* which target parameters are driven
* value ranges
* enabled or disabled parameters
* encoder normalization
* protocol-specific options

This setup should only be done once.

By configuring the Map Input on the Camera Object, the same mapped data can be reused during calibration and later during normal operation.

{% hint style="info" %}
For more information about Map Inputs and object-based data workflows, see the general Grid Studio documentation about **Object-Based Data Processing** and **Map Input**.
{% endhint %}

***

## Maps in the Calibration Object

The Calibration Object does not usually link directly to a Tracking Object.

Instead, it links to maps that have already been created on the Camera Object or another target object.

This is done in the **Maps** section of the Calibration Object.

\[Screenshot: Calibration Object Maps section]

### Map List

The **Maps** section contains a **Map List**.

The Map List defines which maps are used by the calibration workflow.

Each entry in the Map List can reference one map and define which parts of that map should be used by the calibration.

This is important when a workflow needs to combine multiple maps, for example one map for position and rotation and another map for lens encoder values.

### Input Map

Each entry in the Map List has an **Input Map** field.

The **Input Map** is used to select the map that should be used by this map entry.

In a typical camera workflow, this points to a Map Input on the Camera Object.

The basic structure is:

```
Tracking Object
    ↓
Map Input on Camera Object
    ↓
Calibration Object → Maps → Map List → Input Map
    ↓
Calibration workflow
```

{% hint style="warning" %}
Make sure the Calibration Object references the correct **Input Map**. If the wrong map is selected, the calibration workflow may use the wrong tracking or encoder data.
{% endhint %}

### Map Entry Options

Each map entry can define which parts of the selected Input Map should be used.

The available options are:

* **Use Pos**
* **Use Rot**
* **Use Custom Data**

**Use Pos** enables position data from the selected map.

**Use Rot** enables rotation data from the selected map.

**Use Custom Data** enables all mapped values that are not position or rotation.

Custom Data can include values such as:

* zoom
* focus
* encoder values
* other protocol-specific values

Depending on the map setup, Custom Data values can be enabled or disabled individually.

This makes it possible to combine different maps for different parts of the calibration data.

For example, one map can provide position and rotation, while another map provides only Custom Data such as zoom and focus.

{% hint style="info" %}
Use **Custom Data** for values that are not position or rotation. Lens encoder values such as **Zoom** and **Focus** are handled as Custom Data.
{% endhint %}

### Combining Multiple Maps

Multiple maps can be used when the required calibration data comes from different sources.

For example, one map may provide position and rotation, while another map provides zoom and focus values.

In this case, each map is added as a separate entry in the Map List.

The map entry options define which data should be used from each map.

Example setup:

<table><thead><tr><th width="115.4444580078125">Map Entry</th><th width="165.444580078125">Input Map</th><th width="99.5555419921875" data-type="checkbox">Use Pos</th><th width="99.5556640625" data-type="checkbox">Use Rot</th><th width="99.6666259765625" data-type="checkbox">Use Custom Data</th><th>Purpose</th></tr></thead><tbody><tr><td>Map 1</td><td>Camera position/rotation </td><td>true</td><td>true</td><td>false</td><td>Uses camera tracking transform</td></tr><tr><td>Map 2</td><td>Lens encoder</td><td>false</td><td>false</td><td>true</td><td>Uses zoom and focus values</td></tr></tbody></table>

{% hint style="info" %}
When combining maps, only enable the data that should be used from each map. This helps avoid duplicate or conflicting values.
{% endhint %}

{% content-ref url="/pages/mvfEOSDuD3GSqpMC6zX0" %}
[Camera Tracking Protocols Overview](/grid/camera-calibration/project-setup/camera-tracking-sources/camera-tracking-protocols-overview.md)
{% endcontent-ref %}

### Common Mistakes

Avoid these common setup mistakes:

* selecting the wrong **Input Map**
* enabling **Use Pos** on more than one map when only one position source should be used
* enabling **Use Rot** on more than one map when only one rotation source should be used
* forgetting to enable **Use Custom Data** for zoom or focus values
* using a map that belongs to another Camera Object
* using processed tracking data that already contains unwanted offsets or lens-related shifts

{% hint style="warning" %}
If multiple maps provide the same type of data, make sure only the intended source is enabled. Duplicate position, rotation, or encoder values can lead to incorrect calibration results.
{% endhint %}
