libmove3d-planners
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
GeometricComputations Class Reference

Public Member Functions

p3d_point getRandomPointInTriangle (p3d_point A, p3d_point B, p3d_point C)
 
p3d_point getRandomPointInRectangle (p3d_point A, p3d_point B, p3d_point C, p3d_point D)
 a-—b | | c-—d .p b and c should be opposite
 
std::vector< p3d_point > getLowerPointsInObject (Robot *obj, double steepness)
 get lower BB points of the object
 
std::vector< p3d_point > getUpperPointsInObject (Robot *obj, double steepness)
 get higher BB points of the object
 
p3d_point getCenterOfObj (Robot *obje)
 
p3d_point getBotomCenterOfObj (Robot *obje, double threshhold)
 
double compute_triangle_area_x_y2 (p3d_point a, p3d_point b, p3d_point c)
 
bool point_in_rect2 (p3d_point a, p3d_point b, p3d_point c, p3d_point d, p3d_point x)
 a-—b | | c-—d .x b and c should be opposite
 
bool point_in_segment2d (p3d_point a, p3d_point b, p3d_point x)
 a-—b .x More...
 
double distBetweenPoints (p3d_point a, p3d_point b)
 
double distBetweenMatrix4 (p3d_matrix4 a, p3d_matrix4 b)
 distance between the points in the p3d_matrix4
 
double distBetweenPoints2D (p3d_point a, p3d_point b)
 
bool hexahedron_in_hexahedron (p3d_point x1, p3d_point x2, p3d_point x3, p3d_point x4, p3d_point x5, p3d_point x6, p3d_point x7, p3d_point x8, p3d_point y1, p3d_point y2, p3d_point y3, p3d_point y4, p3d_point y5, p3d_point y6, p3d_point y7, p3d_point y8)
 test if four points of hexahedron y are in hexahedron x
 
bool point_in_hexahedron (p3d_point a, p3d_point b, p3d_point c, p3d_point d, p3d_point e, p3d_point f, p3d_point g, p3d_point h, p3d_point x)
 c-—d /| /| a-—b h |/g |/ e-—f .x b and c should be opposite
 
double compute_pyramid_area (p3d_point a, p3d_point b, p3d_point c, p3d_point d, p3d_point h)
 a-—b | .h | c-—d b and c should be opposite
 
std::vector< p3d_point > getRandomPointsInHexahedron (double nbPoints, p3d_point a, p3d_point b, p3d_point c, p3d_point d, p3d_point e, p3d_point f, p3d_point g, p3d_point h)
 b-—d / /| a-f–c h |/ |/ e-—g b and c should be opposite
 
p3d_point getClosestBBPointFromPoint (Robot *e, p3d_point s)
 
ParallelepipedForm getBoxFromObjects (std::vector< Robot * > vr, Robot *gripper)
 
double distConfs (confPtr_t q1, confPtr_t q2)
 The euclidian distance between 2 confs.
 
std::vector< p3d_point > getSampled (std::vector< p3d_point > vp, double sampleRate)
 sample more finely a list of points More...
 
double computeCost (std::vector< p3d_point > vHP, std::vector< p3d_point > vp, double angleWeight, double distHWeight, double distWeight)
 vHP is the list of human positions (z is the orientation) and vp is the list of points to asses (can be only one point) More...
 
std::vector< p3d_point > smoothTraj (std::vector< p3d_point > origTraj, std::vector< p3d_point > vHP, Robot *r, int nbIterMax, double gainLim, double trajDistWeight, double distToHWeight, double angleWeight)
 vHP is the list of human positions (z is the orientation) and origTraj is the list of points to smooth More...
 

Member Function Documentation

double GeometricComputations::computeCost ( std::vector< p3d_point >  vHP,
std::vector< p3d_point >  vp,
double  angleWeight,
double  distHWeight,
double  distWeight 
)

vHP is the list of human positions (z is the orientation) and vp is the list of points to asses (can be only one point)

vHP is the list of human positions (z is the orientation) and vp is the list of points to asses (can e only one point)

Returns
: human aware cost for a set of robot positions.
double GeometricComputations::distBetweenPoints ( p3d_point  a,
p3d_point  b 
)
Returns
: euclidien distance between a and b
double GeometricComputations::distBetweenPoints2D ( p3d_point  a,
p3d_point  b 
)
Returns
: euclidien distance between a and b (in 2d, not accounting for z)
p3d_point GeometricComputations::getBotomCenterOfObj ( Robot obje,
double  threshhold 
)
Returns
: the center point of the botom rectangle of the BB
p3d_point GeometricComputations::getCenterOfObj ( Robot obje)
Returns
: the center point of the BB
vector< p3d_point > GeometricComputations::getSampled ( std::vector< p3d_point >  vp,
double  sampleRate 
)

sample more finely a list of points

bool GeometricComputations::point_in_segment2d ( p3d_point  a,
p3d_point  b,
p3d_point  x 
)

a-—b .x

Returns
: true if x is between a and b, false otherwise.
vector< p3d_point > GeometricComputations::smoothTraj ( std::vector< p3d_point >  origTraj,
std::vector< p3d_point >  vHP,
Robot r,
int  nbIterMax,
double  gainLim,
double  trajDistWeight,
double  distToHWeight,
double  angleWeight 
)

vHP is the list of human positions (z is the orientation) and origTraj is the list of points to smooth

Returns
a smoothed traj, based on human aware costs.

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