All students must take the following three courses. For mechanical
engineering students, it is recommended to take ME6960-17
Computing for Engineers before taking ME 6225 or either Perception or
- CS 6310/ME EN
6220 Introduction to Robotics (3,F). Jur van den Berg,
instructor. Prereq: CS 1000, MATH 2250, PHYCS 2220.
- The mechanics of robots, comprising kinematics, dynamics,
and trajectories. Planar and spatial transformations and
displacements. Representing orientation: Euler angles,
angle-axis, and quaternions. Forward and inverse kinematics;
Denavit-Hartenberg parameters. Velocity and acceleration:
the Jacobian, singularities. Trajectory planning: joint
interpolation and Cartesian trajectories. Statics of serial
chain mechanisms: center of mass. Inertial parameters,
Newton-Euler equations. Recursive inverse dynamics.
CS 6960/ME EN 6230 Introduction to Robot Control (3,S).
Steve Mascaro, instructor. Prereq: CS 6310/ME 6220, ME EN 6200.
- Control of serial manipulators is examined. Topics include
control system fundamentals, sensors and actuators, joint
level control, centralized control, operational space
control, and force control. Projects provide hands on
experience controlling a serial link manipulator.
- CS 6370/ME
6225 Geometric Computation for Motion Planning (3,F).
David Johnson, instructor. Prereq: CS 1020, MATH
- Geometric computation is the study of practical algorithms
for solving queries about geometric properties of computer
models and relationships between computer models. Robot
motion planning uses these algorithms to formulate safe
motion through a modeled environment. Topics to be covered
are spatial subdivision and model hierarchies, model
intersection, distance queries and distance fields, medial
axis computations, configuration space, and motion
Students must take one course from each of the following three
- CS 6640 Image Processing (3,F). Ross Whitaker, instructor.
Prereq: CS 2420, MATH 2250.
- Basic principles of processing digital signals and how those
principles apply to images. Sampling theory, transforms, and
filtering. Basic image-processing problems including
enhancement, reconstruction, segmentation, feature detection, and
CS 6320 3D Computer Vision (3,S). Guido Gerig, instructor.
Prereq: CS 3505, MATH 2210, MATH 2270.
Image formation and image models: projective geometry, modeling
cameras, projection matrix, camera distortions and artifacts,
camera calibration. Early vision: geometry of muliple views,
stereo vision, epipolar constraints, disparity, shape from
stereo, correspondence. Shape from X: reflectance map, shape
from shading, photometric stereo, shape from optical flow,
rotating camera, light stripe encoding, laser range systems.
High level vision: model-based vision, aspect graphs, tracking,
finding templates and recognition.
CS 6300 Artificial Intelligence (3,S). Jur van den Berg,
instructor. Prereq: CS 3505.
Introduction to field of artificial intelligence, including
heuristic programming, problem-solving, search, theorem proving,
question answering, machine learning, pattern recognition, game
playing, robotics, computer vision.
CS 6360 Machine Learning (3,F). P.K. Rai, instructor.
- Techniques for developing computer systems that can acquire
new knowledge automatically or adapt their behavior over
time. Topics include concept learning, decision trees, evaluation
functions,clustering methods, explanation-based learning,
language learning, cognitive learning architectures,
connectionist methods, reinforcement learning, genetic
algorithms, hybrid methods, and discovery.
ME EN 6960 Advanced Mechatronics (3,F of even years). Will
Provancher, instructor. Prereq: undergraduate mechatronics or
embedded systems course; course in basic electrical circuits; and
course in C programming (or permission from instructor).
- This course gives students an experience in integrating
electromechanical systems by utilizing a commodity
microcontroller. Students will review basic electronics, and
then focus more directly on the basics of microcontrollers,
learning to interface a PIC microcontroller with a broad
variety of peripheral devices including motor drivers, LCDs,
shift registers, DAC and encoder chips among others. The
course will also emphasize the basics of serial
communication, including wireless serial communication. The
course will culminate with a biocentric themed group term
project. Students will leave the course with a broad set of
skills necessary to build custom embedded systems through
the use of a microcontroller and off-the-shelf
- CS 6360
Virtual Reality (3,S of odd years). David Johnson, instructor.
Prereq: CS 6310/ME 6220.
- Human interfaces: visual, auditory, haptic, and locomotory
displays; position tracking and mapping. Computer hardware
and software for the generation of virtual
environments. Networking and communications. Telerobotics:
remote manipulators and vehicles, low-level control,
supervisory control, and real-time
architectures. Applications: manufacturing, medicine,
hazardous environments, and training.
- CS 7310/ME 7230 Robot Mobility and Manipulation (3,F of
odd years) Instructor: Mark Minor. Prereq: CS 6310/ME
- This course will examine grasping, rolling, and sliding
manipulation from two perspectives; (1) manipulating the
pose of an object with an end-effector via grasping,
rolling, and sliding manipulation, and, (2) manipulating the
trajectory of a mobile robot via the rolling and sliding
contact of wheels, feet, or curved exoskeletons and the
- CS 7320/ME
EN 7960-05 System Identification for Robotics (3,S of odd
years). John Hollerbach, instructor. Prereq: CS 6310/ME
- Modeling and identification of the mechanical properties of
robots and their environments. Review of probability and
statistics. Parametric versus nonparametric estimation.
Linear least squares parameter estimation, nonlinear
estimation. Specific identification methods for kinematic
calibration, inertial parameter estimation, and joint
friction modeling. Scaling, observability, and rank
ME EN 7960-07 Haptics (3,S of even years).
William Provancher and Jake Abbott, instructors.
Prereq: CS 6310/ME 6220, ME 5200/6200, C programming.
- This course will give students a broad overview of the topic
haptics, which is the study of touch: touch sensing,
perception, cognition, and feedback. The course is
organized into two halves where the first half of the course
aims to rapidly bring students up to speed with the basics
of haptics through lectures, homeworks, readings on
classical and current topics in haptics, and lab exercises.
Through lab exercises, students will learn to program basic
feedback behaviors with a haptic device. The focus of the
second half will be a term project; however, students will
continue to meet during class for additional lectures and to
discuss readings. Through readings and conducting their own
projects, students will learn to think critically about
prior work presented in the haptics literature as well as
their own work and begin to abstract ideas from prior work
to form their own research hypotheses. See the course
website for more details.
- CS 7939/ME EN
7960-001 Seminar in Robotics (1,FS). David Johnson,
coordinator. Prereq: none.
- The Robotics Seminar is intended for all robotics students,
and for students wishing to learn more about robotics and
robotics research at Utah. It is a chance for the Utah
robotics community to get together on a weekly basis. The
course will feature overviews of research projects by the
robotics faculty, technical presentations by robotics
graduate students, and discussions of recent trends and
important results elsewhere. Students enrolled for this
1-credit course will be expected to choose a topic or paper
in robotics, and write and present a critique.