Research Overview

My broad research goals involve improving the performance of teleoperated systems with complex, difficult to model dynamics. These systems, such as snake robots, have no analytic motion model. This renders many traditional robotic planning techniques and other algorithms useless when applied to this system. I am interested in algorithms that can apply to such systems, improving their performance, extending their existing locomotive capabilities, and simplifying the user workload by increasing the level of autonomy of these robots.

Additionally, I am committed to ensuring the methods I develop are not solely applicable to snake robots, or even robots in general. Rather, I want to ensure that these methods apply to a large class of problems. Similarly, I will seek techniques used in other disciplines that can be introduced to the robotics community for the benefit of both fields.

I am also passionate about search and rescue robotics, and feel that this is a area with great potential for contribution. I feel that improvements in locomotive performance and capabilities and better situational awareness are key for many systems in order for them to be considered feasible solutions for these important tasks.

To work towards these goals, I am focused on the following more directed research goals.

Modular Software Architecture

In order to control any complex system, especially in a research environment when design is fast-paced and goals are constantly evolving, it is important that the software be understandable, maintainable, and robust to failure. To this end, I believe that creating a modular software architecture for robot control is important. Furthermore, when creating such a modular system, the quality and foresight of the interface design are the key to a successful end result.

Good, well documented interfaces allows quick contributions from new developers, as they only have to initially understand the interface and a single component. It also simplifies the understanding of the entire project, as the correct level of modularity should allow a high-level picture to capture the important cause and effect relationships. Finally, if these interfaces are well thought out, it helps the code not only remain maintainable, but also allows simple expansion with new features and components. Of course, a perfectly future-proof interface is impossible without knowing future design constraints, but a well designed specification will usually require less modification.

Learning for Expensive Systems

When optimizing the performance (speed, efficiency, robustness, etc.) of difficult-to-model systems such as the snake robot, sometimes the only method to test a set of control parameters is to evaluate the parameters on the real robot. Unfortunately, each of these evaluations can take considerable time, and robots are not yet robust enough to undergo testing 24/7. Therefore, this optimization must be performed with consideration for the limited number of available evaluations.

Furthermore, many traditional optimization methods (such as gradient ascent) assume that any objective function evaluation is paired with the value of the gradient at that point, whereas evaluations of physical systems or large simulations often do not provide this information.

I am interested in exploring methods to best accomplish this expensive optimization. I believe that the general approaches used for these problems can be extended to a number of variations of the expensive optimization problem that are perhaps more realistic and useful for generating robot controllers.

Improving Situational Awareness

Although the level of autonomy that robots are capable of is constantly improving, I believe that there is still a long way to go, and that including humans in a high-level control loop will improve the effectiveness of any robot deployment. However, I feel strongly that to most effectively use the human, we must reduce their computational workload by eliminating other tasks that can be automated. Finally, useful and relevant information fed to the operator is critical to improving performance.

During current snake robot deployments, one of the largest problems is the lack of operator situational awareness. Tasks that are simple when the operator can view the robot become nigh impossible when the only position information available is that seen from a tiny camera on the snake. This problem is not restricted to the snake robot; repeatedly in deployments of teleoperated robots, the driver gets the robot stuck on small small unseen obstacle, or tumbles off of a ledge, or drives the wrong direction, all because of poor situational awareness.

I am interested in pursuing solutions to the problem in a number of different domains -- better software and visualization to convey this information to the user, machine learning algorithms that analyze sensor feedback to gain a better understanding of the world, and hardware improvements that add useful sensors and cameras that work with existing systems.