Difference between revisions of "Engineering Analysis 3"

From Mech
Jump to navigationJump to search
(Created page with "'''Fall Quarter 2022''' 1000px * Instructor: Prof. Kevin Lynch * Course assistants: Lin Liu, Daniel Lynch (no relation to the instruct...")
 
 
(245 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''Fall Quarter 2022'''
'''EA3 System Dynamics, Spring Quarter 2024'''


This wiki page: [https://tinyurl.com/ea3nu tinyurl.com/ea3nu], or just google "NU EA3" or "Northwestern EA3" and it will come up near the top.
[[image:ME449-instructors-2022.jpg|1000px]]


==Instructors, TAs, and Sections==
* Instructor: Prof. Kevin Lynch
* Course assistants: Lin Liu, Daniel Lynch (no relation to the instructor!), Andrew Thompson (lin.liu (at) u.northwestern.edu, daniellynch2021 (at) u.northwestern.edu, andrewthompson2019 (at) u.northwestern.edu)
* Office hours: 3-4 PM Monday Tech A211, Lynch; 4:30-5:30 PM Thursdays via Zoom (see Canvas for the link), TAs. '''SPECIAL TA OFFICE HOURS:''' Tuesday Dec 6, 10:30-12, Tech B211
<!--4-5 PM Tuesday (TAs) and 2-3 PM Thursday (Lynch) by Zoom invitation in Canvas. '''Finals week only:''' TA office hours will be 4-5 PM Tuesday, as usual, and Lynch's office hours will be 1:30-2:30 Wednesday Dec 8 (office hours Thursday canceled)
-->
* Meeting: 2:00-2:50, MWF, '''Tech LR5''' (first meeting: Sept 21)
* 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.]'''


Each section covers the same material, at approximately the same pace, following the same readings from the web textbook (below), though each instructor's lecture notes and teaching style may be different. All sections have the same homeworks, due the same time and day. The quizzes in each section will be different. You may go to a discussion section you are not registered for if there is room in the room.
<!--
[[image:ME449-staff-2021.jpg|700px]]
-->


* Section 20: Lecture 10-10:50 MWF Annenberg G15; TA-led discussion Tuesday, Frances Searle 1441
'''Supportive Class Environment'''
** Instructor: Prof. Kevin Lynch, kmlynch@northwestern.edu
** TAs: Ayesha Ahmed, ayesha.ahmed1@northwestern.edu, and Chyim Bowen, ChyimBowen2026@u.northwestern.edu (also Megan Black, MeganBlack2027@u.northwestern.edu)
* Section 21: Lecture 11-11:50 MWF Pancoe Auditorium; TA-led discussion Tuesday, Pancoe Auditorium
** Instructor: Prof. Jeremy Keys, jeremy.keys@northwestern.edu
** TAs: Xiaoyu Xie, XiaoyuXie2020@u.northwestern.edu, and Gaurav Tyagi, gaurav.tyagi@northwestern.edu
* Section 22: Lecture 1-1:50 MWF, Pancoe Auditorium; TA-led discussion Tuesday, Tech M345
** Instructor: Prof. Jeremy Keys, jeremy.keys@northwestern.edu
** TAs: Ruoming Gong, RuomingGong2027@u.northwestern.edu, and Plenyo Gonzaga Araujo, PlenyoGonzagaAraujo2025@u.northwestern.edu
* Section 23: Lecture 2-2:50 MWF, Tech M345; TA-led discussion Tuesday, Pancoe Auditorium
** Instructor: Prof. Manohar Kulkarni, manohar.kulkarni@northwestern.edu
** TAs: Nandeesh Bhatia, NandeeshBhatia2024@u.northwestern.edu, and Tapiwanashe Bhibho, TapiwanasheBhibho2027@u.northwestern.edu


All members of this class (instructors, TAs, students) are expected to contribute to a respectful, inclusive, and supportive environment for every other member of the class.


'''Instructors'''
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!


[[image:EA3-instructors-s2024.jpg|500px]]
'''Honor Code'''


'''TAs'''
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 in violation of the honor code.'''


[[image:EA3-TAs-s2024.jpg|700px]]
<!--


==Office Hours==
'''Other Syllabus Statements'''


{| class=wikitable
[https://www.registrar.northwestern.edu/faculty-staff/syllabi.html Here you can find other syllabus statements] regarding academic integrity (do not submit work that is not your own), accessibility, COVID-19 classroom expectations (wear a mask), COVID-19 testing for unvaccinated students, class modality, class recordings, prohibition of recordings of class sessions by students, and wellness and mental health. By university policy, any student not vaccinated against COVID-19 must be tested for COVID-19 twice per week.
|+ Office hour schedule, beginning April 1. All office hours in Tech AG21 unless otherwise noted.

!
Other information:
! 9-10 am
* [https://www.northwestern.edu/coronavirus-covid-19-updates/index.html NU's COVID-19 update page]
! 10-11 am
* [https://www.northwestern.edu/coronavirus-covid-19-updates/university-status/summary.html COVID-19 Fall protocol page]
! 11-12 pm
* [https://www.northwestern.edu/coronavirus-covid-19-updates/resources/frequently-asked-questions/academics.html Instructor FAQs]
! 12-1 pm
-->
! 1-2 pm

! 2-3 pm
'''Getting Started'''
! 3-4 pm

! 4-5 pm
Do the following things as soon as possible:
! 5-6 pm

|-
* [[Modern Robotics#Book|Buy the book "Modern Robotics" or download the electronic preprint version]]. (Though the Cambridge-published version is the "official" version, the differences are mostly layout and either will work for this course.)
! Mon
* [[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.
| x || x || x || x || x || x || Ahmed || Ahmed || Xie
* [[Getting Started with the CoppeliaSim Simulator|Download, install, and test the CoppeliaSim robot simulation software.]]
|-
* Accept your invitation to the Coursera course.
! Tues
| Gong || Gong || || || || Keys || Bhibho || Bhibho || Bhibho
|-
! Wed
| Araujo || Araujo || Lynch || Araujo || Tyagi || Tyagi || Kulkarni, Tech B290 || Tyagi ||
|-
! Thurs
| Keys || Bowen || Bowen || Bowen || || Ahmed || x || x || x
|-
! Fri
| x || x || Bhatia || Bhatia || || || Xie || Xie ||
|}


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


EA3 focuses on the modeling of dynamic systems, the reduction of models to differential equations of motion, and exploration of the system behavior relating to the solution of those equations.
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.


The goal is to learn system modeling across disparate physical domains (mechanical and electrical systems). We will typically proceed using the following steps:
==Prerequisites==


* understand the elements of each domain (e.g., spring, capacitor; or force, voltage)
Linear algebra, first-order linear ODEs, freshman-level physics/mechanics, a bit of programming background.
* express precisely the way in which the elements interact (e.g., free-body diagrams, circuit diagrams)
* reduce the idealized systems to equations
* understand the behavior of the system by solving equations numerically or analytically


There will be a strong emphasis on understanding how physical processes are described by mathematical equations.
==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 11, during finals week)
* 10% practice exercise for other students
* 5% engagement: introducing yourself during office hours, answering questions in class, participation in in-class exercises, helping other students in class, participation in Coursera forums
-->


'''Prerequisite:''' a C- or better in EA2.
50% of your final grade will be from your Coursera grades (which I expect will be close to perfect) and 50% from the midterm and assignments outside of Coursera, including 15% midterm, 5% for asst 1, 5% for asst 2, 10% for asst 3, and 15% for asst 4 (the capstone project).
<!--
<!--
Contribution to
There will be four assignments outside of Coursera, with the following weights:
* mathematics and basic sciences: 80%
* Assignment 1: 5% of your total grade
* engineering topics: 20%
* Assignment 2: 10% of your total grade
* general education: 0%
* Assignment 3: 10% of your total grade
* Capstone: 25% of your total grade (5% milestone 2, 20% final submission)
-->
-->


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


'''Supportive Class Environment'''
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].'''


All members of this class (instructors, TAs, students) are expected to contribute to a respectful, inclusive, and supportive environment for every other member of the class.
[[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.


We are all ''partners'' in your education; help us help you get the most out of this class. Please engage during class meetings.
'''[[Modern Robotics Linear Algebra Review|Here is a linear algebra refresher appendix to accompany the book.]]'''


'''Honor Code'''
==Approximate Syllabus and Schedule==


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.''
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.
* 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.


'''Academic Support and Learning Advancement (ASLA)'''
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.


Northwestern's [https://www.northwestern.edu/academic-support-learning/ Academic Support and Learning Advancement office] offers [https://www.northwestern.edu/academic-support-learning/course-support/peer-guided-study-groups/ peer-guided study groups], [https://www.northwestern.edu/academic-support-learning/course-support/drop-in-peer-tutoring.html drop-in peer tutoring], [https://www.northwestern.edu/academic-support-learning/academic-coaching-and-mentoring/index.html individual and group peer academic coaching], and [https://www.northwestern.edu/academic-support-learning/academic-coaching-and-mentoring/make-an-appointment.html consultations] to help students navigate their academic paths and refine their study strategies.
'''Chapter 2, Configuration Space'''
* Wed Sept 21: welcome to the course and syllabus review; intro to Coursera. '''The schedule for completing Coursera items is set by this wiki!'''
* Fri Sept 23: office hours; 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]]'''
* Mon Sept 26: course staff and office hours; 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]]'''
* Wed Sept 28: finish Chapter 2 (2 videos and 2 LCs on configuration and velocity constraints, task space and workspace) '''[[Media:MRslides-ch02c.pdf|CLASS SLIDES]]'''
'''Chapter 3, Rigid-Body Motions'''
* Fri Sept 30: 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]]'''
* Mon Oct 3: finish Chapter 3.2 (3 videos and 3 LCs on angular velocities, so(3), exponential coordinates) '''[[Media:MRslides-ch03b.pdf|CLASS SLIDES]]'''
* Wed Oct 5: asst 1 will be due Oct 14. 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]]'''
* Fri Oct 7: finish Chapter 3 (2 videos and 2 LCs on se(3), exponential coordinates, and wrenches) '''[[Media:MRslides-ch03d.pdf|CLASS SLIDES]]'''
'''Chapter 4, Forward Kinematics (skip section 4.2 on URDF)'''
* Mon Oct 10: 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 12: 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 14: '''ASST 1, DUE 1:30 PM'''. New material: through Chapter 5.2 1 video and 1 LC on statics of open chains) '''[[Media:MRslides-ch05b.pdf|CLASS SLIDES]]'''
* Mon Oct 17: 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 19: 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 21: through Chapter 8.1.2 (quiz, Chapter 6; 2 videos and 2 LCs on Lagrangian dynamics) '''[[Media:MRslides-ch08a.pdf|CLASS SLIDES]]''' Guest lecturer: Andrew Thompson.
* Mon Oct 24: New material: Chapter 8.1.3 (1 video and 1 LC on understanding the mass matrix) '''[[Media:MRslides-ch08b.pdf|CLASS SLIDES]]''' Guest lecturer: Lin Liu.
* Wed Oct 26: '''MIDTERM''', chapters 2-5 (no electronic devices allowed [calculator, laptop, tablet, etc.]; study sheets and book allowed) '''[[Media:ME449-midterm-solutions-2022.pdf|2022 midterm and solutions]]''' (average score 22.9/32)
* Fri Oct 28: Chapter 8.2 (2 videos and 2 LCs on dynamics of a single rigid body) '''[[Media:MRslides-ch08c.pdf|CLASS SLIDES]]''' Guest lecturer: Dan Lynch.
* Mon Oct 31: '''ASST 2, DUE 1:30 PM'''. Chapter 8.3 and 8.5 (2 videos and 2 LCs on Newton-Euler inverse dynamics, forward dynamics) '''[[Media:MRslides-ch08d.pdf|CLASS SLIDES]]'''
'''Chapter 9, Trajectory Generation'''
* Wed Nov 2: through Chapter 9.3 (quiz, Chapter 8 through 8.3; 3 videos and 3 LCs on point-to-point trajectories, polynomial via point trajectories) '''[[Media:MRslides-ch09a.pdf|CLASS SLIDES]]'''
* Fri Nov 4: 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 7: Chapter 9.4 recap.
* Wed Nov 9: '''ASST 3, DUE 1:30 PM'''; final project discussion
'''Chapter 11, Robot Control (focus on sections 11.1 through 11.4)'''
* Fri Nov 11: 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 14: 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 16: through Chapter 11.3 (3 videos and 3 LCs on motion control with velocity inputs) '''[[Media:MRslides-ch11c.pdf|CLASS SLIDES]]'''
* Fri Nov 18: 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 21: '''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 23: CLASS CANCELED
* Mon Nov 28: Chapter 13.4 (quiz, Chapter 13 through 13.2; 1 video and 1 LC on odometry) '''[[Media:MRslides-ch13b.pdf|CLASS SLIDES]]'''
* Wed Nov 30: Chapter 13.5 (1 video and 1 LC on mobile manipulation) '''[[Media:MRslides-ch13c.pdf|CLASS SLIDES]]'''
* Fri Dec 2: wrap-up
* Thurs Dec 8, noon: final project due


'''Accessible NU'''
==Practice Exercises==
[[Modern_Robotics#Useful_Supplemental_Documents|Sample exercises and their solutions, useful for practicing your understanding of the material.]]


If you need accommodation in this course because of a disability, contact [http://www.northwestern.edu/accessiblenu/ Accessible NU] immediately.
== Practice Tests ==


'''Religious Holidays'''
* [[Media:ME449-quiz1-2018.pdf|Quiz 1, 2018]]
* 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-solutions-2019.pdf|Quiz 1, 2019]]


Provost's [https://www.northwestern.edu/provost/policies-procedures/classwork-curricular-policies/accommodations-for-religious-holidays.html statement] on accommodations for
<!--
[https://www.northwestern.edu/religious-life/explore-our-programs/religious-holidays.html religious holidays].
==Student-Created Exercises==
-->
<!-- [https://docs.google.com/spreadsheets/d/1cIX4_U8lkWAL6LqQBgDrE5WX1TAmJaD6-ykG7GNACkI/edit?usp=sharing '''Click here for student exercise assignments.''']


==Course Schedule and Quizzes==
'''Bring two printed copies to class Monday Nov 18, for feedback. Turn in the final version online on Wednesday Nov 20 at 1:30 PM, as two files: FamilyName_GivenName.pdf, with the pdf of the exercise and its solution, and FamilyName_GivenName.zip, with all the source files for your exercise taken from Overleaf. Also bring a printout to class on Wed Nov 20. If it is more than one page, staple it.'''
-->
<!--
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 CoppeliaSim 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. Think about what kind of exercise would have helped you to really understand the material. Your questions should be very clearly worded, so anyone can understand it without you having to be there to interpret it for them.


Lectures MWF by the instructors. Tuesday discussion sessions led by the TAs, primarily focused on solving problems. First day of class is '''Tuesday March 26''', but following a Monday schedule. We begin the normal rhythm Wednesday March 27. Office hours begin Monday April 1, and the first homework is due Thursday April 4.
You should look at the practice exercise document and end-of-chapter exercises for inspiration, but obviously your exercises should not be copies.


Lectures will be recorded and available on Canvas via Panopto if you miss a class.
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,


There will be three in-class 50-minute quizzes, on
# 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.
* Monday April 22
# Create an account on [https://www.overleaf.com/ Overleaf].
* Monday May 13
# Create a new (blank) project on Overleaf called "exercise."
* Friday May 31 (last day of class)
# 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.)
Students must attend the quiz in their own section, and the quizzes in each section will be different. There is no final exam. No electronic devices (phones, tablets, laptops, watches, etc.) are allowed during quizzes. No notes or scratch paper.
# 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.]]'''


