Teaching Robotics from a Computer Science Perspective
Jennifer Kay
Computer Science Department
Rowan University
Historically, robotics textbooks have been written from the mechanical engineering
perspective. These texts spend hundreds of pages studying gears, motors, sensors,
and other related topics. While a computer scientist needs to know something
about these topics, he or she certainly is not concerned with them to the
degree that the texts cover. The computer scientist needs to know some of
the basics about robotics, and then focus on the software, using techniques
derived from Artificial Intelligence to find the best way out of a burning
building, or the best way to locate an irregular part.
The following is a selection of papers that can help a computer science
professor teach a first course in Robotics at the Junior/Senior undergraduate
level. Some of the papers are freely available on the internet, others are
part of the Association for Computing Machinery's
(ACM) Digital Library or IEEE Xplore. Many universities subscribe
to these electronic databases, making them freely available to their students
and faculty. For those students whose universities do not subscribe to the
ACM digital library, a student
membership in the ACM is a reasonably priced option (cheaper than many
text books and a good thing for a computer science student to do anyway).
Articles can also be purchased on a per-article basis. Most articles also
include a copyright notice stating that they may be copied for educational
use without fee.
Introduction to Traditional Robotics: Coordinate Frames and Kinematics
This report gives a very careful description of coordinate
frames and transformations, together with forward and inverse kinematics and
more. I recommend that you only cover pages 1-16: coordinate frames and forward
kinematics.
Robot Classes and Competitions
- Beer, Randall, Chiel, Hillel, and Drushel, Richard, "Using Autonomous
Robotics to Teach Science and Engineering," Communications of the ACM,
Vol. 42, No. 6 (June 1999). Available at: http://doi.acm.org/10.1145/303849.303866
This is a paper for you to read, not your students.
It describes the Autonomous Robotics class at Case Western Reserve University.
Lego Design
One of the biggest lessons that I think computer science students
learn in a Robotics class is the fact that the same code in apparently the
same environment may not work exactly the same way each time you run it. I
believe it is essential to give students some practical experience in writing
code for real robots. Having said that, in a computer science course, the
goal is not to spend too much time on the hardware aspects of the robots.
Both the Handyboard and the RCX use Lego bricks to build a robot base. This article
is an excellent introduction to the mathematics of Lego and gearing.
AI Search Algorithms
- Ciesielski, Vic, and McDonald, Peter, "Using Animation of State Space
Algorithms to Overcome Student Learning Difficulties," in Proceedings
of the 6th annual conference on Innovation and Technology in Computer Science
Education, 2001. Available at: http://doi.acm.org/10.1145/377435.377495
Ideally a class in Robotics has an artificial intelligence
class as a prerequisite and students are already familiar with various search
techniques. But often in smaller departments courses are not offered with
enough frequency to achieve this.
This is another paper for you to read, not for your students.
It describes a tool available on the web at http://www.cs.rmit.edu.au/AI-Search/
that allows you to view a graphical demonstration of several search algorithms.
The web site also includes a set of slides that you can use to help teach
AI search techniques to your students.
Would a text book be better for this section of the course? Absolutely.
But is it really reasonable for students to purchase an AI textbook simpliy
to learn about search. Probably not.
- Stentz, Anthony, "Optimal and Efficient Path Planning for Partially-Known
Environments," Proceedings of the IEEE International Conference on Robotics
and Automation (May 1994). Available at: http://www.frc.ri.cmu.edu/~axs/doc/icra94.pdf
This is not really a paper that you can give to an undergraduate
and expect them to really follow the algorithm. However, I like the idea of
the algorithm so much, that I do use this paper. I encourage the students
to listen to my lecture before trying to follow the paper, and rather than
require them to understand the algorithm completely, I am more concerned with
them understanding why there is a need for such an algorithm, and the general
way it operates.
Case Studies
- Sukhatme, Gaurav S., and Mataric, Maja J., "Robots: intelligence, versatility,
adaptivity: Introduction," Communications of the ACM, Vol. 45, No.
3 (March 2002). Available at: http://doi.acm.org/10.1145/504729.504750
Communications of the ACM had a special issue in March 2002
about Robotics. These are articles written for the computer science community
at large, and are extremely valuable for the student in a robotics class.
This article is a brief introduction to the papers that follow.
This discussion considers issues in humanoid robots, primarily
through two examples (Kismet and Cog) from MIT's AI lab. Includes some interesting
discussion of human vision. Along with this article you might want to reference
the Humanoid
Robotics group at MIT, or other humanoid robot projects mentioned in
the paper.
- Rus, Daniela, Butler, Zack, Kotay, Keith, and Vona, Marsette, "Self-reconfiguring
robots," Communications of the ACM, Vol. 45, No. 3 (March 2002). Available
at: http://doi.acm.org/10.1145/504729.504752
By building bigger robots out of smaller modules, robots can
reconfigure themselves for different tasks, and can cope with the failure
of an individual module. Along with this article, you might want to reference
the Dartmouth
Robotics Lab
- Khatib, Oussama, Brock, Oliver, Chang, Kyong-Sok, Conti, Francois,
Ruspini, Diego, and Sentis, Luis, "Robotics and Interactive Simulation," Communications
of the ACM, Vol. 45, No. 3 (March 2002). Available at: http://doi.acm.org/10.1145/504729.504753
I've included this article in this list for completeness because
it is part of the special CACM issue on Robotics. It could be very useful
for an advanced Robotics class, but probably not appropriate for an introductory
one. It's a bit too much virtual Robots for my taste, though it could be
useful in an extended discussion of teleoperation.
This article may be a bit heavy on the probability for some
students, but I think it's a good one nonetheless. Students in most classes
will have experience in the impreciseness of their robots, and will be greatly
relieved to find out that techniques for coping with a range of possible
locations exist.
This is a fun paper that your students will love. If you have
any sort of a competition of your own, this will give students a glimpse
at the next level. The focus is on Robot soccer and the Robocup competitions
(you might also want to reference Robocup).
- Pomerleau, Dean A., "Neural Networks for Intelligent Vehicles," Intelligent
Vehicles '93 Symposium, (July 1993), Available in IEEE Xplore.
I believe that Pomerleau's use of Neural Networks in Robotics
is worth taking a look at, time permitting. While this paper is getting on
in years, it is the most accessable reference that I've found that gives
an overview of some of the possibilities of the field.
A companion to the Pomerleau paper for those without experience
in Neural Networks
Copyright (c) 2002 Jennifer Kay, http://www.rowan.edu/~kay
Permission to make digital or hard copies of all or part of this work for
personal or classroom use is granted without fee provided that copies are
not made or distributed for profit or commercial advantage, that copies bear
this notice and and a brief description of your use of this material
is sent by email to kay@elvis.rowan.edu.