info.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "hebi.h"
4 
5 #include <string>
6 
7 #include "color.hpp"
8 #include "gains.hpp"
9 #include "message_helpers.hpp"
10 #include "util.hpp"
11 
12 namespace hebi {
13 
33 class Info final {
34 public:
35  enum class ControlStrategy {
37  Off,
39  DirectPWM,
42  Strategy2,
45  Strategy3,
48  Strategy4,
49  };
50 
51  enum class CalibrationState {
53  Normal,
60  };
61 
62  enum class MstopStrategy {
64  Disabled,
66  MotorOff,
69  };
70 
71  enum class PositionLimitStrategy {
77  MotorOff,
79  Disabled,
80  };
81 
82 protected:
84  class FloatField final {
85  public:
86 #ifndef DOXYGEN_OMIT_INTERNAL
87  FloatField(const HebiInfoRef& internal, HebiInfoFloatField field);
88 #endif // DOXYGEN_OMIT_INTERNAL
89  explicit operator bool() const { return has(); }
103  bool has() const;
106  float get() const;
107 
109  private:
112  };
113 
119  class HighResAngleField final {
120  public:
121 #ifndef DOXYGEN_OMIT_INTERNAL
123 #endif // DOXYGEN_OMIT_INTERNAL
124  explicit operator bool() const { return has(); }
138  bool has() const;
144  double get() const;
156  void get(int64_t* revolutions, float* radian_offset) const;
157 
159  private:
162  };
163 
165  class BoolField final {
166  public:
167 #ifndef DOXYGEN_OMIT_INTERNAL
168  BoolField(const HebiInfoRef& internal, HebiInfoBoolField field);
169 #endif // DOXYGEN_OMIT_INTERNAL
170  bool has() const;
174  bool get() const;
175 
177  private:
180  };
181 
183  class StringField final {
184  public:
185 #ifndef DOXYGEN_OMIT_INTERNAL
187 #endif // DOXYGEN_OMIT_INTERNAL
188  explicit operator bool() const { return has(); }
202  bool has() const;
205  std::string get() const;
206 
208  private:
211  };
212 
214  class FlagField final {
215  public:
216 #ifndef DOXYGEN_OMIT_INTERNAL
217  FlagField(const HebiInfoRef& internal, HebiInfoFlagField field);
218 #endif // DOXYGEN_OMIT_INTERNAL
219  explicit operator bool() const { return has(); }
233  bool has() const;
234 
236  private:
239  };
240 
242  template<typename T>
243  class EnumField final {
244  public:
245 #ifndef DOXYGEN_OMIT_INTERNAL
246  EnumField(const HebiInfoRef& internal, HebiInfoEnumField field) : internal_(internal), field_(field) {}
247 #endif // DOXYGEN_OMIT_INTERNAL
248  explicit operator bool() const { return has(); }
262  bool has() const {
263  return (enumGetter(internal_, field_, nullptr) == HebiStatusSuccess);
264  }
267  T get() const {
268  int32_t ret{};
269  enumGetter(internal_, field_, &ret);
270  return static_cast<T>(ret);
271  }
272 
274  private:
277  };
278 
280  class LedField final {
281  public:
282 #ifndef DOXYGEN_OMIT_INTERNAL
283  LedField(const HebiInfoRef& internal, HebiInfoLedField field);
284 #endif // DOXYGEN_OMIT_INTERNAL
285  explicit operator bool() const { return hasColor(); }
299  bool hasColor() const;
301  Color getColor() const;
302 
304  private:
307  };
308 
310 
312  class Settings final {
313  protected:
315  class Actuator final {
316  public:
317 #ifndef DOXYGEN_OMIT_INTERNAL
318  Actuator(const HebiInfoRef& internal)
333 #endif // DOXYGEN_OMIT_INTERNAL
334 
335  // With all submessage and field getters: Note that the returned reference
336  // should not be used after the lifetime of this parent.
337 
338  // Submessages ----------------
339 
341  const InfoGains& positionGains() const { return position_gains_; }
343  const InfoGains& velocityGains() const { return velocity_gains_; }
345  const InfoGains& effortGains() const { return effort_gains_; }
346 
347  // Subfields ----------------
348 
350  const FloatField& springConstant() const { return spring_constant_; }
356  const FloatField& effortLimitMin() const { return effort_limit_min_; }
358  const FloatField& effortLimitMax() const { return effort_limit_max_; }
371 
373  private:
377 
389  };
390 
392  class Imu final {
393  public:
394 #ifndef DOXYGEN_OMIT_INTERNAL
395  Imu(const HebiInfoRef& internal)
397 #endif // DOXYGEN_OMIT_INTERNAL
398 
399  // With all submessage and field getters: Note that the returned reference
400  // should not be used after the lifetime of this parent.
401 
402  // Subfields ----------------
403 
406 
408  private:
410  };
411 
412  public:
413 #ifndef DOXYGEN_OMIT_INTERNAL
414  Settings(HebiInfoPtr internal_ptr, const HebiInfoRef& internal)
415  : actuator_(internal),
416  imu_(internal),
417  name_(internal_ptr, HebiInfoStringName),
418  family_(internal_ptr, HebiInfoStringFamily),
420 #endif // DOXYGEN_OMIT_INTERNAL
421 
422  // With all submessage and field getters: Note that the returned reference
423  // should not be used after the lifetime of this parent.
424 
425  // Submessages ----------------
426 
428  const Actuator& actuator() const { return actuator_; }
430  const Imu& imu() const { return imu_; }
431 
432  // Subfields ----------------
433 
435  const StringField& name() const { return name_; }
437  const StringField& family() const { return family_; }
440 
442  private:
445 
449  };
450 
452  class Actuator final {
453  public:
454 #ifndef DOXYGEN_OMIT_INTERNAL
456 #endif // DOXYGEN_OMIT_INTERNAL
457 
458  // With all submessage and field getters: Note that the returned reference
459  // should not be used after the lifetime of this parent.
460 
461  // Subfields ----------------
462 
465 
467  private:
469  };
470 
471 private:
478 
479 public:
480 #ifndef DOXYGEN_OMIT_INTERNAL
481 
485  Info(HebiInfoPtr);
486 #endif // DOXYGEN_OMIT_INTERNAL
487 
490  Info(Info&& other);
491 
492  // With all submessage and field getters: Note that the returned reference
493  // should not be used after the lifetime of this parent.
494 
495  // Submessages -------------------------------------------------------------
496 
498  const Settings& settings() const { return settings_; }
500  const Actuator& actuator() const { return actuator_; }
501 
502  // Subfields -------------------------------------------------------------
503 
505  const StringField& serial() const { return serial_; }
507  const LedField& led() const { return led_; }
508 
513 
514  /* Disable move assigment operator. */
515  Info& operator=(Info&& other) = delete;
516 
517 private:
520 
523 };
524 
525 } // namespace hebi
hebi::Info::FlagField::has
bool has() const
Returns true if the flag is set, false if it is cleared.
Definition: info.cpp:74
hebi::Info::StringField::has
bool has() const
True if (and only if) the field has a value.
Definition: info.cpp:54
hebi::Info
Info objects have various fields representing the module state; which fields are populated depends on...
Definition: info.hpp:33
hebi::Info::CalibrationState::Normal
@ Normal
The module has been calibrated; this is the normal state.
hebi::Info::CalibrationState::UncalibratedPosition
@ UncalibratedPosition
The factory zero position has not been set.
HebiInfoEnumMstopStrategy
@ HebiInfoEnumMstopStrategy
The calibration state of the module.
Definition: hebi.h:310
hebi::Info::Settings::name
const StringField & name() const
Gets the name for this module.
Definition: info.hpp:435
hebi::Info::Settings::Actuator::velocityLimitMax
const FloatField & velocityLimitMax() const
The firmware safety limit for the maximum allowed velocity.
Definition: info.hpp:354
hebi::Info::BoolField::field_
const HebiInfoBoolField field_
Definition: info.hpp:179
hebi::Info::Settings::Actuator::effortLimitMin
const FloatField & effortLimitMin() const
The firmware safety limit for the minimum allowed effort.
Definition: info.hpp:356
hebi::Color
Structure to describe an RGB color.
Definition: color.hpp:8
hebi::Info::StringField
A message field representable by a std::string.
Definition: info.hpp:183
hebi::Info::CalibrationState
CalibrationState
Definition: info.hpp:51
hebi::Info::Settings::Actuator::spring_constant_
FloatField spring_constant_
Definition: info.hpp:378
hebi::Info::Settings::Actuator::velocityGains
const InfoGains & velocityGains() const
Controller gains for the velocity PID loop.
Definition: info.hpp:343
hebi::Info::Settings::actuator_
Actuator actuator_
Definition: info.hpp:443
hebi::Info::Settings::Actuator::velocity_gains_
InfoGains velocity_gains_
Definition: info.hpp:375
HebiInfoFloatVelocityLimitMax
@ HebiInfoFloatVelocityLimitMax
The firmware safety limit for the minimum allowed velocity.
Definition: hebi.h:280
HebiStatusSuccess
@ HebiStatusSuccess
Definition: hebi.h:24
HebiInfoStringField
HebiInfoStringField
Definition: hebi.h:297
hebi::Info::Settings::Actuator::controlStrategy
const EnumField< ControlStrategy > & controlStrategy() const
How the position, velocity, and effort PID loops are connected in order to control motor PWM.
Definition: info.hpp:364
hebi::Info::Info
Info(HebiInfoPtr)
Wraps an existing C-style object that is managed by its parent. NOTE: this should not be used except ...
Definition: info.cpp:93
hebi::Info::FloatField::has
bool has() const
True if (and only if) the field has a value.
Definition: info.cpp:9
hebi::Info::Settings::imu_
Imu imu_
Definition: info.hpp:444
hebi::Info::BoolField
A message field representable by a bool value.
Definition: info.hpp:165
hebi::Info::Settings::Actuator::mstop_strategy_
EnumField< MstopStrategy > mstop_strategy_
Definition: info.hpp:386
HebiInfoPtr
struct HebiInfo_ * HebiInfoPtr
The C-style's API representation of info.
Definition: hebi.h:458
hebi::Info::LedField::LedField
LedField(const HebiInfoRef &internal, HebiInfoLedField field)
Definition: info.cpp:76
hebi::Info::internal_
HebiInfoPtr internal_
Definition: info.hpp:476
hebi::Info::StringField::StringField
StringField(HebiInfoPtr internal, HebiInfoStringField field)
Definition: info.cpp:52
hebi::Info::ControlStrategy::Off
@ Off
The motor is not given power (equivalent to a 0 PWM value)
hebi::Info::EnumField::get
T get() const
If the field has a value, returns that value; otherwise, returns a default.
Definition: info.hpp:267
hebi::Info::led
const LedField & led() const
The module's LED.
Definition: info.hpp:507
hebi::Info::Settings::Actuator::Actuator
Actuator(const HebiInfoRef &internal)
Definition: info.hpp:318
hebi::Info::serial
const StringField & serial() const
Gets the serial number for this module (e.g., X5-0001).
Definition: info.hpp:505
hebi::Info::Settings::Actuator::effort_limit_max_
FloatField effort_limit_max_
Definition: info.hpp:382
hebi::Info::Settings::Actuator::min_position_limit_strategy_
EnumField< PositionLimitStrategy > min_position_limit_strategy_
Definition: info.hpp:387
hebi::Info::internal_ref_
HebiInfoRef internal_ref_
Definition: info.hpp:477
hebi::Info::FloatField::get
float get() const
If the field has a value, returns that value; otherwise, returns a default.
Definition: info.cpp:11
HebiInfoEnumCalibrationState
@ HebiInfoEnumCalibrationState
How the position, velocity, and effort PID loops are connected in order to control motor PWM.
Definition: hebi.h:309
hebi::Info::BoolField::BoolField
BoolField(const HebiInfoRef &internal, HebiInfoBoolField field)
Definition: info.cpp:42
HEBI_DISABLE_COPY
#define HEBI_DISABLE_COPY(Class)
Definition: util.hpp:16
hebi::Info::FlagField::FlagField
FlagField(const HebiInfoRef &internal, HebiInfoFlagField field)
Definition: info.cpp:72
hebi::Info::Settings::name_
StringField name_
Definition: info.hpp:446
HebiInfoBoolField
HebiInfoBoolField
Definition: hebi.h:290
hebi::Info::Settings::Actuator::positionGains
const InfoGains & positionGains() const
Controller gains for the position PID loop.
Definition: info.hpp:341
hebi::Info::EnumField::EnumField
EnumField(const HebiInfoRef &internal, HebiInfoEnumField field)
Definition: info.hpp:246
hebi::Info::Actuator::calibrationState
const EnumField< CalibrationState > & calibrationState() const
The calibration state of the module.
Definition: info.hpp:464
HebiInfoFloatEffortLimitMax
@ HebiInfoFloatEffortLimitMax
The firmware safety limit for the minimum allowed effort.
Definition: hebi.h:282
hebi::Info::Settings::imu
const Imu & imu() const
IMU-specific settings.
Definition: info.hpp:430
hebi::Info::PositionLimitStrategy
PositionLimitStrategy
Definition: info.hpp:71
HebiInfoFloatSpringConstant
@ HebiInfoFloatSpringConstant
A simple lowpass filter applied to the controller output; needs to be between 0 and 1....
Definition: hebi.h:278
HebiInfoFloatPositionKp
@ HebiInfoFloatPositionKp
Definition: hebi.h:239
hebi::Info::LedField::field_
const HebiInfoLedField field_
Definition: info.hpp:306
hebi::Info::StringField::get
std::string get() const
If the field has a value, returns a copy of that value; otherwise, returns a default.
Definition: info.cpp:58
HebiInfoFloatEffortLimitMin
@ HebiInfoFloatEffortLimitMin
The firmware safety limit for the maximum allowed velocity.
Definition: hebi.h:281
hebi::Info::ControlStrategy
ControlStrategy
Definition: info.hpp:35
HebiInfoHighResAnglePositionLimitMin
@ HebiInfoHighResAnglePositionLimitMin
Definition: hebi.h:286
hebi::Info::Settings::Imu
IMU-specific settings.
Definition: info.hpp:392
hebi::Info::LedField::hasColor
bool hasColor() const
Returns true if the LED color is set, and false otherwise.
Definition: info.cpp:78
HEBI_DISABLE_COPY_MOVE
#define HEBI_DISABLE_COPY_MOVE(Class)
Definition: util.hpp:6
hebi::Info::HighResAngleField
A message field for an angle measurement which does not lose precision at very high angles.
Definition: info.hpp:119
hebi::Info::Settings::Actuator::velocityLimitMin
const FloatField & velocityLimitMin() const
The firmware safety limit for the minimum allowed velocity.
Definition: info.hpp:352
hebi::Info::Settings::Actuator::effortGains
const InfoGains & effortGains() const
Controller gains for the effort PID loop.
Definition: info.hpp:345
hebi::Info::Settings::Actuator::position_limit_max_
HighResAngleField position_limit_max_
Definition: info.hpp:384
hebi::Info::led_
LedField led_
Definition: info.hpp:522
hebi::Info::ControlStrategy::DirectPWM
@ DirectPWM
A direct PWM value (-1 to 1) can be sent to the motor (subject to onboard safety limiting).
hebi::Info::Settings::family_
StringField family_
Definition: info.hpp:447
hebi::Info::Settings::Actuator::positionLimitMin
const HighResAngleField & positionLimitMin() const
The firmware safety limit for the minimum allowed position.
Definition: info.hpp:360
HebiInfoFloatField
HebiInfoFloatField
Info Enums.
Definition: hebi.h:238
hebi::Info::FloatField
A message field representable by a single-precision floating point value.
Definition: info.hpp:84
hebi::Info::ControlStrategy::Strategy4
@ Strategy4
hebi::Info::settings
const Settings & settings() const
Module settings that are typically changed at a slower rate.
Definition: info.hpp:498
hebi::Info::Settings::Actuator::velocity_limit_max_
FloatField velocity_limit_max_
Definition: info.hpp:380
hebi::Info::Settings::Actuator
Actuator-specific settings, such as controller gains.
Definition: info.hpp:315
HebiInfoHighResAnglePositionLimitMax
@ HebiInfoHighResAnglePositionLimitMax
The firmware safety limit for the minimum allowed position.
Definition: hebi.h:287
hebi::Info::MstopStrategy::HoldPosition
@ HoldPosition
Triggering the M-Stop results in the motor holding the motor position. Operations resume to normal on...
HebiInfoBoolEffortDOnError
@ HebiInfoBoolEffortDOnError
Controls whether the Kd term uses the "derivative of error" or "derivative of measurement....
Definition: hebi.h:293
HebiInfoFloatEffortKp
@ HebiInfoFloatEffortKp
A simple lowpass filter applied to the controller output; needs to be between 0 and 1....
Definition: hebi.h:265
hebi::Info::Settings::Actuator::springConstant
const FloatField & springConstant() const
The spring constant of the module.
Definition: info.hpp:350
hebi::Info::Actuator
Actuator-specific information.
Definition: info.hpp:452
hebi::Info::BoolField::internal_
const HebiInfoRef & internal_
Definition: info.hpp:178
hebi::Info::FlagField::internal_
const HebiInfoRef & internal_
Definition: info.hpp:237
gains.hpp
hebi::Info::Settings::Imu::Imu
Imu(const HebiInfoRef &internal)
Definition: info.hpp:395
hebi::Gains< HebiInfoRef, FloatField, BoolField, HebiInfoFloatField, HebiInfoBoolField >
hebi::Info::MstopStrategy::Disabled
@ Disabled
Triggering the M-Stop has no effect.
hebi::Info::EnumField::field_
const HebiInfoEnumField field_
Definition: info.hpp:276
hebi::Info::Settings::Actuator::position_limit_min_
HighResAngleField position_limit_min_
Definition: info.hpp:383
HebiInfoFlagField
HebiInfoFlagField
Definition: hebi.h:303
hebi::Info::MstopStrategy
MstopStrategy
Definition: info.hpp:62
hebi::Info::FloatField::internal_
const HebiInfoRef & internal_
Definition: info.hpp:110
hebi::Info::Settings::Actuator::maxPositionLimitStrategy
const EnumField< PositionLimitStrategy > & maxPositionLimitStrategy() const
The position limit strategy (at the maximum position) for the actuator.
Definition: info.hpp:370
hebi::Info::ControlStrategy::Strategy3
@ Strategy3
hebi::Info::actuator_
Actuator actuator_
Definition: info.hpp:519
hebi::Info::Settings::save_current_settings_
FlagField save_current_settings_
Definition: info.hpp:448
hebi::Info::PositionLimitStrategy::Disabled
@ Disabled
Exceeding the position limit has no effect.
hebi::Info::Actuator::Actuator
Actuator(const HebiInfoRef &internal)
Definition: info.hpp:455
hebi::Info::operator=
Info & operator=(Info &&other)=delete
hebi
Definition: arm.cpp:5
HebiInfoHighResAngleField
HebiInfoHighResAngleField
Definition: hebi.h:285
HebiInfoBoolVelocityDOnError
@ HebiInfoBoolVelocityDOnError
Controls whether the Kd term uses the "derivative of error" or "derivative of measurement....
Definition: hebi.h:292
hebi::Info::CalibrationState::UncalibratedCurrent
@ UncalibratedCurrent
The current has not been calibrated.
hebi::Info::settings_
Settings settings_
Definition: info.hpp:518
hebi::Info::HighResAngleField::get
double get() const
If the field has a value, returns that value as a double; otherwise, returns a default.
Definition: info.cpp:26
hebi::Info::Settings::saveCurrentSettings
const FlagField & saveCurrentSettings() const
Indicates if the module should save the current values of all of its settings.
Definition: info.hpp:439
hebi::Info::Settings::Actuator::positionLimitMax
const HighResAngleField & positionLimitMax() const
The firmware safety limit for the maximum allowed position.
Definition: info.hpp:362
hebi::Info::FlagField
A two-state message field (either set/true or cleared/false).
Definition: info.hpp:214
hebi::Info::FloatField::field_
const HebiInfoFloatField field_
Definition: info.hpp:111
hebi::Info::Settings::Actuator::control_strategy_
EnumField< ControlStrategy > control_strategy_
Definition: info.hpp:385
HebiInfoFlagSaveCurrentSettings
@ HebiInfoFlagSaveCurrentSettings
Definition: hebi.h:304
HebiInfoEnumField
HebiInfoEnumField
Definition: hebi.h:307
HebiInfoFloatVelocityKp
@ HebiInfoFloatVelocityKp
A simple lowpass filter applied to the controller output; needs to be between 0 and 1....
Definition: hebi.h:252
hebi::Info::BoolField::get
bool get() const
If the field has a value, returns that value; otherwise, returns false.
Definition: info.cpp:46
hebi::Info::HighResAngleField::internal_
const HebiInfoRef & internal_
Definition: info.hpp:160
HebiInfoBoolPositionDOnError
@ HebiInfoBoolPositionDOnError
Definition: hebi.h:291
HebiInfoStringFamily
@ HebiInfoStringFamily
The name for this module. The string must be null-terminated and less than 21 characters.
Definition: hebi.h:299
HebiInfoEnumControlStrategy
@ HebiInfoEnumControlStrategy
Definition: hebi.h:308
hebi::Info::PositionLimitStrategy::DampedSpring
@ DampedSpring
Exceeding the position limit results in a virtual spring that pushes the actuator back to within the ...
color.hpp
HebiInfoRef_
Definition: hebi.h:748
hebi::Info::StringField::internal_
const HebiInfoPtr internal_
Definition: info.hpp:209
HebiInfoFloatVelocityLimitMin
@ HebiInfoFloatVelocityLimitMin
The spring constant of the module.
Definition: hebi.h:279
hebi::Info::FloatField::FloatField
FloatField(const HebiInfoRef &internal, HebiInfoFloatField field)
Definition: info.cpp:7
hebi::Info::Settings::actuator
const Actuator & actuator() const
Actuator-specific settings, such as controller gains.
Definition: info.hpp:428
hebi::Info::Settings::Actuator::mstopStrategy
const EnumField< MstopStrategy > & mstopStrategy() const
The motion stop strategy for the actuator.
Definition: info.hpp:366
hebi::Info::Settings::Settings
Settings(HebiInfoPtr internal_ptr, const HebiInfoRef &internal)
Definition: info.hpp:414
hebi::Info::Settings::Actuator::effort_limit_min_
FloatField effort_limit_min_
Definition: info.hpp:381
hebi::Info::Settings::Actuator::position_gains_
InfoGains position_gains_
Definition: info.hpp:374
message_helpers.hpp
hebi::enumGetter
HebiStatusCode enumGetter(const RefT &ref, MetadataT &metadata, int field, int32_t *value)
Definition: message_helpers.cpp:298
hebi::Info::EnumField::has
bool has() const
True if (and only if) the field has a value.
Definition: info.hpp:262
hebi::Info::HighResAngleField::HighResAngleField
HighResAngleField(const HebiInfoRef &internal, HebiInfoHighResAngleField field)
Definition: info.cpp:19
hebi::Info::PositionLimitStrategy::MotorOff
@ MotorOff
Exceeding the position limit results in the control strategy being set to 'off'. Remains 'off' until ...
HebiInfoEnumMinPositionLimitStrategy
@ HebiInfoEnumMinPositionLimitStrategy
The motion stop strategy for the actuator.
Definition: hebi.h:311
hebi::Info::actuator
const Actuator & actuator() const
Actuator-specific information.
Definition: info.hpp:500
hebi::Info::Settings::family
const StringField & family() const
Gets the family for this module.
Definition: info.hpp:437
hebi::Info::Settings::Actuator::effort_gains_
InfoGains effort_gains_
Definition: info.hpp:376
hebi.h
HebiInfoBoolAccelIncludesGravity
@ HebiInfoBoolAccelIncludesGravity
Controls whether the Kd term uses the "derivative of error" or "derivative of measurement....
Definition: hebi.h:294
hebi::Info::EnumField::internal_
const HebiInfoRef & internal_
Definition: info.hpp:275
HebiInfoEnumMaxPositionLimitStrategy
@ HebiInfoEnumMaxPositionLimitStrategy
The position limit strategy (at the minimum position) for the actuator.
Definition: hebi.h:312
hebi::Info::HighResAngleField::field_
const HebiInfoHighResAngleField field_
Definition: info.hpp:161
hebi::Info::Settings::Imu::accel_includes_gravity_
BoolField accel_includes_gravity_
Definition: info.hpp:409
HebiInfoLedField
HebiInfoLedField
Definition: hebi.h:315
hebi::Info::PositionLimitStrategy::HoldPosition
@ HoldPosition
Exceeding the position limit results in the actuator holding the position. Needs to be manually set t...
hebi::Info::EnumField
A message field representable by an enum of a given type.
Definition: info.hpp:243
hebi::Info::FlagField::field_
const HebiInfoFlagField field_
Definition: info.hpp:238
hebi::Info::serial_
StringField serial_
Definition: info.hpp:521
hebi::Info::HighResAngleField::has
bool has() const
True if (and only if) the field has a value.
Definition: info.cpp:22
hebi::Info::Settings::Actuator::velocity_limit_min_
FloatField velocity_limit_min_
Definition: info.hpp:379
hebi::Info::Settings::Imu::accelIncludesGravity
const BoolField & accelIncludesGravity() const
Whether to include acceleration due to gravity in acceleration feedback.
Definition: info.hpp:405
hebi::Info::Settings::Actuator::effortLimitMax
const FloatField & effortLimitMax() const
The firmware safety limit for the maximum allowed effort.
Definition: info.hpp:358
hebi::Info::MstopStrategy::MotorOff
@ MotorOff
Triggering the M-Stop results in the control strategy being set to 'off'. Remains 'off' until changed...
hebi::Info::LedField::internal_
const HebiInfoRef & internal_
Definition: info.hpp:305
hebi::Info::ControlStrategy::Strategy2
@ Strategy2
hebi::Info::Actuator::calibration_state_
EnumField< CalibrationState > calibration_state_
Definition: info.hpp:468
util.hpp
hebi::Info::StringField::field_
const HebiInfoStringField field_
Definition: info.hpp:210
HebiInfoStringName
@ HebiInfoStringName
Definition: hebi.h:298
hebi::Info::BoolField::has
bool has() const
True if (and only if) the field has a value.
Definition: info.cpp:44
hebi::Info::CalibrationState::UncalibratedEffort
@ UncalibratedEffort
The effort (e.g., spring nonlinearity) has not been calibrated.
hebi::Info::Settings::Actuator::max_position_limit_strategy_
EnumField< PositionLimitStrategy > max_position_limit_strategy_
Definition: info.hpp:388
hebi::Info::LedField::getColor
Color getColor() const
Returns the led color.
Definition: info.cpp:82
hebi::Info::Settings::Actuator::minPositionLimitStrategy
const EnumField< PositionLimitStrategy > & minPositionLimitStrategy() const
The position limit strategy (at the minimum position) for the actuator.
Definition: info.hpp:368
hebi::Info::Settings
Module settings that are typically changed at a slower rate.
Definition: info.hpp:312
hebi::Info::LedField
A message field for interfacing with an LED.
Definition: info.hpp:280


hebi_cpp_api_ros
Author(s): Chris Bollinger , Matthew Tesch
autogenerated on Fri Aug 2 2024 08:35:18