Class PathHybridization
Defined in File PathHybridization.h
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.