Giter Site home page Giter Site logo

raiderrobotix / scouting-app Goto Github PK

View Code? Open in Web Editor NEW
4.0 10.0 3.0 90.25 MB

Raider Robotix Android scouting app for real-time distributed data collection

License: GNU General Public License v3.0

Java 100.00%
tba json frc-scouting android frc

scouting-app's People

Contributors

anjaliaravindhan avatar kushp1203 avatar spencerng avatar tekrekon avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scouting-app's Issues

UI helper code/cleanup

Many of the methods that are used to interact with/enable/check RadioGroups or RadioButton arrays could be moved to a separate class. New methods could also be created via Java Reflection and the Field class to make enabling/disabling CheckBox groups easier. Place these methods in a new class called UiHelper.

Icon and menu aesthetics

  • Convert the menu icons to LinearLayouts so that they aren't dependent on screen aspect ratio to look correct
    • Some phones are no longer 16:9, leading to a large gap in the middle of the phone main menu layout
    • The game logo is also too big on these phones
  • Change the margins of the settings menu so they are consistent across all devices (MeMO tablets, Amazon Fire tablets, various smartphones). Currently, the margins of regular Preference objects have too much left padding on some devices.

Scout match predictions

In order to "gamify" match scouting (and provide incentive for scouts to pay more attention to robots at a competition), create an interface within the post match screen asking them to predict the results of the next match. Implementation could be similar to the existing team comparison system.

Determining the most accurate scouts would be handled by the scouting client, after the event is over.

  • Create an XML component
    • This should display the team numbers on each alliance
    • Provide buttons to indicate a red win, blue win, or a tie
  • Interface with the component in PostmatchFragment
    • Update the team numbers after reading the data from the matches CSV file
    • Retrieve selected option and ensure one is selected before saving data
  • Update the Postmatch model to hold the additional data
    • This could work as a char, String, or int
  • Test the app thoroughly, checking the saved JSON file for the actual data
  • Determine and implement a way for scout names to be consistent so we can track who made each prediction (optional)
    • An "autocomplete" feature in the prematch screen could work

UI bugs

Sandstorm

  • When incrementing cargo ship hatches to 1, selecting a hatch placement location, then decrementing cargo ship hatches to 0, the "crossed HAB line" metric doesn't automatically enable itself
  • Hatches dropped should be limited to 3
  • Error checking logic that ensures the number of checkboxes checked isn't greater than the inc/dec value

Tele-Op

  • Partner starting level (for climb assists) is auto-populated to "N/A" even when the number of partner climbs assisted is equal to zero. This option should not be checked in this case.
  • Keyboard automatically shows on the fragment on resume

Post match

  • Add an option for "did nothing" under tele-op primary focus
  • Ensure the additional comment EditTextView has a height that is equal to either one or two times the height of a character that is typed in

Other

  • Test the new changes
  • Update the app version to v3.12
  • Make a release on GitHub

2019 sandstorm screen

Several modifications to be made:

  • Change references from autonomous to sandstorm within the UI
    • Don't rename source code files for convenience and consistency between years
    • May reconsider if autonomous if permanently removed in future games
    • Title value should be set within AutoFragment
  • Change null territory label to opponent cargo ship line
  • Change scale plate cubes to hatch panels delivered
    • Enables a check set with rocket, front cargo ship, and side cargo ship as options
  • Change switch plate cubes to cargo delivered
    • Enables a check set with rocket, and cargo ship (side) as options
  • Change auto line to HAB line cross
    • Like the old auto line, this should be auto-checked and disabled if other actions are selected
    • Point value associated with crossing will be determined by the scouting client
  • Add increment/decrement set for number of dropped hatch panels
  • Add increment/decrement set for number of dropped cargo
  • Radio button group for control method: autonomous, hybrid, manual (driving blind)
  • Interface with components in AutoFragment
    • Auto populate
    • Read values
  • Update Autonomous data model
  • Safely delete all references to FIRST Power Up
  • Test the app (input data and check JSON file for expected output)

Assumptions:

  • Rocket level doesn't matter when delivering game pieces (most teams will go for level 1 and we won't run multi-team autos on one rocket)
  • We don't care about where teams accidentally drop game pieces (what their desired action was)
  • We don't care about where teams pick up game pieces (hatch panels likely from closest loading station, cargo always from depots)

