blob: 79bcce5ab6a2b44260a6e3a6a207251196222b2d [file] [log] [blame]
Stephan Massaltd021f972020-01-05 20:41:23 -08001#ifndef y2020_ACTORS_AUTONOMOUS_ACTOR_H_
2#define y2020_ACTORS_AUTONOMOUS_ACTOR_H_
3
4#include "aos/actions/actions.h"
5#include "aos/actions/actor.h"
6#include "frc971/autonomous/base_autonomous_actor.h"
7#include "frc971/control_loops/control_loops_generated.h"
8#include "frc971/control_loops/drivetrain/drivetrain_config.h"
James Kuszmaul5f6d1d42020-03-01 18:10:07 -08009#include "frc971/control_loops/drivetrain/localizer_generated.h"
Ravago Jonesc2a08022021-02-06 17:40:54 -080010#include "y2020/actors/auto_splines.h"
kyle96c406e2021-02-27 14:07:22 -080011#include "y2020/vision/galactic_search_path_generated.h"
Stephan Massaltd021f972020-01-05 20:41:23 -080012
13namespace y2020 {
14namespace actors {
15
16class AutonomousActor : public ::frc971::autonomous::BaseAutonomousActor {
17 public:
18 explicit AutonomousActor(::aos::EventLoop *event_loop);
19
20 bool RunAction(
21 const ::frc971::autonomous::AutonomousActionParams *params) override;
22
23 private:
24 void Reset();
milind upadhyay47a0ab32020-11-25 19:34:41 -080025 void SplineAuto();
kyle96c406e2021-02-27 14:07:22 -080026 void SendStartingPosition(double x, double y, double theta);
27 void SendStartingPosition(const frc971::MultiSpline *const spline);
28 void GalacticSearch();
Ravago Jones9c326f52021-03-20 15:00:16 -070029 void AutoNavBounce();
30 void AutoNavBarrel();
31 void AutoNavSlalom();
milind upadhyay47a0ab32020-11-25 19:34:41 -080032 bool DriveFwd();
James Kuszmaul5f6d1d42020-03-01 18:10:07 -080033
34 ::aos::Sender<::frc971::control_loops::drivetrain::LocalizerControl>
35 localizer_control_sender_;
James Kuszmaulddd2ba62020-03-08 22:17:13 -070036 aos::Fetcher<aos::JoystickState> joystick_state_fetcher_;
kyle96c406e2021-02-27 14:07:22 -080037 aos::Fetcher<y2020::vision::GalacticSearchPath> path_fetcher_;
James Kuszmaulddd2ba62020-03-08 22:17:13 -070038 aos::Alliance alliance_ = aos::Alliance::kInvalid;
Ravago Jonesc2a08022021-02-06 17:40:54 -080039 AutonomousSplines auto_splines_;
Stephan Massaltd021f972020-01-05 20:41:23 -080040};
41
42} // namespace actors
43} // namespace y2020
44
45#endif // y2020_ACTORS_AUTONOMOUS_ACTOR_H_