offseason2018's People
Forkers
maniyar2offseason2018's Issues
Write Library To Remove Boilerplate
For example: write a DT library that takes encoder ports in the constructor and automatically initializes its setters/getters. It could also instantiate motors and make the DiffDrive setup. This could also be a subsystem extension or something else, ask @maniyar1 or @samf547 if you have questions.
Make a logger to ensure things are going correctly in matches
As @nhaas1 noticed when trying to work on observing current, the built-in log viewer is not very useful (and written in binary! So it won't work in with any other log viewer). It would be preferable to make our own custom logging system. This system will ideally piggyback of the (obscurely documented) Shuffleboard recording features (documented here and here. Basic goal: we should be able to make a front end that checks for simple problems. Example of a simple problem: two motors on the same gearbox are using significantly different amounts of current.
Switch-Case For Auto Selection (Robot + JacisPathfinder)
Right now we are using big blocks of if-statements, it would be in our best interest to change these to switch-case statements for readability and efficiency.
Setup a SH script to check if code is formatted correctly
Make some sort of sh script file to run clang-format on the directory and compare it to the current code. Then either me or someone else can integrate it into the Azure Pipelines to give an error when someone didn't format correctly (run the format.sh script).
Sub-Classes In Constants
We should incorporate sub-classes in Constants.java to be more clear about where constants are in. For example instead of Constants.driveTrainEncoderTicks;
we can do Constants.DriveTrain.encoderTicks;
. For an example look at this link.
Use Enums For Auto Selection
Using strings is not very necessary. Switch these to enums so we can have custom types with better checking. Remember, strings are arrays of chars, not very robust (extension of #4 ). Also, we're using magic ints/strings which are inherently confusing and difficult to understand.
Vision
Write a vision algorithm, either on the Rio or on a separate co-processor to center a power cube (or another object). I have a baseline untested implementation using a RPi and NetworkTables done in Kotlin.
RPi code: https://github.com/maniyar1/ManiVision
Kotlin Code: https://github.com/maniyar1/3324-Kotlin/blob/master/src/main/kotlin/frc/team3324/robot/drivetrain/commands/CenterCube.kt
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.