Classes | Public Types | Public Member Functions | Private Attributes | List of all members
hebi::Feedback Class Referencefinal

Feedback objects have various fields representing feedback from modules; which fields are populated depends on the module type and various other settings. More...

#include <feedback.hpp>

Classes

class  Actuator
 Actuator-specific feedback. More...
 
class  EnumField
 A message field representable by an enum of a given type. More...
 
class  FloatField
 A message field representable by a single-precision floating point value. More...
 
class  HighResAngleField
 A message field for an angle measurement which does not lose precision at very high angles. More...
 
class  Imu
 Inertial measurement unit feedback (accelerometers and gyros). More...
 
class  Io
 Feedback from any available I/O pins on the device. More...
 
class  IoBank
 A message field for interfacing with a bank of I/O pins. More...
 
class  LedField
 A message field for interfacing with an LED. More...
 
class  Mobile
 Feedback generally from a mobile device such as a phone or tablet. More...
 
class  NumberedFloatField
 A message field containing a numbered set of single-precision floating point values. More...
 
class  QuaternionfField
 A message field representable by a 3-D vector of single-precision floating point values. More...
 
class  UInt64Field
 A message field representable by an unsigned 64 bit integer value. More...
 
class  Vector3fField
 A message field representable by a 3-D vector of single-precision floating point values. More...
 

Public Types

enum  ArQuality {
  ArQuality::ArQualityNotAvailable, ArQuality::ArQualityLimitedUnknown, ArQuality::ArQualityLimitedInitializing, ArQuality::ArQualityLimitedRelocalizing,
  ArQuality::ArQualityLimitedExcessiveMotion, ArQuality::ArQualityLimitedInsufficientFeatures, ArQuality::ArQualityNormal
}
 
enum  CommandLifetimeState { CommandLifetimeState::Unlocked, CommandLifetimeState::LockedByOther, CommandLifetimeState::LockedBySender }
 
enum  EffortLimitState {
  EffortLimitState::Below, EffortLimitState::AtLower, EffortLimitState::Inside, EffortLimitState::AtUpper,
  EffortLimitState::Above, EffortLimitState::Uninitialized
}
 
enum  MstopState { MstopState::Triggered, MstopState::NotTriggered }
 
enum  PositionLimitState {
  PositionLimitState::Below, PositionLimitState::AtLower, PositionLimitState::Inside, PositionLimitState::AtUpper,
  PositionLimitState::Above, PositionLimitState::Uninitialized
}
 
enum  TemperatureState { TemperatureState::Normal, TemperatureState::Critical, TemperatureState::ExceedMaxMotor, TemperatureState::ExceedMaxBoard }
 
enum  VelocityLimitState {
  VelocityLimitState::Below, VelocityLimitState::AtLower, VelocityLimitState::Inside, VelocityLimitState::AtUpper,
  VelocityLimitState::Above, VelocityLimitState::Uninitialized
}
 

Public Member Functions

const Actuatoractuator () const
 Actuator-specific feedback. More...
 
const FloatFieldboardTemperature () const
 Ambient temperature inside the module (measured at the IMU chip), in degrees Celsius. More...
 
const NumberedFloatFielddebug () const
 Values for internal debug functions (channel 1-9 available). More...
 
 Feedback (HebiFeedbackPtr)
 Wraps an existing C-style object that is managed by its parent. NOTE: this should not be used except by internal library functions! More...
 
 Feedback (Feedback &&other)
 Move constructor (necessary for containment in STL template classes) More...
 
const UInt64FieldhardwareReceiveTimeUs () const
 Timestamp of when message was received by module (remote; microseconds) More...
 
const UInt64FieldhardwareTransmitTimeUs () const
 Timestamp of when message was transmitted from module (remote; microseconds) More...
 
const Imuimu () const
 Inertial measurement unit feedback (accelerometers and gyros). More...
 
const Ioio () const
 Feedback from any available I/O pins on the device. More...
 
const LedFieldled () const
 The module's LED. More...
 
const Mobilemobile () const
 Feedback generally from a mobile device such as a phone or tablet. More...
 
Feedbackoperator= (Feedback &&other)=delete
 
const FloatFieldprocessorTemperature () const
 Temperature of the processor chip, in degrees Celsius. More...
 
const UInt64FieldreceiveTimeUs () const
 Timestamp of when message was received from module (local; microseconds) More...
 
const UInt64FieldsenderId () const
 Unique ID of the module transmitting this feedback. More...
 
const UInt64FieldtransmitTimeUs () const
 Timestamp of when message was transmitted to module (local; microseconds) More...
 
const FloatFieldvoltage () const
 Bus voltage that the module is running at (in Volts). More...
 

Private Attributes

Actuator actuator_
 
