86 #ifndef DOXYGEN_OMIT_INTERNAL 88 #endif // DOXYGEN_OMIT_INTERNAL 89 explicit operator bool()
const {
return has(); }
121 #ifndef DOXYGEN_OMIT_INTERNAL 123 #endif // DOXYGEN_OMIT_INTERNAL 124 explicit operator bool()
const {
return has(); }
156 void get(int64_t* revolutions,
float* radian_offset)
const;
167 #ifndef DOXYGEN_OMIT_INTERNAL 169 #endif // DOXYGEN_OMIT_INTERNAL 185 #ifndef DOXYGEN_OMIT_INTERNAL 187 #endif // DOXYGEN_OMIT_INTERNAL 188 explicit operator bool()
const {
return has(); }
205 std::string
get()
const;
216 #ifndef DOXYGEN_OMIT_INTERNAL 218 #endif // DOXYGEN_OMIT_INTERNAL 219 explicit operator bool()
const {
return has(); }
245 #ifndef DOXYGEN_OMIT_INTERNAL 247 #endif // DOXYGEN_OMIT_INTERNAL 248 explicit operator bool()
const {
return has(); }
270 return static_cast<T
>(ret);
282 #ifndef DOXYGEN_OMIT_INTERNAL 284 #endif // DOXYGEN_OMIT_INTERNAL 285 explicit operator bool()
const {
return hasColor(); }
299 bool hasColor()
const;
301 Color getColor()
const;
317 #ifndef DOXYGEN_OMIT_INTERNAL 333 #endif // DOXYGEN_OMIT_INTERNAL 394 #ifndef DOXYGEN_OMIT_INTERNAL 397 #endif // DOXYGEN_OMIT_INTERNAL 413 #ifndef DOXYGEN_OMIT_INTERNAL 420 #endif // DOXYGEN_OMIT_INTERNAL 454 #ifndef DOXYGEN_OMIT_INTERNAL 456 #endif // DOXYGEN_OMIT_INTERNAL 480 #ifndef DOXYGEN_OMIT_INTERNAL 486 #endif // DOXYGEN_OMIT_INTERNAL Actuator(const HebiInfoRef &internal)
InfoGains position_gains_
const HebiInfoRef & internal_
const FloatField & effortLimitMax() const
The firmware safety limit for the maximum allowed effort.
const FlagField & saveCurrentSettings() const
Indicates if the module should save the current values of all of its settings.
const FloatField & velocityLimitMax() const
The firmware safety limit for the maximum allowed velocity.
Module settings that are typically changed at a slower rate.
A message field for an angle measurement which does not lose precision at very high angles...
#define HEBI_DISABLE_COPY(Class)
Settings(HebiInfoPtr internal_ptr, const HebiInfoRef &internal)
const EnumField< PositionLimitStrategy > & minPositionLimitStrategy() const
The position limit strategy (at the minimum position) for the actuator.
Actuator-specific settings, such as controller gains.
HebiInfoRef internal_ref_
The firmware safety limit for the minimum allowed effort.
const Imu & imu() const
IMU-specific settings.
A simple lowpass filter applied to the controller output; needs to be between 0 and 1...
HighResAngleField position_limit_min_
A simple lowpass filter applied to the controller output; needs to be between 0 and 1...
A message field representable by a bool value.
const BoolField & accelIncludesGravity() const
Whether to include acceleration due to gravity in acceleration feedback.
FloatField velocity_limit_min_
const FloatField & velocityLimitMin() const
The firmware safety limit for the minimum allowed velocity.
const Settings & settings() const
Module settings that are typically changed at a slower rate.
HebiInfoEnumField const field_
const StringField & name() const
Gets the name for this module.
Actuator-specific information.
const Actuator & actuator() const
Actuator-specific information.
const Actuator & actuator() const
Actuator-specific settings, such as controller gains.
Info objects have various fields representing the module state; which fields are populated depends on...
EnumField< CalibrationState > calibration_state_
The firmware safety limit for the minimum allowed position.
#define HEBI_DISABLE_COPY_MOVE(Class)
The calibration state of the module.
HebiInfoFloatField const field_
EnumField< PositionLimitStrategy > max_position_limit_strategy_
const EnumField< PositionLimitStrategy > & maxPositionLimitStrategy() const
The position limit strategy (at the maximum position) for the actuator.
A two-state message field (either set/true or cleared/false).
const FloatField & springConstant() const
The spring constant of the module.
struct HebiInfo_ * HebiInfoPtr
The C-style's API representation of info.
HebiInfoFlagField const field_
HighResAngleField position_limit_max_
A message field for interfacing with an LED.
const InfoGains & effortGains() const
Controller gains for the effort PID loop.
EnumField< ControlStrategy > control_strategy_
FlagField save_current_settings_
HebiInfoHighResAngleField
const EnumField< MstopStrategy > & mstopStrategy() const
The motion stop strategy for the actuator.
const InfoGains & velocityGains() const
Controller gains for the velocity PID loop.
A direct PWM value (-1 to 1) can be sent to the motor (subject to onboard safety limiting).
const EnumField< CalibrationState > & calibrationState() const
The calibration state of the module.
bool has() const
True if (and only if) the field has a value.
EnumField< MstopStrategy > mstop_strategy_
HebiStatusCode enumGetter(const RefT &ref, MetadataT &metadata, int field, int32_t *value)
const StringField & family() const
Gets the family for this module.
The firmware safety limit for the maximum allowed velocity.
const HebiInfoRef & internal_
BoolField accel_includes_gravity_
HebiInfoPtr const internal_
The motor is not given power (equivalent to a 0 PWM value)
How the position, velocity, and effort PID loops are connected in order to control motor PWM...
The spring constant of the module.
Info & operator=(Info &&other)=delete
EnumField< PositionLimitStrategy > min_position_limit_strategy_
A message field representable by a std::string.
const HebiInfoRef & internal_
Controls whether the Kd term uses the "derivative of error" or "derivative of measurement." When the setpoints have step inputs or are noisy, setting this to false can eliminate corresponding spikes or noise in the output.
HebiInfoFloatField
Info Enums.
const HebiInfoRef & internal_
const EnumField< ControlStrategy > & controlStrategy() const
How the position, velocity, and effort PID loops are connected in order to control motor PWM...
Controls whether the Kd term uses the "derivative of error" or "derivative of measurement." When the setpoints have step inputs or are noisy, setting this to false can eliminate corresponding spikes or noise in the output.
The position limit strategy (at the minimum position) for the actuator.
const HighResAngleField & positionLimitMax() const
The firmware safety limit for the maximum allowed position.
Info(HebiInfoPtr)
Wraps an existing C-style object that is managed by its parent. NOTE: this should not be used except ...
FloatField effort_limit_min_
const HebiInfoRef & internal_
Controls whether the Kd term uses the "derivative of error" or "derivative of measurement." When the setpoints have step inputs or are noisy, setting this to false can eliminate corresponding spikes or noise in the output.
const StringField & serial() const
Gets the serial number for this module (e.g., X5-0001).
const HebiInfoRef & internal_
FloatField velocity_limit_max_
HebiInfoLedField const field_
Imu(const HebiInfoRef &internal)
HebiInfoStringField const field_
const HighResAngleField & positionLimitMin() const
The firmware safety limit for the minimum allowed position.
A simple lowpass filter applied to the controller output; needs to be between 0 and 1...
const LedField & led() const
The module's LED.
EnumField(const HebiInfoRef &internal, HebiInfoEnumField field)
A message field representable by an enum of a given type.
InfoGains velocity_gains_
Structure to describe an RGB color.
The name for this module. The string must be null-terminated and less than 21 characters.
The motion stop strategy for the actuator.
FloatField spring_constant_
Actuator(const HebiInfoRef &internal)
The firmware safety limit for the minimum allowed velocity.
A message field representable by a single-precision floating point value.
HebiInfoHighResAngleField const field_
const FloatField & effortLimitMin() const
The firmware safety limit for the minimum allowed effort.
FloatField effort_limit_max_
A message field representable by an enum of a given type.
const InfoGains & positionGains() const
Controller gains for the position PID loop.
HebiInfoBoolField const field_