Sunday, February 26, 2012

Launching My Graduate Project

In the fall of 2011, I took Stochastic Signals and Systems at RPI Hartford with Dr. Mesyia, who is also my academic advisor. I approached him with an idea for a culminating graduate project. I wanted to design and implement a control for an arduino based two wheeled balancing robot, layering concepts from my classes into the design. He suggested I speak with Dr. Eberbach who had robotics research experience.

After discussing my background and project idea with Dr. Eberbach after one of his classes, he mentioned he would like to see more academic robot work and suggested I investigate classes and textbooks prior to starting the project. Taking that suggestion, I delayed my project one semester. Unfortunately, the recommended classes available at MIT and Carnegie Mellon could not fit in my schedule around work due to the travel time required. No robotics classes were available at local universities such as RPI and UConn for the fall semester that fit the bill either. Seeking alternative solutions, I thought it best to work through as much MIT OpenCourseWare material as possible while donating additional time to mentoring a local FIRST Robotics Team, 3182 - Athena's Warriors, for additional hands on exposure.

At the end of the fall 2011 semester, after working with Dr. Mesiya to get in contact with Dr. Eberbach again, Dr. Eberbach and I sat down on February 6th to discuss the project. We discussed the situation with the prerequisite scheduling, and decided the OpenCourseWare and mentoring would be enough to get started. We took some time to discuss the project options that were available, and decided that the original arduino project would be too difficult to complete in the time allowed. Since I would be creating the platform from scratch, the focus of the project would not be on the control design itself. As alternatives, my advisor suggested exploring the work on the robot the FIRST team put together to use for the project. Also, using my LEGO mindstorms platform designed for my control systems course could also be a potential option.

From these conversations I created my first project proposal and submitted it to Dr. Eberbach on February 13th. The proposal included a background section on how I got to where I am today with robotics, and a discussion of all the available options. Most importantly the proposal included a final composite of the definition and deliverables of this project: I would build a two-wheeled balancing robot from the LEGO Mindstorms kit, and implement a PID control with it's tuning values identified empirically, and using a linear quadratic regulator. I would also include video, code, and paper materials with the final deliverable.

A couple days later, Dr. Eberbach responds via email with some suggested improvements. Since none of the other options will be used in this project, they can be removed from the proposal. The background section could also be removed as he felt it unnecessary. He also suggested using evolutionary algorithms to tune the control rather than empirically or using the regulator.

Taking these considerations in mind, on February 23rd I submitted a second project proposal including Dr. Eberbach's suggestions, as well as an overview of mobile robotics and evolutionary algorithms. He accepted this proposal, and the project is underway! :)

Below is a copy of the second proposal's text. See the proposal for references.

Evolutionary Algorithms and Mobile Robotics


Overview of Mobile Robotics and Evolutionary Algorithms

A mobile robot is an agent who's main purpose is deeply rooted to it's ability to translate through its environment. The robot is situated in the real world and embodied by a physical chassis. However, for the purposes of simulation, the robot may solely exist in a virtual environment as a “softbot”. The robot's apparent intelligence is expressed by its interaction with the environment it inhabits. (Eberbach)

Mobile robotics is an area of increasingly active research with many academic institutions. This is especially true for mobile robots that have inherent instabilities and nonlinearities such as the class of balancing robots. These are generally difficult to control, but they also may provide more utility for a given task. (Fankhauser)

It may be possible to simplify the creation of controls for these complex mobile robotics using evolutionary algorithms. An evolutionary algorithm takes the burden of optimization off of the creator and leverages it with the system. From a space of all possible solutions, the poor solutions are removed, and better solutions are combined to create new solutions altogether. This is iterated using the space of new solutions until an ideal or suitable solution is found. (Eiben)

As it applies to mobile robotics, the evolutionary algorithm may be able to determine reasonable, if not optimal, tuning values for controls to keep the robot balanced. I would like to explore this area for my graduate project.

Definition and Deliverables

For my culminating graduate project, I will continue to build my proficiency in robot design and control using a two-wheeled LEGO balancing robot with some modest improvements derived from my earlier experiences at RPI. The overall design will remain the same enabling most of my focus to remain on the control. The only changes will use parts already in my possession, and will enhance the existing hardware for the control's ability to respond to stimuli.

I will then implement a PID control using tools such as Matlab and Simulink. I will use the Ziegler-Nichols tuning method to create a baseline of functional PID tuning values that at least keep the robot upright. I will then use evolutionary algorithms to determine tuning values which generate minimal overshoot and distance to keep the robot upright. These implementations will be deployed to the robot and it's behavior will be recorded.

For deliverables, I will record videos of the robot running each of these controls with a summary narration of their performance. I will discuss in detail the fundamental differences between the controls and their behavior in a paper. Throughout the evolution of the project, I will log my progress at least weekly in an internet blog at the address http://roboreflections.blogspot.com.