hpp-rbprm  4.10.1
Implementation of RB-PRM planner using hpp.
hpp::rbprm::RbPrmShooter Class Reference

#include <hpp/rbprm/rbprm-shooter.hh>

Inheritance diagram for hpp::rbprm::RbPrmShooter:
Collaboration diagram for hpp::rbprm::RbPrmShooter:

Public Types

typedef std::pair< fcl::Vec3f, TrianglePointsT_TriangleNormal
 

Public Member Functions

void BoundSO3 (const std::vector< double > &limitszyx)
 
void sampleExtraDOF (bool sampleExtraDOF)
 
void ratioWeighted (double ratio)
 

Static Public Member Functions

static HPP_RBPRM_DLLAPI RbPrmShooterPtr_t create (const pinocchio::RbPrmDevicePtr_t &robot, const core::ObjectStdVector_t &geometries, const affMap_t &affordances, const std::vector< std::string > &filter=std::vector< std::string >(), const std::map< std::string, std::vector< std::string > > &affFilters=std::map< std::string, std::vector< std::string > >(), const std::size_t shootLimit=10000, const std::size_t displacementLimit=100)
 

Public Attributes

const std::size_t shootLimit_
 
const std::size_t displacementLimit_
 
const std::vector< std::string > filter_
 

Protected Member Functions

 RbPrmShooter (const pinocchio::RbPrmDevicePtr_t &robot, const core::ObjectStdVector_t &geometries, const affMap_t &affordances, const std::vector< std::string > &filter, const std::map< std::string, std::vector< std::string > > &affFilters, const std::size_t shootLimit=10000, const std::size_t displacementLimit=100)
 Note that translation joints have to be bounded. More...
 
void init (const RbPrmShooterPtr_t &self)
 
virtual void impl_shoot (core::Configuration_t &q) const
 

Member Typedef Documentation

◆ T_TriangleNormal

Constructor & Destructor Documentation

◆ RbPrmShooter()

hpp::rbprm::RbPrmShooter::RbPrmShooter ( const pinocchio::RbPrmDevicePtr_t robot,
const core::ObjectStdVector_t &  geometries,
const affMap_t affordances,
const std::vector< std::string > &  filter,
const std::map< std::string, std::vector< std::string > > &  affFilters,
const std::size_t  shootLimit = 10000,
const std::size_t  displacementLimit = 100 
)
protected

Note that translation joints have to be bounded.

Member Function Documentation

◆ BoundSO3()

void hpp::rbprm::RbPrmShooter::BoundSO3 ( const std::vector< double > &  limitszyx)

Sets limits on robot orientation, described according to Euler's ZYX rotation order

Parameters
limitszyx6D vector with the lower and upperBound for each rotation axis in sequence expressed in gradients [z_inf, z_sup, y_inf, y_sup, x_inf, x_sup]

◆ create()

static HPP_RBPRM_DLLAPI RbPrmShooterPtr_t hpp::rbprm::RbPrmShooter::create ( const pinocchio::RbPrmDevicePtr_t robot,
const core::ObjectStdVector_t &  geometries,
const affMap_t affordances,
const std::vector< std::string > &  filter = std::vector< std::string >(),
const std::map< std::string, std::vector< std::string > > &  affFilters = std::map< std::string, std::vector< std::string > >(),
const std::size_t  shootLimit = 10000,
const std::size_t  displacementLimit = 100 
)
static

Creates an instance of RbPrmShooter for reachability based planning.

Parameters
robotthe Device describing the trunk approximation, that must remain collision free
geometriesThe mesh describing the environment. WARNING:A current prerequisite of RB-PRM is that the mesh is composed of triangles. The normals of the triangles are computed using the blender convention.
filterSpecifies constraints on the range of motion of the limbs of the robot for a configuration to be valid. If filter is empty, no constraints are defined. Otherwise, a configuration can only be valid the all the ROMS specified in the vector acre colliding with the environment
normalFiltersSpecifies constraints on the accepted normal orientation (in world coordinates) for the reachability condition to be valid. for instance If a normal filter is set to a normal of z=(0,0,1) and a range of 0.9, only surfaces with a normal that has a dot product with z greater or equal than 0.9 will be considered for validating the ROM collision. Otherwise no constraints are considered and any colliding surface will validate the condition.
shootLimitthe maximum number of trials spent in trying to generate a valid configuration before failing.
displacementLimitmaximum number of local displacements allowed for a shot configuration to try to verify the reachability condition.
Returns
a pointer to an instance of RbPrmShooter

◆ impl_shoot()

virtual void hpp::rbprm::RbPrmShooter::impl_shoot ( core::Configuration_t &  q) const
protectedvirtual

◆ init()

void hpp::rbprm::RbPrmShooter::init ( const RbPrmShooterPtr_t self)
protected

◆ ratioWeighted()

void hpp::rbprm::RbPrmShooter::ratioWeighted ( double  ratio)
inline

◆ sampleExtraDOF()

void hpp::rbprm::RbPrmShooter::sampleExtraDOF ( bool  sampleExtraDOF)

Member Data Documentation

◆ displacementLimit_

const std::size_t hpp::rbprm::RbPrmShooter::displacementLimit_

◆ filter_

const std::vector<std::string> hpp::rbprm::RbPrmShooter::filter_

◆ shootLimit_

const std::size_t hpp::rbprm::RbPrmShooter::shootLimit_

The documentation for this class was generated from the following file: