Difference between revisions of "ME 449 Robotic Manipulation"

From Mech
Jump to navigationJump to search
(281 intermediate revisions by 5 users not shown)
Line 1: Line 1:
'''Spring Quarter 2014'''
'''Fall Quarter 2018'''


* Instructor: Prof. Kevin Lynch
* Instructor: Prof. Kevin Lynch
* Meeting: 2:00-2:50, MWF, Frances Searle Building 1-441
* Office hours: TBD
* TAs: Huan Weng, Tito Fernandez, and Zack Woodruff
* Meeting: 11-11:50 MWF, Tech LG68
* Office hours: Mon 3:00-4:00, Tech B222, Prof. Lynch; Tues 3:30-4:30, Tech B241 (through the ME office by the freight elevator), TAs
* course website: http://hades.mech.northwestern.edu/index.php/ME_449_Robotic_Manipulation
* Course website: [http://hades.mech.northwestern.edu/index.php/ME_449_Robotic_Manipulation http://hades.mech.northwestern.edu/index.php/ME_449_Robotic_Manipulation]
* Book website: [http://modernrobotics.org http://modernrobotics.org]
* '''[https://docs.google.com/forms/d/e/1FAIpQLSej7E9AaYomOEi5ToiNVum-_H7XdaJZ95Va__AIBPnB0xXZyg/viewform?usp=sf_link Click here to enter any questions you have on the lectures or reading that you would like to discuss in class.]'''


==Course Summary==
==Course Summary==


Mechanics of robotic manipulation, computer representations and algorithms for manipulation planning, and applications to industrial automation, parts feeding, grasping, fixturing, and assembly.
Mechanics of robotic manipulation, computer representations and algorithms for manipulation planning, and applications to industrial automation, parts feeding, grasping, fixturing, and assembly.

==Prerequisites==

Linear algebra, first-order linear ODEs, freshman-level physics/mechanics, a bit of programming background.


==Grading==
==Grading==
* 50% quizzes (quizzes will be open book, open notes, any cheat sheets you would like, but no electronics)
* 20% assignments (lowest grade will be dropped)
* 15% final project (due Wed Dec 12, during finals week)
* 10% practice exercise for other students
* 5% engagement: answering questions in class, participation in in-class exercises, and helping other students in class


Your lowest assignment grade will be dropped. This policy is meant to handle '''ALL''' eventualities and emergencies: travel, job interview, overloaded that week, computer crashed, could not submit on time (even by 30 seconds!), problem with submitting to Canvas, dog ate it, slept in, forgot, busy watching the big game, big party the night before, etc. Please don't ask for an extension or an exception; you've already been granted one! (But only one.)
Grading for the course will be based on student lectures, problem sets and a final project. There will be no exams. The final project, due during finals week, will take the form of a conference paper analyzing a manipulation problem, building on another research paper, or implementing a simulation.


==Course Text==
==Course Text and Software==

[[Media:park-lynch.pdf|"Introduction to Robotics: Mechanics, Planning, and Control," F. C. Park and K. M. Lynch]]. These course notes will be undergoing revision throughout the quarter; check the timestamp in the table of contents.
This course uses the textbook ''Modern Robotics: Mechanics, Planning, and Control'', Kevin M. Lynch and Frank C. Park, Cambridge University Press 2017.

[[Coursera_Resources#Things_you_should_complete_before_taking_any_course|Get the book, install and test the Modern Robotics code library, and install and test the V-REP simulator.]] You will program in Python, Mathematica, or MATLAB in this course.

'''[[Modern Robotics Linear Algebra Review|Here is a linear algebra refresher appendix to accompany the book.]]'''

==Video Lectures and the Flipped Classroom==

This course will take advantage of video lectures and lecture comprehension quizzes on Coursera. (You can also see the video lectures, but not the lecture comprehension quizzes, outside Coursera at the video browser [http://modernrobotics.northwestern.edu '''http://modernrobotics.northwestern.edu'''] or using [[Modern_Robotics_Videos|'''direct links to the videos on YouTube''']].)

You should sign up to audit the following courses on Coursera in advance of our study of them in class. Don't pay; you should start by choosing the 7-day free trial, but then click "audit the course." Auditing the course gives you access to everything except graded assignments and peer-reviewed projects.

* [https://www.coursera.org/learn/modernrobotics-course1 Course 1: Foundations of Robot Motion (Chapters 2 and 3)]
* [https://www.coursera.org/learn/modernrobotics-course2 Course 2: Robot Kinematics (Chapters 4, 5, 6, and 7)]
* [https://www.coursera.org/learn/modernrobotics-course3 Course 3: Robot Dynamics (Chapters 8 and 9)]
* [https://www.coursera.org/learn/modernrobotics-course4 Course 4: Robot Motion Planning and Control (Chapters 10 and 11)]
* [https://www.coursera.org/learn/modernrobotics-course5 Course 5: Robot Manipulation and Wheeled Mobile Robots (Chapters 12 and 13)]
* [https://www.coursera.org/learn/modernrobotics-course6 Course 6: Capstone Project, Mobile Manipulation]

'''[[Coursera Resources|This page collects together useful supplemental material to the Coursera courses]]'''.

The general flow of the class will be the following:

* Before class, watch the videos, do the lecture comprehension quizzes associated with each video, do the associated reading, and participate in any "discussion prompts" on Coursera. You should plan to bring any questions or confusion to class. 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 appropriate sections of the book. 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.

'''[https://docs.google.com/forms/d/e/1FAIpQLSej7E9AaYomOEi5ToiNVum-_H7XdaJZ95Va__AIBPnB0xXZyg/viewform?usp=sf_link Click here to enter any questions you have on the lectures or reading that you would like to discuss in class.]'''
* In class, I will briefly review the lecture comprehension quizzes and the material that was covered, get a little discussion going and take any questions, and then ask you to work on a practice exercise either individually or in small groups. If time remains, you may work on homework together. I will be available to help.
* On days when a homework is turned in, I will leave time for any questions about it. On days before a quiz, I will spend as much time reviewing the material covered by the quiz as you would like.

==Practice Exercises==
[[Media:ME449-practice.pdf|This file contains sample exercises and their solutions, useful for studying for tests or practicing your understanding of the material.]]

==Student-Created Exercises==

[https://docs.google.com/spreadsheets/d/1cIX4_U8lkWAL6LqQBgDrE5WX1TAmJaD6-ykG7GNACkI/edit?usp=sharing '''Click here for student exercise assignments.''']

All students will be responsible for creating a practice exercise, consisting of the exercise and the solution. A good exercise should test an important concept in the context of a real robotics application (e.g., motion planning for a quadrotor, robot localization, computer vision, grasping, etc.), require the learner to understand and apply equations in the book or use the book's software, and require a bit of thought (i.e., not just "plug and chug" questions). For many exercises, a good figure or two is helpful. You could use a figure of a real robot and add your own annotations to it (e.g., frames or objects in its environment), or you could hand-draw something, or you could use V-REP or other software to help create the figure. You should not confine your question to an application discussed in the textbook. Make your exercise interesting and motivating! Exercises that require synthesizing two or more concepts or equations are more interesting and useful.

You should look at the practice exercise document and end-of-chapter exercises for inspiration, but obviously your exercises should not be copies.

You will create your exercise using [https://en.wikipedia.org/wiki/LaTeX LaTeX] (pronounced "lay teck" or "lah teck"), the standard for scientific document preparation. [https://www.overleaf.com/ Overleaf] is a free online implementation of LaTeX. To get started on your exercise,

# Download [[Media:ME449-exercise.zip|'''this .zip file''']] and uncompress it. There are five files: main.tex, prelims.tex, twist-wrench.pdf, table-lamp.PNG, and LampSolution.PNG.
# Create an account on [https://www.overleaf.com/ Overleaf].
# Create a new (blank) project on Overleaf called "exercise."
# Upload the five files to this project. (You may get a warning that your default main.tex file is being overwritten; don't worry about it.)
# Click on main.tex to see your main LaTeX document.
# Press the "Recompile" button to see the pdf document that is compiled from the five files. You can download the pdf file, or all the "source" files, by clicking on "Menu" and choosing which to download. '''[[Media:ME449-exercise-output.pdf|This is the .pdf file you should have created.]]'''

main.tex is the main file of the project, and the only one that you will edit, so you should understand what is going on in that file. prelims.tex tells LaTeX what packages to use and defines some macros, e.g., \twist creates <math>\mathcal{V}</math> and \wrench creates <math>\mathcal{F}</math>. The other three files are image files that get included in the document. You will create different image files depending on your exercise. For example, you can make a nice hand drawing and then scan it.

To learn more about typesetting in LaTeX, google is your friend! Try googling "latex math" or "latex math symbols," for example.

You will turn in the source for your exercise as a zip file, as well as the final pdf file.

==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==


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.
* [[Media:ME449-2014-hw1.pdf|Assignment 1]], due Monday 4/14 at the beginning of class

'''You will not receive credit if you just give an answer. Your solution must demonstrate how you got the answer. It must be easy to follow.'''

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 under any circumstances. See the policy on dropping the lowest assignment grade under "Grading" above.''' 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.

* '''Assignment 1, due 30 minutes before class on Canvas, Wed Oct 10.''' Exercises 2.1, 2.4, 2.9 for mechanisms (a) and (b) from Fig 2.18, 2.22, 2.29, and 3.1.
* '''Assignment 2, due 30 minutes before class on Canvas, Wed Oct 17.''' Exercises 3.16, 3.17, 3.27, 3.30, 3.31, 3.49.
* '''Assignment 3, due 30 minutes before class on Canvas, Wed Oct 24.''' Exercises 4.2, 4.5, 4.14, 5.7, and 5.11(a).
* '''Assignment 4, due 30 minutes before class on Canvas, Wed Oct 31.''' Exercises 5.2, 5.25, 6.7, 6.8, and [[Media:IKexercise.pdf|this programming project]]. You should submit a zip file containing your answers to the four exercises plus the directory structure described in the programming project.
* '''Assignment 5, due 30 minutes before class on Canvas, Wed Nov 7.''' Book exercises 8.2 and 8.3, and [[Media:ME449-practice-81.pdf|practice exercise 8.1]].
* '''Assignment 6, due 30 minutes before class on Canvas, Wed Nov 14.''' Book exercise 8.14 (turn in your code), book exercise 8.15 (make a video of the motion using V-REP), and practice exercise 9.1(a), trajectory planning for the WAM robot. For each trajectory in 9.1(a), plot the (x,y,z) components of the trajectory and the three exponential coordinates of rotation of the trajectory (each taken from the transformation matrices) as a function of time. Make sure your plots are labeled so we can tell which curve is which.
* [http://hades.mech.northwestern.edu/index.php/Mobile_Manipulation_Capstone '''CAPSTONE PROJECT''']. We will do milestone 2 first, then 1, 3, 4 to complete it.

==Detailed Syllabus==
[https://docs.google.com/spreadsheets/d/1UrBFai-1Z98Ry48bW50OMqxvvqZ3Jo8pHgZmljOgPpo/edit?usp=sharing '''The course calendar'''], including video lecture and reading assignments due before each class.
<!--
[https://docs.google.com/spreadsheets/d/1jWd_POLlQYxQLv1Igv-eVmORdtEcLi0mU_rVLkNguYI/edit?usp=sharing '''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
: [[Media:ME449-HW6-2017.pdf|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:
==Final Project==
: 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)
==Approximate Syllabus==
: Quick quiz
: Student lecture 6 (Lyu, Yi, Wang, Swissler)


At home:
'''Configuration Space'''
: Videos: video 6 of Chapter 8, up to (not including) 8.4
: Reading: same sections


'''Class 21''' (M 11/6)
reading: Chapter 2
: Quick quiz
* degrees of freedom, Grubler's formula, parameterizations, holonomic and nonholonomic constraints (classes 1-2)
: Help with HW


At home:
'''Rigid-Body Motions''' (classes 3-6), through Fri April 11
: 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:
reading: Chapter 3, but you may skim/skip 3.2.2, 3.2.4
: Videos: videos 1-2 of Chapter 9, through Chapter 9.2
* rotation matrices, Euler angles, exponential coordinates, unit quaternions
: Reading: same sections
* angular velocities
: '''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.
* rigid-body motions
* spatial velocities


'''Class 23''' (F 11/10)
'''Forward Kinematics''', through Wed April 16
: Quick quiz
: Student lecture 8 (Wang, Dai, Ma, Peng)


At home:
reading: Chapter 4, but you may skim/skip 4.1 and 4.2.3
: Videos: video 4 of Chapter 9, Chapter 9.4 - 9.4.1 (skip 9.3)
* product of exponentials formula (class 7; Patrick Afrifah and Matthew Patrick)
: Reading: same sections
** [https://www.youtube.com/watch?v=_AyCzxO07P8&feature=youtu.be Intro to Product of Exponentials]
** [https://www.youtube.com/watch?v=fMj0mTJHi74&feature=youtu.be Intro 2 (Talking about alternative form of Product of Exponentials)]
** [https://www.youtube.com/watch?v=Kwl0OonLm9E&feature=youtu.be An example of product of exponentials]
** [https://www.youtube.com/watch?v=DLJKv2IPNWc Another example]


'''Class 24''' (M 11/13)
'''Velocity Kinematics and Statics''', through Fri April 25
: Quick quiz
: Help with HW


At home:
reading: Chapter 5
: Videos: videos 5-6 of Chapter 9, up to (not including) Chapter 9.5
* coordinate, space, and body Jacobians (classes 8-9)
: Reading: same sections
* statics of open chains, singularities, manipulability (classes 10-11; Kevin Siegler and Andrew Welter)
'''Class 25''' (W 11/15)
: Quick quiz
: Exam prep


At home:
'''Inverse Kinematics''', through Wed April 30
: 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)
reading: Chapter 6, but you may skip 6.1
: EXAM 3
* 2R example, numerical methods, and redundant open chains (classes 12-13)


At home:
'''Dynamics of Open Chains''', through Fri May 9
: 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)
reading: Chapter 8.1 and 8.5 on Lagrangian formulation, rest of the chapter on Newton-Euler and task space coords
: Quick quiz
* Lagrangian formulation, dynamics of a single rigid body (classes 14-15; Harry Briggs and Stefan Hyde)
: Help with HW
* Newton-Euler inverse and forward dynamics of open chains, dynamics in task space (classes 16-17; Ahalya Prabhakar and Ben Richardson)


At home:
'''Trajectory Generation''', through Wed May 14
: 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:
reading: Chapter 9, but you may skip 9.2 and 9.3
: Videos: videos 1-3 of Chapter 13, through Chapter 13.2
* definitions and time-optimal time scaling (classes 18-19; Wentao Chen and Chi Zhang)
: Reading: same sections


'''Motion Planning''', through Fri May 23
'''Class 29''' (M 11/27)
: Quick quiz
: Help with HW


At home:
reading: Chapter 10 through 10.5.1
: Reading: odometry and mobile manipulation, Chapter 13.4 and 13.5
* overview, foundations, and complete path planners (classes 20-21; Siddharth Jain)
* grid methods and the RRT sampling method (classes 22-23)
'''Class 30''' (W 11/29)
: Quick quiz
: Student lecture 10 (Miller, Berrueta, Davis, Tobia)


At home:
'''Robot Control'''
: Final assignment work


'''Class 31''' (F 12/1)
optional: Chapter 11
: Student lecture 11 (Fernandez, Lutzen, SaLoutos, Iwankiw)


At home:
'''Grasping and Manipulation''', through Fri June 6
: '''Your final project is due on Canvas by 11:59 PM on Wednesday Dec 6.'''


-->
reading: Chapter 12
* contact kinematics, planar graphical methods, and form closure (classes 24-25)
* contact forces, planar graphical methods, and force closure (classes 26-27; Xiang Chen and Xiaobin Xiong)
* other manipulation (classes 28-29; Shepherd and Woodruff)


<!--
==Archive==
==Archive==


* [[ME 449 Robotic Manipulation (Archive 2012)|ME 449 Spring 2012]]
* [[ME 449 Robotic Manipulation (Archive 2012)|ME 449 Spring 2012]]
* [[ME 449 Robotic Manipulation (Archive Spring 2014)|ME 449 Spring 2014]]
* [[ME 449 Robotic Manipulation (Archive Fall 2014)|ME 449 Fall 2014]]
* [[ME 449 Robotic Manipulation (Archive Fall 2015)|ME 449 Fall 2015]]
* [[ME 449 Robotic Manipulation (Archive Fall 2016)|ME 449 Fall 2016]]
* [[ME 449 Robotic Manipulation (Archive Fall 2017)|ME 449 Fall 2017]]
-->

Revision as of 11:01, 29 November 2018

Fall Quarter 2018

Course Summary

Mechanics of robotic manipulation, computer representations and algorithms for manipulation planning, and applications to industrial automation, parts feeding, grasping, fixturing, and assembly.

Prerequisites

Linear algebra, first-order linear ODEs, freshman-level physics/mechanics, a bit of programming background.

Grading

  • 50% quizzes (quizzes will be open book, open notes, any cheat sheets you would like, but no electronics)
  • 20% assignments (lowest grade will be dropped)
  • 15% final project (due Wed Dec 12, during finals week)
  • 10% practice exercise for other students
  • 5% engagement: answering questions in class, participation in in-class exercises, and helping other students in class

Your lowest assignment grade will be dropped. This policy is meant to handle ALL eventualities and emergencies: travel, job interview, overloaded that week, computer crashed, could not submit on time (even by 30 seconds!), problem with submitting to Canvas, dog ate it, slept in, forgot, busy watching the big game, big party the night before, etc. Please don't ask for an extension or an exception; you've already been granted one! (But only one.)

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.

Get the book, install and test the Modern Robotics code library, and install and test the V-REP simulator. You will program in Python, Mathematica, or MATLAB in this course.

Here is a linear algebra refresher appendix to accompany the book.

Video Lectures and the Flipped Classroom

This course will take advantage of video lectures and lecture comprehension quizzes on Coursera. (You can also see the video lectures, but not the lecture comprehension quizzes, outside Coursera at the video browser http://modernrobotics.northwestern.edu or using direct links to the videos on YouTube.)

You should sign up to audit the following courses on Coursera in advance of our study of them in class. Don't pay; you should start by choosing the 7-day free trial, but then click "audit the course." Auditing the course gives you access to everything except graded assignments and peer-reviewed projects.

This page collects together useful supplemental material to the Coursera courses.

The general flow of the class will be the following:

  • Before class, watch the videos, do the lecture comprehension quizzes associated with each video, do the associated reading, and participate in any "discussion prompts" on Coursera. You should plan to bring any questions or confusion to class. 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 appropriate sections of the book. 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.

Click here to enter any questions you have on the lectures or reading that you would like to discuss in class.

  • In class, I will briefly review the lecture comprehension quizzes and the material that was covered, get a little discussion going and take any questions, and then ask you to work on a practice exercise either individually or in small groups. If time remains, you may work on homework together. I will be available to help.
  • On days when a homework is turned in, I will leave time for any questions about it. On days before a quiz, I will spend as much time reviewing the material covered by the quiz as you would like.

Practice Exercises

This file contains sample exercises and their solutions, useful for studying for tests or practicing your understanding of the material.

Student-Created Exercises

Click here for student exercise assignments.

All students will be responsible for creating a practice exercise, consisting of the exercise and the solution. A good exercise should test an important concept in the context of a real robotics application (e.g., motion planning for a quadrotor, robot localization, computer vision, grasping, etc.), require the learner to understand and apply equations in the book or use the book's software, and require a bit of thought (i.e., not just "plug and chug" questions). For many exercises, a good figure or two is helpful. You could use a figure of a real robot and add your own annotations to it (e.g., frames or objects in its environment), or you could hand-draw something, or you could use V-REP or other software to help create the figure. You should not confine your question to an application discussed in the textbook. Make your exercise interesting and motivating! Exercises that require synthesizing two or more concepts or equations are more interesting and useful.

You should look at the practice exercise document and end-of-chapter exercises for inspiration, but obviously your exercises should not be copies.

You will create your exercise using LaTeX (pronounced "lay teck" or "lah teck"), the standard for scientific document preparation. Overleaf is a free online implementation of LaTeX. To get started on your exercise,

  1. Download this .zip file and uncompress it. There are five files: main.tex, prelims.tex, twist-wrench.pdf, table-lamp.PNG, and LampSolution.PNG.
  2. Create an account on Overleaf.
  3. Create a new (blank) project on Overleaf called "exercise."
  4. Upload the five files to this project. (You may get a warning that your default main.tex file is being overwritten; don't worry about it.)
  5. Click on main.tex to see your main LaTeX document.
  6. Press the "Recompile" button to see the pdf document that is compiled from the five files. You can download the pdf file, or all the "source" files, by clicking on "Menu" and choosing which to download. This is the .pdf file you should have created.

main.tex is the main file of the project, and the only one that you will edit, so you should understand what is going on in that file. prelims.tex tells LaTeX what packages to use and defines some macros, e.g., \twist creates and \wrench creates . The other three files are image files that get included in the document. You will create different image files depending on your exercise. For example, you can make a nice hand drawing and then scan it.

To learn more about typesetting in LaTeX, google is your friend! Try googling "latex math" or "latex math symbols," for example.

You will turn in the source for your exercise as a zip file, as well as the final pdf file.

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.

You will not receive credit if you just give an answer. Your solution must demonstrate how you got the answer. It must be easy to follow.

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 under any circumstances. See the policy on dropping the lowest assignment grade under "Grading" above. 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.

  • Assignment 1, due 30 minutes before class on Canvas, Wed Oct 10. Exercises 2.1, 2.4, 2.9 for mechanisms (a) and (b) from Fig 2.18, 2.22, 2.29, and 3.1.
  • Assignment 2, due 30 minutes before class on Canvas, Wed Oct 17. Exercises 3.16, 3.17, 3.27, 3.30, 3.31, 3.49.
  • Assignment 3, due 30 minutes before class on Canvas, Wed Oct 24. Exercises 4.2, 4.5, 4.14, 5.7, and 5.11(a).
  • Assignment 4, due 30 minutes before class on Canvas, Wed Oct 31. Exercises 5.2, 5.25, 6.7, 6.8, and this programming project. You should submit a zip file containing your answers to the four exercises plus the directory structure described in the programming project.
  • Assignment 5, due 30 minutes before class on Canvas, Wed Nov 7. Book exercises 8.2 and 8.3, and practice exercise 8.1.
  • Assignment 6, due 30 minutes before class on Canvas, Wed Nov 14. Book exercise 8.14 (turn in your code), book exercise 8.15 (make a video of the motion using V-REP), and practice exercise 9.1(a), trajectory planning for the WAM robot. For each trajectory in 9.1(a), plot the (x,y,z) components of the trajectory and the three exponential coordinates of rotation of the trajectory (each taken from the transformation matrices) as a function of time. Make sure your plots are labeled so we can tell which curve is which.
  • CAPSTONE PROJECT. We will do milestone 2 first, then 1, 3, 4 to complete it.

Detailed Syllabus

The course calendar, including video lecture and reading assignments due before each class.