ME 449 Robotic Manipulation (Archive Fall 2015)
Fall Quarter 2015
- Instructor: Prof. Kevin Lynch
- Office hours: Tech B222, Monday 2-3 (3-4 on Monday Dec 8), Tuesday 2-3 (Note: no office hours on Mon Nov 16, Mon Nov 23, and Tues Nov 24. Added office hour: Thurs Nov 19, 3-4 PM.)
- Meeting: 12:30-1:50 TTh, Tech A110
- course website: http://hades.mech.northwestern.edu/index.php/ME_449_Robotic_Manipulation
Mechanics of robotic manipulation, computer representations and algorithms for manipulation planning, and applications to industrial automation, parts feeding, grasping, fixturing, and assembly.
Grading for the course will be based on problem sets and a final project. There will be no exams.
"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.
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.
Instructions for uploading assignments to Canvas:
0. Upload on time! Late submissions are not accepted. The cutoff time is at the beginning of class on the day the assignment is due.
1. Only upload one zip file or rar file for each assignment;
2. In your zip file or rar file, include all source codes in their original form, such as .cpp, .m, .py, .nb.
3. If there is a demo, combine the screen shots into one SEPARATE pdf file, OR, show the results in one SEPARATE .txt file (DON'T show them in your source code file format, e.g. .nb file), and include it in the zip file (or rar file).
4. Please name the codes by their corresponding problem numbers.
5. Please name the upload file in the following format: LastName_FirstName.zip.
- Assignment 1, due Thursday Oct 15 at the beginning of class
- Assignment 2, due Tuesday Oct 27 at the beginning of class (Matlab robotics library, courtesy of Antonia Nepomuceno; Mathematica robotics library, courtesy of Andrew Ju; Python robotics library, courtesy of Mikhail Todes)
- Assignment 3, due Thursday Nov 5 at the beginning of class (Matlab robotics library, courtesy of Minghe Jiang; Mathematica robotics library, courtesy of Matt Collins; Python robotics library, courtesy of Tim Herrmann)
- Assignment 4, due Tuesday Nov 24 at the beginning of class. (If you write down your solutions of 9.1, 9.2 and 9.5 on paper, please scan your solutions and provide a PDF file. Please make sure that your results are clear. You can do screen shots for the plots asked in problem 5 and problem 6. Make sure you add labels, units and titles to your plots. Save the screen shots in PDF files. Please merge all your PDF files together into one single PDF file and submit it with your code.) Addition to the assignment: Make movies for 5(iii) and 6(iii), upload them to youtube, and provide the links. You can make a movie using your operating system's screen video capture program (e.g., quicktime for the Mac, or recordMyDesktop or SimpleScreenRecorder for linux), or you can use this code that shows you how to make a movie in MATLAB. (Python robotics library, courtesy of Mikhail Todes, also hosted on github here; Mathematica robotics library, courtesy of Roman Grigorii; MATLAB robotics library, courtesy of Deepak Gopinath; an example of an animation of problem 5 courtesy of Mikahil Todes; an example of an animation of problem 6 courtesy of Mikhail Todes)
- Assignment 5, due Friday Dec 11 at 9 AM
Visualizing Manipulators in MATLAB or ROS
We provide two different methods for visualizing the motion of a robotic arm, one in MATLAB and the other in ROS. Choose whichever method sounds more appealing to you.
The Robotics Toolbox for MATLAB
If you would like to use MATLAB, we recommend the Robotics Toolbox for MATLAB. Please download the version we provide on the ME 449 wiki. We've made a minor change to the original code, so that the base and end-effector frames are shown by default. Instructions on how to visualize poses and animate arm trajectories can be found here and in the zip file below.
Download: MATLAB Robotics Toolbox for ME 449.zip.
If you would like to use rviz, a visualization package in ROS (Robot Operating System), we provide installation and usage instructions for native Linux users and a virtual machine for Windows and Mac users.
Linux users, follow these instructions: Kinematics Tool Guide for Native ROS on Linux.
Windows and Mac users, you should follow these instructions: Kinematics Tool Guide in a Virtual Machine (Mac, Windows).
reading: Chapter 2
- degrees of freedom, Grubler's formula, parameterizations, holonomic and nonholonomic constraints
reading: Chapter 3
- rotation matrices, Euler angles, exponential coordinates, unit quaternions
- angular velocities
- rigid-body motions
- spatial velocities
reading: Chapter 4
- product of exponentials formula
Velocity Kinematics and Statics
reading: Chapter 5
- coordinate, space, and body Jacobians
- statics of open chains, singularities, manipulability
reading: Chapter 6, but you may skip 6.1
- 2R example, numerical methods, and redundant open chains
Dynamics of Open Chains
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
- Newton-Euler inverse and forward dynamics of open chains, dynamics in task space
reading: Chapter 9, but you may skip 9.2 and 9.3
- definitions and time-optimal time scaling
reading: Chapter 10 through 10.5.1
- overview, foundations, and complete path planners
- grid methods and the RRT sampling method
optional: Chapter 11
Grasping and Manipulation
reading: Chapter 12
- contact kinematics, planar graphical methods, and form closure
- contact forces, planar graphical methods, and force closure, Chapter 12.2
- other manipulation, Chapter 12.3