Class ProlateHyperspheroid

Class Documentation

class ProlateHyperspheroid

A class describing a prolate hyperspheroid, a special symmetric type of n-dimensional ellipse, for use in direct informed sampling for problems seeking to minimize path length.

J. D. Gammell, T. D. Barfoot, S. S. Srinivasa, “Informed sampling for asymptotically optimal path planning.”

IEEE Transactions on Robotics (T-RO), 34(4): 966-984, Aug. 2018. DOI: TRO.2018.2830331. arXiv: 1706.06454 [cs.RO]. Illustration video. Short description video.

Public Functions

ProlateHyperspheroid(unsigned int n, const double focus1[], const double focus2[])

The description of an n-dimensional prolate hyperspheroid.

void setTransverseDiameter(double transverseDiameter)

Set the transverse diameter of the PHS.

void transform(const double sphere[], double phs[]) const

Transform a point from a sphere to PHS. The return variable phs is expected to already exist.

bool isInPhs(const double point[]) const

Check if the given point lies in the PHS.

bool isOnPhs(const double point[]) const

Check if the given point lies on the PHS.

unsigned int getPhsDimension() const

The dimension of the PHS.

double getPhsMeasure() const

The measure of the PHS.

double getPhsMeasure(double tranDiam) const

The measure of the PHS for a given transverse diameter.

double getMinTransverseDiameter() const

The minimum transverse diameter of the PHS, i.e., the distance between the foci.

double getPathLength(const double point[]) const

Calculate length of a line that originates from one focus, passes through the given point, and terminates at the other focus, i.e., the transverse diameter of the ellipse on which the given sample lies.

unsigned int getDimension() const

The state dimension of the PHS.