Quizzes focus mostly on recent material (e.g., material not covered on previous quizzes), but they may require anything from the course up until the most recent homework.
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.


Partial credit may be awarded, so make sure your thought process is clear in your answer. If you just write an answer, and it is wrong, you will get no credit. If you just write an answer, and it is correct but it is not obvious to us where the answer came from, you may not get credit. We strive for consistency in awarding partial credit, so requests for more partial credit will not be considered. The only way to ensure full credit is to get the answer correct and to be clear about how you arrived at it.
To learn more about typesetting in LaTeX, google is your friend! Try googling "latex math" or "latex math symbols," for example.


'''If you think there was an error grading your quiz, you may request a regrade by typing a clear explanation and turning it in, along with the quiz itself, to an instructor at the next class after the quiz was returned to you.''' If a regrade is requested, your score may go up or down on any question on the quiz. No marks, erasures, or alterations to the quiz, of any kind, are allowed. Regrades may only be requested if there was an error in grading; requests for more partial credit will not be accepted.
You will turn in the source for your exercise as a zip file, as well as the final pdf file.
-->
<!--
The final student assignments to topics is given below:


If you are registered with Accessible NU for a testing accommodation, make sure to let your instructor know, and report to the following room 30 minutes before your normal class time on days of quizzes. This will be a low-distraction environment.
[[File:StudentExercises2019.jpg|x400px]]
* Monday April 22: Tech L440
-->
* Monday May 13: Tech L440
* Friday May 31: Tech L440


