Robotic Explorer

This page suggests an economical approach to robotic mapping, creating a "robotic explorer" (RX) that can generate floor plans of buildings, etc.


There are various efforts at creating navigation aids for the blind and visually impaired (e.g., Wayfindr). However, a lack of mapping data limits their reach. In particular, the public areas (e.g., corridors) of most buildings have not been, mapped, modeled, etc. OpenStreetMap does a fine job of providing navigation information for streets. However, it has considerably less information on paths and none at all inside buildings. Finally, levels of accuracy and detail which are just fine for cars may be completely inadequate for use by blind pedestrians.

Gaining access to building layout information can be problematic. Some buildings have accurate and current floor plans, but most do not. Also, administrative and political challenges may get in the way. Although these can generally be overcome, all of this takes time.

Finally, once the data is in hand, it needs to be normalized and integrated. Turning floor plans (in arbitrary formats) into a standardized database format can be difficult and quite labor intensive. This sort of skilled manual effort can be prohibitively expensive. So, there is clearly a need for a convenient and economical alternative.


Larry Wall (the creator of Perl) contends that the three virtues of a programmer are laziness, impatience, and hubris. The whole RX project is based on my impatience and hubris: I'm not willing to wait for a mapping robot to exist and I'm foolish enough to think that I can create one.

However, being lazy, I'm quite willing to take advantage of simplifying hacks, technologies that seem appropriate (i.e., useful and inexpensive), etc. In short, this is much more of a "maker hack" than a "Real AI Project".


I propose that public areas in buildings be scanned by special-purpose robots, directed and assisted by human operators. During periods when a building is largely unoccupied, this team can traverse its corridors, lobbies, patios, etc. For example, it can capture:

  • the path taken by the Rover
  • distance measurements to walls
  • scenes captured by the cameras
  • textual descriptions of features

All of this information will be uploaded to the server. Then, in another semi-automated step, a model of the building's "public geometry" will be created. Because a human is available to make the hard decisions, the modeling process should not need fancy AI techniques. See the System Overview for (speculative) details.

Expected Usage

The list below is a naive description of a simple "golden path". Obviously, issues such as jogs in the corridor may complicate matters, but a human operator will always be present to resolve such issues.

  • The operator places the RX Rover near one end of a corridor.

  • The Rover moves to its notion of the proper starting point
    (e.g., next to the end wall, halfway between the side walls).

  • The Rover moves down the center of the corridor,
    collecting data on features (e.g., doorways, walls).

  • The operator walks behind the Rover, describing features
    (e.g., "on the right, an office doorway numbered 321").

  • If (when :-) the Rover gets stuck, the operator rescues it
    (e.g., moving it to a new start location).

Once the data is on the server, it can be massaged into a simplified model of the building's internal geometry. Ideally, most of this work would be done by software, but again, a human can help out (e.g., over the web) with unusual situations.

Breakout Pages


This wiki page is maintained by Rich Morin, an independent consultant specializing in software design, development, and documentation. Please feel free to email comments, inquiries, suggestions, etc!

Topic revision: r91 - 10 Aug 2017, RichMorin
This site is powered by Foswiki Copyright © by the contributing authors. All material on this wiki is the property of the contributing authors.
Foswiki version v2.1.6, Release Foswiki-2.1.6, Plugin API version 2.4
Ideas, requests, problems regarding CFCL Wiki? Send us email