hpp-rbprm 4.14.0
Implementation of RB-PRM planner using hpp.
Loading...
Searching...
No Matches
contact_generation.hh
Go to the documentation of this file.
1
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-wholebody-step-planner 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-wholebody-step-planner. If not, see
17// <http://www.gnu.org/licenses/>.
18
19#ifndef HPP_RBPRM_CONTACT_GENERATION_HH
20#define HPP_RBPRM_CONTACT_GENERATION_HH
21
25#include <queue>
26
27namespace hpp {
28namespace rbprm {
29namespace contact {
30
31typedef std::queue<hpp::rbprm::State> Q_State;
32typedef std::pair<hpp::rbprm::State, std::vector<std::string> > ContactState;
33typedef std::queue<ContactState> T_ContactState;
34
37 RbPrmFullBodyPtr_t fb, const State& ps,
38 pinocchio::ConfigurationIn_t configuration, const affMap_t& affordances,
39 const std::map<std::string, std::vector<std::string> >& affFilters,
40 const double robustnessTreshold = 0,
41 const std::size_t maxContactBreaks = 1,
42 const std::size_t maxContactCreations = 1,
43 const bool checkStabilityMaintain = false,
44 const bool checkStabilityGenerate = true,
45 const fcl::Vec3f& direction = fcl::Vec3f(0, 0, 1),
46 const fcl::Vec3f& acceleration = fcl::Vec3f(0, 0, 0),
47 const bool contactIfFails = false, const bool stableForOneContact = false,
48 const core::PathConstPtr_t& comPath = core::PathConstPtr_t(),
49 const double currentPathId = 0);
56 const fcl::Vec3f acceleration_;
57 const fcl::Vec3f direction_;
58 const double robustnessTreshold_;
59 const std::size_t maxContactBreaks_;
60 const std::size_t maxContactCreations_;
62 const std::map<std::string, std::vector<std::string> >& affFilters_;
66 const core::PathConstPtr_t comPath_;
67 const double currentPathId_;
72 const bool tryQuasiStatic_;
74};
75
76std::vector<hpp::pinocchio::CollisionObjectPtr_t> HPP_RBPRM_DLLAPI
78 const std::string& limb, const affMap_t& affordances,
79 const std::map<std::string, std::vector<std::string> >& affFilters);
80
91 const hpp::rbprm::State& currentState,
92 const std::size_t maxBrokenContacts = 1);
93
101 const std::vector<std::string>& freeEffectors, const State& previous,
102 const std::size_t maxCreatedContacts, const bool maximiseContacts = false);
103
112 ContactGenHelper& contactGenHelper);
113
119 const ContactGenHelper& contactGenHelper, const std::string& limb,
120 sampling::HeuristicParam& params, const sampling::heuristic evaluate = 0);
121
129
136 ContactGenHelper& contactGenHelper);
137} // namespace contact
138} // namespace rbprm
139} // namespace hpp
140#endif // HPP_RBPRM_CONTACT_GENERATION_HH
#define HPP_RBPRM_DLLAPI
Definition: config.hh:64
T_ContactState gen_contacts_combinatorial(const std::vector< std::string > &freeEffectors, const State &previous, const std::size_t maxCreatedContacts, const bool maximiseContacts=false)
Q_State maintain_contacts_combinatorial(const hpp::rbprm::State &currentState, const std::size_t maxBrokenContacts=1)
std::vector< hpp::pinocchio::CollisionObjectPtr_t > HPP_RBPRM_DLLAPI getAffObjectsForLimb(const std::string &limb, const affMap_t &affordances, const std::map< std::string, std::vector< std::string > > &affFilters)
projection::ProjectionReport gen_contacts(ContactGenHelper &contactGenHelper)
projection::ProjectionReport maintain_contacts(ContactGenHelper &contactGenHelper)
projection::ProjectionReport repositionContacts(ContactGenHelper &contactGenHelper)
std::queue< hpp::rbprm::State > Q_State
Definition: contact_generation.hh:31
std::pair< hpp::rbprm::State, std::vector< std::string > > ContactState
Definition: contact_generation.hh:32
projection::ProjectionReport generate_contact(const ContactGenHelper &contactGenHelper, const std::string &limb, sampling::HeuristicParam &params, const sampling::heuristic evaluate=0)
std::queue< ContactState > T_ContactState
Definition: contact_generation.hh:33
double(* heuristic)(const sampling::Sample &sample, const Eigen::Vector3d &direction, const Eigen::Vector3d &normal, const HeuristicParam &params)
Definition: heuristic.hh:38
hpp::core::Container< hpp::core::AffordanceObjects_t > affMap_t
Definition: rbprm-fullbody.hh:47
HPP_RBPRM_DLLAPI std::vector< std::string > freeEffectors(const State &state, Iter start, Iter end)
Definition: rbprm-state.hh:141
shared_ptr< RbPrmFullBody > RbPrmFullBodyPtr_t
Definition: kinematics_constraints.hh:12
Definition: algorithm.hh:26
Definition: rbprm-state.hh:40
Definition: contact_generation.hh:35
bool quasiStatic_
Definition: contact_generation.hh:68
Q_State candidates_
Definition: contact_generation.hh:65
const int reachabilityPointPerPhases_
Definition: contact_generation.hh:73
const double robustnessTreshold_
Definition: contact_generation.hh:58
~ContactGenHelper()
Definition: contact_generation.hh:50
const hpp::rbprm::State previousState_
Definition: contact_generation.hh:52
ContactGenHelper(RbPrmFullBodyPtr_t fb, const State &ps, pinocchio::ConfigurationIn_t configuration, const affMap_t &affordances, const std::map< std::string, std::vector< std::string > > &affFilters, const double robustnessTreshold=0, const std::size_t maxContactBreaks=1, const std::size_t maxContactCreations=1, const bool checkStabilityMaintain=false, const bool checkStabilityGenerate=true, const fcl::Vec3f &direction=fcl::Vec3f(0, 0, 1), const fcl::Vec3f &acceleration=fcl::Vec3f(0, 0, 0), const bool contactIfFails=false, const bool stableForOneContact=false, const core::PathConstPtr_t &comPath=core::PathConstPtr_t(), const double currentPathId=0)
const bool maximiseContacts_
Definition: contact_generation.hh:70
hpp::rbprm::State workingState_
Definition: contact_generation.hh:63
const core::PathConstPtr_t comPath_
Definition: contact_generation.hh:66
const bool checkStabilityMaintain_
Definition: contact_generation.hh:53
const bool tryQuasiStatic_
Definition: contact_generation.hh:72
bool testReachability_
Definition: contact_generation.hh:69
const bool accept_unreachable_
Definition: contact_generation.hh:71
const fcl::Vec3f direction_
Definition: contact_generation.hh:57
const std::size_t maxContactBreaks_
Definition: contact_generation.hh:59
const bool stableForOneContact_
Definition: contact_generation.hh:55
bool contactIfFails_
Definition: contact_generation.hh:54
bool checkStabilityGenerate_
Definition: contact_generation.hh:64
const double currentPathId_
Definition: contact_generation.hh:67
const std::size_t maxContactCreations_
Definition: contact_generation.hh:60
const fcl::Vec3f acceleration_
Definition: contact_generation.hh:56
const std::map< std::string, std::vector< std::string > > & affFilters_
Definition: contact_generation.hh:62
hpp::rbprm::RbPrmFullBodyPtr_t fullBody_
Definition: contact_generation.hh:51
const affMap_t & affordances_
Definition: contact_generation.hh:61
Defines a parameters set for the ZMP-based heuristic.
Definition: heuristic-tools.hh:13