On the lack of innovation in software

There are only a few examples of a robot able to correct its mistakes.

Any closed loop control system can - and should - automatically account for and correct any imperfections. End of story. If it doesn't, then it isn't a good control system. You can do a buttload of stuff with only PID.

From the NI vision examples that can be used as is, to the already programmed PID controller, it is simultaneously confusing as to why teams choose not to use these, as well disappointing how these encourage teams not to develop their own control systems.

Well, we don't use them. We never have, and we most likely never will. Why? They aren't perfect. Why just take prewritten code and hope it works, when you can just use it as a base template and write your own that will perfectly fit your robot? If teams don't use a control system, then let them. Who the hell cares? It's not your team. If they have success without any PID or whatever, then they have success. If you don't have success with a control system, then you performed worse, and at the end of the day, performance is what matters. You don't go to nationals for putting effort into your robot. You have to win, or put effort into your community (EI/Chairmans).

If a student is motivated, it should only take them a build season to be learn how to program as well as program the robot. So what do they do with their future years in FRC? They become complacent. They don’t strive to improve in terms of robot code. Who cares what the programmers are doing as long as the driver is able to operate the robot each year without any bugs, right?

If a student is motivated, they don't become complacent. At all. If a student is motivated, he or she will try as best as they can to make the robot as best as possible. If a student stops after the robot works, then they are not motivated to learn - they are motivated to get by with as little effort as possible. This is the biggest load of shit I've ever heard. I've never been happy with our robot's code, even if we have multiple PID loops on the robot that are almost perfectly tuned and we make only 1-2 changes in the code per event.

In industry, there are far too many incompetent software developers. It’s scary to think about how much of our society relies on poorly written code. The same thing applies, all they care about is the end result, they don’t care how to they get to it.

How is this relevant to FIRST? Additionally, it's a load of bullshit too. Stop generalizing an entire industry after you've observed a couple of high school kids that want to go into that industry. It's despicable and embarrassing. Tell me the people developing Win10, Android L, iOS8, Mac OS, Ubuntu, etc, that they only care about being able to say they created an OS, and not about how the OS performs. In fact, at Finger Lakes regional, there was a lookalike R2D2 robot. It roamed around the pits and didn't get in anyone's way. Even with people crowding around it. It knew what and what not to do. The only mishap was that it saw a blank space at the entrance to the queueing area and drove into the queueing area, and it was easily fixed. Tell me that could have happened a few years ago with minimal effort.

I have yet to see another team find a solution to this besides replacing the battery

There are solutions. We've found one. We didn't actually use it this year because we weren't straining the batteries each game as much (we had less power-intensive subsystems this year compared to 2014) so it really made almost no difference for this year.

PIDs are capable of doing this, but it is isn’t given to teams at the beginning of the year, so they don’t bother.

No. Stop. Want to know the reason why? Because PID is a calculus based control loop, and many students do not learn Calculus until Junior or Senior year, let alone implement a control system based on calculus. The students are not confident in their ability to make it work, so they decide to invest time in other areas. When I first started looking into PID, I had absolutely zero fucking clue where to begin coding. Even with the assistance of a student who ended up at an Ivy League for CS, we still couldn't figure out how to do it. We spent 4.5 of the 6 weeks of the build season on it. The year after, we did get it working with the assistance of our first progamming mentor - yes, we got our first programming mentor in the clubs 6th year - and we have had incredibly precise and consistent PID ever since. Many teams do not have the resources or time to learn PID. Believe it or not, but not everyone teaches themselves calculus in their free time. I did and it greatly helped me understand PID, but I am still not 110% confident in my ability to perfect a PID loop.


Get off your fucking high horse. It's embarrasing. Not everyone has the time or resources to be the best. There are a multitude of reasons why some teams go to champs every year and why some have never qualified. There are a multitude of reasons why some teams are perfectly content with a 2nd-8th alliance finish (including us), and others won't accept anything except first place. There are a multitude of reasons why not everyone has the same goals.

Many teams struggle to even get the robot driving at the end of 6 weeks. We are a 7 year old team, and this year we struggled big time. We actually didn't get to test anything with code until 4 days before bag day, and then we spent 13 hours a day for 4 days straight on a practice field made of wood with 3-4 other teams doing the same thing there at the same time. And you know what? It was the most fun I've ever had. Music, coding, robot, and friends. Even though it was stressful beyond belief, I'm okay with it.

We didn't win an event this year. We've never won Chairman's or EI. We've won every award except Chairman's, EI, and Control System. But guess what - we're okay with it. Sure, we'd like to go to champs. But we aren't going to kick ourselves because we didn't qualify.

/r/FRC Thread