hpp-rbprm  4.14.0
Implementation of RB-PRM planner using hpp.
time-constraint-shooter.hh
Go to the documentation of this file.
1 //
2 // Copyright (c) 2014 CNRS
3 // Authors: Steve Tonneau (steve.tonneau@laas.fr)
4 //
5 // This file is part of hpp-rbprm.
6 // hpp-rbprm is free software: you can redistribute it
7 // and/or modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation, either version
9 // 3 of the License, or (at your option) any later version.
10 //
11 // hpp-rbprm is distributed in the hope that it will be
12 // useful, but WITHOUT ANY WARRANTY; without even the implied warranty
13 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // General Lesser Public License for more details. You should have
15 // received a copy of the GNU Lesser General Public License along with
16 // hpp-core If not, see
17 // <http://www.gnu.org/licenses/>.
18 
19 #ifndef HPP_RBPRM_TIME_CONSTRAINT_SHOOTER_HH
20 #define HPP_RBPRM_TIME_CONSTRAINT_SHOOTER_HH
21 
22 #include <hpp/core/config-projector.hh>
23 #include <hpp/core/configuration-shooter.hh>
24 #include <hpp/core/path.hh>
25 #include <hpp/pinocchio/device.hh>
26 #include <hpp/rbprm/config.hh>
29 #include <vector>
30 
31 namespace hpp {
32 namespace rbprm {
33 namespace interpolation {
34 HPP_PREDEF_CLASS(TimeConstraintShooter);
35 typedef shared_ptr<TimeConstraintShooter> TimeConstraintShooterPtr_t;
36 
43  : public core::ConfigurationShooter {
45  public:
53  static HPP_RBPRM_DLLAPI TimeConstraintShooterPtr_t
54  create(const core::DevicePtr_t device, const hpp::core::PathPtr_t rootPath,
55  const std::size_t pathDofRank, const T_TimeDependant& tds,
56  core::ConfigProjectorPtr_t projector, const rbprm::T_Limb freeLimbs);
57 
58  public:
59  const hpp::core::PathPtr_t rootPath_;
60  const std::size_t pathDofRank_;
61  const std::size_t configSize_;
62  const core::DevicePtr_t device_;
64 
65  private:
66  TimeConstraintShooterWkPtr_t weak_;
67 
68  public:
70  core::ConfigProjectorPtr_t projector_;
71 
72  protected:
73  TimeConstraintShooter(const core::DevicePtr_t device,
74  const hpp::core::PathPtr_t rootPath,
75  const std::size_t pathDofRank,
76  const T_TimeDependant& tds,
77  core::ConfigProjectorPtr_t projector,
78  const rbprm::T_Limb freeLimbs);
79 
80  void init(const TimeConstraintShooterPtr_t& self);
81 
82  virtual void impl_shoot(core::Configuration_t& q) const;
83 }; // class TimeConstraintShooter
85 } // namespace interpolation
86 } // namespace rbprm
87 } // namespace hpp
88 
89 #endif // HPP_RBPRM_TIME_CONSTRAINT_SHOOTER_HH
const std::size_t configSize_
Definition: time-constraint-shooter.hh:61
#define HPP_RBPRM_DLLAPI
Definition: config.hh:64
std::map< std::string, const rbprm::RbPrmLimbPtr_t > T_Limb
Definition: rbprm-limb.hh:43
Definition: algorithm.hh:26
const rbprm::T_Limb freeLimbs_
Definition: time-constraint-shooter.hh:63
Definition: time-constraint-shooter.hh:42
shared_ptr< TimeConstraintShooter > TimeConstraintShooterPtr_t
Definition: time-constraint-shooter.hh:35
const core::DevicePtr_t device_
Definition: time-constraint-shooter.hh:62
T_TimeDependant tds_
Definition: time-constraint-shooter.hh:69
const hpp::core::PathPtr_t rootPath_
Definition: time-constraint-shooter.hh:59
const std::size_t pathDofRank_
Definition: time-constraint-shooter.hh:60
std::vector< TimeDependant > T_TimeDependant
Definition: time-dependant.hh:73
HPP_PREDEF_CLASS(ComTrajectory)
core::ConfigProjectorPtr_t projector_
Definition: time-constraint-shooter.hh:70