Below is a list of some project ideas for the class. You're also welcome
to propose your own STAIR-related project. We'll pick projects in the
class' first meeting.
Robotic Manipulation
In robotics, it is a fairly "easy" problem to pick up many objects so long as
we have a detailed 3D model of the object. However, if we are seeing a new
object for the first time through our camera (and other sensors), it is then a very hard problem
just to figure out how to pick the object up. Using machine learning,
we will develop algorithms to enable STAIR to pick up objects, and
eventually perform tasks such as unload a dishwasher, or manipulate items
around a kitchen. Planned projects include:
(a) Using touch sensing (haptic grasping). When a person picks up an object, our
sense of touch gives us a significant amount of information about
the friction properties of an object, its weight distribution, how
firmly we need to grip it, and so on. STAIR currently uses no touch
(haptic) information. In this project, we'll develop haptic grasping
algorithms for STAIR.
(b) Grasping using 3d sensors. Unlike humans, our robots are
not limited to a few senses such as sight and touch. In contrast,
modern robotic sensors can often directly measure quantities that
the natural human senses cannot; for example, one of STAIR's sensors
is a camera in which each pixel directly reports distance to the camera,
rather than light intensity. In this project, we will develop algorithms
to enable our robot to use such newly developed sensors to grasp and manipulate objects.
Computer vision: Object recognition using 3d sensors.
STAIR is instrumented with multiple cameras, multiple range scanners, and other
sensors. Using these sensors, we would like STAIR to be able to recognize any
of a large number of objects in the typical office environment. By using the
unique sensors on our robot, we hope to build an object recognition system
whose performance is well beyond the current state of the art. For example,
rather than recognizing a coffee mug just by its visual appearance (as in computer vision),
using a range sensor we may be able to recognize a coffee mug by
directly observing its characteristic curved shape. Concretely, in this
project we'll apply learning algorithms to object recognition, using features
extracted from cameras as well as from range sensors.
Developing algorithms and guidelines for whole-robot calibration.
On a complex robot like STAIR, there are multiple cameras, multiple arms,
and so on. Given a point seen in one camera, how can you figure out what
point this corresponds to in the laser scanner's output? And how can you get
the robot arm to move to that point precisely? It is one of the most
challenging (but important) problems in robotics to be able to calibrate
multiple sensors and actuators simultaneously; yet this problem is unfortunately
often solved in ad hoc, piecemeal ways that lead to poor performance of
the overall system. In this project, we'll develop general algorithms
and principals by which such calibration procedures may be attempted. The
basic envisioned approach is to collect lots of data using the entire
robot, after which we pose the problem of calibrating everything as one huge,
joint, optimization problem. We expect that the algorithms developed in
this project will be applicable to many other robots around the world as well.
Robot architecture: High-level decision making STAIR seeks
to integrate tools from all areas of AI to build a useful home/office
assistant robot. But having built a vision component, a manipulation
component, a navigation component, and so on, how do we tie together all
of these components to make the robot perform a complex task, such as
search a few offices for a stapler and bring it back to you? Also, what
if, after bringing the stapler back to where you were previously, it
doesn't see you immediately? Or what if it accidentally drops the stapler
halfway? Being able to organize all the steps a robot should take---and
making it intelligent enough to automatically handle any of the large
number of contingencies that may occur (but doing so without writing
thousands of line of code for every possible special case)---is one of the
most challenging problems in robotics. In this project, we'll develop
high-level decision making algorithms for STAIR, using a class of methods
called Teleo-Reactive programming.
Miscellany: More specialized projects.
Here're a few other project ideas that are more specialized to specific
technologies. I'd recommend you work on these only if you have particular
expertise and excitement in the topic described.
(a) GPU for computer vision. Current object recognition algorithms
are often extremely slow. In this project, we'll develop methods to
use specialized GPU hardware to accelerate computer vision algorithms.
(b) Cellphone interface for STAIR. Cellphones are ubiquitous,
offer a convenient, useful way to communicate with a robot like STAIR.
Using Android (Google's new open cellphone API), in this project we'll
develop a cellphone interface to STAIR.
Propose your own.
You are also welcome to propose any other research project that is relevant to STAIR.