I’m planning to sit down and write an FRC scouting system from scratch. I’d like your help.
The first step in such a software project would be requirements. I doubt I’ll found myself scouting, or even using the system myself at all, so I wanted to collect requirements.
General information:
The system, as I plan to write it right now, will be designed to run on one computer, independent of any external servers or other computers. If it’s deemed important, the system will be able to merge data collected on a few computers running it.
Questions that I see:
Should the system provide a live data collection interface, or should it assume that data is collected independently and added into the system after a match?
What formats should the system be able to export data in?
What data (both game specific, which we’ll know more about next week, and not) do we want to collect?
What types of statistical computations / rankings should the systme be able to handle?
And most importantly, what requirements would you have from a new scouting system? What would make you use it?
Requirement Categories that I see:
hardware/software requirements (for example, having a JRE installed for Java)
user interface (information input, handling, viewing, analysis, output, etc.)
data capabilities (how important is it that the system be able to accept new fields to track? Or is it enough to just track one pre-defined set of fields? Which fields should it track?)
analysis capabilities (statistical computations or rankings, graphs / charts, etc.)
customization (where it’s important vs. where it isn’t)
There’s probably a lot I’m missing, and I’d like your help. Any input will be appreciated.
After I have more requirements, I’ll probably design the system. I’ll be happy to post the design for review, and then it’ll be on to implementation.
Good to see that others have already been thinking about this.
Granted, I’m biased in my thoughts on design and implementation, since I already started to try to repurpose my team’s 2007 application for this year’s game (and have been doing a huge amount of refactoring as a result)… so my thoughts.
I think I’d try to make the software as hardware/software independent as possible. (Which was the original reason I did it in Java that year. Mono could be another option.)
Exports should probably be in some universally understood format, like CSV or XML.
I’d assume that it’s not live. Having attempted a live system in the past caused more headaches than it was worth, at least insofar as our experience of it.
Some of the issues I’m coming into are data-storage issues mostly (since I’m thinking of working it in Java, I’m thinking embedded Derby more than likely, though perhaps with an option for file-based saving, and probably doing it with Web Start again to allow for easy update), as well as simply building it in a fashion that’ll allow for the program to be easily ported to whatever the 2010 game is… Though I’m more than willing, certainly, to team up with others to work on this. I should have more time this year.
Last year, our team had six students for each match, each watching one robot, fill out a sheet counting laps, hurdles, etc. and then this data was inputted via a Swing GUI to a tab delimited .txt file that Excel could read. Then we had a separate GUI that could read this file and process this raw data. It could give raw data, average scores, and maximums . It also was able to sort and search.
Java also had features to play back match videos and pictures so it had media as well.
Our team will most likely do something similar this year - counting the number of moon rocks a team shoots and makes and watching for supercells as well. We will also make note of scoring by the human players.
you should deff. do it so its capable with Windows Mobile because it is a lot easier to carry around a smartphone/ PDA then a Lap Top or other crazy apparatus.
Have the data flow - Phone-> Server->Computer Display/ Admin Module (where it could also be edited)-> back to phone.
Last year, one of the teams created a scouting app for the iPhone/iPod touch. It would be really cool if someone did something like that for this year… It would really make scouting easier, especially when ur an owner of an iPhone or iPod touch like me…hehe :yikes:
My concern about this kind of a system for this year (we attempted something like it last year on my team) is the issue of whether or not wifi is quite as feasible. Frankly, our prior system of having one dedicated laptop for data entry and a couple of folks with pen-and-paper worked a little more smoothly.
I would like to think that we could potentially get some kind of data-exchange format though, between the various systems, so scouting could be shared during the week after a regional, even if we don’t all end up with the same system.
A data format would definitely be good to have all programs have the same file format, or at least the capability to support one. Having some sort of wireless system to get stuff to your drivers I have found is very useful. For the wifi you just bring your own router, but that only works if your pits are close enough (and they don’t restrict it due to the new control system)
Well, there is this thing called “sneaker-net” which we used to use in the “old days” - meaning someone gets off their tail end and walks over to the drive team to tell them the scouting.
But, yeah, I think that a compatible file format would be the best, since you can always transfer that, either over email, disk, USB-drive, or other fashion, and be cooperative with the scouting efforts. We had something in 2007 that we did last-minute for the finals between our team’s system and a few others… but if we build it in early, it’ll make life easier.
I agree that there should be one set format between all of these efforts. That way, someone can pick whichever system they like best, and still be able to exchange the same data to another teammate or team who uses a different system.
I think the best Scouting System. Is one that you have one database of information, but instead of updating afterwards (excel and pen and scouting sheet) you have an automatic system where your laptop database is automatically updated because you gather information via laptops or PDA and is sent automatically to the Laptop using bluetooth or wifi. That’s what we do on Cyber Blue, and last year it worked quite well.
Another trick is to keep everything on a rating basis. Data is much easier to handle that way. However, it is hard to get subjective information that way which is often a necessary part of scouting, thus you have one or two scouter taking notes on teams, drivers, etc.
I have been working on a database like what you’re talking about in Excel for about a year now. I have found that what works especially well is (like Jamie said) a single file that pulls Excel files from a specified directory and loads them into the database for sorting and calculations. Use Excel to scout on PocketPC’s, Laptops, or iPhones/iPod Touches, then use some sort of ActiveSync program or manually bluetooth them to another laptop that contains the database.
For the database itself, here are some nice features:
-An easy-to-use interface
-A data comparison table for the average/median values for each data point for each team
-Let the team that is using your database choose the data points to scout
-Export match sheets for the drive team
-View a picture of each team when you view its data
-Pit scouting capability as well as match scouting