Initially I thought that 3D would be too much for this algorithm to
handle, since it's already keeping track of multiple grid map
hypotheses. At each point in time the robot exists in a superposed
state, which collapses to a single result only after enough
observations have been made (similar to quantum superposition).
Fortunately though using three dimensions instead of two actually
speeds up the algorithm, since it makes searching for matches more
localised.
http://sentience.googlegroups.com/web/dpslam1.jpg
http://sentience.googlegroups.com/web/dpslam2.jpg
There's still a lot of drift going on and more bugs to be fixed before
this is a practical system capable of being installed onto a robot,
but the results so far look encouraging.