CS23 - Software Design and Implementation - Spring 2010

The Sensor-Bot Group Final Project

Latest News & Announcements   Useful Material   Teams & Robot IPs

There are no lectures during the last two weeks of the course. During this time you will be working in teams programming Gracia robots.

The project will pull on all the skills you have developed so far but will provide a set of new skills needed to do cross development and embedded systems programming and debugging. This completes the hackers toolkit that you can be proud of. We will do distributed programming using sockets, mutable threads for embedded Linux.

We have added a mote sensor to the bot that allows it to interact with a sensor network built across the CS department. We have also added a camera to the bot. You will write the controller that runs on your laptop and the server side on the rob - all in C and Linux. Once your ready your bot will go on a treasure hunt. The final task is the CS23 remote controlled bot race.

This web page contains resources and news affiliated with the final project. Please refer to this web page for announcements and clarifications as you develop your project.

Project Description

The Project Description page contains a high level overview of various aspects of the project, including introduction, goals, major system component decompositions, API functions, gradings and certain rules. Make sure you check it out and are familiar with all the information.

Project Milestones & Requirements

Kick off day - what you should do today?
1) get your bot;
2) review the material on the project web page;
3) set up a team meeting to discuss the design review, who is doing what, set up SVN, essentially, get organized;
4) check out what you need for your design review (see below).

From the introduction webpage: The project is made up of a small team (three or four people) and requires strong collaboration and a problem solving mindset to get the job done. The instructor will put the teams together with each member being responsible to deliver against a part of the overall system design, implementation, testing and integration.  The goals of this activity are to help you develop the confidence, skills, and habits necessary to write large computer programs while part of a multi-person team. You will become conversant in software engineering paradigms, and be exposed to various public-domain and open source tools that make the software development process easier. In addition, you will develop vital skills in self-directed learning, problem solving, and communication. The project will have a design and code review as well as the demo.

A project report that captures the design and implementation will be submitted as part of the assessment. The report should be 10 pages max, including

1) Thread design of client and server
2) Design Specs
3) Implementation Specs
4) GUI screen dump
5) Lesson learned

The project potion of the course grade is large: 30% of the overall grade.  We give the same grade for the project to all members of a team unless it is clear that people aren't equally pulling their weight. There has not been a year when we didn't give the same grade to all members of a team.

The following set of deadlines are important for the progress of the project. Please note that you need to provide documentation for the design and code reviews and the final project submission.

4-7 PM Thursday May 20 design review. The project review should include requirements, Design Spec (inputs/outputs, data flow, data structures, pseudo-code) and functional decomposition. We are particularly interested in how the functions map to threads on the client (unix machine/laptop) and server (bot); we will discuss the threaded design in the review. We are also interested in who is doing what. The project review material is due 12PM the day before review Send tarball documentation to realcs23@cs.dartmouth.edu

4-7 PM Thursday May 27 code review. The code review should include the Implementation Spec and whatever code is written up until the review point. The code review material is due 12 PM day before review. Send tarball of your source tree to realcs23@cs.dartmouth.edu

4-6 PM Wednesday June 2 demo or die day. Project presentation (design overview, lessons learnt, etc) and demo of project.

24.00 hours Thursday June 3 project reports due.The report written in latex includes description of the project, the Design Spec, functional decomposition of the system, Implementation Spec, lessons learnt. The appendix includes all code and unit tests. All material should be signed into the teams cvs project page. The PDF of the project report should be sent to realcs23@cs.dartmouth.edu

News and Announcements

Demo or Die Signup

Code Review Signup

Design Review Signup

Useful Material

Link Notes
GTK Tutorial
Slides (including GDK)
GTK tutorial.
Acroname Garcia Website Acroname's website for the Garcia robot. See the lins in the upper right hand side of the page.
Portal Binary Portal base solution to test your robot.
Garcia Tutorial Introduction to Garcia robots slides (originally by Pan Wei).
Garcia Develeopment Tutorial Pan Wei's tutorial covering compiling for the Garcia and the APIs used to interact with it.
Garcia Sanity Check Document describing how to set up robot, ssh into it and run sample controller.



Project Teams