Class PathHybridization

Class Documentation

class PathHybridization

Given multiple geometric paths, attempt to combine them in order to obtain a shorter solution.

B. Raveh, A. Enosh, and D. Halperin, A little more, a lot better: Improving path quality by a path-merging algorithm, IEEE Trans. on Robotics, vol. 27, pp. 365–371, Apr. 2011. DOI: 10.1109/TRO.2010.2098622[PDF]

External documentation

Public Functions

PathHybridization(base::SpaceInformationPtr si)

The constructor needs to know about the space information of the paths it will operate on.

PathHybridization(base::SpaceInformationPtr si, base::OptimizationObjectivePtr obj)

This constructor also takes an alternative Optimization Objective to find lower costs for arbitrary objectives.

~PathHybridization()
const geometric::PathGeometricPtr &getHybridPath() const

Get the currently computed hybrid path. computeHybridPath() needs to have been called before.

void computeHybridPath()

Run Dijkstra’s algorithm to find out the lowest-cost path among the mixed ones.

unsigned int recordPath(const geometric::PathGeometricPtr &pp, bool matchAcrossGaps)

Add a path to the hybridization. If matchAcrossGaps is true, more possible edge connections are evaluated. Return the number of attempted connections between paths.

std::size_t pathCount() const

Get the number of paths that are currently considered as part of the hybridization.

void matchPaths(const geometric::PathGeometric &p, const geometric::PathGeometric &q, double gapValue, std::vector<int> &indexP, std::vector<int> &indexQ) const

Given two geometric paths p and q, compute the alignment of the paths using dynamic programming in an edit-distance like fashion, as described in the referenced paper. The cost of a gap is considered to be gapCost. The output of the computation is two arrays indexP and indexQ of equal length, such that these arrays contain matching index positions from the states in p and q, respectively. Gaps are marked by -1.

void clear()

Clear all the stored paths.

void print(std::ostream &out = std::cout) const

Print information about the computed path.

const std::string &getName() const

Get the name of the algorithm.