Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue 56 - Improved Cheesy drive logic #97

Merged
merged 1 commit into from
Jan 15, 2017
Merged

Conversation

rhauch
Copy link
Member

@rhauch rhauch commented Jan 15, 2017

Added a second and simpler algorithm for cheesy drive based on Team 254’s 2016 robot, and change the existing cheesy method to use this algorithm. However, the previous logic is still available via a new overloaded method that accepts the algorithm enumeration as the fourth parameter.

This does not address #56, since I'm still not convinced that issue is real. See #56 for details.

Added a second and simpler algorithm for cheesy drive based on Team 254’s 2016 robot, and change the existing `cheesy` method to use this algorithm. However, the previous logic is still available via a new overloaded method that accepts the algorithm enumeration as the fourth parameter.
@rhauch rhauch merged commit bc10eea into strongback:master Jan 15, 2017
@rhauch rhauch deleted the issue-56 branch January 15, 2017 17:43
CarlinWilliamson pushed a commit to Team3132/strongback-java that referenced this pull request Jun 30, 2020
…s for defaults. (strongback#97)

* Beginnings of a more simple config file.

* Getting closer to unit testing and better config layout.

* Swap to Config from RobotConfiguration

Move more parameters to config so that it can be removed from Constants.
Put Constaints on a diet to remove redundant values.
Add ConfigReader unit test.
Stop passing config everywhere, using a static instance instead.
Use namespaces in Config class for better grouping and more consistency.

* Ensure example config is written out.

* Separate logging and charting.

Move to static methods so that they don't need to be passed around.

* Rename method to make it consistent

* Add unit test for TimestampedLogWriter.

* Move things around to reove a class as per pull request.

* Changes from reivew.

Renamed Logger->Log and other minor changes.
CarlinWilliamson added a commit to Team3132/strongback-java that referenced this pull request Jun 30, 2020
* subsystem for buddyclimb added

* fixed constants and config

* Initial tweaks.

* everything should work except climber

* Fixed error after commit

* hopefully final changes to button mappings

* Added shooting sequence and nonblocking spin up.

* Implement waiting for shooter to come up to speed in controller.

* Minor rename from speed to rpm.

* +talonarraylists networktables, resolved comments

* Shortened getFMSColour()

* mock motor merge problems fixed

* Fixed comments from code review.

* did some diag mapping, cried a little, all g

* mapped some diag buttons (again), 2.0

* renamed several things to avoid confusion

* commented some code out

* removed talonArrayLists from motor factory

* fixed some issues with badly named things

* changed set in interfacetablehelper to get

* added sets,  execute(),  parse pidf

* missed commit

* replaced get()'s with set()'s tweaked comments

* Finish mapping buttons.

Some functionality had to be switched to toggle to match the button
design.

* resolved mark's comments

* tweaked indentation

* Tweaks to layout/comments.

* Change the source for the beam breaks.

* Add a comment.

* Cleaner way to indicate that the state doesn't care about the number of
balls or shooter should be up to speed.

This prevents a race condition where a ball is being ingested and the
state changes while it is being applied.

* Minor fixes.

Use spark max for passthrought and intake.
Plumb through the brake.

* LEDs countdown endgame and show alliance colours.

* Added functionality for setting charts to being at time = 0 every time a new chart is created.

* fixed issues found during robot testing

* Fix bug with last 15 seconds while in testing robot in teleop mode.

* Example OI based toggle mode.

Complicated way of implementing toggles in OI that handles running different
sequences based on the toggle state.

* More understandable way to toggle a boolean.

* intake/passthrough/loader/shooter testing

* Changed format of If statement.

* Shooter encoder now returns correct values.

* Shooter Tuning

* Changes from shooter testing.

* Loader and shooter tweaks to attempt to reduce
jamming.

* change intake from percentoutput to pid

* Fixed comments from pull request.

* Set graph log state to invalid every time logs are initialised to solve an issue where the csv header was overwritten with data

* Changed method name.

* Fixed manipulation of a double as a string

* intake/shooting sequence tweaks

* made suggested changes

* rotate image for vision

* intake/shooter sequence tweaks

* Fixing tests.

* Auto driving parameters from drivebase characterization.

* Fixes to get trajectory driving to work on falcons

* Fix motor scaling factor to make consistent.

* removed negatives from "paddleNotBlocking"

* changed rotate value 0

* Added basic auto routine to shoot, intake and drive

* reverted loader/shooter scale changes and tuned shooter

* adjust button mappings

* Make motor scaling more consistent, intuitive and
less error prone.

Implement a scaling function that takes encoder ticks, gearbox ratio
and if needed the number of metres per wheel turn.

Convert everything internally to rps instead of rpm and only show rpm on the
dashboard and logging.

* Spelling fail.

* implemented code suggestions and created hw subsystems to keep track of real subsystems

* fixed changes reverted by merge

* Convert everything from revs/min to revs/sec

This is more intuitive.

* Remove extrainious semi-colon

* Fixed RPM to RPS conversion

* fixes

* invert shooter motors

* inverted loader paddle pneumatic

* Vision fixes

* comments

* Better comment in getVisionDistance()

* comments

* Removed negatives from loader

* auto tweaks?

* resolved conflicts

* using startShooting sequence in auto

* updated comment

* edited sequence named

Co-Authored-By: CarlinWilliamson <[email protected]>

* Apply rotation to both images

* fixes

* Forwards port 5802 to 22. (strongback#41)

* Ready for testing. Forwards port 5802 to 22.

* Add rsync to constants and comment port forwading lines.

* Addressed comments in pull request.

* vision/intake tuning

* Added trench auto sequence

* changed names of constants to make more sense

* updated constant names - oops

* updated auto sequence to remove delays

* remove shooter delay

* reverting sequence change

* Logsync (strongback#52)

* Ready for testing. Forwards port 5802 to 22.

* Add rsync to constants and comment port forwading lines.

* can now read robot names

* Added reading of robot name and moving of logging
files.

* Added name detection and moved log files.

* Added latest and event logging usb folders.
Moved Latest_* files into the latest folder so they are the same depth
to make the html imports filesystem position agnostic.

* Create index.php

* Lognumber now does not materialize in sda1

* changed date format from ":" to "-"

* added runrsync to the utils folder

* deleted a single comment in run_rsync

* Update index.php

* fixed issue where logs were showing up in wrong
place due to the location in logdygraph being wrong

* Removed some debug lines, tidied up some imports
Made it work on windows

* got latest version of run_rsync

Co-authored-by: CookieCoder <[email protected]>
Co-authored-by: SebasPtsch <[email protected]>
Co-authored-by: Amogh J <[email protected]>

* First pass: Get a bunch of tests to work.

* All 44 unit tests now pass.

* Default the navx present to be the same as the drivebase.

* different shooter button mappings (strongback#50)

* different shooter button mappings

* better comments

* don't shoot at 0 RPS and show this state on the LEDS

* errors from merge

* OI changes from driver training

* Loader tuning after changing gearbox ratio

Co-authored-by: Hayley <[email protected]>

* renamed MotorOutput to DutyCycle (strongback#54)

* added maybewaitfor and time it took to apply state

* code review changes

* improved logging strings

* started logging for state

* Switch from toggle to mode based.

* Add back the toggle switch.

* Apply an endState when sequence is interrupted + sequence builder things (strongback#55)

* apply an end state if sequence gets interrupted

* fixes :D

* autofill interrupted state

* added unit test for interrupting the stop intaking sequence

* sequence builder

* fixes

* update sequences to use sequence builder

* fixed a null pointer + editted sequence names

* fixed a goof from merging earlier

* fix fillInterrupt() & javadocs

* updated what we auto fill in fillInterrupt()

* added 2nd constructor to sequenceBuilder

* edit: comment fix

Co-authored-by: carlinw <[email protected]>

* added ledstrip to state and controller

* interrupts no longer put the drivebase back into arcade

* Changed buddyclimb in state.

* Rewrote buddy climb using onMode

* Removed random new line

* Changed from onMode to onToggle

* onToggle for climb/drive mode.

* Added maybe wait for buddy climb.

* Change names of methods to make more sense.

* Changed builder.add() to builder.then()

* logstring now logs

* added an actual method

* Move PID values to dedicated class. (strongback#61)

* Move PID values to dedicated class.

Also pass config instance to motor factory insted of lots of parameters.

* Rename symbol

* Clean up Motor interface and reclaim speed mode. (strongback#62)

* Move PID values to dedicated class.

Also pass config instance to motor factory insted of lots of parameters.

* Rename symbol

* Clean up Motor interface and reclaim speed mode.

Replace Speed with DutyCycle to make it clear that this isn't a speed.
Rename Velocity to be Speed since what the motor controllers call Velocity doesn't
have a direction (needed for Velocity).
Clean up the Motor interface to remove setSpeed() and only have
set(ControlMode, demand).

* Add a comment and remove checking if the target was found.

* added LED colours to the maybeWaits (strongback#60)

* add LEDs to maybeWaits + setAlternatingColour()

* updated the mock LED strip

* defining alternateNum using numberOfLEDs

* added a constant for LED %

* passing in debug colours into waitUntils

* changed pink to magenta & some fixes

* reworded controller waiting log message

* fix: alternating colours using the same colour

* Added auto/field positions to constants

* changed auto to use field locations

* Fixed up some constants

* Changed location to use 1st quadrant rather than 4th

* changed positions in constants to be pose2d

* Changed location origin to be center of the field

* Removed dygraph files (strongback#64)

* removed dygraph files

* removed dygraph from robot code

* helper methods for stopping at a distance using pose2d

* Removed Canifier related things + fixes

* more posehelper unit tests

* some more posehelper unit tests

* smaller posehelper tests

* formatting tab sizes

* fixed location ascii art :)

* removed most warnings (strongback#84)

* caching auto splines

* added createHash function

* unit tests

* Config server (strongback#82)

* Moved config server into robot code.

* Moved config server and passed in paths and port.

* Encodes and decodes html characters in config + testing

* Restart robot code when checkbox ticked.

* Wider input box on html and better test config.

* Stoped config server unit test from waiting.

* Addressed comments in pull request.

* Commented out 100 second wait in test.

* Removed onClick from checkbox.

* Refactored code inside of run method.

* test trajectories are now ignored by git, removed unnecessary stacktraces

* comments + moving voltage constraints to constants

* double checking creation/removal of trajectory files, removed unnecessary imports

* Add Robot Name to Config Server (strongback#90)

* Moved config server into robot code.

* Moved config server and passed in paths and port.

* Encodes and decodes html characters in config + testing

* Restart robot code when checkbox ticked.

* Wider input box on html and better test config.

* Stoped config server unit test from waiting.

* Addressed comments in pull request.

* Commented out 100 second wait in test.

* Removed onClick from checkbox.

* Refactored code inside of run method.

* Add robot name as a parameter in config webserver.

* Addressed comments in pull request.
Refactored code.

* Removed useless todo.

* Drivebase refactoring (strongback#89)

* DriveRoutine is now an abstract class

* Removed DriveMode

* added deadbands to arcade drive routines

* removed unnecessary this.

* removed outdated TODO/FIXME

* forcing cheesy to use duty cycle

* Fixed commented out code autocomplete

* Added low pass filter to vision.java, which may require changes to th… (strongback#91)

* Added low pass filter to vision.java, which may require changes to the alpha and timeOffset values in order to be tuned correctly

* Last seen target is validated using isValid, and alpha constant has been moved to Constants.java

* Commented out redundant height parameter in vision targeting

* Removed height parameter from vision.java (no worries carlin)

* Edited low pass filter to only filter x and y co-ordinates and heading of target location

* Removed unused import

* Added a test to check that we are reading from cached files as expected

* fails file reading test when exceptions are thrown

* updated gitignore - including a cached spline

* removed unused import

* removed some unmappable characters

* add timestampt to the begining of the event log filename

* fixes for typos and comma location

* added underscore to indicate symbolic link

* Calendar.getInstance to method

* Set some test config so hal stuff works.

* fixed java time layout vs php

* initial test of UTF-8

* github action for building and testing frc code

* testing no longer discriminates against linux users

* PR template

* revisions and spelling is hard

* added createPose2d to encourage using degrees not radians

* Don't normalise angles

* Move to a much simpler, static config class and remove using constants for defaults. (strongback#97)

* Beginnings of a more simple config file.

* Getting closer to unit testing and better config layout.

* Swap to Config from RobotConfiguration

Move more parameters to config so that it can be removed from Constants.
Put Constaints on a diet to remove redundant values.
Add ConfigReader unit test.
Stop passing config everywhere, using a static instance instead.
Use namespaces in Config class for better grouping and more consistency.

* Ensure example config is written out.

* Separate logging and charting.

Move to static methods so that they don't need to be passed around.

* Rename method to make it consistent

* Add unit test for TimestampedLogWriter.

* Move things around to reove a class as per pull request.

* Changes from reivew.

Renamed Logger->Log and other minor changes.

* Added issue templates

* Punctuation cause it bother's everyone

But you did complain didn't you Hayley

* Punctuation cause it bother's everyone

But you did complain didn't you Hayley

* Update .github/ISSUE_TEMPLATE/feature_request.md

* trajectory test files are now created in a temp directory

* test that we are actually reading from a cached file

* updated javadocs

* Move constants into Config class. (strongback#110)

* Beginnings of a more simple config file.

* Getting closer to unit testing and better config layout.

* Swap to Config from RobotConfiguration

Move more parameters to config so that it can be removed from Constants.
Put Constaints on a diet to remove redundant values.
Add ConfigReader unit test.
Stop passing config everywhere, using a static instance instead.
Use namespaces in Config class for better grouping and more consistency.

* Ensure example config is written out.

* Separate logging and charting.

Move to static methods so that they don't need to be passed around.

* Rename method to make it consistent

* Add unit test for TimestampedLogWriter.

* Move things around to reove a class as per pull request.

* Changes from reivew.

Renamed Logger->Log and other minor changes.

* Move constants into Config class.

* Merge fixes

* Remove redundant line.

* renamed subsystem interfaces

* renamed files for consistency

* more renames for consistency

* Renamed files for consistency

* removed strongback

* moved NetworkTableHelper implementations into strongback

Co-authored-by: Jamie Ha <[email protected]>
Co-authored-by: Abhishek <[email protected]>
Co-authored-by: yakyakyakyak <[email protected]>
Co-authored-by: Mark Waldron <[email protected]>
Co-authored-by: CookieCoder <[email protected]>
Co-authored-by: Amogh J <[email protected]>
Co-authored-by: MrFuzzykins <[email protected]>
Co-authored-by: jwjamesking <[email protected]>
Co-authored-by: Hayley <[email protected]>
Co-authored-by: Sebastian <[email protected]>
Co-authored-by: CookieCoder15 <[email protected]>
Co-authored-by: yakyakyakyak <[email protected]>
Co-authored-by: SebasPtsch <[email protected]>
Co-authored-by: idontknowhowtopeople <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant