CS482: Robotics - May 2003
Chris Hardie - Department of Computer Science - Earlham College
CS482 explores the theory, technique, and practice behind autonomous mobile robotic systems. The course uses hardware, software, and mechanical tools to investigate the issues and ideas associated with these systems, including robot design and construction techniques, software design, feedback control, emergence, randomness, practical debugging, communications, data collection, and collaboration. Students will participate through research, lab work, and personal and group projects. Experience with electronics is helpful but not required.
The majority of the in-class time will consist of students building and programming robots, and structured exercises in LEGO mechanics, sensor principles, software design, and practical programming. Other in-class time will consist of lectures and research time. All of this work will be geared towards comprehension of the topics and achievement of the objectives listed below.
We'll start out meeting from 9 AM to 12 PM, Monday through Friday, in Dennis Hall 128 (ENI/Robotics Lab). This may be adjusted as needed. Given that this is a 3 credit course, it's expected that you'll spend an average of 8 hours per weekday (including in-class/lab time) on the course and related material for the duration of May Term.
Chris Hardie
E-mail: chris@cs.earlham.edu
Website: http://www.chrishardie.com/
Chip Yeakey
E-mail: chip@cs.earlham.edu
Hanna Rabah
E-mail: rabah@cs.earlham.edu
The primary text for the course is Robotic Explorations: A Hands-On Introduction to Engineering by Fred G. Martin (Prentice-Hall, Inc., 2001).
The Handy Board Technical Reference by Fred G. Martin, included in the robot kits, is also used to clarify and expand on some of the information found in Robotic Explorations, but most of its contents correspond to the appendices of the book.
All reading assignments are inclusive unless otherwise specified. Readings are due as specified in the course schedule, and completion of readings will be factored into the participation grade. Other readings in the form of websites or photocopies may be assigned as the course progresses. Additional recommended readings may be found on the resources page.
Each class member should maintain a regularly updated journal. Each journal entry should contain some or all of the following:
The purpose of the journal is to help you track and learn from your work in the course, while providing an opportunity for reflecting on the "big picture" of robotics and related topics. It is not meant to be a blow-by-blow account of the class, and if you find yourself copy/pasting from previous entries, you're not using it as intended. As well, one cannot be expected to make effective use of the journal by creating a week's worth of entries in one sitting.
Journals should be maintained as a publicly accessible electronic document, preferably a web page. Feel free to include any sketches/images that might enhance your entries. You should send the instructor a link to your journal location within the first few days of class.
The research paper will allow you to explore a topic related to robotics that will not necessarily be addressed by the work we do with the HandyBoard robots. You should frame a question that A) is of personal interest to you, B) requires library research (including scientific journals) to answer, and C) goes beyond the area of simple autonomous mobile robots like the HandyBoards. Sample topics are available, but feel free to branch out.
A paragraph describing your topic and giving at least 3 references should be approved by the instructor prior to beginning work (see syllabus for due date). The final written report should be about 4-6 pages, including references. One class meeting will be devoted to informal presentations on your findings.
Wildman Science Library is open 8:00am to 12:00pm, and 1:00pm to 4:30pm on weekdays, closed on weekends.
The most important aspect of your HandyBoard programming is that it is functional and meets the requirements of the milestones. However, effective software design, especially in "real-world" and collaborative environments, requires quality in the style and design of the code as much as the functionality. Good documentation, formatting/readability, use of functions and variables, modularization, and other practices will be evaulated.
Current source code should be available upon request, and the code used to meet each milestone should be submitted to the instructor when achievement of the milestone is being evaluated. You're welcome to post this information online and link to it from your course journal, as long as it's clear what code is being "turned in" at the time.
Since the field of robotics is so broad, mastery of the topic as covered by the scope of our course can be manifested in a variety of ways. Your grade in the course will be based on your achievement of the course objectives as demonstrated in your robot programming, research paper, course journal, success in milestone evaluation, and participation in discussions:
| Course Component | Grading Weight |
| Programming Milestones | 50% |
| Course Journal | 15% |
| Research Paper | 15% |
| Code Quality and Style | 10% |
| Participation | 10% |
Last significant update: May 18, 2003