Difference between revisions of "ME 449 Robotic Manipulation"
AdamBarber (talk | contribs) |
|||
(626 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
''' |
'''Fall Quarter 2025''' |
||
* Instructor: Prof. Kevin Lynch |
* Instructor: Prof. Kevin Lynch |
||
* Course assistant: Yifei Chen, YifeiChen2026@u.northwestern.edu |
|||
* Office hours: Mon 3-4 PM, Wed 4-5 PM, Tech B222, Adam: Fri 2-3 PM (No office hours 5/2 or 5/5-5/9, Office Hours 5/1 from 11am-12am), Tech B230 |
|||
* Zoom office hours (see Canvas for links): Monday 3-4 pm (Lynch); Thursday 10-11 am (Chen); Friday 10-11 am (Chen) |
|||
* Meeting: 11-11:50 MWF, Tech LG68 |
|||
* Meeting: 2:00-2:50, MWF, '''Tech L361''' (first meeting: Wed Sept 17) |
|||
* 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.]''' |
|||
'''Supportive Class Environment''' |
|||
==Course Summary== |
|||
All members of this class (instructors, course assistants, students) are expected to contribute to a respectful, inclusive, and supportive environment for every other member of the class. |
|||
Mechanics of robotic manipulation, computer representations and algorithms for manipulation planning, and applications to industrial automation, parts feeding, grasping, fixturing, and assembly. |
|||
We are ''partners'' in your education; help us help you get the most out of this class. Please engage as much as possible during our class meetings! |
|||
==Grading== |
|||
'''Honor Code''' |
|||
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. |
|||
You are encouraged to discuss the material with the instructor, course assistants, and your classmates, but you are not allowed to copy answers or code from others in the class or other sources, nor are you allowed to share your answers or code with others. If you use generative AI to help you with your work, you are obligated to cite the source and nature of the help; for example, if you turn in code generated in whole or in part by generative AI, you must cite the AI software in the comments, and you are required to understand how and why the code works. (Note also that electronics are not available during tests, so submitting code you do not understand will not help you prepare for tests.) ''Anyone copying answers or code, or providing answers or code, or becoming aware of others doing so without reporting to the instructor, is in violation of the honor code.'' |
|||
==Course Text== |
|||
[[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. |
|||
'''Northwestern University Syllabus Standards''' |
|||
[[Media:ME449-Summary-2014.pdf|Summary of important equations]]. |
|||
This course follows the [https://www.registrar.northwestern.edu/registration-graduation/northwestern-university-syllabus-standards.html Northwestern University Syllabus Standards]. Students are responsible for familiarizing themselves with this information. |
|||
==Assignments== |
|||
'''Getting Started''' |
|||
* [[Media:ME449-2014-hw1.pdf|Assignment 1]], due Monday 4/14 at the beginning of class [[Media:ME449_2014_Solns_HW1.pdf|Solutions]] |
|||
* [[Media:ME449-2014-hw2.pdf|Assignment 2]], due Monday 4/28 at the beginning of class [[Media:ME449_2014_Solns_HW2.pdf|Solutions]] |
|||
* [[Media:ME449-2014-hw3.pdf|Assignment 3]], due Monday 5/12 at the beginning of class [[Media:ME449_2014_Solns_HW3.pdf|Solutions]] |
|||
* [[Media:ME449-2014-hw4.pdf|Assignment 4]], due Wednesday 5/21 at the beginning of class |
|||
Do the following things as soon as possible: |
|||
==Final Project== |
|||
* [[Modern Robotics#Book|Buy the book "Modern Robotics" or download the free electronic preprint version]]. (Though the Cambridge-published print version is the "official" version, the differences are mostly layout and either will work for this course.) |
|||
==Approximate Syllabus== |
|||
* [[Getting Started with the Modern Robotics Code Library|Download the Modern Robotics software]]. You can program in Python, MATLAB, or Mathematica. Most students use Python or MATLAB, but any of these is fine. |
|||
* [[Getting Started with the CoppeliaSim Simulator|Download, install, and test the CoppeliaSim robot simulation software.]] |
|||
* Accept your invitation to the Coursera course. |
|||
==Course Summary== |
|||
Student videos are due at least 48 hours before the first class they will be used for. |
|||
Representations of the configuration and spatial motion of rigid bodies and robots based on modern screw theory. Forward, inverse, and differential kinematics. Robot dynamics, trajectory planning, and motion control. Wheeled mobile robots and mobile manipulation. |
|||
'''Configuration Space''' |
|||
==Prerequisites== |
|||
reading: Chapter 2 |
|||
* degrees of freedom, Grubler's formula, parameterizations, holonomic and nonholonomic constraints (classes 1-2) |
|||
Linear algebra, first-order linear ODEs, freshman-level physics/mechanics, a bit of programming background. |
|||
'''Rigid-Body Motions''' (classes 3-6), through Fri April 11 |
|||
==Grading== |
|||
reading: Chapter 3, but you may skim/skip 3.2.2, 3.2.4 |
|||
* rotation matrices, Euler angles, exponential coordinates, unit quaternions |
|||
* angular velocities |
|||
* rigid-body motions |
|||
* spatial velocities |
|||
30% of your final grade will be from your Coursera grades (which I expect to be nearly perfect), 30% from assignments outside of Coursera, 20% from quiz 1, and 20% from quiz 2. |
|||
'''Forward Kinematics''', through Wed April 16 |
|||
==Course Text and Software== |
|||
reading: Chapter 4, but you may skim/skip 4.1 and 4.2.3 |
|||
* product of exponentials formula (class 7; Patrick Afrifah and Matthew Patrick) |
|||
** [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] |
|||
This course uses the textbook ''Modern Robotics: Mechanics, Planning, and Control'', Kevin M. Lynch and Frank C. Park, Cambridge University Press 2017. If you find an error or typo in the book, please '''[http://hades.mech.northwestern.edu/index.php/Modern_Robotics_Errata report it here].''' |
|||
'''Velocity Kinematics and Statics''', through Wed April 23 |
|||
[[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 CoppeliaSim robot simulator.]] You will program in Python, Mathematica, or MATLAB in this course. |
|||
reading: Chapter 5 |
|||
* coordinate, space, and body Jacobians (classes 8-9) |
|||
* statics of open chains, singularities, manipulability (classes 10-11; Kevin Siegler and Andrew Welter) |
|||
** [https://www.youtube.com/watch?v=oVZcmeAOe5k&feature=youtu.be Spatial forces] |
|||
** [https://www.youtube.com/watch?v=PDjR1Zbq0Iw&feature=youtu.be Jacobian and joint torques] |
|||
** [https://www.youtube.com/watch?v=ckVp4z_AikM&feature=youtu.be Singularities] |
|||
** [https://www.youtube.com/watch?v=ZCIgWCGuEGM&feature=youtu.be A second singularity example] |
|||
** [https://www.youtube.com/watch?v=oDAfuscBXdc&feature=youtu.be Manipulability ellipsoid] |
|||
'''[[Modern Robotics Linear Algebra Review|Here is a linear algebra refresher appendix to accompany the book.]]''' |
|||
'''Inverse Kinematics''', through Mon April 28 |
|||
==Approximate Syllabus and Schedule== |
|||
reading: Chapter 6, but you may skip 6.1 |
|||
* 2R example, numerical methods, and redundant open chains (classes 12-13) |
|||
Here is a summary of the structure of the course. '''All items are due 30 minutes before the associated class time (1:30 PM Central). The deadlines are controlled by Coursera, so do not be late!''' You may work ahead if you wish, but then you won't get as much out of the classes. |
|||
'''Dynamics of Open Chains''', through Wed May 7 |
|||
* Coursera refers to "weeks," but ignore this; our course modules are not a week long. |
|||
* Before some classes, you should complete a quiz on earlier material. |
|||
* Before most classes, you will watch the associated videos on Coursera and answer the "lecture comprehension" (LC) questions. (Designed to be relatively quick, to solidify your understanding.) |
|||
* You are encouraged to read the corresponding portions of the textbook after watching the videos. I suggest you watch first, then read, then possibly re-watch, but you can determine what works best for your learning style. |
|||
* During the class period '''after''' you watch those videos, I will typically summarize what we learned, work a problem, take any questions you have about the material, and possibly assign you a problem to work on. |
|||
* There are two kinds of assessments on Coursera (Coursera refers to both of them as "quizzes"): "lecture comprehension" questions (LCs), which are short and immediately follow lectures, and summative quizzes, which are usually longer assessments/assignments occurring at the middle or end of a chapter. |
|||
* Within Coursera there are also "discussion prompts," open-ended group questions that you should reply to (responses can be simple) and forums where you can post questions and reply to other students' questions. |
|||
* Assignments outside Coursera will be submitted through Canvas. |
|||
Below is the approximate syllabus and schedule. Next to each date is the Coursera material that should have been covered '''at least 30 minutes before''' that class. "LC" refers to brief lecture comprehension questions that should be completed before that class, and "quiz" is a longer summative quiz on earlier material. |
|||
reading: Chapter 8.1 and 8.2 on Lagrangian formulation, rest of the chapter on Newton-Euler and task space coords |
|||
* Lagrangian formulation, dynamics of a single rigid body (classes 14-15; Harry Briggs and Stefan Hyde) |
|||
'''Chapter 2, Configuration Space''' |
|||
** [https://www.youtube.com/watch?v=opKvyzq-WzA&feature=youtu.be Dynamics of a rigid body in the body frame] |
|||
* Wed Sept 17: welcome to the course and syllabus review; intro to Coursera. '''The schedule for completing Coursera items is set by this wiki!''' |
|||
** [https://www.youtube.com/watch?v=DNSxaQJqOHs&feature=youtu.be Dynamics of a rigid body in the space frame] |
|||
* Fri Sept 19: check for working CoppeliaSim implementation and summarize installation process for each OS; make sure Coursera invitation is accepted; material through Chapter 2.2 (3 videos and 2 LCs on dof of a robot) '''[[Media:MRslides-ch02a.pdf|CLASS SLIDES]]''' |
|||
** [https://www.youtube.com/watch?v=fLEJtElwfd8 Lagrangian dynamics] |
|||
* Mon Sept 22: meet the class; and material through Chapter 2.3 (quiz, Chapter 2 through 2.2; 2 videos and 2 LCs on C-space topology and representation) '''[[Media:MRslides-ch02b.pdf|CLASS SLIDES]]''' |
|||
** [https://www.youtube.com/watch?v=IUTUgVG9DDY Lagrangian dynamics: 2R example part 1] |
|||
* Wed Sept 24: '''ASST 1 HAS BEEN POSTED.''' Finish Chapter 2 (2 videos and 2 LCs on configuration and velocity constraints, task space and workspace) '''[[Media:MRslides-ch02c.pdf|CLASS SLIDES]]''' |
|||
** [https://www.youtube.com/watch?v=AEChG8BtfOY Lagrangian dynamics: 2R example part 2] |
|||
'''Chapter 3, Rigid-Body Motions''' |
|||
* Newton-Euler inverse and forward dynamics of open chains, dynamics in task space (classes 16-17; Ahalya Prabhakar and Ben Richardson) |
|||
* Fri Sept 26: through Chapter 3.2.1 (quiz, Chapter 2.3 through 2.5; 3 videos and 3 LCs on rotation matrices SO(3)) '''[[Media:MRslides-ch03a.pdf|CLASS SLIDES]]''' |
|||
** [http://youtu.be/7Qg45A8AXbk Newton-Euler Inverse Dynamics, Part 1/3] |
|||
* Mon Sept 29: finish Chapter 3.2 (3 videos and 3 LCs on angular velocities, so(3), exponential coordinates) '''[[Media:MRslides-ch03b.pdf|CLASS SLIDES]]''' |
|||
** [http://youtu.be/CTvJUfhVjhI Newton-Euler Inverse Dynamics, Part 2/3] |
|||
* Wed Oct 1: New material: through Chapter 3.3.2 (quiz, Chapter 3 through 3.2; 3 videos and 3 LCs on transform matrices SE(3) and twists) '''[[Media:MRslides-ch03c.pdf|CLASS SLIDES]]''' |
|||
** [http://youtu.be/8BtVH2ZzM9s Newton-Euler Inverse Dynamics, Part 3/3] |
|||
* Fri Oct 3: finish Chapter 3 (2 videos and 2 LCs on se(3), exponential coordinates, and wrenches) '''[[Media:MRslides-ch03d.pdf|CLASS SLIDES]]''' |
|||
** [http://youtu.be/xJU8yNuBcdc Forward Dynamics of Open Chains] |
|||
'''Chapter 4, Forward Kinematics (skip section 4.2 on URDF)''' |
|||
** [http://youtu.be/3a5SN7G6ipY Dynamics in Task Space Coordinates] |
|||
* Mon Oct 6: finish Chapter 4 (quiz, Chapters 3.3 and 3.4; 3 videos and 3 LCs on product of exponentials formula, space and e-e frame) '''[[Media:MRslides-ch04a.pdf|CLASS SLIDES]]''' |
|||
'''Chapter 5, Velocity Kinematics and Statics''' |
|||
* Wed Oct 8: '''ASST 1 DUE 1:30 PM'''. New material: through Chapter 5.1 (quiz, Chapter 4; 3 videos and 3 LCs on space Jacobian, body Jacobian) '''[[Media:MRslides-ch05a.pdf|CLASS SLIDES]]''' |
|||
* Fri Oct 10: New material: through Chapter 5.2 1 video and 1 LC on statics of open chains) '''[[Media:MRslides-ch05b.pdf|CLASS SLIDES]]''' |
|||
* Mon Oct 13: through Chapter 5.4 (2 videos and 2 LCs on singularity analysis, manipulability) '''[[Media:MRslides-ch05c.pdf|CLASS SLIDES]]''' |
|||
'''Chapter 6, Inverse Kinematics (focus on section 6.2)''' |
|||
* Wed Oct 15: Chapter 6 (quiz, Chapter 5; 3 videos and 3 LCs on numerical inverse kinematics) '''[[Media:MRslides-ch06a.pdf|CLASS SLIDES]]''' |
|||
'''Chapter 8, Dynamics of Open Chains (skip sections 8.4, 8.7, 8.8, and 8.9)''' |
|||
* Fri Oct 17: through Chapter 8.1.2 (quiz, Chapter 6; 2 videos and 2 LCs on Lagrangian dynamics) '''[[Media:MRslides-ch08a.pdf|CLASS SLIDES]]''' |
|||
* Mon Oct 20: New material: Chapter 8.1.3 (1 video and 1 LC on understanding the mass matrix) '''[[Media:MRslides-ch08b.pdf|CLASS SLIDES]]''' |
|||
* Wed Oct 22: '''QUIZ 1''', chapters 2-5 (no electronic devices allowed [calculator, laptop, tablet, etc.]; study sheets and book allowed) '''[[Media:ME449-midterm-2022.pdf|2022 midterm]]''' and '''[[Media:ME449-midterm-solutions-2022.pdf|solutions]]''' (average score 22.9/32); '''[[Media:ME449-midterm-2023.pdf|2023 midterm]]''' and '''[[Media:ME449-midterm-solutions-2023.pdf|solutions]]'''; '''[[Media:ME449-midterm-2024.pdf|2024 midterm]]''' and '''[[Media:ME449-midterm-solutions-2024.pdf|solutions]]''' |
|||
* Fri Oct 24: Chapter 8.2 (2 videos and 2 LCs on dynamics of a single rigid body) '''[[Media:MRslides-ch08c.pdf|CLASS SLIDES]]''' |
|||
* Mon Oct 27: Chapter 8.3 and 8.5 (2 videos and 2 LCs on Newton-Euler inverse dynamics, forward dynamics; quiz, Chapter 8 through 8.3) '''[[Media:MRslides-ch08d.pdf|CLASS SLIDES]]''' |
|||
'''Chapter 9, Trajectory Generation''' |
|||
* Wed Oct 29: New material: through Chapter 9.3 (3 videos and 3 LCs on point-to-point trajectories, polynomial via point trajectories) '''[[Media:MRslides-ch09a.pdf|CLASS SLIDES]]''' |
|||
* Fri Oct 31: <!--'''ASST 2, DUE 1:30 PM'''. -->Chapter 9.4 (quiz, Chapter 9 through 9.3; 3 videos and 3 LCs on time-optimal time scaling) '''[[Media:MRslides-ch09b.pdf|CLASS SLIDES]]''' |
|||
* Mon Nov 3: Chapter 9.4 recap. |
|||
* Wed Nov 5: Final project discussion |
|||
'''Chapter 11, Robot Control (focus on sections 11.1 through 11.4)''' |
|||
* Fri Nov 7: <!--'''ASST 3, DUE 1:30 PM.''' -->New material: up to (not including) Chapter 11.2.2.1 (quiz, Chapter 9.4; 3 videos and 3 LCs on linear error dynamics) '''[[Media:MRslides-ch11a.pdf|CLASS SLIDES]]''' |
|||
* Mon Nov 10: finish Chapter 11.2.2 (2 videos and 2 LCs on first- and second-order error dynamics) '''[[Media:MRslides-ch11b.pdf|CLASS SLIDES]]''' |
|||
* Wed Nov 12: through Chapter 11.3 (3 videos and 3 LCs on motion control with velocity inputs) '''[[Media:MRslides-ch11c.pdf|CLASS SLIDES]]''' |
|||
* Fri Nov 14: Chapter 11.4 (quiz, Chapter 11 through 11.3; 3 videos and 3 LCs on motion control with torque or force inputs) '''[[Media:MRslides-ch11d.pdf|CLASS SLIDES]]''' |
|||
'''Chapter 13, Wheeled Mobile Robots (skip section 13.3)''' |
|||
* Mon Nov 17: <!--'''FINAL PROJECT MILESTONE 2, DUE 1:30 PM'''. -->New material through Chapter 13.2 (quiz, Chapter 11.4; 3 videos and 3 LCs on omnidirectional wheeled mobile robots) '''[[Media:MRslides-ch13a.pdf|CLASS SLIDES]]''' |
|||
* Wed Nov 19: Chapter 13.4 (quiz, Chapter 13 through 13.2; 1 video and 1 LC on odometry) '''[[Media:MRslides-ch13b.pdf|CLASS SLIDES]]''' |
|||
* Fri Nov 21: Chapter 13.5 (1 video and 1 LC on mobile manipulation) '''[[Media:MRslides-ch13c.pdf|CLASS SLIDES]]''' |
|||
* Mon Nov 24: Wrapping up |
|||
* '''NO CLASS WED NOV 26 AND FRI NOV 28 (HAPPY THANKSGIVING!)''' |
|||
* Mon Dec 1: Final review. |
|||
* Wed Dec 3: In-class work on final project; Q&A on final. |
|||
* Fri Dec 5: '''QUIZ 2''' |
|||
==Practice Exercises== |
|||
[[Modern_Robotics#Useful_Supplemental_Documents|Sample exercises and their solutions, useful for practicing your understanding of the material.]] |
|||
== Practice Tests == |
|||
* [[Media:ME449-midterm-2024.pdf|2024 midterm]] and [[Media:ME449-midterm-solutions-2024.pdf|2024 midterm solutions]] |
|||
* [[Media:ME449-midterm-2023.pdf|2023 midterm]] and [[Media:ME449-midterm-solutions-2023.pdf|2023 midterm solutions]] |
|||
* [[Media:ME449-midterm-2022.pdf|2022 midterm]] and [[Media:ME449-midterm-2022-solutions.pdf|2022 midterm solutions]] |
|||
* [[Media:ME449-quiz1-solutions-2019.pdf|Quiz 1, 2019]] |
|||
* Quiz 2, 2018: Exercises 4.2, 5.3, 6.1, 8.6, and 8.7 from [[Modern_Robotics#Useful_Supplemental_Documents|the practice exercises document]]. |
|||
* [[Media:ME449-quiz1-2018.pdf|Quiz 1, 2018]] |
|||
==Assignments== |
|||
'''As mentioned above, in the Honor Code:''' You are encouraged to discuss the material with the instructor, course assistants, and your classmates, but you are not allowed to share your answers or code with others. Anyone asking for answers or code, or providing answers or code, or becoming aware of others doing so without reporting to the instructor, is considered in violation of the honor code. |
|||
'''Trajectory Generation''', through Mon May 12 |
|||
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 more detailed submission instructions are given with a particular assignment, make sure to follow those, too. |
|||
reading: Chapter 9, but you may skip 9.2 and 9.3 |
|||
* definitions and time-optimal time scaling (classes 18-19; Wentao Chen and Chi Zhang) |
|||
** [http://www.youtube.com/watch?v=WzRJh-Xd0yo&feature=youtu.be#userconsent# Trajectory generation: definition] |
|||
** [http://www.youtube.com/watch?v=ZRJQhRoILnE&feature=youtu.be#userconsent# Time-optimal time-scaling] |
|||
** [https://www.youtube.com/watch?v=mPyIeWVBL88 (s, sdot) phase plane] |
|||
** [https://www.youtube.com/watch?v=llZUtyO7ULY Time-optimal time-scaling algorithm] |
|||
** [https://www.youtube.com/watch?v=Nqu_PMyZjcQ Assumptions and caveats] |
|||
'''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.''' |
|||
'''Motion Planning''', through Wed May 21 |
|||
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. |
|||
reading: Chapter 10 through 10.5.1 |
|||
* overview, foundations, and complete path planners (classes 20-21; Siddarth Jain) |
|||
** [http://youtu.be/DqExgvhLuvw Motion planning overview] |
|||
** [http://youtu.be/yWpUjoLOEr4 Types of motion planning] |
|||
** [http://youtu.be/KdQicahSJYI Configuration-space obstacles] |
|||
** [http://youtu.be/LKp8gR1C5qI Graphs and trees] |
|||
** [http://youtu.be/qsZB41VO4UU The search problem, heuristics and A* overview] |
|||
** [http://youtu.be/gQDGJl1p6Eo A* search] |
|||
'''Instructions for uploading assignments to Canvas:''' |
|||
* grid methods and the RRT sampling method (classes 22-23) |
|||
* '''Upload on time! Late submissions are not accepted.''' |
|||
'''Robot Control''' |
|||
* For every assignment, you should submit a single zip file, named FamilyName_GivenName_asst#.zip. This zip file should include a single pdf file with answers to all the questions, including screen shots, text logs of code running, etc. Always include output of your code running on the exercises, so the grader can see what you got when you ran your code. You may scan handwritten solutions (provided they are neat!), but in any case, all answers should be in a single pdf file. DO NOT UPLOAD SCANS AS JPGS! THEY MUST ALL BE COMPILED INTO A SINGLE PDF FILE. |
|||
* You may be asked to include in your zip file all source code in their original forms, such as .m, .py, or .nb. Always create a script that the grader can easily invoke to run your code for a particular 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.txt" file in your zip file, for example, to tell the grader how everything works). Your code should be commented well enough that it is easy for someone else to pick it up and understand more or less how it works. All student-written code must be submitted; do not submit any standard MR code. |
|||
* If you include movies, keep them short and clear. They should only be a few MB in size. For example, you don't need super high resolution, 60 fps, etc. |
|||
* All plots should be labeled (axes, legends, titles) with appropriate units. |
|||
'''[http://hades.mech.northwestern.edu/index.php/ME_449_Assignment_1 Assignment 1]''', due 1:30 PM CT Wednesday October 8. |
|||
optional: Chapter 11 |
|||
<!-- |
|||
'''[[Media:ME449-asst2-2024.pdf|Assignment 2]]''', due 1:30 PM CT <s>Wednesday November 6</s> Friday November 8 on Canvas. |
|||
'''[[Media:ME449-asst3-2024.pdf|Assignment 3]]''', due 1:30 PM CT Friday November 15 on Canvas. |
|||
'''Grasping and Manipulation''', through Wed June 4 |
|||
==Final Project: Mobile Manipulation== |
|||
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; Max Shepherd and Zack Woodruff) |
|||
The final project is described [http://hades.mech.northwestern.edu/index.php/Mobile_Manipulation_Capstone_2024 '''on this page''']. It is due in Canvas on Thursday December 11 at noon. |
|||
==Archive== |
|||
* '''Due Monday November 25 at 1:30 PM on Canvas''': Milestone 2. ''(You will do milestone 2 first! Milestone 1 will come next.)'' You will turn in a single zip file named FamilyName_GivenName_milestone2.zip with your solution to milestone 2. The zip file should include a README.pdf file with a brief summary of your solution and how to use it, and if your code is not working properly, it should correctly point out the problems. The zip file should also include a directory with the commented code you wrote, including a cut-and-pastable comment at the beginning showing how to execute the code to generate the csv file included in the submission; a CoppeliaSim video showing your reference trajectory of the end-effector (similar to [https://www.youtube.com/watch?v=8d_cYwV58lI&feature=youtu.be this video]); and the csv file that your code generated to create the video. |
|||
* [[ME 449 Robotic Manipulation (Archive 2012)|ME 449 Spring 2012]] |
|||
* ''' Due Thursday December 12 at 12:00 PM (noon) on Canvas''': The entire final writeup in a single zip file named FamilyName_GivenName_capstone.zip. '''You may earn up to 10% extra credit on the capstone project by implementing singularity and self-collision avoidance.''' See the description of the final project writeup. |
|||
--> |
Latest revision as of 08:50, 24 September 2025
Fall Quarter 2025
- Instructor: Prof. Kevin Lynch
- Course assistant: Yifei Chen, YifeiChen2026@u.northwestern.edu
- Zoom office hours (see Canvas for links): Monday 3-4 pm (Lynch); Thursday 10-11 am (Chen); Friday 10-11 am (Chen)
- Meeting: 2:00-2:50, MWF, Tech L361 (first meeting: Wed Sept 17)
- Course website: http://hades.mech.northwestern.edu/index.php/ME_449_Robotic_Manipulation
- Book website: http://modernrobotics.org
- Click here to enter any questions you have on the lectures or reading that you would like to discuss in class.
Supportive Class Environment
All members of this class (instructors, course assistants, students) are expected to contribute to a respectful, inclusive, and supportive environment for every other member of the class.
We are partners in your education; help us help you get the most out of this class. Please engage as much as possible during our class meetings!
Honor Code
You are encouraged to discuss the material with the instructor, course assistants, and your classmates, but you are not allowed to copy answers or code from others in the class or other sources, nor are you allowed to share your answers or code with others. If you use generative AI to help you with your work, you are obligated to cite the source and nature of the help; for example, if you turn in code generated in whole or in part by generative AI, you must cite the AI software in the comments, and you are required to understand how and why the code works. (Note also that electronics are not available during tests, so submitting code you do not understand will not help you prepare for tests.) Anyone copying answers or code, or providing answers or code, or becoming aware of others doing so without reporting to the instructor, is in violation of the honor code.
Northwestern University Syllabus Standards
This course follows the Northwestern University Syllabus Standards. Students are responsible for familiarizing themselves with this information.
Getting Started
Do the following things as soon as possible:
- Buy the book "Modern Robotics" or download the free electronic preprint version. (Though the Cambridge-published print version is the "official" version, the differences are mostly layout and either will work for this course.)
- Download the Modern Robotics software. You can program in Python, MATLAB, or Mathematica. Most students use Python or MATLAB, but any of these is fine.
- Download, install, and test the CoppeliaSim robot simulation software.
- Accept your invitation to the Coursera course.
Course Summary
Representations of the configuration and spatial motion of rigid bodies and robots based on modern screw theory. Forward, inverse, and differential kinematics. Robot dynamics, trajectory planning, and motion control. Wheeled mobile robots and mobile manipulation.
Prerequisites
Linear algebra, first-order linear ODEs, freshman-level physics/mechanics, a bit of programming background.
Grading
30% of your final grade will be from your Coursera grades (which I expect to be nearly perfect), 30% from assignments outside of Coursera, 20% from quiz 1, and 20% from quiz 2.
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. If you find an error or typo in the book, please report it here.
Get the book, install and test the Modern Robotics code library, and install and test the CoppeliaSim robot simulator. You will program in Python, Mathematica, or MATLAB in this course.
Here is a linear algebra refresher appendix to accompany the book.
Approximate Syllabus and Schedule
Here is a summary of the structure of the course. All items are due 30 minutes before the associated class time (1:30 PM Central). The deadlines are controlled by Coursera, so do not be late! You may work ahead if you wish, but then you won't get as much out of the classes.
- Coursera refers to "weeks," but ignore this; our course modules are not a week long.
- Before some classes, you should complete a quiz on earlier material.
- Before most classes, you will watch the associated videos on Coursera and answer the "lecture comprehension" (LC) questions. (Designed to be relatively quick, to solidify your understanding.)
- You are encouraged to read the corresponding portions of the textbook after watching the videos. I suggest you watch first, then read, then possibly re-watch, but you can determine what works best for your learning style.
- During the class period after you watch those videos, I will typically summarize what we learned, work a problem, take any questions you have about the material, and possibly assign you a problem to work on.
- There are two kinds of assessments on Coursera (Coursera refers to both of them as "quizzes"): "lecture comprehension" questions (LCs), which are short and immediately follow lectures, and summative quizzes, which are usually longer assessments/assignments occurring at the middle or end of a chapter.
- Within Coursera there are also "discussion prompts," open-ended group questions that you should reply to (responses can be simple) and forums where you can post questions and reply to other students' questions.
- Assignments outside Coursera will be submitted through Canvas.
Below is the approximate syllabus and schedule. Next to each date is the Coursera material that should have been covered at least 30 minutes before that class. "LC" refers to brief lecture comprehension questions that should be completed before that class, and "quiz" is a longer summative quiz on earlier material.
Chapter 2, Configuration Space
- Wed Sept 17: welcome to the course and syllabus review; intro to Coursera. The schedule for completing Coursera items is set by this wiki!
- Fri Sept 19: check for working CoppeliaSim implementation and summarize installation process for each OS; make sure Coursera invitation is accepted; material through Chapter 2.2 (3 videos and 2 LCs on dof of a robot) CLASS SLIDES
- Mon Sept 22: meet the class; and material through Chapter 2.3 (quiz, Chapter 2 through 2.2; 2 videos and 2 LCs on C-space topology and representation) CLASS SLIDES
- Wed Sept 24: ASST 1 HAS BEEN POSTED. Finish Chapter 2 (2 videos and 2 LCs on configuration and velocity constraints, task space and workspace) CLASS SLIDES
Chapter 3, Rigid-Body Motions
- Fri Sept 26: through Chapter 3.2.1 (quiz, Chapter 2.3 through 2.5; 3 videos and 3 LCs on rotation matrices SO(3)) CLASS SLIDES
- Mon Sept 29: finish Chapter 3.2 (3 videos and 3 LCs on angular velocities, so(3), exponential coordinates) CLASS SLIDES
- Wed Oct 1: New material: through Chapter 3.3.2 (quiz, Chapter 3 through 3.2; 3 videos and 3 LCs on transform matrices SE(3) and twists) CLASS SLIDES
- Fri Oct 3: finish Chapter 3 (2 videos and 2 LCs on se(3), exponential coordinates, and wrenches) CLASS SLIDES
Chapter 4, Forward Kinematics (skip section 4.2 on URDF)
- Mon Oct 6: finish Chapter 4 (quiz, Chapters 3.3 and 3.4; 3 videos and 3 LCs on product of exponentials formula, space and e-e frame) CLASS SLIDES
Chapter 5, Velocity Kinematics and Statics
- Wed Oct 8: ASST 1 DUE 1:30 PM. New material: through Chapter 5.1 (quiz, Chapter 4; 3 videos and 3 LCs on space Jacobian, body Jacobian) CLASS SLIDES
- Fri Oct 10: New material: through Chapter 5.2 1 video and 1 LC on statics of open chains) CLASS SLIDES
- Mon Oct 13: through Chapter 5.4 (2 videos and 2 LCs on singularity analysis, manipulability) CLASS SLIDES
Chapter 6, Inverse Kinematics (focus on section 6.2)
- Wed Oct 15: Chapter 6 (quiz, Chapter 5; 3 videos and 3 LCs on numerical inverse kinematics) CLASS SLIDES
Chapter 8, Dynamics of Open Chains (skip sections 8.4, 8.7, 8.8, and 8.9)
- Fri Oct 17: through Chapter 8.1.2 (quiz, Chapter 6; 2 videos and 2 LCs on Lagrangian dynamics) CLASS SLIDES
- Mon Oct 20: New material: Chapter 8.1.3 (1 video and 1 LC on understanding the mass matrix) CLASS SLIDES
- Wed Oct 22: QUIZ 1, chapters 2-5 (no electronic devices allowed [calculator, laptop, tablet, etc.]; study sheets and book allowed) 2022 midterm and solutions (average score 22.9/32); 2023 midterm and solutions; 2024 midterm and solutions
- Fri Oct 24: Chapter 8.2 (2 videos and 2 LCs on dynamics of a single rigid body) CLASS SLIDES
- Mon Oct 27: Chapter 8.3 and 8.5 (2 videos and 2 LCs on Newton-Euler inverse dynamics, forward dynamics; quiz, Chapter 8 through 8.3) CLASS SLIDES
Chapter 9, Trajectory Generation
- Wed Oct 29: New material: through Chapter 9.3 (3 videos and 3 LCs on point-to-point trajectories, polynomial via point trajectories) CLASS SLIDES
- Fri Oct 31: Chapter 9.4 (quiz, Chapter 9 through 9.3; 3 videos and 3 LCs on time-optimal time scaling) CLASS SLIDES
- Mon Nov 3: Chapter 9.4 recap.
- Wed Nov 5: Final project discussion
Chapter 11, Robot Control (focus on sections 11.1 through 11.4)
- Fri Nov 7: New material: up to (not including) Chapter 11.2.2.1 (quiz, Chapter 9.4; 3 videos and 3 LCs on linear error dynamics) CLASS SLIDES
- Mon Nov 10: finish Chapter 11.2.2 (2 videos and 2 LCs on first- and second-order error dynamics) CLASS SLIDES
- Wed Nov 12: through Chapter 11.3 (3 videos and 3 LCs on motion control with velocity inputs) CLASS SLIDES
- Fri Nov 14: Chapter 11.4 (quiz, Chapter 11 through 11.3; 3 videos and 3 LCs on motion control with torque or force inputs) CLASS SLIDES
Chapter 13, Wheeled Mobile Robots (skip section 13.3)
- Mon Nov 17: New material through Chapter 13.2 (quiz, Chapter 11.4; 3 videos and 3 LCs on omnidirectional wheeled mobile robots) CLASS SLIDES
- Wed Nov 19: Chapter 13.4 (quiz, Chapter 13 through 13.2; 1 video and 1 LC on odometry) CLASS SLIDES
- Fri Nov 21: Chapter 13.5 (1 video and 1 LC on mobile manipulation) CLASS SLIDES
- Mon Nov 24: Wrapping up
- NO CLASS WED NOV 26 AND FRI NOV 28 (HAPPY THANKSGIVING!)
- Mon Dec 1: Final review.
- Wed Dec 3: In-class work on final project; Q&A on final.
- Fri Dec 5: QUIZ 2
Practice Exercises
Sample exercises and their solutions, useful for practicing your understanding of the material.
Practice Tests
- 2024 midterm and 2024 midterm solutions
- 2023 midterm and 2023 midterm solutions
- 2022 midterm and 2022 midterm solutions
- Quiz 1, 2019
- Quiz 2, 2018: Exercises 4.2, 5.3, 6.1, 8.6, and 8.7 from the practice exercises document.
- Quiz 1, 2018
Assignments
As mentioned above, in the Honor Code: You are encouraged to discuss the material with the instructor, course assistants, and your classmates, but you are not allowed to share your answers or code with others. Anyone asking for answers or code, or providing answers or code, or becoming aware of others doing so without reporting to the instructor, is considered in violation of the honor code.
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 more detailed submission instructions are given with a particular assignment, make sure to follow those, too.
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:
- Upload on time! Late submissions are not accepted.
- For every assignment, you should submit a single zip file, named FamilyName_GivenName_asst#.zip. This zip file should include a single pdf file with answers to all the questions, including screen shots, text logs of code running, etc. Always include output of your code running on the exercises, so the grader can see what you got when you ran your code. You may scan handwritten solutions (provided they are neat!), but in any case, all answers should be in a single pdf file. DO NOT UPLOAD SCANS AS JPGS! THEY MUST ALL BE COMPILED INTO A SINGLE PDF FILE.
- You may be asked to include in your zip file all source code in their original forms, such as .m, .py, or .nb. Always create a script that the grader can easily invoke to run your code for a particular 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.txt" file in your zip file, for example, to tell the grader how everything works). Your code should be commented well enough that it is easy for someone else to pick it up and understand more or less how it works. All student-written code must be submitted; do not submit any standard MR code.
- If you include movies, keep them short and clear. They should only be a few MB in size. For example, you don't need super high resolution, 60 fps, etc.
- All plots should be labeled (axes, legends, titles) with appropriate units.
Assignment 1, due 1:30 PM CT Wednesday October 8.