57 namespace scene_provider
93 void moveTo(
const std::vector<core::Pose>& waypoints,
96 void update(
const std::vector<core::Pose>& waypoints,
100 void moveTo(
const std::vector<client::WaypointTarget>& targets,
108 void pause()
override;
112 bool isPaused() const noexcept override;
114 void stop() override;
116 bool isStopped() const noexcept override;
125 using GraphPath =
std::vector<
semrel::ShapeID>;
127 void moveToAbsolute(const
std::vector<core::
Pose>& waypoints);
128 void moveTowardsAbsolute(const core::
Direction& direction);
130 void updateAbsolute(const
std::vector<core::
Pose>& waypoints);
134 void updateScene(
bool fullUpdate = false);
136 std::optional<local_planning::LocalPlannerResult> updateLocalPlanner();
137 void updateExecutor(const
std::optional<local_planning::LocalPlannerResult>& localPlan);
138 void updateExecutor(const
std::optional<global_planning::GlobalPlannerResult>& localPlan);
139 void updateIntrospector(const
std::optional<local_planning::LocalPlannerResult>& localPlan);
141 void updateMonitor();
146 void stopAllThreads();
151 void setGraphEdgeCosts(core::
Graph& graph) const;
152 GraphBuilder convertToGraph(const
std::vector<client::WaypointTarget>& targets) const;
154 core::GlobalTrajectory convertToTrajectory(const GraphPath& shortestPath,
155 const core::
Graph& graph) const;
157 core::
Pose resolveGraphVertex(const core::
Graph::ConstVertex& vertex) const;
160 hasLocalPlanner() const noexcept
167 InjectedServices srv;
169 std::atomic_bool executorEnabled =
true;
173 std::optional<GoalReachedMonitor> goalReachedMonitor;
176 std::optional<global_planning::GlobalPlannerResult> globalPlan;
177 std::optional<local_planning::LocalPlannerResult> localPlan;
179 using Waypoints = std::vector<core::Pose>;
181 std::mutex globalPlanningRequestMtx;
182 std::optional<Waypoints> globalPlanningRequest;