Removed unnecesary claw actor.
Change-Id: I588b57d9ac1c950602fad7ef5a30ae2a89d5f5af
diff --git a/frc971/actors/actors.gyp b/frc971/actors/actors.gyp
index e8e392a..b2f93a5 100644
--- a/frc971/actors/actors.gyp
+++ b/frc971/actors/actors.gyp
@@ -5,7 +5,6 @@
'type': 'none',
'dependencies': [
'drivetrain_action',
- 'claw_action',
'score_action',
'score_action_test',
'pickup_action',
@@ -16,7 +15,6 @@
'can_pickup_action',
'horizontal_can_pickup_action',
'lift_action',
- 'claw_action_test',
'stack_action_test',
],
},
@@ -589,77 +587,5 @@
'lift_action_lib',
],
},
- {
- 'target_name': 'claw_action_queue',
- 'type': 'static_library',
- 'sources': ['claw_action.q'],
- 'variables': {
- 'header_path': 'frc971/actors',
- },
- 'dependencies': [
- '<(AOS)/common/actions/actions.gyp:action_queue',
- ],
- 'export_dependent_settings': [
- '<(AOS)/common/actions/actions.gyp:action_queue',
- ],
- 'includes': ['../../aos/build/queues.gypi'],
- },
- {
- 'target_name': 'claw_action_lib',
- 'type': 'static_library',
- 'sources': [
- 'claw_actor.cc',
- ],
- 'dependencies': [
- 'claw_action_queue',
- '<(DEPTH)/frc971/frc971.gyp:constants',
- '<(AOS)/common/common.gyp:time',
- '<(AOS)/common/controls/controls.gyp:control_loop',
- '<(AOS)/common/util/util.gyp:phased_loop',
- '<(AOS)/build/aos.gyp:logging',
- '<(AOS)/common/actions/actions.gyp:action_lib',
- '<(EXTERNALS):eigen',
- '<(AOS)/common/util/util.gyp:trapezoid_profile',
- '<(DEPTH)/frc971/control_loops/claw/claw.gyp:claw_queue',
- ],
- 'export_dependent_settings': [
- '<(EXTERNALS):eigen',
- '<(AOS)/common/actions/actions.gyp:action_lib',
- 'claw_action_queue',
- ],
- },
- {
- 'target_name': 'claw_action',
- 'type': 'executable',
- 'sources': [
- 'claw_actor_main.cc',
- ],
- 'dependencies': [
- '<(AOS)/linux_code/linux_code.gyp:init',
- '<(AOS)/common/actions/actions.gyp:action_lib',
- 'claw_action_queue',
- 'claw_action_lib',
- ],
- },
- {
- 'target_name': 'claw_action_test',
- 'type': 'executable',
- 'sources': [
- 'claw_actor_test.cc',
- ],
- 'dependencies': [
- '<(EXTERNALS):gtest',
- '<(AOS)/common/controls/controls.gyp:control_loop',
- '<(AOS)/common/common.gyp:queue_testutils',
- '<(AOS)/common/logging/logging.gyp:queue_logging',
- '<(AOS)/common/common.gyp:queues',
- '<(AOS)/common/common.gyp:time',
- '<(AOS)/linux_code/linux_code.gyp:init',
- '<(AOS)/common/actions/actions.gyp:action_lib',
- '<(DEPTH)/frc971/control_loops/claw/claw.gyp:claw_queue',
- 'claw_action_queue',
- 'claw_action_lib',
- ],
- },
],
}
diff --git a/frc971/actors/claw_action.q b/frc971/actors/claw_action.q
deleted file mode 100644
index ce5bee7..0000000
--- a/frc971/actors/claw_action.q
+++ /dev/null
@@ -1,29 +0,0 @@
-package frc971.actors;
-
-import "aos/common/actions/actions.q";
-
-struct ClawParams {
- // Goal angle.
- double angle;
- // Maximum velocity during the motion.
- double max_velocity;
- // Maximum acceleration during the motion.
- double max_acceleration;
- // Positive is sucking in, negative is spitting out.
- double intake_voltage;
- bool rollers_closed;
-};
-
-queue_group ClawActionQueueGroup {
- implements aos.common.actions.ActionQueueGroup;
-
- message Goal {
- uint32_t run;
- ClawParams params;
- };
-
- queue Goal goal;
- queue aos.common.actions.Status status;
-};
-
-queue_group ClawActionQueueGroup claw_action;
diff --git a/frc971/actors/claw_actor.cc b/frc971/actors/claw_actor.cc
deleted file mode 100644
index ab1cffc..0000000
--- a/frc971/actors/claw_actor.cc
+++ /dev/null
@@ -1,102 +0,0 @@
-#include <functional>
-#include <numeric>
-
-#include <Eigen/Dense>
-
-#include "aos/common/commonmath.h"
-#include "aos/common/controls/control_loop.h"
-#include "aos/common/logging/logging.h"
-#include "aos/common/logging/queue_logging.h"
-#include "aos/common/actions/actor.h"
-#include "aos/common/util/phased_loop.h"
-#include "aos/common/util/trapezoid_profile.h"
-
-#include "frc971/constants.h"
-#include "frc971/actors/claw_actor.h"
-#include "frc971/control_loops/claw/claw.q.h"
-
-namespace frc971 {
-namespace actors {
-namespace {
-
-// Defines finished.
-constexpr double kAngleEpsilon = 0.07;
-
-} // namespace
-
-ClawActor::ClawActor(actors::ClawActionQueueGroup *s)
- : aos::common::actions::ActorBase<actors::ClawActionQueueGroup>(s),
- profile_(::aos::controls::kLoopFrequency) {}
-
-bool ClawActor::Iterate(const ClawParams ¶ms) {
- const double goal_angle = params.angle;
-
- ::Eigen::Matrix<double, 2, 1> goal_state =
- profile_.Update(goal_angle, 0.0);
-
- auto message = control_loops::claw_queue.goal.MakeMessage();
- message->angle = goal_state(0, 0);
- message->angular_velocity = goal_state(1, 0);
- message->intake = params.intake_voltage;
- message->rollers_closed = params.rollers_closed;
-
- LOG_STRUCT(DEBUG, "Sending claw goal", *message);
- message.Send();
-
- control_loops::claw_queue.status.FetchLatest();
- if (!control_loops::claw_queue.status.get()) {
- return false;
- }
- const double current_angle = control_loops::claw_queue.status->angle;
- LOG_STRUCT(DEBUG, "Got claw status", *control_loops::claw_queue.status);
-
- if (::std::abs(goal_angle - current_angle) < kAngleEpsilon &&
- ::std::abs(goal_angle - goal_state(0, 0)) < 0.0000001) {
- return true;
- }
-
- return false;
-}
-
-bool ClawActor::RunAction(const ClawParams ¶ms) {
- control_loops::claw_queue.status.FetchLatest();
- if (control_loops::claw_queue.status.get()) {
- if (!control_loops::claw_queue.status->zeroed) {
- LOG(ERROR, "We are not running actions on an unzeroed claw!\n");
- return false;
- }
- Eigen::Matrix<double, 2, 1> current;
- current.setZero();
- current << control_loops::claw_queue.status->goal_angle, 0.0;
-
- // Re-initialize the profile to start where we currently are.
- profile_.MoveCurrentState(current);
-
- // Update the parameters.
- profile_.set_maximum_velocity(params.max_velocity);
- profile_.set_maximum_acceleration(params.max_acceleration);
-
- } else {
- LOG(ERROR, "No claw status!\n");
- return false;
- }
-
- while (!Iterate(params)) {
- // wait until next Xms tick
- ::aos::time::PhasedLoopXMS(::aos::controls::kLoopFrequency.ToMSec(), 2500);
-
- // check if we should stop before we send
- if (ShouldCancel()) return true;
- }
-
- LOG(INFO, "Claw done moving.\n");
- return true;
-}
-
-::std::unique_ptr<ClawAction> MakeClawAction(const ClawParams &p) {
- return ::std::unique_ptr<ClawAction>(
- new ClawAction(&::frc971::actors::claw_action, p));
-}
-
-} // namespace actors
-} // namespace frc971
diff --git a/frc971/actors/claw_actor.h b/frc971/actors/claw_actor.h
deleted file mode 100644
index bc4888f..0000000
--- a/frc971/actors/claw_actor.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef FRC971_ACTIONS_CLAW_ACTION_H_
-#define FRC971_ACTIONS_CLAW_ACTION_H_
-
-#include <memory>
-
-#include "frc971/actors/claw_action.q.h"
-#include "aos/common/actions/actor.h"
-#include "aos/common/actions/actions.h"
-#include "aos/common/util/trapezoid_profile.h"
-
-namespace frc971 {
-namespace actors {
-namespace testing {
-class ClawActorTest_ValidGoals_Test;
-}
-
-class ClawActor : public aos::common::actions::ActorBase<ClawActionQueueGroup> {
- public:
- explicit ClawActor(ClawActionQueueGroup *s);
- bool RunAction(const ClawParams ¶ms) override;
-
- private:
- friend class testing::ClawActorTest_ValidGoals_Test;
-
- // Returns true if it's reached its ultimate goal, false otherwise.
- bool Iterate(const ClawParams ¶ms);
-
- ::aos::util::TrapezoidProfile profile_;
-};
-
-typedef aos::common::actions::TypedAction<ClawActionQueueGroup> ClawAction;
-
-// Makes a new FridgeProfileActor action.
-::std::unique_ptr<ClawAction> MakeClawAction(const ClawParams &claw_params);
-
-} // namespace actors
-} // namespace frc971
-
-#endif
diff --git a/frc971/actors/claw_actor_main.cc b/frc971/actors/claw_actor_main.cc
deleted file mode 100644
index d0cd0d5..0000000
--- a/frc971/actors/claw_actor_main.cc
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <stdio.h>
-
-#include "aos/linux_code/init.h"
-#include "aos/common/logging/logging.h"
-#include "frc971/actors/claw_action.q.h"
-#include "frc971/actors/claw_actor.h"
-
-using ::aos::time::Time;
-
-int main(int /*argc*/, char * /*argv*/[]) {
- ::aos::Init();
-
- frc971::actors::ClawActor claw(
- &::frc971::actors::claw_action);
- claw.Run();
-
- ::aos::Cleanup();
- return 0;
-}
diff --git a/frc971/actors/claw_actor_test.cc b/frc971/actors/claw_actor_test.cc
deleted file mode 100644
index 2fa972c..0000000
--- a/frc971/actors/claw_actor_test.cc
+++ /dev/null
@@ -1,67 +0,0 @@
-#include <unistd.h>
-
-#include <memory>
-
-#include "gtest/gtest.h"
-#include "aos/common/controls/control_loop.h"
-#include "aos/common/queue.h"
-#include "aos/common/queue_testutils.h"
-#include "aos/common/actions/actor.h"
-#include "frc971/actors/claw_action.q.h"
-#include "frc971/actors/claw_actor.h"
-#include "frc971/control_loops/claw/claw.q.h"
-
-using ::aos::time::Time;
-
-namespace frc971 {
-namespace actors {
-namespace testing {
-
-class ClawActorTest : public ::testing::Test {
- protected:
- ClawActorTest() {
- frc971::actors::claw_action.goal.Clear();
- frc971::actors::claw_action.status.Clear();
- control_loops::claw_queue.status.Clear();
- control_loops::claw_queue.goal.Clear();
- }
-
- virtual ~ClawActorTest() {
- frc971::actors::claw_action.goal.Clear();
- frc971::actors::claw_action.status.Clear();
- control_loops::claw_queue.status.Clear();
- control_loops::claw_queue.goal.Clear();
- }
-
- // Bring up and down Core.
- ::aos::common::testing::GlobalCoreInstance my_core;
-};
-
-// Tests that it runs normally and exits when it should.
-TEST_F(ClawActorTest, BasicTest) {
- ClawActor claw(&frc971::actors::claw_action);
-
- // Make some reasonable parameters.
- ClawParams params;
- params.angle = 0.5;
- params.max_velocity = 0.5;
- params.max_acceleration = 5.0;
-
- // Fake the status so that it thinks we're already there.
- control_loops::claw_queue.status.MakeWithBuilder()
- .angle(0.5)
- .goal_angle(0.5)
- .zeroed(true)
- .Send();
-
- // Now we run it and it should exit immediately.
- EXPECT_TRUE(claw.RunAction(params));
-
- // It shouldn't have sent us anywhere.
- ASSERT_TRUE(control_loops::claw_queue.goal.FetchLatest());
- EXPECT_EQ(params.angle, control_loops::claw_queue.goal->angle);
-}
-
-} // namespace testing.
-} // namespace actors.
-} // namespace frc971.
diff --git a/frc971/prime/start_list.txt b/frc971/prime/start_list.txt
index d4c6cdc..b526057 100644
--- a/frc971/prime/start_list.txt
+++ b/frc971/prime/start_list.txt
@@ -1,12 +1,13 @@
-binary_log_writer
-wpilib_interface
+can_pickup_action
joystick_reader
-drivetrain
-auto
+pickup_action
+stack_action
+wpilib_interface
+binary_log_writer
claw
fridge
-drivetrain_action
-score_action
-claw_action
-stack_action
-intake_action
+horizontal_can_pickup_action
+lift_action
+stack_and_lift_action
+stack_and_hold_action
+held_to_lift_action