hpp-manipulation  4.9.0
Classes for manipulation planning.
problem.hh
Go to the documentation of this file.
1 // Copyright (c) 2014, LAAS-CNRS
2 // Authors: Joseph Mirabel (joseph.mirabel@laas.fr)
3 //
4 // This file is part of hpp-manipulation.
5 // hpp-manipulation is free software: you can redistribute it
6 // and/or modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation, either version
8 // 3 of the License, or (at your option) any later version.
9 //
10 // hpp-manipulation is distributed in the hope that it will be
11 // useful, but WITHOUT ANY WARRANTY; without even the implied warranty
12 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // General Lesser Public License for more details. You should have
14 // received a copy of the GNU Lesser General Public License along with
15 // hpp-manipulation. If not, see <http://www.gnu.org/licenses/>.
16 
17 #ifndef HPP_MANIPULATION_PROBLEM_HH
18 # define HPP_MANIPULATION_PROBLEM_HH
19 
20 # include <hpp/core/problem.hh>
21 # include <hpp/core/problem-solver.hh> // PathValidationBuilder_t
22 
23 # include <hpp/manipulation/fwd.hh>
26 
27 namespace hpp {
28  namespace manipulation {
31 
32  class HPP_MANIPULATION_DLLAPI Problem : public core::Problem
33  {
34  public:
36 
38  static ProblemPtr_t create (DevicePtr_t robot);
39 
41  void constraintGraph (const graph::GraphPtr_t& graph);
42 
45  {
46  return graph_;
47  }
48 
50  virtual void checkProblem () const;
51 
53  PathValidationPtr_t pathValidation () const;
54 
57  void pathValidation (const PathValidationPtr_t& pathValidation);
58 
60  SteeringMethodPtr_t manipulationSteeringMethod () const;
61 
66  PathValidationPtr_t pathValidationFactory () const;
67 
68  void setPathValidationFactory (
69  const core::PathValidationBuilder_t& factory,
70  const value_type& tol);
71 
72  protected:
74  Problem (DevicePtr_t robot);
75 
76  void init (ProblemWkPtr_t wkPtr);
77 
78  private:
79  ProblemWkPtr_t wkPtr_;
80 
82  graph::GraphPtr_t graph_;
83 
85  value_type pvTol_;
86  }; // class Problem
88  } // namespace manipulation
89 } // namespace hpp
90 
91 #endif // HPP_MANIPULATION_PROBLEM_HH
graph::GraphPtr_t constraintGraph() const
Get the graph of constraints.
Definition: problem.hh:44
boost::shared_ptr< SteeringMethod > SteeringMethodPtr_t
Definition: fwd.hh:90
Definition: problem.hh:32
core::value_type value_type
Definition: fwd.hh:79
boost::function< PathValidationPtr_t(const DevicePtr_t &, const value_type &) > PathValidationBuilder_t
boost::shared_ptr< Problem > ProblemPtr_t
Definition: fwd.hh:55
boost::shared_ptr< Device > DevicePtr_t
Definition: fwd.hh:29
void init(const ConfigurationShooterWkPtr_t &weak)
core::PathValidationPtr_t PathValidationPtr_t
Definition: fwd.hh:118
static GradientBasedPtr_t create(const Problem &problem)
boost::shared_ptr< Graph > GraphPtr_t
Definition: fwd.hh:35
core::Problem Parent
Definition: problem.hh:35