# ME 449 Projects 2012

**Final projects are due by 9 AM Thursday of finals week (June 7). Your projects should be mailed to Prof. Lynch, Tom Vose, and Ji-Chul Ryu, {kmlynch, t-vose, jcryu}@northwestern.edu. All projects should be a zip file. At the top level of the zip file is your final project report as a pdf file (e.g., projectname.pdf) and two directories, one named "code" and one named "source." If you developed code, that should be placed in the "code" directory with information on how to run the code. (Matlab is highly preferred; if you want to use some other language, be sure to check with Prof. Lynch first.) In the "source" directory, you should put your paper source (.doc or .docx for MS word, or .tex and possibly .bib files for latex) as well as separate files for each figure in your paper (pdf, jpg, whatever), data (e.g., excel spreadsheet), etc. If a movie is appropriate for your project, you can put it on youtube with a link in the paper, or you can put it in the "source" directory. If your zip file is larger than 20 MB so the mailer refuses to send it, then your email to us should instead include the URL where we can download the zip file.**

You will work in teams of two on your ME 449 final projects. Each final project output will be a paper in two-column conference paper format. Each paper should include a review of the assigned paper as well as a description of your new results. For most projects you will also include a piece of code (e.g., a simulation or analysis); you should use matlab if at all possible. If your main project is to write code, then your report should give the results of some illustrative examples.

A typical conference paper is 6 pages, though your paper can be anywhere from 4 to 10 pages. Papers will be graded on the clarity of the review of the assigned paper, the quality and depth of the new results, and the quality of the presentation (good paper outline, clear review of the assigned paper, clear problem statement for your project, logical flow of the paper, clear writing, clear introduction of all variables and necessary equations, good figures that support the notation and the results, etc.). In other words, the kinds of things that are considered in reviews of conference papers.

These projects are open-ended, and in some cases have not been done before by anyone (as far as we know). Yet we expect that you can make progress on them. The project is a chance for you to get deeply involved in a particular manipulation problem and see what you can do. There will be no answer to the questions "Is this sufficient for the project requirements?" and "What do we need to do to get an A?" and "Is this even possible to do?" You may need to modify your project description as you go, as you learn more about the problem. In that case, you should alter your project so you can still say something significant.

You may also discover errors in your paper! Just because the paper was published does not mean that it is perfect. In this case, you should describe the errors in your review of the paper.

## Milestone

**Updated May 10:** In class on Tuesday May 22 and Thursday May 24, your group will have 10 minutes to present an overview of your assigned paper. Your job is to summarize the results clearly and succinctly, so that others in the class can learn the key points in the paper. (If the paper has many points, strategically pick a couple to emphasize that you think are most important.) At the same time, you will be demonstrating your mastery of the paper. You can either use the projector or the blackboard, though given your limited time, the projector is likely to be the best option. The milestone will be part of your final project grade. You will turn in your slides and/or notes for your presentation afterward.

**Tuesday May 22:** Ansari and Natarajan; Singh and Trazkovich; Abbott and Kessler; Grant and Yeh; Lv and Leong

**Thursday May 24:** J. Shi and Xia; Moualeu and Y. Shi; Meyer and Poonacha; Barber and Pham; Bai, Rockers, and Rosenkranz

## Sample LaTeX File

**Update 1**: some people say that Texmaker is a nice (and free) front-end for LaTeX.

**Update 2**: Tom Vose recommends this front end for Mac users.

**Update 3**: Once you have your LaTeX installation, you can check out this page for more information on creating conference papers.

"Professional" papers are written in LaTeX (which is based on TeX), not Microsoft Word. If you'd like to give it a try, and produce a much nicer looking final report, you can download LaTeX here for free. Tom Vose has graciously offered this sample latex file that you can test out to make sure everything is working. Perhaps Tom has offered us this one because it won the Best Student Paper Award at the Robotics: Science and Systems (RSS) 2008 conference. To make the file, I do this:

pdflatex SAMPLE_DOCUMENT bibtex SAMPLE_DOCUMENT pdflatex SAMPLE_DOCUMENT pdflatex SAMPLE_DOCUMENT

but there are other versions of latex that do all these steps for you automatically. Ask around!

## Project List

Below is a list of final projects you can choose from. For all projects, the primary advisor is listed; any of the other three (Lynch, Ryu, Vose) can act as a secondary advisor.

**Stability measure for nonprehensile manipulation**

Alex Ansari and Keerthana Natarajan

