Difference between revisions of "DEWBOT IX Control"

From DEW Robotics
Jump to: navigation, search
(2013 Control System: GitHub repository URL)
 
(14 intermediate revisions by 4 users not shown)
Line 6: Line 6:
  
 
= 2013 Control System =
 
= 2013 Control System =
 +
 +
[http://github.com/FRC1640/2013-Competition-Season-Code Competition Season Code]
 +
 +
== Punchlist for February 19 - February 27 ==
 +
 +
# Caterpillar
 +
## Debug compressor code issues
 +
## Confirm timing of engaging sequence for front leg
 +
## Confirm sequence WITHOUT DRIVE MOTOR: front prox, front LS, mid prox, mid LS, back LS
 +
## Confirm sequence WITH DRIVE MOTOR, preferably on pyramid with safety rope
 +
## Confirm beginning and ending of climb sequence; modify code if needed
 +
## Test entire climbing procedure on pyramid with safety rope
 +
# Shooter
 +
## Confirm shooting sequence, including timing
 +
## Confirm elevation control
 +
## Test shooting
 +
# Arm
 +
## Gather angle data for docking positions
 +
## Implement PID control of motor
 +
## Test
 +
# Targeting
 +
## Test on driver station with shooter for accuracy
 +
# Dashboard and User Interface
 +
## Gather controls needed on dashboard
 +
## Build custom dashboard
 +
## Confirm UI for driver and operator
 +
# Autonomous
 +
## Use dashboard control for switches
 +
## Implement primitives
 +
## Test
 +
# Integration
 +
## Build entire robot project
 +
## Test
 +
 
== Modules ==
 
== Modules ==
 
In Week 2, we brainstormed the software module breakdown:<br/>
 
In Week 2, we brainstormed the software module breakdown:<br/>
Line 21: Line 55:
 
* Feeder
 
* Feeder
 
* Compressor
 
* Compressor
 +
 +
I/O
 +
* [[file:2013-IO.xls | 2013 Inputs and Outputs]] (Excel) - includes solenoids, digital in, analog in, spikes, motors
  
 
== Caterpillar ==
 
== Caterpillar ==
{| border="1"
+
=== I/O ===
! Subsytem
+
* Front Leg
! Name
+
** Sensor indicates corner proximity
! Type
+
** LS indicates down
! Qty
+
** Solenoid Claw grab/release
! Num I/O
+
** Solenoid Foot down/up (dual acting)
! Note
+
* Middle Leg
|-
+
** Sensor indicates corner proximity
|Caterpillar Front Leg  
+
** LS indicates down
|Foot
+
** Solenoid Claw grab/release
| Solenoid, Double Acting
+
* Back Leg
|1
+
** LS indicates down
|2
+
** Solenoid Claw grab/release
| Up/Down, default down
+
* Skid Extender
|-
+
** Solenoid Extend/Retract (dual acting)
|Caterpillar Back Leg
 
|Foot
 
| Spring
 
|2
 
|2
 
|default down
 
|-
 
|Caterpillar Leg
 
| Claw
 
| Solenoid, Single Acting 
 
|3
 
|3
 
| Grab/Release, default Grab
 
|-
 
|Caterpillar
 
| Skid Extender  
 
| Solenoid, Single Acting
 
|1
 
|1
 
|Extend/Retract, default Retract
 
|-
 
|Caterpillar
 
| Position Sensor
 
| Limit Switch
 
|4
 
|4
 
| Placed before each leg assembly, and one behind the rear leg assembly
 
|}
 
  
 +
=== Stories ===
 
User story: driving up the pole
 
User story: driving up the pole
* When the robot is turned on, the foot is down and the claw is Grab.
+
* When the robot is turned off, the front foot is wherever it was last and all claws are Grab.  The skid extender is wherever it was last.
 +
* When you turn on the robot, the front foot should be down.  All claws should be released.  Skid extender should be retracted.
 
* Drive up to the pole, using camera to align the pole with the first caterpillar leg.
 
* Drive up to the pole, using camera to align the pole with the first caterpillar leg.
 
* Drive up the pole.
 
* Drive up the pole.
* Engage foot 0.
+
* Grab the pole with the front claw
 
* Press the climb button and hold it.
 
* Press the climb button and hold it.
 
* As long as the climb button is held, the robot will climb until it reaches the top.
 
* As long as the climb button is held, the robot will climb until it reaches the top.
 
* If the driver lets go of the climb button, the robot will stop.
 
* If the driver lets go of the climb button, the robot will stop.
 
* If the operator hits an emergency override button the robot will stop.
 
* If the operator hits an emergency override button the robot will stop.
 +
 +
User story: beginning sequence
 +
* Grab the pole with the front claw (the front foot is already down)
 +
* Start the motor
 +
* after a bit, grab the pole with the second claw
 +
* after a further time, grab the pole with the third claw
 +
 +
User story: ending sequence
 +
* When you detect third horizontal pole, disengage the front leg
 +
* drive for a little bit (until the front hits the top part of the pyramid)
 +
* stop the motor
  
 
User story: manual intervention
 
User story: manual intervention
Line 81: Line 103:
 
* If the robot gets unaligned during the ascent, the driver will be able to control the the skid extender, motor, and three legs.
 
* If the robot gets unaligned during the ascent, the driver will be able to control the the skid extender, motor, and three legs.
 
* We may give the foot and leg control to the drivers during the manual intervention. This will depend on the meetings we have with the drive team.
 
* We may give the foot and leg control to the drivers during the manual intervention. This will depend on the meetings we have with the drive team.
 
 
=== Leg Assembly ===
 
  
 
== Shooter ==
 
== Shooter ==
Line 89: Line 108:
 
=== User Stories ===
 
=== User Stories ===
  
* The motor can be turned on or off, and the velocity of the motor at its shooting speed is always the same.
+
* The motor can be turned on or off by the user, and the velocity of the motor at its shooting speed is always the same.
 
** The motor takes time to reach its correct shooting speed.
 
** The motor takes time to reach its correct shooting speed.
 
** At the moment, no motor reversal is planned.
 
** At the moment, no motor reversal is planned.
Line 96: Line 115:
 
* If you don't keep the trigger pressed, but press it again before the motor speeds up to the correct speed, it will not shoot until the motor speeds up.
 
* If you don't keep the trigger pressed, but press it again before the motor speeds up to the correct speed, it will not shoot until the motor speeds up.
 
* If you set the elevation up or down, the shooter platform's elevation changes to each predetermined height.
 
* If you set the elevation up or down, the shooter platform's elevation changes to each predetermined height.
 +
 +
== Feeder ==
 +
 +
=== I/O ===
 +
 +
* ARM (Motor + Encoder PID controlled)
 +
** Feed position
 +
** Dunk position
 +
** Floor position
 +
 +
* GRIPPER (Solenoid)
 +
** Open/Closed
 +
 +
* FRISBEE DETECTOR (Limit switch)
 +
** True/False
 +
 +
=== User Stories ===
 +
 +
User story: normal feeding
 +
* Go to "feed position"
 +
* Set gripper to "open"
 +
 +
User story: floor pickup
 +
* Operator lowers arm to "floor position"
 +
* Driver scoops the Frisbee
 +
* Operator sets gripper to "closed"
 +
* Operator raises arm to "feed position"
 +
* Operator sets gripper to "open," Frisbee slides into magazine
 +
 +
User story: dunking
 +
* Operator puts arm into "four frisbee feed position," sets gripper to "open"
 +
* Human player loads four Frisbees
 +
* Operator sets gripper to "closed"
 +
* Caterpillar finishes
 +
* Operator sets arm to "dunk position"
 +
* Operator sets gripper to "open"
 +
 +
User story: automatic floor pickup (OPTIONAL - LOW PRIORITY)
 +
* Operator lowers arm to "floor position"
 +
* Gripper automatically opens
 +
* Driver scoops Frisbee into feeder
 +
* Frisbee detector detects Frisbee, gripper automatically closes
 +
* Operator raises arm to "feed position," gripper automatically releases when position is reached
 +
 +
----
 +
[[Category:Robot]][[Category:DEWBOT IX]]

Latest revision as of 20:44, 30 July 2013

The control system is implemented by the Electrical and Programming teams, who are charged with providing motor controllers, sensors, and programming to enable the robot to meet competition goals. Control.jpg

("The Amazing Machine", The Franklin Institute)

2013 Control System

Competition Season Code

Punchlist for February 19 - February 27

  1. Caterpillar
    1. Debug compressor code issues
    2. Confirm timing of engaging sequence for front leg
    3. Confirm sequence WITHOUT DRIVE MOTOR: front prox, front LS, mid prox, mid LS, back LS
    4. Confirm sequence WITH DRIVE MOTOR, preferably on pyramid with safety rope
    5. Confirm beginning and ending of climb sequence; modify code if needed
    6. Test entire climbing procedure on pyramid with safety rope
  2. Shooter
    1. Confirm shooting sequence, including timing
    2. Confirm elevation control
    3. Test shooting
  3. Arm
    1. Gather angle data for docking positions
    2. Implement PID control of motor
    3. Test
  4. Targeting
    1. Test on driver station with shooter for accuracy
  5. Dashboard and User Interface
    1. Gather controls needed on dashboard
    2. Build custom dashboard
    3. Confirm UI for driver and operator
  6. Autonomous
    1. Use dashboard control for switches
    2. Implement primitives
    3. Test
  7. Integration
    1. Build entire robot project
    2. Test

Modules

In Week 2, we brainstormed the software module breakdown:
Module-breakdown.jpg

  • Caterpillar
    • Caterpillar front leg (1)
    • Caterpillar back legs (2)
    • Skid Extender
  • Drive
    • pivot drive (4)
    • Ocelot
  • UI (User Interface)
  • Shooter
  • Feeder
  • Compressor

I/O

Caterpillar

I/O

  • Front Leg
    • Sensor indicates corner proximity
    • LS indicates down
    • Solenoid Claw grab/release
    • Solenoid Foot down/up (dual acting)
  • Middle Leg
    • Sensor indicates corner proximity
    • LS indicates down
    • Solenoid Claw grab/release
  • Back Leg
    • LS indicates down
    • Solenoid Claw grab/release
  • Skid Extender
    • Solenoid Extend/Retract (dual acting)

Stories

User story: driving up the pole

  • When the robot is turned off, the front foot is wherever it was last and all claws are Grab. The skid extender is wherever it was last.
  • When you turn on the robot, the front foot should be down. All claws should be released. Skid extender should be retracted.
  • Drive up to the pole, using camera to align the pole with the first caterpillar leg.
  • Drive up the pole.
  • Grab the pole with the front claw
  • Press the climb button and hold it.
  • As long as the climb button is held, the robot will climb until it reaches the top.
  • If the driver lets go of the climb button, the robot will stop.
  • If the operator hits an emergency override button the robot will stop.

User story: beginning sequence

  • Grab the pole with the front claw (the front foot is already down)
  • Start the motor
  • after a bit, grab the pole with the second claw
  • after a further time, grab the pole with the third claw

User story: ending sequence

  • When you detect third horizontal pole, disengage the front leg
  • drive for a little bit (until the front hits the top part of the pyramid)
  • stop the motor

User story: manual intervention

  • Once the robot gets to the top of the pole, the driver will manually control the robot to get to the optimum scoring position.
  • If the robot gets unaligned during the ascent, the driver will be able to control the the skid extender, motor, and three legs.
  • We may give the foot and leg control to the drivers during the manual intervention. This will depend on the meetings we have with the drive team.

Shooter

User Stories

  • The motor can be turned on or off by the user, and the velocity of the motor at its shooting speed is always the same.
    • The motor takes time to reach its correct shooting speed.
    • At the moment, no motor reversal is planned.
  • Press the trigger, and it shoots the Frisbee.
  • If you keep the trigger pressed, it will push out all of the Frisbees in the magazine as fast as possible (as it takes the motor to speed up again).
  • If you don't keep the trigger pressed, but press it again before the motor speeds up to the correct speed, it will not shoot until the motor speeds up.
  • If you set the elevation up or down, the shooter platform's elevation changes to each predetermined height.

Feeder

I/O

  • ARM (Motor + Encoder PID controlled)
    • Feed position
    • Dunk position
    • Floor position
  • GRIPPER (Solenoid)
    • Open/Closed
  • FRISBEE DETECTOR (Limit switch)
    • True/False

User Stories

User story: normal feeding

  • Go to "feed position"
  • Set gripper to "open"

User story: floor pickup

  • Operator lowers arm to "floor position"
  • Driver scoops the Frisbee
  • Operator sets gripper to "closed"
  • Operator raises arm to "feed position"
  • Operator sets gripper to "open," Frisbee slides into magazine

User story: dunking

  • Operator puts arm into "four frisbee feed position," sets gripper to "open"
  • Human player loads four Frisbees
  • Operator sets gripper to "closed"
  • Caterpillar finishes
  • Operator sets arm to "dunk position"
  • Operator sets gripper to "open"

User story: automatic floor pickup (OPTIONAL - LOW PRIORITY)

  • Operator lowers arm to "floor position"
  • Gripper automatically opens
  • Driver scoops Frisbee into feeder
  • Frisbee detector detects Frisbee, gripper automatically closes
  • Operator raises arm to "feed position," gripper automatically releases when position is reached