Pre-plan auto splines
(a) Make it so that the drivetrain automatically evicts old splines
(b) Set up auto to preplan splines at construction and after every auto.
Change-Id: I96ddb3a38947da02ad9ddc6fe933b7e85727dc18
diff --git a/frc971/autonomous/base_autonomous_actor.h b/frc971/autonomous/base_autonomous_actor.h
index 2478fda..92fc46c 100644
--- a/frc971/autonomous/base_autonomous_actor.h
+++ b/frc971/autonomous/base_autonomous_actor.h
@@ -43,15 +43,23 @@
bool SplineDistanceRemaining(double distance);
bool WaitForSplineDistanceRemaining(double distance);
+ // Returns [x, y, theta] position of the start.
+ const Eigen::Vector3d &starting_position() const { return spline_start_; }
+
private:
friend BaseAutonomousActor;
SplineHandle(int32_t spline_handle,
- BaseAutonomousActor *base_autonomous_actor)
+ BaseAutonomousActor *base_autonomous_actor,
+ const Eigen::Vector3d &start)
: spline_handle_(spline_handle),
- base_autonomous_actor_(base_autonomous_actor) {}
+ base_autonomous_actor_(base_autonomous_actor),
+ spline_start_(start) {}
int32_t spline_handle_;
BaseAutonomousActor *base_autonomous_actor_;
+
+ // Starting [x, y, theta] position of the spline.
+ Eigen::Vector3d spline_start_;
};
// Represents the direction that we will drive along a spline.