hpp-rbprm  4.10.1
Implementation of RB-PRM planner using hpp.
com-trajectory.hh
Go to the documentation of this file.
1 //
2 // Copyright (c) 2014 CNRS
3 // Authors: Florent Lamiraux
4 //
5 // This file is part of hpp-core
6 // hpp-core 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-core 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_COM_TRAJECTORY_HH
20 #define HPP_RBPRM_COM_TRAJECTORY_HH
21 
22 #include <hpp/core/fwd.hh>
23 #include <hpp/core/config.hh>
24 #include <hpp/core/path.hh>
26 
27 namespace hpp {
28 namespace rbprm {
29 namespace interpolation {
30 HPP_PREDEF_CLASS(ComTrajectory);
31 typedef boost::shared_ptr<ComTrajectory> ComTrajectoryPtr_t;
41 class HPP_CORE_DLLAPI ComTrajectory : public core::Path {
42  public:
43  typedef Path parent_t;
45  virtual ~ComTrajectory() throw() {}
46 
51  static ComTrajectoryPtr_t create(pinocchio::vector3_t init, pinocchio::vector3_t end, pinocchio::vector3_t initSpeed,
52  pinocchio::vector3_t acceleration, core::value_type length) {
53  ComTrajectory* ptr = new ComTrajectory(init, end, initSpeed, acceleration, length);
54  ComTrajectoryPtr_t shPtr(ptr);
55  ptr->init(shPtr);
56  ptr->checkPath();
57  return shPtr;
58  }
59 
63  ComTrajectory* ptr = new ComTrajectory(*path);
64  ComTrajectoryPtr_t shPtr(ptr);
65  ptr->init(shPtr);
66  ptr->checkPath();
67  return shPtr;
68  }
69 
74  virtual core::PathPtr_t copy() const { return createCopy(weak_.lock()); }
75 
80  virtual core::PathPtr_t extract(const core::interval_t& subInterval) const throw(core::projection_error);
81 
83  core::Configuration_t initial() const { return initial_; }
84 
86  core::Configuration_t end() const { return end_; }
87 
88  virtual void checkPath() const {}
89 
90  protected:
92  virtual std::ostream& print(std::ostream& os) const {
93  os << "ComTrajectory:" << std::endl;
94  os << "interval: [ " << timeRange().first << ", " << timeRange().second << " ]" << std::endl;
95  os << "initial configuration: " << initial_ << std::endl;
96  os << "final configuration: " << end_ << std::endl;
97  os << "init speed: " << initSpeed_ << std::endl;
98  os << "acceleration (constant): " << (acceleration_) << std::endl;
99  return os;
100  }
102  ComTrajectory(pinocchio::vector3_t init, pinocchio::vector3_t end, pinocchio::vector3_t initSpeed,
103  pinocchio::vector3_t acceleration, core::value_type length);
104 
106  ComTrajectory(const ComTrajectory& path);
107 
109  parent_t::init(self);
110  weak_ = self;
111  }
112 
113  virtual bool impl_compute(core::ConfigurationOut_t result, core::value_type param) const;
114 
115  virtual core::PathPtr_t copy(const core::ConstraintSetPtr_t&) const { throw; }
116 
117  public:
118  const pinocchio::vector3_t initial_;
119  const pinocchio::vector3_t end_;
120  const pinocchio::vector3_t initSpeed_;
121  const pinocchio::vector3_t half_acceleration_;
122  const pinocchio::vector3_t acceleration_;
123  const pinocchio::value_type length_;
124 
125  private:
126  ComTrajectoryWkPtr_t weak_;
127 }; // class ComTrajectory
128 } // namespace interpolation
129 } // namespace rbprm
130 } // namespace hpp
131 #endif // HPP_RBPRM_COM_TRAJECTORY_HH
hpp::rbprm::interpolation::ComTrajectory::createCopy
static ComTrajectoryPtr_t createCopy(const ComTrajectoryPtr_t &path)
Definition: com-trajectory.hh:62
hpp::rbprm::interpolation::ComTrajectory::print
virtual std::ostream & print(std::ostream &os) const
Print path in a stream.
Definition: com-trajectory.hh:92
hpp::rbprm::interpolation::ComTrajectory
Definition: com-trajectory.hh:41
hpp::rbprm::interpolation::ComTrajectory::init
void init(ComTrajectoryPtr_t self)
Definition: com-trajectory.hh:108
hpp::rbprm::interpolation::ComTrajectory::initSpeed_
const pinocchio::vector3_t initSpeed_
Definition: com-trajectory.hh:120
hpp::rbprm::interpolation::ComTrajectory::checkPath
virtual void checkPath() const
Definition: com-trajectory.hh:88
hpp::rbprm::interpolation::ComTrajectory::initial
core::Configuration_t initial() const
Get the initial configuration.
Definition: com-trajectory.hh:83
hpp::rbprm::interpolation::ComTrajectory::half_acceleration_
const pinocchio::vector3_t half_acceleration_
Definition: com-trajectory.hh:121
hpp::rbprm::interpolation::ComTrajectory::end
core::Configuration_t end() const
Get the final configuration.
Definition: com-trajectory.hh:86
hpp::rbprm::interpolation::ComTrajectory::create
static ComTrajectoryPtr_t create(pinocchio::vector3_t init, pinocchio::vector3_t end, pinocchio::vector3_t initSpeed, pinocchio::vector3_t acceleration, core::value_type length)
Definition: com-trajectory.hh:51
hpp::rbprm::interpolation::ComTrajectory::length_
const pinocchio::value_type length_
Definition: com-trajectory.hh:123
time-dependant.hh
hpp::rbprm::interpolation::ComTrajectory::copy
virtual core::PathPtr_t copy(const core::ConstraintSetPtr_t &) const
Definition: com-trajectory.hh:115
hpp::rbprm::interpolation::ComTrajectory::~ComTrajectory
virtual ~ComTrajectory()
Destructor.
Definition: com-trajectory.hh:45
hpp
Definition: algorithm.hh:27
hpp::rbprm::interpolation::ComTrajectoryPtr_t
boost::shared_ptr< ComTrajectory > ComTrajectoryPtr_t
Definition: com-trajectory.hh:31
hpp::rbprm::interpolation::ComTrajectory::acceleration_
const pinocchio::vector3_t acceleration_
Definition: com-trajectory.hh:122
hpp::rbprm::interpolation::ComTrajectory::initial_
const pinocchio::vector3_t initial_
Definition: com-trajectory.hh:118
hpp::rbprm::interpolation::ComTrajectory::parent_t
Path parent_t
Definition: com-trajectory.hh:43
hpp::rbprm::interpolation::ComTrajectory::end_
const pinocchio::vector3_t end_
Definition: com-trajectory.hh:119
hpp::rbprm::interpolation::ComTrajectory::copy
virtual core::PathPtr_t copy() const
Definition: com-trajectory.hh:74
hpp::rbprm::interpolation::HPP_PREDEF_CLASS
HPP_PREDEF_CLASS(ComTrajectory)