Homework 3: RRT for a two-link robot arm

Due 3/26/2012.

This homework assignment is to develop a rapidly exploring random tree (an RRT) to plan a path for a two-link robot arm in the plane from a start configuration to an end configuration.

See the figure above. The configuration of the arm is defined by two joint angles. The first measures (in degrees) the angle between the first link and the horizontal axis. The second measures the angle by which the second link is rotated (with respect to the first link) starting from parallel with the first link. The first joint has joint limits that constrain it to remain between 0 and 180 degrees. The second joint is unconstrained. The location of the first joint is at the origin.

The starting configuration for the arm is at (10,10) (in degrees). The ending configuration is at (135,0) (see Figure). There is also a square obstacle in the workspace as shown with the lower left corner at (0,2) and the upper right corner at (2,4). The lengths of each of the two robot links is 1.5.

The programming should be done in MATLAB or Octave. Students may get access to MATLAB here. Alternatively, students may code in Python (using Numpy). If the student would rather code in a different language, please see Dr Platt.

Students should submit their homework via email to the TA (zihechen@buffalo.edu) in the form of a ZIP file that includes the following:

1. A single PDF file showing a plot of the tree formed in configuration space. The horizontal axis of the plot should be the joint 1 angle. The vertical axis should be the joint 2 angle. Highlight the path along the tree to the goal with a thicker line. Also, plot the random samples made by the RRT algorithm that were found to intersect the obstacle as "x" marks.

2. A directory containing all source code for your project.

Notes and updates:

None so far.