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.

GeneralSFMFactor

Open In Colab

This header defines factors for Structure from Motion (SfM) problems where camera calibration might be unknown or optimized alongside pose and structure.

GeneralSFMFactor<CAMERA, LANDMARK>:

  • A binary factor connecting a CAMERA variable and a LANDMARK variable.

  • Represents the reprojection error of the LANDMARK into the CAMERA view, compared to a 2D measured_ pixel coordinate.

  • The CAMERA type encapsulates both pose and calibration (e.g., PinholeCamera<Cal3Bundler>).

  • Error: camera.project(landmark) - measured

GeneralSFMFactor2<CALIBRATION>:

  • A ternary factor connecting a Pose3 variable, a Point3 landmark variable, and a CALIBRATION variable.

  • This explicitly separates the camera pose and calibration into different variables.

  • Error: PinholeCamera<CALIBRATION>(pose, calibration).project(landmark) - measured

These factors are core components for visual SLAM or SfM systems where calibration is refined or initially unknown.

1. GeneralSFMFactor<CAMERA, LANDMARK>

Connects a combined Camera variable (pose+calibration) and a Landmark. Requires the Values object to contain instances of the specific CAMERA type (e.g., PinholeCameraCal3_S2).

GeneralSFMFactor:   keys = { c0 l0 }
  noise model: unit (2) 
GeneralSFMFactor: .z[
	320;
	240
]

Error for GeneralSFMFactor: 0.0

2. GeneralSFMFactor2<CALIBRATION>

Connects separate Pose3, Point3 (Landmark), and Calibration variables.

GeneralSFMFactor2:   keys = { x0 l0 k0 }
  noise model: unit (2) 
GeneralSFMFactor2: .z[
	320;
	240
]

Error for GeneralSFMFactor2: 0.0