Proposals Due Friday March 28, 11pm

Presentations Friday April 11, in class

Demos Monday April 14, in lab

All Code Due Tuesday April 15, 11pm

Worth: 29% of your final grade

This final lab is intended to draw together the different capabilities you studied in the prior labs. Each group will define a project to implement an algorithm of your choice on the OHMM robot. Grad student groups must also identify one or more research papers in the recent research literature which relate closely to their project. All groups will have the option to use additional hardware.

Optional Hardware

We will make the following optional hardware available upon request:

Preparing the Code

Follow similar instructions as for lab 2 to update your svn checkout and copy the lab 5 framework into robotics/gN/l5.

Then rebuild and flash the LLP monitor code using the same procedure as for lab 2.

Finally, rebuild the HLP OHMM jarfile using the same procedure as for lab 2.


Each group must select an autonomous algorithm of interest and implement it on the OHMM robot. These algorithms can (and preferably should) leverage the capabilities you implemented in prior labs, but should add at least one significant new feature or capability. All projects are subject to the approval of the course staff during the proposal phase.

Given the type of robot we are working with, you should be thinking about algorithms in the areas of mobile manipulation, perception, wheeled robots, differential drive, monocular vision, point cloud perception (if using the Kinect), etc.

Pay careful attention to the amount of time you have available, and build in time to meet the various deliverables—written proposal, in-class presentation, live demo in lab, and code handin.

Graduate student projects must identify one or more key research papers (peer-reviewed conference or journal publications from the last 10-20y) which closely relate to your project. The clearest way to do this is to select one (or a few) papers which show how to implement something, and then implement it. Your implementation does not need to exactly follow the paper(s), but should be aimed to solve the same type of problem. Full bibliographic citations for these papers, including authors, title, publication venue, and page numbers, must be given in the project proposal and during the in-class presentation.

You may use existing reference code and external open-source libraries in your implementation, but you must clearly cite the original authors, as always. You may also use the provided solution code from prior labs (and you do not need to specifically cite the authors in that case unless you use—always with permission—another student’s solution instead of the officially posted one).

All your code must run autonomously (no human intervention). Clarifications and exceptions to this requirement may be made by discussing with course staff at the time of your proposal.

Possible example projects:

There are four components to the project:

  1. Proposal — Prepare a 1-2 page document, minimum 200 words, identifying your proposed project. Commit it to SVN and send an email with the SVN revision number as you would other homework assignments (no separate readme is required). The proposal document should summarize the algorithm which will be the subject of the project. It must include at least one graphic or figure that you create (do not copy a figure from elsewhere) which shows the key aspects of your sytem. For grad students you must also include at least one paragraph which explains the connection of your project to the research literature and one or more relevant bibliographic citations.
  2. Implementation — Implement the algorithm on the OHMM robot. Consider this carefully, as it will likely mean you will have to adapt or simplify the original algorithm or task to fit the cababilities of our robots. Like all labs, you will hand in this code by SVN on the final due date.
  3. Presentation — You will do a 10-20 minute group presentation in class describing your project. All group members must have some participation (talking) in the presentation. Please prepare some form of graphics to accompany the presentation, such as a video of the algorithm in action, or even just a diagram drawn on the board. In this short presentation we do not expect to see deep technical details, but we do want to see a good basic overview presented in a way that should be understandable to all participants in the course. Grad students must explicitly describe the related work you have found on the problem in the literature.
  4. Demonstration — Like all labs you will demonstrate your system for the course staff on the final due date.


You will be asked to demonstrate your code for the course staff in lab on the due date for this assignment (listed at the top of this page); 30% of your grade for the lab will be based on the observed behavior. Mainly want to see that your code works and is as bug-free as possible. Another 30% of your grade will be based on the written proposal and presentation, and the remaining 40% will be based on your code.

You will hand in your code following the general handin instructions by the due date and time listed at the top of this page. We will consider the code completeness, lack of bugs, architecture and organization, documentation, syntactic style, and efficiency, in that order of priority. You must also clearly document, both in your README and in code comments, the contributions of each group member.