GithubHelp home page GithubHelp logo

chopshop-166 / frc-2020 Goto Github PK

View Code? Open in Web Editor NEW
2.0 6.0 5.0 3.46 MB

FRC Team 166's source code for the 2020 and 2021 game, Infinite Recharge

License: MIT License

XSLT 30.37% Java 58.45% Python 11.18%
robotics first-frc first-robotics-competition robotics-competition frc

frc-2020's People

Contributors

andrewmartin5 avatar austinfortunato avatar bot190 avatar daviddesfosse avatar jeffaburke avatar msoucy avatar quinn-5 avatar rohan-sreenivasan avatar strimper13 avatar tylerpen avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

frc-2020's Issues

Shooter Subsystem

  • List of Inputs (Sensors)
  • List of Outputs (Motors, Pneumatics)
    • RobotMap
  • List of Actions (Commands)
  • Integrate Commands into Robot class

General programming things to do...

  • Identify and configure reasonable current limits on all devices (Logging should help identify any issues with these)
  • Advanced compressor control to ensure it's not running during pushing matches
  • We may need pressure transducer to ensure we don't run out of air (then we could have leak detection!) As well as safety to ensure we don't try to actuate pistons when we don't have enough air (See here)
  • Create a software PID version of PIDSpeedController
  • Create Writeups (as listed in discord)
  • When 2021 patch releases, update commands to use withName() function

New Control Panel things to do

  • Fully implement state machine for color transition detection

  • Add commands to spin 4 times and to spin to specific color

  • Tweak color sensor values to get best match (Identify tuning procedure)

Control Panel Subsystem

  • List of Inputs (Sensors)
  • List of Outputs (Motors, Pneumatics)
    • RobotMap
  • List of Actions (Commands)
  • Integrate Commands into Robot class

Logging

Ultimate goal: Incorporate OBLOG with our code

  • Replace constants with configurable values

  • # of balls

  • Shooter speed Calculations

  • Motor temperatures, currents, setpoints (PID), Output voltages, etc (This may require modifications to ChopShopLib

  • Ensure analog sensors and the trigger values are sent to the shuffleboard (Both will be useful for debugging)

  • Investigate the hierarchy of objects it creates, ensure things are reasonably placed

  • Configure Shuffleboard to record when enabled

More Vision things to do

  • Network tables integration

  • Send Boolean - seeTarget

  • Send Double - Scaled offset (range from -1 to 1)

  • Send Double - Angle to target (in Degrees where 0 is centered)

  • Send Double - Distance to target

  • Send mp4 encoded video stream to driver station (Using H.264 compression)

  • Improve robustness of target tracking

  • Figure how to run this mess on a Rasberry PI (4)

  • make vision debugging a smartdashboard value

Team 5414 Code Review

Vision

  • One optimization I could find that could be beneficial is to preallocate memory for your image matrices (bgr, hsv, and binary) outside of the while loop, so that you aren't allocating approximately 2MB of memory multiple times per second, which should help increase the framerate.

Robot

  • Is there a reason why you chose to use inline commands for every command instead of having a commands folder for the more complicated ones? That should increase readability.
  • Is there a reason why you chose not to use the new RobotContainer rather than putting everything in Robot.java?

Other than those few things, I think your robot code looks great.

Vision Subsystem

  • List of Inputs (Sensors)
  • List of Outputs (Motors, Pneumatics)
    • RobotMap
  • List of Actions (Commands)
  • Integrate Commands into Robot class

Indexer Subsystem

  • List of Inputs (Sensors)
  • List of Outputs (Motors, Pneumatics)
    • RobotMap
  • List of Actions (Commands)
  • Integrate Commands into Robot class

Fix Master

There are a few things in master that need to be fixed: here are some of the ones I am aware of-this list can be added to later

  • Pierre doesn't run when shoot is held Test solution
  • X button doesn't have anything assigned to it (Should shoot at full power) Test Solution
  • Fix vision python script names

Intake Subsystem

  • List of Inputs (Sensors)
  • List of Outputs (Motors, Pneumatics)
    • RobotMap
  • List of Actions (Commands)
  • Integrate Commands into Robot class

More lift stuff

  • Ensure ratchet engage/disengage works (Use Mocks)

  • Check if leader/follower uses voltage compensation

  • Verify lift is mapped to expected controls

  • Add code to handle soft-stops

Team 3045 Code Review Party

Hello Team 166,
Our team have a less advanced software group so we may not have the best feedback. With that, here's our feedback:
- We really like your vision code. We use auto generated code from Grip as our vision and add onto it. What are the benefits of making everything from scratch?
- Your code is really neat and readable. Very cool use of existing commands.
- You guys have a really nice elevator system.

  • Team 3045

Trim the fat 2021

  • Remove Elevator code
  • Purge control panel code
  • Clean up maps
  • Clean up robot.java

More Drive things to do

  • Test NEO encoder resolution

  • Write code to use the IMU!

  • Attempt to implement velocity PID

  • Tune turn to angle PID

  • Path following for autonomous

Lift Subsystem

  • List of Inputs (Sensors)
  • List of Outputs (Motors, Pneumatics)
    • RobotMap
  • List of Actions (Commands)
  • Integrate Commands into Robot class

Indexer: Fix duplicate commands

There are 4 functions in indexer that all create commands with indexMotor() using 2 different speeds (in both directions). I'm not sure what the actual intent was, but these presumably were meant to control two different motors. If we don't need that functionality any longer the extras should be removed and the functions renamed to fit their purpose better.

Documentation

ok... uh everyone update your block comments from the start of the year!
Cool, then:

  • Vision documentation overview (show how we implemented it)
  • RPM documentation

Drive Subsystem

  • List of Inputs (Sensors)
  • List of Outputs (Motors, Pneumatics)
    • RobotMap
  • List of Actions (Commands)
  • Integrate Commands into Robot class

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.