Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

PoseRotationPrior

Open In Colab

PoseRotationPrior<POSE> is a unary factor that applies a prior constraint only to the rotation component of a POSE variable (e.g., Pose2 or Pose3). It ignores the translation component of the pose variable during error calculation. The error is calculated as the difference between the rotation component of the pose variable and the measured prior rotation, expressed in the tangent space of the rotation group.

Error: Log(measured−1⋅pose.rotation()) \text{Log}(\text{measured}^{-1} \cdot \text{pose.rotation}())

This is useful when you have information about the absolute orientation of a pose but little or no information about its translation.

Creating a PoseRotationPrior

Provide the key of the pose variable, the measured prior rotation (Rot3 for Pose3, Rot2 for Pose2), and a noise model defined on the rotation manifold’s dimension (e.g., 3 for Rot3).

PoseRotationPrior: PoseRotationPrior  keys = { x0 }
isotropic dim=3 sigma=0.05
Measured Rotation [
	0.707107, -0.707107, 0;
	0.707107, 0.707107, 0;
	0, 0, 1
]

Evaluating the Error

The error depends only on the rotation part of the Pose3 value in the Values object.

Error with correct rotation: 0.0 (Should be near zero)
Error with incorrect rotation: 1.9999999999999951 (Should be non-zero)
Error with different translation: 1.9999999999999951 (Should be same as error2)