Struct PoseToPoseConstraint

Inheritance Relationships

Base Type

Struct Documentation

struct PoseToPoseConstraint : public ouster::sdk::mapping::Constraint

Pose-to-pose constraint - enforces relative transform between two poses.

Public Functions

inline PoseToPoseConstraint()

Default constructor.

inline PoseToPoseConstraint(uint64_t timestamp1, uint64_t timestamp2, const Eigen::Matrix4d &relative_pose = Eigen::Matrix4d::Identity(), double rotation_weight = 1.0, const Eigen::Array3d &translation_weights = Eigen::Array3d::Ones())

Construct a relative pose-to-pose constraint.

Parameters:
  • timestamp1[in] – Timestamp of the first pose (nanoseconds).

  • timestamp2[in] – Timestamp of the second pose (nanoseconds).

  • relative_pose[in] – Expected relative transform from pose1 to pose2. Use identity to let the optimizer auto-estimate it via ICP.

  • rotation_weight[in] – Optional rotation weight.

  • translation_weights[in] – Optional translation weights.

inline virtual ConstraintType get_type() const override

Get the constraint type.

Returns:

ConstraintType The constraint category.

inline virtual std::unique_ptr<Constraint> clone() const override

Clone this PoseToPoseConstraint, preserving its constraint id.

Returns:

std::unique_ptr<Constraint> Deep copy of this constraint.

Public Members

uint64_t timestamp1

Timestamp of the first pose (nanoseconds).

uint64_t timestamp2

Timestamp of the second pose (nanoseconds).

Eigen::Matrix4d relative_pose = Eigen::Matrix4d::Identity()

Expected relative transform from pose1 to pose2 (4x4 SE3 matrix).

double rotation_weight = 1.0

Weight for the rotational component of the relative constraint.