cartographer/sensor/fixed_frame_pose_data.h¶
Overview¶
FixedFramePoseData represents an absolute pose measurement in a fixed frame — for example GPS position, or an external pose estimate. Unlike relative sensor data (IMU, odometry), it is used directly in the global optimization: the pose graph adds residuals that pull each node’s global pose toward the fixed-frame measurement, which helps bind the map to the world frame.
Struct: cartographer::sensor::FixedFramePoseData¶
struct FixedFramePoseData {
common::Time time;
absl::optional<transform::Rigid3d> pose;
};
time— Timestamp of the measurement.pose— Optional pose in the fixed frame. Theabsl::optionalallows a measurement with no usable pose (e.g. a GPS fix with no lock) to be delivered without discarding the timestamp.
Serialization¶
proto::FixedFramePoseData ToProto(const FixedFramePoseData& pose_data);
FixedFramePoseData FromProto(const proto::FixedFramePoseData& proto);
proto::FixedFramePoseData stores the timestamp and an optional transform.proto.Rigid3d:
message FixedFramePoseData {
int64 timestamp = 1;
transform.proto.Rigid3d pose = 2;
}
ToProto omits pose when it is not set; FromProto reconstructs the absl::optional from has_pose().
Usage¶
sensor::FixedFramePoseData pose_data{time, pose}; // or {time, absl::nullopt}
trajectory_builder->AddFixedFramePoseData(sensor_id, pose_data);
Role in the SLAM Pipeline¶
Trajectory builder interface —
AddFixedFramePoseDataaccepts these measurements; they are stored per trajectory in the optimization problem.Optimization — During
Solve, each trajectory with fixed-frame pose data has afixed_frame_origin_in_maptransform computed and residual blocks (inOptimizationProblem2D/OptimizationProblem3D) pull the trajectory’s nodes toward the measured poses, constraining the map to the fixed frame.Serialization — per-trajectory fixed-frame pose data is stored in the serialization format via
proto::FixedFramePoseDatainserialization.proto.
See Also¶
Data — Base class and
DispatchablewrappingOdometryData — Relative pose measurement
OptimizationProblemInterface — Consumes fixed-frame pose data