hpp-rbprm  4.10.0
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>
42  class HPP_CORE_DLLAPI ComTrajectory : public core::Path
43  {
44  public:
45  typedef Path parent_t;
47  virtual ~ComTrajectory () throw () {}
48 
53  static ComTrajectoryPtr_t create (pinocchio::vector3_t init,
54  pinocchio::vector3_t end,
55  pinocchio::vector3_t initSpeed,
56  pinocchio::vector3_t acceleration,
57  core::value_type length)
58  {
59  ComTrajectory* ptr = new ComTrajectory (init, end, initSpeed, acceleration, length);
60  ComTrajectoryPtr_t shPtr (ptr);
61  ptr->init (shPtr);
62  ptr->checkPath ();
63  return shPtr;
64  }
65 
69  {
70  ComTrajectory* ptr = new ComTrajectory (*path);
71  ComTrajectoryPtr_t shPtr (ptr);
72  ptr->init (shPtr);
73  ptr->checkPath ();
74  return shPtr;
75  }
76 
81  virtual core::PathPtr_t copy () const
82  {
83  return createCopy (weak_.lock ());
84  }
85 
90  virtual core::PathPtr_t extract (const core::interval_t& subInterval) const
91  throw (core::projection_error);
92 
94  core::Configuration_t initial () const
95  {
96  return initial_;
97  }
98 
100  core::Configuration_t end () const
101  {
102  return end_;
103  }
104 
105  virtual void checkPath () const {}
106 
107  protected:
109  virtual std::ostream& print (std::ostream &os) const
110  {
111  os << "ComTrajectory:" << std::endl;
112  os << "interval: [ " << timeRange ().first << ", "
113  << timeRange ().second << " ]" << std::endl;
114  os << "initial configuration: " << initial_ << std::endl;
115  os << "final configuration: " << end_ << std::endl;
116  os << "init speed: " << initSpeed_ << std::endl;
117  os << "acceleration (constant): " << (acceleration_) << std::endl;
118  return os;
119  }
121  ComTrajectory (pinocchio::vector3_t init,
122  pinocchio::vector3_t end,
123  pinocchio::vector3_t initSpeed,
124  pinocchio::vector3_t acceleration,
125  core::value_type length);
126 
128  ComTrajectory (const ComTrajectory& path);
129 
131  {
132  parent_t::init (self);
133  weak_ = self;
134  }
135 
136  virtual bool impl_compute (core::ConfigurationOut_t result,
137  core::value_type param) const;
138 
139  virtual core::PathPtr_t copy(const core::ConstraintSetPtr_t&) const {throw;}
140 
141  public:
142  const pinocchio::vector3_t initial_;
143  const pinocchio::vector3_t end_;
144  const pinocchio::vector3_t initSpeed_;
145  const pinocchio::vector3_t half_acceleration_;
146  const pinocchio::vector3_t acceleration_;
147  const pinocchio::value_type length_;
148 
149  private:
150  ComTrajectoryWkPtr_t weak_;
151  }; // class ComTrajectory
152 } // namespace interpolation
153 } // namespace rbprm
154 } // namespace hpp
155 #endif // HPP_RBPRM_COM_TRAJECTORY_HH
hpp::rbprm::interpolation::ComTrajectory::createCopy
static ComTrajectoryPtr_t createCopy(const ComTrajectoryPtr_t &path)
Definition: com-trajectory.hh:68
hpp::rbprm::interpolation::ComTrajectory::print
virtual std::ostream & print(std::ostream &os) const
Print path in a stream.
Definition: com-trajectory.hh:109
hpp::rbprm::interpolation::ComTrajectory
Definition: com-trajectory.hh:42
hpp::rbprm::interpolation::ComTrajectory::init
void init(ComTrajectoryPtr_t self)
Definition: com-trajectory.hh:130
hpp::rbprm::interpolation::ComTrajectory::initSpeed_
const pinocchio::vector3_t initSpeed_
Definition: com-trajectory.hh:144
hpp::rbprm::interpolation::ComTrajectory::checkPath
virtual void checkPath() const
Definition: com-trajectory.hh:105
hpp::rbprm::interpolation::ComTrajectory::initial
core::Configuration_t initial() const
Get the initial configuration.
Definition: com-trajectory.hh:94
hpp::rbprm::interpolation::ComTrajectory::half_acceleration_
const pinocchio::vector3_t half_acceleration_
Definition: com-trajectory.hh:145
hpp::rbprm::interpolation::ComTrajectory::end
core::Configuration_t end() const
Get the final configuration.
Definition: com-trajectory.hh:100
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:53
hpp::rbprm::interpolation::ComTrajectory::length_
const pinocchio::value_type length_
Definition: com-trajectory.hh:147
time-dependant.hh
hpp::rbprm::interpolation::ComTrajectory::copy
virtual core::PathPtr_t copy(const core::ConstraintSetPtr_t &) const
Definition: com-trajectory.hh:139
hpp::rbprm::interpolation::ComTrajectory::~ComTrajectory
virtual ~ComTrajectory()
Destructor.
Definition: com-trajectory.hh:47
hpp
Definition: algorithm.hh:27
hpp::rbprm::interpolation::ComTrajectoryPtr_t
boost::shared_ptr< ComTrajectory > ComTrajectoryPtr_t
Definition: com-trajectory.hh:32
hpp::rbprm::interpolation::ComTrajectory::acceleration_
const pinocchio::vector3_t acceleration_
Definition: com-trajectory.hh:146
hpp::rbprm::interpolation::ComTrajectory::initial_
const pinocchio::vector3_t initial_
Definition: com-trajectory.hh:142
hpp::rbprm::interpolation::ComTrajectory::parent_t
Path parent_t
Definition: com-trajectory.hh:45
hpp::rbprm::interpolation::ComTrajectory::end_
const pinocchio::vector3_t end_
Definition: com-trajectory.hh:143
hpp::rbprm::interpolation::ComTrajectory::copy
virtual core::PathPtr_t copy() const
Definition: com-trajectory.hh:81
hpp::rbprm::interpolation::HPP_PREDEF_CLASS
HPP_PREDEF_CLASS(ComTrajectory)