Very impressed with the FRC Control System

After bag day, it’s nice to relax. I like going over what we did well and what we could do better.

I was a student on 308 from 2011-2014 and I remember how the control system was on those robots, and now my new team, 7226, has (almost) completely new/different control system.

One thing that went VERY smoothly is the control system of the robot.

The RoboRIO is quite awesome. Super resilient. Chips and other metal shavings get everywhere (especially when students are not careful drilling on the robot (protip: they never are)). That thing doesn’t care too much, and won’t fail because of one. Last year, we had a chip in our roborio that cost us a match, and it didn’t fry it, it actually told us where the chip was! (PWM Power rail)

CAN is very nice. It completely changes the game. The CTRE controllers (Talon and Victor specifically) are excellent. The Phoenix Tuner is awesome. Live graphs, very very fast PID tuning, easy configuration. I cannot complain. I remember tuning PIDs back with Labview on the cRIO. It took FOREVER. With the Talon and an AMT encoder attached, we tuned the elevator in less than 30 minutes. Our claw’s wrist took about 45 minutes. It’s crazy that we got all of that working so fast. The PIDs running on the controller with 1000Hz control loop time is incredibly fast and convenient. It makes programming much easier.

The Java library is awesome. I didn’t program on 308 (but did look heavily over the shoulder, and knew what everything did). Our rookie year, we used Labview because it’s something I was very familiar with, and was confident that I could get the robot programmed. This year, we went with Java. First, it compiles, deploys, and restarts the RoboRIO in less than 15 seconds. That is excellent compared to Labview’s 2-5 minutes. Second, the command-based system is excellent. I’m not 100% sure if everything in my code is correct, but man, does command based programming work well. To get the elevator moving took me about 20 minutes, from creating a subsystem, to the commands, to binding those commands to buttons. Even less for the claw and intake. Then I was just messing around and created a command group that executed a few commands in parallel (for our scoring and pickup poses) and that was so easy. It was very impressive.

We did have trouble with the new NEO and Spark MAXs that caused us a few wasted hours, but we got them figured out. I don’t like the connector for the CAN system for the SparkMAXs. They pull out easily and I prefer soldering them like I do for the Talon and Victors.

Also, the tutorials for Java are not great. I might make some of my own and post them. For example, I couldn’t figure out how to make a combination of buttons execute a command, the POV (D-Pad) on the controller is still not very clear to me, and figuring out the flow of the program was very hard to begin with. Also my naming conventions are all over the place this year, but I was in a rush.

The control system ended up being the easiest part of setting up our robot. Again, I was very impressed by how easily things were set up.

Congrats FIRST, NI, CTRE, REV, and WPI. (and anyone else I forgot to mention)


This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.