7 template<
typename MessageRefType,
typename FloatFieldType,
typename BoolFieldType,
typename FloatEnumType,
11 #ifndef DOXYGEN_OMIT_INTERNAL 12 Gains(MessageRefType&
internal, FloatEnumType kp_gain, BoolEnumType d_on_error_gain)
13 : kp_(
internal, kp_gain),
14 ki_(
internal, static_cast<FloatEnumType>(kp_gain + 1)),
15 kd_(
internal, static_cast<FloatEnumType>(kp_gain + 2)),
16 feed_forward_(
internal, static_cast<FloatEnumType>(kp_gain + 3)),
17 dead_zone_(
internal, static_cast<FloatEnumType>(kp_gain + 4)),
18 i_clamp_(
internal, static_cast<FloatEnumType>(kp_gain + 5)),
19 punch_(
internal, static_cast<FloatEnumType>(kp_gain + 6)),
20 min_target_(
internal, static_cast<FloatEnumType>(kp_gain + 7)),
21 max_target_(
internal, static_cast<FloatEnumType>(kp_gain + 8)),
22 target_lowpass_(
internal, static_cast<FloatEnumType>(kp_gain + 9)),
23 min_output_(
internal, static_cast<FloatEnumType>(kp_gain + 10)),
24 max_output_(
internal, static_cast<FloatEnumType>(kp_gain + 11)),
25 output_lowpass_(
internal, static_cast<FloatEnumType>(kp_gain + 12)),
26 d_on_error_(
internal, d_on_error_gain) {}
27 Gains(
const MessageRefType&
internal, FloatEnumType kp_gain, BoolEnumType d_on_error_gain)
28 : kp_(
internal, kp_gain),
29 ki_(
internal, static_cast<FloatEnumType>(kp_gain + 1)),
30 kd_(
internal, static_cast<FloatEnumType>(kp_gain + 2)),
31 feed_forward_(
internal, static_cast<FloatEnumType>(kp_gain + 3)),
32 dead_zone_(
internal, static_cast<FloatEnumType>(kp_gain + 4)),
33 i_clamp_(
internal, static_cast<FloatEnumType>(kp_gain + 5)),
34 punch_(
internal, static_cast<FloatEnumType>(kp_gain + 6)),
35 min_target_(
internal, static_cast<FloatEnumType>(kp_gain + 7)),
36 max_target_(
internal, static_cast<FloatEnumType>(kp_gain + 8)),
37 target_lowpass_(
internal, static_cast<FloatEnumType>(kp_gain + 9)),
38 min_output_(
internal, static_cast<FloatEnumType>(kp_gain + 10)),
39 max_output_(
internal, static_cast<FloatEnumType>(kp_gain + 11)),
40 output_lowpass_(
internal, static_cast<FloatEnumType>(kp_gain + 12)),
41 d_on_error_(
internal, d_on_error_gain) {}
42 #endif // DOXYGEN_OMIT_INTERNAL 50 FloatFieldType&
kP() {
return kp_; }
52 const FloatFieldType&
kP()
const {
return kp_; }
54 FloatFieldType&
kI() {
return ki_; }
56 const FloatFieldType&
kI()
const {
return ki_; }
58 FloatFieldType&
kD() {
return kd_; }
60 const FloatFieldType&
kD()
const {
return kd_; }
64 const FloatFieldType&
feedForward()
const {
return feed_forward_; }
67 FloatFieldType&
deadZone() {
return dead_zone_; }
70 const FloatFieldType&
deadZone()
const {
return dead_zone_; }
73 FloatFieldType&
iClamp() {
return i_clamp_; }
76 const FloatFieldType&
iClamp()
const {
return i_clamp_; }
79 FloatFieldType&
punch() {
return punch_; }
82 const FloatFieldType&
punch()
const {
return punch_; }
86 const FloatFieldType&
minTarget()
const {
return min_target_; }
90 const FloatFieldType&
maxTarget()
const {
return max_target_; }
100 const FloatFieldType&
minOutput()
const {
return min_output_; }
104 const FloatFieldType&
maxOutput()
const {
return max_output_; }
116 const BoolFieldType&
dOnError()
const {
return d_on_error_; }
122 FloatFieldType feed_forward_;
123 FloatFieldType dead_zone_;
124 FloatFieldType i_clamp_;
125 FloatFieldType punch_;
126 FloatFieldType min_target_;
127 FloatFieldType max_target_;
128 FloatFieldType target_lowpass_;
129 FloatFieldType min_output_;
130 FloatFieldType max_output_;
131 FloatFieldType output_lowpass_;
132 BoolFieldType d_on_error_;
FloatFieldType & outputLowpass()
Definition: gains.hpp:107
const FloatFieldType & kP() const
Proportional PID gain.
Definition: gains.hpp:52
FloatFieldType & minOutput()
Output from the PID controller is limited to a minimum of this value.
Definition: gains.hpp:98
FloatFieldType & targetLowpass()
Definition: gains.hpp:93
FloatFieldType & kP()
Proportional PID gain.
Definition: gains.hpp:50
const FloatFieldType & kI() const
Integral PID gain.
Definition: gains.hpp:56
const FloatFieldType & minTarget() const
Minimum allowed value for input to the PID controller.
Definition: gains.hpp:86
const FloatFieldType & minOutput() const
Output from the PID controller is limited to a minimum of this value.
Definition: gains.hpp:100
FloatFieldType & deadZone()
Definition: gains.hpp:67
const FloatFieldType & targetLowpass() const
Definition: gains.hpp:96
FloatFieldType & punch()
Definition: gains.hpp:79
const FloatFieldType & maxOutput() const
Output from the PID controller is limited to a maximum of this value.
Definition: gains.hpp:104
#define HEBI_DISABLE_COPY_MOVE(Class)
Definition: util.hpp:6
BoolFieldType & dOnError()
Definition: gains.hpp:113
const FloatFieldType & punch() const
Definition: gains.hpp:82
const FloatFieldType & maxTarget() const
Maximum allowed value for input to the PID controller.
Definition: gains.hpp:90
FloatFieldType & kD()
Derivative PID gain.
Definition: gains.hpp:58
FloatFieldType & minTarget()
Minimum allowed value for input to the PID controller.
Definition: gains.hpp:84
FloatFieldType & iClamp()
Definition: gains.hpp:73
FloatFieldType & maxTarget()
Maximum allowed value for input to the PID controller.
Definition: gains.hpp:88
FloatFieldType & feedForward()
Feed forward term (this term is multiplied by the target and added to the output).
Definition: gains.hpp:62
FloatFieldType & kI()
Integral PID gain.
Definition: gains.hpp:54
const FloatFieldType & kD() const
Derivative PID gain.
Definition: gains.hpp:60
const BoolFieldType & dOnError() const
Definition: gains.hpp:116
const FloatFieldType & feedForward() const
Feed forward term (this term is multiplied by the target and added to the output).
Definition: gains.hpp:64
const FloatFieldType & outputLowpass() const
Definition: gains.hpp:110
FloatFieldType & maxOutput()
Output from the PID controller is limited to a maximum of this value.
Definition: gains.hpp:102
const FloatFieldType & iClamp() const
Definition: gains.hpp:76
const FloatFieldType & deadZone() const
Definition: gains.hpp:70