Aikido
PlannerAdapter-impl.hpp
Go to the documentation of this file.
1 #include <type_traits>
2 
5 
6 namespace aikido {
7 namespace planner {
8 namespace dart {
9 
10 //==============================================================================
11 template <
12  typename DelegatePlanner,
13  typename TargetPlanner,
14  typename DelegateIsDartPlanner>
17  std::shared_ptr<DelegatePlanner> planner,
18  ::dart::dynamics::MetaSkeletonPtr metaSkeleton)
19  : TargetPlanner(
20  std::dynamic_pointer_cast<const statespace::dart::MetaSkeletonStateSpace>(
21  planner->getStateSpace()),
22  std::move(metaSkeleton))
23  , mDelegate(std::move(planner))
24 {
25  // Do nothing
26 }
27 
28 //==============================================================================
29 template <typename DelegatePlanner, typename TargetPlanner>
31  DelegatePlanner,
32  TargetPlanner,
33  typename std::enable_if<std::is_base_of<
35  DelegatePlanner,
36  typename DelegatePlanner::SolvableProblem>,
37  DelegatePlanner>::value>::type>::
38  PlannerAdapter(std::shared_ptr<DelegatePlanner> planner)
39  : TargetPlanner(
40  planner->getMetaSkeletonStateSpace(), planner->getMetaSkeleton())
41  , mDelegate(std::move(planner))
42 {
43  // Do nothing
44 }
45 
46 } // namespace dart
47 } // namespace planner
48 } // namespace aikido
aikido
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
aikido::planner::dart::PlannerAdapter::PlannerAdapter
PlannerAdapter(std::shared_ptr< DelegatePlanner > planner, ::dart::dynamics::MetaSkeletonPtr metaSkeleton)
Constructor to adapt non-DART planners.
Definition: PlannerAdapter-impl.hpp:16
aikido::planner::dart::PlannerAdapter
Adapts a DelegatePlanner to solve the single problem that TargetPlanner can solve.
Definition: PlannerAdapter.hpp:17
PlannerAdapter.hpp
aikido::planner::dart::SingleProblemPlanner
Base planner class for all DART single problem planners.
Definition: SingleProblemPlanner.hpp:14
MetaSkeletonStateSpace.hpp
dart
Definition: FrameMarker.hpp:11