Aikido
CompositePlanner.hpp
Go to the documentation of this file.
1 #ifndef AIKIDO_PLANNER_COMPOSITEPLANNER_HPP_
2 #define AIKIDO_PLANNER_COMPOSITEPLANNER_HPP_
3 
4 #include <vector>
5 
8 
9 namespace aikido {
10 namespace planner {
11 
13 
14 class CompositePlanner : public Planner
17 {
18 public:
26  const std::vector<PlannerPtr>& planners = std::vector<PlannerPtr>());
27 
29  bool hasPlanner(const Planner& planner) const;
30 
31  // Documentation inherited.
32  bool canSolve(const Problem& problem) const override;
33 
34 protected:
36  const std::vector<PlannerPtr> mPlanners;
37  // We use std::vector to keep the order of planners. This is because some
38  // concrete planners rely on the order. Alternatively, we could remove
39  // mPlanners from here and let the concrete classes maintain the planner
40  // containers accordingly. In that case, we should also remove getPlanner and
41  // make addPlanner/hasPlanner/getPlanners as pure virtual functions.
42 };
43 
44 } // namespace planner
45 } // namespace aikido
46 
47 #endif // AIKIDO_PLANNER_COMPOSITEPLANNER_HPP_
aikido
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
aikido::planner::CompositePlanner::canSolve
bool canSolve(const Problem &problem) const override
Returns true if this planner can solve problem.
StateSpace.hpp
aikido::statespace::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: StateSpace.hpp:15
aikido::planner::Planner
Base class for a meta-planner.
Definition: Planner.hpp:17
aikido::planner::Problem
Base class for various planning problems.
Definition: Problem.hpp:13
aikido::planner::CompositePlanner::CompositePlanner
CompositePlanner(statespace::ConstStateSpacePtr stateSpace, const std::vector< PlannerPtr > &planners=std::vector< PlannerPtr >())
Constructs given list of planners.
AIKIDO_DECLARE_POINTERS
#define AIKIDO_DECLARE_POINTERS(X)
Definition: pointers.hpp:21
aikido::planner::CompositePlanner::mPlanners
const std::vector< PlannerPtr > mPlanners
Planners.
Definition: CompositePlanner.hpp:36
aikido::planner::CompositePlanner
CompositePlanner is a base class for concrete planner classes that contain multiple planners.
Definition: CompositePlanner.hpp:16
Planner.hpp
aikido::planner::CompositePlanner::hasPlanner
bool hasPlanner(const Planner &planner) const
Returns true if this CompositePlanner contains planner.