Class Plugin

Inheritance Relationships

Derived Types

Class Documentation

class Plugin

Abstract base class representing a plugin to be used for an Arm object. Each implementation should also implement two static functions, and be included in the ArmPluginMap list below:

  • static std::unique_ptr<T> create(const PluginConfig&);

  • static std::string pluginTypeName(); // For matching robot config file entries

Plugins allow extending an arm object with custom functionality not supported in the base class

The PluginConfig structure can have the following optional parameters used by this base Plugin class, in addition to those defined for classes that inherit from Plugin. optional:

  • enabled: (bool) Represents the starting state of the plugin, either enabled (true) or disabled.

  • ramp_time: (float) A value in seconds that indicates how long it takes to transition between enabled and disabled states. Different plugins may scale their effects based on this ramped enable/disable effect. Must be positive.

Subclassed by hebi::arm::plugin::DoubledJoint, hebi::arm::plugin::DynamicsCompensationEffort, hebi::arm::plugin::EffortOffset, hebi::arm::plugin::GravityCompensationEffort, hebi::arm::plugin::ImpedanceController

Public Functions

inline Plugin(const std::string &name)
virtual ~Plugin() = default
inline std::string name() const
inline bool enabled() const
inline void setEnabled(bool enabled)
inline float enabledRatio()
bool setRampTime(float ramp_time)
inline float rampTime()
bool update(Arm&, double dt)
inline virtual bool send()
inline virtual bool onAssociated(const Arm&)

Protected Functions

bool applyParameters(const PluginConfig &config, std::set<std::string> required_parameters)
inline virtual bool applyParameterImpl(const std::string&, bool)
inline virtual bool applyParameterImpl(const std::string&, const std::vector<bool>&)
inline virtual bool applyParameterImpl(const std::string&, double)
inline virtual bool applyParameterImpl(const std::string&, const std::vector<double>&)
inline virtual bool applyParameterImpl(const std::string&, const std::string&)
inline virtual bool applyParameterImpl(const std::string&, const std::vector<std::string>&)
virtual bool updateImpl(Arm&, double dt) = 0