Go to the documentation of this file.
134 #ifndef DOXYGEN_OMIT_INTERNAL
136 #endif // DOXYGEN_OMIT_INTERNAL
137 explicit operator bool()
const {
return has(); }
169 #ifndef DOXYGEN_OMIT_INTERNAL
171 #endif // DOXYGEN_OMIT_INTERNAL
172 explicit operator bool()
const {
return has(); }
204 void get(int64_t* revolutions,
float* radian_offset)
const;
216 #ifndef DOXYGEN_OMIT_INTERNAL
218 #endif // DOXYGEN_OMIT_INTERNAL
219 bool has(
size_t fieldNumber)
const;
230 float get(
size_t fieldNumber)
const;
241 #ifndef DOXYGEN_OMIT_INTERNAL
243 #endif // DOXYGEN_OMIT_INTERNAL
244 explicit operator bool()
const {
return has(); }
261 uint64_t
get()
const;
273 #ifndef DOXYGEN_OMIT_INTERNAL
275 #endif // DOXYGEN_OMIT_INTERNAL
276 explicit operator bool()
const {
return has(); }
305 #ifndef DOXYGEN_OMIT_INTERNAL
307 #endif // DOXYGEN_OMIT_INTERNAL
308 explicit operator bool()
const {
return has(); }
337 #ifndef DOXYGEN_OMIT_INTERNAL
339 #endif // DOXYGEN_OMIT_INTERNAL
340 explicit operator bool()
const {
return has(); }
362 return static_cast<T
>(ret);
374 #ifndef DOXYGEN_OMIT_INTERNAL
376 #endif // DOXYGEN_OMIT_INTERNAL
377 bool hasInt(
size_t pinNumber)
const;
388 bool hasFloat(
size_t pinNumber)
const;
394 int64_t
getInt(
size_t pinNumber)
const;
401 float getFloat(
size_t pinNumber)
const;
412 #ifndef DOXYGEN_OMIT_INTERNAL
414 #endif // DOXYGEN_OMIT_INTERNAL
415 explicit operator bool()
const {
return hasColor(); }
442 #ifndef DOXYGEN_OMIT_INTERNAL
451 #endif // DOXYGEN_OMIT_INTERNAL
486 #ifndef DOXYGEN_OMIT_INTERNAL
511 #endif // DOXYGEN_OMIT_INTERNAL
595 #ifndef DOXYGEN_OMIT_INTERNAL
601 #endif // DOXYGEN_OMIT_INTERNAL
628 #ifndef DOXYGEN_OMIT_INTERNAL
633 #endif // DOXYGEN_OMIT_INTERNAL
663 #ifndef DOXYGEN_OMIT_INTERNAL
669 #endif // DOXYGEN_OMIT_INTERNAL
697 #ifndef DOXYGEN_OMIT_INTERNAL
698 const NumberedFloatField&
debug()
const {
return debug_; }
700 #endif // DOXYGEN_OMIT_INTERNAL
@ HebiFeedbackFloatBatteryLevel
The estimated temperature of the motor housing.
@ Unlocked
There is not command lifetime active on this module.
const HebiFeedbackRef & internal_
const EnumField< TemperatureState > & temperatureState() const
Describes how the temperature inside the module is limiting the output of the motor.
@ Uninitialized
The module has not been inside the safety limits since it was booted or the safety limits were set.
const HebiFeedbackVector3fField field_
FloatField motor_housing_temperature_
const Vector3fField & gyro() const
Gyro data, in radians/second.
IoBank(const HebiFeedbackRef &internal, HebiFeedbackIoPinBank bank)
@ AtLower
The effort of the module was near the lower safety limit, and the motor output is being limited or re...
bool has() const
True if (and only if) the field has a value.
bool has() const
True if (and only if) the field has a value.
@ HebiFeedbackHighResAnglePosition
@ ExceedMaxMotor
Temperature exceeds max allowable for motor; motor output disabled.
@ HebiFeedbackEnumEffortLimitState
Software-controlled bounds on the allowable velocity of the module.
FloatField motor_current_
const FloatField & effortCommand() const
Commanded effort at the module output; units vary (e.g., N * m for rotational joints and N for linear...
const HebiFeedbackRef & internal_
Feedback & operator=(Feedback &&other)=delete
const HebiFeedbackUInt64Field field_
EnumField< MstopState > mstop_state_
@ HebiFeedbackFloatMotorCurrent
The velocity of the motor shaft.
@ HebiFeedbackIoBankB
I/O pin bank a (pins 1-8 available)
Structure to describe an RGB color.
const EnumField< CommandLifetimeState > & commandLifetimeState() const
The state of the command lifetime safety controller, with respect to the current group.
const HebiFeedbackHighResAngleField field_
bool has() const
True if (and only if) the field has a value.
@ ArQualityLimitedExcessiveMotion
The device is moving too fast for accurate image-based position tracking.
FloatField(const HebiFeedbackRef &internal, HebiFeedbackFloatField field)
const FloatField & motorHousingTemperature() const
The estimated temperature of the motor housing.
@ AtUpper
The velocity of the module was near the upper safety limit, and the motor output is being limited or ...
Structure to hold a 3-D floating point vector (i.e., x/y/z components)
@ HebiFeedbackFloatVelocityCommand
Effort at the module output; units vary (e.g., N * m for rotational joints and N for linear stages).
@ HebiFeedbackIoBankC
I/O pin bank b (pins 1-8 available)
@ Triggered
The MStop is pressed.
const FloatField & motorWindingCurrent() const
The estimated current in the motor windings.
@ HebiFeedbackEnumTemperatureState
const UInt64Field & receiveTimeUs() const
Timestamp of when message was received from module (local; microseconds)
const Imu & imu() const
Inertial measurement unit feedback (accelerometers and gyros).
Vector3fField accelerometer_
bool hasInt(size_t pinNumber) const
True if (and only if) the particular numbered pin in this bank has an integer (e.g....
HebiFeedbackQuaternionfField
@ Critical
Motor output beginning to be limited due to high temperature.
Structure to hold a floating point quaternion (i.e., w/x/y/z components)
@ HebiFeedbackHighResAngleMotorPosition
Commanded position of the module output (post-spring).
@ AtUpper
The position of the module was near the upper safety limit, and the motor output is being limited or ...
const FloatField & deflectionVelocity() const
Velocity (in radians/second) of the difference between the pre-spring and post-spring output position...
const UInt64Field & transmitTimeUs() const
Timestamp of when message was transmitted to module (local; microseconds)
@ HebiFeedbackHighResAnglePositionCommand
Position of the module output (post-spring).
FloatField motor_velocity_
FloatField deflection_velocity_
const LedField & led() const
The module's LED.
Vector3fField(const HebiFeedbackRef &internal, HebiFeedbackVector3fField field)
FloatField motor_sensor_temperature_
A message field representable by an unsigned 64 bit integer value.
@ Uninitialized
The module has not been inside the safety limits since it was booted or the safety limits were set.
const FloatField & velocityCommand() const
Commanded velocity of the module output (post-spring), in radians/second.
const FloatField & motorSensorTemperature() const
The temperature from a sensor near the motor housing.
@ ArQualityLimitedInsufficientFeatures
const IoBank & b() const
I/O pin bank b (pins 1-8 available)
EnumField< ArQuality > ar_quality_
const Actuator & actuator() const
Actuator-specific feedback.
HebiFeedbackHighResAngleField
Feedback generally from a mobile device such as a phone or tablet.
int64_t getInt(size_t pinNumber) const
If this numbered pin in this bank has an integer (e.g., digital) value, returns that value; otherwise...
HighResAngleField position_command_
@ HebiFeedbackFloatEffort
Velocity of the module output (post-spring).
const EnumField< PositionLimitState > & positionLimitState() const
Software-controlled bounds on the allowable position of the module; user settable.
const HebiFeedbackRef & internal_
const QuaternionfField & orientation() const
A filtered estimate of the orientation of the module.
@ HebiFeedbackFloatVelocity
Bus voltage at which the module is running.
#define HEBI_DISABLE_COPY(Class)
const IoBank & c() const
I/O pin bank c (pins 1-8 available)
HebiFeedbackPtr internal_
@ HebiFeedbackFloatMotorHousingTemperature
The estimated temperature of the motor windings.
const Io & io() const
Feedback from any available I/O pins on the device.
struct HebiFeedback_ * HebiFeedbackPtr
The C-style's API representation of feedback.
FloatField battery_level_
const EnumField< ArQuality > & arQuality() const
The status of the augmented reality tracking, if using an AR enabled device.
const Vector3fField & arPosition() const
A device's position in the world as calculated from an augmented reality framework,...
const HighResAngleField & motorPosition() const
The position of an actuator’s internal motor before the gear reduction, in radians.
const UInt64Field & hardwareReceiveTimeUs() const
Timestamp of when message was received by module (remote; microseconds)
Mobile(const HebiFeedbackRef &internal)
Imu(const HebiFeedbackRef &internal)
EnumField< PositionLimitState > position_limit_state_
const HebiFeedbackIoPinBank bank_
@ Uninitialized
The module has not been inside the safety limits since it was booted or the safety limits were set.
const HebiFeedbackFloatField field_
const HebiFeedbackRef & internal_
const HebiFeedbackLedField field_
@ HebiFeedbackFloatMotorSensorTemperature
Current supplied to the motor.
QuaternionfField(const HebiFeedbackRef &internal, HebiFeedbackQuaternionfField field)
@ Inside
The effort of the module was within the safety limits.
#define HEBI_DISABLE_COPY_MOVE(Class)
@ HebiFeedbackUInt64SequenceNumber
@ HebiFeedbackIoBankD
I/O pin bank c (pins 1-8 available)
@ HebiFeedbackFloatPwmCommand
Charge level of the device’s battery (in percent).
FloatField processor_temperature_
bool has() const
True if (and only if) the field has a value.
@ LockedByOther
Commands are locked out due to control from other users.
Color getColor() const
Returns the led color.
@ ExceedMaxBoard
Temperature exceeds max allowable for electronics; motor output disabled.
EnumField< TemperatureState > temperature_state_
@ NotTriggered
The MStop is not pressed.
Inertial measurement unit feedback (accelerometers and gyros).
const Vector3fField & accelerometer() const
Accelerometer data, in m/s^2.
UInt64Field hardware_receive_time_us_
const FloatField & pwmCommand() const
Commanded PWM signal sent to the motor; final output of PID controllers.
@ HebiFeedbackEnumVelocityLimitState
Software-controlled bounds on the allowable position of the module; user settable.
@ Inside
The velocity of the module was within the safety limits.
bool hasFloat(size_t pinNumber) const
True if (and only if) the particular numbered pin in this bank has an floating point (e....
FloatField velocity_command_
@ HebiFeedbackEnumPositionLimitState
Current status of the MStop.
@ HebiFeedbackFloatMotorWindingCurrent
The temperature from a sensor near the motor housing.
const UInt64Field & sequenceNumber() const
Sequence number going to module (local)
bool has(size_t fieldNumber) const
True if (and only if) the particular numbered subvalue of this field has a value.
@ HebiFeedbackQuaternionfArOrientation
A filtered estimate of the orientation of the module.
A message field representable by an enum of a given type.
@ ArQualityLimitedInitializing
The AR session has not yet gathered enough camera or motion data to provide tracking information.
uint64_t get() const
If the field has a value, returns that value; otherwise, returns a default.
@ HebiFeedbackVector3fArPosition
Gyro data.
const FloatField & deflection() const
Difference (in radians) between the pre-spring and post-spring output position.
A message field representable by a 3-D vector of single-precision floating point values.
Actuator(const HebiFeedbackRef &internal)
float get(size_t fieldNumber) const
If the particular numbered subvalue of this field has a value, returns that value; otherwise returns ...
NumberedFloatField(const HebiFeedbackRef &internal, HebiFeedbackNumberedFloatField field)
UInt64Field transmit_time_us_
EnumField(const HebiFeedbackRef &internal, HebiFeedbackEnumField field)
double get() const
If the field has a value, returns that value as a double; otherwise, returns a default.
A message field representable by a single-precision floating point value.
float getFloat(size_t pinNumber) const
If this numbered pin in this bank has an floating point (e.g., analog or PWM) value,...
@ ArQualityLimitedRelocalizing
The AR session is attempting to resume after an interruption.
@ HebiFeedbackEnumArQuality
The state of the command lifetime safety controller, with respect to the current group.
UInt64Field(const HebiFeedbackRef &internal, HebiFeedbackUInt64Field field)
const UInt64Field & hardwareTransmitTimeUs() const
Timestamp of when message was transmitted from module (remote; microseconds)
@ HebiFeedbackVector3fAccelerometer
const FloatField & motorVelocity() const
The velocity (in radians/second) of the motor shaft.
@ HebiFeedbackQuaternionfOrientation
@ ArQualityNormal
Camera position tracking is providing optimal results.
bool has() const
True if (and only if) the field has a value.
@ HebiFeedbackIoBankF
I/O pin bank e (pins 1-8 available)
const HebiFeedbackQuaternionfField field_
const FloatField & motorCurrent() const
Current supplied to the motor.
A message field for an angle measurement which does not lose precision at very high angles.
@ AtLower
The velocity of the module was near the lower safety limit, and the motor output is being limited or ...
FloatField motor_winding_temperature_
const HebiFeedbackRef & internal_
Vector3f get() const
If the field has a value, returns that value; otherwise, returns a default.
@ HebiFeedbackVector3fGyro
Accelerometer data.
UInt64Field sequence_number_
const HebiFeedbackRef & internal_
@ LockedBySender
Commands from others are locked out due to control from this group.
@ Normal
Temperature within normal range.
@ AtUpper
The effort of the module was near the upper safety limit, and the motor output is being limited or re...
const NumberedFloatField & debug() const
Values for internal debug functions (channel 1-9 available).
QuaternionfField orientation_
const Mobile & mobile() const
Feedback generally from a mobile device such as a phone or tablet.
Feedback from any available I/O pins on the device.
const FloatField & voltage() const
Bus voltage that the module is running at (in Volts).
Feedback(HebiFeedbackPtr)
Wraps an existing C-style object that is managed by its parent. NOTE: this should not be used except ...
A message field representable by a 3-D vector of single-precision floating point values.
T get() const
If the field has a value, returns that value; otherwise, returns a default.
@ HebiFeedbackEnumMstopState
Describes how the temperature inside the module is limiting the output of the motor.
const HebiFeedbackRef & internal_
const FloatField & batteryLevel() const
Charge level of the device’s battery (in percent).
EnumField< CommandLifetimeState > command_lifetime_state_
HebiFeedbackFloatField
Feedback Enums.
EnumField< EffortLimitState > effort_limit_state_
HighResAngleField motor_position_
HebiFeedbackNumberedFloatField
FloatField effort_command_
FloatField board_temperature_
bool hasColor() const
Returns true if the LED color is set, and false otherwise.
const HebiFeedbackNumberedFloatField field_
HebiFeedbackRef internal_ref_
const EnumField< MstopState > & mstopState() const
Current status of the MStop.
bool has() const
True if (and only if) the field has a value.
UInt64Field hardware_transmit_time_us_
@ HebiFeedbackFloatMotorVelocity
Velocity of the difference between the pre-spring and post-spring output position.
HebiStatusCode enumGetter(const RefT &ref, MetadataT &metadata, int field, int32_t *value)
@ HebiFeedbackFloatDeflection
Commanded effort at the module output; units vary (e.g., N * m for rotational joints and N for linear...
const IoBank & e() const
I/O pin bank e (pins 1-8 available)
const EnumField< EffortLimitState > & effortLimitState() const
Software-controlled bounds on the allowable effort of the module.
A message field containing a numbered set of single-precision floating point values.
Vector3fField ar_position_
const FloatField & effort() const
Effort at the module output; units vary (e.g., N * m for rotational joints and N for linear stages).
const HebiFeedbackEnumField field_
@ ArQualityNotAvailable
Camera position tracking is not available.
const HebiFeedbackRef & internal_
@ HebiFeedbackEnumCommandLifetimeState
Software-controlled bounds on the allowable effort of the module.
const IoBank & d() const
I/O pin bank d (pins 1-8 available)
const HighResAngleField & positionCommand() const
Commanded position of the module output (post-spring), in radians.
Quaternionf get() const
If the field has a value, returns that value; otherwise, returns a default.
const FloatField & velocity() const
Velocity of the module output (post-spring), in radians/second.
@ HebiFeedbackFloatDeflectionVelocity
Difference between the pre-spring and post-spring output position.
HebiFeedbackVector3fField
UInt64Field receive_time_us_
HighResAngleField position_
@ AtLower
The position of the module was near the lower safety limit, and the motor output is being limited or ...
LedField(const HebiFeedbackRef &internal, HebiFeedbackLedField field)
const EnumField< VelocityLimitState > & velocityLimitState() const
Software-controlled bounds on the allowable velocity of the module.
@ Inside
The position of the module was within the safety limits.
FloatField motor_winding_current_
const UInt64Field & senderId() const
Unique ID of the module transmitting this feedback.
Feedback objects have various fields representing feedback from modules; which fields are populated d...
Io(const HebiFeedbackRef &internal)
A message field for interfacing with a bank of I/O pins.
const FloatField & motorWindingTemperature() const
The estimated temperature of the motor windings.
A message field for interfacing with an LED.
@ HebiFeedbackFloatMotorWindingTemperature
The estimated current in the motor windings.
Actuator-specific feedback.
const QuaternionfField & arOrientation() const
A device's orientation in the world as calculated from an augmented reality framework.
const HighResAngleField & position() const
Position of the module output (post-spring), in radians.
const IoBank & a() const
I/O pin bank a (pins 1-8 available)
const FloatField & boardTemperature() const
Ambient temperature inside the module (measured at the IMU chip), in degrees Celsius.
float get() const
If the field has a value, returns that value; otherwise, returns a default.
const HebiFeedbackRef & internal_
NumberedFloatField debug_
const IoBank & f() const
I/O pin bank f (pins 1-8 available)
const FloatField & processorTemperature() const
Temperature of the processor chip, in degrees Celsius.
HighResAngleField(const HebiFeedbackRef &internal, HebiFeedbackHighResAngleField field)
EnumField< VelocityLimitState > velocity_limit_state_
QuaternionfField ar_orientation_
@ HebiFeedbackFloatEffortCommand
Commanded velocity of the module output (post-spring)
@ ArQualityLimitedUnknown
Tracking is available albeit suboptimal for an unknown reason.
const HebiFeedbackRef & internal_
@ HebiFeedbackIoBankE
I/O pin bank d (pins 1-8 available)
hebi_cpp_api_ros
Author(s): Chris Bollinger
, Matthew Tesch
autogenerated on Fri Aug 2 2024 08:35:18