Aikido
TrajectoryExecutor.hpp
Go to the documentation of this file.
1 #ifndef AIKIDO_CONTROL_TRAJECTORYEXECUTOR_HPP_
2 #define AIKIDO_CONTROL_TRAJECTORYEXECUTOR_HPP_
3 
4 #include <chrono>
5 #include <future>
6 #include <set>
7 
10 
11 namespace aikido {
12 namespace control {
13 
15 
18 {
19 public:
20  virtual ~TrajectoryExecutor() = default;
21 
25  virtual void validate(const trajectory::Trajectory* traj) = 0;
26 
34  virtual std::future<void> execute(const trajectory::ConstTrajectoryPtr& traj)
35  = 0;
36 
42  virtual void step(const std::chrono::system_clock::time_point& timepoint) = 0;
43 
45  virtual void cancel() = 0;
46 
47 protected:
49  std::set<const trajectory::Trajectory*> mValidatedTrajectories;
50 
52  std::chrono::system_clock::time_point mExecutionStartTime;
53 };
54 
55 } // namespace control
56 } // namespace aikido
57 
58 #endif
aikido
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
aikido::control::TrajectoryExecutor::step
virtual void step(const std::chrono::system_clock::time_point &timepoint)=0
Step to a point in time.
aikido::control::TrajectoryExecutor::cancel
virtual void cancel()=0
Cancel the current trajectory.
aikido::control::TrajectoryExecutor::~TrajectoryExecutor
virtual ~TrajectoryExecutor()=default
aikido::trajectory::ConstTrajectoryPtr
std::shared_ptr< const Trajectory > ConstTrajectoryPtr
Definition: Trajectory.hpp:13
aikido::control::TrajectoryExecutor::validate
virtual void validate(const trajectory::Trajectory *traj)=0
Validate the traj in preparation for execution.
aikido::control::TrajectoryExecutor::execute
virtual std::future< void > execute(const trajectory::ConstTrajectoryPtr &traj)=0
Validate and execute traj, setting future upon completion.
pointers.hpp
Trajectory.hpp
aikido::control::TrajectoryExecutor
Abstract class for executing trajectories.
Definition: TrajectoryExecutor.hpp:17
aikido::control::TrajectoryExecutor::mValidatedTrajectories
std::set< const trajectory::Trajectory * > mValidatedTrajectories
Set of trajectories validated by executor.
Definition: TrajectoryExecutor.hpp:49
aikido::control::TrajectoryExecutor::mExecutionStartTime
std::chrono::system_clock::time_point mExecutionStartTime
Time of previous call.
Definition: TrajectoryExecutor.hpp:52
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