Parasol Planning Library (PPL)
|
#include <GroupPath.h>
Public Types | |
Motion Planning Types | |
typedef GenericStateGraph< Cfg, DefaultWeight< Cfg > > | RoadmapType |
typedef GroupCfg< RoadmapType > | GroupCfgType |
typedef GroupRoadmap< GroupCfgType, GroupLocalPlan< RoadmapType > > | GroupRoadmapType |
typedef GroupRoadmapType::VID | VID |
Public Member Functions | |
template<typename MPLibrary > | |
const std::vector< typename GroupPath::GroupCfgType > | FullCfgs (MPLibrary *const _lib) const |
template<typename MPLibrary > | |
const std::vector< typename GroupPath::GroupCfgType > | FullCfgsWithWait (MPLibrary *const _lib) const |
Construction | |
GroupPath (GroupRoadmapType *const _r=nullptr) | |
Path Interface | |
GroupRoadmapType * | GetRoadmap () const noexcept |
Get the roadmap used by this path. More... | |
size_t | Size () const noexcept |
Get the number of cfgs in the path. More... | |
bool | Empty () const noexcept |
Check if the path is empty. More... | |
double | Length () const |
Get the total edge weight. More... | |
size_t | TimeSteps () const |
const std::vector< VID > & | VIDs () const noexcept |
Get the VIDs in the path. More... | |
const std::pair< std::vector< VID >, std::vector< size_t > > | VIDsWaiting () const noexcept |
Get the VIDs and timesteps waiting in the path. More... | |
const std::vector< GroupCfgType > & | Cfgs () const |
template<typename MPLibrary > | |
const std::vector< GroupCfgType > | FullCfgs (MPLibrary *const _lib) const |
template<typename MPLibrary > | |
const std::vector< GroupCfgType > | FullCfgsWithWait (MPLibrary *const _lib) const |
GroupPath & | operator+= (const GroupPath &_p) |
GroupPath | operator+ (const GroupPath &_p) const |
GroupPath & | operator+= (const std::vector< VID > &_vids) |
GroupPath | operator+ (const std::vector< VID > &_vids) const |
GroupPath & | operator= (const GroupPath &_p) |
Copy assignment operator. More... | |
void | Clear () |
Clear all data in the path. More... | |
void | FlushCache () |
Clear cached data, but leave the VIDs. More... | |
void | SetWaitTimes (std::vector< size_t > _waitTimes) |
std::vector< size_t > | GetWaitTimes () |
Get the wait times at each vertex in the path. More... | |
std::pair< size_t, size_t > | GetEdgeAtTimestep (size_t _timestep) |
A path of connected configurations from a given roadmap.
The implementation uses a vector of VID's as the primary representation. The corresponding configurations are computed lazily upon request.
typedef GroupCfg<RoadmapType> GroupPath::GroupCfgType |
typedef GenericStateGraph<Cfg, DefaultWeight<Cfg> > GroupPath::RoadmapType |
typedef GroupRoadmapType::VID GroupPath::VID |
GroupPath::GroupPath | ( | GroupRoadmapType *const | _r = nullptr | ) |
Construct an empty path.
_r | The roadmap used by this path. |
const std::vector< typename GroupPath::GroupCfgType > & GroupPath::Cfgs | ( | ) | const |
Get a copy of the Cfgs in the path.
void GroupPath::Clear | ( | ) |
Clear all data in the path.
|
noexcept |
Check if the path is empty.
void GroupPath::FlushCache | ( | ) |
Clear cached data, but leave the VIDs.
const std::vector<GroupCfgType> GroupPath::FullCfgs | ( | MPLibrary *const | _lib | ) | const |
Get the current full Cfg path with steps spaced one environment resolution apart. This is not cached due to its size and infrequent usage.
_lib | The planning library to use. |
const std::vector<typename GroupPath::GroupCfgType> GroupPath::FullCfgs | ( | MPLibrary *const | _lib | ) | const |
const std::vector<GroupCfgType> GroupPath::FullCfgsWithWait | ( | MPLibrary *const | _lib | ) | const |
Get the current full Cfg path with wait times. Steps are spaced one environment resolution apart. This is not cached due to its size and infrequent usage.
_lib | The planning library to use. |
const std::vector<typename GroupPath::GroupCfgType> GroupPath::FullCfgsWithWait | ( | MPLibrary *const | _lib | ) | const |
std::pair< size_t, size_t > GroupPath::GetEdgeAtTimestep | ( | size_t | _timestep | ) |
Get the (source,target) of the path at the input timestep.
_timestep | The timestep to find the corresponding edge. |
|
noexcept |
Get the roadmap used by this path.
std::vector< size_t > GroupPath::GetWaitTimes | ( | ) |
Get the wait times at each vertex in the path.
double GroupPath::Length | ( | ) | const |
Get the total edge weight.
Add another path to the end of this one and return the result.
_p | The path to add. |
Add a new set of VIDs to the end of this path and return the result.
_vids | The VIDs to add. |
Append another path to the end of this one.
_p | The path to append. |
Append a new set of VIDs to the end of this path.
_vids | The VIDs to append. |
void GroupPath::SetWaitTimes | ( | std::vector< size_t > | _waitTimes | ) |
Set the wait times at each vertex in path Used in Safe Interval Path Planning
|
noexcept |
Get the number of cfgs in the path.
size_t GroupPath::TimeSteps | ( | ) | const |
|
noexcept |
Get the VIDs in the path.
|
noexcept |
Get the VIDs and timesteps waiting in the path.