Homework 4: RRT for a two-link robot arm

Due 3/27/2015.

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

Students should submit their homework via email to Rob Platt (rplatt@ccs.neu.edu) in the form of a ZIP file that includes the following:

1. A single PDF file showing one plot of the tree formed in configuration space. The horizontal axis of this 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. Make a second plot showing the two joint positions in workspace as a function of time.

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

Notes and updates:

Notice that the MATLAB function, sin(), takes arguments in radians versus degrees.