PlatformControllerExecutor Class Reference

The PlatformUnitExecutor class. More...

#include <armarx/navigation/server/execution/PlatformControllerExecutor.h>

+ Inheritance diagram for PlatformControllerExecutor:

Classes

struct  Properties
 

Public Types

using ControllerComponentPlugin = armarx::control::client::ComponentPlugin
 
- Public Types inherited from ExecutorInterface
enum class  ControllerType { GlobalTrajectory , LocalTrajectory , None }
 

Public Member Functions

bool consumeEmergencyStopRelease () override
 Whether the emergency stop has been released since this was last asked.
 
void dumpDiagnostics () override
 Bumps the controller's diagnostics.dumpRequest, which makes it write the episode it has recorded and begin the next one.
 
void ensureIsActive (ControllerType controllerType) override
 
void execute (const core::GlobalTrajectory &trajectory, bool activateController=false) override
 
void execute (const core::LocalTrajectory &trajectory, bool activateController=false) override
 
 PlatformControllerExecutor (ControllerComponentPlugin &controllerComponentPlugin, const Properties &properties, const EmergencyStopInterface *emergencyStop=nullptr)
 
void start (ControllerType controllerType) override
 
void stop () override
 
void updateVelocityFactor (float velocityFactor) override
 
void updateVelocityLimits (const core::TwistLimits &limits) override
 
 ~PlatformControllerExecutor () override
 
- Public Member Functions inherited from ExecutorInterface
virtual ~ExecutorInterface ()=default
 

Detailed Description

The PlatformUnitExecutor class.

TODO: Should be renamed to whatever the new unit will be called which takes Mat4f as input instead of X/Y/Yaw, so that we have a generic interface.

Member Typedef Documentation

◆ ControllerComponentPlugin

Constructor & Destructor Documentation

◆ PlatformControllerExecutor()

PlatformControllerExecutor ( ControllerComponentPlugin & controllerComponentPlugin,
const Properties & properties,
const EmergencyStopInterface * emergencyStop = nullptr )
Parameters
emergencyStopConsulted before re-activating a controller. nullptr means this deployment has no emergency-stop source, which is not the same as one that has gone silent: absent proceeds, broken refuses.

◆ ~PlatformControllerExecutor()

~PlatformControllerExecutor ( )
overridedefault

Member Function Documentation

◆ consumeEmergencyStopRelease()

bool consumeEmergencyStopRelease ( )
overridevirtual

Whether the emergency stop has been released since this was last asked.

Reports the edge once and clears it. The caller must re-anchor its plan at the robot's current pose before the controller is activated again: the robot stands still where the old profile assigns cruise speed, so resuming on the old trajectory steps the command from zero and the device ramp answers at its own maximum.

Defaults to false for executors with no emergency-stop source.

Reimplemented from ExecutorInterface.

◆ dumpDiagnostics()

void dumpDiagnostics ( )
overridevirtual

Bumps the controller's diagnostics.dumpRequest, which makes it write the episode it has recorded and begin the next one.

Does nothing if diagnostics are off.

Reimplemented from ExecutorInterface.

◆ ensureIsActive()

void ensureIsActive ( ControllerType controllerType)
overridevirtual

Implements ExecutorInterface.

◆ execute() [1/2]

void execute ( const core::GlobalTrajectory & trajectory,
bool activateController = false )
overridevirtual

Implements ExecutorInterface.

◆ execute() [2/2]

void execute ( const core::LocalTrajectory & trajectory,
bool activateController = false )
overridevirtual

Implements ExecutorInterface.

◆ start()

void start ( ControllerType controllerType)
overridevirtual

Implements ExecutorInterface.

◆ stop()

void stop ( )
overridevirtual

Implements ExecutorInterface.

◆ updateVelocityFactor()

void updateVelocityFactor ( float velocityFactor)
overridevirtual

Implements ExecutorInterface.

◆ updateVelocityLimits()

void updateVelocityLimits ( const core::TwistLimits & limits)
overridevirtual

Implements ExecutorInterface.


The documentation for this class was generated from the following files: