# 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

## Contents |

## Course Summary

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

## Grading

Grading for the course will be based on problem sets and a final project. There will be no exams.

## Course Text

"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.

Summary of important equations.

## Assignments

Assignments are graded based on correctness, how well you organize your homework (it should be easy to understand your thinking and easy to find your responses), and how well you follow the submission instructions below. You will lose points if you don't follow these instructions.

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

### ROS/rviz

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).

## Approximate Syllabus

**Configuration Space**

reading: Chapter 2

- degrees of freedom, Grubler's formula, parameterizations, holonomic and nonholonomic constraints

**Rigid-Body Motions**

reading: Chapter 3

- rotation matrices, Euler angles, exponential coordinates, unit quaternions
- angular velocities
- rigid-body motions
- spatial velocities

**Forward Kinematics**

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

**Inverse Kinematics**

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

**Trajectory Generation**

reading: Chapter 9, but you may skip 9.2 and 9.3

- definitions and time-optimal time scaling

**Motion Planning**

reading: Chapter 10 through 10.5.1

- overview, foundations, and complete path planners
- grid methods and the RRT sampling method

**Robot Control**

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