Planar Robot Simulator with
Obstacle Avoidance (Configuration Space)
(Requires Java enabled browser: Please allow 60-200 seconds to load)
Prof. Ken Goldberg, UC Berkeley.
The original version of this program was written by Jeff Wiegley at
The Java version based on Wiegley's C code, is by Eric Lee at UC
This applet simulates the motion of a 2 link robot arm that you
There are two window areas.
In the left area of the window, click, drag, click to create the first
robot link, then again to create the second robot link. This defines your
robot arm. You can now click anywhere in the left area with the RIGHT
mouse button and the arm will move to place the robot at that
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, click anywhere in the right window with your LEFT mouse button.
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). Be sure the obstacle does not
intersect the robot in its current configuration. 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.
Thanks! Please send comments or suggestions to
Eric Lee (firstname.lastname@example.org)
Go Back to Eric's Page