Because of the large size of the course, '''make-up quizzes are not offered'''. If you need an accommodation for an emergency, you will be directed to the undergraduate engineering office to make the request. If you have a scheduled, unavoidable, legitimate conflict, it is your responsibility to report it to your instructor '''at the beginning of the quarter'''.
==Assignments==


==Homework==
'''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.


Homeworks are due each Thursday (except the first and last week) at 5 PM, and homework solutions will be released Thursday nights. Homeworks must be submitted electronically through Canvas. Late assignments will not be accepted. '''No exceptions, so please don't ask.''' Your lowest homework grade will be dropped from the calculation of your homework score to accommodate an emergency, celebration of a religious holiday, homeworks that are just a few minutes late, or other circumstances.
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.


Homework must be submitted in a single pdf file, titled LastnameFirstname.pdf (substitute in your own last name [family name] and first name [given name]). All work must be clear and legible or you will not receive full credit. Make sure to show your thought process in case multiple steps are involved; don't just give an answer. Some homeworks involve Matlab programming. You should comment your code so it is easy to understand. When including code in the pdf, make sure to print the code as pdf (don't take images of code, for example) so the code is copy-and-pastable.
'''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.'''


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


The three quizzes count for 75% of your class grade. Homeworks account for the remaining 25%. Test scores and final grades are assigned in each section independently of the other sections. So if your homework and test score average in section A is 75% and your friend's in section B is 85%, your friend's final grade will not necessarily be higher than yours.
'''Instructions for uploading assignments to Canvas:'''