FloatField board_temperature_
 
NumberedFloatField debug_
 
UInt64Field hardware_receive_time_us_
 
UInt64Field hardware_transmit_time_us_
 
Imu imu_
 
HebiFeedbackPtr internal_
 
HebiFeedbackRef internal_ref_
 
Io io_
 
LedField led_
 
Mobile mobile_
 
FloatField processor_temperature_
 
UInt64Field receive_time_us_
 
UInt64Field sender_id_
 
UInt64Field transmit_time_us_
 
FloatField voltage_
 

Detailed Description

Feedback objects have various fields representing feedback from modules; which fields are populated depends on the module type and various other settings.

This object has a hierarchical structure – there are some direct general-purpose fields at the top level, and many more specific fields contained in different nested subobjects.

The subobjects contain references to the parent feedback object, and so should not be used after the parent object has been destroyed.

The fields in the feedback object are typed; generally, these are optional-style read-only fields (i.e., have the concept of has/get), although the return types and exact interface vary slightly between fields. Where appropriate, the explicit bool operator has been overridden so that you can shortcut if(field.has()) by calling if(field).

Although this header file can be used to look at the hierarchy of the messages, in general the online documentation at apidocs.hebi.us presents this information. in a more readable form.

Definition at line 32 of file feedback.hpp.

Member Enumeration Documentation

Enumerator
ArQualityNotAvailable 

Camera position tracking is not available.

ArQualityLimitedUnknown 

Tracking is available albeit suboptimal for an unknown reason.

ArQualityLimitedInitializing 

The AR session has not yet gathered enough camera or motion data to provide tracking information.

ArQualityLimitedRelocalizing 

The AR session is attempting to resume after an interruption.

ArQualityLimitedExcessiveMotion 

The device is moving too fast for accurate image-based position tracking.

ArQualityLimitedInsufficientFeatures 

The scene visible to the camera does not contain enough distinguishable features for image-based position tracking.

ArQualityNormal 

Camera position tracking is providing optimal results.

Definition at line 112 of file feedback.hpp.

Enumerator
Unlocked 

There is not command lifetime active on this module.

LockedByOther 

Commands are locked out due to control from other users.

LockedBySender 

Commands from others are locked out due to control from this group.

Definition at line 103 of file feedback.hpp.

Enumerator
Below 

The effort of the module was below the lower safety limit; the motor output is set to return the module to within the limits

AtLower 

The effort of the module was near the lower safety limit, and the motor output is being limited or reversed.

Inside 

The effort of the module was within the safety limits.

AtUpper 

The effort of the module was near the upper safety limit, and the motor output is being limited or reversed.

Above 

The effort of the module was above the upper safety limit; the motor output is set to return the module to within the limits

Uninitialized 

The module has not been inside the safety limits since it was booted or the safety limits were set.

Definition at line 86 of file feedback.hpp.

Enumerator
Triggered 

The MStop is pressed.

NotTriggered 

The MStop is not pressed.

Definition at line 45 of file feedback.hpp.

Enumerator
Below 

The position of the module was below the lower safety limit; the motor output is set to return the module to within the limits

AtLower 

The position of the module was near the lower safety limit, and the motor output is being limited or reversed.

Inside 

The position of the module was within the safety limits.

AtUpper 

The position of the module was near the upper safety limit, and the motor output is being limited or reversed.

Above 

The position of the module was above the upper safety limit; the motor output is set to return the module to within the limits

Uninitialized 

The module has not been inside the safety limits since it was booted or the safety limits were set.

Definition at line 52 of file feedback.hpp.

Enumerator
Normal 

Temperature within normal range.

Critical 

Motor output beginning to be limited due to high temperature.

ExceedMaxMotor 

Temperature exceeds max allowable for motor; motor output disabled.

ExceedMaxBoard 

Temperature exceeds max allowable for electronics; motor output disabled.

Definition at line 34 of file feedback.hpp.

Enumerator
Below 

The velocity of the module was below the lower safety limit; the motor output is set to return the module to within the limits

AtLower 

The velocity of the module was near the lower safety limit, and the motor output is being limited or reversed.

Inside 

The velocity of the module was within the safety limits.

AtUpper 

The velocity of the module was near the upper safety limit, and the motor output is being limited or reversed.

Above 

The velocity of the module was above the upper safety limit; the motor output is set to return the module to within the limits

Uninitialized 

The module has not been inside the safety limits since it was booted or the safety limits were set.

Definition at line 69 of file feedback.hpp.

Constructor & Destructor Documentation

hebi::Feedback::Feedback ( HebiFeedbackPtr  feedback)

Wraps an existing C-style object that is managed by its parent. NOTE: this should not be used except by internal library functions!

Definition at line 154 of file feedback.cpp.

