114 ArQualityNotAvailable,
116 ArQualityLimitedUnknown,
118 ArQualityLimitedInitializing,
120 ArQualityLimitedRelocalizing,
122 ArQualityLimitedExcessiveMotion,
125 ArQualityLimitedInsufficientFeatures,
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(); }
429 bool hasColor()
const;
431 Color getColor()
const;
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 700 #endif // DOXYGEN_OMIT_INTERNAL HebiFeedbackQuaternionfField
struct HebiFeedback_ * HebiFeedbackPtr
The C-style's API representation of feedback.
UInt64Field sequence_number_
UInt64Field hardware_receive_time_us_
const HebiFeedbackRef & internal_
FloatField processor_temperature_
const FloatField & voltage() const
Bus voltage that the module is running at (in Volts).
HebiFeedbackIoPinBank const bank_
const FloatField & deflection() const
Difference (in radians) between the pre-spring and post-spring output position.
bool has() const
True if (and only if) the field has a value.
const FloatField & motorVelocity() const
The velocity (in radians/second) of the motor shaft.
UInt64Field transmit_time_us_
const IoBank & e() const
I/O pin bank e (pins 1-8 available)
FloatField board_temperature_
Structure to hold a 3-D floating point vector (i.e., x/y/z components)
const NumberedFloatField & debug() const
Values for internal debug functions (channel 1-9 available).
FloatField motor_winding_temperature_
const HebiFeedbackRef & internal_
#define HEBI_DISABLE_COPY(Class)
Difference between the pre-spring and post-spring output position.
Feedback(HebiFeedbackPtr)
Wraps an existing C-style object that is managed by its parent. NOTE: this should not be used except ...
HebiFeedbackVector3fField
EnumField< CommandLifetimeState > command_lifetime_state_
Charge level of the device’s battery (in percent).
Software-controlled bounds on the allowable position of the module; user settable.
const UInt64Field & hardwareTransmitTimeUs() const
Timestamp of when message was transmitted from module (remote; microseconds)
Current status of the MStop.
HebiFeedbackHighResAngleField
HighResAngleField motor_position_
Software-controlled bounds on the allowable velocity of the module.
const HebiFeedbackRef & internal_
EnumField< EffortLimitState > effort_limit_state_
HebiFeedbackNumberedFloatField
The velocity of the motor shaft.
Vector3fField accelerometer_
FloatField effort_command_
Structure to hold a floating point quaternion (i.e., w/x/y/z components)
const Mobile & mobile() const
Feedback generally from a mobile device such as a phone or tablet.
const EnumField< MstopState > & mstopState() const
Current status of the MStop.
const HighResAngleField & positionCommand() const
Commanded position of the module output (post-spring), in radians.
const FloatField & effort() const
Effort at the module output; units vary (e.g., N * m for rotational joints and N for linear stages)...
HebiFeedbackRef internal_ref_
NumberedFloatField debug_
HebiFeedbackFloatField
Feedback Enums.
HebiFeedbackLedField const field_
const EnumField< EffortLimitState > & effortLimitState() const
Software-controlled bounds on the allowable effort of the module.
HebiFeedbackUInt64Field const field_
UInt64Field receive_time_us_
FloatField motor_winding_current_
HebiFeedbackVector3fField const field_
#define HEBI_DISABLE_COPY_MOVE(Class)
Imu(const HebiFeedbackRef &internal)
UInt64Field hardware_transmit_time_us_
const Vector3fField & arPosition() const
A device's position in the world as calculated from an augmented reality framework, in meters.
const HebiFeedbackRef & internal_
A message field representable by a single-precision floating point value.
Inertial measurement unit feedback (accelerometers and gyros).
Feedback objects have various fields representing feedback from modules; which fields are populated d...
I/O pin bank e (pins 1-8 available)
A message field for interfacing with a bank of I/O pins.
const IoBank & d() const
I/O pin bank d (pins 1-8 available)
QuaternionfField orientation_
Effort at the module output; units vary (e.g., N * m for rotational joints and N for linear stages)...
HighResAngleField position_
I/O pin bank b (pins 1-8 available)
A message field representable by a 3-D vector of single-precision floating point values.
The state of the command lifetime safety controller, with respect to the current group.
const FloatField & velocity() const
Velocity of the module output (post-spring), in radians/second.
Bus voltage at which the module is running.
Mobile(const HebiFeedbackRef &internal)
Commanded position of the module output (post-spring).
EnumField(const HebiFeedbackRef &internal, HebiFeedbackEnumField field)
const EnumField< VelocityLimitState > & velocityLimitState() const
Software-controlled bounds on the allowable velocity of the module.
FloatField motor_housing_temperature_
const UInt64Field & senderId() const
Unique ID of the module transmitting this feedback.
A message field for an angle measurement which does not lose precision at very high angles...
const FloatField & effortCommand() const
Commanded effort at the module output; units vary (e.g., N * m for rotational joints and N for linear...
const IoBank & f() const
I/O pin bank f (pins 1-8 available)
const EnumField< ArQuality > & arQuality() const
The status of the augmented reality tracking, if using an AR enabled device.
HebiStatusCode enumGetter(const RefT &ref, MetadataT &metadata, int field, int32_t *value)
const HighResAngleField & position() const
Position of the module output (post-spring), in radians.
A message field representable by an enum of a given type.
const FloatField & motorWindingTemperature() const
The estimated temperature of the motor windings.
Current supplied to the motor.
const FloatField & boardTemperature() const
Ambient temperature inside the module (measured at the IMU chip), in degrees Celsius.
EnumField< VelocityLimitState > velocity_limit_state_
I/O pin bank c (pins 1-8 available)
Temperature within normal range.
const Vector3fField & gyro() const
Gyro data, in radians/second.
The estimated temperature of the motor windings.
const EnumField< TemperatureState > & temperatureState() const
Describes how the temperature inside the module is limiting the output of the motor.
HebiFeedbackHighResAngleField const field_
const FloatField & processorTemperature() const
Temperature of the processor chip, in degrees Celsius.
const LedField & led() const
The module's LED.
FloatField motor_current_
A message field for interfacing with an LED.
const Imu & imu() const
Inertial measurement unit feedback (accelerometers and gyros).
A filtered estimate of the orientation of the module.
const HebiFeedbackRef & internal_
const FloatField & motorWindingCurrent() const
The estimated current in the motor windings.
const FloatField & batteryLevel() const
Charge level of the device’s battery (in percent).
const FloatField & velocityCommand() const
Commanded velocity of the module output (post-spring), in radians/second.
FloatField motor_velocity_
const QuaternionfField & orientation() const
A filtered estimate of the orientation of the module.
EnumField< MstopState > mstop_state_
const EnumField< CommandLifetimeState > & commandLifetimeState() const
The state of the command lifetime safety controller, with respect to the current group.
Feedback generally from a mobile device such as a phone or tablet.
const FloatField & motorHousingTemperature() const
The estimated temperature of the motor housing.
The estimated current in the motor windings.
const HebiFeedbackRef & internal_
const HebiFeedbackRef & internal_
HighResAngleField position_command_
Motor output beginning to be limited due to high temperature.
const HebiFeedbackRef & internal_
The temperature from a sensor near the motor housing.
Feedback from any available I/O pins on the device.
const FloatField & deflectionVelocity() const
Velocity (in radians/second) of the difference between the pre-spring and post-spring output position...
A message field representable by an unsigned 64 bit integer value.
Feedback & operator=(Feedback &&other)=delete
Temperature exceeds max allowable for electronics; motor output disabled.
const IoBank & a() const
I/O pin bank a (pins 1-8 available)
Io(const HebiFeedbackRef &internal)
FloatField deflection_velocity_
Temperature exceeds max allowable for motor; motor output disabled.
const UInt64Field & receiveTimeUs() const
Timestamp of when message was received from module (local; microseconds)
const FloatField & motorSensorTemperature() const
The temperature from a sensor near the motor housing.
FloatField motor_sensor_temperature_
const UInt64Field & transmitTimeUs() const
Timestamp of when message was transmitted to module (local; microseconds)
const EnumField< PositionLimitState > & positionLimitState() const
Software-controlled bounds on the allowable position of the module; user settable.
Actuator-specific feedback.
const HebiFeedbackRef & internal_
EnumField< TemperatureState > temperature_state_
FloatField battery_level_
Commanded velocity of the module output (post-spring)
I/O pin bank d (pins 1-8 available)
EnumField< PositionLimitState > position_limit_state_
const Vector3fField & accelerometer() const
Accelerometer data, in m/s^2.
The estimated temperature of the motor housing.
HebiFeedbackFloatField const field_
const FloatField & pwmCommand() const
Commanded PWM signal sent to the motor; final output of PID controllers.
const UInt64Field & hardwareReceiveTimeUs() const
Timestamp of when message was received by module (remote; microseconds)
FloatField velocity_command_
Vector3fField ar_position_
EnumField< ArQuality > ar_quality_
Velocity of the difference between the pre-spring and post-spring output position.
HebiFeedbackQuaternionfField const field_
const Actuator & actuator() const
Actuator-specific feedback.
const Io & io() const
Feedback from any available I/O pins on the device.
const QuaternionfField & arOrientation() const
A device's orientation in the world as calculated from an augmented reality framework.
const UInt64Field & sequenceNumber() const
Sequence number going to module (local)
const HebiFeedbackRef & internal_
Structure to describe an RGB color.
Describes how the temperature inside the module is limiting the output of the motor.
HebiFeedbackNumberedFloatField const field_
I/O pin bank a (pins 1-8 available)
const HighResAngleField & motorPosition() const
The position of an actuator’s internal motor before the gear reduction, in radians.
A message field containing a numbered set of single-precision floating point values.
Position of the module output (post-spring).
A message field representable by a 3-D vector of single-precision floating point values.
Actuator(const HebiFeedbackRef &internal)
Software-controlled bounds on the allowable effort of the module.
const IoBank & b() const
I/O pin bank b (pins 1-8 available)
HebiFeedbackPtr internal_
QuaternionfField ar_orientation_
const IoBank & c() const
I/O pin bank c (pins 1-8 available)
Commanded effort at the module output; units vary (e.g., N * m for rotational joints and N for linear...
Velocity of the module output (post-spring).
HebiFeedbackEnumField const field_
const FloatField & motorCurrent() const
Current supplied to the motor.