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:
- Dealing with incomplete, inaccurate, and unclear data
- Interacting with a changing world
- Employing techniques that are both robust and flexible
- Representing the world
- 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.