Robotics II: Hints

Grasping hw2 from 2009  Sphere grasping: Intuition can be your guide, but I want you not to stop there. Intuition is sometimes flawed.

Part A: First determine the dimensions of G for various choices of contact models. Since rank(G) must equal 6, this will immediately eliminate certain combinations of contact models. Next construct the matrix G with some contact model choices and check its rank using Matlab. Trial and error will likely be needed.

Part B: No contact model choice is involved here. The necessary conditions for form closure are enough to answer this question. To study this numerically, it will be easy to modify the form_closure testing code distributed with the lecture notes on form closure. Check the "Lectures" page on line.

Part C: The necessary conditions on Gn are enough to answer this question.

Part D: Modify the code provided with this assignment (for cube force closure testing) for this problem. This it is a simple matter of trial and error. Do you expect your answer to change with this number of edges of the friction cones?

Part E: This question requires you to construct a hand Jacobian so that you can test rank(GJ). Choose a hand structure that makes it easy to construct J. Ignore possible collisions between links and the sphere.

Part F: This is a followon to part D. Just modify the code and answer this question by trial and error.

LaValle, Ch 2, Prob 19: Certain kinds of data structures could make implementation easier: a twodimensional array, G, representing the grid, a list of nodes in a priority queue, Q, to manage the search, and a list of nodes, D, where fully explored nodes are placed after removing them from Q. Helpful fields include: G(i,j).visited (a flag indicating if a node has been visited yet), Q(k).coords (coordinates of node k), Q(k).c2c (current lowest cost from initial node to get to node k), Q(k).c2ge (estimate of cost from node k to goal), and Q.back (direction from node (k) back to the previous node on the optimal path). Constructing the optimal path from Q is a matter of starting at the goal node, Q(.).coords, and tracing the path backwards by moving to Q(.).back repeatedly until arriving at the initial point.
I found the "find" function of Matlab very useful for keeping Q sorted on the c2c field and for extracting the optimal path. Note that you can build a structure by simply assigning values to the various fields, e.g., new_node.coords = [1;1]; new_node.c2c = 1; new_node.back = [0;0]; .... You can insert a node into the queue by Q = []; then do this each time to insert, Q = [Q new_node]. Remove node 3 by Q(3) = [];

LaValle, Ch 3, Prob 14: Check out the Matlab function "fill" to draw filled polygons to display the links of the robot.

LaValle, Ch 5, Prob 9: Imagine generating a van der Corput (vdC) sequence in base 3 instead of base 2. In base 2 each iteration of the vdC sequence splits the current intervals in to two pieces. A base 3 vdC sequence would cut each interval into three parts, base p cuts each interval into p pieces, etc. Wikipedia has a tiny blurb that may help (http://en.wikipedia.org/wiki/Van_der_Corput_sequence)

LaValle, Ch 6, Prob 11: The definitions of shearing and scaling transforms are given in LaValle's text on page 121.