Giter Club home page Giter Club logo

robotcode2018's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

aweiteka

robotcode2018's Issues

Lifting fork ("spork") controls

The spork will require controls and OI support.

DEPLOY: Release pneumatics, spring loaded deployment. Deployment to be by DRIVER (not operator) and require TWO buttons, one on EACH joystick to prevent accidental triggering.

PICKUP: Drive two Talon controlled motors, each with mag encoder. Actual rotation through a small # of degrees with heavy gearing-down. Encoders must not be allowed to drift too far apart. Control by operator or driver button (TBD), "run while held".

STOW: Post-match. Reverse out, then drive in and re-engage pneumatics to lock. Controls TBD.

OriginalBot Tuning

General

  • Update CAN id's and names - Talons.
  • Update Talon firmware
  • Check/update PDP firmware.
  • Check out Pixycam operation
  • Check out driver cam operation
  • Set CAN ID on PCM 2
  • Check/update PCM firmware on both PCMs

Drivetrain tuning

  • Velocity closed loop - low gear
  • Velocity closed loop - high gear
  • Check proper shifting pneumatics operation
  • DriveDistance
  • TurnToAngle
  • Motion Profile Tuning - distance and angle coefficients, wheelbase, tolerances, max accel/velocity/jerk, velocity and acceleration feed-forward

Intake

  • Proper operation of pneumatics
  • Check all controls
  • Complete Banner sensor use to detect cube
  • Current limits on 775's

Elevator

  • Tune Motion Magic constants - both gears?
  • Check all controls
  • Proper operation of limit switches and encoder
  • Set encoder position values
  • Proper pneumatics operation
  • Investigate if delays are needed
  • Set current limits
  • Climb sequence operation

Automated climbing

Auto climb:

  • driver parks centered on scale, touching wall
  • Back up X inches
  • Raise elevator (fast)
  • Drive forward Y inches - touching bar
  • Shift elevator to low gear

Leave ready for climbing under operator control

Everybot tuning

General

  • Update CAN id's and names - Talons.
  • Update Talon firmware
  • Check/update PDP firmware.
  • Check out driver cam operation

Drivetrain tuning

  • Velocity closed loop
  • DriveDistance
  • TurnToAngle
  • Motion Profile Tuning - distance and angle coefficients, wheelbase, tolerances, max accel/velocity/jerk, velocity and acceleration feed-forward

Intake

  • Check all controls
  • Current limits on all 775's

Scoring Arm

  • Check all controls
  • Confirm proper limit switch operation

Intake controls changes post-RIDE

Update intake controls so that intake operates as hold-to-operate.

TBD desired behavior of "off" button. May be repurposed for other things!

Support for low speed intake?

Consider ways of experimentally supporting a low speed intake to minimize cube "kicking". (This may or may not be used, is something that was suggested to explore.)

One possibility suggested was remapping intake-on to toggle between intake-low and intake-high speeds. There may be other alternatives.

Access to game data from FMS API

Investigate and understand the Field Management System API for accessing game data.

Provide interface function(s) enabling easy access to necessary data (switch/scale ownership) based on that data.

Build backup driver station laptop

Install necessary software and files on a team laptop so that it can serve as a backup driver station in the event of continued issues with the Surface.

Post-auto positioning

Update auto sequences to include positioning of robot afterward.

  • Same Side Scale: back away, lower elevator, position for next cube.
  • Opposite Side Scale: back away, lower elevator, position for next cube.
  • Center Auto: back away, lower elevator, turn towards outside ready to drive
  • Same Side Switch: back away, lower elevator, turn facing downfield

Evaluate others.
Consider whether actual grab of next cube is worth attempting.

Test and debug DriveDistanceOnHeading and TurnToAngle

Test, tune and debug DriveDistanceOnHeading and TurnToAngle routines.

Beware that WPILib2018 has broken setToleranceBuffer and this may need to be worked around. SetToleranceBuffer is also deprecated so may need to be refactored out eventually anyway.

Fill in drive code for 2018 (third) robot

Now that the code is structured to support 3 robots, fill in all the places necessary for the 2018 competition robot drive to function. Assume tank drive, 2 motors per side, 2-speed gearboxes.

Investigate avoiding scale while driving.

Running into the scale is a tech foul so we should investigate ways of preventing that. Possible ideas include:

  • Pinpoint sensor pointed up to detect plate
  • Ultrasonic sensor
  • Field position tracking
  • Detecting white tape on the carpet

Support upward-facing camera

Add support for additional, upward-facing camera to be used for scale positioning.

Consider automatically switching to this camera when the elevator is sufficiently high.

DriveDistanceOnHeading: Create variant with additional arguments

Create a version of DriveDistanceOnHeading that takes arguments for max speed and max accel (as % values).

This is probably best done as a variant with a different signature.

As discussed, the logical approach is for the % values to be of robot maximums, e.g. a "normal" DriveDistanceOnHeading was using 90% & 3% respectively. This allows maximum flexibility (can go up as well as down) and avoids "% of a %" confusion.

Elevator drive issues

Investigate any and all possible software issues, data, workarounds, logs that can contribute to understanding and resolving elevator performance (and brownout) issues.

This includes developing (and running/debugging on a test robot) code for testing torque contribution of each motor as suggested by CTRE.

Document Talon & solenoid layouts

Create "for dummies" document with electronics layout:

  • Talon functions (which controls which motor)
  • PDP channel (==CAN IDs)
  • PCM channel mappings - PCM ID, channel ID, physical solenoid, function

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.