![]() |
Parasol Planning Library (PPL)
|
#include <SafeIntervalTool.h>
Public Types | |
Motion Planning Types | |
typedef MPBaseObject::RoadmapType | RoadmapType |
typedef MPBaseObject::WeightType | WeightType |
typedef RoadmapType::VID | VID |
Local Types | |
typedef std::vector< Range< double > > | Intervals |
A set of time intervals. More... | |
![]() | |
typedef DefaultWeight< Cfg > | WeightType |
typedef GenericStateGraph< Cfg, WeightType > | RoadmapType |
typedef GroupCfg< RoadmapType > | GroupCfgType |
typedef GroupLocalPlan< RoadmapType > | GroupWeightType |
typedef GroupRoadmap< GroupCfgType, GroupWeightType > | GroupRoadmapType |
Public Member Functions | |
Construction | |
SafeIntervalTool () | |
SafeIntervalTool (XMLNode &_node) | |
virtual | ~SafeIntervalTool () |
MPBaseObject Overrides | |
virtual void | Initialize () override |
Interval Computation | |
Intervals | ComputeIntervals (const Cfg &_cfg) |
Intervals | ComputeIntervals (const WeightType &_weight, const VID _source, const VID _target, RoadmapType *_roadmap) |
Interval Checking | |
bool | ContainsTimestep (const Intervals &_intervals, const double _timestep) |
![]() | |
MPBaseObject (const std::string &_label="", const std::string &_name="", bool _debug=false) | |
MPBaseObject (XMLNode &_node) | |
virtual | ~MPBaseObject () |
virtual void | Print (std::ostream &_os) const |
const std::string & | GetName () const |
Get the class name for this object. More... | |
const std::string & | GetLabel () const |
Get the unique label for this object. More... | |
std::string | GetNameAndLabel () const |
Get the unique string identifier for this object "m_name::m_label". More... | |
void | SetLabel (const std::string &) |
Set the unique label for this object. More... | |
void | SetMPLibrary (MPLibrary *) noexcept |
Set the owning MPLibrary. More... | |
MPLibrary * | GetMPLibrary () const noexcept |
Get the owning MPLibrary. More... | |
bool | IsRunning () const noexcept |
Check the library's running flag. More... | |
MPProblem * | GetMPProblem () const noexcept |
Get the library's current MPProblem. More... | |
Environment * | GetEnvironment () const noexcept |
Get the current environment. More... | |
MPTask * | GetTask () const noexcept |
Get the current task. More... | |
GroupTask * | GetGroupTask () const noexcept |
Get the current group task. More... | |
MPSolutionType * | GetMPSolution () const noexcept |
RoadmapType * | GetRoadmap (Robot *const _r=nullptr) const noexcept |
Get the current free-space roadmap. More... | |
GroupRoadmapType * | GetGroupRoadmap (RobotGroup *const _g=nullptr) const noexcept |
Get the current free-space group roadmap. More... | |
RoadmapType * | GetBlockRoadmap (Robot *const _r=nullptr) const noexcept |
Get the current obstacle-space roadmap. More... | |
Path * | GetPath (Robot *const _r=nullptr) const noexcept |
GroupPath * | GetGroupPath (RobotGroup *const _g=nullptr) const noexcept |
Get the current best group path. More... | |
StatClass * | GetStatClass () const noexcept |
Get the current StatClass. More... | |
LocalObstacleMap * | GetLocalObstacleMap () const noexcept |
Get the local obstacle map. More... | |
Additional Inherited Members | |
![]() | |
void | SetName (const std::string &_s) |
const std::string & | GetBaseFilename () const |
![]() | |
bool | m_debug |
Print debug info? More... | |
Computes safe intervals for Cfgs and Edges. A 'safe interval' is an interval of time where collision with a known dynamic obstacle (with known trajectory) will not occur.
This tool implements the concept of a 'Safe Intervals' from the paper:
Phillips, Mike, and Maxim Likhachev. "Sipp: Safe interval path planning for dynamic environments." Robotics and Automation (ICRA), 2011 IEEE International Conference on. IEEE, 2011.
typedef std::vector<Range<double> > SafeIntervalTool::Intervals |
A set of time intervals.
SafeIntervalTool::SafeIntervalTool | ( | ) |
SafeIntervalTool::SafeIntervalTool | ( | XMLNode & | _node | ) |
|
virtualdefault |
SafeIntervalTool::Intervals SafeIntervalTool::ComputeIntervals | ( | const Cfg & | _cfg | ) |
Compute the safe intervals for a given Cfg.
_cfg | The configuration to compute safeIntervals's for. |
SafeIntervalTool::Intervals SafeIntervalTool::ComputeIntervals | ( | const WeightType & | _weight, |
const VID | _source, | ||
const VID | _target, | ||
RoadmapType * | _roadmap | ||
) |
Compute the safe intervals for a given Edge, a source and a target.
_weight | The edge to compute safeIntervals's for. |
_source | The source VID to compute safeIntervals's for. |
_target | The target VID to compute safeIntervals's for. |
_roadmap | The current roadmap. |
bool SafeIntervalTool::ContainsTimestep | ( | const Intervals & | _intervals, |
const double | _timestep | ||
) |
Determine if a timestep is contained within a SafeInterval
_intervals | The safe intervals to check in. |
_timestep | The timestep to check. |
|
overridevirtual |
Initialize this object for the current MPProblem. This should reset any internal state of the algorithms so that they are ready for execution. It is also the place to initialize any state that depends on the current problem.
Reimplemented from MPBaseObject.