19 #ifndef HPP_RBPRM_FULLBODY_HH
20 # define HPP_RBPRM_FULLBODY_HH
24 #include <hpp/pinocchio/device.hh>
26 #include <hpp/core/collision-validation.hh>
27 #include <hpp/core/problem-solver.hh>
36 using core::size_type;
47 typedef hpp::core::Container <hpp::core::AffordanceObjects_t>
affMap_t;
79 void AddLimb(
const std::string&
id,
const std::string& name,
const std::string& effectorName,
const fcl::Vec3f &offset,
80 const fcl::Vec3f &limbOffset,
const fcl::Vec3f &normal,
const double x,
const double y,
81 const core::ObjectStdVector_t &collisionObjects,
82 const std::size_t nbSamples,
const std::string&
heuristic =
"static",
const double resolution = 0.03,
84 const bool grasp =
false,
const std::string &kinematicConstraintsPath=std::string(),
const double kinematicConstraintsMin=0.);
98 void AddLimb(
const std::string& database,
const std::string&
id,
const core::ObjectStdVector_t &collisionObjects,
99 const std::string& heuristicName,
const bool loadValues,
const bool disableEffectorCollision =
false,
100 const bool grasp =
false);
110 void AddNonContactingLimb(
const std::string&
id,
const std::string& name,
const std::string &effectorName,
111 const hpp::core::ObjectStdVector_t &collisionObjects,
const std::size_t nbSamples);
121 typedef std::map<std::string, std::vector<std::string> >
T_LimbGroup;
136 void referenceConfig(pinocchio::Configuration_t referenceConfig);
138 void postureWeights(pinocchio::Configuration_t postureWeights);
141 bool addEffectorTrajectory(
const size_t pathId,
const std::string& effectorName,
const bezier_Ptr& trajectory);
142 bool addEffectorTrajectory(
const size_t pathId,
const std::string& effectorName,
const std::vector<bezier_Ptr>& trajectories);
144 bool getEffectorTrajectory(
const size_t pathId,
const std::string& effectorName,std::vector<bezier_Ptr>& result);
145 bool toggleNonContactingLimb(std::string name);
147 core::CollisionValidationPtr_t collisionValidation_;
148 std::map<std::string, core::CollisionValidationPtr_t> limbcollisionValidations_;
151 T_LimbGroup limbGroups_;
153 bool staticStability_;
155 pinocchio::Configuration_t reference_;
156 pinocchio::Configuration_t postureWeights_;
157 bool usePosturalTaskContactCreation_;
158 std::map<size_t,EffectorTrajectoriesMap_t> effectorsTrajectoriesMaps_;
161 const hpp::core::ObjectStdVector_t &collisionObjects,
const bool disableEffectorCollision,
const bool nonContactingLimb=
false);
169 void init (
const RbPrmFullBodyWkPtr_t& weakPtr);
172 RbPrmFullBodyWkPtr_t weakPtr_;
178 #endif // HPP_RBPRM_DEVICE_HH