SUPERCILEX / Robot-Scouter

:robot: Easy, efficient, and collaborative FIRST robot scouting
https://bit.ly/RobotScouter
GNU General Public License v3.0
107 stars 41 forks source link

Auto Scout™️ #55

Open SUPERCILEX opened 7 years ago

SUPERCILEX commented 7 years ago

Table of contents

Intro

Robot Scouter's laser focus on empowering teams to easily and efficiently scout has helped us realize that we can significantly improve the on-site scouting experience. The two core ideas behind Auto Scout™ are minimizing friction between the lead scout and his/her scouters; and making the end-to-end scouting experience effortless.

Auto Scout provides a completely guided and self-managed scouting solution from getting devices setup all the way to the final export. Some key features include:

U[I/X]

The main UI for Auto Scout will be the second destination in home. It'll be like Google Photos or YouTube: there will be bottom navigation to switch between the main team list and Auto Scout.

In general, the UI is card-based and provides actionable information. Wherever possible, animations are used to enhance clarity.

Cards

Cards are the user's primary mode of interaction with Auto Scout. They should be tasteful and specific to a given action.

Cards are grouped in stages, each of which is applicable to a unique period of time in the build season. Each stage will have an intro card to help the user understand how the cards are tied together. To further enhance flow clarity, the stage name will become the toolbar title when Auto Scout is focused.

The order in which cards appear is determined by the order in which they are presented in this document. Card order is not user customizable.

Completing the final action of a card is marked with a "Done" button at the bottom. Should the card include nested navigation, it will be achieved through onboarding style panels with dots at the bottom to indicate flow progress. The button at the bottom will say "Next" instead of "Done." Swiping left returns to the previous state and swiping right only proceeds if inputs are valid.

Loading states should use Facebook style fake placeholder content whenever possible. Should that not be applicable, a centered indeterminate ProgressBar will do.

Card and stage states will be saved across devices and should be real-time like everything else in Robot Scouter.

Completed cards will be can't be restored, but their actions may be found in settings.

Intro

Intro cards explain what Auto Scout is all about and teach the user how to progress through the different stages.

Sign in

If the user ventured into Auto Scout and hasn't signed in yet, the first card should be this one with the following text:

Signing in lets you sync your team's scouting data across devices and enables Auto Scout.

Mock

image1

What is Auto Scout?

This card explains the what and how of Auto Scout:

Auto Scout strives to be our vision of a perfect scouting system. It aims to guide you through the baby steps of initially setting up Robot Scouter all the way through that final data export before alliance selection.

You are currently in the intro stage. To move on to the next stage, mark every card as completed by pressing “Done.” Some cards are required and cannot be marked as done without first completing their action.

Try it with this one! Press “Done.”

Mock

image4

Setup

Setup cards help prepare the user for the competition and can be completed early in the season.

Intro card:

Setup cards help you help us—you'll be guided through device and account configuration.

Events

This card will use The Blue Alliance API to gather a whole bunch of event info. There will be 3 steps:

  1. Get the user's team
  2. Get the events that team is going to
  3. Get all the teams going at each event

To get the user's team, we'll have to check for connectivity and verify that the downloaded team data is correct. We'll display an explanation:

Help Auto Scout tailor the experience to your team and the events you will be attending. To get started, enter your team number:

Once the team is verified, we'll display the team's events with their display name, type, and city. If none are found, we'll show a message saying No events found for ${team}, enter your event keys manually. A link to TBA events will be provided. Even if the event fetch succeeds, we'll show the link and provide a text box to add events since TBA data may not be perfectly accurate. We'll also add trash icons to the right of each event like in the spinner metric editor.

Getting all the teams should be a piece of cake, it's just displaying progress that will be unpleasant. We should show a determinate linear ProgressBar along with which team is being downloaded.

Offline and error icons. The offline error will say Your results will be ready once you're back online.

Mock

image2

Devices

This card lists all the devices the user has registered (simply by signing in on said device) with the option to edit each device's name. In addition, it will have the following text under the list of devices:

To add a device, simply install Robot Scouter. If you aren't automatically signed in, be sure to use your [EMAIL OR PHONE] account.

Mock

img_20180503_220112

Google Sheets

This card will have a link to download the GSheets app if it isn't installed. Text:

