Git Product home page Git Product logo

2017-robot's People

Contributors

archduketim avatar carterfendley avatar erikboesen avatar virtuald avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

2017-robot's Issues

Camera exposures

It seems that setting the Camera exposure in cscore also messes with the brightness. Setting the exposure and brightness every loop doesn't work. For some reason I couldn't use cscore's getProperty to check if the brightness or exposure was set improperly and then adjust it.

Maybe make swervemodule a class of swervedrive

It may make sense to only allow SwerveDrive to interact with swervemodules. For example, in autonomousPeriodic call SwerveDrive.update_smartdash() and from there call module.update_smartdash()

Thoughts?

Innovation in Control

Bellow is a list of cool stuff we have done this year so I don't forget

  • Swerve Drive (Omni-directional)
  • Field centric drive mode
  • Absolute encoders (No wheel reset)
  • Two drive encoders (Can rapidly switch if broken)
  • Field position prediction (Both field centric and not)
  • Touchscreen UI
  • Vufine (Heads up camera feed display)
  • Camera gimbal
  • Image processing

Probably a lot more that I haven't remembered

Unbag day tasks

We are planning to unbag the robot for 6 hours on Thursday. This is my list of things to test. Please add to it if you know anything else.

  • Update robotpy
  • Deploy new code
  • Verify basic functionally has not been impaired (drive, pick up gears, etc.)
  • Do two dry runs of the old auto modes to make sure they still work
  • Tune new field centric auto mode
  • Add a ramp rate to drive Talon SRXs (As per suggestion)
  • Check the camera exposure on second cameraa

Physics wheel rotation

Currently to get the wheel rotation, we are looking at the nt value /SmartDashboard/drive/rr_module/degrees for each module. This is a poor way of doing it

You can calculate the wheel rotation in physics through the encoder value. This would be better, however because the wheels all have zeros in robot.py which cause the raw value calculated from the encoder to be incorrect. We need some way of getting the zero from each module into physics.

It would be a pain if we had to manually input it each time it changed

Add current limiter

Something that would've been good to have last year.

For motors that are subject to running under heavy load, it would be a good idea to check the current, and if it's above a threshold, free the motor (motor.free()) or some other way of stopping it. motor.free() is good because in some cases like last year, you just want to change say, the operating mode of the motor.

Cleanup Ideas

my_pid_base.py

  • Change my_pid_base.py to basePIDcomponent.py. my_pid_base doesn't really make sense.
  • scaled_output calculation is either wrong or poorly named. Comments = clarification
  • Setting _has_setpoint to False after each iteration of execute doesn't seem...intuitive. It would make more sense to set to false if error is within a threshold. But I understand you check how close it is in another method.

angle_controller.py

  • I think it would be neater and easier to implement changes if is_aligned called is_aligned_to(self.setpoint)
  • Not so much code specifically as theory, but I wonder if there is a way to get the same values for rotating when standing still as when moving.

auto_align.py

  • Remove end()

field_centric.py

  • fwdX and fwdY should be swapped to make sense. cos(X) measures adjacent to, and since an angle of 0 is in the +Y direction, cos should be applied to fwdY.

global_position_controller.py

  • delete this.

robot.py

  • I don't think you should invert the X axis. Left is -1 and right is +1 automatically.
  • move(x, y, rcw) should be move(y, x, rcw)
  • When setting the gimbal and yaw, the scaling should happen in the setter to make it easier to change each setting in more than one place

swervemodule.py

  • Remove print statement in is_aligned

Add Docstrings

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.