Skip to content
This repository was archived by the owner on Jan 16, 2025. It is now read-only.

Our final test for software member training in 2024

Notifications You must be signed in to change notification settings

frc-7419/FinalAssessment2024

Repository files navigation

FinalAssessment2024

How to start

  • Clone the repo
  • Make a branch with the branch name as Firstname-Lastinitial(names should be capitalized, example:Sepandar-F) if your branch is incorrectly named or you make multiple you will lose points
  • You can make as many commits and pushes as you want to your branch, when you are done make sure to push all of your code
  • We will check you latest commit to grade it
  • This is due Sunday as a result the latest time you can commit is Friday, December 13, 11:59 PM PST

Objective

Overall

  • Write an entire robot in WPILib 2024, you will have to install any needed vendor libraries needed yourself, for example REV or CTRE(phoenix 6) libraries

Specific

  • Swerve drive drivebase
  • Shooter
  • Intake
  • Handoff
  • Hanger

Hardware specifciations

Put whatever you want for CAN IDs, but they must be unique and not zero and not over 50

Robot

  • Width is 25 inches
  • Length is 25 inches

Swerve

  • Eight motors
  • Four absolute encoders (CTRE CANCoder)
  • One gyro (pigeon2)
  • Four modules, a modules consists of a turn motor a drive motor and an absolute encoder which give the angle of the wheel
  • Offsets for absolute encoders are as follows, they are providied in degrees: front left 98.35, front right 3.5, back left 34.84, back right 74.19
  • After offsets are applied then all motors will go forward if a positive value is given, backwards if negative

Shooter

  • Two motors
  • Top motor is a Falcon 500, negative values spin it in such a way so the note shoots out
  • Bottom motor is a Falcon 500, negative values spin it in such a way so the note shoots out

Intake

  • Two motors
  • Both motors are on the same axle, both are NEO Vortex, positive spin the motor in such a way that a note would be intaked into the robot

Handoff

  • Two motors
  • Top motor is a NEO Vortex, positive values spin it in such a way so that the note moves towards the shooter mechanism
  • Bottom motor is a NEO Vortex, negative values spin it in such a way so that the note moves towards the shooter mechanism

Hanger

  • One motor
  • Controlled by a Kraken motor, negative values will spin the Kraken motor such that the hanger will move up
  • Hanger always magically start fully down

Requirements

Put whatever you want for CAN IDs, but they must be unique and not zero and not over 50

Output some info about the robot to smartdashboard

  • Swerve module drive motor speed and wheel angle
  • Temperature for all motors
  • Anything else you feel needs to be outputted, we will not mark you off if you don't add much else other than what is stated above

Be able to fully control the swerve drive through the drive joystick

  • Left x is left and right velocity
  • Left y is forward backward velocity
  • Right x is rotational velocity
  • Translation must be field relative
  • The robot should be able to rotate while translating

Have pathplanner setup with a test path

  • PID constants do not need to be correct, just push a temporary value
  • Robot width and length need to be taken into account

Be able to control the intake and handoff with the operator joystick

  • Right y is velocity of the intake and handoff, up(positive) should intake the node into the robot

Be able to control the shooter with the operator joystick

  • Left Y is velocity of the shooter, up(positive) should shoot the note out

Be able to control the hanger with the operator joystick

  • Holding down right bumper moves it up
  • Holding down left bumper moves it down

Have auton commands to move mechanisms given a unit(can be whatever you want)

  • Have a command that spins the shooter
  • Have a command that spins the intake
  • Have a command that spins the handoff
  • Have a command that moves the hanger up and down

Things we grade on (Rubric)

  • Giving appropriate scoping to variables, e.g. a joystick reference declared in a class that extends Command is private
  • Making sure to put final keyword on things that don't or shouldn't change
  • Lack of syntax errors (your code should build successfully)
  • Following proper naming conventions
  • Not having uneccessary variables
  • Not doing things in a weird and over complicated way
  • How fully your code satifies the requirements
  • Your code not theoretically causing physical damage to the robot when run

About

Our final test for software member training in 2024

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages