STANFORD

 CS294A
 Project Suggestions


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.
  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. Propose your own.
    You are also welcome to propose any other research project that is relevant to STAIR.


Comments to cs294a-qa@cs.stanford.edu.

Home Page