paper: Citrus Circuits 2016 Scouting System White Paper

Thread created automatically to discuss a document in CD-Media.

Citrus Circuits 2016 Scouting System White Paper
by: William Frost

Technical overview of the Citrus Circuits 2016 Scouting System.

Team 1678 is proud to announce the release of a white paper on our 2016 scouting system!

The most successful iteration of our electronic scouting system yet, it allowed for seamless, real-time data collection, processing, and visualization within the constraints of live competition. The system was used by our strategy and drive teams for determining match strategy and alliance selection and overcame many of the limitations of the 2015 system (https://www.chiefdelphi.com/media/papers/download/4485). This white paper covers the physical requirements of the system, detailed technical writeups on each of the six component applications, and a summary of the calculations used in processing the collected data. In addition, 1678’s entire scouting process from offseason to Championships is summarized.

This system was a key factor in enabling 1678 to reach Einstein field this year, and previous iterations have contributed significantly to our team’s achievements. We believe that an electronic scouting system can be a powerful tool in helping other teams to achieve a new level of competitive success. In addition, such as system provides incredible learning opportunities for both programmers and strategists.

If you have any questions regarding our scouting system or constructing your own, please either reply to this thread or email us at frc1678@gmail.com. In addition, all of the code from the 2015 and 2016 scouting systems can be found on Github at https://github.com/frc1678.

2016 Scouting Whitepaper.pdf (6.72 MB)

Team 1678 is proud to announce the release of a white paper on our 2016 scouting system!

The most successful iteration of our electronic scouting system yet, it allowed for seamless, real-time data collection, processing, and visualization within the constraints of live competition. The system was used by our strategy and drive teams for determining match strategy and alliance selection and overcame many of the limitations of the 2015 system (https://www.chiefdelphi.com/media/papers/download/4485). This white paper covers the physical requirements of the system, detailed technical writeups on each of the six component applications, and a summary of the calculations used in processing the collected data. In addition, 1678’s entire scouting process from offseason to Championships is summarized.

This system was a key factor in enabling 1678 to reach Einstein field this year, and previous iterations have contributed significantly to our team’s achievements. We believe that an electronic scouting system can be a powerful tool in helping other teams to achieve a new level of competitive success. In addition, such as system provides incredible learning opportunities for both programmers and strategists.

If you have any questions regarding our scouting system or constructing your own, please either reply to this thread or email us at frc1678@gmail.com. In addition, all of the code from the 2015 and 2016 scouting systems can be found on Github at https://github.com/frc1678.

Just out of curiosity, why did you opt to use Firebase in place of a slightly simpler system (say FTP or SQLite) ?

FTP and SQLite would have been totally acceptable tools to use, and are commonly used for this kind of project. Firebase however did for us what FTP and SQLite would have done, but also did more. Using Firebase meant that syncing data between all apps, and the server, was something that we never even had to think about. It also meant that we never had to worry about what to do when an app was offline. The list of conveniences goes on. Good question.

Thanks for the explanation, and as always fantastic work and writeup!

TIMD? No, more like TSIMFD!

Seriously, amazing work on this. Have you had any other teams adopt this system? Can you help with providing support if we run into issues?

If you haven’t messed around with Firebase, I’d highly recommend it. I’ve personally found it much easier to implement and synchronize data with compared to SQLite.

Great paper. This definitely sets the bar high for Scouting systems. I hope my team can learn from this and further improve our system.

Yes, but check your harpoons at the door! Anyone who’s interested should message me or “WilliamFrost” and we’ll arrange more support. We can walk you through also how we organize our scouting and programming teams around this app.

I’ll what I believe is the most important point about this project: whether you become more competitive, the process of organizing the programmers, designing and programming the system, managing the system in real time at an event, and training your scouts all have tremendous training benefits for the students on the team. It provides a new avenue for learning computer science on multiple platforms, and organizational management. Our scouting lead programmer is our team captain this year because he demonstrated these management skills.

This system is fantastic, thank you for sharing! The analytics are really something else. The idea of ranking teams by compabitiility based on your own scouting data on yourself is really interesting and makes a lot of sense.

My question: how different were the rankings of teams by firstPickAbility from your actual first pick lists?

The first pick ranking and our draft list are usually very close. We usually switch our pick list on pairwise qualitative comparisons, but no team jumps from 6th to first.

However, there’s usually bigger distinctions among the teams in that pool than in the 2nd pick pool. That’s where we’ve been happy with the initial list we get out of our scouting app. We do move teams up and down quite a bit on that list, but we find hidden gems, and we can confirm or deny some of our qualitative impressions with the data we have.

I did some research on doing something similar on a budget. It doesn’t appear the Kindle Fire 7 tablet has native support for bluetooth file transfer. After a bit of digging it sounds like it may be capable with side loading which you need to do to install your own app anyway, but I haven’t found much as far as confirmation. Any one tried this or have a Fire that can?

Great question Mike!

We are looking at expanding our scouting system in 2017, so we need more tablets. We bought 3 Kindle Fire (7?) tablets during Amazon Prime Day, the kids are doing testing with them this fall. We’ll see what the bluetooth is capable of.

-Mike

What additional data are you looking at collecting?

Sorry to be elusive, but I’ll let the Scouting Lead decide what to share. If we keep it close to the chest, expect all the details in our 2017 White Paper :smiley:

Side note: Thanks everyone for all the positive feedback on the White Paper. The kids put in a lot of time to this documentation, this community really helps drive our students forward in their technical and communication skills.

Thanks,

-Mike

Other than the design of the app, this looks very similar to what my team did this year. Great job with the scouting app, I think all of your success this year shows that it works!

How was the automated bluetooth syncing executed? I have limited knowledge of bluetooth, but I’m under the impression that bluetooth is a 1-to-1 communication technology. How do you manage these connections and data transfer?

Bluetooth is actually one to many. IIRC one server can connect to 7 external devices at one time.

saikiranra is correct, through the maximum number of connections is slightly more complicated. The number is usually seven, but can vary between devices. A good brief explanation can be found at http://superuser.com/questions/332767/limit-to-the-number-of-devices-that-can-be-paired-with-a-bluetooth-device.

Each of the super scout tablets (red and blue) is connected to the three scout tablets for the alliance. The scouts are able to transfer their files via this connection to the super scout. In addition, the scouts can request the competition schedule from the super scout, which is then sent from the super scout to the scout. For the technical details of how the bluetooth connection works, I would recommend looking over the Bluetooth connection code in the scout and super scout apps. Below are links to the files that control most of the Bluetooth connection.

Scout:
https://github.com/frc1678/scout-2016/blob/master/Scout/app/src/main/java/com/example/evan/scout/ConnectThread.java
https://github.com/frc1678/scout-2016/blob/master/Scout/app/src/main/java/com/example/evan/scout/ScheduleHandler.java
https://github.com/frc1678/scout-2016/blob/master/Scout/app/src/main/java/com/example/evan/scout/MainActivity.java

Super Scout:
https://github.com/frc1678/super-2016/blob/master/BlutoothSocketReceiver/app/src/main/java/com/example/sam/blutoothsocketreceiver/AcceptThread.java
https://github.com/frc1678/super-2016/blob/master/BlutoothSocketReceiver/app/src/main/java/com/example/sam/blutoothsocketreceiver/AcceptLoop.java

Just had a chance to check out all of this. Thanks for sharing, it looks awesome! I think we might look into using it at Chezy Champs and CCC.