Horizontal can pickup doesn't stick anymore.
Change-Id: I325995b6c200c58ff201017bc152e5c77048f471
diff --git a/frc971/actors/horizontal_can_pickup_action.q b/frc971/actors/horizontal_can_pickup_action.q
index f5ebcfd..c1a1c55 100644
--- a/frc971/actors/horizontal_can_pickup_action.q
+++ b/frc971/actors/horizontal_can_pickup_action.q
@@ -10,6 +10,10 @@
// Angle to move the claw to when placing the base of the can on the robot.
double pickup_angle;
+ // Time and power to spit the can out before lifting.
+ double spit_time;
+ double spit_power;
+
// Time and power to pull the can in when lifted.
double suck_time;
double suck_power;
diff --git a/frc971/actors/horizontal_can_pickup_actor.cc b/frc971/actors/horizontal_can_pickup_actor.cc
index 6f77261..ab2c8cf 100644
--- a/frc971/actors/horizontal_can_pickup_actor.cc
+++ b/frc971/actors/horizontal_can_pickup_actor.cc
@@ -82,6 +82,14 @@
return true;
}
+ control_loops::claw_queue.status.FetchAnother();
+
+ MoveArm(control_loops::claw_queue.status->angle, params.spit_power);
+
+ if (!WaitOrCancel(aos::time::Time::InSeconds(params.spit_time))) {
+ return true;
+ }
+
MoveArm(params.pickup_angle, 0.0, kClawInitialLift);
if (!WaitUntilNear(params.pickup_angle)) {
diff --git a/frc971/joystick_reader.cc b/frc971/joystick_reader.cc
index 70d30ea..e85240f 100644
--- a/frc971/joystick_reader.cc
+++ b/frc971/joystick_reader.cc
@@ -227,7 +227,10 @@
if (data.PosEdge(kElevatorCanUp)) {
actors::HorizontalCanPickupParams params;
params.elevator_height = 0.3;
- params.pickup_angle = 0.60 + kHorizontalCanClawAngle;
+ params.pickup_angle = 0.80 + kHorizontalCanClawAngle;
+ params.spit_time = 0.01;
+ params.spit_power = -8.0;
+
params.suck_time = 0.10;
params.suck_power = 10.0;