Robotics Laboratory Manual

Susan Fox
Last Modified: Tuesday, March 7, 2000

This document will contain a set of projects and laboratory experiences for students using the robotics lab at Macalester College. These projects are pitched towards students at all levels in the computer science curriculum. Where possible, each project is annotated with comments describing its effectiveness, including student comments.

This project incorporates robots into the CS curriculum at varying levels: intro courses, the basic artificial intelligence course, an advanced "Topics" course in AI, and student research projects.


Survey course for non-majors

This is a course offered every semester, aimed at students with a casual interest in computer science: mostly students in the social sciences and humanities who are fulfilling a science requirement. In this course students learn a little bit about many areas of computer science, including algorithm design and analysis, digital logic and gates, machine architecture, operating systems, and programming. Robots are used to motivate students to program, and teach them modular programming style and how to integrate their programs with existing code.

Students in this course work with a 2-week module on robotics, using the Handyboard robot controllers and building a simple "Legobug" mobile robot chassis. Students worked in groups of four or five, and worked through the module over the course of four to five class periods, supervised by the instructor. This project was given a trial run during two semesters prior to the grant from the NSF, with a small number of robot kits.

Similar modules would be useful for other introductory courses in the curriculum.

Summary of evaluation: This evaluation is based on experiences in Fall and Spring 1998, when there were 3-4 kits available, for classes of 20-30 students. It summarizes student evaluation forms given at the end of the semester. The robotics module came near the end of the semester.

Students genuinely enjoyed working with the robots. They reported an improvement to their programming skills through the project. They had one major criticism: not enough robots! Groups of four-five students are too large for this kind of project to be most effective. Some students end up on the sidelines. In one class there were not enough kits to go around even with groups of four or five, so students complained about wasted time (there were other projects students could do during that time, but they preferred to work on the robots).


Introduction to Artificial Intelligence Course

This course is a junior/senior level computer science elective, offered once every two years. The organizing theme for the course is (now) the creation of autonomous agents. Students work with both Lego/Handyboard robots and the larger, more powerful Pioneer II DX robots. AI techniques are introduced within the context of creating intelligent agents, and students perform homework and individual projects on the robot platforms, as well as environments for software agents.

This approach to the AI course was tried out with a small set of Lego robots in Fall 1998. In Fall 2000 the "full" version of this course will be implemented, the projects associated with this course will grow as time goes on.

Syllabus for CS65, fall 1998
The syllabus for the AI course demonstrates an emphasis on agents. Topics and techniques are introduced in the context of robotic or software agent issues, and are evaluated in terms of the abilities of the agents who use them.

More details on the course may be found at the CS65 course web page

Basic robot design and control (alternate form)
Students construct mobile robots using the Handyboard/Lego kits, and program them to perform a variety of tasks. This could easily be broken into different lab experiences: tasks include wandering randomly in an obstacle course, seeking a light source (again, in an obstacle course), following a path on the floor, and finding its way from one location to another.

This lab introduces students to a wide range of issues relating to autonomous robots and artificial intelligence:

Robot navigation (project)
In Fall 1998, a student studied techniques for planning and executing routes represented as graphs, where the route itself was laid out on floor of the robot's pen. Integrating high-level planning with low-level robot control proved the most difficult part.
Exploration and map building (project)
In Fall 1998, a student studied robot techniques for exploring an unknown area and constructing an internal map of the area. The limitations of the Lego robots then in our possession meant this remained a simulation-only project.
Software agents and reinforcement learning (project)
In Fall 1998, a student began a project examining the use of reinforcement learning to train a software agent to play a game: Xpilot. This project continued as the student's senior capstone project.

Evaluation summary
Students felt the limitations of the Handyboard/Lego robots strongly, and wished for more power robots to work with. The emphasis on autonomous agents seemed to give more coherency to the range of topics covered in the course.


Advanced "Topics" course in AI

This course is planned to be a senior-level elective, normally offered in those years when the main AI course is not offered. At this time, it has not yet been offered, though it is scheduled for Spring 2001, to fall within the bounds of this grant. An early edition of this course were the first to use the Lego/Handyboard robot kits, as a trial of the module now integrated into the introductory AI course.


Student research projects

Most elective courses in the CS curriculum require semester-long projects of the students. In addition, all senior CS majors must complete a "capstone" project which involves reading in the research literature and implementing or studying some specific project. The best CS students complete the capstone as an "honors" projects with higher expectations of research and innovation. In addition, Macalester has some funds to support students wishing to engage in summer research with a faculty member.

Artificial intelligence has always been a popular topic for capstone and honors projects. In the past three years, almost one third of capstone projects have been related to AI. The existence of a robotics lab will only encourage this pattern. Seven students have expressed an interest in working with the robotics lab during the summer of 2000 (though not all will have funding, and therefore fewer are expected to follow through).

You may view a set of pictures of students and their robots created during independent work in January 1998, and during the senior seminar in Spring 1998, with the first Lego/Handyboard kits.

Below is a brief listing of student research projects relating to AI, and especially to the robotics laboratory itself. There are in reverse chronological order, with the most recent projects first.

Robot collaboration in exploration (Alex Burst)
A proposed project to take place during summer 2000 (pending funding). The funding proposal gives more details.
Reactive planning for robot navigation (David Christian)
A proposed project to take place during summer 2000 (pending funding). The funding proposal gives more details.
Reactive planning for a robot arm (Daniel Churchill)
An honors project for 1999-2000 constructing a robot arm using Lego/Handyboard parts and examining reactive planning techniques for controlling the arm.
A bi-directional translator for Japanese and English (Yukiko Norton)
A capstone project for 1999-2000 creating a (simple) translator for Japanese and English text (written in the roman character set).
Intelligent search agents on the Internet (Rob Nachtwey)
A capstone project for 1999-2000 examining current techniques used on the web for intelligent search agents
Knowledge bases: human versus computer (Westin Kriebel)
A capstone project for 1999-2000 examining different techniques for building and updating a knowledge base.