In this example I've generated a simulated map of the navigable space,
which may be unrealistically perfect but is sufficient to test the
planning algorithm.
http://sentience.googlegroups.com/web/pathplanner1.jpg
This uses a fairly efficient implementation of the A* algorithm, with
the resulting path being smoothed using splines. Path planning takes
a negligible amount of time, and even if the grid map was huge it
wouldn't be unreasonable to have the robot stop to "think" about its
plan for a couple of seconds (like Baldrick out of Black Adder) before
setting off.
I'm sure you've probably seen it, but Steven Lavalle's RRT planner is
quite a good alternative to A*.
I've put up a little summary at http://dotnetrobot.blogspot.com/2007/03/rapidly-exploring-random-trees.html
and have some c# code lying around that my be adaptable to this
project, though now that you have done tree storage for your 3d data,
it would probably be trivial for you.
Chris