Teaching
This year, four new robotics members were put in my charge, against the best judgement of everybody else. I was tasked with teaching them code that I had learned but one year prior. The disciples had varying levels of prior code knowledge, some had coded with robotics before, some had never taken an CS class ever.
I named this group The Disciples, and taught them PID and Feedforward motion controls, the core of robot code. To do this, I had to teach them object-oriented programming, which is an sisyphean task.
PID
Explanation for what each of the constants do
PID a simple motion controller that stands for Proportion, integral, and Derivative. The goal of PID is to output a voltage based on a distance to a desired position. The amount of voltage is proportional to the distance, meaning the further away the motor is, the faster it goes. The derivative reduces the amount of oscillation by slowing down when error is changing slower. As for integral portion, if the distance is constantly just a little bit off, eventually, it will accumulate and push to hit the goal.
FeedForward
Trapezoidal Motion
Unlike PID which is a feedback system, FeedForward is a Feedforward system, meaning it predicts before hand the path and voltages to take. After taking an initial measurement of current position and goal a trapezoid is constructed by working with constants. This trapezoid models velocity over time, with the area under the trapezoid being the distance desired to be traveled. Then, the motor follows the trapezoid, accelerating and decelerating when necesary. Before T1, it accelerates as much as possible. After, T1, it reaches its max speed and coasts until T2, when it starts decelerating. Then, it stops at what should be the intended position.
The disciples are the most difficult challenge any class has offered me. Teaching was difficult due to the varied code experience, and I struggled to find a balance of how fast to go as to not leave people without work while not leaving others behind. Unfortunately, many also struggle with addiction to mobile games. Rehabilitation programs have failed to yield results. I also had to relearn a lot of the curriculum (that was made up on the spot) in order to be able to teach it in understandable terms. However the results of teaching them have been very rewarding.
Here are some quotes I did not force them to give:
“Eddie always pushes us to be our best”
- CJ, Class of ‘25
“Working with great people makes you great, you learn a lot and also gives you the experience and confidence to move on with your career”
- Erim, Class of ‘26
“He taught us how to code stuff very well”
- Wade, Class of ‘27
“Eddie was an amazing mentor who taught me how to code… and now I know how to code. I am the coder that I am today because of Eddie”
- Dana, Class of ‘27