No Inertial Sensor for PID

Hey, sorry if this is a “stupid” question! I’m new to programming (specifically C++), VEX, and the forums. I was curious as to if a PID controller (something I fully don’t understand) could be possible without an inertial sensor. We don’t have access to an inertial sensor or the AI vision sensor, so we’re kinda having to make do. Thank you guys!

A PID controller doesn’t inherently use any specific sensors, as it is just a method of making a value approach a desired value. It can be used for driving, turning, or even velocity control for a flywheel. For a turning PID, it is generally more consistent to use an inertial sensor than the motor encoders, but the latter still works. If you want a better understanding of PID controllers, I would highly recommend reading George Gillard’s An Introduction to PID Controllers (download it from here).

Thank you for your help! I’ll check it out.

If you’re asking how to calculate the error for the PID using motor encoders, the formula for the heading of the robot is (distance traveled by right wheel - distance traveled by the left wheel) / distance between wheels. You can convert from the degrees traveled by the motor to distance traveled for the wheels and measure the horizontal distance between the wheels. A derivation of this formula can be found in 5225A’s Intro to Postion Tracking Document.