Aikido
KinematicSimulationTrajectoryExecutor.hpp
Go to the documentation of this file.
1 #ifndef AIKIDO_CONTROL_KINEMATICSIMULATIONTRAJECTORYEXECUTOR_HPP_
2 #define AIKIDO_CONTROL_KINEMATICSIMULATIONTRAJECTORYEXECUTOR_HPP_
3 
4 #include <future>
5 #include <mutex>
6 
7 #include <dart/dynamics/Skeleton.hpp>
8 
12 
13 namespace aikido {
14 namespace control {
15 
19 {
20 public:
26  ::dart::dynamics::SkeletonPtr skeleton);
27 
29 
30  // Documentation inherited.
31  void validate(const trajectory::Trajectory* traj) override;
32 
41  std::future<void> execute(
42  const trajectory::ConstTrajectoryPtr& traj) override;
43 
49  void step(const std::chrono::system_clock::time_point& timepoint) override;
50 
52  void cancel() override;
53 
54 private:
56  ::dart::dynamics::SkeletonPtr mSkeleton;
57 
60 
63 
65  ::dart::dynamics::MetaSkeletonPtr mMetaSkeleton;
66 
69 
71  std::unique_ptr<std::promise<void>> mPromise;
72 
74  mutable std::mutex mMutex;
75 };
76 
77 } // namespace control
78 } // namespace aikido
79 
80 #endif
aikido::statespace::dart::ConstMetaSkeletonStateSpacePtr
std::shared_ptr< const MetaSkeletonStateSpace > ConstMetaSkeletonStateSpacePtr
Definition: MetaSkeletonStateSpace.hpp:17
aikido::control::KinematicSimulationTrajectoryExecutor::mMutex
std::mutex mMutex
Manages access to mTraj, mInProgress, mPromise.
Definition: KinematicSimulationTrajectoryExecutor.hpp:74
aikido::control::KinematicSimulationTrajectoryExecutor::mPromise
std::unique_ptr< std::promise< void > > mPromise
Promise whose future is returned by execute()
Definition: KinematicSimulationTrajectoryExecutor.hpp:71
aikido
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
aikido::control::KinematicSimulationTrajectoryExecutor::KinematicSimulationTrajectoryExecutor
KinematicSimulationTrajectoryExecutor(::dart::dynamics::SkeletonPtr skeleton)
Constructor.
aikido::control::KinematicSimulationTrajectoryExecutor::mSkeleton
::dart::dynamics::SkeletonPtr mSkeleton
Skeleton to execute trajectories on.
Definition: KinematicSimulationTrajectoryExecutor.hpp:56
aikido::control::KinematicSimulationTrajectoryExecutor::mStateSpace
statespace::dart::ConstMetaSkeletonStateSpacePtr mStateSpace
Trajectory's MetaSkeletonStateSpace.
Definition: KinematicSimulationTrajectoryExecutor.hpp:62
aikido::control::KinematicSimulationTrajectoryExecutor::execute
std::future< void > execute(const trajectory::ConstTrajectoryPtr &traj) override
Execute traj and set future upon completion.
aikido::trajectory::ConstTrajectoryPtr
std::shared_ptr< const Trajectory > ConstTrajectoryPtr
Definition: Trajectory.hpp:13
aikido::control::KinematicSimulationTrajectoryExecutor
Executes trajectories in DART.
Definition: KinematicSimulationTrajectoryExecutor.hpp:18
aikido::control::KinematicSimulationTrajectoryExecutor::validate
void validate(const trajectory::Trajectory *traj) override
Validate the traj in preparation for execution.
aikido::control::KinematicSimulationTrajectoryExecutor::cancel
void cancel() override
Cancels the current trajectory.
aikido::control::KinematicSimulationTrajectoryExecutor::mMetaSkeleton
::dart::dynamics::MetaSkeletonPtr mMetaSkeleton
The controlled subset of mSkeleton for the currently executing trajectory.
Definition: KinematicSimulationTrajectoryExecutor.hpp:65
Trajectory.hpp
aikido::control::TrajectoryExecutor
Abstract class for executing trajectories.
Definition: TrajectoryExecutor.hpp:17
aikido::control::KinematicSimulationTrajectoryExecutor::step
void step(const std::chrono::system_clock::time_point &timepoint) override
Step to a point in time.
aikido::control::KinematicSimulationTrajectoryExecutor::mInProgress
bool mInProgress
Whether a trajectory is being executed.
Definition: KinematicSimulationTrajectoryExecutor.hpp:68
MetaSkeletonStateSpace.hpp
TrajectoryExecutor.hpp
aikido::trajectory::Trajectory
Time-parameterized path in a StateSpace.
Definition: Trajectory.hpp:20
aikido::control::KinematicSimulationTrajectoryExecutor::~KinematicSimulationTrajectoryExecutor
virtual ~KinematicSimulationTrajectoryExecutor()
aikido::control::KinematicSimulationTrajectoryExecutor::mTraj
trajectory::ConstTrajectoryPtr mTraj
Trajectory being executed.
Definition: KinematicSimulationTrajectoryExecutor.hpp:59