Giter Site home page Giter Site logo

frc-2022's Introduction

frc-2022

frc-2022's People

Contributors

joejanickichsh avatar jeffaburke avatar msoucy avatar nmot919 avatar lilbites21 avatar bot190 avatar

Stargazers

 avatar Charles Buffington avatar

Watchers

James Cloos avatar Mark Oden avatar  avatar

frc-2022's Issues

Week 2 Autonomous

Week 2 goal: Drive off tarmac

This will need "drive distance" and possibly "turn angle" commands.

Week 5 Autonomous

Week 5 goal: Score and drive off tarmac

This will need, at minimum, "drive distance" and "turn angle" commands, as well as automatic shooting.

Depends on #31

Shooter Subsystem

Subsystem Name
Shooter
What is the primary purpose?
Aim laterally, aim angle, shoot
What operations does it need to do?

  • needs to be able to rotate the base
  • change the shoot angle
  • change the velocity
  • fire when wanted

What does the subsystem need to know?

  • what its current angle is(so it doesn't over extend)
  • its current velocity
  • user input to shoot and to aim

What actuators are on the subsystem?

  • a motor that changes its longitude angle
  • a motor to change its change is lateral angle
  • a motor for the system that puts the ball into the shooter

What sensors are on the subsystem?

  • vision
  • encoder for seeing how fast you are throwing it

How can the subsystem fail?
if it cant shoot accurately
cant get a accurate reading on the sensors
How can we mitigate failure?
make sure that the sensors are calibrated and correct;
What can be automated?
aiming well
change the velocity to make it into the gold with a given angle

Intake Subsystem

Intake

What is the primary purpose?
To pick up cargo off the ground.
What operations does it need to do?

  • Deploy/retract roller.
  • Pick up cargo from the ground.
  • Turn on/off the roller.

What does the subsystem need to know?

  • What position the intake mechanism is in.
  • Whether the roller is spinning or not.
  • The color of the ball the intake mechanism picks up.

What actuators are on the subsystem?

  • 2 motors; one for roller, one for deployment.

What sensors are on the subsystem?

  • Color sensor.
  • (Maybe) limiting switch for deployment.

How can the subsystem fail?
The subsystem will fail it if cannot pick up cargo, this can happen either from the intake mechanism being jammed, the roller failing to spin, or the intake mechanism failing to be deployed.
Limit switch failure driving the intake into the ground and/or the robot.

How can we mitigate failure?
Make sure the intake mechanism can be deployed reliably and also roller spinning successfully(in the right direction).
Current based limiting of deployment.
Time based limiting of deployment.

What can be automated?
Intake deployment, color sensing.

Notes

  • Having color sensors on the intake mechanism itself may be an issue because if you have two cargo on the correct color and one the wrong color it will shoot out both. Having a ball shunting system in the transport itself will solve this issue.

Extra Tasks

  • System Identification
    • Read the docs
    • Configure a project to characterize a subsystem
    • Characterize a subsystem
  • Current based hard stop
    • Find how to measure current draw of motors (There are two sources easily available)
    • Implement and Test
    • What limits should we use for different subsystems?

Ball Transport Subsystem

Ball Transport

What is the primary purpose?
Transport cargo from the intake mechanism to the shooter.
What operations does it need to do?

  • Detect cargo entering through the intake mechanism.
  • Detect color of cargo entering through intake mechanism.
  • Shunt cargo from transport if it is the wrong color.
  • Transport cargo from intake to shooter.

What does the subsystem need to know?

  • Color of the cargo entering the transport subsystem.

What actuators are on the subsystem?

  • 1 motor per conveyor system.
  • 1 motor for shunting system.

What sensors are on the subsystem?

  • Color sensor.
  • Cargo detecting sensor(maybe two).

How can the subsystem fail?
Not transporting the cargo from intake to shooter, not getting rid of the correct colored ball.
Any of the sensors failing remove automation.
Motor failure

How can we mitigate failure?
Make sure cargo can get from point A to B before everything else.
Have override for getting rid of cargo.
Make sure the ball can always get to the shooter whether or not the sensor is working.

What can be automated?
Ball shunting can be automated, the transport mechanism itself should be automated.

Swerve Drive

  • Tune Swerve PID
  • Look into using Spark Max onboard PID or steering
  • Implement Trajectory Following

Climber Subsystem

Climber Subsystem

What is the primary purpose?
Control the arms to be able to climb the bars.

What operations does it need to do?

  • Extend the arms fully
  • Retract the arms fully

What does the subsystem need to know?

  • N/A

What actuators are on the subsystem?

  • Two neo 550 motors

What sensors are on the subsystem?

  • Limit switches to see if arm is fully extended/retracted.

How can the subsystem fail?

  • Arm extends or retracts to far beyond boundaries

How can we mitigate failure?

  • Use limit switches and prevent extension/retraction if the arm goes too far.

What can be automated?

  • Retract automatically after certain time

Drive Subsystem

Drive

What is the primary purpose?
The primary purpose of this subsystem is to let the robot effectively get from one location to another on wheels a.k.a. driving!

What operations does it need to do?

  • Drive forward
  • Drive any direction

What does the subsystem need to know?

  • Direction
    • In terms of the field position
  • Magnitude of Speed
  • Rotation of the swerve wheel

What actuators are on the subsystem?

  • 8 Neo's in total, 2 Neo's per each swerve module

What sensors are on the subsystem?

  • Pigeon Gyro
  • 4 Magnetic Encoders
  • 8 Spark Max Motor Controllers

How can the subsystem fail?
This subsystem could fail by not moving the right direction in terms of the field. The swerve drive could not move at all. Maybe some integral windup with tuning P.I.D.'s.

How can we mitigate failure?
Tuning our P.I.D.'s correctly, using our gyro properly, being good, using the encoders to make sure the swerve modules are moving properly are turning correctly.

What can be automated?
An autonomous period, taxing out of the terminal, maybe some machine learning go to the nearest ball (lofty goal but hey who knows...)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.