Aikido
Interpolated.hpp
Go to the documentation of this file.
1 #ifndef AIKIDO_TRAJECTORY_PIECEWISELINEAR_TRAJECTORY_HPP_
2 #define AIKIDO_TRAJECTORY_PIECEWISELINEAR_TRAJECTORY_HPP_
3 
7 
8 namespace aikido {
9 namespace trajectory {
10 
12 
13 class Interpolated : public Trajectory
15 {
16 public:
23  statespace::ConstInterpolatorPtr _interpolator);
24 
25  virtual ~Interpolated();
26 
31  void addWaypoint(double _t, const statespace::StateSpace::State* _state);
32 
37  const statespace::StateSpace::State* getWaypoint(std::size_t _index) const;
38 
42  double getWaypointTime(std::size_t _index) const;
43 
45  std::size_t getNumWaypoints() const;
46 
47  // Documentation inherited
49 
52 
53  // Documentation inherited
54  std::size_t getNumDerivatives() const override;
55 
56  // Documentation inherited
57  double getStartTime() const override;
58 
59  // Documentation inherited
60  double getEndTime() const override;
61 
62  // Documentation inherited
63  double getDuration() const override;
64 
65  // Documentation inherited
66  void evaluate(
67  double _t, statespace::StateSpace::State* _state) const override;
68 
69  // Documentation inherited
70  void evaluateDerivative(
71  double _t,
72  int _derivative,
73  Eigen::VectorXd& _tangentVector) const override;
74 
75 private:
77  struct Waypoint
78  {
79  Waypoint(double _t, statespace::StateSpace::State* _state);
80 
82  bool operator<(const Waypoint& rhs) const;
83 
85  bool operator<(double rhs) const;
86 
89  void free(const statespace::ConstStateSpacePtr& stateSpace);
90 
91  double t;
93  };
94 
98  int getWaypointIndexAfterTime(double _t) const;
99 
102  std::vector<Waypoint> mWaypoints;
103 };
104 
105 } // namespace trajectory
106 } // namespace aikido
107 
108 #endif // ifndef AIKIDO_TRAJECTORY_PIECEWISELINEAR_TRAJECTORY_HPP_
aikido::trajectory::Interpolated::Waypoint
Waypoint in the trajectory.
Definition: Interpolated.hpp:77
aikido::trajectory::Interpolated::Interpolated
Interpolated(statespace::ConstStateSpacePtr _stateSpace, statespace::ConstInterpolatorPtr _interpolator)
Constructs an empty trajectory.
aikido::trajectory::Interpolated::Waypoint::free
void free(const statespace::ConstStateSpacePtr &stateSpace)
Free state.
aikido::trajectory::Interpolated::getInterpolator
statespace::ConstInterpolatorPtr getInterpolator() const
Gets the interpolator used to interpolate between waypoints.
aikido
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
aikido::trajectory::Interpolated::evaluateDerivative
void evaluateDerivative(double _t, int _derivative, Eigen::VectorXd &_tangentVector) const override
Evaluates the derivative of the trajectory at time _t.
aikido::trajectory::Interpolated::getWaypointIndexAfterTime
int getWaypointIndexAfterTime(double _t) const
Get the index of the first waypoint whose time value is larger than _t.
aikido::trajectory::Interpolated::getEndTime
double getEndTime() const override
Time at which the trajectory ends.
aikido::trajectory::Interpolated::evaluate
void evaluate(double _t, statespace::StateSpace::State *_state) const override
Evaluates the state of the trajectory at time _t and store the result in a _state allocated by getSta...
aikido::trajectory::Interpolated::mInterpolator
statespace::ConstInterpolatorPtr mInterpolator
Definition: Interpolated.hpp:101
aikido::statespace::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: StateSpace.hpp:15
aikido::trajectory::Interpolated::getStateSpace
statespace::ConstStateSpacePtr getStateSpace() const override
Gets the StateSpace that this trajectory is defined in.
aikido::statespace::ConstInterpolatorPtr
std::shared_ptr< const Interpolator > ConstInterpolatorPtr
Definition: Interpolator.hpp:12
aikido::trajectory::Interpolated::mStateSpace
statespace::ConstStateSpacePtr mStateSpace
Definition: Interpolated.hpp:100
aikido::trajectory::Interpolated::Waypoint::state
statespace::StateSpace::State * state
Definition: Interpolated.hpp:92
aikido::trajectory::Interpolated::Waypoint::t
double t
Definition: Interpolated.hpp:91
aikido::trajectory::Interpolated::mWaypoints
std::vector< Waypoint > mWaypoints
Definition: Interpolated.hpp:102
pointers.hpp
aikido::trajectory::Interpolated::Waypoint::Waypoint
Waypoint(double _t, statespace::StateSpace::State *_state)
Trajectory.hpp
aikido::trajectory::Interpolated::addWaypoint
void addWaypoint(double _t, const statespace::StateSpace::State *_state)
Add a waypoint to the trajectory at the given time.
aikido::trajectory::Interpolated::Waypoint::operator<
bool operator<(const Waypoint &rhs) const
Comparator to allow sorting waypoints based on time.
aikido::trajectory::Interpolated::getDuration
double getDuration() const override
Duration of the trajectory.
aikido::trajectory::Interpolated::getWaypointTime
double getWaypointTime(std::size_t _index) const
Gets the time of a waypoint.
aikido::trajectory::Interpolated::getNumWaypoints
std::size_t getNumWaypoints() const
Gets the number of waypoints.
aikido::statespace::StateSpace::State
Definition: StateSpace.hpp:167
aikido::trajectory::Interpolated::getNumDerivatives
std::size_t getNumDerivatives() const override
Gets an upper bound on the number of non-zero derivatives available in this parameterization.
aikido::trajectory::Interpolated::getWaypoint
const statespace::StateSpace::State * getWaypoint(std::size_t _index) const
Gets a waypoint.
aikido::trajectory::Interpolated
Trajectory that uses an Interpolator to interpolate between waypoints.
Definition: Interpolated.hpp:14
aikido::trajectory::Interpolated::getStartTime
double getStartTime() const override
Time at which the trajectory starts.
AIKIDO_DECLARE_POINTERS
#define AIKIDO_DECLARE_POINTERS(X)
Definition: pointers.hpp:21
aikido::trajectory::Trajectory
Time-parameterized path in a StateSpace.
Definition: Trajectory.hpp:20
GeodesicInterpolator.hpp
aikido::trajectory::Interpolated::~Interpolated
virtual ~Interpolated()