I have finally cleaned up the code and made a patch that adds the following features on top of the wifi model ported to stage svn rev 7729 a week ago. This patch is also against stage svn rev 7729 and supersedes the wifi model patch, which can now be disregarded. I will update the patch tracker as soon as sf.net is up (seems to be down at the moment, atleast from my end).
1. I have added a simple inter-robot communication
mechanism (as a part of Wifi model) in libstage that allows robot
controllers (examples/ctrl) to register a function to process received data. This function is invoked
by the sender whenever it needs to transmit data to another robot within its communication range.
2. The robot controllers can register a wifi update callback
function in which they can transmit messages to their current radio
neighbors (depends on the WiFI model you are using).
Look at examples/ctrl/wander.cc and worlds/wifi.world for sample usage. You can run the example by typing "stage wifi.world".
3. I have added a Planner class to stage that is basically a wrapper function for the standalone wavefront library from Player-2.2. It also cleans up the code in examples/ctrl/fasr_plan.cc by removing the fltk part from it, removing the dependency on hard-coded map image and by using the new Rasterize function provided by libstage. CMake files have been modified to compile Planner and fasr_plan.cc only if cmake finds the player installed correctly as they depend on the standalone wavefront library generated when the player is installed.
However, the fasr_plan.cc controller does assume that the floorplan model is named "cave" in the worldfile. And the Planner class requires a laser scanner to update obstacle map dynamically, though later, it should be made to work with either ranger or scanner. To run the example, type "stage fasr.world" and you can see the
4. I have also added a simple obstacle avoidance class that is based on the code taken from controller examples. It just makes the controller code smaller and cleaner.
Look at examples/ctrl/fasr_plan.cc,wander.cc and examples/ctrl/utilities directory for the code.