This course covers the concepts and methods needed to understand how to move robots and make them interact with the physical world. We will study theoretical backgrounds and techniques to describe the configuration and state of a robot and to control its motion. The topics that will be covered in the lectures include the representation of three-dimensional movement, mechanisms (kinematics and dynamics), actuators, and dynamics-based feedback control. Students will also learn to use Google Colab and Python programming to build simulation and analysis tools.
Specific topics: introduction to basic kinematics, homogeneous transformation, 3D orientation representation, Newtonian dynamics, Lagrangian dynamics, contact simulation, and reinforcement learning. There will be in-class exercises, weekly homework/quizzes, midterm and final exams, and a final project.
Prerequisites: MATH 235 and COMPSCI 220 (or COMPSCI 230). 3 credits.
Lectures: Tues Thurs 4:00-5:15 pm @ Ag. Engineering Bldg rm 1191
Instructor: Donghyun Kim (donghyunkim@cs.umass.edu)
TA:
Nisal Perera (nkankanige@umass.edu)
Jahir Monon (jmonon@umass.edu)
Office Hours:
Monday: 4:00 pm - 5:00 pm, TA, LGRC A308 (LGRC lowrise)
Tuesday: 5:15 pm - 6:15 pm (right after Tue Lecture), Donghyun, LGRC A325 (LGRC lowrise - office), zoom link: https://umass-amherst.zoom.us/my/dhkim
Thursday: 5:30 pm - 6:30 pm, TA, LGRC A308 (LGRC lowrise)
You should consult the UMass academic calendar to make sure you are aware of important dates and events. The following are the weekly topics that will be covered during this course.
In-class exercises are due by the end of the day of each lecture.
Homework is submitted to and graded in Gradescope (entry code: D323K3)
Homework late policy: No late submission is allowed
The topics of each week's lectures are listed below. Lecture slides are posted in Canvas.
This course will use a number of web-based services. We will create accounts for you, but it is your responsibility to log in and check that everything has been set up correctly.
Piazza is an online course management system. It will be used as the main hub for communication in this course. Lecture slides, labs and solutions are all posted in Piazza. All questions and answers should also be posted in Piazza. You are responsible for visiting Piazza frequently to see updates, or subscribe to email notifications. Please check Piazza features to get an understanding of how to use it. Please observe the following guidelines:
You should use Piazza to ask technical questions and get advice on projects. But you may not post assignment code or solutions to Piazza, either in questions or answers to others’ questions.
If your post must contain code or solutions, make it a private post, which is only visible to the instructor and TA.
Your question may already have been asked by someone. Before posting, make use of the search feature to see if your questions have already been answered. You should only post after thinking through the problem and clearly articulating your question.
You are encouraged to help other students with answering questions.
The course staff (instructors and TAs) will monitor Piazza and answer your questions in a timely manner. If a question has already been answered in a previous post we may not respond to you right away (hence it’s important to learn to use the ‘search’ feature).
Canvas is used for announcements, course material positing, and grade tracking.
Gradescope is used for managing and grading all submissions, including exam. Gradescope allows us to provide fast and accuracy feedback on your work, and allows the TA and grader to parallelize grading tasks and use a standard rubric for grading faireness. This also frees us from handing back papers in class! Regrading requests can be easily submitted and handled in Gradescope.
Lecture attendance and lab attendance are required. There will be in-class exercises on Tuesday and quiz on Thursday. There will be several programming assignment; one midterm and one final.
In-class exercises (5%) - except two
Quiz (20%) - except three
Homework (25%) - except one
Midterm (25%)
Final Project (25%)
The course materials are self-contained and we do NOT require any textbook. However, we provide a list of recommended readings as listed below:
Modern Robotics: Summary of basic knowledge in robotics.
Introduction to Robotics: Mechanics and Control: The first book of robotics
The University of Massachusetts Amherst is committed to providing an equal educational opportunity for all students. If you have a documented physical, psychological, or learning disability on file with Disability Services (DS), you may be eligible for reasonable academic accommodations to help you succeed in this course. If you have a documented disability that requires an accommodation, please notify me within the first two weeks of the semester so that we may make appropriate arrangements.
Since the integrity of the academic enterprise of any institution of higher education requires honesty in scholarship and research, academic honesty is required of all students at the University of Massachusetts Amherst. Academic dishonesty is prohibited in all programs of the University. Academic dishonesty includes but is not limited to: cheating, fabrication, plagiarism, and facilitating dishonesty. Appropriate sanctions may be imposed on any student who has committed an act of academic dishonesty. Instructors should take reasonable steps to address academic misconduct. Any person who has reason to believe that a student has committed academic dishonesty should bring such information to the attention of the appropriate course instructor as soon as possible. Instances of academic dishonesty not related to a specific course should be brought to the attention of the appropriate department Head or Chair. Since students are expected to be familiar with this policy and the commonly accepted standards of academic integrity, ignorance of such standards is not normally sufficient evidence of lack of intent.
Programming assignments present specific academic honesty issues. Programming is a creative activity, but also one where collaboration is both possible and desired. Students may work together on programming projects as long as two principles are observed: submitted programs must be the individual’s own work with respect to presentation, and all sources of help other than course staff must be declared. Students may determine the essential ideas of a solution together, but should write the actual code separately. Copying and pasting another student’s code is a violation of academic honesty, and course staff will endeavor to detect this by any means including automated similarity analysis of submitted assignments.