hpp-rbprm
4.14.0
Implementation of RB-PRM planner using hpp.
|
Classes | |
struct | ContactGenHelper |
struct | ContactReport |
Typedefs | |
typedef std::queue< hpp::rbprm::State > | Q_State |
typedef std::pair< hpp::rbprm::State, std::vector< std::string > > | ContactState |
typedef std::queue< ContactState > | T_ContactState |
Functions | |
ContactReport HPP_RBPRM_DLLAPI | oneStep (ContactGenHelper &helper) |
hpp::rbprm::State HPP_RBPRM_DLLAPI | ComputeContacts (const hpp::rbprm::RbPrmFullBodyPtr_t &body, pinocchio::ConfigurationIn_t configuration, const affMap_t &affordances, const std::map< std::string, std::vector< std::string > > &affFilters, const fcl::Vec3f &direction, const double robustnessTreshold=0, const fcl::Vec3f &acceleration=fcl::Vec3f(0, 0, 0)) |
hpp::rbprm::contact::ContactReport HPP_RBPRM_DLLAPI | ComputeContacts (const hpp::rbprm::State &previous, const hpp::rbprm::RbPrmFullBodyPtr_t &body, pinocchio::ConfigurationIn_t configuration, const affMap_t &affordances, const std::map< std::string, std::vector< std::string > > &affFilters, const fcl::Vec3f &direction, const double robustnessTreshold=0, const fcl::Vec3f &acceleration=fcl::Vec3f(0, 0, 0), const core::PathConstPtr_t &comPath=core::PathPtr_t(), const double currentPathId=0, const bool testReachability=true, const bool quasiStatic=false) |
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) |
Q_State | maintain_contacts_combinatorial (const hpp::rbprm::State ¤tState, const std::size_t maxBrokenContacts=1) |
T_ContactState | gen_contacts_combinatorial (const std::vector< std::string > &freeEffectors, const State &previous, const std::size_t maxCreatedContacts, const bool maximiseContacts=false) |
projection::ProjectionReport | maintain_contacts (ContactGenHelper &contactGenHelper) |
projection::ProjectionReport | generate_contact (const ContactGenHelper &contactGenHelper, const std::string &limb, sampling::HeuristicParam ¶ms, const sampling::heuristic evaluate=0) |
projection::ProjectionReport | gen_contacts (ContactGenHelper &contactGenHelper) |
projection::ProjectionReport | repositionContacts (ContactGenHelper &contactGenHelper) |
typedef std::pair<hpp::rbprm::State, std::vector<std::string> > hpp::rbprm::contact::ContactState |
typedef std::queue<hpp::rbprm::State> hpp::rbprm::contact::Q_State |
typedef std::queue<ContactState> hpp::rbprm::contact::T_ContactState |
hpp::rbprm::State HPP_RBPRM_DLLAPI hpp::rbprm::contact::ComputeContacts | ( | const hpp::rbprm::RbPrmFullBodyPtr_t & | body, |
pinocchio::ConfigurationIn_t | configuration, | ||
const affMap_t & | affordances, | ||
const std::map< std::string, std::vector< std::string > > & | affFilters, | ||
const fcl::Vec3f & | direction, | ||
const double | robustnessTreshold = 0 , |
||
const fcl::Vec3f & | acceleration = fcl::Vec3f(0, 0, 0) |
||
) |
Generates a balanced contact configuration, considering the given current configuration of the robot, and a direction of motion. Typically used to generate a start and / or goal configuration automatically for a planning problem.
body | The considered FullBody robot for which to generate contacts |
configuration | Current full body configuration. |
affordances | the set of 3D objects to consider for contact creation. |
affFilters | a vector of strings determining which affordance types are to be used in generating contacts for each limb. |
direction | An estimation of the direction of motion of the character. |
robustnessTreshold | minimum value of the static equilibrium robustness criterion required to accept the configuration (0 by default). |
hpp::rbprm::contact::ContactReport HPP_RBPRM_DLLAPI hpp::rbprm::contact::ComputeContacts | ( | const hpp::rbprm::State & | previous, |
const hpp::rbprm::RbPrmFullBodyPtr_t & | body, | ||
pinocchio::ConfigurationIn_t | configuration, | ||
const affMap_t & | affordances, | ||
const std::map< std::string, std::vector< std::string > > & | affFilters, | ||
const fcl::Vec3f & | direction, | ||
const double | robustnessTreshold = 0 , |
||
const fcl::Vec3f & | acceleration = fcl::Vec3f(0, 0, 0) , |
||
const core::PathConstPtr_t & | comPath = core::PathPtr_t() , |
||
const double | currentPathId = 0 , |
||
const bool | testReachability = true , |
||
const bool | quasiStatic = false |
||
) |
Generates a balanced contact configuration, considering the given current configuration of the robot, and a previous, balanced configuration. Existing contacts are maintained provided joint limits and balance remains respected. Otherwise a contact generation strategy is employed.
previous | The previously computed State of the robot |
body | The considered FullBody robot for which to generate contacts |
configuration | Current full body configuration. |
affordances | the set of 3D objects to consider for contact creation. |
affFilters | a vector of strings determining which affordance types are to be used in generating contacts for each limb. |
direction | An estimation of the direction of motion of the character. |
robustnessTreshold | minimum value of the static equilibrium robustness criterion required to accept the configuration (0 by default). |
acceleration | acceleration on the CoM estimated by the planning |
comPath | : path found by the planning |
currentPathId | : timing inside comPath such that comPath(currentPathId) == configuration (for the freeflyer DOFs) |
projection::ProjectionReport hpp::rbprm::contact::gen_contacts | ( | ContactGenHelper & | contactGenHelper | ) |
Given a combinatorial of possible contacts, generate the first "valid" contact configuration, that is the first contact configuration is contact and equilibrium.
ContactGenHelper | parametrization of the planner |
T_ContactState hpp::rbprm::contact::gen_contacts_combinatorial | ( | const std::vector< std::string > & | freeEffectors, |
const State & | previous, | ||
const std::size_t | maxCreatedContacts, | ||
const bool | maximiseContacts = false |
||
) |
Generates all potentially valid cases of valid contact creation by removing the top state of the priority stack
freeEffectors | list of free candidates |
previous | current state of the robot |
maxCreatedContacts | max number of contacts that can be created in the process |
projection::ProjectionReport hpp::rbprm::contact::generate_contact | ( | const ContactGenHelper & | contactGenHelper, |
const std::string & | limb, | ||
sampling::HeuristicParam & | params, | ||
const sampling::heuristic | evaluate = 0 |
||
) |
Given a current state and an effector, tries to generate a contact configuration.
ContactGenHelper | parametrization of the planner |
limb | the limb to create a contact with |
std::vector<hpp::pinocchio::CollisionObjectPtr_t> HPP_RBPRM_DLLAPI hpp::rbprm::contact::getAffObjectsForLimb | ( | const std::string & | limb, |
const affMap_t & | affordances, | ||
const std::map< std::string, std::vector< std::string > > & | affFilters | ||
) |
projection::ProjectionReport hpp::rbprm::contact::maintain_contacts | ( | ContactGenHelper & | contactGenHelper | ) |
Given a combinatorial of possible contacts, generate the first "valid" configuration, that is the first kinematic configuration that removes the minimum number of contacts and is collision free.
ContactGenHelper | parametrization of the planner |
Q_State hpp::rbprm::contact::maintain_contacts_combinatorial | ( | const hpp::rbprm::State & | currentState, |
const std::size_t | maxBrokenContacts = 1 |
||
) |
Generates all potentially valid cases of valid contact maintenance given a previous configuration.
fullBody | target Robot |
target,desired | root position |
currentState | current state of the robot (configuration and contacts) |
maxBrokenContacts | max number of contacts that can be broken in the process |
ContactReport HPP_RBPRM_DLLAPI hpp::rbprm::contact::oneStep | ( | ContactGenHelper & | helper | ) |
Generates one step of the contact planner. First, generates all possible cases of contact maintenance (feasible). Starting with the preferred case, generates all admissible contact combinatorial. Again starting with the preferred one, tries to generate a feasible contact. iterates like this until either all solution failed or a feasible contact is found.
ContactGenHelper | parametrization of the planner |
projection::ProjectionReport hpp::rbprm::contact::repositionContacts | ( | ContactGenHelper & | contactGenHelper | ) |
Tries to reposition one contact of a given state into a new one, more balanced
ContactGenHelper | parametrization of the planner |