67 using TPath = std::map<mrpt::Clock::time_point, pose_t>;
85 return m_path.lower_bound(t);
89 return m_path.lower_bound(t);
94 return m_path.upper_bound(t);
98 return m_path.upper_bound(t);
103 m_path.erase(element_to_erase++);
104 return element_to_erase;
138 bool& out_valid_interp)
const;
142 bool& out_valid_interp)
const;
203 void filter(
unsigned int component,
unsigned int samples);
218 pose_t& out_interp)
const;
const_iterator find(const mrpt::Clock::time_point &t) const
mrpt::Clock::duration getMaxTimeInterpolation()
Set value of the maximum time to consider interpolation.
std::chrono::duration< rep, period > duration
mrpt::Clock::duration maxTimeInterpolation
Maximum time considered to interpolate.
const_iterator lower_bound(const mrpt::Clock::time_point &t) const
Base class for SE(2)/SE(3) interpolators.
std::chrono::time_point< Clock > time_point
typename Lie::Euclidean< DIM >::light_type point_t
TPoint2D or TPoint3D.
std::pair< mrpt::Clock::time_point, pose_t > TTimePosePair
const_reverse_iterator rbegin() const
const_iterator cend() const
TPath m_path
The sequence of poses.
const_iterator begin() const
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...
TInterpolatorMethod m_method
void setInterpolationMethod(TInterpolatorMethod method)
Change the method used to interpolate the robot path.
void filter(unsigned int component, unsigned int samples)
Filters by averaging one of the components of the pose data within the interpolator.
typename TPath::const_reverse_iterator const_reverse_iterator
MRPT_FILL_ENUM_MEMBER(mrpt::poses, imSpline)
const_reverse_iterator rend() const
typename Lie::SE< DIM >::light_type pose_t
TPose2D or TPose3D.
typename Lie::SE< DIM >::type cpose_t
CPose2D or CPose3D.
iterator lower_bound(const mrpt::Clock::time_point &t)
typename TPath::reverse_iterator reverse_iterator
std::map< mrpt::Clock::time_point, pose_t > TPath
const_iterator end() const
reverse_iterator rbegin()
void getBoundingBox(point_t &minCorner, point_t &maxCorner) const
Computes the bounding box in all Euclidean coordinates of the whole path.
bool loadFromTextFile(const std::string &s)
Loads from a text file, in the format described by saveToTextFile.
#define MRPT_ENUM_TYPE_END()
Traits for Euclidean R^N space.
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
TInterpolatorMethod getInterpolationMethod() const
Returns the currently set interpolation method.
iterator upper_bound(const mrpt::Clock::time_point &t)
Traits for SE(n), rigid-body transformations in R^n space.
void setMaxTimeInterpolation(const mrpt::Clock::duration &time)
Set value of the maximum time to consider interpolation.
typename TPath::iterator iterator
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...
const_iterator upper_bound(const mrpt::Clock::time_point &t) const
void clear()
Clears the current sequence of poses.
typename TPath::const_iterator const_iterator
const pose_t & at(const mrpt::Clock::time_point &t) const
pose_t & at(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
iterator erase(iterator element_to_erase)
iterator find(const mrpt::Clock::time_point &t)
void insert(const mrpt::Clock::time_point &t, const pose_t &p)
Inserts a new pose in the sequence.
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.
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, but interpolating the path with the given period in seconds.
CPoseInterpolatorBase()
Default ctor: empty sequence of poses.
#define MRPT_ENUM_TYPE_BEGIN(_ENUM_TYPE_WITH_NS)
const_iterator cbegin() const
TInterpolatorMethod
Type to select the interpolation method in CPoseInterpolatorBase derived classes. ...
double distance(const TPoint2D &p1, const TPoint2D &p2)
Gets the distance between two points in a 2D space.