Difference between revisions of "ME 449 Robotic Manipulation"

From Mech
Jump to navigationJump to search
Line 1: Line 1:
'''Fall Quarter 2016'''
'''Fall Quarter 2017'''


* Instructor: Prof. Kevin Lynch
* Instructor: Prof. Kevin Lynch
* Office hours: Tech B222, 2-3 PM Tuesday and 3-4 PM Wednesday '''(during finals week: Tues 2:30-3:30, Thurs 11-12)'''
* Office hours: Tech B222, TBA
* Meeting: 12:30-1:50 TTh, Tech M345
* Meeting: 2:00-2:50, MWF, Abbott Auditorium Pancoe
* 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


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


<!--
==Grading==
==Grading==


-->
Grading for the course will be based on problem sets and a final project. There will be no exams. All assignments, including the final project, have equal weight, and your lowest assignment grade will be dropped in calculating your final grade.


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


All of these resources are available at [[Modern_Robotics|'''the homepage for the book''']].
Go [[Modern_Robotics|here]] to get the final version of the public book. (No changes relevant to the final project from the previous version.)


* Get the book. Purchase the printed book or download the preprint version of the book.
Download [https://github.com/HuanWeng/ModernRobotics this software] (dated Nov 29) for your final project. Contains a few bug fixes.
* [https://github.com/NxRLab/ModernRobotics '''Download the book software from GitHub.''']
* [http://www.coppeliarobotics.com/ '''Download the V-REP robot simulator.'''] After you've installed it, choose "File > Open scene..." and open any of the scenes. Press the "Play" button and verify that the simulator is working.


==Video Lectures==
<!--
[[Modern_Robotics|'''You can find the latest version of the book, and the software, by clicking here. You can also submit your corrections.''']]
-->
<!-- [[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. [https://docs.google.com/forms/d/e/1FAIpQLSc3o0BfYxYUtnLhSoTkp40a7j0Clkx3p9DU6IdQ1yIBcNrpgA/viewform '''Please submit your corrections to the text here!''']


Video supplements to the reading can be found at [http://modernrobotics.northwestern.edu '''http://modernrobotics.northwestern.edu''']. If you prefer to watch the videos as playlists in the youtube environment, you can [[Modern_Robotics_Videos|'''go here instead''']]. These links are also available from the [[Modern_Robotics|'''book's homepage''']].
We will use [https://github.com/MikhailTodes/robotic_manipulation_library this software], written in Python, Mathematica, and MATLAB. [https://docs.google.com/forms/d/e/1FAIpQLSfpd_DQzyddpk3QJ_92ozy-SOnLtoQMusut7mwBCaxd_k-vgg/viewform '''Please submit your corrections to the software here!''']
-->
[[V-REP_Introduction|Introduction to V-REP]], which we will be using to simulate robots.


==Syllabus and Reading==
[http://www.it.northwestern.edu/software/matlab/obtain.html How to obtain MATLAB.]
<!--
* [[Media:ME449-time-optimal-slides.pdf|Slides on time-optimal time scaling of a trajectory.]]
* [[Media:ME449-motion-planning-slides.pdf|Slides on motion planning.]]
-->

==Reading==
This supersedes the approximate syllabus below.
This supersedes the approximate syllabus below.


Line 69: Line 61:


'''Assignments'''
'''Assignments'''

* '''Assignment 1''', due on Canvas before the beginning of class on Thurs Oct 6: Chapter 2, Exercises 1, 3, 5, 16, 17, 28, 29; Chapter 3, Exercises 1, 2, 6, 16, 26, 27, 28, 31, 47.
* '''Assignment 2''', due on Canvas before the beginning of class on Thurs Oct 20: Chapter 4, Exercises 1, 2, and 7; Chapter 5, Exercises 2, 3, 8, 24, 25, and 28
* '''Assignment 3''', due on Canvas '''at 12:30 PM Friday Nov 4''' <s>before the beginning of class on Thurs Nov 3</s>: Chapter 6, Exercise 7, 8, and 9, plus a programming assignment: You will write a program for trajectory generation for the UR5 robot, as described in Chapter 4. For simplicity, the {b} frame is always aligned with the {s} frame in this trajectory. Your program accepts a start point for {b} and a goal point, each expressed as (x, y, z) of the {b} frame relative to {s}. Call these points (xstart, ystart, zstart) and (xend, yend, zend). Your program will solve the numerical inverse kinematics at 101 points: the 1st point, at (xstart, ystart, zstart), the 101th point, at (xend, yend, zend), and at 99 points spaced equally in between. For your initial guess at the 1st point, you can use all joint angles equal to zero. (If this results in convergence problems, you can choose a different guess.) At subsequent points, you should use the solution to the previous point as your initial guess. Your program will then write out a comma separated values (csv) text file with rows such as 0, 0, 0, 0, 0, 0 and 0.12, 0.37, -0.54, 0.01, 0.02, -0.31, where each row corresponds to the joint angles that solve the inverse kinematics problem for the given (x, y, z) point, from the 1st to the 101st. So your csv file will have 101 rows. Then you will use the [[V-REP Introduction|V-REP simulator]], scene 2, to "play" the trajectory in your CSV file to see the motion of the robot. You will make a video of the motion. You will turn in (1) your working, commented code and (2) your video. For the video, the start position is (0.7 m, 0, 0.1 m) and the end position is (0, -0.3 m, 0.5 m).
* '''Assignment 4''', due on Canvas before the beginning of class on Tues Nov 22: Chapter 8 exercises 2, 11, 14, and 17 (in the book after Nov 16, these same problems are numbered 2, 10, 13, and 16). Chapter 9 exercises 21, 22, and 23. Additionally:

: '''(a)''' Write the spatial inertia matrix in the link center-of-mass body frame for each of the six links of the UR5, given the center of mass frames and mass and inertia specified in the UR5 URDF.

: '''(b)''' Assume gravity is 9.81 m/s^2 acting in the negative z direction of the space frame. Write code that uses ForwardDynamicsTrajectory to simulate the robot falling in gravity for 3 seconds. The robot starts at rest from the zero configuration, and all joint torques are zero. Use dt = 0.01 seconds and intRes = 10 (10 Euler integration steps per dt). Your code should create a csv file of the configurations at 0.01 second intervals (you should get ~300 configurations, since you are simulating for 3 seconds with dt = 0.01) and use that to create a V-REP video of the robot falling. Turn in your code that uses ForwardDynamicsTrajectory, the input you used to your code, and your movie. '''Note: You are responsible for a correct dynamic simulation. If you discover a problem with the code ForwardDynamicsTrajectory, you are responsible for fixing it so you get a proper simulation. Get started early!'''
* '''Assignment 5''', due on Canvas Friday Dec 9 by 9:00 AM. '''Make sure to download the updated version of the book, dated November 24.''' Chapter 13 Exercise 33, including videos for parts (d) and (e). This exercise uses the KUKA youBot mobile manipulator scenes on the [[V-REP_Introduction#Scene_4:_CSV_Animation_KUKA_youBot|V-REP page]]. The gains corresponding to the linear and angular components of the P and I errors can have different values, accounting for the different units of linear and angular error.

<!--
==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 [http://petercorke.com/Robotics_Toolbox.html 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 [[Media:ME449-MATLAB-Robotics-Toolbox-Instructions.pdf|here]] and in the zip file below.

'''Download''': [[Media:MATLAB Robotics Toolbox for ME449.zip|MATLAB Robotics Toolbox for ME 449.zip]].

===ROS/rviz===
If you would like to use [http://wiki.ros.org/rviz rviz], a visualization package in [http://wiki.ros.org/ 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: [https://gist.github.com/sherifm/f76cab0e785943f9aadc Kinematics Tool Guide for Native ROS on Linux].

Windows and Mac users, you should follow these instructions: [https://gist.github.com/sherifm/ba54c406c4f4ae140594 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, angular velocity, and exponential coordinates
* transformation matrices, twists, and exponential coordinates
* wrenches

'''Forward Kinematics'''

reading: Chapter 4
* product of exponentials formula in base frame and end-effector frame
* the URDF

'''Velocity Kinematics and Statics'''

reading: Chapter 5
* Jacobians: space, body, and other notions (e.g., velocity as time derivative of configuration variables)
* statics of open chains
* singularities, manipulability

'''Inverse Kinematics'''

reading: Chapter 6, but you may skip 6.1
* numerical inverse kinematics

'''Dynamics of Open Chains'''

reading: Chapter 8 (not 8.4)
* Lagrangian formulation,
* dynamics of a single rigid body
* Newton-Euler inverse and forward dynamics of open chains
* constrained dynamics
* actuation, gearing, and friction

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

reading: Chapter 11
* motion control and force control

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

'''Wheeled Mobile Robots'''

reading: Chapter 13
* modeling, motion planning, and control for omnidirectional and nonholonomic mobile robots
* it is highly unlikely we will get here!


<!--
<!--

Revision as of 09:33, 16 September 2017

Fall Quarter 2017

Course Summary

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


Course Text and Software

All of these resources are available at the homepage for the book.

Video Lectures

Video supplements to the reading can be found at http://modernrobotics.northwestern.edu. If you prefer to watch the videos as playlists in the youtube environment, you can go here instead. These links are also available from the book's homepage.

Syllabus and Reading

This supersedes the approximate syllabus below.

  • Chapter 2
  • Chapter 3
  • Chapter 4 (4.2 can be skimmed)
  • Chapter 5
  • Chapter 6 (6.1 can be skipped)
  • Chapter 8 (8.4 can be skipped; 8.8-8.9 are for reference only for those interested)
  • Chapter 9 (9.1 and 9.4 only)
  • Chapter 11, stopping before the Force Control section
  • Chapter 13 (skip 13.3)

Assignments

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

If you ever think a problem is stated incorrectly, not enough information is given, or it is impossible to solve, don't panic! Simply make a reasonable assumption that will allow you to solve the problem (but clearly state what this assumption is), or indicate why it is not possible to solve the problem.

Instructions for uploading assignments to Canvas:

0. Upload on time! Late submissions are not accepted. 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. Always include output of your code running on the exercises, particularly in case the grader has problems running your code. Also, always create a script (for example, titled ex6-9 or something) that the grader can easily invoke for each exercise. Don't expect the grader to search through your code to find sample code to cut-and-paste. Make it as easy as possible for the grader (you can include a "README" in your solutions, for example).

5. Please name the upload file in the following format: LastName_FirstName.zip.

Assignments