Main Page | Modules | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Arak::ArakPosteriorRangeObs Class Reference

#include <range_obs.hpp>

Inheritance diagram for Arak::ArakPosteriorRangeObs:

Inheritance graph
[legend]
Collaboration diagram for Arak::ArakPosteriorRangeObs:

Collaboration graph
[legend]
List of all members.

Detailed Description

An posterior Arak process conditioned on localized range measurements with Gaussian noise.

This potential is additively decomposable so the posterior Arak process has the spatial Markov property.

Definition at line 20 of file range_obs.hpp.

Public Member Functions

 ArakPosteriorRangeObs (const ArakProcess &prior, const Arak::Util::PropertyMap &props)
 Stream constructor.

virtual ~ArakPosteriorRangeObs ()
 Destructor.

const Geometry::Rectangleboundary () const
 Returns a const reference to a rectangle that encloses the observed data.

virtual double scale () const
 Returns the scale of this Arak process.

virtual double logMeasure () const
 Computes the (log) measure associated with the Arak process for the coloring.

virtual double potential () const
 Computes the potential associated with this posterior Arak process.

virtual void visualize (CGAL::Qt_widget &widget) const
 Renders a graphical representation of this Arak posterior using the supplied widget.

virtual void update (const Geometry::Point &a, const Geometry::Point &b, const Geometry::Point &c)
 This method recalculates the likelihood of all observations that are out of date and are sensitive to a given triangle.

virtual void recolored (const Geometry::Point &a, const Geometry::Point &b, const Geometry::Point &c)
 This method is invoked to inform this process that the triangle with the supplied vertices has been recolored.

virtual void recolored (const Geometry::Point &a, const Geometry::Point &b, const Geometry::Point &c, const Geometry::Point &d)
 This method is invoked to inform this process that the quadrilateral with the supplied vertices has been recolored.


Protected Types

typedef PointerHandle< RangeObsRangeObsHandle
typedef Grid< RangeObsHandleRangeObsIndex
 A grid where each cell stores handles to all observations whose source-to-impact rays intersect the cell's boundary.


Protected Member Functions

bool retraceObs (RangeObs &o, bool init=false) const
 Retraces the supplied observation in the current coloring.

double updateObsLP (RangeObs &o, bool init=false) const
 Updates the log probability of the supplied observation under the current coloring and process parameters.


Protected Attributes

const ArakProcessprior
 The prior process.

std::vector< RangeObs * > obs
 A vector of the observations.

RangeObsIndexobsIndex
 An index of the observations.

unsigned long int updateId
 The update sequence number.

double maxRange
 This is the range measurement obtained when the sensor does not impact a surface.

double rangeVar
 The variance of the range measurement, given the beam impacted a surface.

double pOutlier
 The probability of obtaining an outlier range measurement.

double pMaxFalseNeg
 The probability of obtaining a false-negative max-range measurement.

double pMaxFalsePos
 The probability of obtaining a false-positive max-range measurement.

double lp
 The current potential arising from observations.


Member Typedef Documentation

typedef PointerHandle<RangeObs> Arak::ArakPosteriorRangeObs::RangeObsHandle [protected]
 

Definition at line 26 of file range_obs.hpp.

Referenced by retraceObs(), and update().

typedef Grid<RangeObsHandle> Arak::ArakPosteriorRangeObs::RangeObsIndex [protected]
 

A grid where each cell stores handles to all observations whose source-to-impact rays intersect the cell's boundary.

Definition at line 32 of file range_obs.hpp.

Referenced by ArakPosteriorRangeObs().


Constructor & Destructor Documentation

ArakPosteriorRangeObs::ArakPosteriorRangeObs const ArakProcess prior,
const Arak::Util::PropertyMap props
 

Stream constructor.

The observations are read from a file of numbers with the following format:

* n * source-1-x source-1-y target-1-x target-1-y * source-2-x source-2-y target-2-x target-2-y * ... * source-n-x source-n-y target-n-x target-n-y *

Parameters:
c The coloring whose probability is evaluated. This is fixed for each process object so that likelihood changes due to coloring updates can be processed efficiently.
props the properties that define the posterior

Definition at line 12 of file range_obs.cpp.

