Aikido
InstantaneousTrajectoryExecutor.hpp
Go to the documentation of this file.
1 #ifndef AIKIDO_CONTROL_INSTANTANEOUSTRAJECTORYEXECUTOR_HPP_
2 #define AIKIDO_CONTROL_INSTANTANEOUSTRAJECTORYEXECUTOR_HPP_
3 
4 #include <future>
5 #include <mutex>
6 
7 #include <dart/dynamics/Skeleton.hpp>
8 
11 
12 namespace aikido {
13 namespace control {
14 
18 {
19 public:
25  ::dart::dynamics::SkeletonPtr skeleton);
26 
28 
29  // Documentation inherited.
30  void validate(const trajectory::Trajectory* traj) override;
31 
40  std::future<void> execute(
41  const trajectory::ConstTrajectoryPtr& traj) override;
42 
44  void step(
45  const std::chrono::system_clock::time_point& /*timepoint*/) override;
46 
48  void cancel() override;
49 
50 private:
52  ::dart::dynamics::SkeletonPtr mSkeleton;
53 
55  std::unique_ptr<std::promise<void>> mPromise;
56 
58  mutable std::mutex mMutex;
59 };
60 
61 } // namespace control
62 } // namespace aikido
63 
64 #endif
aikido::control::InstantaneousTrajectoryExecutor::execute
std::future< void > execute(const trajectory::ConstTrajectoryPtr &traj) override
Instantaneously execute traj and set future upon completion.
aikido
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
aikido::trajectory::ConstTrajectoryPtr
std::shared_ptr< const Trajectory > ConstTrajectoryPtr
Definition: Trajectory.hpp:13
aikido::control::InstantaneousTrajectoryExecutor::~InstantaneousTrajectoryExecutor
virtual ~InstantaneousTrajectoryExecutor()
aikido::control::InstantaneousTrajectoryExecutor::validate
void validate(const trajectory::Trajectory *traj) override
Validate the traj in preparation for execution.
Trajectory.hpp
aikido::control::TrajectoryExecutor
Abstract class for executing trajectories.
Definition: TrajectoryExecutor.hpp:17
aikido::control::InstantaneousTrajectoryExecutor::step
void step(const std::chrono::system_clock::time_point &) override
Does nothing.
aikido::control::InstantaneousTrajectoryExecutor::mSkeleton
::dart::dynamics::SkeletonPtr mSkeleton
Skeleton to execute trajectories on.
Definition: InstantaneousTrajectoryExecutor.hpp:52
aikido::control::InstantaneousTrajectoryExecutor::InstantaneousTrajectoryExecutor
InstantaneousTrajectoryExecutor(::dart::dynamics::SkeletonPtr skeleton)
Constructor.
aikido::control::InstantaneousTrajectoryExecutor
Instantaneously executes a trajectory in simulation by setting DOF positions to the end of the trajec...
Definition: InstantaneousTrajectoryExecutor.hpp:17
aikido::control::InstantaneousTrajectoryExecutor::mMutex
std::mutex mMutex
Manages access to mPromise.
Definition: InstantaneousTrajectoryExecutor.hpp:58
TrajectoryExecutor.hpp
aikido::trajectory::Trajectory
Time-parameterized path in a StateSpace.
Definition: Trajectory.hpp:20
aikido::control::InstantaneousTrajectoryExecutor::mPromise
std::unique_ptr< std::promise< void > > mPromise
Promise whose future is returned by execute()
Definition: InstantaneousTrajectoryExecutor.hpp:55
aikido::control::InstantaneousTrajectoryExecutor::cancel
void cancel() override
Does nothing.