There’s been a lot of discussion about templates and libraries in VEX Robotics Competition, especially things like LemLib, and I think both sides have a point.
On one hand, tools like LemLib make it much easier to build strong autonomous programs. Features like odometry and motion control used to take a lot of time and effort to implement, and now they’re much more accessible. That can make it feel like the barrier to “good code” is lower, and some of the learning process is being skipped.
At the same time, using a library doesn’t automatically make a team good. You still need to understand how your robot behaves, tune your constants properly, and debug when things don’t work. A team that truly understands their code will almost always outperform one that just copies a template without deeper knowledge.
I think this is less about whether libraries are “good” or “bad,” and more about how they’re used. They can either be a shortcut or something that helps teams improve in general and teach them about vex programming.
We are a first year team and i really just wanted to know what everyones opinion on this whole thing is.
For a new team, libraries are highly recommended because they provide a pre-configured project structure that prevents you from getting stuck on low-level setup issues. They serve as an excellent “living textbook” where you can see professional-grade coding practices in action while remaining competitive on the field.
Uhhh, for a new team, I would reccommend the exact opposite unless someone has a strong C++ and math background. Otherwise, they proably wouldn’t understand the template and would be at risk of a G4 violation.
@2544x, if you can explain how odometry and PID works, and make your own version (even if it isn’t as good. Its just good proof that you are able to make a better one with more time), I would say that you should use a template. But if you can’t explain how all of these work, then you would be violating G4.
I understand what youre saying and I(Team programmer) have a really good idea of C++ ive built games for Unity and godot that forces you to use C++ so i think im covered on that part but my knowlegde of PID’s and Odomotery is kinda limited I understand Odometry is kinda like mapping the field and the robots able to like track its exact position on the board, and for PID’s for my understanding is like a technique that you use to find the errors between the desired movement and the current movement and correct it using values like KP and KD i made a rough version through the python vexcode v5 website and it worked pretty midly tbh.
I think it is important that a lot of learning happens when you try to figure things out, fail, and lift yourself back up and figure out what did not work.
My middle school team was presenting in front of school committee, and one school committee member asked about how PID could make using joystick controller easier for driver. The coder who explored PID, and figured out that he could only understand the P part of PID (you know maths in school covers I and D in calculus ), explained that really PID functions were great for autonomous where driver could not correct errant paths, but if you want to have finer control on joystick to make accurate control low speed, but still have 100% high speed, a cubic function would be appropriate.
You are correct, templates/libraries may yield something looking good, but when they fail, the templates/libraries will never help compared to skills you acquire from figuring it out yourself.