RIT VEXU Core API
Loading...
Searching...
No Matches
arm_feedforward.h
1#pragma once
2
3#include "math/controls/feedforward.h"
4#include "math/geometry/rotation2d.h"
5
6namespace core {
7
28 public:
37 ArmFeedforward(double kS, double kV, double kA, double kG)
38 : kG_(kG), Feedforward(kS, kV, kA) {}
39 ArmFeedforward(Feedforward::feedforward_config_t config)
40 : kG_(config.kG), Feedforward(config.kS, config.kV, config.kA) {}
41
42 ArmFeedforward(const ArmFeedforward&) = default;
43 ArmFeedforward(ArmFeedforward&&) = default;
44 ArmFeedforward& operator=(const ArmFeedforward&) = default;
45 ArmFeedforward& operator=(ArmFeedforward&&) = default;
46
55 double calculate(double v, double a, Rotation2d angle) const {
56 double out = Feedforward::calculate(v, a);
57 return out + kG_ * angle.f_cos();
58 }
59
60 double kG() const { return kG_; }
61 void set_kG(double kG) { kG_ = kG; }
62
63 private:
64 double kG_;
65};
66
67} // namespace core
Definition rotation2d.h:25
double f_cos() const
Definition rotation2d.cpp:87
ArmFeedforward(double kS, double kV, double kA, double kG)
Definition arm_feedforward.h:37
double calculate(double v, double a, Rotation2d angle) const
Definition arm_feedforward.h:55
Definition math/controls/feedforward.h:36
double calculate(double v, double a) const
Definition math/controls/feedforward.h:67
Feedforward(double kS, double kV, double kA)
Definition math/controls/feedforward.h:51