Paper: Maeda and Arai, ICRA 2002

Primary advisor: Kevin Lynch

This paper describes a method for determining the maximum disturbance wrenches that can be resisted without altering the motion of an object during nonprehensile manipulation. You will implement the method for calculating the "stability measure" from the paper and reproduce the results of the paper. You will then apply the method to pushing a square object sitting on a horizontal table with three "feet" (three points of support). Choose two motions of the pusher, one a translational push and one with rotation. Both of these pushes should be "stable." Does your method show that the rotational push is more or less stable by the stability measure, and does this make sense? You might find it convenient to consult with the team working on the following project. Turn in your paper and your code.

**Testing for inconsistent finger control modes**

Harman Singh and Alex Trazkovich

Paper: Maeda and Arai, IROS 2003

Primary advisor: Kevin Lynch

This paper is a follow-on to the paper in the previous project, and you might find it convenient to consult with that team. This paper considers the possibility that "fingers" manipulating an object can be in either position or force control mode, and that position control can result in the possibility of excessive (effectively infinite) internal forces. You will implement the method to test for the possibility of excessive internal force and reproduce examples from the paper. Then demonstrate your method on the following problem: pushing a rectangular block along a wall. The block has one flat face sitting on the floor and one flat face aligned with the wall, and the robot's job is to push it along the wall while keeping both faces flat against their constraints. Come up with at least two different strategies, one of which succeeds and one of which results in excessive internal forces, and give the corresponding figures and the results of the test. Turn in your paper and your code.

**Two-dimensional impact**

Rebecca Abbott and Andrew Kessler

Paper: Wang and Mason, Journal of Applied Mechanics 1992

Primary advisor: Kevin Lynch

You will implement this method for calculating the post-impact velocity of a two-dimensional body as a function of its pre-impact state, and develop a matlab simulator based on it. The simulator should take a description of a rigid polygon (including restitution and friction coefficients), initially above a table, and simulate and draw the motion of the polygon as it falls and bounces on the table for a specified duration. The table moves according to some pre-specified motion profile x(t), y(t), theta(t), and you should first test your simulator with a stationary table, where it is easier to understand the results. You have to numerically determine the time of each impact (e.g., using a binary search), and at the impact times, you apply the Wang-Mason equations. If the object begins to come to rest, the times between impacts will become very small, and you can terminate the simulation. Provide examples of a falling rod that exhibits each of the possible impact types on its first impact with a stationary table. Turn in your paper, your code, and example calls of the code that yield the different impacts.

**Second-order form closure**

Tom Grant and Robbin Yeh

Paper: Rimon and Burdick, Transactions on Robotics and Automation 1998

Primary advisor: Kevin Lynch

Write a computer program that tests for second-order form closure of a planar object in contact with frictionless point fingers. The inputs to the program are the contact locations, normal directions at each contact, and the contact curvature. (If it is easier, you can assume the "fingers" are points and the object is locally circular. The object can be convex or concave, i.e., curvature = 1/(radius of curvature) is positive, negative, or zero.) The program should return whether the object is in first-order form-closure, second-order form closure, neither, or both. Turn in your paper and your code with test examples.

**LCP simulation of the meter stick trick**

Zhen Lv and Yoke Peng Leong

Paper: Berard, Egan, and Trinkle, ICRA 2004

Supplementary paper for more information: Berard Tech Report

Primary advisor: Tom Vose

Use an LCP formulation to simulate a planar uniform horizontal rod (a meter stick) in gravity supported by two point contacts or "fingers." One finger moves toward the other at a fixed speed. Simulate what happens to the rod. Turn in your code and your paper describing how, at slow speeds, the rod always stays balanced between the fingers, and at other speeds, the rod falls.

**Dynamic rolling and sliding manipulation**

Jian Shi and Lu Xia

Paper: Srinivasa, Erdmann, and Mason, IROS 2005

Primary advisor: Kevin Lynch

This paper describes dynamic motions of a robot "palm" to cause a block resting on it to roll and slide. You will write code to reproduce Figure 1. For what friction coefficients is this task feasible? Derive how to rotate the palm during the motion to minimize the required friction coefficient needed to accomplish the motion.

**Rolling simulation**

Antonio Moualeu and Yiming Shi

Paper: Ryu, Ruggiero, and Lynch, ICRA 2012 (the dynamic modeling part)

Primary advisor: Ji-Chul Ryu

