The Control System software teams have been hard at work over the summer making various improvements and bug fixes and are about ready for teams to jump in and start testing. The testing will again be facilitated using a public GitHub project. The GitHub project is live now, and software is expected to be posted within the next few days.
2024 Usage Reporting
One of the most helpful tools we use for robot rules and technical decision is the data collected from the Control System “Usage Reporting”. This feature tracks what WPILib objects are created in each team’s code and reports that data back to the field when the robot is connected. Data from the 2024 season can be found in this zip folder. Some notes about the data:
The data has been anonymized. Team numbers have been removed and the data has been re-sorted so teams are not in order by team number. We can only track the objects teams create in code. If a team creates extra motor controllers that aren’t on the robot, they will still be captured by this system. If a team creates motor controller objects of the wrong type, that wrong type will be captured by this system.
Some objects naturally result in double counting (e.g. Encoders use Digital Inputs).
Counted objects and TRUE/FALSE show the largest number of any given object used in any one match (i.e. if a robot plays match 1 with 3 Encoders and match 7 with 2 Encoders, 3 will be reported). This means that if a team switched motor controller types, or IMUs, or anything else during the season, the sheet will show numbers for both devices. Language and Framework report what was used in the last recorded match.
A bug in the reporting resulted in many of the newly added items not being recorded properly. These have been omitted from the data.
Actually, I’m near-certain one of those LabVIEW users is not actually using LabVIEW (I think team 900 reports as LabVIEW as a joke, but is actually using ROS with C++). So it’s a tie!
Languages and frameworks: 331 AdvantageKit users. Java command-based is the most used framework by a large margin. There are almost as many teams using AdvantageKit as there are C++, LabVIEW, and Python teams combined (361).
Row Labels
AdvantageKit
CommandControl
New Command
RobotBuilder
ROS
Timed
(blank)
Grand Total
C++
90
1
83
2
176
Java
331
2200
23
540
5
3099
Kotlin
4
8
1
13
LabVIEW
4
1
1
87
93
Python
45
38
9
92
Unknown
1
1
Grand Total
335
4
2344
24
1
662
104
3474
Versions: some teams were still using beta versions, or even 2023 versions (must have been missed in inspection). Lots of teams don’t ever update after kickoff.
Or re-flashed back mid competition and didn’t re-inspect.
TIL the FMS doesn’t detect/flag this. I guess it doesn’t “matter” as long as the RIO image and the wpilib version align, and the DS can still talk to it (and ESTOP it).
I’m curious how they determined New Command vs Timed robot framework, as I thought that you use TimedRobot as the Robot.java, and then call the CommandScheduler at the appropriate times in Timed Robot. Am I not remembering the templates right anymore? Did FIRST put in some filtering to handle this case?
These graphs are always telling of trends, I’m glad you do them!
The crazy one for me is the Kinematics, that is showing that at least 1966 teams are now swerve, or 56.6% of them. That graph has almost doubled year over year since 2022.
I’m struck by the impact of Covid on FRC. We’re not even back to 2019 levels as of 2024
I do wonder if this trend in pneumatics will continues. They still hold a special place in my heart but that might just be because I remember how hard it was to get strong, straight-line motion in ye olde days. In the age of brushless motors and COTS linear actuators, the trades for pneumatics don’t close as often
For number of teams, unfortunately since Covid’s many sponsors have lessened their amounts given, plus costs have gone up.
As for pneumatics, there are some years where pneumatics makes much more sense. But also we have more motor and cots that can help circumvent the need for pneumatics. Some teams prefer to use motors with more reliability and one less item to fail.
I think it will continue, it’s just easier than ever to do position control with a motor now.
To that point I think we should consider banning pneumatics in the future (3-5 years from now), it’s a complicated section of the rules and more work for inspectors and teams and with so few teams using them just removing them from the rules makes sense.
Pneumatics is great resource for lower income teams, and can help provide great real world experiences. But I also see the reality where it takes alot of work off inspection, and possibly with the new systems in 2027 having it phased out fully to make some logistics easier.
I think this game just didn’t have as many use cases for pneumatics as some previous years. Several years of a roughly 50-50 split followed by a drop for one season doesn’t indicate much of a trend to me quite yet.
Cost is a big factor here. A brushless motor and motor controller is probably about $200. A valve and a cylinder can be significantly less than that
I think this is just another one of those examples of how this program has changed over time. When there was a lot more restrictions on actuators, then pneumatics filled a pretty big hole. As the other options for getting things to move having increased (albeit with a cost increase) that role for pneumatics has shrunk
It was always a great feeling as a robot inspector to be able to cross that entire section off the list though
Sure a cylinder can be less than a motor, controller and linear actuator, but you also need to add the costs of the solenoid, air tanks, a compressor and a Pneumatic Hub for a fair comparison.
I wholeheartedly agree - too many failure points on what’s typically a critical actuator (and a pain to inspect and help troubleshoot).
I won’t clutter this thread with it, but this reignited a desire to continue to develop a mechanism component we didn’t wind up using last year. The niche for remotely powered linear actuation still exists. I’ll start a new thread soon