Fixed bug where kalman filter was being coppied rather than passed by pointer.
Change-Id: Ib2d0fa0ec2e5a0b19592ca419fec339252a3f698
diff --git a/frc971/control_loops/drivetrain/polydrivetrain.h b/frc971/control_loops/drivetrain/polydrivetrain.h
index c482f77..689e76f 100644
--- a/frc971/control_loops/drivetrain/polydrivetrain.h
+++ b/frc971/control_loops/drivetrain/polydrivetrain.h
@@ -15,7 +15,8 @@
public:
enum Gear { HIGH, LOW, SHIFTING_UP, SHIFTING_DOWN };
- PolyDrivetrain(const DrivetrainConfig &dt_config);
+ PolyDrivetrain(const DrivetrainConfig &dt_config,
+ StateFeedbackLoop<7, 2, 3> *kf);
int controller_index() const { return loop_->controller_index(); }
@@ -39,7 +40,7 @@
void SetPosition(
const ::frc971::control_loops::DrivetrainQueue::Position *position);
- double FilterVelocity(double throttle);
+ double FilterVelocity(double throttle) const;
double MaxVelocity();
@@ -47,8 +48,10 @@
void SendMotors(::frc971::control_loops::DrivetrainQueue::Output *output);
+ void PopulateStatus(::frc971::control_loops::DrivetrainQueue::Status *status);
+
private:
- StateFeedbackLoop<7, 2, 3> kf_;
+ StateFeedbackLoop<7, 2, 3> *kf_;
const ::aos::controls::HPolytope<2> U_Poly_;
@@ -66,6 +69,9 @@
::frc971::control_loops::DrivetrainQueue::Position position_;
int counter_;
DrivetrainConfig dt_config_;
+
+ double goal_left_velocity_ = 0.0;
+ double goal_right_velocity_ = 0.0;
};
} // namespace drivetrain