#include <ompl/base/objectives/VFMechanicalWorkOptimizationObjective.h>
Public Member Functions  
VFMechanicalWorkOptimizationObjective (const ompl::base::SpaceInformationPtr &si, geometric::VFRRT::VectorField vf)  
bool  isSatisfied (ompl::base::Cost) const override 
ompl::base::Cost  motionCost (const ompl::base::State *s1, const ompl::base::State *s2) const override 
bool  isSymmetric () const override 
Check if this objective has a symmetric cost metric, i.e. motionCost(s1, s2) = motionCost(s2, s1). Default implementation returns whether the underlying state space has symmetric interpolation.  
Public Member Functions inherited from ompl::base::MechanicalWorkOptimizationObjective  
MechanicalWorkOptimizationObjective (const SpaceInformationPtr &si, double pathLengthWeight=0.00001)  
The mechanical work formulation requires a weighing factor to use for the length of a path in order to disambiguate optimal paths. This weighing factor should be small. The default value for this weight is 0.00001.  
virtual double  getPathLengthWeight () const 
Set the factor to use for weighing path length in the mechanical work objective formulation.  
Cost  stateCost (const State *s) const override 
Returns a cost with a value of 1.  
Public Member Functions inherited from ompl::base::OptimizationObjective  
OptimizationObjective (const OptimizationObjective &)=delete  
OptimizationObjective &  operator= (const OptimizationObjective &)=delete 
OptimizationObjective (SpaceInformationPtr si)  
Constructor. The objective must always know the space information it is part of. The cost threshold for objective satisfaction defaults to 0.0.  
const std::string &  getDescription () const 
Get the description of this optimization objective.  
Cost  getCostThreshold () const 
Returns the cost threshold currently being checked for objective satisfaction.  
void  setCostThreshold (Cost c) 
Set the cost threshold for objective satisfaction. When a path is found with a cost better than the cost threshold, the objective is considered satisfied.  
virtual bool  isCostBetterThan (Cost c1, Cost c2) const 
Check whether the the cost c1 is considered better than the cost c2. By default, this returns true if if c1 is less than c2.  
virtual bool  isCostEquivalentTo (Cost c1, Cost c2) const 
Compare whether cost c1 and cost c2 are equivalent. By default defined as !isCostBetterThan(c1, c2) && !isCostBetterThan(c2, c1), as if c1 is not better than c2, and c2 is not better than c1, then they are equal.  
virtual bool  isFinite (Cost cost) const 
Returns whether the cost is finite or not.  
virtual Cost  betterCost (Cost c1, Cost c2) const 
Return the minimum cost given c1 and c2. Uses isCostBetterThan.  
virtual Cost  combineCosts (Cost c1, Cost c2) const 
Get the cost that corresponds to combining the costs c1 and c2. Default implementation defines this combination as an addition.  
virtual Cost  identityCost () const 
Get the identity cost value. The identity cost value is the cost c_i such that, for all costs c, combineCosts(c, c_i) = combineCosts(c_i, c) = c. In other words, combining a cost with the identity cost does not change the original cost. By default, a cost with the value 0.0 is returned. It's very important to override this with the proper identity value for your optimization objectives, or else optimal planners may not work.  
virtual Cost  infiniteCost () const 
Get a cost which is greater than all other costs in this OptimizationObjective; required for use in Dijkstra/Astar. Defaults to returning the double value inf.  
virtual Cost  initialCost (const State *s) const 
Returns a cost value corresponding to starting at a state s. No optimal planners currently support this method. Defaults to returning the objective's identity cost.  
virtual Cost  terminalCost (const State *s) const 
Returns a cost value corresponding to a path ending at a state s. No optimal planners currently support this method. Defaults to returning the objective's identity cost.  
virtual Cost  averageStateCost (unsigned int numStates) const 
Compute the average state cost of this objective by taking a sample of numStates states.  
void  setCostToGoHeuristic (const CostToGoHeuristic &costToGo) 
Set the costtogo heuristic function for this objective. The costtogo heuristic is a function which returns an admissible estimate of the optimal path cost from a given state to a goal, where "admissible" means that the estimated cost is always less than the true optimal cost.  
bool  hasCostToGoHeuristic () const 
Check if this objective has a costtogo heuristic function.  
Cost  costToGo (const State *state, const Goal *goal) const 
Uses a costtogo heuristic to calculate an admissible estimate of the optimal cost from a given state to a given goal. If no costtogo heuristic has been specified with setCostToGoHeuristic(), this function just returns the identity cost, which is sure to be an admissible heuristic if there are no negative costs.  
virtual Cost  motionCostHeuristic (const State *s1, const State *s2) const 
Defines an admissible estimate on the optimal cost on the motion between states s1 and s2. An admissible estimate always undervalues the true optimal cost of the motion. Used by some planners to speed up planning. The default implementation of this method returns this objective's identity cost, which is sure to be an admissible heuristic if there are no negative costs.  
const SpaceInformationPtr &  getSpaceInformation () const 
Returns this objective's SpaceInformation. Needed for operators in MultiOptimizationObjective.  
virtual InformedSamplerPtr  allocInformedStateSampler (const ProblemDefinitionPtr &probDefn, unsigned int maxNumberCalls) const 
Allocate a heuristicsampling state generator for this cost function, defaults to a basic rejection sampling scheme when the derived class does not provide a better method.  
virtual void  print (std::ostream &out) const 
Print information about this optimization objective.  
Protected Attributes  
geometric::VFRRT::VectorField  vf_ 
Protected Attributes inherited from ompl::base::MechanicalWorkOptimizationObjective  
double  pathLengthWeight_ 
The weighing factor for the path length in the mechanical work objective formulation.  
Protected Attributes inherited from ompl::base::OptimizationObjective  
SpaceInformationPtr  si_ 
The space information for this objective.  
std::string  description_ 
The description of this optimization objective.  
Cost  threshold_ 
The cost threshold used for checking whether this objective has been satisfied during planning.  
CostToGoHeuristic  costToGoFn_ 
The function used for returning admissible estimates on the optimal cost of the path between a given state and goal.  
Detailed Description
Optimization objective that computes mechanical work between two states by following a vector field.
Definition at line 52 of file VFMechanicalWorkOptimizationObjective.h.
Constructor & Destructor Documentation
◆ VFMechanicalWorkOptimizationObjective()

inline 
Constructor.
Definition at line 56 of file VFMechanicalWorkOptimizationObjective.h.
Member Function Documentation
◆ isSatisfied()

inlineoverridevirtual 
Assume we can always do better.
Reimplemented from ompl::base::OptimizationObjective.
Definition at line 63 of file VFMechanicalWorkOptimizationObjective.h.
◆ motionCost()

inlineoverridevirtual 
Compute mechanical work between two states.
Reimplemented from ompl::base::MechanicalWorkOptimizationObjective.
Definition at line 69 of file VFMechanicalWorkOptimizationObjective.h.
Member Data Documentation
◆ vf_

protected 
VectorField associated with the space.
Definition at line 92 of file VFMechanicalWorkOptimizationObjective.h.
The documentation for this class was generated from the following file:
 ompl/base/objectives/VFMechanicalWorkOptimizationObjective.h