==Syllabus and Web Textbook==
* '''Upload on time! Late submissions are not accepted.'''
* For every assignment, you should upload exactly one pdf file, named FamilyName_GivenName_asst#.pdf. This pdf file should have 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.
* If required by the assignment, in addition you may be asked to provide a zip file including all source code in their original forms, such as .m, .py, or .nb. This zip file should be named FamilyName_GivenName_asst#.zip. 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.


The "book" for this course is the web textbook, below.
'''[http://hades.mech.northwestern.edu/index.php/ME_449_Assignment_1 Assignment 1]''', due 1:30 PM CT Friday October 14 on Canvas.


'''Week 1'''
'''[[Media:ME449-asst2-2022.pdf|Assignment 2]]''', due 1:30 PM CT Monday October 31 on Canvas.


===General Introduction===
'''[[Media:ME449-asst3-2022.pdf|Assignment 3]]''', due 1:30 PM CT Wednesday November 9 on Canvas.
* [https://othello.mech.northwestern.edu/ea3/book/intro/Intro.htm '''The Big Picture''']: the EA3 three-step process, and what you will learn


===Mechanical Systems===
<!--
# [https://othello.mech.northwestern.edu/ea3/book/mech1/Dampers.htm '''Mechanical systems and dampers''']: assumptions, parameters vs. dynamic variables, dampers, across and through variables, constitutive law of the damper
'''[[Media:ME449-asst3-2022.pdf|Assignment 3]]''', due 1:30 PM CT Wednesday November 10 on Canvas.
# [https://othello.mech.northwestern.edu/ea3/book/mech2/Springs.html '''Springs''']: constitutive law, displacement and relaxed length, sign conventions, series and parallel
-->
## [https://othello.mech.northwestern.edu/ea3/book/mech2/Example1.htm Example]: which are springs?
## [https://othello.mech.northwestern.edu/ea3/book/examples/1a.htm Example]: total stiffness of a system


'''Week 2'''
<!--
'''[[Media:ME449-asst3-2020.pdf|Assignment 3]]''', due 1 PM CST Thursday November 5 on Canvas. (With the automatic one-day extension, it is now due at 1 PM CST Friday November 6 on Canvas. No assignment will be accepted after that time.)
-->
<!--
* '''Assignment 1, due 30 minutes before class on Canvas, Wed Oct 9.''' Exercises 2.1, 2.4, 2.5, 2.9(c) (mechanism (c) from Fig 2.18), 2.20, 2.31, 3.1, and 3.5.
* '''Assignment 2, due 30 minutes before class on Canvas, Wed Oct 16.''' Exercises 3.16, 3.26, 3.31, 4.2, 4.5, and 4.6.
* '''Assignment 3, due 30 minutes before class on Canvas, Wed Oct 23.''' Exercises 5.3(a,c,d,e) and 5.26.
* '''Assignment 4, due 30 minutes before class on Canvas, Wed Oct 30.''' [[Media:ME449-asst4-2019.pdf|The programming assignment described here]].
* '''Assignment 5, due 30 minutes before class on Canvas, Wed Nov 6.''' [[Media:ME449-asst5-2019.pdf|This assignment]] makes use of (approximate) [[Modern_Robotics#Supplemental_Information|dynamic parameters for the UR5 robot, given in MATLAB, Mathematica, and Python form]].


# <li value="3">[https://othello.mech.northwestern.edu/ea3/book/mech3/Connections.htm '''Formulating equations of motion for spring-damper systems''']: step 1a) force balance at connections; step 1b) geometric continuity; elements in parallel and series; step 1c) constitutive laws; step 2 forming differential equations of motion</li>
* '''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).
## Examples: step 1a) force balance at connections [https://othello.mech.northwestern.edu/ea3/book/mech3/Example1.htm example 1], [https://othello.mech.northwestern.edu/ea3/book/mech3/Example2.htm example 2]
* '''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.
## Examples: step 1b) geometric continuity [https://othello.mech.northwestern.edu/ea3/book/mech3/Example3.htm example 3], [https://othello.mech.northwestern.edu/ea3/book/mech3/Example4.htm example 4]
* '''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]].
## Examples: elements in parallel and series [https://othello.mech.northwestern.edu/ea3/book/mech3/Example5.htm example 5], [https://othello.mech.northwestern.edu/ea3/book/mech3/Example6.htm example 6]
* '''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.
## Examples: forming differential equations of motion [https://othello.mech.northwestern.edu/ea3/book/mech3/Example7.htm example 7], [https://othello.mech.northwestern.edu/ea3/book/mech3/Example8.htm example 8]
* [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.
# [https://othello.mech.northwestern.edu/ea3/book/diffeq1/Diffeq1.htm '''Step 3 solving equations of motion''']
-->
## Examples: [https://othello.mech.northwestern.edu/ea3/book/diffeq1/Example1.htm what makes it a diffeq?], [https://othello.mech.northwestern.edu/ea3/book/diffeq1/Example2.htm initial conditions], [https://othello.mech.northwestern.edu/ea3/book/diffeq1/Example3.htm forward Euler method], [https://othello.mech.northwestern.edu/ea3/book/diffeq1/Example4.htm analytical solutions]
## [https://othello.mech.northwestern.edu/ea3/book/diffeq4/Diffeq4.htm Better numerical algorithms for differential equations]


'''Week 3'''
==Final Project: Mobile Manipulation==
<!--
'''Office hours for capstone:''' We will have office hours at the normal times (Tues 9 AM, Wed 7:30 PM) on Dec 1 and 2 during finals week, and one bonus office hour at 9 AM CDT Friday Dec 4. The Dec 4 office hour will be in our class Zoom room.
-->


# <li value="5">[https://othello.mech.northwestern.edu/ea3/book/mech4/Masses.htm '''Masses''']: free body diagrams and force balance, sign convention, step 1 governing equations, step 2 state variables and state equations, obtaining state equations</li>
The final project is described [http://hades.mech.northwestern.edu/index.php/Mobile_Manipulation_Capstone_2022 '''on this page''']. It is due in Canvas on Thursday December 8 at noon.
## Example: [https://othello.mech.northwestern.edu/ea3/book/mech4/Example1.htm free body diagram and force balance]
## Example: [https://othello.mech.northwestern.edu/ea3/book/mech4/Example2.htm sign conventions]
## Obtaining state equations: [https://othello.mech.northwestern.edu/ea3/book/mech4/Example3.htm example 3], [https://othello.mech.northwestern.edu/ea3/book/mech4/Example4.htm example 4], [https://othello.mech.northwestern.edu/ea3/book/mech4/Example5.htm example 5], [https://othello.mech.northwestern.edu/ea3/book/mech4/Example6.htm example 6], [https://othello.mech.northwestern.edu/ea3/book/mech4/Example7.htm example 7], [https://othello.mech.northwestern.edu/ea3/book/mech4/Example8.htm example 8], [https://othello.mech.northwestern.edu/ea3/book/mech4/Example9.htm example 9], [https://othello.mech.northwestern.edu/ea3/book/mech4/Example10.htm example 10]
# [https://othello.mech.northwestern.edu/ea3/book/newton/Newton.htm '''Newtonian mechanics''']: Newton's laws: Newton's laws, velocity and acceleration, center of mass, friction
## Newton's laws [https://othello.mech.northwestern.edu/ea3/book/newton/Example1.htm example 1], [https://othello.mech.northwestern.edu/ea3/book/newton/Example2.htm example 2], [https://othello.mech.northwestern.edu/ea3/book/newton/Example3.htm example 3]
## Velocity and acceleration [https://othello.mech.northwestern.edu/ea3/book/newton/Example4.htm example 4], [https://othello.mech.northwestern.edu/ea3/book/newton/Example5.htm example 5], [https://othello.mech.northwestern.edu/ea3/book/newton/Example6.htm example 6]
## Friction [https://othello.mech.northwestern.edu/ea3/book/newton/Example8.htm example 8], [https://othello.mech.northwestern.edu/ea3/book/newton/Example9.htm example 9], [https://othello.mech.northwestern.edu/ea3/book/newton/Example10.htm example 10], [https://othello.mech.northwestern.edu/ea3/book/newton/Example11.htm example 11]


'''Week 4'''
* '''Due Monday November 21 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.
* ''' Due Thursday December 8 at 12:00 PM (noon) on Canvas''': The entire final writeup, as described [http://hades.mech.northwestern.edu/index.php/Mobile_Manipulation_Capstone_2022 '''at this page'''], in a single zip file named FamilyName_GivenName_capstone.zip. '''You may earn up to 10% extra credit on the capstone project by implementing self-collision avoidance.''' See the description of the final project writeup.


# <li value="7">[https://othello.mech.northwestern.edu/ea3/book/momentum/Momentum.htm '''System dynamics and momentum conservation''']: momentum and impulse, conservation of momentum, impacts</li>
<!--
## Momentum and impulse [https://othello.mech.northwestern.edu/ea3/book/momentum/Impulse.htm example]
Reminders:
## Conservation of momentum [https://othello.mech.northwestern.edu/ea3/book/momentum/Projectile.htm projectile example]
# Read and follow closely the instructions on what to submit! If you are missing requested files, or if you use a different directory structure, you will lose points. Make sure your top-level README file is clear on what you've done and what you've submitted.
## Impacts: [https://othello.mech.northwestern.edu/ea3/book/momentum/Collision.htm cars colliding example]
# If your code does not work well, please describe the remaining issues in your README file. Don't gloss over them or only provide examples where the code works well if the code does not work well for other example problems. Otherwise, if the graders find problems with your software, you will not receive credit for having identified them yourself.
# [https://othello.mech.northwestern.edu/ea3/book/energy/Energy.htm '''System dynamics and mechanical energy equation''']: principle of work and energy, mechanical energy equation, energy stored in springs and dissipated in dampers
# You can get up to 10 pts of extra credit for correctly implementing joint-limit avoidance (so the robot links and chassis do not self-intersect) and singularity avoidance (e.g., using joint limits that keep the arm in a portion of its workspace where it does not encounter any singularities). If you implement these, you should submit examples of your code solving the same problem two ways---not using joint-limit avoidance and using it---so the usefulness of the joint-limit avoidance is apparent. '''Also, your README file should clearly describe your approach to solving joint-limit and singularity avoidance.'''
## Mechanical energy equation [https://othello.mech.northwestern.edu/ea3/book/energy/Block.htm example 1], [https://othello.mech.northwestern.edu/ea3/book/energy/Energy.htm#springs example 2], [https://othello.mech.northwestern.edu/ea3/book/energy/Springs.htm example 3], [https://othello.mech.northwestern.edu/ea3/book/energy/Energy.htm#enmomapplications example 4]
# Make sure to keep your problem inputs separate from the code. The exact same code should solve all your problem instances; you shouldn't have different copies of your code for different problem inputs. You could have an input file for each of your examples (e.g., bestScript, overshootScript, newTaskScript) which defines the inputs (e.g., block configurations, controller gains, initial robot configuration) and invokes your code. Then a grader just needs to invoke those scripts to verify your results. (If you implemented joint-limit avoidance, this could just be one of your inputs, e.g., a variable called "avoidJointLimits" which is 0 if you don't care about avoiding joint limits and 1 if you do.)
## Energy stored in springs and dissipated in dampers: [https://othello.mech.northwestern.edu/ea3/book/energy/Energy.htm#Bungee bungee jumper example]
# Make sure your videos are good quality. They shouldn't be too fast (at least 5 seconds long) or low resolution. The motion should be smooth.
# If your code is written in Python, indicate which version of Python should be used.
# '''Only submit the code that you wrote.''' DO NOT submit MR library functions. The TAs will test your code using the MR library functions imported into MATLAB or Python as appropriate.
-->
<!--
==Quizzes==
* [[Media:ME449-quiz1-solutions-2019.pdf|Quiz 1 Solutions]] (average score 22.4/27)
* [[Media:ME449-quiz2-solutions-2019.pdf|Quiz 2 Solutions]] (average score 31.2/35)


'''Week 5'''
==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.


# <li value="9">[http://othello.mech.northwestern.edu/ea3/book/mech5/Mech5.htm '''Force and velocity sources''']
[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.''']
## [http://othello.mech.northwestern.edu/ea3/book/mech5/Sources.htm Practice with force and velocity sources]</li>
# [https://othello.mech.northwestern.edu/ea3/book/mech6/Mech6.htm '''Transformers''']: levers, work, and power
## Levers [https://othello.mech.northwestern.edu/ea3/book/mech6/Example1.htm example 1], [https://othello.mech.northwestern.edu/ea3/book/mech6/Example2.htm example 2], [https://othello.mech.northwestern.edu/ea3/book/mech6/Example3.htm example 3]


'''Week 6'''
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.


# <li value="11">[https://othello.mech.northwestern.edu/ea3/book/diffeq3/Diffeq3.htm '''Step 3 numerical solution of coupled differential equations''']: state variables vs. parameters, initial conditions, evolution of spring-mass systems, forward Euler (non-matrix form), forward Euler (matrix form), MATLAB code </li>
'''Class 1''' (W 9/20)
## [https://othello.mech.northwestern.edu/ea3/book/diffeq3/ParVariables.htm Example]: counting state variables
: 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.
## [https://othello.mech.northwestern.edu/ea3/book/diffeq3/StateEq.htm Example]: finding state equations
# [https://othello.mech.northwestern.edu/ea3/book/diffeq3/Diffeq3.htm#analytic '''Step 3 (cont.) analytic solution of coupled differential equations''']: analytic solutions, natural vibrations with damping, forced vibrations with no damping, free fall, complex numbers, superposition of solutions
## [https://othello.mech.northwestern.edu/ea3/book/diffeq3/Complex.htm Example]: complex numbers
## [https://othello.mech.northwestern.edu/ea3/book/diffeq3/Superpos.htm Example]: superposition
## [https://othello.mech.northwestern.edu/ea3/book/diffeq3/Vibrations1.htm Example:] damped natural vibration


'''Week 7'''
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.


===Electrical Systems===
'''Class 2''' (F 9/22)
: Quick quiz
: Sample student lecture


# [https://othello.mech.northwestern.edu/ea3/book/elec1_2007/Volt.htm '''Introduction''']: voltage and current, charge and current, voltage and potential, power source: batteries
At home:
# [https://othello.mech.northwestern.edu/ea3/book/elec2_2007/Resistors.htm '''Resistors''']: constitutive law (Ohm's law), meter polarities, power, Kirchoff's laws
: Videos: 2 videos on Chapter 2.3
## [https://othello.mech.northwestern.edu/ea3/book/elec2_2007/Example1.htm Examples]
: Reading: Chapter 2.3
# [https://othello.mech.northwestern.edu/ea3/book/elec4/Capacitors.htm '''Capacitors''']: charge, capacitance, and energy
## Examples: [http://othello.mech.northwestern.edu/ea3/book/elec3/Example3.htm resistors in series and parallel], [http://othello.mech.northwestern.edu/ea3/book/elec4/Example.htm capacitors in series and parallel]


'''Class 3''' (M 9/25)
'''Week 8'''
: Quick quiz
: Bring your laptop, demo V-REP UR5 scenes
: Help with HW


# <li value="4">[https://othello.mech.northwestern.edu/ea3/book/elec6/Circuit.htm'''Formulating equations for circuits''']: circuit diagram notation, Kirchoff's laws, step 1 equations, step 2 state variables and equations</li>
At home:
## Kirchoff's laws [https://othello.mech.northwestern.edu/ea3/book/elec6/Example1.htm example 1], [https://othello.mech.northwestern.edu/ea3/book/elec6/Example2.htm example 2]
: Videos: 2 videos, Chapter 2.4 and 2.5
## [https://othello.mech.northwestern.edu/ea3/book/elec6/Example3.htm Example]: state variables and equations
: Reading: Chapters 2.4 and 2.5
# [https://othello.mech.northwestern.edu/ea3/book/elec5/RC.htm '''Simple RC circuits''']: RC time constant, charging up a capacitor (applet broken)
: Turn in HW1
## [https://othello.mech.northwestern.edu/ea3/book/elec5/Example1.htm Example]: RC time constant
# [https://othello.mech.northwestern.edu/ea3/book/elec7/Equations.htm '''Complex RC circuits''']
## [https://othello.mech.northwestern.edu/ea3/book/elec7/Example1.htm Example 1], [https://othello.mech.northwestern.edu/ea3/book/elec7/Example2.htm example 2], [https://othello.mech.northwestern.edu/ea3/book/elec7/Example3.htm example 3]


'''Class 4''' (W 9/27)
'''Week 9'''
: Quick quiz
: Solutions to HW1; student examples of Grubler's formula


# <li value="7">[https://othello.mech.northwestern.edu/ea3/book/elec8/Inductors.htm '''Inductors'''] (applet broken)</li>
At home:
# [https://othello.mech.northwestern.edu/ea3/book/elec9/Lcircuits.htm '''Circuits with inductors''']
: Videos: first 3 videos of Chapter 3, through Chapter 3.2.1
## [https://othello.mech.northwestern.edu/ea3/book/elec9/Example1.htm Example]: simple circuit with an inductor
: Reading: through Chapter 3.2.1
## [https://othello.mech.northwestern.edu/ea3/book/elec9/Example2.htm Example]: LC circuit and natural frequency
: '''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)
'''Week 10'''
: Quick quiz
: Lecture


Review and final quiz
At home:
: Videos: videos 4-6 of Chapter 3, through Chapter 3.2.3
: Reading: through Chapter 3.2.3


===Reference===
'''Class 6''' (M 10/2)
* [https://othello.mech.northwestern.edu/ea3/book/summary/formulas.html '''Important concepts and formulas''']
: Quick quiz
* [https://othello.mech.northwestern.edu/ea3/book/summary/scientists.html '''Famous scientists''']
: 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:
: 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.'''

-->

<!--
[[Mobile Manipulation Capstone 2021|Mobile Manipulation Capstone Project]]
-->

<!--
==Archive==


<!--
* [[ME 449 Robotic Manipulation (Archive 2012)|ME 449 Spring 2012]]
* '''Mode analysis'''
* [[ME 449 Robotic Manipulation (Archive Spring 2014)|ME 449 Spring 2014]]
** Example 1
* [[ME 449 Robotic Manipulation (Archive Fall 2014)|ME 449 Fall 2014]]
** Example 2
* [[ME 449 Robotic Manipulation (Archive Fall 2015)|ME 449 Fall 2015]]
** Example 3
* [[ME 449 Robotic Manipulation (Archive Fall 2016)|ME 449 Fall 2016]]
* [[ME 449 Robotic Manipulation (Archive Fall 2017)|ME 449 Fall 2017]]
* [[ME 449 Robotic Manipulation (Archive Fall 2018)|ME 449 Fall 2018]]
* [[ME 449 Robotic Manipulation (Archive Fall 2019)|ME 449 Fall 2019]]
* [[ME 449 Robotic Manipulation (Archive Fall 2020)|ME 449 Fall 2020]]
* [[ME 449 Robotic Manipulation (Archive Fall 2021)|ME 449 Fall 2021]]
-->
-->

Latest revision as of 17:17, 16 April 2024

EA3 System Dynamics, Spring Quarter 2024

This wiki page: tinyurl.com/ea3nu, or just google "NU EA3" or "Northwestern EA3" and it will come up near the top.

Instructors, TAs, and Sections

Each section covers the same material, at approximately the same pace, following the same readings from the web textbook (below), though each instructor's lecture notes and teaching style may be different. All sections have the same homeworks, due the same time and day. The quizzes in each section will be different. You may go to a discussion section you are not registered for if there is room in the room.

  • Section 20: Lecture 10-10:50 MWF Annenberg G15; TA-led discussion Tuesday, Frances Searle 1441
    • Instructor: Prof. Kevin Lynch, kmlynch@northwestern.edu
    • TAs: Ayesha Ahmed, ayesha.ahmed1@northwestern.edu, and Chyim Bowen, ChyimBowen2026@u.northwestern.edu (also Megan Black, MeganBlack2027@u.northwestern.edu)
  • Section 21: Lecture 11-11:50 MWF Pancoe Auditorium; TA-led discussion Tuesday, Pancoe Auditorium
    • Instructor: Prof. Jeremy Keys, jeremy.keys@northwestern.edu
    • TAs: Xiaoyu Xie, XiaoyuXie2020@u.northwestern.edu, and Gaurav Tyagi, gaurav.tyagi@northwestern.edu
  • Section 22: Lecture 1-1:50 MWF, Pancoe Auditorium; TA-led discussion Tuesday, Tech M345
    • Instructor: Prof. Jeremy Keys, jeremy.keys@northwestern.edu
    • TAs: Ruoming Gong, RuomingGong2027@u.northwestern.edu, and Plenyo Gonzaga Araujo, PlenyoGonzagaAraujo2025@u.northwestern.edu
  • Section 23: Lecture 2-2:50 MWF, Tech M345; TA-led discussion Tuesday, Pancoe Auditorium
    • Instructor: Prof. Manohar Kulkarni, manohar.kulkarni@northwestern.edu
    • TAs: Nandeesh Bhatia, NandeeshBhatia2024@u.northwestern.edu, and Tapiwanashe Bhibho, TapiwanasheBhibho2027@u.northwestern.edu


Instructors

EA3-instructors-s2024.jpg

TAs

EA3-TAs-s2024.jpg

Office Hours

Office hour schedule, beginning April 1. All office hours in Tech AG21 unless otherwise noted.
9-10 am 10-11 am 11-12 pm 12-1 pm 1-2 pm 2-3 pm 3-4 pm 4-5 pm 5-6 pm
Mon x x x x x x Ahmed Ahmed Xie
Tues Gong Gong Keys Bhibho Bhibho Bhibho
Wed Araujo Araujo Lynch Araujo Tyagi Tyagi Kulkarni, Tech B290 Tyagi
Thurs Keys Bowen Bowen Bowen Ahmed x x x
Fri x x Bhatia Bhatia Xie Xie

Course Summary

EA3 focuses on the modeling of dynamic systems, the reduction of models to differential equations of motion, and exploration of the system behavior relating to the solution of those equations.

The goal is to learn system modeling across disparate physical domains (mechanical and electrical systems). We will typically proceed using the following steps:

  • understand the elements of each domain (e.g., spring, capacitor; or force, voltage)
  • express precisely the way in which the elements interact (e.g., free-body diagrams, circuit diagrams)
  • reduce the idealized systems to equations
  • understand the behavior of the system by solving equations numerically or analytically

There will be a strong emphasis on understanding how physical processes are described by mathematical equations.

Prerequisite: a C- or better in EA2.

Course Policies

Supportive Class Environment

All members of this class (instructors, TAs, students) are expected to contribute to a respectful, inclusive, and supportive environment for every other member of the class.

We are all partners in your education; help us help you get the most out of this class. Please engage during 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.

Academic Support and Learning Advancement (ASLA)

Northwestern's Academic Support and Learning Advancement office offers peer-guided study groups, drop-in peer tutoring, individual and group peer academic coaching, and consultations to help students navigate their academic paths and refine their study strategies.

Accessible NU

If you need accommodation in this course because of a disability, contact Accessible NU immediately.

Religious Holidays

Provost's statement on accommodations for religious holidays.

Course Schedule and Quizzes

Lectures MWF by the instructors. Tuesday discussion sessions led by the TAs, primarily focused on solving problems. First day of class is Tuesday March 26, but following a Monday schedule. We begin the normal rhythm Wednesday March 27. Office hours begin Monday April 1, and the first homework is due Thursday April 4.

Lectures will be recorded and available on Canvas via Panopto if you miss a class.

There will be three in-class 50-minute quizzes, on

  • Monday April 22
  • Monday May 13
  • Friday May 31 (last day of class)

Students must attend the quiz in their own section, and the quizzes in each section will be different. There is no final exam. No electronic devices (phones, tablets, laptops, watches, etc.) are allowed during quizzes. No notes or scratch paper.

Quizzes focus mostly on recent material (e.g., material not covered on previous quizzes), but they may require anything from the course up until the most recent homework.

Partial credit may be awarded, so make sure your thought process is clear in your answer. If you just write an answer, and it is wrong, you will get no credit. If you just write an answer, and it is correct but it is not obvious to us where the answer came from, you may not get credit. We strive for consistency in awarding partial credit, so requests for more partial credit will not be considered. The only way to ensure full credit is to get the answer correct and to be clear about how you arrived at it.

If you think there was an error grading your quiz, you may request a regrade by typing a clear explanation and turning it in, along with the quiz itself, to an instructor at the next class after the quiz was returned to you. If a regrade is requested, your score may go up or down on any question on the quiz. No marks, erasures, or alterations to the quiz, of any kind, are allowed. Regrades may only be requested if there was an error in grading; requests for more partial credit will not be accepted.

If you are registered with Accessible NU for a testing accommodation, make sure to let your instructor know, and report to the following room 30 minutes before your normal class time on days of quizzes. This will be a low-distraction environment.

  • Monday April 22: Tech L440
  • Monday May 13: Tech L440
  • Friday May 31: Tech L440

Because of the large size of the course, make-up quizzes are not offered. If you need an accommodation for an emergency, you will be directed to the undergraduate engineering office to make the request. If you have a scheduled, unavoidable, legitimate conflict, it is your responsibility to report it to your instructor at the beginning of the quarter.

Homework

Homeworks are due each Thursday (except the first and last week) at 5 PM, and homework solutions will be released Thursday nights. Homeworks must be submitted electronically through Canvas. Late assignments will not be accepted. No exceptions, so please don't ask. Your lowest homework grade will be dropped from the calculation of your homework score to accommodate an emergency, celebration of a religious holiday, homeworks that are just a few minutes late, or other circumstances.

Homework must be submitted in a single pdf file, titled LastnameFirstname.pdf (substitute in your own last name [family name] and first name [given name]). All work must be clear and legible or you will not receive full credit. Make sure to show your thought process in case multiple steps are involved; don't just give an answer. Some homeworks involve Matlab programming. You should comment your code so it is easy to understand. When including code in the pdf, make sure to print the code as pdf (don't take images of code, for example) so the code is copy-and-pastable.

Grading

The three quizzes count for 75% of your class grade. Homeworks account for the remaining 25%. Test scores and final grades are assigned in each section independently of the other sections. So if your homework and test score average in section A is 75% and your friend's in section B is 85%, your friend's final grade will not necessarily be higher than yours.

Syllabus and Web Textbook

The "book" for this course is the web textbook, below.

Week 1

General Introduction

Mechanical Systems

  1. Mechanical systems and dampers: assumptions, parameters vs. dynamic variables, dampers, across and through variables, constitutive law of the damper
  2. Springs: constitutive law, displacement and relaxed length, sign conventions, series and parallel
    1. Example: which are springs?
    2. Example: total stiffness of a system

Week 2

  1. Formulating equations of motion for spring-damper systems: step 1a) force balance at connections; step 1b) geometric continuity; elements in parallel and series; step 1c) constitutive laws; step 2 forming differential equations of motion
    1. Examples: step 1a) force balance at connections example 1, example 2
    2. Examples: step 1b) geometric continuity example 3, example 4
    3. Examples: elements in parallel and series example 5, example 6
    4. Examples: forming differential equations of motion example 7, example 8
  2. Step 3 solving equations of motion
    1. Examples: what makes it a diffeq?, initial conditions, forward Euler method, analytical solutions
    2. Better numerical algorithms for differential equations

