33#include <ArmarXCore/interface/core/RemoteObjectNode.h>
35#include <RobotComponents/interface/components/MotionPlanning/Tasks/RandomShortcutPostprocessor/Task.h>
47 public virtual TaskBase,
51 Task(MotionPlanningTaskBasePtr previousStep,
52 const std::string& taskName =
"RandomShortcutPostprocessorTask",
53 Ice::Long maxTimeForPostprocessingInSeconds = 6000,
54 Ice::Float dcdStep = 0.01,
55 Ice::Long maxTries = 10000,
56 Ice::Float minShortcutImprovementRatio = 0.1,
57 Ice::Float minPathImprovementRatio = 0.01);
66 getNthPath(Ice::Long n,
const Ice::Current& = Ice::emptyCurrent)
const override
72 getPath(
const Ice::Current& = Ice::emptyCurrent)
const override
83 void abortTask(
const Ice::Current& = Ice::emptyCurrent)
override;
90 void run(
const RemoteObjectNodePrxList& nodes,
91 const Ice::Current& = Ice::emptyCurrent)
override;
96 return previousStep->getMaximalPlanningTimeInSeconds();
99 Ice::Long
getPathCount(
const Ice::Current& = Ice::emptyCurrent)
const override;
100 PathWithCost
getBestPath(
const Ice::Current& = Ice::emptyCurrent)
const override;
102 const Ice::Current& = Ice::emptyCurrent)
const override;
103 PathWithCostSeq
getAllPathsWithCost(
const Ice::Current& = Ice::emptyCurrent)
const override;
107 std::pair<float, float>
calcOffsets(
float length, std::mt19937& gen);
121 template <
class Base,
class Derived>
122 friend class ::armarx::GenericFactory;
Path getNthPath(Ice::Long n, const Ice::Current &=Ice::emptyCurrent) const override
PathWithCost getPathWithCost(const Ice::Current &=Ice::emptyCurrent) const override
Path getPath(const Ice::Current &=Ice::emptyCurrent) const override
PostprocessingMotionPlanningTask(const MotionPlanningTaskBasePtr &previousStep, const std::string &taskName)
The RemoteHandle class wrapps a ClientSideRemoteHandleControlBlock and can be used just as a Ice prox...
Path postprocessedSolution
bool isPathCollisionFree(const VectorXf &from, const VectorXf &to)
PathWithCostSeq getAllPathsWithCost(const Ice::Current &=Ice::emptyCurrent) const override
Ice::Long getPathCount(const Ice::Current &=Ice::emptyCurrent) const override
Task()=default
Ctor used by object factories.
Path getPath(const Ice::Current &=Ice::emptyCurrent) const override
std::atomic_bool taskIsAborted
PathWithCost getNthPathWithCost(Ice::Long n, const Ice::Current &=Ice::emptyCurrent) const override
void abortTask(const Ice::Current &=Ice::emptyCurrent) override
Aborts planning.
Ice::Long getMaximalPlanningTimeInSeconds(const Ice::Current &=Ice::emptyCurrent) const override
Task(MotionPlanningTaskBasePtr previousStep, const std::string &taskName="RandomShortcutPostprocessorTask", Ice::Long maxTimeForPostprocessingInSeconds=6000, Ice::Float dcdStep=0.01, Ice::Long maxTries=10000, Ice::Float minShortcutImprovementRatio=0.1, Ice::Float minPathImprovementRatio=0.01)
PathWithCost getBestPath(const Ice::Current &=Ice::emptyCurrent) const override
void run(const RemoteObjectNodePrxList &nodes, const Ice::Current &=Ice::emptyCurrent) override
Runs the task.
Path getNthPath(Ice::Long n, const Ice::Current &=Ice::emptyCurrent) const override
PathWithCost getPathWithCost(const Ice::Current &=Ice::emptyCurrent) const override
std::pair< float, float > calcOffsets(float length, std::mt19937 &gen)
IceInternal::Handle< Task > TaskPtr
This file offers overloads of toIce() and fromIce() functions for STL container types.
rngshortcut::Task RandomShortcutPostprocessorTask
IceUtil::Handle< RandomShortcutPostprocessorTask > RandomShortcutPostprocessorTaskPtr
RemoteHandle< MotionPlanningMultiPathWithCostTaskControlInterfacePrx > RandomShortcutPostprocessorTaskHandle