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<
21  const statespace::dart::MetaSkeletonStateSpace>(
22  planner->getStateSpace()),
23  std::move(metaSkeleton))
24  , mDelegate(std::move(planner))
25 {
26  // Do nothing
27 }
28 
29 //==============================================================================
30 template <typename DelegatePlanner, typename TargetPlanner>
32  DelegatePlanner,
33  TargetPlanner,
34  typename std::enable_if<std::is_base_of<
36  DelegatePlanner,
37  typename DelegatePlanner::SolvableProblem>,
38  DelegatePlanner>::value>::type>::
39  PlannerAdapter(std::shared_ptr<DelegatePlanner> planner)
40  : TargetPlanner(
41  planner->getMetaSkeletonStateSpace(), planner->getMetaSkeleton())
42  , mDelegate(std::move(planner))
43 {
44  // Do nothing
45 }
46 
47 } // namespace dart
48 } // namespace planner
49 } // 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