Class BFMT::BiDirMotion

Nested Relationships

This class is a nested type of Class BFMT.

Class Documentation

class BiDirMotion

Representation of a bidirectional motion.

Public Types

enum SetType

The FMT* planner begins with all nodes included in set Unvisited “Waiting for optimal connection”. As nodes are connected to the tree, they are transferred into set Open “Horizon of explored tree.” Once a node in Open is no longer close enough to the frontier to connect to any more nodes in Unvisited, it is removed from Open. These three SetTypes are flags indicating which set the node belongs to; Open, Unvisited, or Closed (neither)

Values:

enumerator SET_CLOSED
enumerator SET_OPEN
enumerator SET_UNVISITED
using BiDirMotionPtrs = std::vector<BiDirMotion*>

Public Functions

inline BiDirMotion(TreeType *tree)
inline BiDirMotion(const base::SpaceInformationPtr &si, TreeType *tree)

Constructor that allocates memory for the state.

inline base::Cost getCost() const

Set the state associated with the motion.

inline base::Cost getOtherCost() const

Get cost of this motion in the inactive tree.

inline void setCost(base::Cost cost)

Set the cost of the motion.

inline void setParent(BiDirMotion *parent)

Set the parent of the motion.

inline BiDirMotion *getParent() const

Get the parent of the motion.

inline void setChildren(BiDirMotionPtrs children)

Set the children of the motion.

inline BiDirMotionPtrs getChildren() const

Get the children of the motion.

inline void setCurrentSet(SetType set)

Set the current set of the motion.

inline SetType getCurrentSet() const

Fet the current set of the motion.

inline SetType getOtherSet() const

Get set of this motion in the inactive tree.

inline void setTreeType(TreeType *treePtr)

Set tree identifier for this motion.

inline TreeType getTreeType() const

Get tree identifier for this motion.

inline void setState(base::State *state)

Set the state associated with the motion.

inline base::State *getState() const

Get the state associated with the motion.

inline bool alreadyCC(BiDirMotion *m)

Returns true if the connection to m has been already tested and failed because of a collision.

inline void addCC(BiDirMotion *m)

Caches a failed collision check to m.

inline void setHeuristicCost(const base::Cost h)

Set the cost to go heuristic cost.

inline base::Cost getHeuristicCost() const

Get the cost to go heuristic cost.

Public Members

base::State *state_

The state contained by the motion.

BiDirMotion *parent_[2]

The parent motion in the exploration tree

BiDirMotionPtrs children_[2]

The set of motions descending from the current motion

SetType currentSet_[2]

Current set in which the motion is included.

TreeType *tree_

Tree identifier

base::Cost cost_[2]

The cost of this motion

base::Cost hcost_[2]

The minimum cost to go of this motion (heuristically computed)

std::set<BiDirMotion*> collChecksDone_

Contains the connections attempted FROM this node.