University of Minnesota
University of Minnesota: Department of Mechanical Engineering

ME 5286: Robotics
Spring 2018 Syllabus

Teaching Staff: Spring 2018


Max Donath (~First 10 weeks)
ME 211
Office hours: W & F; 1:15 pm - 2:00 pm

Rodney Dockter (~Last 5 weeks)
ME 2110
Office hours: W & F; 1:15 pm - 2:00 pm

Teaching Support:

Reed Johnson
ME 50B
Office hours: Monday 10:00 am - 11:00 am

Mark Gilbertson
ME 50B
Office hours: Thursday 1:30 pm - 2:30 pm

Room number for TA office hours: ME 50B.
Office hours may need to change from time to time. Check the class web site.
NOTE: All communication by email should include "ME5286" (no spaces) in subject heading, PLUS subject of email


Wednesdays and Fridays: 11:15am - 1:10pm, Keller 3-115
4 lecture periods per week of which one will often be used to discuss the lab.


4 Credits: Robotic manipulator portion of class – 2 In-class ‘open-book’ quizzes: 15% each;
                 Lab reports and demonstration of robot performing assembly 40% total
                 Computer vision portion of class - 3 Software Assignments: 30%

Lab reports and computer vision assignments will NOT be accepted after their due date. (Exceptions may be made for illness or other unavoidable circumstances). If an assignment is late for a reason other than a formally acceptable excuse (such as a doctor's note), a soft copy will be accepted via email up to 24 hours late. However, the grade will then be at most 50% of the total possible grade for that assignment.

Grades will be posted to the course's Moodle page. Access via UMN Moodle

Office hours:

Prof. Donath expects to meet with each student in the class at least once for 15 minutes during his office hours during the first 10 lecture weeks of the semester. These will be scheduled based on your availability. If you have a conflict, an alternate time will be arranged.


We will use the older edition, which is still available:
M. W. Spong, M. Vidyasagar, Robot Dynamics and Control, John Wiley, 1989.
There is a "Newer" edition: Mark W. Spong, Seth Hutchinson, and M. Vidyasagar,
"Robot Modeling and Control," Wiley, 2006. Either is acceptable.

References for robotics and image processing portion of class (BUT NEITHER IS REQUIRED):
Peter Corke, Robotics, Vision and Control: Fundamental Algorithms in MATLAB, 2nd Edition, Springer, 2016.
David Forsyth and Jean Ponce, Computer Vision: A Modern Approach, 2nd edition, Pearson, 2012.

Course Notes:

Will be available on the course website.

Class Home Page:

Located at

Target Audience:

Seniors and grad students.

Brief Course Description:

The course deals with two major components: robot manipulators (more commonly known as the robot arm) and image processing. Lecture topics covered under robot manipulators include their forward and inverse kinematics, the mathematics of homogeneous transformations and coordinate frames, the Jacobian and velocity control, task programming, computational issues related to robot control, determining path trajectories, reaction forces, manipulator dynamics and control. Topics under computer vision include: image sensors, digitization, preprocessing, thresholding, edge detection, segmentation, feature extraction, and classification techniques. A weekly 2 hr. laboratory lasting for 8-9 weeks, will provide students with practical experience using and programming robots; students will work in pairs and perform a series of experiments using a collaborative robot.


Assignments based on the lectures and text book material will be available on the course web site (pdf format). Solutions will be made available one week after assignment. Your solutions to the assignments do NOT have to be handed in. They are for your benefit. Please do them conscientiously without looking at the solutions.


To provide students with practical experience using and programming robots, students will work in pairs and perform a series of experiments using the Universal Robots UR5 robot. For more on this robot, see

Students will have access to several programming environments which will allow them to program the robot off-line and then use that code for carrying out specified tasks during the lab session held each week.

Students will be using RoboDK as a tool for off-line programming in order to perform a variety of robot tasks using the Universal Robots Model# UR5.

Laboratory modules will require BOTH written submissions on scheduled dates (to be announced) and an “oral” presentation during which you will demonstrate your robot assembling a flashlight.

Students will be assigned a partner and a weekly two-hour time slot to perform the lab. The selection for partner and time slot will be based on the availability of all students in the class. In order to do this, a survey of availability will be filled out during the first week of class.

Access to the lab, located in Rm 50B (room in the far back after entering Rm ME50) will require use of your university ID card to pass through 2 doors (Rm ME50 and Rm ME50B). Working with the robot requires that there be at least 2 students in the room with the robot. In order to get credit for “doing” the lab, you will take a “selfie” of yourself, your lab partner(s) together with the robot before you begin the lab module and send the time-stamped image to a site to be announced. The requirement to have 2 students working together in the lab is a safety REQUIREMENT. If only one of you shows up, you cannot use the robot. Let us know and we will re-schedule you.

The first few lab modules will allow you to evaluate several specification and features of the robot. In the last few weeks, you will use the robot to assemble the flashlight.

Prerequisite: ME 3281 (System Dynamics and Control)

Recommended but not required: ME 4231 (Motion Control Lab)

Computer programming expectations:
All students taking the course are expected to have taken a coding class or have knowledge of C/C++, Python, and MATLAB. Links to a number of programming tutorials are located on the course website at:

You can get access to the computers in the CSE Instructional Computing Facility (ME308) by logging in with your x500 name and password.

Note Regarding Your Responsibilities:

The College of Science and Engineering assumes that all students enroll in its programs with a serious learning purpose and expects them to be responsible individuals who demand of themselves high standards of honesty and personal conduct.

The College expects the highest standards of honesty and integrity in the academic performance of its students. Any attempt by a student to present work that he or she has not prepared, or to pass an examination by improper means, is regarded by the faculty as a serious offense, which may result in the immediate expulsion of the student. Aiding and abetting a student in an act of dishonesty is also considered a serious offense.

Disability Syllabus Statement:

The University of Minnesota is committed to providing equitable access to learning opportunities for all students. The Disability Resource Center (DRC) is the campus office that collaborates with students who have disabilities to provide and/or arrange reasonable accommodations.

If you have, or think you may have, a disability (e.g., mental health, attentional, learning, chronic health, sensory, or physical), please contact DRC at 612-626-1333 to arrange a confidential discussion regarding equitable access and reasonable accommodations.

If you are registered with DRC and have a current letter requesting reasonable accommodations, we encourage you to contact the instructor early in the semester to review how the accommodations will be applied in the course.

Mental Health Syllabus Statement:

As a student you may experience a range of issues that can cause barriers to learning, such as strained relationships, increased anxiety, alcohol/drug problems, feeling down, difficulty concentrating, and/or lack of motivation. These mental health concerns or stressful events may lead to diminished academic performance or reduce your ability to participate in daily activities. University of Minnesota services are available to assist you with addressing these and other concerns you may be experiencing. You can learn more about the broad range of confidential mental health services available on campus via

Streaming video and podcasts (Information below provided by UNITE Distributed Learning):

Streaming video archives of classes are available to students registered in the on-campus section of this course on a TEN-DAY delay for the length of the semester. This ten-day delay is lifted one week prior to scheduled quizzes as long as there are students also enrolled in the course through UNITE Distributed Learning. If there are no UNITE enrolments, the ten-day delay will only be lifted the week prior to finals week.

Access these videos through the UNITE Media Portal with your University of Minnesota Internet I.D. and password (this is what you use to access your University of Minnesota email account).

DO NOT ask the instructor or teaching assistants for technical or troubleshooting assistance with these streaming video archives – use the UNITE Troubleshooting FAQ or “Submit a Trouble Report to UNITE” link found on all pages within the UNITE Media Portal.

Technical FAQ:
UNITE Media Portal:

Course Syllabus (lectures):

Part I: Robotics

  1. Introduction
    • Applications: What’s out there today
    • Economic considerations and motivations
    • What is a robot?
    • Robots and their analog to human senses, intelligence, and motor function
  2. Manipulator kinematic configurations and the robot work space
  3. Manipulator specifications and criteria for selection
    • Current limitations of commercially available systems
    • Types of control
    • Typical tasks and performance demands
    • Resolution, repeatability, and accuracy
  4. Manipulator kinematics
    • Homogeneous transformations and matrix methods
    • Joint, world, and tool coordinate system
    • Definition of hand orientations
    • Euler angles; directional cosines; roll, pitch, yaw
    • Link transformations
    • Manipulator inverse kinematic solutions
    • Singularities
    • Role of inverse kinematics in position controlled robots
    • Velocity and path control: the Jacobian
    • Computation of the Jacobian
  5. Task primitives and programming: Computational aspects
    • Case study
    • Tracking moving objects
    • Programming languages
  6. Determining path trajectories
    • Splines: cubics and quintics
  7. Static forces and their control
    • The role of the Jacobian
  8. Manipulator dynamics
    • Problems
    • Two-dimensional Lagrange solution
    • Inertial effects and transmissions
  9. Manipulator control
    • Servo control loops
    • Position control vs. force control
    • System bandwidth
    • Hybrid control, impedance control, and comparison of architectures
  10. Manipulator peripherals
    • The remote compliance center (RCC)
  11. Sensor integration
    • Role of sensors
  12. Problems and future solutions
  13. Additional topics will be scheduled as appropriate.

Part II: Computer Vision

  1. Imaging fundamentals and sensors
    • Image formation
    • Camera fundamentals, digitization
    • Digital image representation, color fundamentals
  2. Image processing methods
    • Spatial domain transformation, image enhancement, histogram equalization
    • Edge detection techniques
    • Interest point detection, corner detection
    • Hough and generalized Hough transform
  3. Applications