Class PositionFromPairLinear2

java.lang.Object
boofcv.alg.geo.pose.PositionFromPairLinear2

public class PositionFromPairLinear2 extends Object

Given two views of N objects and the known rotation, estimate the translation. A linear system is constructed from the equations below and solved for. A minimum of two point observations is required since rotation is already known. This high level characteristics of this algorithm was stated in [1], but the mathematics were not described or sketched.

Derivation:

 λx = R*X + T
 0 = hat(x)*R*X + hat(x)*T
 hat(x)*T = -hat(x)*R*X
 
where hat(x) is the cross product matrix of the homogeneous (x,y,1) vector, R is a rotation matrix, T is the known translation, and X is the known point in 3D.

[1] Tardif, J.-P., Pavlidis, Y., and Daniilidis, K. "Monocular visual odometry in urban environments using an omnidirectional camera," IROS 2008

  • Constructor Details

    • PositionFromPairLinear2

      public PositionFromPairLinear2()
  • Method Details

    • process

      public boolean process(DMatrixRMaj R, List<Point3D_F64> worldPts, List<Point2D_F64> observed)
      Computes the translation given two or more feature observations and the known rotation
      Parameters:
      R - Rotation matrix. World to view.
      worldPts - Location of features in world coordinates.
      observed - Observations of point in current view. Normalized coordinates.
      Returns:
      true if it succeeded.
    • getT

      public Vector3D_F64 getT()