Exported Excel spreadsheets can be easily imported into Google Sheets and uploaded to Google Drive via the Sheets app.

Mock

image3

Checklist

Checklist cards have tips and tooling to get the most out of Robot Scouter. As opposed to setup cards, checklist cards should be most relevant immediately before leaving for a competition.

Intro card:

Checklist cards ensure you're ready to do your best at competition. These should preferably be completed right before leaving home base while you still have a reliable internet connection.

Templates

This card ensures match and pit templates are assigned. If no template is assigned to a type, it will have a red X. Otherwise, a green check.

The template type will need to be stored with the template such that both the match and pit scout templates are shown in the card. The template editor will need to add an option to change the template type via a bottom sheet. This same bottom sheet will be available with a settings icon besides each item in the card. Setting a template to a type which already has one will unassign the pre-existing template.

Mock

img_20180727_151914_626

Ready? Set. Go!

This card ensures that everything is wrapped up. Completing the action on it indicates that this is the master device as explained with the following text:

By continuing on this device, you are indicating that you are the head scout and plan on monitoring scouting progress with it. This device will then become the "master," allowing you to manage "slave" devices throughout the competition. If that is not the case, please inform the head scout that they must finish setting up Auto Scout on their device and bring it to competition.

The "Prepare devices" button will hide the aforementioned text and show each device's status. Prep includes:

If a device doesn't respond within 30 seconds, it will be marked as failed. Failed devices will include an info button to get details about the failure and troubleshooting steps. Until all devices pass inspection, this card cannot be marked as done.

Mock

TODO

Event

Event cards primarily provide an overview of scouting status. They contain information and management tools to effectively coordinate active devices.

While cards' order shouldn't change dynamically, some information may be more relevant than other at different times. For example, the device status card becomes more relevant if it notices that a device lost comms or the battery is getting dangerously low. Therefore, cards may be reordered programmatically should an action or status become more important.

In a similar change, most cards won't have a primary action and therefore cannot be marked as done. The event stage should resemble a sci-fi dashboard (without the holograms 😉).

Intro card:

Event cards help you monitor scouting status throughout the competition. They provide information about your current progress and device management tools to help you get the most high quality data possible with your available devices.

TODO

Epilogue

TODO

Endgame

Endgame cards provide tools to help teams competing in eliminations.

TODO

Notifications

TODO

Miscellaneous

TODO

Settings

Auto Scout will have its own dedicated section with options to:

Each item will go one level deeper and use the same infrastructure as the cards.

Phases

SUPERCILEX commented 7 years ago

Ooooo, I can also use the awareness api to get the upcoming matches from TBA and then notify users via notification or maybe just a dynamic app shortcut to scout the teams playing in the upcoming match!

SUPERCILEX commented 7 years ago

Add smart app shortcuts in #81.

andrewda commented 7 years ago

Might be nice to have a very simple screen on the app with a single "Scout Match" button which automatically takes the user to a random team that is not already being scouted by someone else. Not sure if you already have a way of checking which matches are currently being scouted in firebase, but that would probably need to be added. This would also require a reliable internet connection (which may be a challenge at larger events).

andrewda commented 7 years ago

Could also potentially have a text box for entering the match number if not connected to the internet so the app can randomly pick a team (you will have had to download the match schedules from TBA in advance).

SUPERCILEX commented 7 years ago

@andrewda Yeah, I definitely think we can do some cool stuff if I have the time over the summer, but priority is #82 for v2.0. Anyway, thanks for the awesome ideas!

SUPERCILEX commented 7 years ago

@vannaka See my response: https://github.com/SUPERCILEX/Robot-Scouter/issues/98#issuecomment-291014155.

SUPERCILEX commented 7 years ago

Holy crap, another cool idea: if I could somehow figure out how to interconnect all the devices with either Bluetooth or WiFi Direct, the app could literally tell people what team to scout. Robot Scouter would just assign a team to each device based on the number of scouts each team has (low # of scouts == needs scouting). This would make finding a team to scout really easy and decrease confusion before a match.

andrewda commented 7 years ago

Yes that sounds like exactly what we need!

andrewda commented 5 years ago

A games card that lets scouters bet on what the alliance score will be with a leaderboard.

Hahaha this is such a good idea I love it.