frc1756-argos / 2017-robot Goto Github PK
View Code? Open in Web Editor NEWRobot code for 2017 FRC Season
License: GNU General Public License v3.0
Robot code for 2017 FRC Season
License: GNU General Public License v3.0
Add the following in Begin.vi and in periodic tasks refnum
Analog inputs:
Encoders:
Ultrasonic (use blocks Nick wrote in Extra/Sensors/Ultrasonic):
Digital input:
Two motors: shooter and shooter feeder
Button to toggle shooter on/off
Button to run shooter feeder while held
The following states need to be implemented:
In "Wait for gear", the carriage should position at the far end of the rail, the gear gate should move to the "catch" position, and the gear chute should be extended until the gear beam break sensor is triggered (debounce this input). Then the state should change to "Store gear" where the carriage should slide across to the near side of the rail, the gear gate should move to "hold", and the gear chute should retract. Once the carriage is returned, the gate is clamped, and the chute is retracted, the state should advance to "Idle". "Idle" state should do nothing.
One boolean input should trigger an immediate transition to "Wait for gear". This is the "reset" input.
Another boolean input should trigger an immediate transition to "Idle". This is the "disable" input and it shall have precedence over all other inputs.
Configurable 2/4/6 motors
Ensure 6-CIM drive works correctly in arcade mode on test robot
Verify all state machines respond correctly to inputs
Plan and document behaviors for autonomous routines
Add PID control logic to move gate to a pre-defined position
Check all robot inputs and outputs for expected behavior
Add compressor and pressure sensor code to charge pneumatic system
Test how well a beam break sensor detects wiffle balls even if the beam goes through holes.
Test pixymon camera and webcam for boiler detection
Make it easy to switch from a competition CAN setup to a testing PWM setup in begin.vi
Create case structure that allows us to switch between initializing motors as PWM Talon SRs to CAN Talon SRXs.
Library can be found at https://github.com/FRC1756-Argos/PixyCam-LabVIEW-for-FRC and is also in Extra/Sensors/PixyCam/ in this repo.
Preliminary library supports only SPI interface. Test first with example program to ensure library works.
Will need to make ribbon cable for pixy cam to connect to roboRIO. See pinouts:
See code at https://github.com/juchong/ADIS16448-RoboRIO-Driver
Import this into our project and test IMU performance
Test ultrasonic and beam break sensors for reliability when detecting gear hook at ~10" distance
Add PID logic to gear rail control motor to move carriage to a desired location input.
Continuation of #3
Use IMU position data to maintain heading in drive code
Analog input: Yo-yo potentiometer
1 Motor: side to side control
2 buttons for left/right movement
One motor turn CW/CCW
Maybe one sensor (encoder or pot)
Motor on/off with ability to reverse
Check yo-yo distance so output of read corresponds to inches extended
States:
Inputs:
Outputs:
Choose which joysticks and buttons control all robot functions, document, and implement in code
Control everything in #41
Document in an excel spreadsheet and set up in Teleop.vi
Motor output controlled by one button
1 Motor: Open/Close movement
1 analog input: potentiometer for rotation position
Support for three target positions: catch, clamp, open
Manual control using open & close buttons
Polymorphic CAN or PWM
Create folder structure in repo to organize VIs
Verify all Xbox controllers (especially new black ones) read correct inputs in existing LabVIEW code.
Fix if necessary.
Piston: in/out to push out gear
1 button: move piston out when depressed, retract when let go
The following states need to be implemented:
Robot remains in "Wait for lift" until the ultrasonic sensor detects the lift (debounced) then transitions to "Align to lift". In "Align to lift" the rail moves to the position of the detected lift, but the state may transition "Return to wait" if the lift is no longer available. When the robot is in "Align to lift state" a boolean input will trigger transition to "Arm Gear" state. In "Return to wait", the carriage returns to the near side of the rail, then transitions to "Wait for lift". In "Arm gear" the gear gate is lowered and the state immediately transitions to "Place gear". In place gear, the gear pusher pistons are extended and the state transitions to "Return to ready" when the place boolean input is deactivated and the pistons have completed motion. In "Return to Ready", the gear pusher pistons retract and the state transitions to "Disarm gear" as soon as the pistons retract. In "Disarm gear", the gear gate is returned to hold position and the gear carriage returns to the far side then the state transitions to "Idle". "Idle" should do nothing.
One boolean input should trigger a transition from "Idle" to "Wait for lift". This is a "start" trigger that does nothing to any other states.
Another boolean input should trigger an immediate transition to "Return to ready" from states 1-5 and do nothing in states 6-8. This is a "reset" button and should have precedence over all other inputs.
Update Teleop.vi and excel spreadsheet with controls for operator assist functions.
Write routines to shift between high and low gear.
Control using one solenoid for each side
Shooter feeder should consist of two motors: one for the bottom rollers and one for the top roller. This will enable gathering fuel into the feeder apparatus without shooting.
Additionally, we will have a beam break sensor to detect when a ball is in position to shoot.
Changes necessary:
Alternative to #6
Hood would be a motor with a sensor to adjust the shooting angle
Document all robot inputs (analog, digital) and outputs (CAN, solenoid, PWM, digital)
See #40 for sensors
Motors:
Pneumatics:
Input an array of type T and a boolean array and output the element of the type T array corresponding to the first true value in the boolean array
Add encoder-based shooter wheel speed regulation
This should feed fuel into the feeder when a boolean input is true, the shooter speed is adequate, and the turret is correctly aimed.
Another input should allow manual shooting when the other criteria are not satisfied (manual override).
The following VIs need a "position reached" boolean output to indicate a setpoint positionl/speed has been achieved:
The following pneumatics need a "position reached" boolean output to indicate the extension/retraction should have completed:
For all of these outputs, the value produced should be debounced
See repo at https://github.com/juchong/ADIS16448-RoboRIO-Driver
They've updated the repo 7 times since Tuesday
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.