Given an inertia measurement unit, two motors, and a motor driver, we were tasked with making a self-balancing robot. Our team (Diego Caporale, Garrett Wenger, and myself) decided that we wanted a smarter robot, so I machined hall effect encoders to give us position feedback. With a Kalman filter on the accelerometer and gyroscope data, a PID controller on the drive, and a PD controller for drift, we built a self balancing robot capable of staying in place even after receiving a mild impulse. With encoder feedback, we could also balance on inclines. We built a wireless controller to take our acrobot mobile.