hebi::Feedback::Feedback ( Feedback &&  other)

Move constructor (necessary for containment in STL template classes)

Definition at line 173 of file feedback.cpp.

Member Function Documentation

const Actuator& hebi::Feedback::actuator ( ) const
inline

Actuator-specific feedback.

Definition at line 683 of file feedback.hpp.

const FloatField& hebi::Feedback::boardTemperature ( ) const
inline

Ambient temperature inside the module (measured at the IMU chip), in degrees Celsius.

Definition at line 692 of file feedback.hpp.

const NumberedFloatField& hebi::Feedback::debug ( ) const
inline

Values for internal debug functions (channel 1-9 available).

Definition at line 699 of file feedback.hpp.

const UInt64Field& hebi::Feedback::hardwareReceiveTimeUs ( ) const
inline

Timestamp of when message was received by module (remote; microseconds)

Definition at line 706 of file feedback.hpp.

const UInt64Field& hebi::Feedback::hardwareTransmitTimeUs ( ) const
inline

Timestamp of when message was transmitted from module (remote; microseconds)

Definition at line 708 of file feedback.hpp.

const Imu& hebi::Feedback::imu ( ) const
inline

Inertial measurement unit feedback (accelerometers and gyros).

Definition at line 687 of file feedback.hpp.

const Io& hebi::Feedback::io ( ) const
inline

Feedback from any available I/O pins on the device.

Definition at line 681 of file feedback.hpp.

const LedField& hebi::Feedback::led ( ) const
inline

The module's LED.

Definition at line 712 of file feedback.hpp.

const Mobile& hebi::Feedback::mobile ( ) const
inline

Feedback generally from a mobile device such as a phone or tablet.

Definition at line 685 of file feedback.hpp.

Feedback& hebi::Feedback::operator= ( Feedback &&  other)
delete

Disable copy constructor/assignment operators

const FloatField& hebi::Feedback::processorTemperature ( ) const
inline

Temperature of the processor chip, in degrees Celsius.

Definition at line 694 of file feedback.hpp.

const UInt64Field& hebi::Feedback::receiveTimeUs ( ) const
inline

Timestamp of when message was received from module (local; microseconds)

Definition at line 702 of file feedback.hpp.

const UInt64Field& hebi::Feedback::senderId ( ) const
inline

Unique ID of the module transmitting this feedback.

Definition at line 710 of file feedback.hpp.

const UInt64Field& hebi::Feedback::transmitTimeUs ( ) const
inline

Timestamp of when message was transmitted to module (local; microseconds)

Definition at line 704 of file feedback.hpp.

const FloatField& hebi::Feedback::voltage ( ) const
inline

Bus voltage that the module is running at (in Volts).

Definition at line 696 of file feedback.hpp.

Member Data Documentation

Actuator hebi::Feedback::actuator_
private

Definition at line 724 of file feedback.hpp.

FloatField hebi::Feedback::board_temperature_
private

Definition at line 728 of file feedback.hpp.

NumberedFloatField hebi::Feedback::debug_
private

Definition at line 731 of file feedback.hpp.

UInt64Field hebi::Feedback::hardware_receive_time_us_
private

Definition at line 734 of file feedback.hpp.

UInt64Field hebi::Feedback::hardware_transmit_time_us_
private

Definition at line 735 of file feedback.hpp.

Imu hebi::Feedback::imu_
private

Definition at line 726 of file feedback.hpp.

HebiFeedbackPtr hebi::Feedback::internal_
private

C-style object; managed by parent. NOTE: this should not be used except by internal library functions!

Definition at line 659 of file feedback.hpp.

HebiFeedbackRef hebi::Feedback::internal_ref_
private

Definition at line 660 of file feedback.hpp.

Io hebi::Feedback::io_
private

Definition at line 723 of file feedback.hpp.

LedField hebi::Feedback::led_
private

Definition at line 737 of file feedback.hpp.

Mobile hebi::Feedback::mobile_
private

Definition at line 725 of file feedback.hpp.

FloatField hebi::Feedback::processor_temperature_
private

Definition at line 729 of file feedback.hpp.

UInt64Field hebi::Feedback::receive_time_us_
private

Definition at line 732 of file feedback.hpp.

UInt64Field hebi::Feedback::sender_id_
private

Definition at line 736 of file feedback.hpp.

UInt64Field hebi::Feedback::transmit_time_us_
private

Definition at line 733 of file feedback.hpp.

FloatField hebi::Feedback::voltage_
private

Definition at line 730 of file feedback.hpp.


The documentation for this class was generated from the following files:


hebi_cpp_api_ros
Author(s): Chris Bollinger , Matthew Tesch
autogenerated on Thu May 28 2020 03:14:45