Wrote the 5 autonomous modes.
Change-Id: I46d3607811c78be14a3ca5f445899b15b0627fb5
diff --git a/y2016/actors/autonomous_actor.h b/y2016/actors/autonomous_actor.h
index 4668c84..15ed95d 100644
--- a/y2016/actors/autonomous_actor.h
+++ b/y2016/actors/autonomous_actor.h
@@ -7,6 +7,7 @@
#include "aos/common/actions/actions.h"
#include "y2016/actors/autonomous_action.q.h"
+#include "y2016/actors/vision_align_actor.h"
#include "frc971/control_loops/drivetrain/drivetrain.q.h"
#include "frc971/control_loops/drivetrain/drivetrain_config.h"
@@ -33,6 +34,10 @@
// false if it cancels.
bool WaitForDriveDone();
+ // Waits until the profile and distance is within distance and angle of the
+ // goal. Returns true on success, and false when canceled.
+ bool WaitForDriveNear(double distance, double angle);
+
const ::frc971::control_loops::drivetrain::DrivetrainConfig dt_config_;
// Initial drivetrain positions.
@@ -54,9 +59,32 @@
void MoveSuperstructure(double intake, double shoulder, double wrist,
const ProfileParameters intake_params,
const ProfileParameters shoulder_params,
- const ProfileParameters wrist_params, double top_rollers,
- double bottom_rollers);
+ const ProfileParameters wrist_params,
+ bool traverse_up);
void WaitForSuperstructure();
+
+ void BackLongShot();
+ void BackMiddleShot();
+ void TuckArm(bool arm_down, bool traverse_down);
+
+ void DoFullShot(bool center);
+ void LowBarDrive();
+ // Drive to the middle spot over the middle position. Designed for the rock
+ // wall, rough terain, or ramparts.
+ void MiddleDrive();
+
+ void OneFromMiddleDrive(bool left);
+ void TwoFromMiddleDrive();
+
+ double shooter_speed_ = 0.0;
+ void SetShooterSpeed(double speed);
+ void WaitForShooterSpeed();
+ void Shoot();
+
+ void AlignWithVisionGoal();
+ void WaitForAlignedWithVision();
+
+ ::std::unique_ptr<actors::VisionAlignAction> vision_action_;
};
typedef ::aos::common::actions::TypedAction<AutonomousActionQueueGroup>