Derive the equations of motion for a planar ellipse rolling on a horizontal line in gravity. You will assume rolling at all times, so that the entire configuration of the system can be given by the contact location (the contact parameter) of the ellipse. Derive equations relating the position (and velocity and acceleration) of the center of mass of the ellipse given the contact parameter. Then provide code that allows the user to specify the shape of the ellipse, the inertia of the ellipse, the mass of the ellipse (center of mass of the ellipse is at the center of the ellipse), the initial contact point on the ellipse, and the initial velocity of the contact point, then simulates the ellipse rolling (i.e., calculates the contact point acceleration and updates the state). The code should draw the simulated motion and plot the normal and tangential forces, as well as the friction coefficient required to maintain rolling, as a function of time.

**Sliding and bouncing**

David Meyer and Samhitha Poonacha

Paper: Tufillaro and Albano American Journal of Physics 1986

Primary advisor: Tom Vose

A ball bouncing on a vertically oscillating table can exhibit stable bouncing behavior of period-1, 2, 4, etc., as well as chaos. In this project, you will analyze an object bouncing on a wall, where the object is being attracted to the wall by frictional sliding, not gravity. The object rests on a plate that periodically vibrates in a horizontal plane, with high acceleration away from the wall and low acceleration toward the wall. This results in the object moving toward the wall, where it eventually impacts with a simple impact law and slides away. The project is to write a simulator for this and analyze the motion of the object as a function of different driving profiles and restitution with the wall. Provide plots of the behavior for a fixed driving as you vary the restitution, and for a fixed restitution as you vary the driving. Can you prove the existence of limit cycles?

**Stable transport of an assembly: the waiter's problem**

Adam Barber and Vy Pham

Paper: Mattikalli, Baraff, and Khosla, Transactions on Robotics and Automation 1996

Primary advisor: Kevin Lynch

Given a planar assembly of parts of known mass and inertia, and a (first-order) description of the contacts between them (including the friction coefficients), you will write code to determine if the assembly can stay together during a specified motion of one of the objects in the assembly (the "base" object). The primary piece of code will be a test which, given the state of the current assembly and the acceleration of the base object, determines if there are nonnegative contact forces that result in the other objects accelerating as necessary to maintain the assembly. With this piece of code successfully written, your code will then accept a full trajectory of the base object (x(t), y(t), theta(t)) and return whether the assembly can stay together during that motion. (You can perform the test at samples of the trajectory at fine intervals.) Your writeup should include a couple of non-obvious examples, showing a motion of a simple assembly (base object plus at least two other objects) that cannot stay together and another that can stay together.

**Throwing together an assembly**

Zishuo Bai, Tim Rockers, and Andy Rosenkranz

Paper: Miyashita, Yamawaki, and Yashima, Journal of System Design and Dynamics 2011

Primary advisor: Ji-Chul Ryu

You will build a one-joint thrower to reliably throw and catch a square block. The one-joint "robot" will pivot freely about an axis, pulled down on one side by weights. A mechanical stop will cause the robot to release the object. By choosing the location of the mechanical stop and the point at which you release the robot arm, you should be able to throw the block to land repeatably on a particular side. Your paper should analyze why the throw works (why the block remains stable against the thrower during the throw portion, why the block should execute the number of rotations you want, why it should land on the side that you wish and stay there) based on friction coefficients you measure, masses and inertias of the weights, arm, and block, and possibly restitution. For an extra challenge, try having the block begin to roll about the outer edge before the release, so that the rotation direction of the block is opposite that of the arm at release. You can cover the landing area with absorbing/dampy material to make the landing more repeatable. The arm itself can be just a flat surface, or it can have a lip at the end.

**Locally controllable manipulation by stable pushing**

Paper: Lynch, Transactions on Robotics and Automation 1999

This project combines some mechanics and some nonlinear controllability theory. Write code that, given a polygonal object, finds the minimum friction coefficient needed to ensure that the object is locally controllable by pushing. Given bounds on the interior angles of polygonal objects, find bounds on the friction coefficient that ensures local controllability.

**Brachistochrone for a rolling object**

Paper: Legeza, Mechanics of Solids 2010

The brachistochrone problem is a classical example of the calculus of variations. In this project you will show that the brachistochrone for a rolling object reduces to the classical brachistochrone when the inertia goes to zero. You will also find bounds on the friction coefficient needed to ensure rolling at all times as a function of the properties of the rolling cylinder and the endpoint of the brachistochrone.