30 #include <Ice/ObjectAdapter.h>
38 #include <RobotComponents/interface/components/MotionPlanning/Tasks/MotionPlanningTask.h>
40 #include "../MotionPlanningServer.h"
45 class MotionPlanningTask;
61 virtual public MotionPlanningTaskBase,
91 MotionPlanningTaskBasePrx&
98 const Ice::Current& = Ice::emptyCurrent)
override;
111 throw std::logic_error{
"Task already registered as: category: " +
112 selfProxy->ice_getIdentity().category +
113 ", name: " + selfProxy->ice_getIdentity().name};
115 selfProxy = MotionPlanningTaskBasePrx::uncheckedCast(adapter->add(
this, ident));
119 getTaskName(
const Ice::Current& = Ice::emptyCurrent)
const override
127 taskStatusCallbacks.emplace_back(cb);
162 MotionPlanningTaskBasePrx selfProxy;
163 std::atomic<TaskStatus::Status> taskStatus{TaskStatus::eNew};
164 std::deque<std::function<void(TaskStatus::Status)>> taskStatusCallbacks;
168 virtual public MotionPlanningTaskWithDefaultMembersBase,
180 const VectorXf& goalCfg,
181 const CSpaceBasePtr& cspace,
184 const std::string& taskName) :
185 MotionPlanningTaskBase(taskName),
186 MotionPlanningTaskWithDefaultMembersBase(taskName,
191 maximalPlanningTimeInSeconds)
199 getStart(
const Ice::Current& = Ice::emptyCurrent)
const override
208 getGoal(
const Ice::Current& = Ice::emptyCurrent)
const override
217 getCSpace(
const Ice::Current& = Ice::emptyCurrent)
const override
226 getDcdStep(
const Ice::Current& = Ice::emptyCurrent)
const override
237 return maximalPlanningTimeInSeconds;
246 virtual public PostprocessingMotionPlanningTaskBase
250 const std::string& taskName) :
251 MotionPlanningTaskBase(taskName),
252 PostprocessingMotionPlanningTaskBase(taskName, previousStep)
258 getCSpace(
const Ice::Current& = Ice::emptyCurrent)
const override
261 return previousStep->getCSpace();
269 auto prev = MotionPlanningTaskPtr::dynamicCast(previousStep);
274 ident.category + ident.name,
"PreviousStep_" + previousStep->ice_id());
275 prev->registerAtIceAdapter(adapter, subIdent);
282 MotionPlanningTaskPtr::dynamicCast(previousStep)->postEnqueueing();