References Arak::Coloring::addListener(), Arak::Coloring::addQueryPoints(), Arak::Coloring::boundary(), Arak::ArakProcess::getColoring(), maxRange, obsIndex, pMaxFalseNeg, pMaxFalsePos, Arak::Geometry::Point, pOutlier, Arak::Util::PropertyMap, RangeObsIndex, rangeVar, Arak::Geometry::Rectangle, and updateObsLP().

ArakPosteriorRangeObs::~ArakPosteriorRangeObs  )  [virtual]
 

Destructor.

Definition at line 196 of file range_obs.cpp.

References obsIndex.


Member Function Documentation

const Geometry::Rectangle& Arak::ArakPosteriorRangeObs::boundary  )  const [inline]
 

Returns a const reference to a rectangle that encloses the observed data.

Definition at line 241 of file range_obs.hpp.

References Arak::Grid< ItemType >::boundary(), obsIndex, and Arak::Geometry::Rectangle.

double ArakPosteriorRangeObs::logMeasure  )  const [virtual]
 

Computes the (log) measure associated with the Arak process for the coloring.

(This is actually multiplied by an elementary Poisson measure over the vertex locations to yield the coloring measure.)

Returns:
the measure of the coloring

Implements Arak::ArakProcess.

Definition at line 188 of file range_obs.cpp.

References Arak::ArakProcess::logMeasure().

double ArakPosteriorRangeObs::potential  )  const [virtual]
 

Computes the potential associated with this posterior Arak process.

Returns:
the current potential
See also:
ArakProcess

Implements Arak::ArakProcess.

Definition at line 192 of file range_obs.cpp.

References Arak::ArakProcess::potential().

void ArakPosteriorRangeObs::recolored const Geometry::Point a,
const Geometry::Point b,
const Geometry::Point c,
const Geometry::Point d
[virtual]
 

This method is invoked to inform this process that the quadrilateral with the supplied vertices has been recolored.

The vertices are supplied in either clockwise or counter-clockwise order. Note that this quadrilateral is simple, but not necessarily convex.

Parameters:
a the first vertex of the quadrilateral
b the second vertex of the quadrilateral
c the third vertex of the quadrilateral
d the fourth vertex of the quadrilateral

Reimplemented from Arak::Coloring::Listener.

Definition at line 266 of file range_obs.cpp.

References Arak::Geometry::Point, and update().

void ArakPosteriorRangeObs::recolored const Geometry::Point a,
const Geometry::Point b,
const Geometry::Point c
[virtual]
 

This method is invoked to inform this process that the triangle with the supplied vertices has been recolored.

Parameters:
a the first vertex of the triangle
b the second vertex of the triangle
c the third vertex of the triangle

Reimplemented from Arak::Coloring::Listener.

Definition at line 259 of file range_obs.cpp.

References Arak::Geometry::Point, and update().

bool ArakPosteriorRangeObs::retraceObs RangeObs o,
bool  init = false
const [protected]
 

Retraces the supplied observation in the current coloring.

Returns true if the contact point of the observation changed.

Definition at line 98 of file range_obs.cpp.

References Arak::Grid< ItemType >::boundary(), Arak::ArakPosteriorRangeObs::RangeObs::curContact, Arak::ArakPosteriorRangeObs::RangeObs::curRange, Arak::ArakPosteriorRangeObs::RangeObs::entries, Arak::Coloring::IntEdgeHandle, Arak::ArakPosteriorRangeObs::RangeObs::max, maxRange, obsIndex, Arak::Geometry::Point, RangeObsHandle, Arak::ArakPosteriorRangeObs::RangeObs::source, Arak::Coloring::trace(), and Arak::ArakPosteriorRangeObs::RangeObs::unused.

Referenced by updateObsLP().

virtual double Arak::ArakPosteriorRangeObs::scale  )  const [inline, virtual]
 

Returns the scale of this Arak process.

Implements Arak::ArakProcess.

Definition at line 248 of file range_obs.hpp.

References Arak::ArakProcess::scale().

void ArakPosteriorRangeObs::update const Geometry::Point a,
const Geometry::Point b,
const Geometry::Point c
[virtual]
 

This method recalculates the likelihood of all observations that are out of date and are sensitive to a given triangle.

Parameters:
a the first vertex of the triangle
b the second vertex of the triangle
c the third vertex of the triangle

Definition at line 238 of file range_obs.cpp.

References obsIndex, Arak::Geometry::Point, RangeObsHandle, Arak::Geometry::Triangle, and updateObsLP().

