67 using TPath = std::map<mrpt::Clock::time_point, pose_t>;
103 m_path.erase(element_to_erase++);
104 return element_to_erase;
133 bool& out_valid_interp)
const;
137 bool& out_valid_interp)
const;
211 pose_t& out_interp)
const;
MRPT_FILL_ENUM_MEMBER(mrpt::poses, imSpline)
#define MRPT_ENUM_TYPE_END()
#define MRPT_ENUM_TYPE_BEGIN(_ENUM_TYPE_WITH_NS)
std::chrono::duration< rep, period > duration
std::chrono::time_point< Clock > time_point
Base class for SE(2)/SE(3) interpolators.
const_iterator cbegin() const
typename mrpt::poses::SE_traits< DIM >::lightweight_pose_t pose_t
TPose2D or TPose3D.
bool loadFromTextFile(const std::string &s)
Loads from a text file, in the format described by saveToTextFile.
std::pair< mrpt::Clock::time_point, pose_t > TTimePosePair
const_iterator begin() const
typename TPath::const_reverse_iterator const_reverse_iterator
iterator find(const mrpt::Clock::time_point &t)
void impl_interpolation(const TTimePosePair &p1, const TTimePosePair &p2, const TTimePosePair &p3, const TTimePosePair &p4, const TInterpolatorMethod method, const mrpt::Clock::time_point &td, pose_t &out_interp) const
const_iterator end() const
mrpt::Clock::duration getMaxTimeInterpolation()
Set value of the maximum time to consider interpolation.
pose_t & interpolate(const mrpt::Clock::time_point &t, pose_t &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.
typename mrpt::poses::SE_traits< DIM >::point_t point_t
TPoint2D or TPoint3D.
bool saveToTextFile(const std::string &s) const
Saves the points in the interpolator to a text file, with this format: Each row contains these elemen...
const_iterator cend() const
iterator erase(iterator element_to_erase)
typename TPath::const_iterator const_iterator
TInterpolatorMethod getInterpolationMethod() const
Returns the currently set interpolation method.
void insert(const mrpt::Clock::time_point &t, const pose_t &p)
Inserts a new pose in the sequence.
iterator upper_bound(const mrpt::Clock::time_point &t)
void setMaxTimeInterpolation(const mrpt::Clock::duration &time)
Set value of the maximum time to consider interpolation.
void getBoundingBox(point_t &minCorner, point_t &maxCorner) const
Computes the bounding box in all Euclidean coordinates of the whole path.
mrpt::Clock::duration maxTimeInterpolation
Maximum time considered to interpolate.
TInterpolatorMethod m_method
const_iterator lower_bound(const mrpt::Clock::time_point &t) const
typename mrpt::poses::SE_traits< DIM >::pose_t cpose_t
CPose2D or CPose3D.
bool saveInterpolatedToTextFile(const std::string &s, const mrpt::Clock::duration &period) const
Saves the points in the interpolator to a text file, with the same format that saveToTextFile,...
bool getPreviousPoseWithMinDistance(const mrpt::Clock::time_point &t, double distance, pose_t &out_pose)
Get the previous CPose3D in the map with a minimum defined distance.
void clear()
Clears the current sequence of poses.
typename TPath::iterator iterator
reverse_iterator rbegin()
const_reverse_iterator rend() const
CPoseInterpolatorBase()
Default ctor: empty sequence of poses.
void filter(unsigned int component, unsigned int samples)
Filters by averaging one of the components of the pose data within the interpolator.
iterator lower_bound(const mrpt::Clock::time_point &t)
TPath m_path
The sequence of poses.
std::map< mrpt::Clock::time_point, pose_t > TPath
const_reverse_iterator rbegin() const
const_iterator upper_bound(const mrpt::Clock::time_point &t) const
void setInterpolationMethod(TInterpolatorMethod method)
Change the method used to interpolate the robot path.
typename TPath::reverse_iterator reverse_iterator
const_iterator find(const mrpt::Clock::time_point &t) const
const Scalar * const_iterator
GLsizei const GLchar ** string
double distance(const TPoint2D &p1, const TPoint2D &p2)
Gets the distance between two points in a 2D space.
TInterpolatorMethod
Type to select the interpolation method in CPoseInterpolatorBase derived classes.
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
A helper class for SE(2) and SE(3) geometry-related transformations, on-manifold optimization Jacobia...