TJ² 2020 Infinite Recharge Robot Code. Oh Yeah!
frc-88 / 2020-robot Goto Github PK
View Code? Open in Web Editor NEWTJ² 2020 Infinite Recharge Robot Code. Oh Yeah!
TJ² 2020 Infinite Recharge Robot Code. Oh Yeah!
CPM class methods:
CPM Commands:
** First look - As Built - Inspection **
** Robot First "drive/move" readiness**
** Robot Intake Test **
** FASH **
** Hopper + Shooter **
Climber: add tilt controls for dual arm climber
All the operator lower one side or the other of the climber to position the hooks in the proper position.
Moving left - lowers left
Moving right - lowers right
Moving up - raises both
Moving down - lowers both
The following subsystems needs to be added to the code and an issue should be created for each outlining necessary components, class methods and commands,
Shooter Arm:
The arm will be controlled by a separate arm subsystem. The shooter will need to know what the current arm position is.
At the start of every cycle
the full sequence of events...
Note:
Constants
Create a button box class and map buttons to commands.
If we approach the control panel from the side we may not be in a save position and our ability to identify our current detected color and the color under the sensor may be more complicated.
If we approach from the trench me may be more protected and have more landmarks that will enable us to identify how to translate the current color we see to the current color that is under the sensor. (off by 2?)
A subsystem should be created to manage communication with our lights system, likely an Arduino connected via USB to the RoboRio. This subsystem should use data available to the robot to determine a desired light pattern and then send a message to the Arduino to change the lights to that pattern.
Some suggested robot states and their light patterns:
Disabled - rotating multicolor (extra credit...no green!)
Shooter on target - fast multicolor chaser
Hanging, unbalanced - flashing alliance color
Hanging, balanced - solid alliance color
Lights
** Light is on when Arm can be moved up to one of its shooting positions
** Light turns off when arm is in motion and when arm cannot be moved
Actions
** On-press (single tap) of button, robot moves arm up and starts bringing the flywheel up to speed for shooting.
Climber: Stop motion if climber arm is pushing against object during extend command
If by chance we are extending the arm and pushing against the obstacle, then we want to 1) stop pushing 2) alert the operator
We discussed having the driver controller rumble when the command is complete so that they know that they can driver away or start the next operation.
We discussed causing the driver controller to rumble when we've completed command to move to the right color. This will allow them to leave the trench and move on to something else as soon as possible.
Shooter Arm:
Components
If we find that we are over our buffer limit (+/- 15 degrees) then we
will stop the ARM, have the operator initiate an overide and move toward the limit switch to reset the arm (position)
Actuators:
Sensors:
Some examples could be
Reset CPM
Deploy CPM
Retract CPM
Get current color under robot's sensor
Get current color under CPM field sensor
Rotate wheel clockwise ( some number of units)
Rotate wheel counter-clockwise (some number of units)
Stop wheel rotation
Climber: Stop motion if climber arm is pushing against object during extend command
If by chance we are extending the arm and pushing against the obstacle, then we want to 1) stop pushing 2) alert the operator
Implement driver preferences to support changing rotation count on driver station. See Paul T. for details.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.