Overview
Robotics generally involves a combination of sensing, actuation,
and computation. Researchers design and analyze machines that
interact with the physical world to accomplish tasks such as
autonomous driving, surveillance, vacuuming, raising crops,
exploring planets, and automating factories. It is important
for students to develop a broad, interdiscplinary background
because many robotic issues are well outside of computer
science. The robotics community is very international and
interdisciplinary. In the US, most robotics researchers work
in engineering departments, such as mechanical, electrical,
and aerospace. Those in computer science departments
usually have a strong interest in algorithmic issues.
Robotics Courses
There are few courses that deal directly with
robotics. CS 443 is an undergraduate-level course
that introduces basic robot kinematics and dynamics,
while surveying other issues. Courses that address
motion planning exist, although most are topics
courses. Check for offerings by Hutchinson, LaValle,
or Bretl.
Relevant CS Areas
Within computer science, all robotics students should develop
a strong background in algorithms. Taking CS 473G is essential.
Computational geometry, when offered, is extremely valuable.
The theory of computation (CS 475 or beyond) is also worth
considering.
The following areas of computer science have close ties
with robotics:
- Computer vision (CS 543)
- Computer graphics (CS 418, CS 419)
- Machine learning (CS 446)
- Scientific computing (CS 450, CS 558)
Vision and graphics involve many geometry-oriented problems
that are similar to those in robotics. Machine learning provides
a helpful complement to robotics by considering how to develop
models automatically. Scientific computing issues arise frequently
in robotics because many approaches perform numerical computations
that involve matrices, optimizations, or differential equations.
It is therefore recommended to choose courses from some of these
areas.
Math, Math, Math
Outside of computer science, it is perhaps most important that
students build a strong math background. Most of the difficulty
in robotics is formulating the right problem. Rather than
developing a limited understanding of mathematical tools that
have already appeared in robotics, it is strongly suggested
that students learn enough math to clearly formulate new
problems and approaches. Some areas that have been most
interesting to robotics students in the past are
- Real analysis (e.g, Math 447, Math 540, Math 541)
- Algebra (e.g., Math 417, Math 500, Math 501)
- Differential geometry (e.g., Math 520)
- Topology (e.g., Math 526)
- Graph theory and combinatorics (e.g., Math 412, Math 580)
The typical student in robotics may take a couple of 500-level
math courses, from two different areas. In many cases, students
might first take an undergraduate prerequisite course, depending
on their previous exposure to abstract mathematics.
Control Theory
Finally, UIUC has a strong tradition in the area of control theory.
The subject essentially amounts to considering parameterized families
of differential equations, and determining how to fix the parameters
in a way that leads to the desired outcomes. The diffential equations
may model many kinds of systems, including mechanical (it is like
parameterized physics--force the world to do what you want),
electrical systems, chemical systems, economic systems, and so on.
There are numerous control courses. Robotics students have most often
found the following to be relevant and interesting:
- Linear Systems (ECE 515)
- Nonlinear Systems (ECE 528)
- Optimal Control (ECE 553)
Obviously, too many courses have have been listed here as suggestions.
There is not enough time to take all of them. Try to determine a particular
focus that sounds appealing, take courses accordingly, and adjust the choices
as you learn more.