Controls Engineering in FRC
Updated: Jan 6
Recently, I've gained lots of interest in the math and physics behind some common control problems, such as the inverse pendulum. Controls engineering is important of part of many of the robotic systems that I hope to work on in my future and also an important part of spacecraft that I hope to be involved with. Lucky for me, I don't have to look far for experience as we have many challenging controls problems in our FRC software team.
If you are wondering what controls engineering is, this video sums it up perfectly. Controls in robotics is similar, and there are a few specific things I am looking to focus on. Controls has three major branches in terms of robot movement: Motion planning, motion profiling, and path following.
Motion planning involves creating trajectories along a playing field or from a robot using onboard sensors or estimated distances. This can become a challenging problem in many ways. At the end of the day, the idea is to move from point A to point B to point C in the most optimal way, which in our case means time. Simply driving in straight lines to each of these points and turning will likely not be the fastest path, and even if it were we would still need a model to determine how fast the robot should be going at each point on the path. To build a good trajectory, we must take many parameters and develop some set of equations along the coordinate axis of the robot that rounds points and corners in a manner that optimizes for time.
Motion profiling involves taking parameters from the motion planning and making it robot commands. For example, if we develop a plan on how the robot should accelerate on a path, we cannot send that to the robot, but must instead break that into, say, velocity commands at certain time intervals which would translate to voltage commands for the motors. Motion profiling in robots creates large amounts of error due to unforeseen things, such as slop in a gearbox that causes the motor to spin independently of the drive wheel for a short time period, but long enough to throw off the trajectory.
For that reason, we have the path following. Path following uses data from external sensors, such as the encoder that is attached to the drive wheel, to determine whether the robot is off the path, and if it is, the path-following algorithm will recalculate a profile to get the robot back on the path.
Each of these three have their challenges and are difficult in their own aspects, meaning there is much to learn!