19 #ifndef HPP_RBPRM_FULLBODY_HH
20 #define HPP_RBPRM_FULLBODY_HH
22 #include <hpp/core/collision-validation.hh>
23 #include <hpp/core/problem-solver.hh>
24 #include <hpp/pinocchio/device.hh>
36 using core::size_type;
47 typedef hpp::core::Container<hpp::core::AffordanceObjects_t>
affMap_t;
48 typedef std::map<std::string, std::vector<bezier_Ptr> >
83 void AddLimb(
const std::string&
id,
const std::string& name,
84 const std::string& effectorName,
const fcl::Vec3f& offset,
85 const fcl::Vec3f& limbOffset,
const fcl::Vec3f& normal,
86 const double x,
const double y,
87 const core::ObjectStdVector_t& collisionObjects,
88 const std::size_t nbSamples,
91 const bool disableEffectorCollision =
false,
92 const bool grasp =
false,
93 const std::string& kinematicConstraintsPath = std::string(),
94 const double kinematicConstraintsMin = 0.);
111 void AddLimb(
const std::string& database,
const std::string&
id,
112 const core::ObjectStdVector_t& collisionObjects,
113 const std::string& heuristicName,
const bool loadValues,
114 const bool disableEffectorCollision =
false,
115 const bool grasp =
false);
127 const std::string&
id,
const std::string& name,
128 const std::string& effectorName,
129 const hpp::core::ObjectStdVector_t& collisionObjects,
130 const std::size_t nbSamples);
141 typedef std::map<std::string, std::vector<std::string> >
T_LimbGroup;
146 bool onlyWithContact =
false);
150 return collisionValidation_;
152 const std::map<std::string, core::CollisionValidationPtr_t>&
154 return limbcollisionValidations_;
158 staticStability_ = staticStability;
168 return usePosturalTaskContactCreation_;
171 usePosturalTaskContactCreation_ = usePosturalTaskContactCreation;
174 const std::string& effectorName,
177 const std::string& effectorName,
178 const std::vector<bezier_Ptr>& trajectories);
182 const std::string& effectorName,
183 std::vector<bezier_Ptr>& result);
187 core::CollisionValidationPtr_t collisionValidation_;
188 std::map<std::string, core::CollisionValidationPtr_t>
189 limbcollisionValidations_;
195 bool staticStability_;
197 pinocchio::Configuration_t reference_;
198 pinocchio::Configuration_t postureWeights_;
200 bool usePosturalTaskContactCreation_;
204 std::map<size_t, EffectorTrajectoriesMap_t>
205 effectorsTrajectoriesMaps_;
210 const std::string& name,
211 const hpp::core::ObjectStdVector_t& collisionObjects,
212 const bool disableEffectorCollision,
213 const bool nonContactingLimb =
false);
221 void init(
const RbPrmFullBodyWkPtr_t& weakPtr);
224 RbPrmFullBodyWkPtr_t weakPtr_;
Definition: rbprm-fullbody.hh:51
void AddNonContactingLimb(const std::string &id, const std::string &name, const std::string &effectorName, const hpp::core::ObjectStdVector_t &collisionObjects, const std::size_t nbSamples)
AddNonContactingLimb add a limb not used for contact generation.
std::map< std::string, std::vector< std::string > > T_LimbGroup
Definition: rbprm-fullbody.hh:141
pinocchio::Configuration_t postureWeights()
Definition: rbprm-fullbody.hh:165
const std::map< std::string, core::CollisionValidationPtr_t > & GetLimbCollisionValidation()
Definition: rbprm-fullbody.hh:153
bool addEffectorTrajectory(const size_t pathId, const std::string &effectorName, const std::vector< bezier_Ptr > &trajectories)
void staticStability(bool staticStability)
Definition: rbprm-fullbody.hh:157
void init(const RbPrmFullBodyWkPtr_t &weakPtr)
Initialization.
const rbprm::T_Limb & GetNonContactingLimbs()
Definition: rbprm-fullbody.hh:147
bool staticStability() const
Definition: rbprm-fullbody.hh:160
static RbPrmFullBodyPtr_t create(const pinocchio::DevicePtr_t &device)
const rbprm::RbPrmLimbPtr_t GetLimb(std::string name, bool onlyWithContact=false)
bool toggleNonContactingLimb(std::string name)
void postureWeights(pinocchio::Configuration_t postureWeights)
const T_LimbGroup & GetGroups()
Definition: rbprm-fullbody.hh:148
void setFriction(double mu)
Definition: rbprm-fullbody.hh:162
bool AddHeuristic(const std::string &name, const sampling::heuristic func)
void AddLimb(const std::string &database, const std::string &id, const core::ObjectStdVector_t &collisionObjects, const std::string &heuristicName, const bool loadValues, const bool disableEffectorCollision=false, const bool grasp=false)
const core::CollisionValidationPtr_t & GetCollisionValidation()
Definition: rbprm-fullbody.hh:149
double getFriction() const
Definition: rbprm-fullbody.hh:161
bool getEffectorsTrajectories(const size_t pathId, EffectorTrajectoriesMap_t &result)
bool addEffectorTrajectory(const size_t pathId, const std::string &effectorName, const bezier_Ptr &trajectory)
const rbprm::T_Limb & GetLimbs()
Definition: rbprm-fullbody.hh:144
void usePosturalTaskContactCreation(bool usePosturalTaskContactCreation)
Definition: rbprm-fullbody.hh:170
bool usePosturalTaskContactCreation()
Definition: rbprm-fullbody.hh:167
bool getEffectorTrajectory(const size_t pathId, const std::string &effectorName, std::vector< bezier_Ptr > &result)
void AddLimb(const std::string &id, const std::string &name, const std::string &effectorName, const fcl::Vec3f &offset, const fcl::Vec3f &limbOffset, const fcl::Vec3f &normal, const double x, const double y, const core::ObjectStdVector_t &collisionObjects, const std::size_t nbSamples, const std::string &heuristic="static", const double resolution=0.03, ContactType contactType=_6_DOF, const bool disableEffectorCollision=false, const bool grasp=false, const std::string &kinematicConstraintsPath=std::string(), const double kinematicConstraintsMin=0.)
void referenceConfig(pinocchio::Configuration_t referenceConfig)
RbPrmFullBody(const pinocchio::DevicePtr_t &device)
pinocchio::Configuration_t referenceConfig()
Definition: rbprm-fullbody.hh:163
const pinocchio::DevicePtr_t device_
Definition: rbprm-fullbody.hh:156
#define HPP_RBPRM_DLLAPI
Definition: config.hh:64
double(* heuristic)(const sampling::Sample &sample, const Eigen::Vector3d &direction, const Eigen::Vector3d &normal, const HeuristicParam ¶ms)
Definition: heuristic.hh:38
hpp::core::Container< hpp::core::AffordanceObjects_t > affMap_t
Definition: rbprm-fullbody.hh:47
HPP_PREDEF_CLASS(RbPrmFullBody)
shared_ptr< RbPrmFullBody > RbPrmFullBodyPtr_t
Definition: kinematics_constraints.hh:11
shared_ptr< bezier_t > bezier_Ptr
Definition: bezier-path.hh:32
std::map< std::string, std::vector< bezier_Ptr > > EffectorTrajectoriesMap_t
Definition: rbprm-fullbody.hh:49
ContactType
Definition: rbprm-limb.hh:30
@ _6_DOF
Definition: rbprm-limb.hh:31
shared_ptr< RbPrmLimb > RbPrmLimbPtr_t
Definition: rbprm-limb.hh:41
std::map< std::string, const rbprm::RbPrmLimbPtr_t > T_Limb
Definition: rbprm-limb.hh:43
Definition: algorithm.hh:26
Definition: heuristic.hh:47