MRPT logo

mrpt::poses::CPose3DInterpolator Class Reference

A trajectory in time and in 6D (CPose3D) that interpolates using splines the intervals between a set of given time-referenced poses. More...

#include <mrpt/poses/CPose3DInterpolator.h>

Inheritance diagram for mrpt::poses::CPose3DInterpolator:

mrpt::utils::CSerializable

List of all members.

Public Types

typedef TPath::iterator iterator
typedef TPath::const_iterator const_iterator

Public Member Functions

iterator begin ()
const_iterator begin () const
iterator end ()
const_iterator end () const
iterator lower_bound (const mrpt::system::TTimeStamp &t)
const_iterator lower_bound (const mrpt::system::TTimeStamp &t) const
iterator upper_bound (const mrpt::system::TTimeStamp &t)
const_iterator upper_bound (const mrpt::system::TTimeStamp &t) const
iterator erase (iterator element_to_erase)
size_t size () const
bool empty () const
 CPose3DInterpolator ()
 Creates an empty interpolator (with no points).
void insert (mrpt::system::TTimeStamp t, const CPose3D &p)
 Inserts a new pose in the sequence.
CPose3Dinterpolate (mrpt::system::TTimeStamp t, CPose3D &out_interp, bool &out_valid_interp) const
 Returns the pose at a given time, or interpolates using splines if there is not an exact match.
void clear ()
 Clears the current sequence of poses.
void setMaxTimeInterpolation (double time)
 Set value of the maximum time to consider interpolation.
double getMaxTimeInterpolation ()
 Set value of the maximum time to consider interpolation.
bool getPreviousPoseWithMinDistance (const mrpt::system::TTimeStamp &t, double distance, CPose3D &out_pose)
 Get the previous CPose3D in the map with a minimum defined distance.
bool saveToTextFile (const std::string &s) const
 Saves the points in the interpolator to a text file, with this format: Each row contains these elements separated by spaces:
bool loadFromTextFile (const std::string &s)
 Loads from a text file, in the format described by saveToTextFile.
void getBoundingBox (CPoint3D &minCorner, CPoint3D &maxCorner) const
 Computes the bounding box in X,Y,Z of the whole vehicle path.

Private Types

typedef
mrpt::utils::map_serializable
< mrpt::system::TTimeStamp,
CPose3D
TPath

Private Attributes

TPath m_path
 The sequence of poses.
double maxTimeInterpolation
 Maximum time considered to interpolate. If the difference between the desired timestamp where to interpolate and the next timestamp stored in the map is bigger than this value, the interpolation will not be done.


Detailed Description

A trajectory in time and in 6D (CPose3D) that interpolates using splines the intervals between a set of given time-referenced poses.

To insert new points into the sequence, use the "insert" method, and for getting an interpolated point, use "interpolate" method. For example:

                                CPose3DInterpolator             path;
                                path.insert( t0, CPose3D(...) );
                                path.insert( t1, CPose3D(...) );
                                path.insert( t2, CPose3D(...) );
                                path.insert( t3, CPose3D(...) );

                                CPose3D p;
                                bool valid;

                                cout << "Pose at t: " << path.interpolate(t,p,valid) << endl;

Time is represented with mrpt::system::TTimeStamp. See mrpt::system for methods and utilities to manage these time references.

See also:
CPoseOrPoint

Definition at line 63 of file CPose3DInterpolator.h.


Member Typedef Documentation

typedef TPath::const_iterator mrpt::poses::CPose3DInterpolator::const_iterator

Definition at line 76 of file CPose3DInterpolator.h.

Definition at line 75 of file CPose3DInterpolator.h.

Definition at line 69 of file CPose3DInterpolator.h.


Constructor & Destructor Documentation

mrpt::poses::CPose3DInterpolator::CPose3DInterpolator (  ) 

Creates an empty interpolator (with no points).


Member Function Documentation

const_iterator mrpt::poses::CPose3DInterpolator::begin (  )  const [inline]

Definition at line 79 of file CPose3DInterpolator.h.

iterator mrpt::poses::CPose3DInterpolator::begin (  )  [inline]

Definition at line 78 of file CPose3DInterpolator.h.

void mrpt::poses::CPose3DInterpolator::clear (  ) 

