162 "/tmp/navigation-request-parametrization.json"};
185 void moveTo(
const std::vector<core::Pose>& waypoints,
191 void update(
const std::vector<core::Pose>& waypoints,
195 void moveTo(
const std::vector<client::WaypointTarget>&
targets,
202 const std::optional<std::string>& providerName)
override;
206 void pause()
override;
210 bool isPaused() const noexcept override;
212 void stop() override;
214 bool isStopped() const noexcept override;
223 using GraphPath =
std::vector<
semrel::ShapeID>;
225 void moveToAbsolute(const
std::vector<
core::
Pose>& waypoints,
bool = true);
226 void moveTowardsAbsolute(const
core::Direction& direction);
228 void updateAbsolute(const
std::vector<
core::
Pose>& waypoints);
230 void moveToAbsoluteAlternatives(const
std::vector<
core::TargetAlternative>&
targets);
231 bool setupTargetAlternatives();
233 void setupGlobalPlanSubvidision();
236 bool startGlobalPathSegment(
bool incrementSegment,
bool rampFromCurrentVelocity);
240 void updateScene(
bool fullUpdate = false);
242 void checkGlobalPathAlternatives();
243 bool verifyGlobalPathPossible(const
core::GlobalTrajectory& plan);
247 void checkRobotBlocked(const
safety_guard::SafetyGuardResult& result);
250 void updateExecutor(const
std::optional<
local_planning::LocalPlannerResult>& localPlan);
251 void updateExecutor(const
core::GlobalTrajectory& globalTrajectory);
252 void updateIntrospector(const
std::optional<
local_planning::LocalPlannerResult>& localPlan);
254 void updateMonitor();
261 void stopAllThreads();
269 core::GlobalTrajectory convertToTrajectory(const GraphPath& shortestPath,
277 void applyParametrization(
core::GlobalTrajectory&
trajectory,
float startVelocity);
292 void resumeAfterEmergencyStop();
294 bool hasLocalPlanner() const noexcept;
295 bool hasSafetyGuard() const;
315 core::TrajectoryParametrization parametrizationMode{
323 std::atomic_bool executorEnabled =
true;
324 std::atomic_bool shouldRun =
false;
328 std::optional<GoalReachedMonitor> goalReachedMonitor;
330 std::vector<core::TargetAlternative> targetAlternatives;
331 std::optional<armarx::DateTime> lastAllAlternativesImpossible;
335 std::optional<armarx::DateTime> blockedSince;
337 std::optional<GlobalPathSubdivision> globalPlan;
338 std::optional<local_planning::LocalPlannerResult> localPlan;
340 using Waypoints = std::vector<core::Pose>;
342 std::mutex globalPlanningRequestMtx;
343 std::optional<Waypoints> globalPlanningRequest;
345 std::atomic<float> velocityFactor = 1.F;
347 std::mutex updateLocalPlannerMtx;
351 std::mutex runningTaskMtx;