1#ifndef BundleLidarRangeConstraint_h
2#define BundleLidarRangeConstraint_h
10#include <QSharedPointer>
13#include "BundleLidarControlPoint.h"
14#include "BundleMeasure.h"
15#include "BundleObservation.h"
16#include "LinearAlgebra.h"
17#include "SparseBlockMatrix.h"
Implements range constraint between image position and lidar point acquired simultaneously with the i...
double rangeObservedSigma()
Return sigma of range observation.
double m_rangeObserved
! deltas between spacecraft & lidar point in body-fixed coordinates
double m_dX
! 2D image point corresponding to 3D lidar point on surface.
double m_vtpv
Weighted sum-of-squares of residual.
QString formatBundleOutputString(bool errorProp=false)
Creates & returns formatted QString for lidar range constraint to output to bundleout_lidar....
BundleLidarRangeConstraint(LidarControlPointQsp lidarControlPoint, BundleMeasureQsp measure)
constructor
BundleLidarRangeConstraint & operator=(const BundleLidarRangeConstraint &src)
Assignment operator.
double rangeComputed()
Return computed lidar range.
LidarControlPointQsp m_lidarControlPoint
Parent lidar control point.
BundleObservationQsp m_bundleObservation
BundleObservation associated with measure.
double m_rangeObservedSigma
Uncertainty of observed range.
bool applyConstraint(SparseBlockMatrix &normalsMatrix, LinearAlgebra::MatrixUpperTriangular &N22, SparseBlockColumnMatrix &N12, LinearAlgebra::VectorCompressed &n1, LinearAlgebra::Vector &n2)
Computes partial derivatives of range condition equation and adds contribution into the bundle adjust...
double m_rangeObservedWeightSqrt
Square-root of observed range weight.
void errorPropagation()
TODO: to be completed.
~BundleLidarRangeConstraint()
Destructor.
double vtpv()
Return current value of weighted sum-of-squares of residual.
double m_adjustedSigma
Adjusted uncertainty of range.
double rangeObserved()
Return observed lidar range.
double rangeAdjustedSigma()
Return adjusted sigma of range observation.
double m_rangeComputed
Computed range from distance condition.
void computeRange()
Compute range between spacecraft & lidar point on surface given the current values of the spacecraft ...
boost::numeric::ublas::compressed_vector< double > VectorCompressed
Definition for an Isis::LinearAlgebra::VectorCompressed of doubles.
boost::numeric::ublas::vector< double > Vector
Definition for an Isis::LinearAlgebra::Vector of doubles.
boost::numeric::ublas::symmetric_matrix< double, boost::numeric::ublas::upper > MatrixUpperTriangular
Definition for an Isis::LinearAlgebra::MatrixUpperTriangular of doubles with an upper configuration.
This is free and unencumbered software released into the public domain.
QSharedPointer< BundleLidarRangeConstraint > BundleLidarRangeConstraintQsp
Typdef for BundleLidarRangeConstraint QSharedPointer.