Clears the current sequence of poses.

bool mrpt::poses::CPose3DInterpolator::empty (  )  const [inline]

Definition at line 93 of file CPose3DInterpolator.h.

const_iterator mrpt::poses::CPose3DInterpolator::end (  )  const [inline]

Definition at line 82 of file CPose3DInterpolator.h.

iterator mrpt::poses::CPose3DInterpolator::end (  )  [inline]

Definition at line 81 of file CPose3DInterpolator.h.

iterator mrpt::poses::CPose3DInterpolator::erase ( iterator  element_to_erase  )  [inline]

Definition at line 90 of file CPose3DInterpolator.h.

void mrpt::poses::CPose3DInterpolator::getBoundingBox ( CPoint3D minCorner,
CPoint3D maxCorner 
) const

Computes the bounding box in X,Y,Z of the whole vehicle path.

Exceptions:
std::exception On empty path

double mrpt::poses::CPose3DInterpolator::getMaxTimeInterpolation (  ) 

Set value of the maximum time to consider interpolation.

bool mrpt::poses::CPose3DInterpolator::getPreviousPoseWithMinDistance ( const mrpt::system::TTimeStamp t,
double  distance,
CPose3D out_pose 
)

Get the previous CPose3D in the map with a minimum defined distance.

Returns:
true if pose was found, false otherwise.

void mrpt::poses::CPose3DInterpolator::insert ( mrpt::system::TTimeStamp  t,
const CPose3D p 
)

Inserts a new pose in the sequence.

It overwrites any previously existing pose at exactly the same time.

CPose3D& mrpt::poses::CPose3DInterpolator::interpolate ( mrpt::system::TTimeStamp  t,
CPose3D out_interp,
bool &  out_valid_interp 
) const

Returns the pose at a given time, or interpolates using splines if there is not an exact match.

Parameters:
t The time of the point to interpolate.
out_interp The output interpolated pose.
out_valid_interp Whether there was information enough to compute the interpolation.
Returns:
A reference to out_interp

bool mrpt::poses::CPose3DInterpolator::loadFromTextFile ( const std::string &  s  ) 

Loads from a text file, in the format described by saveToTextFile.

Returns:
true on success, false on any error.
Exceptions:
std::exception On invalid file format

const_iterator mrpt::poses::CPose3DInterpolator::lower_bound ( const mrpt::system::TTimeStamp t  )  const [inline]

Definition at line 85 of file CPose3DInterpolator.h.

iterator mrpt::poses::CPose3DInterpolator::lower_bound ( const mrpt::system::TTimeStamp t  )  [inline]

Definition at line 84 of file CPose3DInterpolator.h.

bool mrpt::poses::CPose3DInterpolator::saveToTextFile ( const std::string &  s  )  const

Saves the points in the interpolator to a text file, with this format: Each row contains these elements separated by spaces:

  • x y z: The 3D position in meters.
  • yaw pitch roll: The angles, in radians
    See also:
    loadFromTextFile
    Returns:
    true on success, false on any error.

void mrpt::poses::CPose3DInterpolator::setMaxTimeInterpolation ( double  time  ) 

Set value of the maximum time to consider interpolation.

If set to a negative value, the check is disabled (default behavior).

size_t mrpt::poses::CPose3DInterpolator::size (  )  const [inline]

Definition at line 92 of file CPose3DInterpolator.h.

const_iterator mrpt::poses::CPose3DInterpolator::upper_bound ( const mrpt::system::TTimeStamp t  )  const [inline]

Definition at line 88 of file CPose3DInterpolator.h.

iterator mrpt::poses::CPose3DInterpolator::upper_bound ( const mrpt::system::TTimeStamp t  )  [inline]

Definition at line 87 of file CPose3DInterpolator.h.


Member Data Documentation

The sequence of poses.

Definition at line 71 of file CPose3DInterpolator.h.

Maximum time considered to interpolate. If the difference between the desired timestamp where to interpolate and the next timestamp stored in the map is bigger than this value, the interpolation will not be done.

Definition at line 72 of file CPose3DInterpolator.h.




Page generated by Doxygen 1.5.8 for MRPT 0.6.5 SVN:exported at Mon Jan 12 13:00:16 UTC 2009