10.2 Displaying Maps
Youll see a large map window to the left, and a vertical column of control buttons along the right edge.
NOTE: Look for the notation "colliServer conected." If colliServer isnt connected, the Mapper will not work.
Select a spot, called a goal point, within the map window, point to it with your mouse and click on it with your left mouse button. The robot will move to that point, using guarded motion (the default). As it moves, your robot will begin to construct an occupancy map of its environment. This kind of robot movement is called global navigation, and depends on the robots increasing knowledge, embodied in the map, about the contours of its surroundings.
In this kind of navigation, the BeeSoft Mapper is continuously upgrading its assessment of the robots optimal path towards its eventual goal. Along the way, it decides where to go next, that is, it selects its immediate subgoal, and has colliServer send the robot there.
To see the current occupancy map of the robots world, point to the control button labeled global map and click with your left mouse button. The robots immediate surroundings are that portion of the world currently within the purview of its sensors. To see this map that represents the very latest sensor readings, click on the control button local map. The local map is displayed in the local map window (the small square window at the lower right of the display window).
The button labeled map update enabled is a toggle. The default is enabled. In this mode, the global map, shown in the large window, is continuously and automatically updated by the latest local map, shown in the small window at the lower right. If you have an existing map that you dont want to change, just click on the map update enabled box. The global map will not be updated by the local map in this mode.
Click on the control button clip map to "clip off" extremes in occupancy values. This increases the ability of the map to be continually overridden, making it more likely that the map will be updated in a timely fashion as the robot moves about. Clipping the map changes heavily black, or occupied, areas to less black, and heavily white, or free, areas to grayish, thus "evening out" the map and making it more responsive.
During mapping operations, baseServer passes data coming in from the robot to colliServer. colliServer passes this information from the robot on to sonarint and/or laserint. These two subsidiary programs build small local maps based on this immediate sensory input. These small, localized maps are then passed to the BeeSoft Mapper which integrates them into a large global map (the one you see in the large window on the Mappers display).
Position control is the robots ability to locate itself accurately on its map. Although the robots wheel encoders (the devices that keep track of wheel revolutions to determine where the robot is at any time relative to where it was when it started moving) are fairly accurate, any number of factors can cause many small errors to accumulate into a devastatingly large mis-estimate of the robots actual position with respect to the global map coordinates. Wheel skid due to slippery floors, small angular errors in dead reckoning and the like can seriously erode the accuracy of the robots internal estimate of its position.
To compensate, your robot continuously matches its latest sonar readings against information from its occupancy map. If it finds a mismatch, the robot corrects its internal position accordingly. And, at the same time, it takes cognizance of the angular orientation of walls with respect to its current position, and uses this information to make ongoing corrections for rotational error. This corrective information also goes out to the programs managing teleoperation, path planning, and control of the pan/tilt head to keep them on track and up to date.
Thus, your robot cleverly and sensibly takes advantage of both the wider view offered by the global coordinate system embodied in the map, and the close-in, real-time, up-to-the-millisecond impressions flowing in through its sensors.
Remember, to build a map without running the BeeSoft Planner, 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.
In This Chapter Youve Learned...
...how to use the BeeSoft Mapper to enable your robot to construct two-dimensional occupancy maps of its world.
You now have a deeper understanding of the principles of robotic navigation, and of how your robot is able to develop an increasing level of confidence about whether a particular areas if free to move through, or is occupied by some kind of obstacle.