Giter Site home page Giter Site logo

spartronics4915 / 2020-infiniterecharge Goto Github PK

View Code? Open in Web Editor NEW
10.0 12.0 15.0 1.42 MB

Spartronics 4915's code for the FRC 2020 game: Infinite Recharge

License: GNU General Public License v3.0

Java 97.21% C++ 2.79%
frc vslam trajectory-generation vision frc-java

2020-infiniterecharge's People

Contributors

austinthomassmith avatar binnur avatar dbadb avatar ethanrini avatar l1f3gourd avatar loqoman avatar marshalltappen avatar mayashaw avatar omentic avatar pietroglyph avatar randomgrace avatar ronanbennett avatar thehappycamden avatar theharmonicrealm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

2020-infiniterecharge's Issues

Compare computation time of rpi3B+ with rpi4B+

Internet literature suggests the raspi4 has faster computation times, we need to evaluate how much better the rpi4 is compared to the rpi3.

Update(2020.02.01): Dana has put together a compatible image that works with both the pi3 and pi4

Create launcher API

This is writing the methods that Commands will interact with the subsystem through, + rough code within those methods.

Unit testing for the Climber

Think about the best way to implement this, given that we don't have an end condition for either of the extend and retract Commands, and that the winch will have some conditions before testing.

Improve Arduino's interrupt code

Arduino has an interrupt code that periodically listens for bling animation command over the serial port. Current architecture can quickly get complicated to support complex LED animations that have multiple loops & function calls. Investigate simplifying the existing architecture to better support LED animations.

Figure out color sensor output with the control panels

For the control panel, we need to test the color sensor's output and get maximum and minimum values for the RGB of the four colors; the values next to them are taken from this image and are extremely dubious:

  • red (254,0,0)
  • green (0,255,1)
  • blue (0,255,255)
  • yellow (255,255,0)

Also, the getRed, getGreen, and getBlue methods return 20-bit numbers; these should be converted to 8-bit to work in normal way.

Low FOV Lens Comparison

Basic Idea: With a small FOV, we have more pixels to represent a target, which results in better measurements from PnP

Link

Create indexer API

This is writing the methods that Commands will interact with the subsystem through, + rough code within those methods.

Integrate LED animations on robot code

Each of the finalized LED animations (see #47) need to be incorporated to the robot code. Logical places for integration:

  • RobotContainer.java using alongWith() to incorporate bling pattern to joystick button controls
  • Robot.java for supporting states such as disabledInit()
  • Within subsystem Commands

Unit testing for the Launcher

These need to interface with the Indexer.

A good test would be to put the robot at various distances and rotations and see if it can accurately make it into the inner goal.

Support ultrasonic sensors

The mechanics subteam has expressed interest in an auto-align command for the control panel manipulator.

We've typically used IR sensors for rangefinding, but ultrasonic sensors have various advantages in dealing with the control panel manipulator. The discussion is available here.

core code cleanliness issues

Note: lib/math/twodim/trajectory/PathFinder.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

The serializable class CameraJNIException does not declare a static final serialVersionUID field of type long

Create intake API

This is writing the methods that Commands will interact with the subsystem through, + rough code within those methods.

Implement & test LED animations using Arduino and Atlas

For each prioritized bling animation:

  • [ ] Update Atlas code w/ latest LED system code (both Arduino & LED subsystem) --> I don't think this is needed
  • Implement LED animations using the existing bling test bed
  • Add the designed LED animations to Arduino code on Spartronics repo
  • Test the LED animations

Create climber API

This is writing the methods that Commands will interact with the subsystem through, + rough code within those methods.

Unit testing for the Intake

Consider that we need to test that the intake functions correctly both with and without a ball in it, as well as interfaces with the Indexer.

Implement LED subsystem and Command code

Reuse Atlas's LED subsystem and Command code as a start.

  • Add LED subsystem. Make sure to update the import statements for 2020 codebase

  • Check if 2020 codebase is logging errors, including with exceptions -- see logInitialized() and logException()

  • Update enum BlingState based on the prioritized LED animations -- see issue #47

  • Add LED command to set bling state. Make sure to update the import statements for 2020 codebase

  • Instantiate LED subsystem in RobotContainer.java

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.