Here is an update on what I'm up too.
I have developed a board to control and process data from 8 ultrasonic or infrared sensors. It plugs into your serial port and continuously sends range information for all eight sensors, not unlike GPS.
I've also created a path finding server for the robot I bought back in November. You create a map of a building floor and the robot connects to the server and the server gives the robot a list of instructions to follow to get to the destination. This is all being done by a laptop running XP. The robot uses a laptop for processing, it's an ER-1 from evolution.com. All the software runs on the laptop, but the server can be a central server if you like.
The Pathfinder project is now in alpha test. The server is working and and fully functional. HTTP commands that are returned to the robot are 1 SETPOSITION?x,y, LOADMAP?mapname,rm1 or rm2, and GETPATH?waypoint and SEARCHMODE?0 or 1.
Loadmap loads a new map into the server. The map can be created and edited in the server screen.
Setposition allows the robot to change its start position SearchMode determines the search method. Currently Dijkstra and A* are implemented and the default is Dijkstra. These two algorithms are common in video games and work very well for pathfinding.
GetPath returns a 3 element list. The first element is the current position, the second is a comma delimited list of compass directions to move (assume 12 inches) and the third is the ending position.
The robot will process the list of directions in order. Only four directions are currently implemented, N, S, E, W. If the robot knows what direction it starts out at, via compass or by being placed in the right direction (N) all the robot has to do is turn in the appropriate direction and keep track of what direction it is going (current list item).
So, by designing a map of your facility and putting waypoints on the map, one could say 'getpath?xraylab' and the robot will ask the server for the path to the the xray lab and then proceed directly to it. avoiding obstacles in its way, but following the path given and presumably accurate.
With the software on it now, I can speak to the robot and tell it to go to a particular waypoint and do something interesting.