[FRC Blog] Control System Beta Testing and Usage Reporting

Posted on the FRC Blog, 10/16/2024, by FIRST Robotics Competition Staff:

Control System Beta Testing and Usage Reporting

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.
22 Likes

93 LabVIEW users vs 92 Python…

LabVIEW and Python fighting for less users

two-people-fighting-fight

35 Likes

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!

28 Likes

Some pivot table breakdowns…

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.

Row Labels Count of Team
(2023.2.1) 1
(2023.4.1) 1
(2023.4.2) 1
(2023.4.3) 6
(2024.1.1) 507
(2024.1.1.1) 6
(2024.1.1-beta-3) 1
(2024.1.1-beta-4) 8
(2024.2.1) 783
(2024.2.1.1) 3
(2024.2.1.2) 14
(2024.2.1.3) 2
(2024.3.1) 987
(2024.3.1.0) 30
(2024.3.1-6-ge64c203) 1
(2024.3.2) 991
(2024.3.2.0) 37
(2024.3.2-5-gb2113d3) 1
null 1
Grand Total 3381

More Rio 2 teams than Rio 1 teams:

Row Labels C++ Java Kotlin LabVIEW Python Unknown Grand Total
1 75 1338 4 46 44 1507
2 101 1761 9 47 48 1 1967
Grand Total 176 3099 13 93 92 1 3474
19 Likes

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).

4 Likes

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?

1 Like

There’s a resource type for command that’s separate from the resource type for framework, they’re just combined into one column in the Excel.

Some charts:

34 Likes

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.

4 Likes

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.

Just an update on 2025 beta testing releases:

  • NI Game Tools Beta 1 is posted
  • WPILib Beta 1 is posted

No vendor beta releases quite yet.

6 Likes

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.

25 Likes

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.

3 Likes

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.

8 Likes

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

4 Likes

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.

8 Likes

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 :slight_smile:

1 Like

I guess they needed to add Flex motors to the reporting. It took a second to realize we only had 11 CANSparkMax.

My only other question was what exactly are the PIDController2 and PIDProfiled numbers? Ours were 213 and 72.

Here’s a CSV for your open-standard pleasure:
2024AnonymizedUsageData.csv (575.0 KB)

2 Likes