2019 postmatch screen

Minor changes:

  • TeleOp focuses changed to just hatch panels, cargo, cargo ship, rocket, and defense (tests effectiveness of mechanisms)
  • Update quick comments in PostmatchFragment as specified in the metrics document
  • Update PostMatch data model and autoPopulate() accordingly
  • Remove references to FIRST Power Up
  • Test data serialization
  • Optional: fix #7
  • Optional: add #9

2019 prematch screen

Slight additions for 2019:

  • Driver starting position should also indicate HAB level
    • Create additional XML radio button group with options: Level 1 or Level 2
    • If Level 2, starting position cannot be "center" (make a check for this)
      • Upon selecting Level 2, disable and deselect the center option
  • Update PreMatch data model accordingly
  • Update autoPopulateData in PrematchFragment accordingly
  • Create checks to ensure the field is filled in after pressing the "continue" button
    • Display prompt and prevent advancing to the sandstorm fragment as needed

The implementation should be similar to the robot starting position component

Minor 2019 season updates

  • All references to FIRST Power Up should be removed and changed to Destination: Deep Space
    • Application title
    • Rules manual
    • Logo in main menu
    • Game-specific settings (handled in #8)
    • "About" section in settings
  • Change version to v3.0 (once app is stable)

Robot comparison prompt after shift rotation

Don't show the question asking the scout to compare the current robot to the previous one scouted if rotations have just been changed - you may want to check and compare the name on the previous ScoutEntry.

2019 preferences

The preferences/settings activity needs to be updated; most of these changes can be made in preferences.xml.

  • FIRST Power Up category should be labeled as Destination: Deep Space
    • See if you can reference the GAME_NAME variable in Constants
    • Alternatively, make a new variable in strings.xml for the game name and reference that throughout the Java code
  • Remove the timer increment amount preference
    • We might want to make this hidden instead of deleting it completely, as we might need it for future games
    • We might later decide to scout cycle times this season too, though it wasn't that useful last year
  • Remove unused methods (if any) in Settings.java
  • Ensure anything that is deleted is done so safely (test the app and see if you can save a data file without crashes)

2019 teleop screen

  • Remove timer-related metrics
    • Set the visibility of the timer manual increment setting to GONE (don't delete it) so we can use it for future games
  • Remove plate configuration interface
  • Modify old switch/scale/exchange metrics to number of cargo/hatch panels in cargo ship and rocket
    • Add a inc/dec set for both hatch panels and cargo for each level of the rocket (using the layout we discussed)
  • Add number of hatch panels/cargo dropped interface (could modify existing cube dropped)
  • Add checkbox to indicate endgame HAB climb attempt
    • Add radio button group to indicate HAB level
      • Enabled when climb attempt is checked, disabled and deselected when unchecked
    • Upon checking climb attempt, enable a checkbox to indicate a successful climb
      • This is disabled and unchecked if the climb attempt checkbox is unchecked
  • Increment/decrement interface for climbs assisted (max of 2)
    • Radio button group to indicate level of the assist
      • This should be the achieved level, not the desired level
    • Radio button group to indicate type of robot (ramp bot, iron cross, etc.)
    • Include an option for "other" (similar to last year)
      • Archetypes will be defined later on in the season, as robots are revealed
  • Interface with the XML components in TeleOpFragment
    • Update autoPopulate as necessary
    • Set proper checks before continuing
      • Rocket level checksboxes for cargo/hatch panels should be selected
      • If the robot climbs to another level, indicate the appropriate level
      • If the robot is assisted by another robot in climbing, indicate team number and appropriate level (either 2 or 3)
      • If the robot assists another robot, indicate the robot type
    • Ensure variables are named appropriately if they are modified from last year
  • Update TeleOp data model accordingly
  • Delete all references to FIRST Power Up metrics
  • Test app and ensure JSON data has expected values

Event list automation

Use The Blue Alliance and the current date to generate a list of events that Team 25 is attending this season, when the "Download match schedule" button is pressed. Update the events listed in the "current event" menu in the settings accordingly.

Switch the "current event" to a new one at the conclusion of an event.

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.