3 #include "hebi_command.h" 51 #ifndef DOXYGEN_OMIT_INTERNAL 52 FloatField(HebiCommandPtr
internal, HebiCommandFloatField field);
53 #endif // DOXYGEN_OMIT_INTERNAL 54 explicit operator bool()
const;
73 void set(
float value);
78 HebiCommandPtr
const internal_;
79 HebiCommandFloatField
const field_;
91 #ifndef DOXYGEN_OMIT_INTERNAL 93 #endif // DOXYGEN_OMIT_INTERNAL 94 explicit operator bool()
const;
126 void get(int64_t* revolutions,
float* radian_offset)
const;
131 void set(
double radians);
138 void set(int64_t revolutions,
float radian_offset);
143 HebiCommandPtr
const internal_;
144 HebiCommandHighResAngleField
const field_;
154 #ifndef DOXYGEN_OMIT_INTERNAL 156 #endif // DOXYGEN_OMIT_INTERNAL 157 bool has(
int fieldNumber)
const;
168 float get(
int fieldNumber)
const;
174 void set(
int fieldNumber,
float value);
180 void clear(
int fieldNumber);
183 HebiCommandPtr
const internal_;
184 HebiCommandNumberedFloatField
const field_;
193 #ifndef DOXYGEN_OMIT_INTERNAL 194 BoolField(HebiCommandPtr
internal, HebiCommandBoolField field);
195 #endif // DOXYGEN_OMIT_INTERNAL 202 void set(
bool value);
207 HebiCommandPtr
const internal_;
208 HebiCommandBoolField
const field_;
217 #ifndef DOXYGEN_OMIT_INTERNAL 218 StringField(HebiCommandPtr
internal, HebiCommandStringField field);
219 #endif // DOXYGEN_OMIT_INTERNAL 220 explicit operator bool()
const;
237 std::string
get()
const;
239 void set(
const std::string& value);
244 HebiCommandPtr
const internal_;
245 HebiCommandStringField
const field_;
254 #ifndef DOXYGEN_OMIT_INTERNAL 255 FlagField(HebiCommandPtr
internal, HebiCommandFlagField field);
256 #endif // DOXYGEN_OMIT_INTERNAL 257 explicit operator bool()
const;
278 HebiCommandPtr
const internal_;
279 HebiCommandFlagField
const field_;
289 #ifndef DOXYGEN_OMIT_INTERNAL 290 EnumField(HebiCommandPtr
internal, HebiCommandEnumField field)
291 : internal_(
internal), field_(field) {}
292 #endif // DOXYGEN_OMIT_INTERNAL 293 explicit operator bool()
const {
return has(); }
307 bool has()
const {
return (hebiCommandGetEnum(internal_, field_,
nullptr) == HebiStatusSuccess); }
310 T
get()
const { T ret; hebiCommandGetEnum(internal_, field_, reinterpret_cast<int*>(&ret));
return ret; }
312 void set(T value) { hebiCommandSetEnum(internal_, field_, reinterpret_cast<int*>(&value)); }
314 void clear() { hebiCommandSetEnum(internal_, field_,
nullptr); }
317 HebiCommandPtr
const internal_;
318 HebiCommandEnumField
const field_;
327 #ifndef DOXYGEN_OMIT_INTERNAL 328 IoBank(HebiCommandPtr
internal, HebiCommandIoPinBank bank);
329 #endif // DOXYGEN_OMIT_INTERNAL 330 bool hasInt(
int pinNumber)
const;
341 bool hasFloat(
int pinNumber)
const;
347 int64_t getInt(
int pinNumber)
const;
354 float getFloat(
int pinNumber)
const;
360 void setInt(
int pinNumber, int64_t value);
366 void setFloat(
int pinNumber,
float value);
371 void clear(
int pinNumber);
374 HebiCommandPtr
const internal_;
375 HebiCommandIoPinBank
const bank_;
383 #ifndef DOXYGEN_OMIT_INTERNAL 384 LedField(HebiCommandPtr
internal, HebiCommandLedField field);
385 #endif // DOXYGEN_OMIT_INTERNAL 386 bool hasColor()
const;
395 bool hasModuleControl()
const;
397 Color getColor()
const;
400 void setOverrideColor(
const Color& new_color);
402 void setModuleControl();
410 HebiCommandPtr
const internal_;
411 HebiCommandLedField
const field_;
420 #ifndef DOXYGEN_OMIT_INTERNAL 421 Io(HebiCommandPtr
internal)
422 : internal_(
internal),
423 a_(
internal, HebiCommandIoBankA),
424 b_(
internal, HebiCommandIoBankB),
425 c_(
internal, HebiCommandIoBankC),
426 d_(
internal, HebiCommandIoBankD),
427 e_(
internal, HebiCommandIoBankE),
428 f_(
internal, HebiCommandIoBankF)
431 #endif // DOXYGEN_OMIT_INTERNAL 464 HebiCommandPtr
const internal_;
490 #ifndef DOXYGEN_OMIT_INTERNAL 492 : internal_(
internal),
493 position_kp_(
internal, HebiCommandFloatPositionKp),
494 position_ki_(
internal, HebiCommandFloatPositionKi),
495 position_kd_(
internal, HebiCommandFloatPositionKd),
496 position_feed_forward_(
internal, HebiCommandFloatPositionFeedForward),
497 position_dead_zone_(
internal, HebiCommandFloatPositionDeadZone),
498 position_i_clamp_(
internal, HebiCommandFloatPositionIClamp),
499 position_punch_(
internal, HebiCommandFloatPositionPunch),
500 position_min_target_(
internal, HebiCommandFloatPositionMinTarget),
501 position_max_target_(
internal, HebiCommandFloatPositionMaxTarget),
502 position_target_lowpass_(
internal, HebiCommandFloatPositionTargetLowpass),
503 position_min_output_(
internal, HebiCommandFloatPositionMinOutput),
504 position_max_output_(
internal, HebiCommandFloatPositionMaxOutput),
505 position_output_lowpass_(
internal, HebiCommandFloatPositionOutputLowpass),
506 position_d_on_error_(
internal, HebiCommandBoolPositionDOnError)
509 #endif // DOXYGEN_OMIT_INTERNAL 574 HebiCommandPtr
const internal_;
598 #ifndef DOXYGEN_OMIT_INTERNAL 600 : internal_(
internal),
601 velocity_kp_(
internal, HebiCommandFloatVelocityKp),
602 velocity_ki_(
internal, HebiCommandFloatVelocityKi),
603 velocity_kd_(
internal, HebiCommandFloatVelocityKd),
604 velocity_feed_forward_(
internal, HebiCommandFloatVelocityFeedForward),
605 velocity_dead_zone_(
internal, HebiCommandFloatVelocityDeadZone),
606 velocity_i_clamp_(
internal, HebiCommandFloatVelocityIClamp),
607 velocity_punch_(
internal, HebiCommandFloatVelocityPunch),
608 velocity_min_target_(
internal, HebiCommandFloatVelocityMinTarget),
609 velocity_max_target_(
internal, HebiCommandFloatVelocityMaxTarget),
610 velocity_target_lowpass_(
internal, HebiCommandFloatVelocityTargetLowpass),
611 velocity_min_output_(
internal, HebiCommandFloatVelocityMinOutput),
612 velocity_max_output_(
internal, HebiCommandFloatVelocityMaxOutput),
613 velocity_output_lowpass_(
internal, HebiCommandFloatVelocityOutputLowpass),
614 velocity_d_on_error_(
internal, HebiCommandBoolVelocityDOnError)
617 #endif // DOXYGEN_OMIT_INTERNAL 682 HebiCommandPtr
const internal_;
706 #ifndef DOXYGEN_OMIT_INTERNAL 708 : internal_(
internal),
709 effort_kp_(
internal, HebiCommandFloatEffortKp),
710 effort_ki_(
internal, HebiCommandFloatEffortKi),
711 effort_kd_(
internal, HebiCommandFloatEffortKd),
712 effort_feed_forward_(
internal, HebiCommandFloatEffortFeedForward),
713 effort_dead_zone_(
internal, HebiCommandFloatEffortDeadZone),
714 effort_i_clamp_(
internal, HebiCommandFloatEffortIClamp),
715 effort_punch_(
internal, HebiCommandFloatEffortPunch),
716 effort_min_target_(
internal, HebiCommandFloatEffortMinTarget),
717 effort_max_target_(
internal, HebiCommandFloatEffortMaxTarget),
718 effort_target_lowpass_(
internal, HebiCommandFloatEffortTargetLowpass),
719 effort_min_output_(
internal, HebiCommandFloatEffortMinOutput),
720 effort_max_output_(
internal, HebiCommandFloatEffortMaxOutput),
721 effort_output_lowpass_(
internal, HebiCommandFloatEffortOutputLowpass),
722 effort_d_on_error_(
internal, HebiCommandBoolEffortDOnError)
725 #endif // DOXYGEN_OMIT_INTERNAL 790 HebiCommandPtr
const internal_;
811 #ifndef DOXYGEN_OMIT_INTERNAL 813 : internal_(
internal),
814 position_gains_(
internal),
815 velocity_gains_(
internal),
816 effort_gains_(
internal),
817 spring_constant_(
internal, HebiCommandFloatSpringConstant),
818 control_strategy_(
internal, HebiCommandEnumControlStrategy)
821 #endif // DOXYGEN_OMIT_INTERNAL 853 HebiCommandPtr
const internal_;
866 #ifndef DOXYGEN_OMIT_INTERNAL 868 : internal_(
internal),
870 name_(
internal, HebiCommandStringName),
871 family_(
internal, HebiCommandStringFamily),
872 save_current_settings_(
internal, HebiCommandFlagSaveCurrentSettings)
875 #endif // DOXYGEN_OMIT_INTERNAL 903 HebiCommandPtr
const internal_;
918 #ifndef DOXYGEN_OMIT_INTERNAL 920 : internal_(
internal),
921 velocity_(
internal, HebiCommandFloatVelocity),
922 effort_(
internal, HebiCommandFloatEffort),
923 position_(
internal, HebiCommandHighResAnglePosition)
926 #endif // DOXYGEN_OMIT_INTERNAL 947 HebiCommandPtr
const internal_;
961 HebiCommandPtr internal_;
964 #ifndef DOXYGEN_OMIT_INTERNAL 970 #endif // DOXYGEN_OMIT_INTERNAL 988 const Io&
io()
const {
return io_; }
1000 #ifndef DOXYGEN_OMIT_INTERNAL 1005 #endif // DOXYGEN_OMIT_INTERNAL const FloatField & velocityIClamp() const
Maximum allowed value for the output of the integral component of the PID loop; the integrated error ...
Definition: command.hpp:647
IoBank & f()
I/O pin bank f (pins 1-8 available)
Definition: command.hpp:459
FlagField & saveCurrentSettings()
Indicates if the module should save the current values of all of its settings.
Definition: command.hpp:898
const FloatField & velocityKd() const
Derivative PID gain for velocity.
Definition: command.hpp:635
IoBank & d()
I/O pin bank d (pins 1-8 available)
Definition: command.hpp:451
const FloatField & velocity() const
Velocity of the module output (post-spring), in radians/second.
Definition: command.hpp:936
FloatField & velocityMaxOutput()
Output from the PID controller is limited to a maximum of this value.
Definition: command.hpp:669
const BoolField & velocityDOnError() const
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.
Definition: command.hpp:679
FloatField & velocityMinOutput()
Output from the PID controller is limited to a minimum of this value.
Definition: command.hpp:665
const FloatField & effort() const
Effort at the module output; units vary (e.g., N * m for rotational joints and N for linear stages)...
Definition: command.hpp:940
Controller gains for the velocity PID loop.
Definition: command.hpp:595
#define HEBI_DISABLE_COPY(Class)
Definition: util.hpp:17
FloatField & positionKi()
Integral PID gain for position.
Definition: command.hpp:521
const FloatField & springConstant() const
The spring constant of the module.
Definition: command.hpp:846
void clear()
Removes any currently set value for this field.
Definition: command.cpp:40
A message field representable by a bool value.
Definition: command.hpp:190
const FloatField & velocityOutputLowpass() const
A simple lowpass filter applied to the controller output; needs to be between 0 and 1...
Definition: command.hpp:675
Actuator & actuator()
Actuator-specific commands.
Definition: command.hpp:994
A combination of the position, velocity, and effort loops with P, V, and T feeding to PWM; documented...
Definition: command.hpp:40
Actuator-specific commands.
Definition: command.hpp:915
Io & io()
Any available digital or analog output pins on the device.
Definition: command.hpp:986
Settings & settings()
Module settings that are typically changed at a slower rate.
Definition: command.hpp:990
const StringField & name() const
Sets the name for this module. Name must be null-terminated character string for the name; must be <=...
Definition: command.hpp:892
const FloatField & effortIClamp() const
Maximum allowed value for the output of the integral component of the PID loop; the integrated error ...
Definition: command.hpp:755
FloatField & springConstant()
The spring constant of the module.
Definition: command.hpp:844
const FloatField & positionOutputLowpass() const
A simple lowpass filter applied to the controller output; needs to be between 0 and 1...
Definition: command.hpp:567
A combination of the position, velocity, and effort loops with P and V feeding to T; documented on do...
Definition: command.hpp:38
const FloatField & effortMinTarget() const
Minimum allowed value for input to the PID controller.
Definition: command.hpp:763
const FloatField & positionIClamp() const
Maximum allowed value for the output of the integral component of the PID loop; the integrated error ...
Definition: command.hpp:539
A message field for interfacing with a bank of I/O pins.
Definition: command.hpp:324
const Actuator & actuator() const
Actuator-specific commands.
Definition: command.hpp:996
Actuator & actuator()
Actuator-specific settings, such as controller gains.
Definition: command.hpp:883
FloatField & effortFeedForward()
Feed forward term for effort (this term is multiplied by the target and added to the output)...
Definition: command.hpp:745
StringField & family()
Sets the family for this module. Name must be null-terminated character string for the family; must b...
Definition: command.hpp:894
Command objects have various fields that can be set; when sent to the module, these fields control in...
Definition: command.hpp:29
virtual ~Command() noexcept
Cleans up command object as necessary.
Definition: command.cpp:322
IoBank & a()
I/O pin bank a (pins 1-8 available)
Definition: command.hpp:439
A message field representable by a std::string.
Definition: command.hpp:214
FloatField & effortPunch()
Constant offset to the effort PID output outside of the deadzone; it is added when the error is posit...
Definition: command.hpp:757
FloatField & effortDeadZone()
Error values within +/- this value from zero are treated as zero (in terms of computed proportional o...
Definition: command.hpp:749
const FloatField & effortFeedForward() const
Feed forward term for effort (this term is multiplied by the target and added to the output)...
Definition: command.hpp:747
const FloatField & effortPunch() const
Constant offset to the effort PID output outside of the deadzone; it is added when the error is posit...
Definition: command.hpp:759
A message field for interfacing with an LED.
Definition: command.hpp:380
FloatField & positionMaxOutput()
Output from the PID controller is limited to a maximum of this value.
Definition: command.hpp:561
const FloatField & effortKd() const
Derivative PID gain for effort.
Definition: command.hpp:743
BoolField & effortDOnError()
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.
Definition: command.hpp:785
bool has() const
True if (and only if) the field has a value.
Definition: command.hpp:307
#define HEBI_DISABLE_COPY_MOVE(Class)
Definition: util.hpp:7
FloatField & positionPunch()
Constant offset to the position PID output outside of the deadzone; it is added when the error is pos...
Definition: command.hpp:541
const FloatField & effortTargetLowpass() const
A simple lowpass filter applied to the target set point; needs to be between 0 and 1...
Definition: command.hpp:771
const BoolField & positionDOnError() const
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.
Definition: command.hpp:571
FloatField & velocityDeadZone()
Error values within +/- this value from zero are treated as zero (in terms of computed proportional o...
Definition: command.hpp:641
FloatField & velocityPunch()
Constant offset to the velocity PID output outside of the deadzone; it is added when the error is pos...
Definition: command.hpp:649
IoBank & c()
I/O pin bank c (pins 1-8 available)
Definition: command.hpp:447
FloatField & velocityKp()
Proportional PID gain for velocity.
Definition: command.hpp:625
HighResAngleField & position()
Position of the module output (post-spring), in radians.
Definition: command.hpp:942
FloatField & positionDeadZone()
Error values within +/- this value from zero are treated as zero (in terms of computed proportional o...
Definition: command.hpp:533
VelocityGains & velocityGains()
Controller gains for the velocity PID loop.
Definition: command.hpp:833
PositionGains & positionGains()
Controller gains for the position PID loop.
Definition: command.hpp:829
const VelocityGains & velocityGains() const
Controller gains for the velocity PID loop.
Definition: command.hpp:835
Actuator-specific settings, such as controller gains.
Definition: command.hpp:482
const Io & io() const
Any available digital or analog output pins on the device.
Definition: command.hpp:988
FloatField & effortMinTarget()
Minimum allowed value for input to the PID controller.
Definition: command.hpp:761
FloatField & effortTargetLowpass()
A simple lowpass filter applied to the target set point; needs to be between 0 and 1...
Definition: command.hpp:769
const FloatField & positionMinOutput() const
Output from the PID controller is limited to a minimum of this value.
Definition: command.hpp:559
FloatField & velocityMinTarget()
Minimum allowed value for input to the PID controller.
Definition: command.hpp:653
Module settings that are typically changed at a slower rate.
Definition: command.hpp:477
const FloatField & positionTargetLowpass() const
A simple lowpass filter applied to the target set point; needs to be between 0 and 1...
Definition: command.hpp:555
FloatField & positionMaxTarget()
Maximum allowed value for input to the PID controller.
Definition: command.hpp:549
A two-state message field (either set/true or cleared/false).
Definition: command.hpp:251
const FloatField & positionKi() const
Integral PID gain for position.
Definition: command.hpp:523
const FloatField & velocityFeedForward() const
Feed forward term for velocity (this term is multiplied by the target and added to the output)...
Definition: command.hpp:639
const FloatField & velocityMaxOutput() const
Output from the PID controller is limited to a maximum of this value.
Definition: command.hpp:671
const IoBank & e() const
I/O pin bank e (pins 1-8 available)
Definition: command.hpp:457
const FloatField & effortOutputLowpass() const
A simple lowpass filter applied to the controller output; needs to be between 0 and 1...
Definition: command.hpp:783
IoBank & b()
I/O pin bank b (pins 1-8 available)
Definition: command.hpp:443
BoolField & positionDOnError()
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.
Definition: command.hpp:569
A message field containing a numbered set of single-precision floating point values.
Definition: command.hpp:151
const Settings & settings() const
Module settings that are typically changed at a slower rate.
Definition: command.hpp:992
A combination of the position, velocity, and effort loops with P feeding to T and V feeding to PWM; d...
Definition: command.hpp:42
FloatField & effortOutputLowpass()
A simple lowpass filter applied to the controller output; needs to be between 0 and 1...
Definition: command.hpp:781
const FloatField & velocityMinTarget() const
Minimum allowed value for input to the PID controller.
Definition: command.hpp:655
const IoBank & c() const
I/O pin bank c (pins 1-8 available)
Definition: command.hpp:449
FloatField & positionMinTarget()
Minimum allowed value for input to the PID controller.
Definition: command.hpp:545
const IoBank & b() const
I/O pin bank b (pins 1-8 available)
Definition: command.hpp:445
const FloatField & positionFeedForward() const
Feed forward term for position (this term is multiplied by the target and added to the output)...
Definition: command.hpp:531
FloatField & positionFeedForward()
Feed forward term for position (this term is multiplied by the target and added to the output)...
Definition: command.hpp:529
const FloatField & positionKd() const
Derivative PID gain for position.
Definition: command.hpp:527
const FloatField & velocityMaxTarget() const
Maximum allowed value for input to the PID controller.
Definition: command.hpp:659
FloatField & velocityTargetLowpass()
A simple lowpass filter applied to the target set point; needs to be between 0 and 1...
Definition: command.hpp:661
FloatField & positionIClamp()
Maximum allowed value for the output of the integral component of the PID loop; the integrated error ...
Definition: command.hpp:537
const FloatField & velocityKp() const
Proportional PID gain for velocity.
Definition: command.hpp:627
EnumField< ControlStrategy > & controlStrategy()
How the position, velocity, and effort PID loops are connected in order to control motor PWM...
Definition: command.hpp:848
FloatField & velocityOutputLowpass()
A simple lowpass filter applied to the controller output; needs to be between 0 and 1...
Definition: command.hpp:673
A direct PWM value (-1 to 1) can be sent to the motor (subject to onboard safety limiting).
Definition: command.hpp:36
FloatField & velocity()
Velocity of the module output (post-spring), in radians/second.
Definition: command.hpp:934
const BoolField & effortDOnError() const
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.
Definition: command.hpp:787
Any available digital or analog output pins on the device.
Definition: command.hpp:417
FloatField & velocityIClamp()
Maximum allowed value for the output of the integral component of the PID loop; the integrated error ...
Definition: command.hpp:645
const FloatField & velocityMinOutput() const
Output from the PID controller is limited to a minimum of this value.
Definition: command.hpp:667
EffortGains & effortGains()
Controller gains for the effort PID loop.
Definition: command.hpp:837
const IoBank & d() const
I/O pin bank d (pins 1-8 available)
Definition: command.hpp:453
ControlStrategy
Definition: command.hpp:32
FloatField & effortKi()
Integral PID gain for effort.
Definition: command.hpp:737
void clear()
Removes any currently set value for this field.
Definition: command.hpp:314
FloatField & positionKd()
Derivative PID gain for position.
Definition: command.hpp:525
IoBank & e()
I/O pin bank e (pins 1-8 available)
Definition: command.hpp:455
FloatField & effortKp()
Proportional PID gain for effort.
Definition: command.hpp:733
const FloatField & velocityTargetLowpass() const
A simple lowpass filter applied to the target set point; needs to be between 0 and 1...
Definition: command.hpp:663
bool has() const
True if (and only if) the field has a value.
Definition: command.cpp:20
FloatField & velocityKd()
Derivative PID gain for velocity.
Definition: command.hpp:633
FloatField & positionTargetLowpass()
A simple lowpass filter applied to the target set point; needs to be between 0 and 1...
Definition: command.hpp:553
Command(Command &&other)
Move constructor (necessary for containment in STL template classes)
Definition: command.cpp:313
A message field for an angle measurement which does not lose precision at very high angles...
Definition: command.hpp:88
const FloatField & positionKp() const
Proportional PID gain for position.
Definition: command.hpp:519
const FloatField & positionDeadZone() const
Error values within +/- this value from zero are treated as zero (in terms of computed proportional o...
Definition: command.hpp:535
const FloatField & positionMaxTarget() const
Maximum allowed value for input to the PID controller.
Definition: command.hpp:551
const FloatField & positionPunch() const
Constant offset to the position PID output outside of the deadzone; it is added when the error is pos...
Definition: command.hpp:543
FloatField & velocityFeedForward()
Feed forward term for velocity (this term is multiplied by the target and added to the output)...
Definition: command.hpp:637
const FloatField & velocityKi() const
Integral PID gain for velocity.
Definition: command.hpp:631
FloatField & effortKd()
Derivative PID gain for effort.
Definition: command.hpp:741
const FloatField & effortKi() const
Integral PID gain for effort.
Definition: command.hpp:739
const FloatField & velocityDeadZone() const
Error values within +/- this value from zero are treated as zero (in terms of computed proportional o...
Definition: command.hpp:643
const FloatField & effortMaxTarget() const
Maximum allowed value for input to the PID controller.
Definition: command.hpp:767
FloatField & velocityKi()
Integral PID gain for velocity.
Definition: command.hpp:629
FloatField & positionMinOutput()
Output from the PID controller is limited to a minimum of this value.
Definition: command.hpp:557
FloatField & effortIClamp()
Maximum allowed value for the output of the integral component of the PID loop; the integrated error ...
Definition: command.hpp:753
const FloatField & effortDeadZone() const
Error values within +/- this value from zero are treated as zero (in terms of computed proportional o...
Definition: command.hpp:751
FloatField & effortMinOutput()
Output from the PID controller is limited to a minimum of this value.
Definition: command.hpp:773
const PositionGains & positionGains() const
Controller gains for the position PID loop.
Definition: command.hpp:831
StringField & name()
Sets the name for this module. Name must be null-terminated character string for the name; must be <=...
Definition: command.hpp:890
const FloatField & effortMaxOutput() const
Output from the PID controller is limited to a maximum of this value.
Definition: command.hpp:779
FloatField & positionOutputLowpass()
A simple lowpass filter applied to the controller output; needs to be between 0 and 1...
Definition: command.hpp:565
FloatField & velocityMaxTarget()
Maximum allowed value for input to the PID controller.
Definition: command.hpp:657
FloatField & effortMaxOutput()
Output from the PID controller is limited to a maximum of this value.
Definition: command.hpp:777
const IoBank & f() const
I/O pin bank f (pins 1-8 available)
Definition: command.hpp:461
const FlagField & saveCurrentSettings() const
Indicates if the module should save the current values of all of its settings.
Definition: command.hpp:900
Controller gains for the position PID loop.
Definition: command.hpp:487
const IoBank & a() const
I/O pin bank a (pins 1-8 available)
Definition: command.hpp:441
const EnumField< ControlStrategy > & controlStrategy() const
How the position, velocity, and effort PID loops are connected in order to control motor PWM...
Definition: command.hpp:850
const Actuator & actuator() const
Actuator-specific settings, such as controller gains.
Definition: command.hpp:885
The motor is not given power (equivalent to a 0 PWM value)
Definition: command.hpp:34
Structure to describe an RGB color.
Definition: color.hpp:8
const FloatField & effortMinOutput() const
Output from the PID controller is limited to a minimum of this value.
Definition: command.hpp:775
const StringField & family() const
Sets the family for this module. Name must be null-terminated character string for the family; must b...
Definition: command.hpp:896
BoolField & velocityDOnError()
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.
Definition: command.hpp:677
const FloatField & velocityPunch() const
Constant offset to the velocity PID output outside of the deadzone; it is added when the error is pos...
Definition: command.hpp:651
FloatField & effortMaxTarget()
Maximum allowed value for input to the PID controller.
Definition: command.hpp:765
const FloatField & positionMaxOutput() const
Output from the PID controller is limited to a maximum of this value.
Definition: command.hpp:563
A message field representable by a single-precision floating point value.
Definition: command.hpp:48
const FloatField & effortKp() const
Proportional PID gain for effort.
Definition: command.hpp:735
const HighResAngleField & position() const
Position of the module output (post-spring), in radians.
Definition: command.hpp:944
FloatField & positionKp()
Proportional PID gain for position.
Definition: command.hpp:517
const FloatField & positionMinTarget() const
Minimum allowed value for input to the PID controller.
Definition: command.hpp:547
Controller gains for the effort PID loop.
Definition: command.hpp:703
const EffortGains & effortGains() const
Controller gains for the effort PID loop.
Definition: command.hpp:839
A message field representable by an enum of a given type.
Definition: command.hpp:286
FloatField & effort()
Effort at the module output; units vary (e.g., N * m for rotational joints and N for linear stages)...
Definition: command.hpp:938
LedField & led()
The module's LED.
Definition: command.cpp:342