15-494/694 Final Project Ideas

These are just suggestions for final projects. You are more than welcome to propose your own final project ideas if you think of something that interests you.

Visual Search

  • The goal is for Cozmo to locate an object such as a cube or custom marker.
  • An initial strategy is for him to rotate in place until he's swept through 360 degrees. But what if this doesn't find the object?
  • Wandering randomly is dangerous because Cozmo cannot detect the edge of the table. He also risks running into obstacles (other than walls) he can't see, which will mess up his odometry.
  • The solution is to maintain an occupancy grid representation of obstacles (walls) and safe space. Any space between the robot's current location and a visible wall marker is obviously unobstructed and can be marked as safe. Also, assume any space within 75 mm of a wall is safe.
  • Cozmo may not know the initial wall configuration, and he can't see what's on other side of a wall, so he will have to explore by passing through doorways, discovering more walls, and checking each side of each wall. He will also need to look behind cubes in case another cube or marker is lurking there.
  • The occupancy grid will also record which parts of the space have been inspected. Uninspected areas (such as the area behind a cube or on the other side of a wall) become candidates for exploration.

The Kidnapped Smart Robot Problem

  • The "kidnapped robot problem" is when a robot is picked up and moved to a new place, and must then figure out where it ended up.
  • The cozmo-tools particle filter responds to this by randomizing the particles and trying to use landmarks to re-localize. But what if no landmarks are visible in the camera image?
  • This project will develop smart strategies for searching for landmarks to help the robot self-localize. This will involve moving both the head and the body.
  • The problem is more difficult when the robot is in a tight space because collisions with walls or objects can throw off its odometry.

Cozmo's Magic Dream House

  • We have code for navigating the Dream House and operating the elevator. See this video
  • Develop new Dream House capabilities such as recognizing portraits on the wall (Cozmo has face recognition) and reporting who is in what room.
  • Program Cozmo to lead a visitor to a specified room.
  • Program Cozmo to give a tour of the house. Imagine it's some famous house like the Carnegie Mansion and give historical tidbits as part of the tour.

CNN Partial Cube Detector

  • Cozmo can only detect a cube if it lies entirely within the camera field of view. If a cube is only partly visible in the camera frame, he can't see it.
  • Train a convolutional neural network (CNN) to recognize partial cubes, so that Cozmo can know to make a small turn left or right to bring the cube entirely within the camera frame.
  • This could greatly speed up visual search.

CNN Obstacle Detector

  • Right now the only obstacles Cozmo can detect are cubes and walls.
  • It would be nice to be able to make other types of obstacles, such as soda cans, detectable by the robot, so that we could construct an obstacle course.
  • Develop a distinctive pattern (say, diagonal black and white stripes) that can be placed on an obstacle to make it visually distinct.
  • Train a CNN to recognize obstacles and write code to add the obstacle to the world map.
  • Demonstrate Cozmo navigating through an obstacle course

CNN Gesture Recognition

  • Use a pre-trained deep neural network as the hidden layer for a new, rapid feature learner.
  • See gesture recognition demo at the Teachable Machine.
  • Teach Cozmo to recognize hand gestures using the GPU.
  • Links: Teachable Machine source, and news blurb.
  • The original version of Teachable Machine used SqueezeNet. The current version appears to use MobileNet.