EP said our kids cheating when they use EZ template

Maybe a good time to revisit a memorable story of mine…

Sometime back when I was a late middle school student I wanted to learn PID. My robotics club offered a advanced programming session that covered PID and truthfully I got lost. I tried to watch youtube videos about PID but I still got lost.

Eventually QCC2 won vexu worlds and released their robotC code which included a minimal PID implementation. I was determined to understand it this time, so I printed their code out, laid it on the floor and traced it by hand. Looking back I didn’t really know C programming nor any calculus. Even some advanced math could have been useful to know (epsilon).

I think my naiveness helped. I just focused on trying to match patterns and using my knowledge of algebra to understand what each component contributed.

This gave me enough context to read and better understand George’s fabled textbook which was mentioned above.

It was not until we were learning Riemann Sums in an intro calc class that I realized that I had already grasped these calc concepts while teaching myself PID. I just didn’t have a name for it!

Retrospectively, I wrote a guide to pid that is aimed at students who have never been introduced to calculus. It emphasizes a few critical aspects of PID that guide a novice student programmer towards writing their own PID implementation. First, visualization: understanding that motion can be graphed. Second, math: understanding that a graph has features we can measure numerically using very basic concepts. Third, code: seeing concrete implementations bridge the theoretical gap.

If the main issue is student’s understanding of PID which is used in EZ template, I prescribe a read through of the PDF, followed by the resources linked below. Active learners will find this very rewarding!

Going back to the thread’s main question, I haven’t been involved with competing since 2020. Many of the new libraries, templates, rules, etc are unfamiliar to me. I personally see how using something premade is useful for competition (wpilib in frc :eyes: ) but other times it can raise eyebrows as OP mentions.

My opinion is that the PID algorithm is a very classical problem. It is a valuable engineering problem that taught me skills which I have applied to nearly every technical challenge I have faced since then. Writing your own (even if it does not see competition) really allows students to understand nuance in a complex algorithm and choose pros and cons as they see fit.