Referenced by recolored().

double ArakPosteriorRangeObs::updateObsLP RangeObs o,
bool  init = false
const [protected]
 

Updates the log probability of the supplied observation under the current coloring and process parameters.

The change in its log probability is returned.

Definition at line 146 of file range_obs.cpp.

References Arak::BLACK, Arak::Coloring::color(), Arak::Color, Arak::ArakPosteriorRangeObs::RangeObs::curRange, Arak::ArakPosteriorRangeObs::RangeObs::isMaxRange, Arak::ln(), Arak::ArakPosteriorRangeObs::RangeObs::lp, maxRange, pMaxFalseNeg, pMaxFalsePos, pOutlier, Arak::ArakPosteriorRangeObs::RangeObs::range, rangeVar, retraceObs(), Arak::ArakPosteriorRangeObs::RangeObs::source, Arak::ArakPosteriorRangeObs::RangeObs::sourceColor, and Arak::ArakPosteriorRangeObs::RangeObs::updateId.

Referenced by ArakPosteriorRangeObs(), and update().

void ArakPosteriorRangeObs::visualize CGAL::Qt_widget &  widget  )  const [virtual]
 

Renders a graphical representation of this Arak posterior using the supplied widget.

The Gaussian observations are rendered as disks of varying gray level.

Parameters:
widget the widget on which to visualize the process

Reimplemented from Arak::ArakProcess.

Definition at line 203 of file range_obs.cpp.

References Arak::jet_colors, Arak::jet_size, Arak::ArakPosteriorRangeObs::RangeObs::lp, Arak::Geometry::Segment, Arak::ArakPosteriorRangeObs::RangeObs::source, and Arak::ArakPosteriorRangeObs::RangeObs::target.


Member Data Documentation

double Arak::ArakPosteriorRangeObs::lp [protected]
 

The current potential arising from observations.

Definition at line 194 of file range_obs.hpp.

double Arak::ArakPosteriorRangeObs::maxRange [protected]
 

This is the range measurement obtained when the sensor does not impact a surface.

Definition at line 164 of file range_obs.hpp.

Referenced by ArakPosteriorRangeObs(), retraceObs(), and updateObsLP().

std::vector<RangeObs*> Arak::ArakPosteriorRangeObs::obs [protected]
 

A vector of the observations.

Definition at line 148 of file range_obs.hpp.

RangeObsIndex* Arak::ArakPosteriorRangeObs::obsIndex [protected]
 

An index of the observations.

Definition at line 153 of file range_obs.hpp.

Referenced by ArakPosteriorRangeObs(), boundary(), retraceObs(), update(), and ~ArakPosteriorRangeObs().

double Arak::ArakPosteriorRangeObs::pMaxFalseNeg [protected]
 

The probability of obtaining a false-negative max-range measurement.

This occurs when the correct observation is maxRange but a smaller range is observed.

Definition at line 182 of file range_obs.hpp.

Referenced by ArakPosteriorRangeObs(), and updateObsLP().

double Arak::ArakPosteriorRangeObs::pMaxFalsePos [protected]
 

The probability of obtaining a false-positive max-range measurement.

This occurs when the correct observation is a range smaller than maxRange but maxRange is observed.

Definition at line 189 of file range_obs.hpp.

Referenced by ArakPosteriorRangeObs(), and updateObsLP().

double Arak::ArakPosteriorRangeObs::pOutlier [protected]
 

The probability of obtaining an outlier range measurement.

Definition at line 175 of file range_obs.hpp.

Referenced by ArakPosteriorRangeObs(), and updateObsLP().

const ArakProcess& Arak::ArakPosteriorRangeObs::prior [protected]
 

The prior process.

Definition at line 143 of file range_obs.hpp.

double Arak::ArakPosteriorRangeObs::rangeVar [protected]
 

The variance of the range measurement, given the beam impacted a surface.

Definition at line 170 of file range_obs.hpp.

Referenced by ArakPosteriorRangeObs(), and updateObsLP().

unsigned long int Arak::ArakPosteriorRangeObs::updateId [protected]
 

The update sequence number.

Definition at line 158 of file range_obs.hpp.


The documentation for this class was generated from the following files:
Generated on Wed May 25 14:41:31 2005 for Arak by doxygen 1.3.6