My masters is concerned with map building in sonar based robots. I am working with the Pioneer mobile robot, using the Saphira architecture, in the Computer Systems department of the University of Limerick, Ireland. The masters was begun in October 2001, and was completed in September 2003
To see my thesis in Microsoft Word format, click here .
To see my thesis in Adobe Acrobat format, click here .
Below are four papers I participated in authoring, two as primary author, which were presented at the proceedings of the 9th International Symposium on Artificial Life and Robotics (AROB) 2004, in Oita, Japan.
Also, I co-authored one paper presented at the
18th Australian Joint Conference on Artificial Intelligence
Benchmarking Sonar Based Occupancy Grid Mapping Techniques
Download a video of the robot in motion here .
Get a complete picture of the Star world environment described in my thesis here .
I've made all my sonar data files available in a Zip file here. The file format is a custom one I've created. A C++ class for parsing this file format is included in the zip file here, as well as a PDF tutorial on how to use the file. Some of the sonar data files may be duplicated in that zip file.
All of these sonar data files can be processed by MapViewer to create maps.
The sonar data files have a specific naming scheme
As an example of some of the maps created by my robots in various environments, using different sonar models and update procedures, here are some of the maps generated by my map building systems.
These maps are viewable using a Windows application I wrote, called Map Viewer, currently on version 1.5 which you can get here .
A newer version of the Map Viewer, version 1.6 Beta is now also available. This has better support for larger maps, and handles zooming in and out much better. It can also animate the creation of a path between two points, as well as allowing the user to customise how the path is generated. This is a Beta release, so may be slightly buggy. You can get it
here
.
The latest release of Map Viewer, version 2.2, is far more advanced than all of the previous releases, with much more functionality and vastly improved usability. It's development journal is located
here
.
.
Just unzip the map file, and open it with the Map Viewer application.
Click on the link in the MAP column to get the hand drawn ideal map for the relevant environment.
Map | Real World or Simulated? | Update Method Used | Sonar Model | Independant Information? | Feature Prediction? | File |
AIC | Simulated | Bayesian Liklihood Ratio | 2D Normal Distribution | No | No | k97mod_sim_aic4_noErr_noPoseBuckets_noSpec.zip |
AIC | Simulated | Bayesian Liklihood Ratio | 2D Normal Distribution | No | Yes | k97mod_sim_aic4_noErr_noPoseBuckets_Spec.zip |
AIC | Simulated | Bayesian Liklihood Ratio | 2D Normal Distribution | Yes | No | k97mod_sim_aic4_noError_PoseBuckets_noSpec.zip |
AIC | Simulated | Bayesian Liklihood Ratio | 2D Normal Distribution | Yes | Yes | k97mod_sim_aic4_noErr_Spec_poseBuckets.zip |
Computer Science Building | Simulated | Bayesian | 2D gaussian | No | No | me88mod_sim_CSIS1stFloor1_noError_noPoseBuckets_noSpec.zip |
Computer Science Building | Simulated | Bayesian | 2D gaussian | No | Yes | me88mod_sim_CSIS1stFloor1_noError_Spec_noPoseBuckets.zip |
Computer Science Building | Simulated | Bayesian | 2D gaussian | Yes | No | me88mod_sim_CSIS1stFloor1_noError_PoseBuckets_noSpec.zip |
Computer Science Building | Simulated | Bayesian | 2D gaussian | Yes | Yes | me88mod_sim_CSIS1stFloor1_noError_Spec_PoseBuckets.zip |
Computer Science Building | Real World | Ad Hoc | 2D gaussian | No | No | me85_real_CSIS1stFloor_1.zip |
Computer Science Building | Real World | Bayesian | 2D gaussian | No | No | me88_real_CSIS1stFloor_1.zip |
Computer Science Building | Real World | Bayesian Liklihood Ratio | 2D Normal Distribution | Yes | No | k97_real_CSIS1stFloor_1_poseBuckets.zip |
Computer Science Building | Real World | Bayesian Liklihood Ratio | 2D Normal Distribution | Yes | Yes | k97mod_real_CSIS1stFloor_1_poseBuckets_Spec.zip |
Star World | Real World | Ad Hoc | 2D gaussian | No | No | me85_real_star1.zip |
Star World | Real World | Ad Hoc | 2D gaussian | No | Yes | me85mod_real_star1_NoPoseBuckets_Spec.zip |
Star World | Real World | Ad Hoc | 2D gaussian | Yes | Yes | me85mod_real_star1_poseBuckets_Spec.zip |
Star World | Real World | Bayesian | 2D gaussian | No | No | me88_real_star1.zip |
Star World | Real World | Bayesian | 2D gaussian | No | Yes | me88mod_real_star1_NoPoseBuckets_Spec.zip |
Star World | Real World | Bayesian | 2D gaussian | Yes | Yes | me88mod_real_star1_poseBuckets_Spec.zip |
Star World | Real World | Bayesian Liklihood Ratio | 2D Normal Distribution | Yes | No | k97_real_star1_poseBuckets.zip |
Star World | Real World | Bayesian Liklihood Ratio | 2D Normal Distribution | Yes | No | k97mod_real_star1_poseBuckets_Spec.zip |
The Map Viewer application also has a path planning mode, which can plan paths in a map using a highly modified version of the A-Star algorithm. To use this mode, click on the "To Path Mode" button.
The
Map Viewer
application has a third mode, RobotRun, which can be used to display the path taken by a robot. Either the entire path can be displayed, or it can be animated to show the the robot moving. The information about a run is stored in a file with the extension .run. This can be useful for such applications as displaying the path a robot took for a particular test run, or showing the results of a pursuit-and-evasion contest between two or more robots. Another interesting application is to display a complete game of robot soccer, for example the type used in the
RoboCup
competition.
These files are not compatible with MapViewer 2.x, only with versions up to 1.6b.
Each record in the file, stored in a simple text format, looks as follows:
Xposition Yposition AngleFacing
The X and Y values are stored in millimetres, with the AngleFacing (the direction the robot is facing) being stored in degrees. Currently the angle is not used in the program, but may be in future releases.
Each record in a .RUN file is considered to be the robot's position at a certain timestep, so each record represents a single timestep. Since frequent updates of the robot's position are generally required for real-time robot control (in my case 10 refreshes per second), the application can animate the run at a variety of speeds, with the default being 50 timesteps per second, which for me means 5 times normal speed. This can be changed using the "Timesteps/Sec" button.
Up to 25 simultaneous robot runs can be loaded at any one time, though they might become less clear when displaying the complete path, since they will ofthen overlap. When animating the robot run, it becomes much clearer, even with many robot runs loaded. Below are some example RobotRun files, for use with the Computer Science Building and AIC maps, though robot runs can be displayed with or without a map in the background (unlike the paths in the Path mode, which must be generated using a map).
File | Map To Be Used With (Optional) |
AIC_robot_runs.zip | AIC |
CSIS_robot_runs.zip | Computer Science Building |