Lab 12: Inverted Pendulum Control
In Lab 12, I embraced the open-endedness of our last assignment and worked on the challenge of turning the car into an inverted pendulum.
Hi there! I'm a PhD student in Aerospace Engineering at Cornell, interested in the intersection of robotics, autonomous controls, and sustainability. Before college, I was a software developer in California's Silicon Valley.
I took Fast Robots in Spring 2024 as an undergrad in Mechanical Engineering, before deciding to stay in Ithaca for grad school. This collection of lab reports now serves as a record of the many hours I eagerly invested into the class.
If you're a student in a future semester of Fast Robots, I hope my rambling herein helps you in some way. While I was very successful in the class, note that these reports aren't the full story and I also lost the odd point here and there. So take what I've presented merely as one possible approach and keep in mind that your lab instructions are most likely different than mine.
In Lab 12, I embraced the open-endedness of our last assignment and worked on the challenge of turning the car into an inverted pendulum.
In Lab 11, I used the orientation mapping system from Lab 9 and the Bayes filter from Lab 10 to localize the real car in our lab arena.
In Lab 10, I used a Bayes filter to achieve grid localization of a virtual robot in a simulated 2D environment similar to the arena set up in our lab space.
In Lab 9, I used orientation control to map the edges of a physical space by incrementally taking TOF distance readings from several positions.
In Lab 8, I used distance measurements and orientation control to have my car perform a drift in the form of a 180 degree turn after running at a wall.
In Lab 7, I drove the car at a wall as fast as possible and used the ToF readings to find the steady state speed and implement a Kalman filter in simulation.
In Lab 6, I used IMU yaw measurements to implement a PID controller that points the car toward a particular heading and maintains that orientation.
In Lab 5, I used ToF distance measurements to implement a PID controller that drives the car toward a wall and stops just short of crashing into it.
In Lab 4, I added two dual motor drivers to the Artemis, replaced the factory circuitry in the RC car with my own, and tested and tuned the car's motors.
In Lab 3, I added a battery and two VL53L1X Time-of-Flight (ToF) sensors to the Artemis, then tested the sensors' capabilities, range, and accuracy.
In Lab 2, I configured an inertial measurement unit (IMU) and used its accelerometer and gyroscope to compute pitch, roll, and yaw.
In Part B of Lab 1, I configured the Artemis Nano Bluetooth connection and experimented with its capabilities and limitations.
In Part A of Lab 1, I configured my MacBook for development of the SparkFun RedBoard Artemis Nano and tested some of the board's features.