ME 449 Robotic Manipulation
Fall Quarter 2018
- Instructor: Prof. Kevin Lynch
- Meeting: 2:00-2:50, MWF, Frances Searle Building 1441
- TAs: Huan Weng, Tito Fernandez, and Zack Woodruff
- Office hours: Tech B222 (TBA),
- course website: http://hades.mech.northwestern.edu/index.php/ME_449_Robotic_Manipulation
- book website:
Contents |
Course Summary
Mechanics of robotic manipulation, computer representations and algorithms for manipulation planning, and applications to industrial automation, parts feeding, grasping, fixturing, and assembly.
Grading
- 50% exams
- 40% assignments
- 5% practice exercise for other students
- 5% engagement: answering questions in class and providing helpful feedback to other students
Course Text and Software
This course uses the textbook Modern Robotics: Mechanics, Planning, and Control, Kevin M. Lynch and Frank C. Park, Cambridge University Press 2017.
Video Lectures
Video supplements to the reading can be found at http://modernrobotics.northwestern.edu. If you prefer to watch the videos as playlists in the youtube environment, you can go here instead. These links are also available from the book's homepage.
In general, I recommend that you first watch the videos to get a quick understanding of the material of the chapter, then follow up by reading. The videos are short and dense, so don't expect to get by only watching the videos. You will need to read the book, then do the exercises, to gain mastery of the material.
Approximate Syllabus and Reading
- Chapter 2, Configuration Space (weeks 1-2)
- Chapter 3, Rigid-Body Motions (weeks 2-3)
- Chapter 4, Forward Kinematics (week 4); section 4.2 is optional
- Chapter 5, Velocity Kinematics and Statics (week 5)
- Chapter 6, Inverse Kinematics (week 6); focus on section 6.2
- Chapter 8, Dynamics of Open Chains (weeks 6-7); skip sections 8.4, 8.8, and 8.9
- Chapter 9, Trajectory Generation (week 8); focus on sections 9.1 and 9.4
- Chapter 11, Robot Control (week 9); focus on sections 11.1 through 11.4
- Chapter 13, Wheeled Mobile Robots (week 10); skip section 13.3
Assignments
Assignments are graded based on correctness, how well you organize your homework (it should be easy to understand your thinking and easy to find your responses), and how well you follow the submission instructions below. You will lose points if you don't follow these instructions.
If you ever think a problem is stated incorrectly, not enough information is given, or it is impossible to solve, don't panic! Simply make a reasonable assumption that will allow you to solve the problem (but clearly state what this assumption is), or indicate why it is not possible to solve the problem.
Instructions for uploading assignments to Canvas:
0. Upload on time! Late submissions are not accepted. The cutoff time is 30 minutes before class the day the assignment is due.
1. Only upload one zip file or rar file for each assignment;
2. In your zip file or rar file, include all source codes in their original form, such as .cpp, .m, .py, .nb.
3. If there is a demo, combine the screen shots into one SEPARATE pdf file, OR, show the results in one SEPARATE .txt file (DON'T show them in your source code file format, e.g. .nb file), and include it in the zip file (or rar file).
4. Always include output of your code running on the exercises, particularly in case the grader has problems running your code. Also, always create a script (for example, titled ex6-9 or something) that the grader can easily invoke for each exercise. Don't expect the grader to search through your code to find sample code to cut-and-paste. Make it as easy as possible for the grader (you can include a "README" file in your solutions, for example).
5. Please name the upload file in the following format: LastName_FirstName.zip.
Detailed Syllabus (Under Construction)
Click here for a graphical view of the class schedule, including student lectures.
Homeworks are due at the beginning of class every Wednesday, unless otherwise noted. You will watch the videos and do the reading in advance of class using the material, as noted in the syllabus below. A typical weekly schedule will consist of:
- M: Video/reading comprehension quick quiz and help with homework.
- W: Video/reading comprehension quick quiz, homework solutions, plus EITHER student lecture OR quiz preparation.
- F: Video/reading comprehension quick quiz plus EITHER student lecture OR quiz.
Class 1 (W 9/20)
- Welcome to the course and course website. Structure of the course (HW due Wed, student-generated lectures and learning materials, in-class assignments, feedback on student lectures, occasional Friday quizzes). Book, software, (lack of) D-H parameters, syllabus, V-REP simulator, office hours.
At home:
- Videos: first 3 videos of Chapter 2, through Chapter 2.2
- Reading: Chapters 2.1 and 2.2
- Software: download github software with book, install V-REP and verify that you can use Scenes 1 and 2 (the UR5)
- HW1, due 1:30 PM 9/27: Exercises 2.3, 2.9, 2.20, 2.29. Also, create your own example system with closed loops, something not in the book, and solve for the degrees of freedom using Grubler's formula. Make it something that exists or occurs in common experience, not necessarily a robot. Imagine using it to teach someone about Grubler's formula.
Class 2 (F 9/22)
- Quick quiz
- Sample student lecture
At home:
- Videos: 2 videos on Chapter 2.3
- Reading: Chapter 2.3
Class 3 (M 9/25)
- Quick quiz
- Bring your laptop, demo V-REP UR5 scenes
- Help with HW
At home:
- Videos: 2 videos, Chapter 2.4 and 2.5
- Reading: Chapters 2.4 and 2.5
- Turn in HW1
Class 4 (W 9/27)
- Quick quiz
- Solutions to HW1; student examples of Grubler's formula
At home:
- Videos: first 3 videos of Chapter 3, through Chapter 3.2.1
- Reading: through Chapter 3.2.1
- HW2, due 1:30 PM 10/4:
- 1) Exercise 3.1, except the y_a axis points in the direction (1,0,0).
- 2) Exercise 3.2, except p = (1,2,3).
- 3) Exercise 3.5.
- 4) Exercise 3.9.
- 5) In Figure 1.1(a) of the book is an image of a UR5 robot, with a frame at its base and a frame at its end-effector. Eyeballing the end-effector frame, approximately write the rotation matrix that represents the end-effector frame orientation relative to the base frame. Your rotation matrix should satisfy the properties of a rotation matrix (R^T R = I, det(R) = 1). The x-axes are in red, the y-axes are in green, and the z-axes are in blue.
- 6) Write a program that takes a set of exponential coordinates for rotation from the user as input. It then prints out the following: (a) the corresponding unit rotation axis and the angle of rotation about that axis; (b) the so(3) 3x3 matrix representation of the exponential coordinates; (c) the 3x3 SO(3) rotation matrix corresponding to the exponential coordinates; (d) the inverse of the rotation matrix from (c); (e) the 3x3 so(3) matrix log of the matrix from (d); and (f) the corresponding exponential coordinates for the so(3) matrix (e). Use the code from the book and write your program in Mathematica, MATLAB, or Python. Turn in your code and the output of an example run using (0.5, 1, 0) as the input to part (a).
- 7) Write a function that returns "true" if a given 3x3 matrix is with a distance epsilon of being a rotation matrix and "false" otherwise. It is up to you to define the "distance" between a random 3x3 real matrix and members of SO(3). Test the function on two matrices, neither of which is exactly in SO(3), but one of which is close (so the result is "true") and one of which is not. Turn in your code and provide the test run output, which also outputs the distance to SO(3) that you defined.
- 8) Following up on the previous exercise: describe (don't implement, unless you want to) a function that takes a "close by" 3x3 matrix and returns the closest rotation matrix. How would you use the fact that R^T R - I must be equal to zero to modify the initial 3x3 matrix to make it a "close by" rotation matrix? Would the function be iterative? You are free to do some research online, but as always, cite your sources!
Class 5 (F 9/29)
- Quick quiz
- Lecture
At home:
- Videos: videos 4-6 of Chapter 3, through Chapter 3.2.3
- Reading: through Chapter 3.2.3
Class 6 (M 10/2)
- Quick quiz
- Help with HW
At home:
- Videos: videos 7-9 of Chapter 3, Chapters 3.3.1 and 3.3.2
- Reading: same sections
Class 7 (W 10/4)
- Quick quiz
- Exam prep
At home:
- Videos: videos 10-11, Chapter 3.3.3 and 3.4
- Reading: same sections
- HW3, due 1:30 PM 10/11: Exercises 3.16, 3.17, 3.27, 3.31, and 3.48 (as always, for programming assignments, turn in your code and sample output demonstrating it).
Class 8 (F 10/6)
- EXAM 1
At home:
- Videos: video 1 of Chapter 4, through Chapter 4.1.2
- Reading: same sections
Class 9 (M 10/9)
- Quick quiz
- Help with HW
At home:
- Videos: videos 2-3 of Chapter 4, Chapter 4.1.3
- Reading: same sections
Class 10 (W 10/11)
- Quick quiz
- Student lecture 1 (Pawar, Subramanian, Goyal, Cai)
At home:
- Videos: video 1 of Chapter 5, up to (not including) Chapter 5.1
- Reading: same sections
- HW4, due 1:30 PM 10/18: Exercises 4.2, 4.8, 4.14, and 5.7(a). Question 5: In Chapter 3.5 (Summary), there is a list of analogies between rotations and rigid-body motions. Read it carefully and report anything that is either unclear or incorrect.
Class 11 (F 10/13)
- Quick quiz
- Student lecture 2 (Wang, Wu, Xia, Zheng)
At home:
- Videos: video 2 of Chapter 5, Chapter 5.1.1
- Reading: same sections
Class 12 (M 10/16)
- Quick quiz
- Help with HW
At home:
- Videos: videos 3 and 4 of Chapter 5, Chapter 5.1.2 through 5.2
- Reading: same sections
Class 13 (W 10/18)
- Quick quiz
- Student lecture 3 (Wiznitzers, Hutson, Spies)
At home:
- Videos: videos 5 and 6 of Chapter 5, Chapter 5.3 and 5.4
- Reading: same sections
- HW5, due 1:30 PM 10/25: Exercises 5.2, 5.3, 5.23, 5.25, 6.7, and 6.8.
Class 14 (F 10/20)
- Quick quiz
- Student lecture 4 (Don, Chien, Husain, Sulaiman)
At home:
- Videos: videos 1 and 2 of Chapter 6,
- Reading: intro of Chapter 6 and Chapter 6.2
Class 15 (M 10/23)
- Quick quiz
- Help with HW
At home:
- Videos: video 3 of Chapter 6
- Reading: Chapter 6.2
Class 16 (W 10/25)
- Quick quiz
- Exam prep
At home:
- Videos: video 1 of Chapter 8, through 8.1.1
- Reading: same sections
- HW6, due 1:30 PM 11/1
Class 17 (F 10/27)
- EXAM 2
At home:
- Videos: video 2 of Chapter 8, through 8.1.2
- Reading: same sections
Class 18 (M 10/30)
- Quick quiz
- Help with HW
At home:
- Videos: video 3 of Chapter 8, through 8.1.3
- Reading: same sections
Class 19 (W 11/1)
- Quick quiz
- Student lecture 5 (Zhang, Zhu, Meng, Luo)
At home:
- Videos: videos 4-5 of Chapter 8, through 8.2
- Reading: same sections
- HW7, due 1:30 PM 11/8: Exercises 8.2, 8.3, 8.11 (you should build on the MR code), and 8.15(a).
Class 20 (F 11/3)
- Quick quiz
- Student lecture 6 (Lyu, Yi, Wang, Swissler)
At home:
- Videos: video 6 of Chapter 8, up to (not including) 8.4
- Reading: same sections
Class 21 (M 11/6)
- Quick quiz
- Help with HW
At home:
- Videos: video 7 of Chapter 8, Chapter 8.5 (skip 8.4)
- Reading: same sections
Class 22 (W 11/8)
- Quick quiz
- Student lecture 7 (Warren, Kilaru, Wang, Mandana)
At home:
- Videos: videos 1-2 of Chapter 9, through Chapter 9.2
- Reading: same sections
- HW8, due 1:30 PM 11/15: Exercises 8.15(b) (use your previous results from 8.15(a), and turn in any code you write as well as a V-REP movie of your simulation), 8.14 (turn in your testable code and evidence your code returns similar results), 9.14, and 9.26.
Class 23 (F 11/10)
- Quick quiz
- Student lecture 8 (Wang, Dai, Ma, Peng)
At home:
- Videos: video 4 of Chapter 9, Chapter 9.4 - 9.4.1 (skip 9.3)
- Reading: same sections
Class 24 (M 11/13)
- Quick quiz
- Help with HW
At home:
- Videos: videos 5-6 of Chapter 9, up to (not including) Chapter 9.5
- Reading: same sections
Class 25 (W 11/15)
- Quick quiz
- Exam prep
At home:
- Videos: videos 1-3 of Chapter 11, up to (not including) Chapter 11.2.2.1
- Reading: same sections
- Final project. This project is part of the assignment grade, cannot be dropped, and has the weight of 2 normal assignments. The assignment is split into two parts: a relatively simple Part I, due after 1 week, followed by the programming-heavy Part II, due during finals week. You will receive a single grade for the entire assignment, after Part II has been submitted.
- Part I, due 1:30 PM 11/22: Exercise 13.33 (a) and (b). Turn in your solutions (handwritten or typed) and any code you wrote.
- Part II, due 11:59 PM 12/6: Exercise 13.33 (c), (d), and (e). Turn in 1) any solutions (handwritten or typed), 2) your code, 3) any plots you created with your code, 4) your short V-REP videos (made using the youbot csv animation scene), and 5) the .csv files corresponding to the videos.
Class 26 (F 11/17)
- EXAM 3
At home:
- Videos: videos 4-5 of Chapter 11, Chapter 11.2.2.1 and 11.2.2.2
- Reading: same sections
Class 27 (M 11/20)
- Quick quiz
- Help with HW
At home:
- Videos: videos 6-8 of Chapter 11, Chapter 11.3
- Reading: same sections
- Turn in Part I of your final project on Canvas.
Class 28 (W 11/22)
- Quick quiz
- Student lecture 9 (Abiney, Aubrun, Anthony, Alston)
At home:
- Videos: videos 1-3 of Chapter 13, through Chapter 13.2
- Reading: same sections
Class 29 (M 11/27)
- Quick quiz
- Help with HW
At home:
- Reading: odometry and mobile manipulation, Chapter 13.4 and 13.5
Class 30 (W 11/29)
- Quick quiz
- Student lecture 10 (Miller, Berrueta, Davis, Tobia)
At home:
- Final assignment work
Class 31 (F 12/1)
- Student lecture 11 (Fernandez, Lutzen, SaLoutos, Iwankiw)
At home:
- Your final project is due on Canvas by 11:59 PM on Wednesday Dec 6.