Robotics Track Courses


Required Courses

All students must take the following three courses. For mechanical engineering students, it is recommended to take ME EN 6250 Programming for Engineers before taking ME 6225 or either Perception or Cognition courses.
    CS 6310/ME EN 6220 Introduction to Robotics (3,F). John Hollerbach, 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 6330/ME EN 6230 Introduction to Robot Control (3,S). Mark Minor, instructor. Prereq: CS 6310/ME EN 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 EN 6225 Geometric Computation for Motion Planning (3,F). David Johnson, instructor. Prereq: CS 1020, MATH 2250.

    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 planning.

    CS 7939/ME EN 7960-001  Seminar in Robotics (1,FS). John Hollerbach, 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. New students in the robotics track should thake this seminar in the first year. The fall session deals with research: current student and faculty preentations, readings and enrollee presentations. The spring session deals with professional development.

Restricted Electives

Students must take one course from each of the following three areas.
  • Perception.

    CS 6320 3D Computer Vision (3,S). Tom Henderson, 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 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 compression.


  • Cognition.

    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). Jur van den Berg, instructor. Prereq: CS505.

    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.

  • Action.

    ME EN 6240 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 components.

    CS 6360 Virtual Reality (3,S 2014). 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). Mark Minor, instructor. Prereq: CS 6310/ME 6220.

    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 ground.

    CS 7320/ME EN 7220 System Identification for Robotics (3,S 2014). John Hollerbach, instructor. Prereq: CS 6310/ME EN 6220, CS 6330/ME EN 6230.

    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 reduction.

    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.