This applet simulates the motion of a 2 link robot arm that you
define.
There are two window areas:
In the left area of the window, LEFT click, drag, LEFT click to create the first
robot link, then again to create the second robot link. This defines your
robot arm. You can now RIGHT click anywhere to position the robot.
In the right area of the window is the configuration space, showing the
arm configuration based on the angle of the first joint (X axis) and the
angle of the second joint (Y axis). Any configuration of the robot arm in
the left window corresponds to the a point in the configuration space. To
test this, LEFT click anywhere in the configuration space window; the robot will move accordingly.
Obstacles: Things get fun when you start defining obstacles in the
robot's environment. To do this, use your LEFT mouse button in the Left
window to click, drag edges of a polygonal obstacle (end the obstacle by
clicking anywhere near the first point). The corresponding
obstacle will be computed and displayed in the right window.
You can now move the robot in either window as before, and add additional
obstacles by LEFT clicking in the Left window area.
Applet History:
The original version of this program was written in C by Jeff Wiegley at
USC, working with Prof. Ken Goldberg.
  The Java version was written by Eric Lee at UC Berkeley, working with
Prof. Goldberg.
Modifications for cs188 demo purposes by Dan Klein, UC Berkeley.