hpp-rbprm 4.14.0
Implementation of RB-PRM planner using hpp.
Loading...
Searching...
No Matches
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/config.hh>
23#include <hpp/core/fwd.hh>
24#include <hpp/core/path.hh>
26
27namespace hpp {
28namespace rbprm {
29namespace interpolation {
31typedef shared_ptr<ComTrajectory> ComTrajectoryPtr_t;
41class HPP_CORE_DLLAPI ComTrajectory : public core::Path {
42 public:
43 typedef Path parent_t;
45 virtual ~ComTrajectory() {}
46
51 static ComTrajectoryPtr_t create(pinocchio::vector3_t init,
52 pinocchio::vector3_t end,
53 pinocchio::vector3_t initSpeed,
54 pinocchio::vector3_t acceleration,
55 core::value_type length) {
56 ComTrajectory* ptr =
57 new ComTrajectory(init, end, initSpeed, acceleration, length);
58 ComTrajectoryPtr_t shPtr(ptr);
59 ptr->init(shPtr);
60 ptr->checkPath();
61 return shPtr;
62 }
63
67 ComTrajectory* ptr = new ComTrajectory(*path);
68 ComTrajectoryPtr_t shPtr(ptr);
69 ptr->init(shPtr);
70 ptr->checkPath();
71 return shPtr;
72 }
73
78 virtual core::PathPtr_t copy() const { return createCopy(weak_.lock()); }
79
84 virtual core::PathPtr_t extract(const core::interval_t& subInterval) const;
85
87 core::Configuration_t initial() const { return initial_; }
88
90 core::Configuration_t end() const { return end_; }
91
92 virtual void checkPath() const {}
93
94 protected:
96 virtual std::ostream& print(std::ostream& os) const {
97 os << "ComTrajectory:" << std::endl;
98 os << "interval: [ " << timeRange().first << ", " << timeRange().second
99 << " ]" << std::endl;
100 os << "initial configuration: " << initial_ << std::endl;
101 os << "final configuration: " << end_ << std::endl;
102 os << "init speed: " << initSpeed_ << std::endl;
103 os << "acceleration (constant): " << (acceleration_) << std::endl;
104 return os;
105 }
107 ComTrajectory(pinocchio::vector3_t init, pinocchio::vector3_t end,
108 pinocchio::vector3_t initSpeed,
109 pinocchio::vector3_t acceleration, core::value_type length);
110
113
115 parent_t::init(self);
116 weak_ = self;
117 }
118
119 virtual bool impl_compute(core::ConfigurationOut_t result,
120 core::value_type param) const;
121
122 virtual core::PathPtr_t copy(const core::ConstraintSetPtr_t&) const { throw; }
123
124 public:
125 const pinocchio::vector3_t initial_;
126 const pinocchio::vector3_t end_;
127 const pinocchio::vector3_t initSpeed_;
128 const pinocchio::vector3_t half_acceleration_;
129 const pinocchio::vector3_t acceleration_;
130 const pinocchio::value_type length_;
131
132 private:
133 ComTrajectoryWkPtr_t weak_;
134}; // class ComTrajectory
135} // namespace interpolation
136} // namespace rbprm
137} // namespace hpp
138#endif // HPP_RBPRM_COM_TRAJECTORY_HH
Definition: com-trajectory.hh:41
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
virtual std::ostream & print(std::ostream &os) const
Print path in a stream.
Definition: com-trajectory.hh:96
const pinocchio::vector3_t initSpeed_
Definition: com-trajectory.hh:127
Path parent_t
Definition: com-trajectory.hh:43
virtual void checkPath() const
Definition: com-trajectory.hh:92
core::Configuration_t end() const
Get the final configuration.
Definition: com-trajectory.hh:90
const pinocchio::value_type length_
Definition: com-trajectory.hh:130
virtual bool impl_compute(core::ConfigurationOut_t result, core::value_type param) const
void init(ComTrajectoryPtr_t self)
Definition: com-trajectory.hh:114
const pinocchio::vector3_t half_acceleration_
Definition: com-trajectory.hh:128
virtual core::PathPtr_t extract(const core::interval_t &subInterval) const
virtual core::PathPtr_t copy() const
Definition: com-trajectory.hh:78
ComTrajectory(const ComTrajectory &path)
Copy constructor.
virtual ~ComTrajectory()
Destructor.
Definition: com-trajectory.hh:45
ComTrajectory(pinocchio::vector3_t init, pinocchio::vector3_t end, pinocchio::vector3_t initSpeed, pinocchio::vector3_t acceleration, core::value_type length)
Constructor.
static ComTrajectoryPtr_t createCopy(const ComTrajectoryPtr_t &path)
Definition: com-trajectory.hh:66
virtual core::PathPtr_t copy(const core::ConstraintSetPtr_t &) const
Definition: com-trajectory.hh:122
const pinocchio::vector3_t end_
Definition: com-trajectory.hh:126
core::Configuration_t initial() const
Get the initial configuration.
Definition: com-trajectory.hh:87
const pinocchio::vector3_t acceleration_
Definition: com-trajectory.hh:129
const pinocchio::vector3_t initial_
Definition: com-trajectory.hh:125
shared_ptr< ComTrajectory > ComTrajectoryPtr_t
Definition: com-trajectory.hh:31
HPP_PREDEF_CLASS(ComTrajectory)
Definition: algorithm.hh:26