Commit b317b755 authored by Guilhem Saurel's avatar Guilhem Saurel
Browse files

Format

parent 05e12ede
Pipeline #6465 failed with stage
in 1 minute and 3 seconds
...@@ -18,37 +18,35 @@ ...@@ -18,37 +18,35 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
#ifndef HPP_RBPRM_CORBA_SERVER_HH #ifndef HPP_RBPRM_CORBA_SERVER_HH
# define HPP_RBPRM_CORBA_SERVER_HH #define HPP_RBPRM_CORBA_SERVER_HH
# include <hpp/corba/template/server.hh> #include <hpp/corba/template/server.hh>
# include <hpp/corbaserver/problem-solver-map.hh> #include <hpp/corbaserver/problem-solver-map.hh>
# include <hpp/corbaserver/rbprm/config.hh> #include <hpp/corbaserver/rbprm/config.hh>
# include <hpp/corbaserver/server-plugin.hh> #include <hpp/corbaserver/server-plugin.hh>
namespace hpp { namespace hpp {
namespace rbprm { namespace rbprm {
namespace impl { namespace impl {
class RbprmBuilder; class RbprmBuilder;
} }
class HPP_RBPRM_CORBA_DLLAPI Server : public corbaServer::ServerPlugin class HPP_RBPRM_CORBA_DLLAPI Server : public corbaServer::ServerPlugin {
{
public: public:
Server (corbaServer::Server* parent); Server(corbaServer::Server* parent);
~Server (); ~Server();
/// Start corba server /// Start corba server
/// Call hpp::corba::Server <impl::Problem>::startCorbaServer /// Call hpp::corba::Server <impl::Problem>::startCorbaServer
void startCorbaServer(const std::string& contextId, void startCorbaServer(const std::string& contextId, const std::string& contextKind);
const std::string& contextKind);
std::string name () const; std::string name() const;
public: public:
corba::Server <impl::RbprmBuilder>* rbprmBuilder_; corba::Server<impl::RbprmBuilder>* rbprmBuilder_;
}; // class Server }; // class Server
} // namespace rbprm } // namespace rbprm
} // namespace hpp } // namespace hpp
#endif // HPP_RBPRM_CORBA_SERVER_HH #endif // HPP_RBPRM_CORBA_SERVER_HH
...@@ -16,12 +16,11 @@ ...@@ -16,12 +16,11 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
#ifndef HPP_MANIPULATION_CORBA_FWD_HH #ifndef HPP_MANIPULATION_CORBA_FWD_HH
# define HPP_MANIPULATION_CORBA_FWD_HH #define HPP_MANIPULATION_CORBA_FWD_HH
namespace hpp { namespace hpp {
namespace manipulation { namespace manipulation {
namespace corba { namespace corba {}
} } // namespace manipulation
} } // namespace hpp
}
#endif // HPP_MANIPULATION_CORBA_FWD_HH #endif // HPP_MANIPULATION_CORBA_FWD_HH
...@@ -19,15 +19,13 @@ ...@@ -19,15 +19,13 @@
#include <hpp/core/problem-solver.hh> #include <hpp/core/problem-solver.hh>
typedef hpp::corbaServer::Server CorbaServer; typedef hpp::corbaServer::Server CorbaServer;
int main (int argc, char* argv []) int main(int argc, char* argv[]) {
{ hpp::core::ProblemSolverPtr_t problemSolver(hpp::core::ProblemSolver::create());
hpp::core::ProblemSolverPtr_t problemSolver (hpp::core::ProblemSolver::create());
CorbaServer corbaServer (problemSolver, argc, CorbaServer corbaServer(problemSolver, argc, const_cast<const char**>(argv), true);
const_cast<const char**> (argv), true);
corbaServer.startCorbaServer (); corbaServer.startCorbaServer();
corbaServer.loadPlugin (corbaServer.mainContextId (), "rbprm-corba.so"); corbaServer.loadPlugin(corbaServer.mainContextId(), "rbprm-corba.so");
corbaServer.loadPlugin (corbaServer.mainContextId (), "affordance-corba.so"); corbaServer.loadPlugin(corbaServer.mainContextId(), "affordance-corba.so");
corbaServer.processRequest(true); corbaServer.processRequest(true);
} }
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -16,102 +16,100 @@ ...@@ -16,102 +16,100 @@
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
#ifndef HPP_RBPRM_CORBA_BUILDER_IMPL_HH #ifndef HPP_RBPRM_CORBA_BUILDER_IMPL_HH
# define HPP_RBPRM_CORBA_BUILDER_IMPL_HH #define HPP_RBPRM_CORBA_BUILDER_IMPL_HH
# include <hpp/core/problem-solver.hh> #include <hpp/core/problem-solver.hh>
# include <hpp/core/path.hh> #include <hpp/core/path.hh>
# include "hpp/corbaserver/rbprm/rbprmbuilder-idl.hh" #include "hpp/corbaserver/rbprm/rbprmbuilder-idl.hh"
# include <hpp/rbprm/rbprm-device.hh> #include <hpp/rbprm/rbprm-device.hh>
# include <hpp/rbprm/rbprm-fullbody.hh> #include <hpp/rbprm/rbprm-fullbody.hh>
# include <hpp/rbprm/rbprm-shooter.hh> #include <hpp/rbprm/rbprm-shooter.hh>
# include <hpp/rbprm/rbprm-validation.hh> #include <hpp/rbprm/rbprm-validation.hh>
# include <hpp/rbprm/sampling/analysis.hh> #include <hpp/rbprm/sampling/analysis.hh>
# include <hpp/core/collision-path-validation-report.hh> #include <hpp/core/collision-path-validation-report.hh>
# include <hpp/core/problem-solver.hh> #include <hpp/core/problem-solver.hh>
# include <hpp/core/straight-path.hh> #include <hpp/core/straight-path.hh>
# include <hpp/core/problem.hh> #include <hpp/core/problem.hh>
#include <hpp/corbaserver/affordance/server.hh> #include <hpp/corbaserver/affordance/server.hh>
# include <hpp/corbaserver/problem-solver-map.hh> #include <hpp/corbaserver/problem-solver-map.hh>
# include <hpp/rbprm/rbprm-path-validation.hh> #include <hpp/rbprm/rbprm-path-validation.hh>
# include <hpp/fcl/BVH/BVH_model.h> #include <hpp/fcl/BVH/BVH_model.h>
# include <hpp/core/config-validations.hh> #include <hpp/core/config-validations.hh>
#include <hpp/rbprm/dynamic/dynamic-path-validation.hh> #include <hpp/rbprm/dynamic/dynamic-path-validation.hh>
# include "hpp/corbaserver/fwd.hh" #include "hpp/corbaserver/fwd.hh"
# include "hpp/corbaserver/rbprm/server.hh" #include "hpp/corbaserver/rbprm/server.hh"
namespace hpp { namespace hpp {
namespace rbprm { namespace rbprm {
namespace impl { namespace impl {
using CORBA::Short; using CORBA::Short;
typedef hpp::core::Container <hpp::core::AffordanceObjects_t> affMap_t; typedef hpp::core::Container<hpp::core::AffordanceObjects_t> affMap_t;
struct BindShooter struct BindShooter {
{ BindShooter(const std::size_t shootLimit = 10000, const std::size_t displacementLimit = 100)
BindShooter(const std::size_t shootLimit = 10000, : shootLimit_(shootLimit), displacementLimit_(displacementLimit) {}
const std::size_t displacementLimit = 100)
: shootLimit_(shootLimit)
, displacementLimit_(displacementLimit) {}
hpp::rbprm::RbPrmShooterPtr_t create (/*const hpp::pinocchio::DevicePtr_t& robot,*/ const hpp::core::Problem& problem) hpp::rbprm::RbPrmShooterPtr_t create(
{ /*const hpp::pinocchio::DevicePtr_t& robot,*/ const hpp::core::Problem& problem) {
affMap_ = problemSolver_->affordanceObjects; affMap_ = problemSolver_->affordanceObjects;
hpp::pinocchio::RbPrmDevicePtr_t robotcast = boost::static_pointer_cast<hpp::pinocchio::RbPrmDevice>(problem.robot()); hpp::pinocchio::RbPrmDevicePtr_t robotcast =
if (affMap_.map.empty ()) { boost::static_pointer_cast<hpp::pinocchio::RbPrmDevice>(problem.robot());
throw hpp::Error ("No affordances found. Unable to create shooter object."); if (affMap_.map.empty()) {
throw hpp::Error("No affordances found. Unable to create shooter object.");
} }
rbprm::RbPrmShooterPtr_t shooter = hpp::rbprm::RbPrmShooter::create rbprm::RbPrmShooterPtr_t shooter =
(robotcast, problemSolver_->problem ()->collisionObstacles(), affMap_, hpp::rbprm::RbPrmShooter::create(robotcast, problemSolver_->problem()->collisionObstacles(), affMap_,
romFilter_,affFilter_,shootLimit_,displacementLimit_); romFilter_, affFilter_, shootLimit_, displacementLimit_);
if(!so3Bounds_.empty()) if (!so3Bounds_.empty()) shooter->BoundSO3(so3Bounds_);
shooter->BoundSO3(so3Bounds_);
shooter->sampleExtraDOF(problem.getParameter("ConfigurationShooter/sampleExtraDOF").boolValue()); shooter->sampleExtraDOF(problem.getParameter("ConfigurationShooter/sampleExtraDOF").boolValue());
shooter->ratioWeighted(problem.getParameter("RbprmShooter/ratioWeighted").floatValue ()); shooter->ratioWeighted(problem.getParameter("RbprmShooter/ratioWeighted").floatValue());
return shooter; return shooter;
} }
hpp::core::PathValidationPtr_t createPathValidation (const hpp::pinocchio::DevicePtr_t& robot, const hpp::pinocchio::value_type& val) hpp::core::PathValidationPtr_t createPathValidation(const hpp::pinocchio::DevicePtr_t& robot,
{ const hpp::pinocchio::value_type& val) {
hpp::pinocchio::RbPrmDevicePtr_t robotcast = boost::static_pointer_cast<hpp::pinocchio::RbPrmDevice>(robot); hpp::pinocchio::RbPrmDevicePtr_t robotcast = boost::static_pointer_cast<hpp::pinocchio::RbPrmDevice>(robot);
affMap_ = problemSolver_->affordanceObjects; affMap_ = problemSolver_->affordanceObjects;
if (affMap_.map.empty ()) { if (affMap_.map.empty()) {
throw hpp::Error ("No affordances found. Unable to create Path Validaton object."); throw hpp::Error("No affordances found. Unable to create Path Validaton object.");
} }
hpp::rbprm::RbPrmValidationPtr_t validation hpp::rbprm::RbPrmValidationPtr_t validation(
(hpp::rbprm::RbPrmValidation::create(robotcast, romFilter_, affFilter_, affMap_)); hpp::rbprm::RbPrmValidation::create(robotcast, romFilter_, affFilter_, affMap_));
hpp::rbprm::RbPrmPathValidationPtr_t collisionChecking = hpp::rbprm::RbPrmPathValidation::create(robot,val); hpp::rbprm::RbPrmPathValidationPtr_t collisionChecking = hpp::rbprm::RbPrmPathValidation::create(robot, val);
collisionChecking->add (validation); collisionChecking->add(validation);
problemSolver_->problem()->configValidation(core::ConfigValidations::create ()); problemSolver_->problem()->configValidation(core::ConfigValidations::create());
problemSolver_->problem()->configValidations()->add(validation); problemSolver_->problem()->configValidations()->add(validation);
return collisionChecking; return collisionChecking;
} }
hpp::core::PathValidationPtr_t createDynamicPathValidation (const hpp::pinocchio::DevicePtr_t& robot, const hpp::pinocchio::value_type& val) hpp::core::PathValidationPtr_t createDynamicPathValidation(const hpp::pinocchio::DevicePtr_t& robot,
{ const hpp::pinocchio::value_type& val) {
hpp::pinocchio::RbPrmDevicePtr_t robotcast = boost::static_pointer_cast<hpp::pinocchio::RbPrmDevice>(robot); hpp::pinocchio::RbPrmDevicePtr_t robotcast = boost::static_pointer_cast<hpp::pinocchio::RbPrmDevice>(robot);
affMap_ = problemSolver_->affordanceObjects; affMap_ = problemSolver_->affordanceObjects;
if (affMap_.map.empty ()) { if (affMap_.map.empty()) {
throw hpp::Error ("No affordances found. Unable to create Path Validaton object."); throw hpp::Error("No affordances found. Unable to create Path Validaton object.");
} }
hpp::rbprm::RbPrmValidationPtr_t validation hpp::rbprm::RbPrmValidationPtr_t validation(
(hpp::rbprm::RbPrmValidation::create(robotcast, romFilter_, affFilter_, affMap_)); hpp::rbprm::RbPrmValidation::create(robotcast, romFilter_, affFilter_, affMap_));
hpp::rbprm::DynamicPathValidationPtr_t collisionChecking = hpp::rbprm::DynamicPathValidation::create(robot,val); hpp::rbprm::DynamicPathValidationPtr_t collisionChecking = hpp::rbprm::DynamicPathValidation::create(robot, val);
collisionChecking->add (validation); collisionChecking->add(validation);
problemSolver_->problem()->configValidation(core::ConfigValidations::create ()); problemSolver_->problem()->configValidation(core::ConfigValidations::create());
problemSolver_->problem()->configValidations()->add(validation); problemSolver_->problem()->configValidations()->add(validation);
// build the dynamicValidation : // build the dynamicValidation :
double sizeFootX,sizeFootY,mass,mu; double sizeFootX, sizeFootY, mass, mu;
bool rectangularContact; bool rectangularContact;
sizeFootX = problemSolver_->problem()->getParameter (std::string("DynamicPlanner/sizeFootX")).floatValue()/2.; sizeFootX = problemSolver_->problem()->getParameter(std::string("DynamicPlanner/sizeFootX")).floatValue() / 2.;
sizeFootY = problemSolver_->problem()->getParameter (std::string("DynamicPlanner/sizeFootY")).floatValue()/2.; sizeFootY = problemSolver_->problem()->getParameter(std::string("DynamicPlanner/sizeFootY")).floatValue() / 2.;
if(sizeFootX > 0. && sizeFootY > 0.) if (sizeFootX > 0. && sizeFootY > 0.)
rectangularContact = 1; rectangularContact = 1;
else else
rectangularContact = 0; rectangularContact = 0;
mass = robot->mass(); mass = robot->mass();
mu = problemSolver_->problem()->getParameter (std::string("DynamicPlanner/friction")).floatValue(); mu = problemSolver_->problem()->getParameter(std::string("DynamicPlanner/friction")).floatValue();
hppDout(notice,"mu define in python : "<<mu); hppDout(notice, "mu define in python : " << mu);
DynamicValidationPtr_t dynamicVal = DynamicValidation::create(rectangularContact,sizeFootX,sizeFootY,mass,mu,robot); DynamicValidationPtr_t dynamicVal =
DynamicValidation::create(rectangularContact, sizeFootX, sizeFootY, mass, mu, robot);
collisionChecking->addDynamicValidator(dynamicVal); collisionChecking->addDynamicValidator(dynamicVal);
return collisionChecking; return collisionChecking;
...@@ -124,290 +122,273 @@ namespace hpp { ...@@ -124,290 +122,273 @@ namespace hpp {
std::size_t displacementLimit_; std::size_t displacementLimit_;
std::vector<double> so3Bounds_; std::vector<double> so3Bounds_;
affMap_t affMap_; affMap_t affMap_;
}; };
class FullBodyMap { class FullBodyMap {
public: public:
typedef std::map<std::string, rbprm::RbPrmFullBodyPtr_t> fMap_t; typedef std::map<std::string, rbprm::RbPrmFullBodyPtr_t> fMap_t;
std::string selected_; std::string selected_;
fMap_t map_; fMap_t map_;
FullBodyMap (const std::string& name = "None") : FullBodyMap(const std::string& name = "None") : selected_(name) {
selected_ (name) // map_[selected_] = init;
{
//map_[selected_] = init;
} }
rbprm::RbPrmFullBodyPtr_t operator-> () { rbprm::RbPrmFullBodyPtr_t operator->() { return selected(); }
return selected(); operator rbprm::RbPrmFullBodyPtr_t() { return selected(); }
} rbprm::RbPrmFullBodyPtr_t selected() { return map_[selected_]; }
operator rbprm::RbPrmFullBodyPtr_t () { bool has(const std::string& name) const {
return selected();
}
rbprm::RbPrmFullBodyPtr_t selected () {
return map_[selected_];
}
bool has (const std::string& name) const
{
// ProblemMap_t::const_iterator it = map_.find (name); // ProblemMap_t::const_iterator it = map_.find (name);
// return it != map_.end (); // return it != map_.end ();
return map_.end() != map_.find (name); return map_.end() != map_.find(name);
} }
template <typename ReturnType> ReturnType keys () const template <typename ReturnType>
{ ReturnType keys() const {
ReturnType l; ReturnType l;
for (fMap_t::const_iterator it = map_.begin (); for (fMap_t::const_iterator it = map_.begin(); it != map_.end(); ++it) l.push_back(it->first);
it != map_.end (); ++it)
l.push_back (it->first);
return l; return l;
} }
}; };
class RbprmBuilder : public virtual POA_hpp::corbaserver::rbprm::RbprmBuilder class RbprmBuilder : public virtual POA_hpp::corbaserver::rbprm::RbprmBuilder {
{
public: public:
RbprmBuilder (); RbprmBuilder();
void setServer (Server* server) void setServer(Server* server) { server_ = server; }
{
server_ = server;
}
virtual void loadRobotRomModel (const char* robotName, virtual void loadRobotRomModel(const char* robotName, const char* rootJointType, const char* packageName,
const char* rootJointType, const char* modelName, const char* urdfSuffix,
const char* packageName, const char* srdfSuffix) throw(hpp::Error);
const char* modelName,
const char* urdfSuffix, virtual void loadRobotCompleteModel(const char* robotName, const char* rootJointType, const char* packageName,
const char* srdfSuffix) throw (hpp::Error); const char* modelName, const char* urdfSuffix,
const char* srdfSuffix) throw(hpp::Error);
virtual void loadRobotCompleteModel (const char* robotName,
const char* rootJointType,
const char* packageName,
const char* modelName,
const char* urdfSuffix,
const char* srdfSuffix) throw (hpp::Error);
virtual void loadFullBodyRobot (const char* robotName,
const char* rootJointType,
const char* packageName,
const char* modelName,
const char* urdfSuffix,
const char* srdfSuffix,
const char* selectedProblem) throw (hpp::Error);
virtual void loadFullBodyRobotFromExistingRobot () throw (hpp::Error);
void setStaticStability(const bool staticStability) throw (hpp::Error);
void setReferenceConfig(const hpp::floatSeq &referenceConfig) throw (hpp::Error);
void setPostureWeights(const hpp::floatSeq &postureWeights) throw (hpp::Error);
void setReferenceEndEffector(const char* romName, const hpp::floatSeq &ref) throw(hpp::Error);
void usePosturalTaskContactCreation(const bool usePosturalTaskContactCreation) throw (hpp::Error);
virtual void setFilter(const hpp::Names_t& roms) throw (hpp::Error);
virtual void setAffordanceFilter(const char* romName, const hpp::Names_t& affordances) throw (hpp::Error);
virtual void boundSO3(const hpp::floatSeq& limitszyx) throw (hpp::Error);
virtual hpp::floatSeq* getSampleConfig(const char* limb, unsigned int sampleId) throw (hpp::Error);
virtual hpp::floatSeq* getSamplePosition(const char* limb, unsigned int sampleId) throw (hpp::Error);
virtual hpp::floatSeqSeq* getEffectorPosition(const char* limb, const hpp::floatSeq& configuration) throw (hpp::Error);
virtual CORBA::UShort getNumSamples(const char* limb) throw (hpp::Error);
virtual hpp::floatSeq* getOctreeNodeIds(const char* limb) throw (hpp::Error);
virtual double getSampleValue(const char* limb, const char* valueName, unsigned int sampleId) throw (hpp::Error);
virtual double getEffectorDistance(unsigned short state1, unsigned short state2) throw (hpp::Error);
rbprm::State generateContacts_internal(const hpp::floatSeq& configuration,
const hpp::floatSeq& direction,const hpp::floatSeq& acceleration, const double robustnessThreshold ) throw (hpp::Error);
virtual hpp::floatSeq* generateContacts(const hpp::floatSeq& configuration,
const hpp::floatSeq& direction, const hpp::floatSeq& acceleration, const double robustnessThreshold) throw (hpp::Error);
virtual CORBA::Short generateStateInContact(const hpp::floatSeq& configuration,
const hpp::floatSeq& direction, const hpp::floatSeq& acceleration, const double robustnessThreshold) throw (hpp::Error);
virtual hpp::floatSeq* generateGroundContact(const hpp::Names_t& contactLimbs) throw (hpp::Error);
virtual hpp::floatSeq* getContactSamplesIds(const char* limb,
const hpp::floatSeq& configuration,
const hpp::floatSeq& direction) throw (hpp::Error);
virtual hpp::floatSeqSeq* getContactSamplesProjected(const char* limb,
const hpp::floatSeq& configuration,
const hpp::floatSeq& direction,
unsigned short numSamples) throw (hpp::Error);
virtual short generateContactState(::CORBA::UShort currentState, const char* name, const ::hpp::floatSeq& direction) throw (hpp::Error); virtual void loadFullBodyRobot(const char* robotName, const char* rootJointType, const char* packageName,
const char* modelName, const char* urdfSuffix, const char* srdfSuffix,
const char* selectedProblem) throw(hpp::Error);
virtual void loadFullBodyRobotFromExistingRobot() throw(hpp::Error);
virtual hpp::floatSeq* getSamplesIdsInOctreeNode(const char* limb, void setStaticStability(const bool staticStability) throw(hpp::Error);
double octreeNodeId) throw (hpp::Error);
virtual void addLimb(const char* id, const char* limb, const char* effector, const hpp::floatSeq& offset, const hpp::floatSeq& normal, double x, double y, void setReferenceConfig(const hpp::floatSeq& referenceConfig) throw(hpp::Error);
unsigned int samples, const char *heuristicName, double resolution, const char *contactType, void setPostureWeights(const hpp::floatSeq& postureWeights) throw(hpp::Error);
double disableEffectorCollision, double grasp,const hpp::floatSeq& limbOffset,const char* kinematicConstraintsPath, double kinematicConstraintsMin) throw (hpp::Error); void setReferenceEndEffector(const char* romName, const hpp::floatSeq& ref) throw(hpp::Error);
virtual void addNonContactingLimb(const char* id, const char* limb, const char* effector, unsigned int samples) throw (hpp::Error); void usePosturalTaskContactCreation(const bool usePosturalTaskContactCreation) throw(hpp::Error);
virtual void setFilter(const hpp::Names_t& roms) throw(hpp::Error);
virtual void setAffordanceFilter(const char* romName, const hpp::Names_t& affordances) throw(hpp::Error);
virtual void boundSO3(const hpp::floatSeq& limitszyx) throw(hpp::Error);
virtual hpp::floatSeq* getSampleConfig(const char* limb, unsigned int sampleId) throw(hpp::Error);
virtual hpp::floatSeq* getSamplePosition(const char* limb, unsigned int sampleId) throw(hpp::Error);
virtual hpp::floatSeqSeq* getEffectorPosition(const char* limb,
const hpp::floatSeq& configuration) throw(hpp::Error);
virtual CORBA::UShort getNumSamples(const char* limb) throw(hpp::Error);
virtual hpp::floatSeq* getOctreeNodeIds(const char* limb) throw(hpp::Error);
virtual double getSampleValue(const char* limb, const char* valueName, unsigned int sampleId) throw(hpp::Error);
virtual double getEffectorDistance(unsigned short state1, unsigned short state2) throw(hpp::Error);
rbprm::State generateContacts_internal(const hpp::floatSeq& configuration, const hpp::floatSeq& direction,
const hpp::floatSeq& acceleration,
const double robustnessThreshold) throw(hpp::Error);
virtual hpp::floatSeq* generateContacts(const hpp::floatSeq& configuration, const hpp::floatSeq& direction,
const hpp::floatSeq& acceleration,
const double robustnessThreshold) throw(hpp::Error);
virtual CORBA::Short generateStateInContact(const hpp::floatSeq& configuration, const hpp::floatSeq& direction,
const hpp::floatSeq& acceleration,
const double robustnessThreshold) throw(hpp::Error);
virtual hpp::floatSeq* generateGroundContact(const hpp::Names_t& contactLimbs) throw(hpp::Error);
virtual hpp::floatSeq* getContactSamplesIds(const char* limb, const hpp::floatSeq& configuration,
const hpp::floatSeq& direction) throw(hpp::Error);
virtual hpp::floatSeqSeq* getContactSamplesProjected(const char* limb, const hpp::floatSeq& configuration,
const hpp::floatSeq& direction,
unsigned short numSamples) throw(hpp::Error);
virtual short generateContactState(::CORBA::UShort currentState, const char* name,
const ::hpp::floatSeq& direction) throw(hpp::Error);
virtual hpp::floatSeq* getSamplesIdsInOctreeNode(const char* limb, double octreeNodeId) throw(hpp::Error);
virtual void addLimb(const char* id, const char* limb, const char* effector, const hpp::floatSeq& offset,
const hpp::floatSeq& normal, double x, double y, unsigned int samples,
const char* heuristicName, double resolution, const char* contactType,
double disableEffectorCollision, double grasp, const hpp::floatSeq& limbOffset,
const char* kinematicConstraintsPath, double kinematicConstraintsMin) throw(hpp::Error);
virtual void addNonContactingLimb(const char* id, const char* limb, const char* effector,
unsigned int samples) throw(hpp::Error);
virtual void addLimbDatabase(const char* databasePath, const char* id, const char* heuristicName, double loadValues, virtual void addLimbDatabase(const char* databasePath, const char* id, const char* heuristicName, double loadValues,
double disableEffectorCollision, double grasp) throw (hpp::Error); double disableEffectorCollision, double grasp) throw(hpp::Error);
virtual void setStartState(const hpp::floatSeq& configuration, const hpp::Names_t& contactLimbs) throw (hpp::Error); virtual void setStartState(const hpp::floatSeq& configuration, const hpp::Names_t& contactLimbs) throw(hpp::Error);
virtual void setEndState(const hpp::floatSeq& configuration, const hpp::Names_t& contactLimbs) throw (hpp::Error); virtual void setEndState(const hpp::floatSeq& configuration, const hpp::Names_t& contactLimbs) throw(hpp::Error);
virtual void setStartStateId(unsigned short stateId) throw (hpp::Error); virtual void setStartStateId(unsigned short stateId) throw(hpp::Error);
virtual void setEndStateId(unsigned short stateId) throw (hpp::Error); virtual void setEndStateId(unsigned short stateId) throw(hpp::Error);
virtual hpp::floatSeq* computeContactForConfig(const hpp::floatSeq& configuration, const char* limbNam) throw (hpp::Error); virtual hpp::floatSeq* computeContactForConfig(const hpp::floatSeq& configuration,
virtual hpp::floatSeqSeq* computeContactPoints(unsigned short cId) throw (hpp::Error); const char* limbNam) throw(hpp::Error);
virtual hpp::floatSeqSeq* computeContactPointsAtState(unsigned short cId, unsigned short isIntermediate) throw (hpp::Error); virtual hpp::floatSeqSeq* computeContactPoints(unsigned short cId) throw(hpp::Error);
virtual hpp::floatSeqSeq* computeContactPointsForLimb(unsigned short cId, const char* limbName) throw (hpp::Error); virtual hpp::floatSeqSeq* computeContactPointsAtState(unsigned short cId,
virtual hpp::floatSeqSeq* computeContactPointsAtStateForLimb(unsigned short cId, unsigned short isIntermediate, const char* limbName) throw (hpp::Error); unsigned short isIntermediate) throw(hpp::Error);
virtual hpp::floatSeqSeq* computeCenterOfContactAtStateForLimb(unsigned short cId, unsigned short isIntermediate, const char *limbName) throw (hpp::Error); virtual hpp::floatSeqSeq* computeContactPointsForLimb(unsigned short cId, const char* limbName) throw(hpp::Error);
virtual hpp::floatSeqSeq* interpolate(double timestep, double path, double robustnessTreshold, unsigned short filterStates, bool testReachability, bool quasiStatic, bool erasePreviousStates) throw (hpp::Error); virtual hpp::floatSeqSeq* computeContactPointsAtStateForLimb(unsigned short cId, unsigned short isIntermediate,
virtual hpp::floatSeqSeq* interpolateConfigs(const hpp::floatSeqSeq& configs, double robustnessTreshold, unsigned short filterStates, bool testReachability, bool quasiStatic, bool erasePreviousStates) throw (hpp::Error); const char* limbName) throw(hpp::Error);
virtual hpp::floatSeqSeq* getContactCone(unsigned short stateId, double friction) throw (hpp::Error); virtual hpp::floatSeqSeq* computeCenterOfContactAtStateForLimb(unsigned short cId, unsigned short isIntermediate,
virtual hpp::floatSeqSeq* getContactIntermediateCone(unsigned short stateId, double friction) throw (hpp::Error); const char* limbName) throw(hpp::Error);
virtual hpp::floatSeqSeq* interpolate(double timestep, double path, double robustnessTreshold,
unsigned short filterStates, bool testReachability, bool quasiStatic,
bool erasePreviousStates) throw(hpp::Error);
virtual hpp::floatSeqSeq* interpolateConfigs(const hpp::floatSeqSeq& configs, double robustnessTreshold,
unsigned short filterStates, bool testReachability, bool quasiStatic,
bool erasePreviousStates) throw(hpp::Error);
virtual hpp::floatSeqSeq* getContactCone(unsigned short stateId, double friction) throw(hpp::Error);
virtual hpp::floatSeqSeq* getContactIntermediateCone(unsigned short stateId, double friction) throw(hpp::Error);
virtual CORBA::Short generateComTraj(const hpp::floatSeqSeq& positions, const hpp::floatSeqSeq& velocities, virtual CORBA::Short generateComTraj(const hpp::floatSeqSeq& positions, const hpp::floatSeqSeq& velocities,
const hpp::floatSeqSeq& accelerations, const double dt) throw (hpp::Error); const hpp::floatSeqSeq& accelerations, const double dt) throw(hpp::Error);
virtual CORBA::Short straightPath(const hpp::floatSeqSeq& positions) throw (hpp::Error); virtual CORBA::Short straightPath(const hpp::floatSeqSeq& positions) throw(hpp::Error);
virtual CORBA::Short generateCurveTraj(const hpp::floatSeqSeq& positions) throw (hpp::Error); virtual CORBA::Short generateCurveTraj(const hpp::floatSeqSeq& positions) throw(hpp::Error);
virtual CORBA::Short generateCurveTrajParts(const hpp::floatSeqSeq& positions, const hpp::floatSeq& partitions) throw (hpp::Error); virtual CORBA::Short generateCurveTrajParts(const hpp::floatSeqSeq& positions,
virtual CORBA::Short generateRootPath(const hpp::floatSeqSeq& rootPositions, const hpp::floatSeq& partitions) throw(hpp::Error);