ExecutorInterface.h
Go to the documentation of this file.
1#pragma once
2
5
7{
8
9 /**
10 * @brief An executer the server navigator will use to send its control commands to.
11 */
13 {
14
15 public:
16 virtual ~ExecutorInterface() = default;
17
19 bool activateController = false) = 0;
21 bool activateController = false) = 0;
22
23
30
31 virtual void start(ControllerType controllerType) = 0;
32 virtual void stop() = 0;
33
34 virtual void ensureIsActive(ControllerType controllerType) = 0;
35
36 /**
37 * @brief Whether the emergency stop has been released since this was last asked.
38 *
39 * Reports the edge once and clears it. The caller must re-anchor its plan at the robot's
40 * current pose before the controller is activated again: the robot stands still where
41 * the old profile assigns cruise speed, so resuming on the old trajectory steps the
42 * command from zero and the device ramp answers at its own maximum.
43 *
44 * Defaults to false for executors with no emergency-stop source.
45 */
46 virtual bool
48 {
49 return false;
50 }
51
52 /**
53 * @brief Ask the executor to persist whatever execution diagnostics it has recorded.
54 *
55 * Called when a navigation request finishes, because finishing does not reliably stop the
56 * controller that holds the data: `stop()` only deactivates a controller that reports
57 * active. A record that appears only on deactivation is a record that can fail to appear.
58 *
59 * A no-op unless the executor's controller has diagnostics enabled, and never throws --
60 * this must not be able to fail a navigation request.
61 */
62 virtual void
64 {
65 }
66
67 virtual void updateVelocityLimits(const core::TwistLimits& limits) = 0;
68
69 virtual void updateVelocityFactor(float velocityFactor) = 0;
70 };
71
72} // namespace armarx::navigation::server
An executer the server navigator will use to send its control commands to.
virtual void execute(const core::GlobalTrajectory &trajectory, bool activateController=false)=0
virtual void updateVelocityFactor(float velocityFactor)=0
virtual void execute(const core::LocalTrajectory &trajectory, bool activateController=false)=0
virtual void ensureIsActive(ControllerType controllerType)=0
virtual void start(ControllerType controllerType)=0
virtual void updateVelocityLimits(const core::TwistLimits &limits)=0
virtual void dumpDiagnostics()
Ask the executor to persist whatever execution diagnostics it has recorded.
virtual bool consumeEmergencyStopRelease()
Whether the emergency stop has been released since this was last asked.
This file is part of ArmarX.