Java-Based Harmonic Potential Path Planner

written by Chris Connolly, SRI International.
This applet works ok with Internet Explorer and Netscape Navigator version 4. It will not work under Netscape 3.x.
This applet still has a few bugs -- if it crashes on you, reload the page. Sorry for the inconvenience.
This applet is an extension of the Java-based PD controller. It incorporates a dynamic simulation of a two-link arm, with implicit PD control, but the positions that are fed to the controller are obtained from a gradient descent of a harmonic potential function (Connolly and Grupen 1993). This applet also illustrates the use of configuration space to generate motion plans.
Note: This method for planning motion does not account for dynamics. In Haugsjaa et al. 1997 and Connolly et al. 1995 we use potentials in a hamiltonian framework for planning goal-directed and repetitive motion.
The configuration space of this robot is the space of joint angles. In this space, the robot is mapped to a point. In other words, the robot is described solely by the angles of the two joints. Obstacles and goals can be mapped into this space by using the forward kinematics of the robot.

Once obstacles and goals have been mapped into configuration space, Harmonic potentials (computed over the configuration space) are used to compute obstacle-avoiding paths. Although there are many ways to compute harmonic potentials, you can imagine a resistive grid laid out over the configuration space. In the resistive grid, obstacle nodes are fixed at 1 volt, while goal nodes are fixed at 0. The remaining nodes drift to voltages which are the means of neighboring nodes' voltages (the Mean Value Property). These grid voltages comprise a discrete sampling of a harmonic potential.

One advantage of using a harmonic potential for path planning is that the potential is programmable. Obstacles and goals can be laid down in the robot's configuration space without incurring local minima. This follows directly from the Mean Value Property. Harmonic potentials (when normalized to a range of [0,1]) can also be interpreted as hitting probabilities for the corresponding Markov chain (Connolly 1997) .

The left half of this applet shows the robot in cartesian space. Obstacles are red, and goals are yellow. The right half of the applet shows the configuration space of the robot. In configuration space, the robot is mapped to a point. The X axis is the first joint angle, while the Y axis is the second joint angle. Configuration space obstacles are shown in blue.

Right mouse lays down obstacles. Left mouse causes a goal to be selected, and once the potential is computed, the arm is moved to the goal along an obstacle-avoiding path. While the potential is being computed, a red progress bar will be displayed.




Chris Connolly