sugr
Class Motion_3D

java.lang.Object
  extended bysugr.Element
      extended bysugr.Transformation
          extended bysugr.Homography_3D
              extended bysugr.Affinity_3D
                  extended bysugr.ScaledMotion_3D
                      extended bysugr.Motion_3D
All Implemented Interfaces:
java.lang.Cloneable, java.io.Serializable
Direct Known Subclasses:
Rotation_3D, Translation_3D

public class Motion_3D
extends ScaledMotion_3D

This matrix contains Translation (3 parameters) and Rotation(3 parameters) in 3D just as needed for exterior orientation, for example.

Author:
Norbert Fischer
See Also:
Serialized Form

Field Summary
private static long serialVersionUID
          Class version number for serialization
 
Fields inherited from class sugr.Homography_3D
DIM
 
Fields inherited from class sugr.Element
cov, MAXITER, v
 
Constructor Summary
Motion_3D()
          standard constructor.
Motion_3D(Translation_3D trans, Rotation_3D rot)
          creates a motion by a given Translation_3D and a Rotation_3D
Motion_3D(Translation_3D trans, Rotation_3D rot, Matrix cov)
          creates a motion with covariance by a given Translation_3D and a Rotation_3D
 
Method Summary
 boolean estimate(RelationalProperty[] rprops, boolean doConditioning, int maxiter, RelationalProperty[] yhat, double[] sigma0, int[] no_of_iterations, boolean estimate_sigma0)
          Estimation of that entity out of given relational properties.
protected  Vector getConstraintValue()
          Get the value of the constraint (h(beta) or g(y)) if this entity is an unknown or an observation.
 int getDegreesOfFreedom()
          Returns the number of elements to specify this transformation
 Matrix getJacobianOfConstraint()
          Get the Jacobian of the constraint (H, G) if this entity is an unkown or an observation.
 void printConstraint()
           
 
Methods inherited from class sugr.ScaledMotion_3D
approximate
 
Methods inherited from class sugr.Homography_3D
doCondition, getDimCol, getDimRow, getJacobianAfterFirst, getJacobianAfterSecond, getLineMatrix, getPlaneMatrix, getPointMatrix, transform
 
Methods inherited from class sugr.Transformation
errorProp, getDimension, getJacobianOfRelation, getReducedAB, getTransformationMatrix, getTransposeTransMatrix, transform
 
Methods inherited from class sugr.Element
calcCov, changeNullspace, changeNullspace, checkCovDim, checkElement, clone, ensureConstraints, estimate, gaussHelmertIterations, gaussHelmertIterationsOld, getCov, getV, normalizeSphere, normalizeSphereComparable, print, print, reduceFirstMatrix, reduceMatrix, reduceMatrix, setCov, setV, toString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
Class version number for serialization

See Also:
Constant Field Values
Constructor Detail

Motion_3D

public Motion_3D()
standard constructor. Creates an identity matrix


Motion_3D

public Motion_3D(Translation_3D trans,
                 Rotation_3D rot)
creates a motion by a given Translation_3D and a Rotation_3D

Parameters:
trans - contains the Translation-matrix
rot - contains the rotation-matrix

Motion_3D

public Motion_3D(Translation_3D trans,
                 Rotation_3D rot,
                 Matrix cov)
creates a motion with covariance by a given Translation_3D and a Rotation_3D

Parameters:
trans - contains the Translation-matrix
rot - contains the rotation-matrix
cov - 16x16 matrix
Method Detail

getDegreesOfFreedom

public int getDegreesOfFreedom()
Returns the number of elements to specify this transformation

Overrides:
getDegreesOfFreedom in class ScaledMotion_3D

estimate

public boolean estimate(RelationalProperty[] rprops,
                        boolean doConditioning,
                        int maxiter,
                        RelationalProperty[] yhat,
                        double[] sigma0,
                        int[] no_of_iterations,
                        boolean estimate_sigma0)
Estimation of that entity out of given relational properties. Overwritten method of Element, because an estimation of a Motion needs a special conditioning. The two sets of Entities must be conditioned with the same factor to avoid a scale in the transformation !

Overrides:
estimate in class Element
Parameters:
rprops - the observations
doConditioning - if true, a conditioning is done.
maxiter - maximum number of iterations.
yhat - corrected observations, spherically normalized. yhat=y-ehat.
sigma0 - sigma0 of the last iterations (sqrt(sigma2)) as an output parameter (array with 1 element)
no_of_iterations - number of iterations computed (output parameter: array with 1 element)
Returns:
true if convergence reached otherwise false. Convergence is not reached if the maximum number of iterations is reached and the convergence criteria is not reached.

getConstraintValue

protected Vector getConstraintValue()
Get the value of the constraint (h(beta) or g(y)) if this entity is an unknown or an observation. This is, that the last row is 0 0 0 x , all rows are orthogonal to each other, the first three rows have length 1, and the whole vector has length 1

Overrides:
getConstraintValue in class ScaledMotion_3D
Returns:
the value of the constraint as a vector.

printConstraint

public void printConstraint()

getJacobianOfConstraint

public Matrix getJacobianOfConstraint()
Get the Jacobian of the constraint (H, G) if this entity is an unkown or an observation.

Overrides:
getJacobianOfConstraint in class ScaledMotion_3D
Returns:
the Jacobian as a matrix.