Week 3

  1. Masses: free body diagrams and force balance, sign convention, step 1 governing equations, step 2 state variables and state equations, obtaining state equations
    1. Example: free body diagram and force balance
    2. Example: sign conventions
    3. Obtaining state equations: example 3, example 4, example 5, example 6, example 7, example 8, example 9, example 10
  2. Newtonian mechanics: Newton's laws: Newton's laws, velocity and acceleration, center of mass, friction
    1. Newton's laws example 1, example 2, example 3
    2. Velocity and acceleration example 4, example 5, example 6
    3. Friction example 8, example 9, example 10, example 11

Week 4

  1. System dynamics and momentum conservation: momentum and impulse, conservation of momentum, impacts
    1. Momentum and impulse example
    2. Conservation of momentum projectile example
    3. Impacts: cars colliding example
  2. System dynamics and mechanical energy equation: principle of work and energy, mechanical energy equation, energy stored in springs and dissipated in dampers
    1. Mechanical energy equation example 1, example 2, example 3, example 4
    2. Energy stored in springs and dissipated in dampers: bungee jumper example

Week 5

  1. Force and velocity sources
    1. Practice with force and velocity sources
  2. Transformers: levers, work, and power
    1. Levers example 1, example 2, example 3

Week 6

  1. Step 3 numerical solution of coupled differential equations: state variables vs. parameters, initial conditions, evolution of spring-mass systems, forward Euler (non-matrix form), forward Euler (matrix form), MATLAB code
    1. Example: counting state variables
    2. Example: finding state equations
  2. Step 3 (cont.) analytic solution of coupled differential equations: analytic solutions, natural vibrations with damping, forced vibrations with no damping, free fall, complex numbers, superposition of solutions
    1. Example: complex numbers
    2. Example: superposition
    3. Example: damped natural vibration

Week 7

Electrical Systems

  1. Introduction: voltage and current, charge and current, voltage and potential, power source: batteries
  2. Resistors: constitutive law (Ohm's law), meter polarities, power, Kirchoff's laws
    1. Examples
  3. Capacitors: charge, capacitance, and energy
    1. Examples: resistors in series and parallel, capacitors in series and parallel

Week 8

  1. Formulating equations for circuits: circuit diagram notation, Kirchoff's laws, step 1 equations, step 2 state variables and equations
    1. Kirchoff's laws example 1, example 2
    2. Example: state variables and equations
  2. Simple RC circuits: RC time constant, charging up a capacitor (applet broken)
    1. Example: RC time constant
  3. Complex RC circuits
    1. Example 1, example 2, example 3

Week 9

  1. Inductors (applet broken)
  2. Circuits with inductors
    1. Example: simple circuit with an inductor
    2. Example: LC circuit and natural frequency

Week 10

Review and final quiz

Reference