Chapter 10: Building Maps - the BeeSoft Mapper
In This Chapter...
Youll learn all about the BeeSoft Mapper, the software that enables your robot to construct 2-D occupancy maps of its world. As the robot explores its environment, noting the positions of walls, doorways, corridors, various obstacles, etc., youll see a birds-eye view of its ever-expanding knowledge base about its immediate surroundings -- an image with black representing occupied territory and white representing free space.
....Youll come to understand how your robot establishes a certain degree of belief about whether a particular area is free or occupied by an obstacle.
The BeeSoft Mapper and the subsidiary tools sonarint and laserint are example applications, supplied as a part of the BeeSoft package to assist you in your robotic research and development activities. These tools are not officially supported by RWI, Inc.
To run these example applications, you need a working knowledge of the X-Window System, and you need to have the X-Window system up and running on your workstation. RWI, Inc., does not recommend, and will not support, running X-Windows on your robots internal cpmputers.
The BeeSoft Mapper does not control the robot itself, but simply takes in data supplied by the robots sensory system and uses these data to construct maps. Therefore, the Mapper needs another program or application to "drive" it. Youll usually use either the BeeSoft Commander or the BeeSoft Planner to drive the Mapper. These applications are designed to work together, and can be thought of as BeeSofts native navigation package.
To build a map without running the BeeSoft Planner, though, you can make use of the robots joystick. Attach the physical joystick (the one that was supplied with your robot) to its port and "walk the robot" around an area while running the BeeSoft Mapper. You can then save the resulting map to a file for later use.
The BeeSoft Mapper has two primary missions: map construction and robot position control.
Map construction is the robots ongoing development and refinement of its model of the surrounding environment, based on intelligent interpretation of sensor readings coupled with continuous reassessment of the accuracy and completeness of its existing map.
The BeeSoft Mapper enables your robot to learn by example and thus easily and quickly "train" itself to adjust to dynamically changing circumstances. Think of your robots entire sensory armamentarium as a flexible, dynamically adaptable system that gathers, analyzes and makes immediate use of multiple readings from many sensors simultaneously.
As your robot travels about its environment, possibly venturing into unexplored territory to reach a goal point youve set for it, it needs to keep track of which specific locations are open for it to move through, and which are blocked or occupied by obstacles of some kind. So, the robot thinks of its world as divided up into an imaginary grid pattern.
The robot moves about its virtual grid and gathers information. For each cell in the grid, usually defined as a 15 cm resolution "tile," the robot computes a reasonable estimate of the chance that the cell is occupied. This is called the cells occupancy value. Specifically, the occupancy value of a cell is the measure of the strength of the robots subjective belief as to whether or not its own center can be moved to the center of that grid cell. Think of the occupancy value as a probability of occupancy.
Areas that are highly likely to be occupied are displayed as dark; those highly likely to be free look light. Along this greyscale from black to white, or occupied to free, intermediate values represent the varying degrees of certainty in the robots mind about whether a particular grid is occupied or free.
In interpreting sensor readings to try to determine whether or not a grid cell is actually occupied, the robot never trusts one sensor reading by itself. Rather, it looks at many readings and cross-checks those against readings from neighboring sensors. The programs sonarint ("sonar interpreter") and laserint ("laser interpreter")feed a continuously-updated stream of sensor readings to the Mapper to update the map.