The goal of this project is to drive a three wheeled robot (drive wheels in the rear and a castor up front) for a set period of time and then have the robot repeat the path when commanded to. This is implemented in two different ways--with a open loop control and a feedback control.
Both of these systems are integrated into a single program. The features of this program are shown and described in the first video below. When the program starts up, the motors can't be run via the joystick until a control system is chosen. This is chosen by pressing switches 1 and 3 (open loop) or 2 and 4 (feedback). The system then waits for a signal from the joystick. When the first signal is given, wheel data is recorded for 31 seconds. The time elapsed is shown on the LED array beside the switches. Once the 31 seconds are over, the joystick input is turned off again so that the joystick can be unplugged. When all four switches are pressed, the system pauses for 2 seconds and then plays back the wheel data.
The open loop control applies a constant voltage to each wheel. The signs of the voltages are flipped depending on the direction of travel. The feedback control keeps track of the angular distance traveled by each wheel. Depending on the required direction, it adjusts the voltage to ensure that the proper distance has been traveled. The difference between both of these can be seen in the second video below. As shown in the video, the open loop system drifts much more, since it doesn't have any feedback to adjust the wheel torques if the castor gets out of line.
The joystick input is filtered using a discrete 10 tap averaging filter to remove any fluctuations that might give unwanted motor movement. The feedback control that is used is a PI (proportional integral control), with a separate value calculated for the left and right motor. Integral windup is also accounted for and removed in the PI control.
This project was done for Mechanical Engineering 461 Computer Control of Mechanical Systems at the University of Illinois at Urbana Champaign. For questions regarding the class or kit used, you can contact Professor Block (d-block@illinois.edu)
Comments