> For the complete documentation index, see [llms.txt](https://docs-7.phoenixlidar.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-7.phoenixlidar.com/lidarmill-desktop/workflow-kk/lidarsnap-v4/sensor-calibration.md).

# Sensor Calibration

The **Aerial Calibration** preset makes use of the **Sensor** tab in LiDARSnap to make global roll, pitch, and yaw adjustments to a data set by modifying the sensor-to-IMU transforms in the lidar Settings->Calibration tab:

<figure><img src="/files/Bq0P5LmWQq6dkL3BtVLD" alt=""><figcaption><p>Lidar Settings->Calibration tab</p></figcaption></figure>

When building a point cloud, the lidar's orientation is determined by taking the IMU's orientation and applying a set of transforms (rotations and translations) specific to the lidar scanner. A lidar data set will exhibit consistent and systematic errors if these transforms are incorrect:

<figure><img src="/files/qp2z3gsh38RTcsEJ6uPa" alt=""><figcaption><p>Five different flight lines of UAV lidar data fail to correspond well with eachother due to incorrect sensor-to-IMU rotations. </p></figcaption></figure>

Typically sensor-to-IMU translations are taken from mechanical drawings, and don't need to be solved for using LiDARSnap. Generalized sensor-to-IMU rotations can also be determined from mechanical drawings (e.g., 180 degrees along IMU-X, -180 degrees along IMU-Z), however precise values, unique to each system, must be determined via a calibration routine.&#x20;

<figure><img src="/files/sIyUaa6zLrWfReA6VPiY" alt=""><figcaption><p>Generalized values from mechanical drawings are shown under the Mounting Transform section, and system-specific calibration values are shown in the Mounting Calibration section. Note that calibrated translation values are not present in the Mounting Calibration section, as translations are not typically calibrated.</p></figcaption></figure>

All lidar systems are calibrated prior to delivery to the end-user, however frequent use, mishandling, and system age can over time invalidate this initial factory calibration, so relative accuracy in a data set may be improved via sensor calibration.&#x20;

{% hint style="info" %}
Sensor calibration requires certain geometry to be present in a data set. Man-made planar features need to be present, ideally with a variety normals. IMU-to-sensor pitch and roll can be solved for using flat ground (such as a parking lot), however solving IMU-to-sensor yaw requires upright and pitched surfaces.
{% endhint %}

When running the Aerial Calibration LiDARSnap preset, the **Sensor** tab will indicate that the **mounting rotation** (IMU-to-lidar yaw, pitch, and roll) has been enabled for optimization, as well as certain laser intrinsics:&#x20;

<figure><img src="/files/4BflBiuSrZ86eK4pI4tv" alt=""><figcaption></figcaption></figure>

The **Trajectory** tab of LiDARSnap should have nothing enabled when using the Aerial Calibration preset. In general, it's not recommended to have both sensor and trajectory features enabled for optimization in a single LiDARSnap run - either solve for trajectory parameters OR sensor parameters.

The result of an aerial calibration LiDARSnap run is modified sensor-to-IMU rotation values (as well as modified laser intrinsic values), visible in the [lidar settings](/lidarmill-desktop/user-interface/windows/project-management-window/lidars/ldr-x.md) calibration window. Often lidar data misalignment issues persist even after sensor calibration, as non-constant errors in the trajectory are not resolvable via sensor calibration.&#x20;
