Interface StereoVisualOdometry<T extends ImageBase<T>>

All Superinterfaces:
VerbosePrint, VisualOdometry<Se3_F64>
All Known Implementing Classes:
StereoVisualOdometryScaleInput, WrapVisOdomDualTrackPnP, WrapVisOdomMonoStereoDepthPnP, WrapVisOdomQuadPnP

public interface StereoVisualOdometry<T extends ImageBase<T>> extends VisualOdometry<Se3_F64>

Stereo visual odometry algorithms that estimate the camera's ego-motion in Euclidean space using a pair of stereo images. Camera motion is estimated relative to the first frame in the left camera's point of view.

The following is a set of assumptions and behaviors that all implementations of this interface must follow:

  • Stereo images must be captured simultaneously
  • Cameras must have a global shutter
  • Calibration parameters can be changed at any time, but must be set at least once before processing an image.
  • If process returns false then the motion could not be estimated and isFault() should be checked
  • If isFault() is true then the reset() should be called since it can't estimate motion any more
  • reset() puts back into its initial state

Optional interfaces are provided for accessing internal features.

  • Method Details

    • setCalibration

      void setCalibration(StereoParameters parameters)
      Specifies intrinsic and extrinsic parameters for the stereo camera system. Can be called at any time, but must be called at least once before process(T, T) can be called.
      parameters - stereo calibration
    • process

      boolean process(T leftImage, T rightImage)
      Process the new image and update the motion estimate. The return value must be checked to see if the estimate was actually updated. If false is returned then VisualOdometry.isFault() also needs to be checked to see if the pose estimate has been reset.
      true if the motion estimate has been updated and false if not
    • getImageType

      ImageType<T> getImageType()
      Type of input images it can process.
      The image type