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.