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 const FlagField & saveCurrentSettings() const
Indicates if the module should save the current values of all of its settings.
Actuator(const HebiInfoRef &internal)
InfoGains position_gains_
const HebiInfoRef & internal_
const HighResAngleField & positionLimitMin() const
The firmware safety limit for the minimum allowed position.
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)
Actuator-specific settings, such as controller gains.
const FloatField & effortLimitMin() const
The firmware safety limit for the minimum allowed effort.
HebiInfoRef internal_ref_
The firmware safety limit for the minimum allowed effort.
const LedField & led() const
The module's LED.
const FloatField & springConstant() const
The spring constant of the module.
A simple lowpass filter applied to the controller output; needs to be between 0 and 1...
const FloatField & effortLimitMax() const
The firmware safety limit for the maximum allowed effort.
const EnumField< ControlStrategy > & controlStrategy() const
How the position, velocity, and effort PID loops are connected in order to control motor PWM...
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.
FloatField velocity_limit_min_
HebiInfoEnumField const field_
const HighResAngleField & positionLimitMax() const
The firmware safety limit for the maximum allowed position.
Actuator-specific information.
const EnumField< CalibrationState > & calibrationState() const
The calibration state of the module.
const Actuator & actuator() const
Actuator-specific settings, such as controller gains.
const InfoGains & effortGains() const
Controller gains for the effort PID loop.
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.
const StringField & serial() const
Gets the serial number for this module (e.g., X5-0001).
#define HEBI_DISABLE_COPY_MOVE(Class)
The calibration state of the module.
const Imu & imu() const
IMU-specific settings.
HebiInfoFloatField const field_
EnumField< PositionLimitStrategy > max_position_limit_strategy_
const InfoGains & positionGains() const
Controller gains for the position PID loop.
const Actuator & actuator() const
Actuator-specific information.
A two-state message field (either set/true or cleared/false).
struct HebiInfo_ * HebiInfoPtr
The C-style's API representation of info.
const BoolField & accelIncludesGravity() const
Whether to include acceleration due to gravity in acceleration feedback.
HebiInfoFlagField const field_
HighResAngleField position_limit_max_
A message field for interfacing with an LED.
const FloatField & velocityLimitMin() const
The firmware safety limit for the minimum allowed velocity.
const InfoGains & velocityGains() const
Controller gains for the velocity PID loop.
EnumField< ControlStrategy > control_strategy_
FlagField save_current_settings_
HebiInfoHighResAngleField
const Settings & settings() const
Module settings that are typically changed at a slower rate.
A direct PWM value (-1 to 1) can be sent to the motor (subject to onboard safety limiting).
EnumField< MstopStrategy > mstop_strategy_
HebiStatusCode enumGetter(const RefT &ref, MetadataT &metadata, int field, int32_t *value)
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 StringField & family() const
Gets the family for this module.
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.
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 FloatField & velocityLimitMax() const
The firmware safety limit for the maximum allowed velocity.
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 HebiInfoRef & internal_
const StringField & name() const
Gets the name for this module.
FloatField velocity_limit_max_
HebiInfoLedField const field_
Imu(const HebiInfoRef &internal)
HebiInfoStringField const field_
A simple lowpass filter applied to the controller output; needs to be between 0 and 1...
const EnumField< PositionLimitStrategy > & minPositionLimitStrategy() const
The position limit strategy (at the minimum position) for the actuator.
EnumField(const HebiInfoRef &internal, HebiInfoEnumField field)
const EnumField< PositionLimitStrategy > & maxPositionLimitStrategy() const
The position limit strategy (at the maximum position) for the actuator.
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_
const EnumField< MstopStrategy > & mstopStrategy() const
The motion stop strategy for the actuator.
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_
FloatField effort_limit_max_
A message field representable by an enum of a given type.
HebiInfoBoolField const field_
bool has() const
True if (and only if) the field has a value.